From e3d55fe056152dcb5dac9f50199b16c4fc0cf6cd Mon Sep 17 00:00:00 2001 From: Edward Goh Date: Tue, 26 Aug 2025 17:37:01 +0100 Subject: [PATCH 1/5] manual api to generated client migration --- Cargo.lock | 899 ++++-- Cargo.toml | 2 +- api/.gitignore | 2 - api/Cargo.toml | 30 - api/README.md | 3 - api/src/error.rs | 93 - api/src/lib.rs | 2504 ----------------- api/src/resources/attachments.rs | 31 - api/src/resources/audit.rs | 201 -- api/src/resources/auth.rs | 9 - api/src/resources/bucket.rs | 215 -- api/src/resources/bucket_statistics.rs | 32 - api/src/resources/comment.rs | 1116 -------- api/src/resources/dataset.rs | 727 ----- api/src/resources/documents.rs | 165 -- api/src/resources/email.rs | 114 - api/src/resources/entity_def.rs | 128 - api/src/resources/integration.rs | 166 -- api/src/resources/label_def.rs | 93 - api/src/resources/label_group.rs | 26 - api/src/resources/mod.rs | 79 - api/src/resources/project.rs | 101 - api/src/resources/quota.rs | 186 -- api/src/resources/source.rs | 282 -- api/src/resources/statistics.rs | 35 - api/src/resources/stream.rs | 187 -- api/src/resources/tenant_id.rs | 44 - api/src/resources/user.rs | 396 --- api/src/resources/validation.rs | 82 - api/src/retry.rs | 211 -- cli/Cargo.toml | 7 +- cli/publish-binaries | 4 + cli/src/commands/auth.rs | 13 +- cli/src/commands/config.rs | 6 +- cli/src/commands/create/annotations.rs | 161 +- cli/src/commands/create/bucket.rs | 56 +- cli/src/commands/create/comments.rs | 460 ++- cli/src/commands/create/dataset.rs | 249 +- cli/src/commands/create/emails.rs | 101 +- cli/src/commands/create/integrations.rs | 190 +- cli/src/commands/create/mod.rs | 68 +- cli/src/commands/create/project.rs | 137 +- cli/src/commands/create/quota.rs | 137 +- cli/src/commands/create/source.rs | 158 +- cli/src/commands/create/stream_exception.rs | 80 +- cli/src/commands/create/streams.rs | 91 +- cli/src/commands/create/user.rs | 152 +- cli/src/commands/delete.rs | 214 +- cli/src/commands/get/audit_events.rs | 73 +- cli/src/commands/get/buckets.rs | 97 +- cli/src/commands/get/comments.rs | 889 ++++-- .../commands/get/custom_label_trend_report.rs | 386 ++- cli/src/commands/get/datasets.rs | 220 +- cli/src/commands/get/emails.rs | 190 +- cli/src/commands/get/integrations.rs | 26 +- cli/src/commands/get/keyed_sync_states.rs | 29 +- cli/src/commands/get/mod.rs | 54 +- cli/src/commands/get/projects.rs | 27 +- cli/src/commands/get/quota.rs | 31 +- cli/src/commands/get/sources.rs | 133 +- cli/src/commands/get/streams.rs | 535 ++-- cli/src/commands/get/users.rs | 104 +- cli/src/commands/mod.rs | 7 +- cli/src/commands/package/download.rs | 187 +- cli/src/commands/package/mod.rs | 84 +- cli/src/commands/package/upload.rs | 803 ++++-- .../commands/parse/aic_classification_csv.rs | 108 +- cli/src/commands/parse/emls.rs | 66 +- cli/src/commands/parse/mod.rs | 97 +- cli/src/commands/parse/msgs.rs | 226 +- cli/src/commands/parse/pst.rs | 255 +- cli/src/commands/update/dataset.rs | 77 +- cli/src/commands/update/mod.rs | 21 +- cli/src/commands/update/project.rs | 37 +- cli/src/commands/update/source.rs | 99 +- cli/src/commands/update/users.rs | 37 +- cli/src/main.rs | 136 +- cli/src/printer.rs | 333 ++- cli/src/progress.rs | 2 +- cli/src/utils/attachment_utils.rs | 18 + cli/src/utils/auth/current_user.rs | 69 + cli/src/utils/auth/mod.rs | 8 + cli/src/utils/auth/permissions.rs | 122 + cli/src/utils/auth/refresh.rs | 81 + cli/src/utils/conversions/comments.rs | 83 + cli/src/utils/conversions/entities.rs | 45 + cli/src/utils/conversions/mod.rs | 100 + cli/src/utils/conversions/moon_forms.rs | 78 + cli/src/utils/conversions/names.rs | 42 + cli/src/utils/conversions/spans.rs | 37 + cli/src/utils/csv.rs | 131 + cli/src/utils/filters/attributes.rs | 13 + cli/src/utils/filters/mod.rs | 9 + cli/src/utils/filters/timerange.rs | 15 + cli/src/utils/filters/timestamp.rs | 15 + cli/src/utils/filters/user_properties.rs | 29 + cli/src/{utils.rs => utils/io.rs} | 1 + cli/src/utils/iterators/audit_events.rs | 118 + cli/src/utils/iterators/dataset_query.rs | 108 + cli/src/utils/iterators/mod.rs | 6 + cli/src/utils/mod.rs | 68 + cli/src/utils/new_annotated_comment.rs | 23 + cli/src/utils/openapi/api_ext.rs | 258 ++ cli/src/utils/openapi/mod.rs | 12 + cli/src/utils/openapi/split_examples.rs | 143 + cli/src/utils/openapi/split_failure.rs | 345 +++ cli/src/utils/retry.rs | 64 + cli/src/utils/types/identifiers.rs | 203 ++ cli/src/utils/types/ids.rs | 69 + cli/src/utils/types/mod.rs | 21 + cli/src/utils/types/model.rs | 105 + cli/src/utils/types/names.rs | 68 + cli/src/utils/types/project.rs | 24 + cli/src/utils/types/stream.rs | 89 + cli/src/utils/types/transform.rs | 124 + cli/tests/common.rs | 2 +- cli/tests/samples/basic.jsonl | 2 +- cli/tests/samples/labelling.jsonl | 12 +- cli/tests/samples/legacy_labelling.jsonl | 12 +- cli/tests/samples/moon_forms.jsonl | 12 +- cli/tests/samples/test.pst.json | 182 +- cli/tests/test_buckets.rs | 31 +- cli/tests/test_comments.rs | 69 +- cli/tests/test_datasets.rs | 231 +- cli/tests/test_projects.rs | 14 +- cli/tests/test_sources.rs | 32 +- client/.gitignore | 3 + client/.openapi-generator-ignore | 23 + client/.openapi-generator/FILES | 1755 ++++++++++++ client/.openapi-generator/VERSION | 1 + client/.travis.yml | 1 + client/Cargo.toml | 17 + client/README.md | 1183 ++++++++ client/docs/Access.md | 13 + client/docs/AddCommentsRequest.md | 11 + client/docs/AddCommentsResponse.md | 11 + client/docs/AddEmailsToBucketRequest.md | 11 + client/docs/AddEmailsToBucketResponse.md | 11 + client/docs/AddSupportTenantRequest.md | 12 + client/docs/AddSupportTenantResponse.md | 11 + client/docs/AdvanceStreamRequest.md | 11 + client/docs/AdvanceStreamResponse.md | 12 + client/docs/AdvanceTriggerRequest.md | 11 + client/docs/AdvanceTriggerResponse.md | 12 + client/docs/Alert.md | 21 + client/docs/AlertConfig.md | 15 + client/docs/AlertConfigKind.md | 12 + client/docs/AlertFilter.md | 12 + client/docs/AlertIssuesResponse.md | 13 + client/docs/AlertMetric.md | 13 + client/docs/AlertNew.md | 15 + client/docs/AlertProcessThreshold.md | 13 + client/docs/AlertProcessVariation.md | 14 + client/docs/AlertSubscription.md | 13 + client/docs/AlertUpdate.md | 16 + client/docs/AlertsApi.md | 383 +++ client/docs/AmountFieldDataPrivate.md | 11 + client/docs/AnalyticsApi.md | 39 + client/docs/AnnotatedComment.md | 22 + client/docs/Annotation.md | 12 + client/docs/AnnotationLabel.md | 12 + client/docs/AnnotationMetadata.md | 13 + client/docs/AnnotationMetadataCount.md | 18 + client/docs/Annotations.md | 11 + client/docs/AppAccessModel.md | 11 + client/docs/AppAccessModelKind.md | 12 + client/docs/ApplianceConfigsApi.md | 73 + client/docs/Application.md | 16 + client/docs/AssignedPredictedPresentFilter.md | 14 + client/docs/AssignmentMethod.md | 16 + client/docs/Attachment.md | 16 + client/docs/AttachmentsApi.md | 266 ++ client/docs/Attribute.md | 10 + client/docs/AttributeFilter.md | 12 + client/docs/AttributeFilterAttribute.md | 21 + client/docs/AttributionMethod.md | 13 + client/docs/AuditEvent.md | 21 + client/docs/AuditEventsApi.md | 39 + client/docs/AuditEventsDataset.md | 14 + client/docs/AuditEventsProject.md | 13 + client/docs/AuditEventsSource.md | 14 + client/docs/AuditEventsTenant.md | 12 + client/docs/AuditEventsTrigger.md | 14 + client/docs/AuditEventsUser.md | 15 + client/docs/BinaryLabelHealthAction.md | 12 + client/docs/BinaryLabelHealthActionKind.md | 13 + client/docs/BinaryLabelHealthWarning.md | 12 + client/docs/BinaryLabelHealthWarningKind.md | 12 + client/docs/Binning.md | 13 + client/docs/BoolFieldDataPrivate.md | 11 + client/docs/BoolFieldDataType.md | 13 + client/docs/Breakdown.md | 12 + client/docs/Bucket.md | 17 + client/docs/BucketNew.md | 12 + client/docs/BucketStatistics.md | 11 + client/docs/BucketSyncState.md | 13 + client/docs/BucketUpdate.md | 12 + client/docs/BucketUpdatedBy.md | 14 + client/docs/BucketsApi.md | 484 ++++ client/docs/BuiltinLabelDef.md | 14 + client/docs/BuiltinLabelDefName.md | 45 + client/docs/BuiltinLabelDefRequest.md | 12 + client/docs/BusinessRule.md | 16 + client/docs/BusinessRuleComparisonOperator.md | 17 + client/docs/BusinessRuleLogicalOperator.md | 13 + client/docs/BusinessRuleSet.md | 13 + client/docs/BusinessRuleSetCriticality.md | 13 + client/docs/BusinessRuleType.md | 21 + client/docs/ByLabels.md | 12 + client/docs/ByLabelsInclude.md | 11 + client/docs/ByLabelsIncludeContainer.md | 11 + client/docs/ByLabelsTop.md | 12 + client/docs/ByLabelsTopContainer.md | 11 + client/docs/CaptureThreshold.md | 10 + client/docs/ChoiceFieldDataPrivate.md | 11 + client/docs/ChoiceFieldDataType.md | 11 + client/docs/ClientSecretApplicationModel.md | 14 + .../docs/ClientSecretApplicationModelKind.md | 12 + client/docs/CmModelConfig.md | 11 + client/docs/Comment.md | 23 + client/docs/CommentExtractionsPredictions.md | 11 + client/docs/CommentFilter.md | 19 + client/docs/CommentNew.md | 17 + client/docs/CommentPrediction.md | 16 + client/docs/CommentSentiment.md | 11 + client/docs/CommentSpanNewChar.md | 14 + client/docs/CommentSpanNewUtf16.md | 14 + client/docs/CommentThread.md | 12 + client/docs/CommentsApi.md | 415 +++ client/docs/Comparison.md | 12 + client/docs/ConnectionModel.md | 15 + client/docs/ContentPart.md | 14 + client/docs/Contribution.md | 12 + client/docs/Contributor.md | 12 + client/docs/ContributorKind.md | 27 + client/docs/ConversationalFilterApi.md | 41 + client/docs/ConversationalFilterRequest.md | 12 + client/docs/ConversationalFilterResponse.md | 18 + client/docs/Coocurrence.md | 12 + client/docs/CoocurrenceLabels.md | 12 + client/docs/Count.md | 10 + client/docs/CreateAlertRequest.md | 11 + client/docs/CreateAlertResponse.md | 12 + client/docs/CreateBucketRequest.md | 11 + client/docs/CreateBucketResponse.md | 12 + client/docs/CreateDashboardRequest.md | 11 + client/docs/CreateDashboardResponse.md | 12 + client/docs/CreateDatasetRequest.md | 11 + client/docs/CreateDatasetResponse.md | 13 + client/docs/CreateIntegrationRequest.md | 11 + client/docs/CreateIntegrationResponse.md | 12 + client/docs/CreateIxpDatasetRequest.md | 11 + client/docs/CreateIxpDatasetResponse.md | 12 + client/docs/CreateLabelDefsBulkResponse.md | 11 + client/docs/CreateLabelGroupRequest.md | 14 + client/docs/CreateLabelGroupResponse.md | 12 + .../CreateOrUpdateLabelDefsBulkRequest.md | 11 + ...pdateLabelDefsBulkRequestLabelDefsInner.md | 18 + client/docs/CreatePageViewRequest.md | 12 + client/docs/CreatePageViewResponse.md | 11 + client/docs/CreateProjectRequest.md | 13 + client/docs/CreateProjectResponse.md | 12 + .../docs/CreateProjectSetupCreatedResponse.md | 13 + client/docs/CreateProjectSetupRequest.md | 15 + client/docs/CreateProjectSetupResponse.md | 15 + client/docs/CreateSourceRequest.md | 11 + client/docs/CreateSourceResponse.md | 12 + client/docs/CreateStreamRequest.md | 11 + client/docs/CreateStreamResponse.md | 12 + client/docs/CreateTenantRequest.md | 11 + client/docs/CreateTenantResponse.md | 12 + client/docs/CreateTriggerRequest.md | 11 + client/docs/CreateTriggerResponse.md | 12 + client/docs/CreateUserRequest.md | 11 + client/docs/CreateUserResponse.md | 12 + client/docs/CustomAction.md | 18 + client/docs/CustomTrainingAction.md | 13 + client/docs/Dashboard.md | 19 + client/docs/DashboardUpdate.md | 13 + client/docs/DashboardsApi.md | 201 ++ client/docs/Data.md | 11 + client/docs/DataType.md | 11 + client/docs/DataTypeDate.md | 11 + client/docs/DataTypeMoney.md | 11 + client/docs/DataTypeNumber.md | 11 + client/docs/DataTypeText.md | 11 + client/docs/Dataset.md | 32 + client/docs/DatasetFlag.md | 20 + client/docs/DatasetNew.md | 28 + client/docs/DatasetOperation.md | 15 + client/docs/DatasetQuality.md | 16 + client/docs/DatasetStatus.md | 18 + client/docs/DatasetStringSummaryValue.md | 11 + client/docs/DatasetSummary.md | 21 + client/docs/DatasetTrainingAction.md | 15 + client/docs/DatasetUpdate.md | 24 + client/docs/DatasetUpdateEntityDefsInner.md | 19 + client/docs/DatasetUserPropertiesSummary.md | 12 + .../DatasetUserPropertiesSummaryNumber.md | 11 + .../DatasetUserPropertiesSummaryString.md | 13 + client/docs/DatasetsApi.md | 597 ++++ client/docs/DateFieldDataPrivate.md | 11 + client/docs/DateFieldDataType.md | 11 + client/docs/DeleteAlertResponse.md | 11 + client/docs/DeleteAlertSubscriptionReponse.md | 11 + client/docs/DeleteBucketResponse.md | 11 + client/docs/DeleteCommentResponse.md | 11 + client/docs/DeleteDashboardResponse.md | 11 + client/docs/DeleteDatasetByIdResponse.md | 11 + client/docs/DeleteDatasetResponse.md | 11 + client/docs/DeleteIntegrationResponse.md | 11 + client/docs/DeleteIxpDatasetResponse.md | 11 + client/docs/DeleteKeyedSyncStateResponse.md | 11 + client/docs/DeleteLabelDefResponse.md | 12 + client/docs/DeleteLabelGroupResponse.md | 11 + client/docs/DeleteModelTagResponse.md | 11 + client/docs/DeleteProjectResponse.md | 11 + client/docs/DeleteSourceResponse.md | 11 + client/docs/DeleteStreamExceptionResponse.md | 11 + client/docs/DeleteStreamResponse.md | 11 + ...TenantDefaultProjectPermissionsResponse.md | 12 + client/docs/DeleteTenantResponse.md | 11 + client/docs/DeleteTriggerResponse.md | 11 + client/docs/DeleteUserResponse.md | 11 + client/docs/DeploymentApi.md | 67 + client/docs/DeprecatedUserModelMetadata.md | 17 + client/docs/DeprecationApi.md | 36 + client/docs/Diagnostic.md | 12 + client/docs/DiagnosticKind.md | 19 + client/docs/Direction.md | 13 + client/docs/DisableIntegrationAction.md | 11 + client/docs/DisableMailboxAction.md | 13 + client/docs/DiscoverApi.md | 40 + client/docs/DocPathIxpModelConfig.md | 12 + .../docs/DocumentLabelPropertyPrediction.md | 13 + client/docs/DocumentSearchResult.md | 12 + client/docs/DocumentSpan.md | 13 + client/docs/DocumentsApi.md | 72 + client/docs/Email.md | 18 + client/docs/EmailMetadata.md | 20 + client/docs/EmailMetadataNew.md | 20 + client/docs/EmailNew.md | 16 + client/docs/EmailPropertiesSummary.md | 12 + .../docs/EmailPropertiesSummaryByProperty.md | 18 + client/docs/EmailPropertiesSummaryValue.md | 11 + client/docs/EmailPropertyCounts.md | 16 + client/docs/EmailPropertyCountsByProperty.md | 19 + client/docs/EmailPropertyCountsSettings.md | 12 + .../EmailPropertyCountsSettingsByProperty.md | 19 + client/docs/EmailTransformTagInfo.md | 12 + client/docs/EmailsApi.md | 142 + client/docs/Entities.md | 13 + client/docs/EntitiesNew.md | 12 + client/docs/EntitiesPrStats.md | 21 + client/docs/EntitiesRules.md | 11 + client/docs/EntitiesRulesPresenceInner.md | 13 + client/docs/Entity.md | 17 + client/docs/EntityAverageStats.md | 21 + client/docs/EntityDef.md | 19 + client/docs/EntityDefFlag.md | 13 + client/docs/EntityDefIdStat.md | 22 + client/docs/EntityDefNew.md | 19 + client/docs/EntityDefSummary.md | 13 + client/docs/EntityDefUpdate.md | 19 + .../docs/EntityDefUpdateInheritsFromInner.md | 10 + client/docs/EntityHealth.md | 13 + client/docs/EntityHealthAction.md | 11 + client/docs/EntityHealthActionKind.md | 15 + client/docs/EntityHealthSmart.md | 13 + client/docs/EntityHealthWarning.md | 11 + client/docs/EntityHealthWarningKind.md | 15 + client/docs/EntityKind.md | 79 + client/docs/EntityNew.md | 17 + client/docs/EntityNewSpansInner.md | 16 + client/docs/EntityPresenceFilter.md | 12 + client/docs/EntityPresenceFilterWithKind.md | 12 + client/docs/EntityRuleSetApi.md | 13 + client/docs/EntityRuleSetNewApi.md | 13 + client/docs/EntityRuleSetUpdateApi.md | 13 + .../EntityRuleSetUpdateApiChoicesInner.md | 13 + client/docs/EntitySummaryV1.md | 12 + client/docs/EntityTemplatePropertiesApi.md | 12 + client/docs/EntityTemplatesPropertiesApi.md | 11 + client/docs/ErrorAction.md | 13 + client/docs/ErrorResponse.md | 12 + client/docs/EwsApiModel.md | 11 + client/docs/EwsApiModelKind.md | 12 + client/docs/ExactBucketCount.md | 12 + client/docs/ExceptionModel.md | 12 + client/docs/ExportDatasetRequest.md | 17 + client/docs/ExportDatasetResponse.md | 13 + client/docs/ExportedAnnotations.md | 12 + client/docs/ExportedComment.md | 14 + client/docs/ExportedLabel.md | 14 + client/docs/ExportedLabels.md | 11 + client/docs/ExportedPredictions.md | 12 + client/docs/ExtractionFieldDefinition.md | 14 + client/docs/ExtractionPrediction.md | 12 + client/docs/FetchFromGxStreamRequest.md | 12 + client/docs/FetchFromGxStreamResponse.md | 14 + client/docs/FetchFromStreamRequest.md | 12 + client/docs/FetchFromStreamResponse.md | 15 + client/docs/FieldAnnotationPrivate.md | 16 + client/docs/FieldChoiceApi.md | 13 + client/docs/FieldChoiceNewApi.md | 13 + client/docs/FieldGroupAnnotationPrivate.md | 13 + client/docs/FieldGroupPredictionPrivate.md | 15 + client/docs/FieldGroupSnapshot.md | 13 + client/docs/FieldGroupVersionEntry.md | 13 + client/docs/FieldPredictionPrivate.md | 17 + client/docs/FieldSnapshot.md | 14 + client/docs/FieldType.md | 14 + client/docs/FieldUipathContextModel.md | 13 + client/docs/FieldValuePrivate.md | 12 + client/docs/FieldVersionEntry.md | 13 + client/docs/FilesApi.md | 39 + client/docs/Filter.md | 19 + client/docs/Freshness.md | 14 + client/docs/FullParticipantFilter.md | 16 + client/docs/GeminiTableOnlyConfig.md | 11 + client/docs/GeneralFieldDef.md | 15 + client/docs/GeneralFieldDefNew.md | 14 + client/docs/GeneralFieldDefUpdate.md | 15 + client/docs/GeneralFieldDefinition.md | 14 + client/docs/GetAlertResponse.md | 12 + client/docs/GetAlertSubscriptionsResponse.md | 12 + client/docs/GetAllAlertsResponse.md | 12 + client/docs/GetAllBucketsResponse.md | 12 + .../docs/GetAllDashboardsInDatasetResponse.md | 13 + .../docs/GetAllDashboardsInProjectResponse.md | 12 + .../docs/GetAllDatasetsInProjectResponse.md | 12 + client/docs/GetAllDatasetsResponse.md | 12 + .../GetAllIntegrationsInProjectResponse.md | 12 + client/docs/GetAllIntegrationsResponse.md | 12 + .../docs/GetAllIxpModelsInProjectResponse.md | 14 + client/docs/GetAllIxpProjectsResponse.md | 12 + client/docs/GetAllLabelGroupsResponse.md | 12 + client/docs/GetAllModelsInDatasetRequest.md | 15 + client/docs/GetAllModelsInDatasetResponse.md | 14 + client/docs/GetAllProjectsResponse.md | 12 + client/docs/GetAllProjectsV1Response.md | 12 + client/docs/GetAllSourcesInProjectResponse.md | 12 + client/docs/GetAllSourcesResponse.md | 12 + client/docs/GetAllStreamsResponse.md | 12 + .../docs/GetAllTriggersInDatasetResponse.md | 12 + client/docs/GetBucketByIdResponse.md | 12 + client/docs/GetBucketEmailsRequest.md | 12 + client/docs/GetBucketEmailsResponse.md | 13 + client/docs/GetBucketResponse.md | 12 + client/docs/GetBucketStatisticsResponse.md | 12 + client/docs/GetBucketSyncStateResponse.md | 12 + client/docs/GetBucketsByOwnerResponse.md | 12 + client/docs/GetCommentPredictionsRequest.md | 13 + client/docs/GetCommentPredictionsResponse.md | 13 + client/docs/GetCommentResponse.md | 12 + client/docs/GetComparisonRequest.md | 15 + client/docs/GetComparisonResponse.md | 12 + client/docs/GetDashboardResponse.md | 12 + client/docs/GetDatasetResponse.md | 12 + client/docs/GetDatasetStatisticsRequest.md | 25 + client/docs/GetDatasetStatisticsResponse.md | 12 + client/docs/GetDatasetStatusResponse.md | 12 + client/docs/GetDatasetSummaryRequest.md | 15 + client/docs/GetDatasetSummaryResponse.md | 12 + ...GetDatasetUserPropertiesSummaryResponse.md | 12 + .../docs/GetDeprecatedUserModelsResponse.md | 13 + client/docs/GetDerivedPermissionResponse.md | 14 + client/docs/GetDerivedPermissionsRequest.md | 12 + client/docs/GetDocumentMetadataResponse.md | 12 + client/docs/GetDocumentSearchResponse.md | 12 + client/docs/GetEmailFromBucketByIdResponse.md | 12 + .../docs/GetEmailTransformTagInfoResponse.md | 12 + client/docs/GetFieldGroupHistoryResponse.md | 13 + client/docs/GetFieldHistoryResponse.md | 13 + client/docs/GetIntegrationByIdResponse.md | 12 + client/docs/GetIntegrationErrorsResponse.md | 12 + client/docs/GetIntegrationResponse.md | 12 + client/docs/GetIssueResponse.md | 13 + .../docs/GetIxpConsumabilityInfoResponse.md | 13 + client/docs/GetIxpProjectResponse.md | 12 + client/docs/GetKeyedSyncStateResponse.md | 12 + client/docs/GetLabelDefResponse.md | 12 + client/docs/GetLabelGroupResponse.md | 12 + client/docs/GetLabelValidationRequest.md | 12 + client/docs/GetLabelValidationResponse.md | 13 + client/docs/GetLabellingsResponse.md | 15 + client/docs/GetModelTagsResponse.md | 12 + client/docs/GetPageSelectionsResponse.md | 12 + client/docs/GetPretrainedLabelsResponse.md | 12 + .../docs/GetProjectResourceCountsResponse.md | 17 + client/docs/GetProjectResponse.md | 12 + client/docs/GetQualifiedLoginUrlRequest.md | 11 + client/docs/GetQualifiedLoginUrlResponse.md | 12 + client/docs/GetQuotasForTenantResponse.md | 12 + client/docs/GetReducedPermissionsRequest.md | 12 + client/docs/GetReducedPermissionsResponse.md | 14 + ...ucedPermissionsResponsePermissionsInner.md | 10 + client/docs/GetSourceByIdResponse.md | 12 + client/docs/GetSourceCommentsResponse.md | 14 + ...ceCommentsResponseThreadPropertiesInner.md | 16 + client/docs/GetSourceResponse.md | 12 + client/docs/GetSourceStatisticsRequest.md | 11 + client/docs/GetSourceStatisticsResponse.md | 12 + client/docs/GetStreamByNameResponse.md | 12 + client/docs/GetStreamResultsResponse.md | 16 + client/docs/GetSubdomainResponse.md | 12 + client/docs/GetTenantClientSubnetsResponse.md | 12 + ...TenantDefaultProjectPermissionsResponse.md | 12 + client/docs/GetTenantDomainsResponse.md | 12 + client/docs/GetTenantEntityDefIdsResponse.md | 12 + client/docs/GetTenantQuotaResponse.md | 12 + client/docs/GetTenantsResponse.md | 12 + client/docs/GetThemesResponse.md | 13 + client/docs/GetThreadThemesRequest.md | 12 + client/docs/GetThreadThemesResponse.md | 12 + client/docs/GetThreadsBySourceResponse.md | 12 + .../GetTrainingActionsCommentUidsResponse.md | 12 + .../docs/GetTrainingActionsLabelsResponse.md | 12 + ...abelsResponseTrainingActionsLabelsInner.md | 17 + client/docs/GetTriggerResponse.md | 12 + client/docs/GetUserByIdResponse.md | 12 + client/docs/GetUsersResponse.md | 12 + client/docs/GetUsersV1Response.md | 12 + client/docs/GetValidationResponse.md | 15 + client/docs/GetValidationV1Response.md | 12 + client/docs/GlobalPermission.md | 29 + client/docs/GptIxpFlag.md | 15 + client/docs/GptIxpModelConfig.md | 21 + client/docs/GptModelVersion.md | 13 + client/docs/GraphApiModel.md | 11 + client/docs/GraphApiModelKind.md | 12 + client/docs/GroupLabellingsRequest.md | 14 + client/docs/GroupPredictions.md | 12 + client/docs/Headers.md | 12 + client/docs/Highlight.md | 11 + client/docs/HistogramBin.md | 14 + client/docs/ImageInputConfig.md | 11 + client/docs/ImportTaxonomyRequest.md | 13 + client/docs/ImportTaxonomyResponse.md | 11 + client/docs/InferenceStats.md | 13 + client/docs/InheritsFrom.md | 10 + client/docs/InputConfig.md | 12 + client/docs/Integration.md | 20 + client/docs/IntegrationDisabledReason.md | 14 + client/docs/IntegrationError.md | 17 + client/docs/IntegrationErrorDetails.md | 12 + client/docs/IntegrationNew.md | 15 + client/docs/IntegrationType.md | 13 + client/docs/IntegrationUpdate.md | 14 + client/docs/IntegrationsApi.md | 353 +++ .../IntegrationsOAuth2AuthenticateResponse.md | 13 + client/docs/IntentThreshold.md | 10 + client/docs/IntentValidation.md | 24 + client/docs/IntentValidationSummary.md | 21 + client/docs/IntentsValue.md | 21 + client/docs/InterpretationSpan.md | 13 + client/docs/Issue.md | 14 + client/docs/IssueDetail.md | 14 + client/docs/IssueStatus.md | 13 + client/docs/IterativeConfig.md | 12 + client/docs/IxpConfidence.md | 11 + client/docs/IxpDatasetNew.md | 11 + client/docs/IxpDatasetsApi.md | 70 + client/docs/IxpExtractionStatus.md | 13 + client/docs/IxpField.md | 15 + client/docs/IxpFieldGroup.md | 15 + client/docs/IxpFieldType.md | 14 + client/docs/IxpModelMetadata.md | 17 + client/docs/IxpModelsApi.md | 133 + client/docs/IxpPredictExtractionsResponse.md | 13 + client/docs/IxpProject.md | 14 + client/docs/IxpProjectsApi.md | 133 + client/docs/IxpRelativeUrls.md | 12 + client/docs/IxpTaxonomy.md | 15 + client/docs/IxpTaxonomyExtraction.md | 14 + client/docs/IxpUploadDocumentResponse.md | 12 + client/docs/IxpUploadedDocument.md | 11 + client/docs/KeyedFolderSyncState.md | 17 + client/docs/KeyedFolderSyncStateUpdate.md | 17 + client/docs/KeyedMailboxSyncState.md | 15 + client/docs/KeyedMailboxSyncStateUpdate.md | 15 + client/docs/KeyedSyncState.md | 17 + client/docs/KeyedSyncState1.md | 17 + client/docs/Label.md | 14 + client/docs/LabelAction.md | 13 + client/docs/LabelCollection.md | 12 + client/docs/LabelComparison.md | 13 + client/docs/LabelCounts.md | 12 + client/docs/LabelDef.md | 19 + client/docs/LabelDefFlag.md | 12 + client/docs/LabelDefNew.md | 17 + client/docs/LabelDefProperty.md | 12 + client/docs/LabelDefUpdate.md | 18 + client/docs/LabelDefUpdateMoonFormInner.md | 17 + client/docs/LabelDefUpdateRequest.md | 11 + client/docs/LabelDefinition.md | 13 + client/docs/LabelDefsApi.md | 216 ++ client/docs/LabelGroup.md | 16 + client/docs/LabelGroupNew.md | 16 + client/docs/LabelGroupsApi.md | 140 + client/docs/LabelHealth.md | 13 + client/docs/LabelHealthAction.md | 12 + client/docs/LabelHealthSmart.md | 13 + client/docs/LabelHealthWarning.md | 12 + client/docs/LabelMetrics.md | 21 + client/docs/LabelNameOnlyResponse.md | 11 + client/docs/LabelPropertiesDigest.md | 11 + client/docs/LabelProperty.md | 14 + client/docs/LabelPropertyDigest.md | 11 + client/docs/LabelPropertyId.md | 13 + client/docs/LabelPropertyName.md | 13 + client/docs/LabelPropertySummary.md | 13 + client/docs/LabelPropertySummaryLabel.md | 12 + client/docs/LabelPropertyTimeSeriesRow.md | 12 + client/docs/LabelSentiment.md | 13 + client/docs/LabelSuggestionReasoning.md | 12 + client/docs/LabelSummaryV1.md | 12 + client/docs/LabelTimeseriesEntry.md | 15 + client/docs/LabelTrainingAction.md | 17 + client/docs/LabelValidationSummary.md | 17 + client/docs/LabellingGroup.md | 15 + client/docs/Language.md | 14 + client/docs/LegacyEntityPatternApi.md | 11 + client/docs/ListKeyedSyncStatesResponse.md | 12 + ...dSyncStatesResponseKeyedSyncStatesInner.md | 17 + client/docs/Locales.md | 12 + client/docs/LocalesPreferences.md | 12 + client/docs/LowerBoundBucketCount.md | 12 + client/docs/MarkupBreak.md | 12 + client/docs/MarkupBreakKind.md | 13 + client/docs/MarkupImage.md | 13 + client/docs/MarkupLink.md | 13 + client/docs/MarkupList.md | 13 + client/docs/MarkupListItem.md | 11 + client/docs/MarkupListKind.md | 13 + client/docs/MarkupParagraph.md | 13 + client/docs/MarkupParagraphKind.md | 32 + client/docs/MarkupStyle.md | 13 + client/docs/MarkupStyleKind.md | 36 + client/docs/MarkupTable.md | 14 + client/docs/MarkupTableCaption.md | 11 + client/docs/MarkupTableCell.md | 14 + client/docs/MarkupTableCellChildrenInner.md | 10 + client/docs/MarkupTableCellKind.md | 13 + client/docs/MarkupTableRow.md | 12 + client/docs/MarkupTableSectionKind.md | 14 + client/docs/MarkupText.md | 12 + client/docs/MatchedFieldGroupExtractions.md | 12 + client/docs/MeanPrCurve.md | 12 + client/docs/Message.md | 19 + client/docs/MessageFilter.md | 15 + client/docs/MessageRichText.md | 14 + client/docs/MessageRichTextTextMarkupInner.md | 24 + client/docs/MessageSpan.md | 14 + client/docs/MessageText.md | 12 + client/docs/Metadata.md | 11 + client/docs/MetadataApi.md | 135 + client/docs/MicrosoftApi.md | 11 + client/docs/ModelConfig.md | 22 + client/docs/ModelDefinition.md | 11 + client/docs/ModelError.md | 12 + client/docs/ModelErrorKind.md | 15 + client/docs/ModelFamily.md | 18 + client/docs/ModelFamilyApi.md | 39 + client/docs/ModelName.md | 15 + client/docs/ModelRating.md | 15 + client/docs/ModelRatingAction.md | 15 + client/docs/ModelRatingFactor.md | 16 + client/docs/ModelRatingFactorKind.md | 15 + client/docs/ModelTaxonomy.md | 15 + client/docs/ModelsApi.md | 613 ++++ client/docs/MonetaryFieldDataPrivate.md | 11 + client/docs/MonetaryQuantityFieldDataType.md | 11 + .../docs/MoonFormCaptureFieldsAnnotation.md | 11 + .../MoonFormCaptureFieldsAnnotationNew.md | 11 + .../docs/MoonFormCaptureFieldsPrediction.md | 12 + client/docs/MoonFormDismissedUpdate.md | 13 + client/docs/MoonFormFieldAnnotation.md | 20 + client/docs/MoonFormFieldAnnotationNew.md | 18 + client/docs/MoonFormFieldDef.md | 17 + client/docs/MoonFormFieldDefNew.md | 16 + client/docs/MoonFormFieldDefUpdate.md | 14 + client/docs/MoonFormFieldPrediction.md | 19 + client/docs/MoonFormGroup.md | 17 + client/docs/MoonFormGroupUpdate.md | 14 + client/docs/MoonFormLabelAnnotation.md | 12 + client/docs/MoonFormLabelAnnotationUpdate.md | 12 + client/docs/MoonFormLabelPrediction.md | 12 + client/docs/MoonIntentFieldsMetrics.md | 14 + client/docs/MoonIntentValidationRequest.md | 12 + client/docs/MoonSummaryMetrics.md | 21 + client/docs/MoonValidation.md | 12 + client/docs/Name.md | 10 + client/docs/NewDashboard.md | 14 + client/docs/NoUiMetadataReason.md | 13 + client/docs/NpsSummary.md | 15 + client/docs/NtlmApplicationModel.md | 11 + client/docs/NtlmApplicationModelKind.md | 12 + client/docs/NullableStringArrayFilter.md | 13 + client/docs/NumberFieldDataType.md | 11 + client/docs/NumberOneOfFilter.md | 13 + client/docs/NumberRangeFilter.md | 12 + client/docs/NumberRangeFilterWithKind.md | 13 + client/docs/NumberUserPropertySummary.md | 12 + .../docs/OAuth2SalesforceCallbackRequest.md | 12 + .../docs/OAuth2SalesforceCallbackResponse.md | 11 + client/docs/OptimalThreshold.md | 13 + client/docs/Order.md | 10 + client/docs/PageDimensions.md | 12 + client/docs/PageMetadata.md | 12 + client/docs/PagePolygon.md | 11 + client/docs/PageSelection.md | 14 + client/docs/ParseEmailNewComment.md | 17 + client/docs/ParsedValue.md | 10 + client/docs/Period.md | 12 + client/docs/PermissionsApi.md | 39 + client/docs/PinModelResponse.md | 11 + client/docs/PollTriggerRequest.md | 12 + client/docs/PollTriggerResponse.md | 15 + client/docs/PrCurve.md | 14 + client/docs/PredictDocument.md | 14 + client/docs/PredictExtractionsRequest.md | 11 + client/docs/PredictExtractionsResponse.md | 12 + client/docs/PredictLatestRequest.md | 14 + client/docs/PredictLatestResponse.md | 16 + client/docs/PredictRawEmailsRequest.md | 15 + client/docs/PredictRawEmailsResponse.md | 17 + client/docs/PredictRequest.md | 14 + client/docs/PredictResponse.md | 17 + client/docs/PredictedEntity.md | 18 + client/docs/PredictedLabel.md | 13 + client/docs/PredictedLabelProperty.md | 13 + client/docs/PredictionsModel.md | 12 + client/docs/Preference.md | 12 + client/docs/PreferredLocale.md | 12 + client/docs/PreviewAlertRequest.md | 11 + client/docs/PreviewAlertResponse.md | 14 + client/docs/PrivateKeyApplicationModel.md | 15 + client/docs/PrivateKeyApplicationModelKind.md | 12 + client/docs/Process.md | 15 + client/docs/Project.md | 17 + client/docs/ProjectNew.md | 13 + client/docs/ProjectPermission.md | 45 + client/docs/ProjectSetupExistingSource.md | 11 + client/docs/ProjectSetupNewDataset.md | 13 + client/docs/ProjectSetupNewProject.md | 11 + client/docs/ProjectSetupNewSource.md | 13 + client/docs/ProjectSetupNewStream.md | 11 + client/docs/ProjectSetupNewUsers.md | 11 + client/docs/ProjectV1.md | 13 + client/docs/ProjectsApi.md | 257 ++ client/docs/PutCommentAsSeenRequest.md | 11 + client/docs/PutCommentAsSeenResponse.md | 12 + client/docs/QueryAuditEventsFilter.md | 11 + client/docs/QueryAuditEventsRequest.md | 13 + client/docs/QueryAuditEventsResponse.md | 19 + client/docs/QueryCommentsOrderAnyLabel.md | 11 + .../QueryCommentsOrderAttachmentTextSearch.md | 12 + client/docs/QueryCommentsOrderByLabel.md | 13 + client/docs/QueryCommentsOrderCheck.md | 12 + client/docs/QueryCommentsOrderDiagnostic.md | 13 + .../docs/QueryCommentsOrderLabelProperty.md | 13 + client/docs/QueryCommentsOrderLearning.md | 12 + client/docs/QueryCommentsOrderMissed.md | 12 + client/docs/QueryCommentsOrderRecent.md | 11 + client/docs/QueryCommentsOrderSample.md | 12 + client/docs/QueryCommentsOrderTextSearch.md | 12 + client/docs/QueryCommentsRequest.md | 16 + client/docs/QueryCommentsResponse.md | 18 + .../QueryDatasetUserPropertyValuesFilter.md | 12 + .../QueryDatasetUserPropertyValuesRequest.md | 12 + .../QueryDatasetUserPropertyValuesResponse.md | 12 + client/docs/QueryIssuesRequest.md | 11 + client/docs/QueryIssuesResponse.md | 13 + client/docs/QueryKeyedSyncStateIdsRequest.md | 11 + client/docs/QueryKeyedSyncStateIdsResponse.md | 12 + client/docs/QueryResultCounts.md | 12 + client/docs/Quota.md | 14 + client/docs/QuotaKind.md | 32 + client/docs/QuotasApi.md | 164 ++ client/docs/RawEmail.md | 13 + client/docs/RawEmailBody.md | 12 + client/docs/RawEmailDocument.md | 13 + client/docs/RawEmailHeadersParsed.md | 11 + client/docs/RawEmailHeadersRaw.md | 11 + client/docs/Regex.md | 12 + client/docs/RemoveSupportTenantRequest.md | 12 + client/docs/RemoveSupportTenantResponse.md | 11 + client/docs/ReportsApi.md | 201 ++ ...AnnotationsToPreviousPinnedModelRequest.md | 11 + ...nnotationsToPreviousPinnedModelResponse.md | 11 + client/docs/ResetStreamRequest.md | 11 + client/docs/ResetStreamResponse.md | 13 + client/docs/ResetTenantQuotaResponse.md | 11 + client/docs/ResetTriggerRequest.md | 11 + client/docs/ResetTriggerResponse.md | 13 + client/docs/ResponseStatusError.md | 12 + client/docs/RetrievalMethod.md | 28 + client/docs/ReviewableBlock.md | 12 + client/docs/ReviewableBlockGroup.md | 11 + client/docs/Reviewed.md | 13 + client/docs/ReviewedFilterRule.md | 13 + client/docs/RichDiagnosticKind.md | 12 + client/docs/SearchApi.md | 40 + client/docs/SendWelcomeEmailResponse.md | 11 + client/docs/Sentiment.md | 12 + client/docs/SetCommentAudioResponse.md | 11 + client/docs/SetQuotaForTenantRequest.md | 12 + client/docs/SetQuotaForTenantResponse.md | 11 + client/docs/SetTenantQuotaRequest.md | 11 + client/docs/SetTenantQuotaResponse.md | 13 + client/docs/SetTenantStateRequest.md | 11 + client/docs/SetTenantStateResponse.md | 11 + client/docs/Significance.md | 12 + client/docs/SignificanceValue.md | 12 + client/docs/SingleLabelSummary.md | 16 + client/docs/SingleTenantsResponse.md | 12 + client/docs/SniffCsvResponse.md | 14 + client/docs/Source.md | 25 + client/docs/Source1.md | 14 + client/docs/SourceCounts.md | 16 + client/docs/SourceCountsSettings.md | 12 + client/docs/SourceKind.md | 16 + client/docs/SourceStatistics.md | 11 + client/docs/SourceUpdate.md | 19 + client/docs/SourcesApi.md | 323 +++ client/docs/Span.md | 16 + client/docs/Statistics.md | 25 + client/docs/StoreBucketSyncStateRequest.md | 11 + client/docs/StoreBucketSyncStateResponse.md | 11 + client/docs/StoreExceptionRequest.md | 11 + client/docs/StoreExceptionResponse.md | 11 + client/docs/StoreKeyedSyncStateRequest.md | 11 + client/docs/StoreKeyedSyncStateResponse.md | 11 + client/docs/StreamCommentExtractionsResult.md | 13 + client/docs/StreamCommentPrediction.md | 12 + client/docs/StreamCommentResult.md | 15 + client/docs/StreamConfidence.md | 12 + .../docs/StreamExtractionFieldPrediction.md | 13 + client/docs/StreamFieldValue.md | 11 + client/docs/StreamGeneralFieldPrediction.md | 14 + client/docs/StreamLabelPrediction.md | 14 + client/docs/StreamResult.md | 13 + client/docs/StreamScorePrediction.md | 12 + client/docs/StreamTaxonomyPrediction.md | 13 + client/docs/StreamTextSpan.md | 14 + client/docs/StreamsApi.md | 446 +++ client/docs/StringAnyOfFilter.md | 12 + client/docs/StringArrayFilter.md | 13 + client/docs/StringNoneOfFilter.md | 12 + client/docs/StringOneOfFilter.md | 13 + client/docs/StringSearchFilter.md | 12 + client/docs/StringUserPropertyCount.md | 15 + client/docs/StringUserPropertyCountSingle.md | 12 + .../docs/StringUserPropertyCountsSettings.md | 13 + client/docs/StringUserPropertySummary.md | 14 + client/docs/SuggestTaxonomyRequest.md | 12 + client/docs/SuggestTaxonomyResponse.md | 12 + client/docs/SuggestedLabel.md | 13 + client/docs/SuggestedTaxonomy.md | 12 + client/docs/SyncAnnotationsRequest.md | 11 + client/docs/SyncAnnotationsResponse.md | 11 + client/docs/SyncCommentsFromCsvResponse.md | 16 + client/docs/SyncCommentsRequest.md | 11 + client/docs/SyncCommentsResponse.md | 16 + client/docs/SyncRawEmailsRequest.md | 14 + client/docs/SyncRawEmailsResponse.md | 17 + client/docs/SyncStatus.md | 13 + client/docs/TaggedIxpModelVersion.md | 13 + client/docs/TaggedUserModelVersion.md | 13 + client/docs/TaggedUserModelVersionName.md | 13 + client/docs/TaggedUserModelVersionUpdate.md | 13 + client/docs/TaxonomyExtractionPrivate.md | 15 + client/docs/Tenant.md | 19 + client/docs/TenantNew.md | 14 + client/docs/TenantUpdate.md | 13 + client/docs/TenantsApi.md | 477 ++++ client/docs/TextConfig.md | 11 + client/docs/TextFieldDataPrivate.md | 11 + client/docs/TextFieldDataType.md | 12 + client/docs/TextFieldFlag.md | 12 + client/docs/TextFormat.md | 10 + client/docs/TextImageInputConfig.md | 12 + client/docs/TextSpan.md | 16 + client/docs/Theme.md | 13 + client/docs/ThemeComment.md | 12 + client/docs/ThemeCommentInterpretation.md | 13 + client/docs/ThemeSet.md | 12 + client/docs/ThemesApi.md | 40 + client/docs/ThreadHistogramBinningCustom.md | 13 + .../ThreadHistogramBinningCustomContainer.md | 11 + client/docs/ThreadHistogramBinningFixed.md | 12 + .../ThreadHistogramBinningFixedContainer.md | 11 + client/docs/ThreadHistogramBinningVariable.md | 11 + ...ThreadHistogramBinningVariableContainer.md | 11 + client/docs/ThreadHistogramCounts.md | 12 + .../docs/ThreadHistogramCountsByProperty.md | 14 + client/docs/ThreadHistogramSettings.md | 11 + .../docs/ThreadHistogramSettingsByProperty.md | 14 + client/docs/ThreadProperties.md | 16 + client/docs/ThreadPropertyFilter.md | 20 + client/docs/ThreadTheme.md | 12 + client/docs/ThreadThemesApi.md | 41 + client/docs/Threshold.md | 10 + client/docs/Threshold1.md | 10 + client/docs/ThresholdEnum.md | 12 + client/docs/TimePeriodComparison.md | 14 + client/docs/TimeResolution.md | 15 + client/docs/TimestampRangeFilter.md | 12 + client/docs/TrainView.md | 15 + client/docs/TrainingAction.md | 17 + client/docs/TrainingActionCompleteness.md | 15 + client/docs/Translation.md | 19 + client/docs/Trigger.md | 19 + client/docs/TriggerException.md | 11 + client/docs/TriggerExceptionsSummary.md | 12 + client/docs/TriggerLabelThreshold.md | 12 + client/docs/TriggerNew.md | 15 + client/docs/TriggerUpdate.md | 15 + client/docs/TriggerUserModel.md | 12 + client/docs/TriggersApi.md | 342 +++ client/docs/Ui.md | 15 + client/docs/UiAnnotationMetadata.md | 15 + client/docs/UiPathCvTableOnlyConfig.md | 11 + .../docs/UiPathProvisionCreateProperties.md | 11 + client/docs/UiPathProvisionCreateRequest.md | 15 + client/docs/UiPathProvisionCreateResponse.md | 13 + client/docs/UiPathProvisionDeleteRequest.md | 13 + client/docs/UiPathProvisionDeleteResponse.md | 14 + client/docs/UiPathProvisionRestoreRequest.md | 13 + client/docs/UiPathProvisionRestoreResponse.md | 13 + .../docs/UiPathProvisionUpdateProperties.md | 11 + client/docs/UiPathProvisionUpdateRequest.md | 14 + client/docs/UiPathProvisionUpdateResponse.md | 13 + client/docs/UiPathTenantServiceStatus.md | 17 + client/docs/UipathProvisioningApi.md | 138 + client/docs/UnaryLabelHealthAction.md | 11 + client/docs/UnaryLabelHealthActionKind.md | 16 + client/docs/UnaryLabelHealthWarning.md | 11 + client/docs/UnaryLabelHealthWarningKind.md | 17 + client/docs/UninformativeLabel.md | 12 + client/docs/UninformativeMode.md | 13 + client/docs/UnpinModelResponse.md | 11 + client/docs/UpdateAlertRequest.md | 11 + client/docs/UpdateAlertResponse.md | 12 + client/docs/UpdateApplianceConfigResponse.md | 12 + client/docs/UpdateBucketRequest.md | 11 + client/docs/UpdateBucketResponse.md | 12 + client/docs/UpdateCommentLabellingRequest.md | 14 + client/docs/UpdateCommentLabellingResponse.md | 23 + client/docs/UpdateDashboardRequest.md | 11 + client/docs/UpdateDashboardResponse.md | 12 + client/docs/UpdateDatasetRequest.md | 11 + client/docs/UpdateDatasetResponse.md | 12 + client/docs/UpdateIntegrationRequest.md | 11 + client/docs/UpdateIntegrationResponse.md | 12 + client/docs/UpdateIssueStatusRequest.md | 11 + client/docs/UpdateIssueStatusResponse.md | 11 + client/docs/UpdateLabelDefResponse.md | 13 + client/docs/UpdateModelRequest.md | 12 + client/docs/UpdateModelResponse.md | 12 + client/docs/UpdateModelTagRequest.md | 11 + client/docs/UpdateModelTagResponse.md | 12 + client/docs/UpdateProjectRequest.md | 11 + client/docs/UpdateProjectResponse.md | 12 + client/docs/UpdateSourceRequest.md | 11 + client/docs/UpdateSourceResponse.md | 12 + .../docs/UpdateTenantClientSubnetsRequest.md | 11 + .../docs/UpdateTenantClientSubnetsResponse.md | 12 + ...eTenantDefaultProjectPermissionsRequest.md | 11 + ...TenantDefaultProjectPermissionsResponse.md | 12 + client/docs/UpdateTenantDomainsRequest.md | 11 + client/docs/UpdateTenantDomainsResponse.md | 12 + .../docs/UpdateTenantEntityDefIdsRequest.md | 11 + .../docs/UpdateTenantEntityDefIdsResponse.md | 12 + client/docs/UpdateTenantRequest.md | 11 + client/docs/UpdateTenantResponse.md | 12 + client/docs/UpdateTriggerRequest.md | 11 + client/docs/UpdateTriggerResponse.md | 12 + client/docs/UpdateUserRequest.md | 11 + client/docs/UpdateUserResponse.md | 12 + client/docs/UploadAttachmentResponse.md | 12 + client/docs/UploadDocumentResponse.md | 13 + client/docs/UploadFilesResponse.md | 11 + client/docs/User.md | 24 + client/docs/UserAccessModel.md | 13 + client/docs/UserAccessModelKind.md | 12 + client/docs/UserLicense.md | 14 + client/docs/UserLicenseCheck.md | 13 + client/docs/UserModel.md | 11 + client/docs/UserModelMetadata.md | 24 + client/docs/UserModelMetadataFlag.md | 14 + client/docs/UserModelMetadataSettings.md | 12 + client/docs/UserNew.md | 14 + client/docs/UserPropertiesSummary.md | 12 + client/docs/UserPropertiesValue.md | 10 + client/docs/UserUpdate.md | 12 + client/docs/UserV1.md | 13 + client/docs/UserWithLicenseCheck.md | 26 + client/docs/UsersApi.md | 313 +++ .../ValidateExchangeCredentialsRequest.md | 13 + .../ValidateExchangeCredentialsResponse.md | 12 + client/docs/ValidationSummary.md | 28 + client/docs/ValidationSummaryV1.md | 26 + client/docs/VariationKind.md | 13 + client/docs/Vertex.md | 12 + client/git_push.sh | 57 + client/src/apis/alerts_api.rs | 563 ++++ client/src/apis/analytics_api.rs | 64 + client/src/apis/appliance_configs_api.rs | 109 + client/src/apis/attachments_api.rs | 389 +++ client/src/apis/audit_events_api.rs | 64 + client/src/apis/buckets_api.rs | 698 +++++ client/src/apis/comments_api.rs | 618 ++++ client/src/apis/configuration.rs | 53 + client/src/apis/conversational_filter_api.rs | 64 + client/src/apis/dashboards_api.rs | 290 ++ client/src/apis/datasets_api.rs | 865 ++++++ client/src/apis/deployment_api.rs | 109 + client/src/apis/deprecation_api.rs | 63 + client/src/apis/discover_api.rs | 63 + client/src/apis/documents_api.rs | 113 + client/src/apis/emails_api.rs | 209 ++ client/src/apis/files_api.rs | 64 + client/src/apis/integrations_api.rs | 517 ++++ client/src/apis/ixp_datasets_api.rs | 109 + client/src/apis/ixp_models_api.rs | 203 ++ client/src/apis/ixp_projects_api.rs | 200 ++ client/src/apis/label_defs_api.rs | 299 ++ client/src/apis/label_groups_api.rs | 199 ++ client/src/apis/metadata_api.rs | 198 ++ client/src/apis/mod.rs | 132 + client/src/apis/model_family_api.rs | 63 + client/src/apis/models_api.rs | 847 ++++++ client/src/apis/permissions_api.rs | 64 + client/src/apis/projects_api.rs | 387 +++ client/src/apis/quotas_api.rs | 245 ++ client/src/apis/reports_api.rs | 290 ++ client/src/apis/search_api.rs | 64 + client/src/apis/sources_api.rs | 471 ++++ client/src/apis/streams_api.rs | 622 ++++ client/src/apis/tenants_api.rs | 700 +++++ client/src/apis/themes_api.rs | 63 + client/src/apis/thread_themes_api.rs | 64 + client/src/apis/triggers_api.rs | 474 ++++ client/src/apis/uipath_provisioning_api.rs | 202 ++ client/src/apis/users_api.rs | 473 ++++ client/src/lib.rs | 11 + client/src/models/_audit_events_dataset.rs | 36 + client/src/models/_audit_events_project.rs | 33 + client/src/models/_audit_events_source.rs | 36 + client/src/models/_audit_events_tenant.rs | 30 + client/src/models/_audit_events_trigger.rs | 36 + client/src/models/_audit_events_user.rs | 39 + client/src/models/_bucket_statistics.rs | 27 + .../models/_by_labels_include_container.rs | 27 + client/src/models/_by_labels_top_container.rs | 27 + .../models/_dataset_string_summary_value.rs | 27 + ..._dataset_user_properties_summary_number.rs | 27 + ..._dataset_user_properties_summary_string.rs | 36 + client/src/models/_entity_summary_v1.rs | 32 + client/src/models/_exact_bucket_count.rs | 42 + client/src/models/_label_summary_v1.rs | 32 + .../src/models/_lower_bound_bucket_count.rs | 42 + .../models/_query_comments_order_any_label.rs | 39 + ...y_comments_order_attachment_text_search.rs | 42 + .../models/_query_comments_order_by_label.rs | 59 + .../src/models/_query_comments_order_check.rs | 42 + .../_query_comments_order_diagnostic.rs | 71 + .../_query_comments_order_label_property.rs | 59 + .../models/_query_comments_order_learning.rs | 42 + .../models/_query_comments_order_missed.rs | 42 + .../models/_query_comments_order_recent.rs | 39 + .../models/_query_comments_order_sample.rs | 42 + .../_query_comments_order_text_search.rs | 42 + ...ery_dataset_user_property_values_filter.rs | 30 + client/src/models/_raw_email_body.rs | 30 + .../src/models/_raw_email_headers_parsed.rs | 27 + client/src/models/_raw_email_headers_raw.rs | 27 + client/src/models/_source_statistics.rs | 28 + ...read_histogram_binning_custom_container.rs | 27 + ...hread_histogram_binning_fixed_container.rs | 27 + ...ad_histogram_binning_variable_container.rs | 27 + client/src/models/access.rs | 33 + client/src/models/add_comments_request.rs | 27 + client/src/models/add_comments_response.rs | 39 + .../models/add_emails_to_bucket_request.rs | 27 + .../models/add_emails_to_bucket_response.rs | 39 + .../src/models/add_support_tenant_request.rs | 30 + .../src/models/add_support_tenant_response.rs | 39 + client/src/models/advance_stream_request.rs | 27 + client/src/models/advance_stream_response.rs | 42 + client/src/models/advance_trigger_request.rs | 27 + client/src/models/advance_trigger_response.rs | 42 + client/src/models/alert.rs | 68 + client/src/models/alert_config.rs | 39 + client/src/models/alert_config_kind.rs | 36 + client/src/models/alert_filter.rs | 30 + client/src/models/alert_issues_response.rs | 45 + client/src/models/alert_metric.rs | 39 + client/src/models/alert_new.rs | 44 + client/src/models/alert_process_threshold.rs | 45 + client/src/models/alert_process_variation.rs | 48 + client/src/models/alert_subscription.rs | 36 + client/src/models/alert_update.rs | 47 + .../src/models/amount_field_data_private.rs | 39 + client/src/models/annotated_comment.rs | 60 + client/src/models/annotation.rs | 30 + client/src/models/annotation_label.rs | 30 + client/src/models/annotation_metadata.rs | 33 + .../src/models/annotation_metadata_count.rs | 48 + client/src/models/annotations.rs | 27 + client/src/models/app_access_model.rs | 27 + client/src/models/app_access_model_kind.rs | 36 + client/src/models/application.rs | 42 + .../assigned_predicted_present_filter.rs | 48 + client/src/models/assignment_method.rs | 48 + client/src/models/attachment.rs | 42 + client/src/models/attribute.rs | 24 + client/src/models/attribute_filter.rs | 30 + .../src/models/attribute_filter_attribute.rs | 63 + client/src/models/attribution_method.rs | 39 + client/src/models/audit_event.rs | 57 + .../src/models/binary_label_health_action.rs | 30 + .../models/binary_label_health_action_kind.rs | 39 + .../src/models/binary_label_health_warning.rs | 30 + .../binary_label_health_warning_kind.rs | 36 + client/src/models/binning.rs | 33 + client/src/models/bool_field_data_private.rs | 39 + client/src/models/bool_field_data_type.rs | 45 + client/src/models/breakdown.rs | 30 + client/src/models/bucket.rs | 45 + client/src/models/bucket_new.rs | 42 + client/src/models/bucket_sync_state.rs | 33 + client/src/models/bucket_update.rs | 30 + client/src/models/bucket_updated_by.rs | 36 + client/src/models/builtin_label_def.rs | 36 + client/src/models/builtin_label_def_name.rs | 135 + .../src/models/builtin_label_def_request.rs | 30 + client/src/models/business_rule.rs | 42 + .../business_rule_comparison_operator.rs | 51 + .../models/business_rule_logical_operator.rs | 39 + client/src/models/business_rule_set.rs | 33 + .../models/business_rule_set_criticality.rs | 39 + client/src/models/business_rule_type.rs | 63 + client/src/models/by_labels.rs | 30 + client/src/models/by_labels_include.rs | 27 + client/src/models/by_labels_top.rs | 30 + client/src/models/capture_threshold.rs | 24 + .../src/models/choice_field_data_private.rs | 39 + client/src/models/choice_field_data_type.rs | 39 + .../models/client_secret_application_model.rs | 36 + .../client_secret_application_model_kind.rs | 36 + client/src/models/cm_model_config.rs | 39 + client/src/models/comment.rs | 68 + .../models/comment_extractions_predictions.rs | 27 + client/src/models/comment_filter.rs | 51 + client/src/models/comment_new.rs | 47 + client/src/models/comment_prediction.rs | 48 + client/src/models/comment_sentiment.rs | 27 + client/src/models/comment_span_new_char.rs | 38 + client/src/models/comment_span_new_utf16.rs | 38 + client/src/models/comment_thread.rs | 32 + client/src/models/comparison.rs | 30 + client/src/models/connection_model.rs | 39 + client/src/models/content_part.rs | 42 + client/src/models/contribution.rs | 30 + client/src/models/contributor.rs | 30 + client/src/models/contributor_kind.rs | 81 + .../models/conversational_filter_request.rs | 30 + .../models/conversational_filter_response.rs | 60 + client/src/models/coocurrence.rs | 30 + client/src/models/coocurrence_labels.rs | 30 + client/src/models/count.rs | 30 + client/src/models/create_alert_request.rs | 27 + client/src/models/create_alert_response.rs | 42 + client/src/models/create_bucket_request.rs | 27 + client/src/models/create_bucket_response.rs | 42 + client/src/models/create_dashboard_request.rs | 27 + .../src/models/create_dashboard_response.rs | 42 + client/src/models/create_dataset_request.rs | 29 + client/src/models/create_dataset_response.rs | 45 + .../src/models/create_integration_request.rs | 27 + .../src/models/create_integration_response.rs | 42 + .../src/models/create_ixp_dataset_request.rs | 27 + .../src/models/create_ixp_dataset_response.rs | 42 + .../models/create_label_defs_bulk_response.rs | 39 + .../src/models/create_label_group_request.rs | 36 + .../src/models/create_label_group_response.rs | 42 + ...reate_or_update_label_defs_bulk_request.rs | 29 + ...abel_defs_bulk_request_label_defs_inner.rs | 48 + client/src/models/create_page_view_request.rs | 30 + .../src/models/create_page_view_response.rs | 39 + client/src/models/create_project_request.rs | 33 + client/src/models/create_project_response.rs | 42 + .../create_project_setup_created_response.rs | 36 + .../models/create_project_setup_request.rs | 39 + .../models/create_project_setup_response.rs | 51 + client/src/models/create_source_request.rs | 27 + client/src/models/create_source_response.rs | 42 + client/src/models/create_stream_request.rs | 27 + client/src/models/create_stream_response.rs | 42 + client/src/models/create_tenant_request.rs | 27 + client/src/models/create_tenant_response.rs | 42 + client/src/models/create_trigger_request.rs | 27 + client/src/models/create_trigger_response.rs | 42 + client/src/models/create_user_request.rs | 27 + client/src/models/create_user_response.rs | 42 + client/src/models/custom_action.rs | 54 + client/src/models/custom_training_action.rs | 45 + client/src/models/dashboard.rs | 53 + client/src/models/dashboard_update.rs | 34 + client/src/models/data.rs | 39 + client/src/models/data_type.rs | 39 + client/src/models/data_type_date.rs | 39 + client/src/models/data_type_money.rs | 39 + client/src/models/data_type_number.rs | 39 + client/src/models/data_type_text.rs | 39 + client/src/models/dataset.rs | 111 + client/src/models/dataset_flag.rs | 60 + client/src/models/dataset_new.rs | 80 + client/src/models/dataset_operation.rs | 45 + client/src/models/dataset_quality.rs | 48 + client/src/models/dataset_status.rs | 48 + client/src/models/dataset_summary.rs | 88 + client/src/models/dataset_training_action.rs | 51 + client/src/models/dataset_update.rs | 69 + .../dataset_update_entity_defs_inner.rs | 51 + .../models/dataset_user_properties_summary.rs | 32 + client/src/models/date_field_data_private.rs | 39 + client/src/models/date_field_data_type.rs | 39 + client/src/models/delete_alert_response.rs | 39 + .../delete_alert_subscription_reponse.rs | 39 + client/src/models/delete_bucket_response.rs | 39 + client/src/models/delete_comment_response.rs | 39 + .../src/models/delete_dashboard_response.rs | 39 + .../models/delete_dataset_by_id_response.rs | 39 + client/src/models/delete_dataset_response.rs | 39 + .../src/models/delete_integration_response.rs | 39 + .../src/models/delete_ixp_dataset_response.rs | 39 + .../delete_keyed_sync_state_response.rs | 39 + .../src/models/delete_label_def_response.rs | 42 + .../src/models/delete_label_group_response.rs | 39 + .../src/models/delete_model_tag_response.rs | 39 + client/src/models/delete_project_response.rs | 39 + client/src/models/delete_source_response.rs | 39 + .../delete_stream_exception_response.rs | 39 + client/src/models/delete_stream_response.rs | 39 + ...nt_default_project_permissions_response.rs | 42 + client/src/models/delete_tenant_response.rs | 39 + client/src/models/delete_trigger_response.rs | 39 + client/src/models/delete_user_response.rs | 39 + .../models/deprecated_user_model_metadata.rs | 52 + client/src/models/diagnostic.rs | 30 + client/src/models/diagnostic_kind.rs | 57 + client/src/models/direction.rs | 39 + .../src/models/disable_integration_action.rs | 40 + client/src/models/disable_mailbox_action.rs | 48 + .../src/models/doc_path_ixp_model_config.rs | 42 + .../document_label_property_prediction.rs | 33 + client/src/models/document_search_result.rs | 30 + client/src/models/document_span.rs | 33 + client/src/models/email.rs | 48 + client/src/models/email_metadata.rs | 54 + client/src/models/email_metadata_new.rs | 54 + client/src/models/email_new.rs | 42 + client/src/models/email_properties_summary.rs | 30 + .../email_properties_summary_by_property.rs | 48 + .../models/email_properties_summary_value.rs | 27 + client/src/models/email_property_counts.rs | 42 + .../email_property_counts_by_property.rs | 51 + .../models/email_property_counts_settings.rs | 30 + ...il_property_counts_settings_by_property.rs | 51 + client/src/models/email_transform_tag_info.rs | 31 + client/src/models/entities.rs | 33 + client/src/models/entities_new.rs | 30 + client/src/models/entities_pr_stats.rs | 57 + client/src/models/entities_rules.rs | 27 + .../models/entities_rules_presence_inner.rs | 33 + client/src/models/entity.rs | 46 + client/src/models/entity_average_stats.rs | 57 + client/src/models/entity_def.rs | 51 + client/src/models/entity_def_flag.rs | 39 + client/src/models/entity_def_id_stat.rs | 60 + client/src/models/entity_def_new.rs | 51 + client/src/models/entity_def_summary.rs | 34 + client/src/models/entity_def_update.rs | 51 + .../entity_def_update_inherits_from_inner.rs | 24 + client/src/models/entity_health.rs | 33 + client/src/models/entity_health_action.rs | 27 + .../src/models/entity_health_action_kind.rs | 45 + client/src/models/entity_health_smart.rs | 33 + client/src/models/entity_health_warning.rs | 27 + .../src/models/entity_health_warning_kind.rs | 45 + client/src/models/entity_kind.rs | 237 ++ client/src/models/entity_new.rs | 45 + client/src/models/entity_new_spans_inner.rs | 42 + client/src/models/entity_presence_filter.rs | 30 + .../entity_presence_filter_with_kind.rs | 30 + client/src/models/entity_rule_set_api.rs | 33 + client/src/models/entity_rule_set_new_api.rs | 33 + .../src/models/entity_rule_set_update_api.rs | 33 + ...ntity_rule_set_update_api_choices_inner.rs | 33 + .../models/entity_template_properties_api.rs | 30 + .../models/entity_templates_properties_api.rs | 27 + client/src/models/error_action.rs | 50 + client/src/models/error_response.rs | 30 + client/src/models/ews_api_model.rs | 27 + client/src/models/ews_api_model_kind.rs | 36 + client/src/models/exception_model.rs | 30 + client/src/models/export_dataset_request.rs | 59 + client/src/models/export_dataset_response.rs | 45 + client/src/models/exported_annotations.rs | 30 + client/src/models/exported_comment.rs | 36 + client/src/models/exported_label.rs | 36 + client/src/models/exported_labels.rs | 27 + client/src/models/exported_predictions.rs | 30 + .../src/models/extraction_field_definition.rs | 38 + client/src/models/extraction_prediction.rs | 30 + .../models/fetch_from_gx_stream_request.rs | 32 + .../models/fetch_from_gx_stream_response.rs | 48 + .../src/models/fetch_from_stream_request.rs | 32 + .../src/models/fetch_from_stream_response.rs | 52 + client/src/models/field_annotation_private.rs | 43 + client/src/models/field_choice_api.rs | 33 + client/src/models/field_choice_new_api.rs | 33 + .../models/field_group_annotation_private.rs | 33 + .../models/field_group_prediction_private.rs | 39 + client/src/models/field_group_snapshot.rs | 36 + .../src/models/field_group_version_entry.rs | 38 + client/src/models/field_prediction_private.rs | 45 + client/src/models/field_snapshot.rs | 40 + client/src/models/field_type.rs | 37 + .../src/models/field_uipath_context_model.rs | 33 + client/src/models/field_value_private.rs | 30 + client/src/models/field_version_entry.rs | 38 + client/src/models/filter.rs | 63 + client/src/models/freshness.rs | 42 + client/src/models/full_participant_filter.rs | 42 + client/src/models/gemini_table_only_config.rs | 39 + client/src/models/general_field_def.rs | 42 + client/src/models/general_field_def_new.rs | 38 + client/src/models/general_field_def_update.rs | 42 + client/src/models/general_field_definition.rs | 38 + client/src/models/get_alert_response.rs | 42 + .../get_alert_subscriptions_response.rs | 42 + client/src/models/get_all_alerts_response.rs | 42 + client/src/models/get_all_buckets_response.rs | 42 + .../get_all_dashboards_in_dataset_response.rs | 45 + .../get_all_dashboards_in_project_response.rs | 42 + .../get_all_datasets_in_project_response.rs | 42 + .../src/models/get_all_datasets_response.rs | 42 + ...et_all_integrations_in_project_response.rs | 42 + .../models/get_all_integrations_response.rs | 42 + .../get_all_ixp_models_in_project_response.rs | 61 + .../models/get_all_ixp_projects_response.rs | 42 + .../models/get_all_label_groups_response.rs | 42 + .../get_all_models_in_dataset_request.rs | 39 + .../get_all_models_in_dataset_response.rs | 61 + .../src/models/get_all_projects_response.rs | 42 + .../models/get_all_projects_v1_response.rs | 42 + .../get_all_sources_in_project_response.rs | 42 + client/src/models/get_all_sources_response.rs | 42 + client/src/models/get_all_streams_response.rs | 42 + .../get_all_triggers_in_dataset_response.rs | 42 + .../src/models/get_bucket_by_id_response.rs | 42 + .../src/models/get_bucket_emails_request.rs | 30 + .../src/models/get_bucket_emails_response.rs | 45 + client/src/models/get_bucket_response.rs | 42 + .../models/get_bucket_statistics_response.rs | 43 + .../models/get_bucket_sync_state_response.rs | 42 + .../models/get_buckets_by_owner_response.rs | 42 + .../models/get_comment_predictions_request.rs | 34 + .../get_comment_predictions_response.rs | 45 + client/src/models/get_comment_response.rs | 42 + client/src/models/get_comparison_request.rs | 39 + client/src/models/get_comparison_response.rs | 42 + client/src/models/get_dashboard_response.rs | 42 + client/src/models/get_dataset_response.rs | 42 + .../models/get_dataset_statistics_request.rs | 69 + .../models/get_dataset_statistics_response.rs | 42 + .../src/models/get_dataset_status_response.rs | 42 + .../src/models/get_dataset_summary_request.rs | 40 + .../models/get_dataset_summary_response.rs | 42 + ...ataset_user_properties_summary_response.rs | 42 + .../get_deprecated_user_models_response.rs | 45 + .../models/get_derived_permission_response.rs | 48 + .../models/get_derived_permissions_request.rs | 30 + .../models/get_document_metadata_response.rs | 42 + .../models/get_document_search_response.rs | 42 + .../get_email_from_bucket_by_id_response.rs | 42 + .../get_email_transform_tag_info_response.rs | 42 + .../get_field_group_history_response.rs | 49 + .../src/models/get_field_history_response.rs | 49 + .../models/get_integration_by_id_response.rs | 42 + .../models/get_integration_errors_response.rs | 42 + client/src/models/get_integration_response.rs | 42 + client/src/models/get_issue_response.rs | 46 + .../get_ixp_consumability_info_response.rs | 45 + client/src/models/get_ixp_project_response.rs | 42 + .../models/get_keyed_sync_state_response.rs | 42 + client/src/models/get_label_def_response.rs | 42 + client/src/models/get_label_group_response.rs | 42 + .../models/get_label_validation_request.rs | 30 + .../models/get_label_validation_response.rs | 45 + client/src/models/get_labellings_response.rs | 51 + client/src/models/get_model_tags_response.rs | 42 + .../models/get_page_selections_response.rs | 42 + .../models/get_pretrained_labels_response.rs | 42 + .../get_project_resource_counts_response.rs | 57 + client/src/models/get_project_response.rs | 42 + .../models/get_qualified_login_url_request.rs | 27 + .../get_qualified_login_url_response.rs | 42 + .../models/get_quotas_for_tenant_response.rs | 42 + .../models/get_reduced_permissions_request.rs | 30 + .../get_reduced_permissions_response.rs | 48 + ..._permissions_response_permissions_inner.rs | 24 + .../src/models/get_source_by_id_response.rs | 42 + .../models/get_source_comments_response.rs | 48 + ...mments_response_thread_properties_inner.rs | 42 + client/src/models/get_source_response.rs | 42 + .../models/get_source_statistics_request.rs | 27 + .../models/get_source_statistics_response.rs | 43 + .../src/models/get_stream_by_name_response.rs | 42 + .../src/models/get_stream_results_response.rs | 59 + client/src/models/get_subdomain_response.rs | 42 + .../get_tenant_client_subnets_response.rs | 42 + ...nt_default_project_permissions_response.rs | 42 + .../src/models/get_tenant_domains_response.rs | 42 + .../get_tenant_entity_def_ids_response.rs | 42 + .../src/models/get_tenant_quota_response.rs | 42 + client/src/models/get_tenants_response.rs | 42 + client/src/models/get_themes_response.rs | 45 + .../src/models/get_thread_themes_request.rs | 32 + .../src/models/get_thread_themes_response.rs | 42 + .../models/get_threads_by_source_response.rs | 43 + ..._training_actions_comment_uids_response.rs | 42 + .../get_training_actions_labels_response.rs | 42 + ..._response_training_actions_labels_inner.rs | 57 + client/src/models/get_trigger_response.rs | 42 + client/src/models/get_user_by_id_response.rs | 42 + client/src/models/get_users_response.rs | 42 + client/src/models/get_users_v1_response.rs | 42 + client/src/models/get_validation_response.rs | 51 + .../src/models/get_validation_v1_response.rs | 42 + client/src/models/global_permission.rs | 87 + client/src/models/gpt_ixp_flag.rs | 45 + client/src/models/gpt_ixp_model_config.rs | 69 + client/src/models/gpt_model_version.rs | 39 + client/src/models/graph_api_model.rs | 27 + client/src/models/graph_api_model_kind.rs | 36 + client/src/models/group_labellings_request.rs | 48 + client/src/models/group_predictions.rs | 42 + client/src/models/headers.rs | 32 + client/src/models/highlight.rs | 27 + client/src/models/histogram_bin.rs | 36 + client/src/models/image_input_config.rs | 39 + client/src/models/import_taxonomy_request.rs | 36 + client/src/models/import_taxonomy_response.rs | 39 + client/src/models/inference_stats.rs | 33 + client/src/models/inherits_from.rs | 16 + client/src/models/input_config.rs | 42 + client/src/models/integration.rs | 64 + .../src/models/integration_disabled_reason.rs | 42 + client/src/models/integration_error.rs | 51 + .../src/models/integration_error_details.rs | 64 + client/src/models/integration_new.rs | 39 + client/src/models/integration_type.rs | 39 + client/src/models/integration_update.rs | 37 + ...egrations_o_auth2_authenticate_response.rs | 45 + client/src/models/intent_threshold.rs | 24 + client/src/models/intent_validation.rs | 66 + .../src/models/intent_validation_summary.rs | 57 + client/src/models/intents_value.rs | 57 + client/src/models/interpretation_span.rs | 34 + client/src/models/issue.rs | 39 + client/src/models/issue_detail.rs | 40 + client/src/models/issue_status.rs | 39 + client/src/models/iterative_config.rs | 30 + client/src/models/ixp_confidence.rs | 28 + client/src/models/ixp_dataset_new.rs | 27 + client/src/models/ixp_extraction_status.rs | 39 + client/src/models/ixp_field.rs | 40 + client/src/models/ixp_field_group.rs | 39 + client/src/models/ixp_field_type.rs | 36 + client/src/models/ixp_model_metadata.rs | 52 + .../ixp_predict_extractions_response.rs | 45 + client/src/models/ixp_project.rs | 38 + client/src/models/ixp_relative_urls.rs | 30 + client/src/models/ixp_taxonomy.rs | 39 + client/src/models/ixp_taxonomy_extraction.rs | 36 + .../models/ixp_upload_document_response.rs | 42 + client/src/models/ixp_uploaded_document.rs | 27 + client/src/models/keyed_folder_sync_state.rs | 47 + .../models/keyed_folder_sync_state_update.rs | 45 + client/src/models/keyed_mailbox_sync_state.rs | 41 + .../models/keyed_mailbox_sync_state_update.rs | 39 + client/src/models/keyed_sync_state.rs | 45 + client/src/models/keyed_sync_state_1.rs | 45 + client/src/models/label.rs | 36 + client/src/models/label_action.rs | 33 + client/src/models/label_collection.rs | 30 + client/src/models/label_comparison.rs | 33 + client/src/models/label_counts.rs | 30 + client/src/models/label_def.rs | 51 + client/src/models/label_def_flag.rs | 36 + client/src/models/label_def_new.rs | 47 + client/src/models/label_def_property.rs | 30 + client/src/models/label_def_update.rs | 50 + .../label_def_update_moon_form_inner.rs | 49 + client/src/models/label_def_update_request.rs | 29 + client/src/models/label_definition.rs | 33 + client/src/models/label_group.rs | 42 + client/src/models/label_group_new.rs | 42 + client/src/models/label_health.rs | 33 + client/src/models/label_health_action.rs | 30 + client/src/models/label_health_smart.rs | 33 + client/src/models/label_health_warning.rs | 30 + client/src/models/label_metrics.rs | 57 + client/src/models/label_name_only_response.rs | 27 + client/src/models/label_properties_digest.rs | 27 + client/src/models/label_property.rs | 36 + client/src/models/label_property_digest.rs | 27 + client/src/models/label_property_id.rs | 39 + client/src/models/label_property_name.rs | 39 + client/src/models/label_property_summary.rs | 33 + .../models/label_property_summary_label.rs | 30 + .../models/label_property_time_series_row.rs | 30 + client/src/models/label_sentiment.rs | 39 + .../src/models/label_suggestion_reasoning.rs | 31 + client/src/models/label_timeseries_entry.rs | 39 + client/src/models/label_training_action.rs | 57 + client/src/models/label_validation_summary.rs | 45 + client/src/models/labelling_group.rs | 51 + client/src/models/language.rs | 42 + .../src/models/legacy_entity_pattern_api.rs | 27 + .../models/list_keyed_sync_states_response.rs | 42 + ...states_response_keyed_sync_states_inner.rs | 45 + client/src/models/locales.rs | 30 + client/src/models/locales_preferences.rs | 30 + client/src/models/markup_break.rs | 42 + client/src/models/markup_break_kind.rs | 39 + client/src/models/markup_image.rs | 45 + client/src/models/markup_link.rs | 45 + client/src/models/markup_list.rs | 45 + client/src/models/markup_list_item.rs | 27 + client/src/models/markup_list_kind.rs | 39 + client/src/models/markup_paragraph.rs | 45 + client/src/models/markup_paragraph_kind.rs | 96 + client/src/models/markup_style.rs | 45 + client/src/models/markup_style_kind.rs | 108 + client/src/models/markup_table.rs | 49 + client/src/models/markup_table_caption.rs | 27 + client/src/models/markup_table_cell.rs | 36 + .../markup_table_cell_children_inner.rs | 32 + client/src/models/markup_table_cell_kind.rs | 39 + client/src/models/markup_table_row.rs | 30 + .../src/models/markup_table_section_kind.rs | 42 + client/src/models/markup_text.rs | 42 + .../models/matched_field_group_extractions.rs | 30 + client/src/models/mean_pr_curve.rs | 30 + client/src/models/message.rs | 60 + client/src/models/message_filter.rs | 39 + client/src/models/message_rich_text.rs | 40 + .../message_rich_text_text_markup_inner.rs | 94 + client/src/models/message_span.rs | 36 + client/src/models/message_text.rs | 32 + client/src/models/metadata.rs | 27 + client/src/models/microsoft_api.rs | 27 + client/src/models/mod.rs | 1670 +++++++++++ client/src/models/model_config.rs | 16 + client/src/models/model_definition.rs | 27 + client/src/models/model_error.rs | 30 + client/src/models/model_error_kind.rs | 45 + client/src/models/model_family.rs | 54 + client/src/models/model_name.rs | 45 + client/src/models/model_rating.rs | 39 + client/src/models/model_rating_action.rs | 45 + client/src/models/model_rating_factor.rs | 42 + client/src/models/model_rating_factor_kind.rs | 45 + client/src/models/model_taxonomy.rs | 39 + .../src/models/monetary_field_data_private.rs | 39 + .../monetary_quantity_field_data_type.rs | 39 + .../moon_form_capture_fields_annotation.rs | 27 + ...moon_form_capture_fields_annotation_new.rs | 27 + .../moon_form_capture_fields_prediction.rs | 30 + .../src/models/moon_form_dismissed_update.rs | 33 + .../src/models/moon_form_field_annotation.rs | 56 + .../models/moon_form_field_annotation_new.rs | 53 + client/src/models/moon_form_field_def.rs | 49 + client/src/models/moon_form_field_def_new.rs | 45 + .../src/models/moon_form_field_def_update.rs | 37 + .../src/models/moon_form_field_prediction.rs | 51 + client/src/models/moon_form_group.rs | 45 + client/src/models/moon_form_group_update.rs | 50 + .../src/models/moon_form_label_annotation.rs | 30 + .../moon_form_label_annotation_update.rs | 30 + .../src/models/moon_form_label_prediction.rs | 30 + .../src/models/moon_intent_fields_metrics.rs | 36 + .../models/moon_intent_validation_request.rs | 30 + client/src/models/moon_summary_metrics.rs | 57 + client/src/models/moon_validation.rs | 30 + client/src/models/name.rs | 60 + client/src/models/new_dashboard.rs | 37 + client/src/models/no_ui_metadata_reason.rs | 39 + client/src/models/nps_summary.rs | 39 + client/src/models/ntlm_application_model.rs | 27 + .../src/models/ntlm_application_model_kind.rs | 36 + .../models/nullable_string_array_filter.rs | 36 + client/src/models/number_field_data_type.rs | 39 + client/src/models/number_one_of_filter.rs | 35 + client/src/models/number_range_filter.rs | 30 + .../models/number_range_filter_with_kind.rs | 45 + .../models/number_user_property_summary.rs | 30 + .../o_auth2_salesforce_callback_request.rs | 32 + .../o_auth2_salesforce_callback_response.rs | 39 + client/src/models/optimal_threshold.rs | 33 + client/src/models/order.rs | 101 + client/src/models/page_dimensions.rs | 30 + client/src/models/page_metadata.rs | 30 + client/src/models/page_polygon.rs | 28 + client/src/models/page_selection.rs | 48 + client/src/models/parse_email_new_comment.rs | 45 + client/src/models/parsed_value.rs | 24 + client/src/models/period.rs | 42 + client/src/models/pin_model_response.rs | 39 + client/src/models/poll_trigger_request.rs | 32 + client/src/models/poll_trigger_response.rs | 53 + client/src/models/pr_curve.rs | 36 + client/src/models/predict_document.rs | 36 + .../src/models/predict_extractions_request.rs | 27 + .../models/predict_extractions_response.rs | 42 + client/src/models/predict_latest_request.rs | 36 + client/src/models/predict_latest_response.rs | 54 + .../src/models/predict_raw_emails_request.rs | 40 + .../src/models/predict_raw_emails_response.rs | 57 + client/src/models/predict_request.rs | 36 + client/src/models/predict_response.rs | 57 + client/src/models/predicted_entity.rs | 48 + client/src/models/predicted_label.rs | 33 + client/src/models/predicted_label_property.rs | 33 + client/src/models/predictions_model.rs | 32 + client/src/models/preference.rs | 32 + client/src/models/preferred_locale.rs | 32 + client/src/models/preview_alert_request.rs | 28 + client/src/models/preview_alert_response.rs | 50 + .../models/private_key_application_model.rs | 39 + .../private_key_application_model_kind.rs | 36 + client/src/models/process.rs | 51 + client/src/models/project.rs | 45 + client/src/models/project_new.rs | 33 + client/src/models/project_permission.rs | 135 + .../models/project_setup_existing_source.rs | 28 + .../src/models/project_setup_new_dataset.rs | 34 + .../src/models/project_setup_new_project.rs | 28 + client/src/models/project_setup_new_source.rs | 35 + client/src/models/project_setup_new_stream.rs | 27 + client/src/models/project_setup_new_users.rs | 27 + client/src/models/project_v1.rs | 33 + .../src/models/put_comment_as_seen_request.rs | 27 + .../models/put_comment_as_seen_response.rs | 42 + .../src/models/query_audit_events_filter.rs | 27 + .../src/models/query_audit_events_request.rs | 33 + .../src/models/query_audit_events_response.rs | 63 + client/src/models/query_comments_request.rs | 56 + client/src/models/query_comments_response.rs | 60 + ...ry_dataset_user_property_values_request.rs | 30 + ...y_dataset_user_property_values_response.rs | 42 + client/src/models/query_issues_request.rs | 28 + client/src/models/query_issues_response.rs | 45 + .../query_keyed_sync_state_ids_request.rs | 28 + .../query_keyed_sync_state_ids_response.rs | 43 + client/src/models/query_result_counts.rs | 30 + client/src/models/quota.rs | 40 + client/src/models/quota_kind.rs | 96 + client/src/models/raw_email.rs | 34 + client/src/models/raw_email_document.rs | 35 + client/src/models/regex.rs | 30 + .../models/remove_support_tenant_request.rs | 30 + .../models/remove_support_tenant_response.rs | 39 + ...ations_to_previous_pinned_model_request.rs | 28 + ...tions_to_previous_pinned_model_response.rs | 39 + client/src/models/reset_stream_request.rs | 27 + client/src/models/reset_stream_response.rs | 45 + .../src/models/reset_tenant_quota_response.rs | 39 + client/src/models/reset_trigger_request.rs | 27 + client/src/models/reset_trigger_response.rs | 45 + client/src/models/response_status_error.rs | 36 + client/src/models/retrieval_method.rs | 84 + client/src/models/reviewable_block.rs | 30 + client/src/models/reviewable_block_group.rs | 27 + client/src/models/reviewed.rs | 39 + client/src/models/reviewed_filter_rule.rs | 39 + client/src/models/rich_diagnostic_kind.rs | 30 + .../src/models/send_welcome_email_response.rs | 39 + client/src/models/sentiment.rs | 30 + .../src/models/set_comment_audio_response.rs | 39 + .../models/set_quota_for_tenant_request.rs | 32 + .../models/set_quota_for_tenant_response.rs | 39 + client/src/models/set_tenant_quota_request.rs | 28 + .../src/models/set_tenant_quota_response.rs | 45 + client/src/models/set_tenant_state_request.rs | 27 + .../src/models/set_tenant_state_response.rs | 39 + client/src/models/significance.rs | 30 + client/src/models/significance_value.rs | 30 + client/src/models/single_label_summary.rs | 48 + client/src/models/single_tenants_response.rs | 42 + client/src/models/sniff_csv_response.rs | 48 + client/src/models/source.rs | 82 + client/src/models/source_1.rs | 39 + client/src/models/source_counts.rs | 42 + client/src/models/source_counts_settings.rs | 30 + client/src/models/source_kind.rs | 48 + client/src/models/source_update.rs | 53 + client/src/models/span.rs | 42 + client/src/models/statistics.rs | 69 + .../models/store_bucket_sync_state_request.rs | 27 + .../store_bucket_sync_state_response.rs | 39 + client/src/models/store_exception_request.rs | 27 + client/src/models/store_exception_response.rs | 39 + .../models/store_keyed_sync_state_request.rs | 27 + .../models/store_keyed_sync_state_response.rs | 39 + .../stream_comment_extractions_result.rs | 33 + .../src/models/stream_comment_prediction.rs | 32 + client/src/models/stream_comment_result.rs | 39 + client/src/models/stream_confidence.rs | 32 + .../stream_extraction_field_prediction.rs | 34 + client/src/models/stream_field_value.rs | 27 + .../models/stream_general_field_prediction.rs | 37 + client/src/models/stream_label_prediction.rs | 39 + client/src/models/stream_result.rs | 35 + client/src/models/stream_score_prediction.rs | 30 + .../src/models/stream_taxonomy_prediction.rs | 34 + client/src/models/stream_text_span.rs | 40 + client/src/models/string_any_of_filter.rs | 42 + client/src/models/string_array_filter.rs | 35 + client/src/models/string_none_of_filter.rs | 42 + client/src/models/string_one_of_filter.rs | 35 + client/src/models/string_search_filter.rs | 42 + .../src/models/string_user_property_count.rs | 39 + .../string_user_property_count_single.rs | 30 + .../string_user_property_counts_settings.rs | 33 + .../models/string_user_property_summary.rs | 36 + client/src/models/suggest_taxonomy_request.rs | 32 + .../src/models/suggest_taxonomy_response.rs | 43 + client/src/models/suggested_label.rs | 34 + client/src/models/suggested_taxonomy.rs | 32 + client/src/models/sync_annotations_request.rs | 27 + .../src/models/sync_annotations_response.rs | 39 + .../models/sync_comments_from_csv_response.rs | 54 + client/src/models/sync_comments_request.rs | 27 + client/src/models/sync_comments_response.rs | 54 + client/src/models/sync_raw_emails_request.rs | 39 + client/src/models/sync_raw_emails_response.rs | 57 + client/src/models/sync_status.rs | 39 + client/src/models/tagged_ixp_model_version.rs | 33 + .../src/models/tagged_user_model_version.rs | 33 + .../models/tagged_user_model_version_name.rs | 39 + .../tagged_user_model_version_update.rs | 33 + .../src/models/taxonomy_extraction_private.rs | 51 + client/src/models/tenant.rs | 52 + client/src/models/tenant_new.rs | 38 + client/src/models/tenant_update.rs | 34 + client/src/models/text_config.rs | 39 + client/src/models/text_field_data_private.rs | 39 + client/src/models/text_field_data_type.rs | 42 + client/src/models/text_field_flag.rs | 36 + client/src/models/text_format.rs | 28 + client/src/models/text_image_input_config.rs | 42 + client/src/models/text_span.rs | 44 + client/src/models/theme.rs | 35 + client/src/models/theme_comment.rs | 32 + .../models/theme_comment_interpretation.rs | 50 + client/src/models/theme_set.rs | 31 + .../models/thread_histogram_binning_custom.rs | 33 + .../models/thread_histogram_binning_fixed.rs | 30 + .../thread_histogram_binning_variable.rs | 27 + client/src/models/thread_histogram_counts.rs | 30 + .../thread_histogram_counts_by_property.rs | 36 + .../src/models/thread_histogram_settings.rs | 27 + .../thread_histogram_settings_by_property.rs | 36 + client/src/models/thread_properties.rs | 42 + client/src/models/thread_property_filter.rs | 54 + client/src/models/thread_theme.rs | 30 + client/src/models/threshold.rs | 24 + client/src/models/threshold_1.rs | 24 + client/src/models/threshold_enum.rs | 36 + client/src/models/time_period_comparison.rs | 42 + client/src/models/time_resolution.rs | 45 + client/src/models/timestamp_range_filter.rs | 30 + client/src/models/train_view.rs | 45 + client/src/models/training_action.rs | 57 + .../models/training_action_completeness.rs | 45 + client/src/models/translation.rs | 60 + client/src/models/trigger.rs | 51 + client/src/models/trigger_exception.rs | 27 + .../src/models/trigger_exceptions_summary.rs | 30 + client/src/models/trigger_label_threshold.rs | 30 + client/src/models/trigger_new.rs | 39 + client/src/models/trigger_update.rs | 39 + client/src/models/trigger_user_model.rs | 30 + client/src/models/ui.rs | 39 + client/src/models/ui_annotation_metadata.rs | 39 + .../models/ui_path_cv_table_only_config.rs | 39 + .../ui_path_provision_create_properties.rs | 27 + .../ui_path_provision_create_request.rs | 39 + .../ui_path_provision_create_response.rs | 33 + .../ui_path_provision_delete_request.rs | 33 + .../ui_path_provision_delete_response.rs | 36 + .../ui_path_provision_restore_request.rs | 33 + .../ui_path_provision_restore_response.rs | 33 + .../ui_path_provision_update_properties.rs | 27 + .../ui_path_provision_update_request.rs | 36 + .../ui_path_provision_update_response.rs | 33 + .../models/ui_path_tenant_service_status.rs | 51 + .../src/models/unary_label_health_action.rs | 27 + .../models/unary_label_health_action_kind.rs | 48 + .../src/models/unary_label_health_warning.rs | 27 + .../models/unary_label_health_warning_kind.rs | 51 + client/src/models/uninformative_label.rs | 30 + client/src/models/uninformative_mode.rs | 39 + client/src/models/unpin_model_response.rs | 39 + client/src/models/update_alert_request.rs | 27 + client/src/models/update_alert_response.rs | 42 + .../update_appliance_config_response.rs | 42 + client/src/models/update_bucket_request.rs | 27 + client/src/models/update_bucket_response.rs | 42 + .../update_comment_labelling_request.rs | 36 + .../update_comment_labelling_response.rs | 75 + client/src/models/update_dashboard_request.rs | 27 + .../src/models/update_dashboard_response.rs | 42 + client/src/models/update_dataset_request.rs | 29 + client/src/models/update_dataset_response.rs | 42 + .../src/models/update_integration_request.rs | 27 + .../src/models/update_integration_response.rs | 42 + .../src/models/update_issue_status_request.rs | 27 + .../models/update_issue_status_response.rs | 39 + .../src/models/update_label_def_response.rs | 45 + client/src/models/update_model_request.rs | 30 + client/src/models/update_model_response.rs | 42 + client/src/models/update_model_tag_request.rs | 27 + .../src/models/update_model_tag_response.rs | 42 + client/src/models/update_project_request.rs | 27 + client/src/models/update_project_response.rs | 42 + client/src/models/update_source_request.rs | 27 + client/src/models/update_source_response.rs | 42 + .../update_tenant_client_subnets_request.rs | 27 + .../update_tenant_client_subnets_response.rs | 42 + ...ant_default_project_permissions_request.rs | 27 + ...nt_default_project_permissions_response.rs | 42 + .../models/update_tenant_domains_request.rs | 27 + .../models/update_tenant_domains_response.rs | 42 + .../update_tenant_entity_def_ids_request.rs | 27 + .../update_tenant_entity_def_ids_response.rs | 42 + client/src/models/update_tenant_request.rs | 27 + client/src/models/update_tenant_response.rs | 42 + client/src/models/update_trigger_request.rs | 27 + client/src/models/update_trigger_response.rs | 42 + client/src/models/update_user_request.rs | 27 + client/src/models/update_user_response.rs | 42 + .../src/models/upload_attachment_response.rs | 42 + client/src/models/upload_document_response.rs | 45 + client/src/models/upload_files_response.rs | 39 + client/src/models/user.rs | 66 + client/src/models/user_access_model.rs | 33 + client/src/models/user_access_model_kind.rs | 36 + client/src/models/user_license.rs | 42 + client/src/models/user_license_check.rs | 39 + client/src/models/user_model.rs | 27 + client/src/models/user_model_metadata.rs | 79 + client/src/models/user_model_metadata_flag.rs | 42 + .../models/user_model_metadata_settings.rs | 32 + client/src/models/user_new.rs | 36 + client/src/models/user_properties_summary.rs | 30 + client/src/models/user_properties_value.rs | 35 + client/src/models/user_update.rs | 30 + client/src/models/user_v1.rs | 33 + client/src/models/user_with_license_check.rs | 72 + .../validate_exchange_credentials_request.rs | 35 + .../validate_exchange_credentials_response.rs | 43 + client/src/models/validation_summary.rs | 78 + client/src/models/validation_summary_v1.rs | 85 + client/src/models/variation_kind.rs | 39 + client/src/models/vertex.rs | 30 + debug_reviewed_comments.sh | 56 + scripts/README.md | 33 + scripts/gen-client.sh | 64 + scripts/patches/inherits_from.rs | 16 + .../markup_table_cell_children_inner.rs | 32 + .../message_rich_text_text_markup_inner.rs | 94 + scripts/patches/model_config.rs | 16 + scripts/patches/moon_form_group_update.rs | 50 + scripts/patches/name.rs | 60 + scripts/patches/text_format.rs | 28 + scripts/patches/user_properties_value.rs | 35 + scripts/preprocess-spec.py | 145 + scripts/update-and-generate.sh | 185 ++ scripts/update-spec.sh | 49 + test_debug | Bin 0 -> 3783368 bytes 1899 files changed, 78308 insertions(+), 10116 deletions(-) delete mode 100644 api/.gitignore delete mode 100644 api/Cargo.toml delete mode 100644 api/README.md delete mode 100644 api/src/error.rs delete mode 100644 api/src/lib.rs delete mode 100644 api/src/resources/attachments.rs delete mode 100644 api/src/resources/audit.rs delete mode 100644 api/src/resources/auth.rs delete mode 100644 api/src/resources/bucket.rs delete mode 100644 api/src/resources/bucket_statistics.rs delete mode 100644 api/src/resources/comment.rs delete mode 100644 api/src/resources/dataset.rs delete mode 100644 api/src/resources/documents.rs delete mode 100644 api/src/resources/email.rs delete mode 100644 api/src/resources/entity_def.rs delete mode 100644 api/src/resources/integration.rs delete mode 100644 api/src/resources/label_def.rs delete mode 100644 api/src/resources/label_group.rs delete mode 100644 api/src/resources/mod.rs delete mode 100644 api/src/resources/project.rs delete mode 100644 api/src/resources/quota.rs delete mode 100644 api/src/resources/source.rs delete mode 100644 api/src/resources/statistics.rs delete mode 100644 api/src/resources/stream.rs delete mode 100644 api/src/resources/tenant_id.rs delete mode 100644 api/src/resources/user.rs delete mode 100644 api/src/resources/validation.rs delete mode 100644 api/src/retry.rs create mode 100644 cli/src/utils/attachment_utils.rs create mode 100644 cli/src/utils/auth/current_user.rs create mode 100644 cli/src/utils/auth/mod.rs create mode 100644 cli/src/utils/auth/permissions.rs create mode 100644 cli/src/utils/auth/refresh.rs create mode 100644 cli/src/utils/conversions/comments.rs create mode 100644 cli/src/utils/conversions/entities.rs create mode 100644 cli/src/utils/conversions/mod.rs create mode 100644 cli/src/utils/conversions/moon_forms.rs create mode 100644 cli/src/utils/conversions/names.rs create mode 100644 cli/src/utils/conversions/spans.rs create mode 100644 cli/src/utils/csv.rs create mode 100644 cli/src/utils/filters/attributes.rs create mode 100644 cli/src/utils/filters/mod.rs create mode 100644 cli/src/utils/filters/timerange.rs create mode 100644 cli/src/utils/filters/timestamp.rs create mode 100644 cli/src/utils/filters/user_properties.rs rename cli/src/{utils.rs => utils/io.rs} (97%) create mode 100644 cli/src/utils/iterators/audit_events.rs create mode 100644 cli/src/utils/iterators/dataset_query.rs create mode 100644 cli/src/utils/iterators/mod.rs create mode 100644 cli/src/utils/mod.rs create mode 100644 cli/src/utils/new_annotated_comment.rs create mode 100644 cli/src/utils/openapi/api_ext.rs create mode 100644 cli/src/utils/openapi/mod.rs create mode 100644 cli/src/utils/openapi/split_examples.rs create mode 100644 cli/src/utils/openapi/split_failure.rs create mode 100644 cli/src/utils/retry.rs create mode 100644 cli/src/utils/types/identifiers.rs create mode 100644 cli/src/utils/types/ids.rs create mode 100644 cli/src/utils/types/mod.rs create mode 100644 cli/src/utils/types/model.rs create mode 100644 cli/src/utils/types/names.rs create mode 100644 cli/src/utils/types/project.rs create mode 100644 cli/src/utils/types/stream.rs create mode 100644 cli/src/utils/types/transform.rs create mode 100644 client/.gitignore create mode 100644 client/.openapi-generator-ignore create mode 100644 client/.openapi-generator/FILES create mode 100644 client/.openapi-generator/VERSION create mode 100644 client/.travis.yml create mode 100644 client/Cargo.toml create mode 100644 client/README.md create mode 100644 client/docs/Access.md create mode 100644 client/docs/AddCommentsRequest.md create mode 100644 client/docs/AddCommentsResponse.md create mode 100644 client/docs/AddEmailsToBucketRequest.md create mode 100644 client/docs/AddEmailsToBucketResponse.md create mode 100644 client/docs/AddSupportTenantRequest.md create mode 100644 client/docs/AddSupportTenantResponse.md create mode 100644 client/docs/AdvanceStreamRequest.md create mode 100644 client/docs/AdvanceStreamResponse.md create mode 100644 client/docs/AdvanceTriggerRequest.md create mode 100644 client/docs/AdvanceTriggerResponse.md create mode 100644 client/docs/Alert.md create mode 100644 client/docs/AlertConfig.md create mode 100644 client/docs/AlertConfigKind.md create mode 100644 client/docs/AlertFilter.md create mode 100644 client/docs/AlertIssuesResponse.md create mode 100644 client/docs/AlertMetric.md create mode 100644 client/docs/AlertNew.md create mode 100644 client/docs/AlertProcessThreshold.md create mode 100644 client/docs/AlertProcessVariation.md create mode 100644 client/docs/AlertSubscription.md create mode 100644 client/docs/AlertUpdate.md create mode 100644 client/docs/AlertsApi.md create mode 100644 client/docs/AmountFieldDataPrivate.md create mode 100644 client/docs/AnalyticsApi.md create mode 100644 client/docs/AnnotatedComment.md create mode 100644 client/docs/Annotation.md create mode 100644 client/docs/AnnotationLabel.md create mode 100644 client/docs/AnnotationMetadata.md create mode 100644 client/docs/AnnotationMetadataCount.md create mode 100644 client/docs/Annotations.md create mode 100644 client/docs/AppAccessModel.md create mode 100644 client/docs/AppAccessModelKind.md create mode 100644 client/docs/ApplianceConfigsApi.md create mode 100644 client/docs/Application.md create mode 100644 client/docs/AssignedPredictedPresentFilter.md create mode 100644 client/docs/AssignmentMethod.md create mode 100644 client/docs/Attachment.md create mode 100644 client/docs/AttachmentsApi.md create mode 100644 client/docs/Attribute.md create mode 100644 client/docs/AttributeFilter.md create mode 100644 client/docs/AttributeFilterAttribute.md create mode 100644 client/docs/AttributionMethod.md create mode 100644 client/docs/AuditEvent.md create mode 100644 client/docs/AuditEventsApi.md create mode 100644 client/docs/AuditEventsDataset.md create mode 100644 client/docs/AuditEventsProject.md create mode 100644 client/docs/AuditEventsSource.md create mode 100644 client/docs/AuditEventsTenant.md create mode 100644 client/docs/AuditEventsTrigger.md create mode 100644 client/docs/AuditEventsUser.md create mode 100644 client/docs/BinaryLabelHealthAction.md create mode 100644 client/docs/BinaryLabelHealthActionKind.md create mode 100644 client/docs/BinaryLabelHealthWarning.md create mode 100644 client/docs/BinaryLabelHealthWarningKind.md create mode 100644 client/docs/Binning.md create mode 100644 client/docs/BoolFieldDataPrivate.md create mode 100644 client/docs/BoolFieldDataType.md create mode 100644 client/docs/Breakdown.md create mode 100644 client/docs/Bucket.md create mode 100644 client/docs/BucketNew.md create mode 100644 client/docs/BucketStatistics.md create mode 100644 client/docs/BucketSyncState.md create mode 100644 client/docs/BucketUpdate.md create mode 100644 client/docs/BucketUpdatedBy.md create mode 100644 client/docs/BucketsApi.md create mode 100644 client/docs/BuiltinLabelDef.md create mode 100644 client/docs/BuiltinLabelDefName.md create mode 100644 client/docs/BuiltinLabelDefRequest.md create mode 100644 client/docs/BusinessRule.md create mode 100644 client/docs/BusinessRuleComparisonOperator.md create mode 100644 client/docs/BusinessRuleLogicalOperator.md create mode 100644 client/docs/BusinessRuleSet.md create mode 100644 client/docs/BusinessRuleSetCriticality.md create mode 100644 client/docs/BusinessRuleType.md create mode 100644 client/docs/ByLabels.md create mode 100644 client/docs/ByLabelsInclude.md create mode 100644 client/docs/ByLabelsIncludeContainer.md create mode 100644 client/docs/ByLabelsTop.md create mode 100644 client/docs/ByLabelsTopContainer.md create mode 100644 client/docs/CaptureThreshold.md create mode 100644 client/docs/ChoiceFieldDataPrivate.md create mode 100644 client/docs/ChoiceFieldDataType.md create mode 100644 client/docs/ClientSecretApplicationModel.md create mode 100644 client/docs/ClientSecretApplicationModelKind.md create mode 100644 client/docs/CmModelConfig.md create mode 100644 client/docs/Comment.md create mode 100644 client/docs/CommentExtractionsPredictions.md create mode 100644 client/docs/CommentFilter.md create mode 100644 client/docs/CommentNew.md create mode 100644 client/docs/CommentPrediction.md create mode 100644 client/docs/CommentSentiment.md create mode 100644 client/docs/CommentSpanNewChar.md create mode 100644 client/docs/CommentSpanNewUtf16.md create mode 100644 client/docs/CommentThread.md create mode 100644 client/docs/CommentsApi.md create mode 100644 client/docs/Comparison.md create mode 100644 client/docs/ConnectionModel.md create mode 100644 client/docs/ContentPart.md create mode 100644 client/docs/Contribution.md create mode 100644 client/docs/Contributor.md create mode 100644 client/docs/ContributorKind.md create mode 100644 client/docs/ConversationalFilterApi.md create mode 100644 client/docs/ConversationalFilterRequest.md create mode 100644 client/docs/ConversationalFilterResponse.md create mode 100644 client/docs/Coocurrence.md create mode 100644 client/docs/CoocurrenceLabels.md create mode 100644 client/docs/Count.md create mode 100644 client/docs/CreateAlertRequest.md create mode 100644 client/docs/CreateAlertResponse.md create mode 100644 client/docs/CreateBucketRequest.md create mode 100644 client/docs/CreateBucketResponse.md create mode 100644 client/docs/CreateDashboardRequest.md create mode 100644 client/docs/CreateDashboardResponse.md create mode 100644 client/docs/CreateDatasetRequest.md create mode 100644 client/docs/CreateDatasetResponse.md create mode 100644 client/docs/CreateIntegrationRequest.md create mode 100644 client/docs/CreateIntegrationResponse.md create mode 100644 client/docs/CreateIxpDatasetRequest.md create mode 100644 client/docs/CreateIxpDatasetResponse.md create mode 100644 client/docs/CreateLabelDefsBulkResponse.md create mode 100644 client/docs/CreateLabelGroupRequest.md create mode 100644 client/docs/CreateLabelGroupResponse.md create mode 100644 client/docs/CreateOrUpdateLabelDefsBulkRequest.md create mode 100644 client/docs/CreateOrUpdateLabelDefsBulkRequestLabelDefsInner.md create mode 100644 client/docs/CreatePageViewRequest.md create mode 100644 client/docs/CreatePageViewResponse.md create mode 100644 client/docs/CreateProjectRequest.md create mode 100644 client/docs/CreateProjectResponse.md create mode 100644 client/docs/CreateProjectSetupCreatedResponse.md create mode 100644 client/docs/CreateProjectSetupRequest.md create mode 100644 client/docs/CreateProjectSetupResponse.md create mode 100644 client/docs/CreateSourceRequest.md create mode 100644 client/docs/CreateSourceResponse.md create mode 100644 client/docs/CreateStreamRequest.md create mode 100644 client/docs/CreateStreamResponse.md create mode 100644 client/docs/CreateTenantRequest.md create mode 100644 client/docs/CreateTenantResponse.md create mode 100644 client/docs/CreateTriggerRequest.md create mode 100644 client/docs/CreateTriggerResponse.md create mode 100644 client/docs/CreateUserRequest.md create mode 100644 client/docs/CreateUserResponse.md create mode 100644 client/docs/CustomAction.md create mode 100644 client/docs/CustomTrainingAction.md create mode 100644 client/docs/Dashboard.md create mode 100644 client/docs/DashboardUpdate.md create mode 100644 client/docs/DashboardsApi.md create mode 100644 client/docs/Data.md create mode 100644 client/docs/DataType.md create mode 100644 client/docs/DataTypeDate.md create mode 100644 client/docs/DataTypeMoney.md create mode 100644 client/docs/DataTypeNumber.md create mode 100644 client/docs/DataTypeText.md create mode 100644 client/docs/Dataset.md create mode 100644 client/docs/DatasetFlag.md create mode 100644 client/docs/DatasetNew.md create mode 100644 client/docs/DatasetOperation.md create mode 100644 client/docs/DatasetQuality.md create mode 100644 client/docs/DatasetStatus.md create mode 100644 client/docs/DatasetStringSummaryValue.md create mode 100644 client/docs/DatasetSummary.md create mode 100644 client/docs/DatasetTrainingAction.md create mode 100644 client/docs/DatasetUpdate.md create mode 100644 client/docs/DatasetUpdateEntityDefsInner.md create mode 100644 client/docs/DatasetUserPropertiesSummary.md create mode 100644 client/docs/DatasetUserPropertiesSummaryNumber.md create mode 100644 client/docs/DatasetUserPropertiesSummaryString.md create mode 100644 client/docs/DatasetsApi.md create mode 100644 client/docs/DateFieldDataPrivate.md create mode 100644 client/docs/DateFieldDataType.md create mode 100644 client/docs/DeleteAlertResponse.md create mode 100644 client/docs/DeleteAlertSubscriptionReponse.md create mode 100644 client/docs/DeleteBucketResponse.md create mode 100644 client/docs/DeleteCommentResponse.md create mode 100644 client/docs/DeleteDashboardResponse.md create mode 100644 client/docs/DeleteDatasetByIdResponse.md create mode 100644 client/docs/DeleteDatasetResponse.md create mode 100644 client/docs/DeleteIntegrationResponse.md create mode 100644 client/docs/DeleteIxpDatasetResponse.md create mode 100644 client/docs/DeleteKeyedSyncStateResponse.md create mode 100644 client/docs/DeleteLabelDefResponse.md create mode 100644 client/docs/DeleteLabelGroupResponse.md create mode 100644 client/docs/DeleteModelTagResponse.md create mode 100644 client/docs/DeleteProjectResponse.md create mode 100644 client/docs/DeleteSourceResponse.md create mode 100644 client/docs/DeleteStreamExceptionResponse.md create mode 100644 client/docs/DeleteStreamResponse.md create mode 100644 client/docs/DeleteTenantDefaultProjectPermissionsResponse.md create mode 100644 client/docs/DeleteTenantResponse.md create mode 100644 client/docs/DeleteTriggerResponse.md create mode 100644 client/docs/DeleteUserResponse.md create mode 100644 client/docs/DeploymentApi.md create mode 100644 client/docs/DeprecatedUserModelMetadata.md create mode 100644 client/docs/DeprecationApi.md create mode 100644 client/docs/Diagnostic.md create mode 100644 client/docs/DiagnosticKind.md create mode 100644 client/docs/Direction.md create mode 100644 client/docs/DisableIntegrationAction.md create mode 100644 client/docs/DisableMailboxAction.md create mode 100644 client/docs/DiscoverApi.md create mode 100644 client/docs/DocPathIxpModelConfig.md create mode 100644 client/docs/DocumentLabelPropertyPrediction.md create mode 100644 client/docs/DocumentSearchResult.md create mode 100644 client/docs/DocumentSpan.md create mode 100644 client/docs/DocumentsApi.md create mode 100644 client/docs/Email.md create mode 100644 client/docs/EmailMetadata.md create mode 100644 client/docs/EmailMetadataNew.md create mode 100644 client/docs/EmailNew.md create mode 100644 client/docs/EmailPropertiesSummary.md create mode 100644 client/docs/EmailPropertiesSummaryByProperty.md create mode 100644 client/docs/EmailPropertiesSummaryValue.md create mode 100644 client/docs/EmailPropertyCounts.md create mode 100644 client/docs/EmailPropertyCountsByProperty.md create mode 100644 client/docs/EmailPropertyCountsSettings.md create mode 100644 client/docs/EmailPropertyCountsSettingsByProperty.md create mode 100644 client/docs/EmailTransformTagInfo.md create mode 100644 client/docs/EmailsApi.md create mode 100644 client/docs/Entities.md create mode 100644 client/docs/EntitiesNew.md create mode 100644 client/docs/EntitiesPrStats.md create mode 100644 client/docs/EntitiesRules.md create mode 100644 client/docs/EntitiesRulesPresenceInner.md create mode 100644 client/docs/Entity.md create mode 100644 client/docs/EntityAverageStats.md create mode 100644 client/docs/EntityDef.md create mode 100644 client/docs/EntityDefFlag.md create mode 100644 client/docs/EntityDefIdStat.md create mode 100644 client/docs/EntityDefNew.md create mode 100644 client/docs/EntityDefSummary.md create mode 100644 client/docs/EntityDefUpdate.md create mode 100644 client/docs/EntityDefUpdateInheritsFromInner.md create mode 100644 client/docs/EntityHealth.md create mode 100644 client/docs/EntityHealthAction.md create mode 100644 client/docs/EntityHealthActionKind.md create mode 100644 client/docs/EntityHealthSmart.md create mode 100644 client/docs/EntityHealthWarning.md create mode 100644 client/docs/EntityHealthWarningKind.md create mode 100644 client/docs/EntityKind.md create mode 100644 client/docs/EntityNew.md create mode 100644 client/docs/EntityNewSpansInner.md create mode 100644 client/docs/EntityPresenceFilter.md create mode 100644 client/docs/EntityPresenceFilterWithKind.md create mode 100644 client/docs/EntityRuleSetApi.md create mode 100644 client/docs/EntityRuleSetNewApi.md create mode 100644 client/docs/EntityRuleSetUpdateApi.md create mode 100644 client/docs/EntityRuleSetUpdateApiChoicesInner.md create mode 100644 client/docs/EntitySummaryV1.md create mode 100644 client/docs/EntityTemplatePropertiesApi.md create mode 100644 client/docs/EntityTemplatesPropertiesApi.md create mode 100644 client/docs/ErrorAction.md create mode 100644 client/docs/ErrorResponse.md create mode 100644 client/docs/EwsApiModel.md create mode 100644 client/docs/EwsApiModelKind.md create mode 100644 client/docs/ExactBucketCount.md create mode 100644 client/docs/ExceptionModel.md create mode 100644 client/docs/ExportDatasetRequest.md create mode 100644 client/docs/ExportDatasetResponse.md create mode 100644 client/docs/ExportedAnnotations.md create mode 100644 client/docs/ExportedComment.md create mode 100644 client/docs/ExportedLabel.md create mode 100644 client/docs/ExportedLabels.md create mode 100644 client/docs/ExportedPredictions.md create mode 100644 client/docs/ExtractionFieldDefinition.md create mode 100644 client/docs/ExtractionPrediction.md create mode 100644 client/docs/FetchFromGxStreamRequest.md create mode 100644 client/docs/FetchFromGxStreamResponse.md create mode 100644 client/docs/FetchFromStreamRequest.md create mode 100644 client/docs/FetchFromStreamResponse.md create mode 100644 client/docs/FieldAnnotationPrivate.md create mode 100644 client/docs/FieldChoiceApi.md create mode 100644 client/docs/FieldChoiceNewApi.md create mode 100644 client/docs/FieldGroupAnnotationPrivate.md create mode 100644 client/docs/FieldGroupPredictionPrivate.md create mode 100644 client/docs/FieldGroupSnapshot.md create mode 100644 client/docs/FieldGroupVersionEntry.md create mode 100644 client/docs/FieldPredictionPrivate.md create mode 100644 client/docs/FieldSnapshot.md create mode 100644 client/docs/FieldType.md create mode 100644 client/docs/FieldUipathContextModel.md create mode 100644 client/docs/FieldValuePrivate.md create mode 100644 client/docs/FieldVersionEntry.md create mode 100644 client/docs/FilesApi.md create mode 100644 client/docs/Filter.md create mode 100644 client/docs/Freshness.md create mode 100644 client/docs/FullParticipantFilter.md create mode 100644 client/docs/GeminiTableOnlyConfig.md create mode 100644 client/docs/GeneralFieldDef.md create mode 100644 client/docs/GeneralFieldDefNew.md create mode 100644 client/docs/GeneralFieldDefUpdate.md create mode 100644 client/docs/GeneralFieldDefinition.md create mode 100644 client/docs/GetAlertResponse.md create mode 100644 client/docs/GetAlertSubscriptionsResponse.md create mode 100644 client/docs/GetAllAlertsResponse.md create mode 100644 client/docs/GetAllBucketsResponse.md create mode 100644 client/docs/GetAllDashboardsInDatasetResponse.md create mode 100644 client/docs/GetAllDashboardsInProjectResponse.md create mode 100644 client/docs/GetAllDatasetsInProjectResponse.md create mode 100644 client/docs/GetAllDatasetsResponse.md create mode 100644 client/docs/GetAllIntegrationsInProjectResponse.md create mode 100644 client/docs/GetAllIntegrationsResponse.md create mode 100644 client/docs/GetAllIxpModelsInProjectResponse.md create mode 100644 client/docs/GetAllIxpProjectsResponse.md create mode 100644 client/docs/GetAllLabelGroupsResponse.md create mode 100644 client/docs/GetAllModelsInDatasetRequest.md create mode 100644 client/docs/GetAllModelsInDatasetResponse.md create mode 100644 client/docs/GetAllProjectsResponse.md create mode 100644 client/docs/GetAllProjectsV1Response.md create mode 100644 client/docs/GetAllSourcesInProjectResponse.md create mode 100644 client/docs/GetAllSourcesResponse.md create mode 100644 client/docs/GetAllStreamsResponse.md create mode 100644 client/docs/GetAllTriggersInDatasetResponse.md create mode 100644 client/docs/GetBucketByIdResponse.md create mode 100644 client/docs/GetBucketEmailsRequest.md create mode 100644 client/docs/GetBucketEmailsResponse.md create mode 100644 client/docs/GetBucketResponse.md create mode 100644 client/docs/GetBucketStatisticsResponse.md create mode 100644 client/docs/GetBucketSyncStateResponse.md create mode 100644 client/docs/GetBucketsByOwnerResponse.md create mode 100644 client/docs/GetCommentPredictionsRequest.md create mode 100644 client/docs/GetCommentPredictionsResponse.md create mode 100644 client/docs/GetCommentResponse.md create mode 100644 client/docs/GetComparisonRequest.md create mode 100644 client/docs/GetComparisonResponse.md create mode 100644 client/docs/GetDashboardResponse.md create mode 100644 client/docs/GetDatasetResponse.md create mode 100644 client/docs/GetDatasetStatisticsRequest.md create mode 100644 client/docs/GetDatasetStatisticsResponse.md create mode 100644 client/docs/GetDatasetStatusResponse.md create mode 100644 client/docs/GetDatasetSummaryRequest.md create mode 100644 client/docs/GetDatasetSummaryResponse.md create mode 100644 client/docs/GetDatasetUserPropertiesSummaryResponse.md create mode 100644 client/docs/GetDeprecatedUserModelsResponse.md create mode 100644 client/docs/GetDerivedPermissionResponse.md create mode 100644 client/docs/GetDerivedPermissionsRequest.md create mode 100644 client/docs/GetDocumentMetadataResponse.md create mode 100644 client/docs/GetDocumentSearchResponse.md create mode 100644 client/docs/GetEmailFromBucketByIdResponse.md create mode 100644 client/docs/GetEmailTransformTagInfoResponse.md create mode 100644 client/docs/GetFieldGroupHistoryResponse.md create mode 100644 client/docs/GetFieldHistoryResponse.md create mode 100644 client/docs/GetIntegrationByIdResponse.md create mode 100644 client/docs/GetIntegrationErrorsResponse.md create mode 100644 client/docs/GetIntegrationResponse.md create mode 100644 client/docs/GetIssueResponse.md create mode 100644 client/docs/GetIxpConsumabilityInfoResponse.md create mode 100644 client/docs/GetIxpProjectResponse.md create mode 100644 client/docs/GetKeyedSyncStateResponse.md create mode 100644 client/docs/GetLabelDefResponse.md create mode 100644 client/docs/GetLabelGroupResponse.md create mode 100644 client/docs/GetLabelValidationRequest.md create mode 100644 client/docs/GetLabelValidationResponse.md create mode 100644 client/docs/GetLabellingsResponse.md create mode 100644 client/docs/GetModelTagsResponse.md create mode 100644 client/docs/GetPageSelectionsResponse.md create mode 100644 client/docs/GetPretrainedLabelsResponse.md create mode 100644 client/docs/GetProjectResourceCountsResponse.md create mode 100644 client/docs/GetProjectResponse.md create mode 100644 client/docs/GetQualifiedLoginUrlRequest.md create mode 100644 client/docs/GetQualifiedLoginUrlResponse.md create mode 100644 client/docs/GetQuotasForTenantResponse.md create mode 100644 client/docs/GetReducedPermissionsRequest.md create mode 100644 client/docs/GetReducedPermissionsResponse.md create mode 100644 client/docs/GetReducedPermissionsResponsePermissionsInner.md create mode 100644 client/docs/GetSourceByIdResponse.md create mode 100644 client/docs/GetSourceCommentsResponse.md create mode 100644 client/docs/GetSourceCommentsResponseThreadPropertiesInner.md create mode 100644 client/docs/GetSourceResponse.md create mode 100644 client/docs/GetSourceStatisticsRequest.md create mode 100644 client/docs/GetSourceStatisticsResponse.md create mode 100644 client/docs/GetStreamByNameResponse.md create mode 100644 client/docs/GetStreamResultsResponse.md create mode 100644 client/docs/GetSubdomainResponse.md create mode 100644 client/docs/GetTenantClientSubnetsResponse.md create mode 100644 client/docs/GetTenantDefaultProjectPermissionsResponse.md create mode 100644 client/docs/GetTenantDomainsResponse.md create mode 100644 client/docs/GetTenantEntityDefIdsResponse.md create mode 100644 client/docs/GetTenantQuotaResponse.md create mode 100644 client/docs/GetTenantsResponse.md create mode 100644 client/docs/GetThemesResponse.md create mode 100644 client/docs/GetThreadThemesRequest.md create mode 100644 client/docs/GetThreadThemesResponse.md create mode 100644 client/docs/GetThreadsBySourceResponse.md create mode 100644 client/docs/GetTrainingActionsCommentUidsResponse.md create mode 100644 client/docs/GetTrainingActionsLabelsResponse.md create mode 100644 client/docs/GetTrainingActionsLabelsResponseTrainingActionsLabelsInner.md create mode 100644 client/docs/GetTriggerResponse.md create mode 100644 client/docs/GetUserByIdResponse.md create mode 100644 client/docs/GetUsersResponse.md create mode 100644 client/docs/GetUsersV1Response.md create mode 100644 client/docs/GetValidationResponse.md create mode 100644 client/docs/GetValidationV1Response.md create mode 100644 client/docs/GlobalPermission.md create mode 100644 client/docs/GptIxpFlag.md create mode 100644 client/docs/GptIxpModelConfig.md create mode 100644 client/docs/GptModelVersion.md create mode 100644 client/docs/GraphApiModel.md create mode 100644 client/docs/GraphApiModelKind.md create mode 100644 client/docs/GroupLabellingsRequest.md create mode 100644 client/docs/GroupPredictions.md create mode 100644 client/docs/Headers.md create mode 100644 client/docs/Highlight.md create mode 100644 client/docs/HistogramBin.md create mode 100644 client/docs/ImageInputConfig.md create mode 100644 client/docs/ImportTaxonomyRequest.md create mode 100644 client/docs/ImportTaxonomyResponse.md create mode 100644 client/docs/InferenceStats.md create mode 100644 client/docs/InheritsFrom.md create mode 100644 client/docs/InputConfig.md create mode 100644 client/docs/Integration.md create mode 100644 client/docs/IntegrationDisabledReason.md create mode 100644 client/docs/IntegrationError.md create mode 100644 client/docs/IntegrationErrorDetails.md create mode 100644 client/docs/IntegrationNew.md create mode 100644 client/docs/IntegrationType.md create mode 100644 client/docs/IntegrationUpdate.md create mode 100644 client/docs/IntegrationsApi.md create mode 100644 client/docs/IntegrationsOAuth2AuthenticateResponse.md create mode 100644 client/docs/IntentThreshold.md create mode 100644 client/docs/IntentValidation.md create mode 100644 client/docs/IntentValidationSummary.md create mode 100644 client/docs/IntentsValue.md create mode 100644 client/docs/InterpretationSpan.md create mode 100644 client/docs/Issue.md create mode 100644 client/docs/IssueDetail.md create mode 100644 client/docs/IssueStatus.md create mode 100644 client/docs/IterativeConfig.md create mode 100644 client/docs/IxpConfidence.md create mode 100644 client/docs/IxpDatasetNew.md create mode 100644 client/docs/IxpDatasetsApi.md create mode 100644 client/docs/IxpExtractionStatus.md create mode 100644 client/docs/IxpField.md create mode 100644 client/docs/IxpFieldGroup.md create mode 100644 client/docs/IxpFieldType.md create mode 100644 client/docs/IxpModelMetadata.md create mode 100644 client/docs/IxpModelsApi.md create mode 100644 client/docs/IxpPredictExtractionsResponse.md create mode 100644 client/docs/IxpProject.md create mode 100644 client/docs/IxpProjectsApi.md create mode 100644 client/docs/IxpRelativeUrls.md create mode 100644 client/docs/IxpTaxonomy.md create mode 100644 client/docs/IxpTaxonomyExtraction.md create mode 100644 client/docs/IxpUploadDocumentResponse.md create mode 100644 client/docs/IxpUploadedDocument.md create mode 100644 client/docs/KeyedFolderSyncState.md create mode 100644 client/docs/KeyedFolderSyncStateUpdate.md create mode 100644 client/docs/KeyedMailboxSyncState.md create mode 100644 client/docs/KeyedMailboxSyncStateUpdate.md create mode 100644 client/docs/KeyedSyncState.md create mode 100644 client/docs/KeyedSyncState1.md create mode 100644 client/docs/Label.md create mode 100644 client/docs/LabelAction.md create mode 100644 client/docs/LabelCollection.md create mode 100644 client/docs/LabelComparison.md create mode 100644 client/docs/LabelCounts.md create mode 100644 client/docs/LabelDef.md create mode 100644 client/docs/LabelDefFlag.md create mode 100644 client/docs/LabelDefNew.md create mode 100644 client/docs/LabelDefProperty.md create mode 100644 client/docs/LabelDefUpdate.md create mode 100644 client/docs/LabelDefUpdateMoonFormInner.md create mode 100644 client/docs/LabelDefUpdateRequest.md create mode 100644 client/docs/LabelDefinition.md create mode 100644 client/docs/LabelDefsApi.md create mode 100644 client/docs/LabelGroup.md create mode 100644 client/docs/LabelGroupNew.md create mode 100644 client/docs/LabelGroupsApi.md create mode 100644 client/docs/LabelHealth.md create mode 100644 client/docs/LabelHealthAction.md create mode 100644 client/docs/LabelHealthSmart.md create mode 100644 client/docs/LabelHealthWarning.md create mode 100644 client/docs/LabelMetrics.md create mode 100644 client/docs/LabelNameOnlyResponse.md create mode 100644 client/docs/LabelPropertiesDigest.md create mode 100644 client/docs/LabelProperty.md create mode 100644 client/docs/LabelPropertyDigest.md create mode 100644 client/docs/LabelPropertyId.md create mode 100644 client/docs/LabelPropertyName.md create mode 100644 client/docs/LabelPropertySummary.md create mode 100644 client/docs/LabelPropertySummaryLabel.md create mode 100644 client/docs/LabelPropertyTimeSeriesRow.md create mode 100644 client/docs/LabelSentiment.md create mode 100644 client/docs/LabelSuggestionReasoning.md create mode 100644 client/docs/LabelSummaryV1.md create mode 100644 client/docs/LabelTimeseriesEntry.md create mode 100644 client/docs/LabelTrainingAction.md create mode 100644 client/docs/LabelValidationSummary.md create mode 100644 client/docs/LabellingGroup.md create mode 100644 client/docs/Language.md create mode 100644 client/docs/LegacyEntityPatternApi.md create mode 100644 client/docs/ListKeyedSyncStatesResponse.md create mode 100644 client/docs/ListKeyedSyncStatesResponseKeyedSyncStatesInner.md create mode 100644 client/docs/Locales.md create mode 100644 client/docs/LocalesPreferences.md create mode 100644 client/docs/LowerBoundBucketCount.md create mode 100644 client/docs/MarkupBreak.md create mode 100644 client/docs/MarkupBreakKind.md create mode 100644 client/docs/MarkupImage.md create mode 100644 client/docs/MarkupLink.md create mode 100644 client/docs/MarkupList.md create mode 100644 client/docs/MarkupListItem.md create mode 100644 client/docs/MarkupListKind.md create mode 100644 client/docs/MarkupParagraph.md create mode 100644 client/docs/MarkupParagraphKind.md create mode 100644 client/docs/MarkupStyle.md create mode 100644 client/docs/MarkupStyleKind.md create mode 100644 client/docs/MarkupTable.md create mode 100644 client/docs/MarkupTableCaption.md create mode 100644 client/docs/MarkupTableCell.md create mode 100644 client/docs/MarkupTableCellChildrenInner.md create mode 100644 client/docs/MarkupTableCellKind.md create mode 100644 client/docs/MarkupTableRow.md create mode 100644 client/docs/MarkupTableSectionKind.md create mode 100644 client/docs/MarkupText.md create mode 100644 client/docs/MatchedFieldGroupExtractions.md create mode 100644 client/docs/MeanPrCurve.md create mode 100644 client/docs/Message.md create mode 100644 client/docs/MessageFilter.md create mode 100644 client/docs/MessageRichText.md create mode 100644 client/docs/MessageRichTextTextMarkupInner.md create mode 100644 client/docs/MessageSpan.md create mode 100644 client/docs/MessageText.md create mode 100644 client/docs/Metadata.md create mode 100644 client/docs/MetadataApi.md create mode 100644 client/docs/MicrosoftApi.md create mode 100644 client/docs/ModelConfig.md create mode 100644 client/docs/ModelDefinition.md create mode 100644 client/docs/ModelError.md create mode 100644 client/docs/ModelErrorKind.md create mode 100644 client/docs/ModelFamily.md create mode 100644 client/docs/ModelFamilyApi.md create mode 100644 client/docs/ModelName.md create mode 100644 client/docs/ModelRating.md create mode 100644 client/docs/ModelRatingAction.md create mode 100644 client/docs/ModelRatingFactor.md create mode 100644 client/docs/ModelRatingFactorKind.md create mode 100644 client/docs/ModelTaxonomy.md create mode 100644 client/docs/ModelsApi.md create mode 100644 client/docs/MonetaryFieldDataPrivate.md create mode 100644 client/docs/MonetaryQuantityFieldDataType.md create mode 100644 client/docs/MoonFormCaptureFieldsAnnotation.md create mode 100644 client/docs/MoonFormCaptureFieldsAnnotationNew.md create mode 100644 client/docs/MoonFormCaptureFieldsPrediction.md create mode 100644 client/docs/MoonFormDismissedUpdate.md create mode 100644 client/docs/MoonFormFieldAnnotation.md create mode 100644 client/docs/MoonFormFieldAnnotationNew.md create mode 100644 client/docs/MoonFormFieldDef.md create mode 100644 client/docs/MoonFormFieldDefNew.md create mode 100644 client/docs/MoonFormFieldDefUpdate.md create mode 100644 client/docs/MoonFormFieldPrediction.md create mode 100644 client/docs/MoonFormGroup.md create mode 100644 client/docs/MoonFormGroupUpdate.md create mode 100644 client/docs/MoonFormLabelAnnotation.md create mode 100644 client/docs/MoonFormLabelAnnotationUpdate.md create mode 100644 client/docs/MoonFormLabelPrediction.md create mode 100644 client/docs/MoonIntentFieldsMetrics.md create mode 100644 client/docs/MoonIntentValidationRequest.md create mode 100644 client/docs/MoonSummaryMetrics.md create mode 100644 client/docs/MoonValidation.md create mode 100644 client/docs/Name.md create mode 100644 client/docs/NewDashboard.md create mode 100644 client/docs/NoUiMetadataReason.md create mode 100644 client/docs/NpsSummary.md create mode 100644 client/docs/NtlmApplicationModel.md create mode 100644 client/docs/NtlmApplicationModelKind.md create mode 100644 client/docs/NullableStringArrayFilter.md create mode 100644 client/docs/NumberFieldDataType.md create mode 100644 client/docs/NumberOneOfFilter.md create mode 100644 client/docs/NumberRangeFilter.md create mode 100644 client/docs/NumberRangeFilterWithKind.md create mode 100644 client/docs/NumberUserPropertySummary.md create mode 100644 client/docs/OAuth2SalesforceCallbackRequest.md create mode 100644 client/docs/OAuth2SalesforceCallbackResponse.md create mode 100644 client/docs/OptimalThreshold.md create mode 100644 client/docs/Order.md create mode 100644 client/docs/PageDimensions.md create mode 100644 client/docs/PageMetadata.md create mode 100644 client/docs/PagePolygon.md create mode 100644 client/docs/PageSelection.md create mode 100644 client/docs/ParseEmailNewComment.md create mode 100644 client/docs/ParsedValue.md create mode 100644 client/docs/Period.md create mode 100644 client/docs/PermissionsApi.md create mode 100644 client/docs/PinModelResponse.md create mode 100644 client/docs/PollTriggerRequest.md create mode 100644 client/docs/PollTriggerResponse.md create mode 100644 client/docs/PrCurve.md create mode 100644 client/docs/PredictDocument.md create mode 100644 client/docs/PredictExtractionsRequest.md create mode 100644 client/docs/PredictExtractionsResponse.md create mode 100644 client/docs/PredictLatestRequest.md create mode 100644 client/docs/PredictLatestResponse.md create mode 100644 client/docs/PredictRawEmailsRequest.md create mode 100644 client/docs/PredictRawEmailsResponse.md create mode 100644 client/docs/PredictRequest.md create mode 100644 client/docs/PredictResponse.md create mode 100644 client/docs/PredictedEntity.md create mode 100644 client/docs/PredictedLabel.md create mode 100644 client/docs/PredictedLabelProperty.md create mode 100644 client/docs/PredictionsModel.md create mode 100644 client/docs/Preference.md create mode 100644 client/docs/PreferredLocale.md create mode 100644 client/docs/PreviewAlertRequest.md create mode 100644 client/docs/PreviewAlertResponse.md create mode 100644 client/docs/PrivateKeyApplicationModel.md create mode 100644 client/docs/PrivateKeyApplicationModelKind.md create mode 100644 client/docs/Process.md create mode 100644 client/docs/Project.md create mode 100644 client/docs/ProjectNew.md create mode 100644 client/docs/ProjectPermission.md create mode 100644 client/docs/ProjectSetupExistingSource.md create mode 100644 client/docs/ProjectSetupNewDataset.md create mode 100644 client/docs/ProjectSetupNewProject.md create mode 100644 client/docs/ProjectSetupNewSource.md create mode 100644 client/docs/ProjectSetupNewStream.md create mode 100644 client/docs/ProjectSetupNewUsers.md create mode 100644 client/docs/ProjectV1.md create mode 100644 client/docs/ProjectsApi.md create mode 100644 client/docs/PutCommentAsSeenRequest.md create mode 100644 client/docs/PutCommentAsSeenResponse.md create mode 100644 client/docs/QueryAuditEventsFilter.md create mode 100644 client/docs/QueryAuditEventsRequest.md create mode 100644 client/docs/QueryAuditEventsResponse.md create mode 100644 client/docs/QueryCommentsOrderAnyLabel.md create mode 100644 client/docs/QueryCommentsOrderAttachmentTextSearch.md create mode 100644 client/docs/QueryCommentsOrderByLabel.md create mode 100644 client/docs/QueryCommentsOrderCheck.md create mode 100644 client/docs/QueryCommentsOrderDiagnostic.md create mode 100644 client/docs/QueryCommentsOrderLabelProperty.md create mode 100644 client/docs/QueryCommentsOrderLearning.md create mode 100644 client/docs/QueryCommentsOrderMissed.md create mode 100644 client/docs/QueryCommentsOrderRecent.md create mode 100644 client/docs/QueryCommentsOrderSample.md create mode 100644 client/docs/QueryCommentsOrderTextSearch.md create mode 100644 client/docs/QueryCommentsRequest.md create mode 100644 client/docs/QueryCommentsResponse.md create mode 100644 client/docs/QueryDatasetUserPropertyValuesFilter.md create mode 100644 client/docs/QueryDatasetUserPropertyValuesRequest.md create mode 100644 client/docs/QueryDatasetUserPropertyValuesResponse.md create mode 100644 client/docs/QueryIssuesRequest.md create mode 100644 client/docs/QueryIssuesResponse.md create mode 100644 client/docs/QueryKeyedSyncStateIdsRequest.md create mode 100644 client/docs/QueryKeyedSyncStateIdsResponse.md create mode 100644 client/docs/QueryResultCounts.md create mode 100644 client/docs/Quota.md create mode 100644 client/docs/QuotaKind.md create mode 100644 client/docs/QuotasApi.md create mode 100644 client/docs/RawEmail.md create mode 100644 client/docs/RawEmailBody.md create mode 100644 client/docs/RawEmailDocument.md create mode 100644 client/docs/RawEmailHeadersParsed.md create mode 100644 client/docs/RawEmailHeadersRaw.md create mode 100644 client/docs/Regex.md create mode 100644 client/docs/RemoveSupportTenantRequest.md create mode 100644 client/docs/RemoveSupportTenantResponse.md create mode 100644 client/docs/ReportsApi.md create mode 100644 client/docs/ResetAnnotationsToPreviousPinnedModelRequest.md create mode 100644 client/docs/ResetAnnotationsToPreviousPinnedModelResponse.md create mode 100644 client/docs/ResetStreamRequest.md create mode 100644 client/docs/ResetStreamResponse.md create mode 100644 client/docs/ResetTenantQuotaResponse.md create mode 100644 client/docs/ResetTriggerRequest.md create mode 100644 client/docs/ResetTriggerResponse.md create mode 100644 client/docs/ResponseStatusError.md create mode 100644 client/docs/RetrievalMethod.md create mode 100644 client/docs/ReviewableBlock.md create mode 100644 client/docs/ReviewableBlockGroup.md create mode 100644 client/docs/Reviewed.md create mode 100644 client/docs/ReviewedFilterRule.md create mode 100644 client/docs/RichDiagnosticKind.md create mode 100644 client/docs/SearchApi.md create mode 100644 client/docs/SendWelcomeEmailResponse.md create mode 100644 client/docs/Sentiment.md create mode 100644 client/docs/SetCommentAudioResponse.md create mode 100644 client/docs/SetQuotaForTenantRequest.md create mode 100644 client/docs/SetQuotaForTenantResponse.md create mode 100644 client/docs/SetTenantQuotaRequest.md create mode 100644 client/docs/SetTenantQuotaResponse.md create mode 100644 client/docs/SetTenantStateRequest.md create mode 100644 client/docs/SetTenantStateResponse.md create mode 100644 client/docs/Significance.md create mode 100644 client/docs/SignificanceValue.md create mode 100644 client/docs/SingleLabelSummary.md create mode 100644 client/docs/SingleTenantsResponse.md create mode 100644 client/docs/SniffCsvResponse.md create mode 100644 client/docs/Source.md create mode 100644 client/docs/Source1.md create mode 100644 client/docs/SourceCounts.md create mode 100644 client/docs/SourceCountsSettings.md create mode 100644 client/docs/SourceKind.md create mode 100644 client/docs/SourceStatistics.md create mode 100644 client/docs/SourceUpdate.md create mode 100644 client/docs/SourcesApi.md create mode 100644 client/docs/Span.md create mode 100644 client/docs/Statistics.md create mode 100644 client/docs/StoreBucketSyncStateRequest.md create mode 100644 client/docs/StoreBucketSyncStateResponse.md create mode 100644 client/docs/StoreExceptionRequest.md create mode 100644 client/docs/StoreExceptionResponse.md create mode 100644 client/docs/StoreKeyedSyncStateRequest.md create mode 100644 client/docs/StoreKeyedSyncStateResponse.md create mode 100644 client/docs/StreamCommentExtractionsResult.md create mode 100644 client/docs/StreamCommentPrediction.md create mode 100644 client/docs/StreamCommentResult.md create mode 100644 client/docs/StreamConfidence.md create mode 100644 client/docs/StreamExtractionFieldPrediction.md create mode 100644 client/docs/StreamFieldValue.md create mode 100644 client/docs/StreamGeneralFieldPrediction.md create mode 100644 client/docs/StreamLabelPrediction.md create mode 100644 client/docs/StreamResult.md create mode 100644 client/docs/StreamScorePrediction.md create mode 100644 client/docs/StreamTaxonomyPrediction.md create mode 100644 client/docs/StreamTextSpan.md create mode 100644 client/docs/StreamsApi.md create mode 100644 client/docs/StringAnyOfFilter.md create mode 100644 client/docs/StringArrayFilter.md create mode 100644 client/docs/StringNoneOfFilter.md create mode 100644 client/docs/StringOneOfFilter.md create mode 100644 client/docs/StringSearchFilter.md create mode 100644 client/docs/StringUserPropertyCount.md create mode 100644 client/docs/StringUserPropertyCountSingle.md create mode 100644 client/docs/StringUserPropertyCountsSettings.md create mode 100644 client/docs/StringUserPropertySummary.md create mode 100644 client/docs/SuggestTaxonomyRequest.md create mode 100644 client/docs/SuggestTaxonomyResponse.md create mode 100644 client/docs/SuggestedLabel.md create mode 100644 client/docs/SuggestedTaxonomy.md create mode 100644 client/docs/SyncAnnotationsRequest.md create mode 100644 client/docs/SyncAnnotationsResponse.md create mode 100644 client/docs/SyncCommentsFromCsvResponse.md create mode 100644 client/docs/SyncCommentsRequest.md create mode 100644 client/docs/SyncCommentsResponse.md create mode 100644 client/docs/SyncRawEmailsRequest.md create mode 100644 client/docs/SyncRawEmailsResponse.md create mode 100644 client/docs/SyncStatus.md create mode 100644 client/docs/TaggedIxpModelVersion.md create mode 100644 client/docs/TaggedUserModelVersion.md create mode 100644 client/docs/TaggedUserModelVersionName.md create mode 100644 client/docs/TaggedUserModelVersionUpdate.md create mode 100644 client/docs/TaxonomyExtractionPrivate.md create mode 100644 client/docs/Tenant.md create mode 100644 client/docs/TenantNew.md create mode 100644 client/docs/TenantUpdate.md create mode 100644 client/docs/TenantsApi.md create mode 100644 client/docs/TextConfig.md create mode 100644 client/docs/TextFieldDataPrivate.md create mode 100644 client/docs/TextFieldDataType.md create mode 100644 client/docs/TextFieldFlag.md create mode 100644 client/docs/TextFormat.md create mode 100644 client/docs/TextImageInputConfig.md create mode 100644 client/docs/TextSpan.md create mode 100644 client/docs/Theme.md create mode 100644 client/docs/ThemeComment.md create mode 100644 client/docs/ThemeCommentInterpretation.md create mode 100644 client/docs/ThemeSet.md create mode 100644 client/docs/ThemesApi.md create mode 100644 client/docs/ThreadHistogramBinningCustom.md create mode 100644 client/docs/ThreadHistogramBinningCustomContainer.md create mode 100644 client/docs/ThreadHistogramBinningFixed.md create mode 100644 client/docs/ThreadHistogramBinningFixedContainer.md create mode 100644 client/docs/ThreadHistogramBinningVariable.md create mode 100644 client/docs/ThreadHistogramBinningVariableContainer.md create mode 100644 client/docs/ThreadHistogramCounts.md create mode 100644 client/docs/ThreadHistogramCountsByProperty.md create mode 100644 client/docs/ThreadHistogramSettings.md create mode 100644 client/docs/ThreadHistogramSettingsByProperty.md create mode 100644 client/docs/ThreadProperties.md create mode 100644 client/docs/ThreadPropertyFilter.md create mode 100644 client/docs/ThreadTheme.md create mode 100644 client/docs/ThreadThemesApi.md create mode 100644 client/docs/Threshold.md create mode 100644 client/docs/Threshold1.md create mode 100644 client/docs/ThresholdEnum.md create mode 100644 client/docs/TimePeriodComparison.md create mode 100644 client/docs/TimeResolution.md create mode 100644 client/docs/TimestampRangeFilter.md create mode 100644 client/docs/TrainView.md create mode 100644 client/docs/TrainingAction.md create mode 100644 client/docs/TrainingActionCompleteness.md create mode 100644 client/docs/Translation.md create mode 100644 client/docs/Trigger.md create mode 100644 client/docs/TriggerException.md create mode 100644 client/docs/TriggerExceptionsSummary.md create mode 100644 client/docs/TriggerLabelThreshold.md create mode 100644 client/docs/TriggerNew.md create mode 100644 client/docs/TriggerUpdate.md create mode 100644 client/docs/TriggerUserModel.md create mode 100644 client/docs/TriggersApi.md create mode 100644 client/docs/Ui.md create mode 100644 client/docs/UiAnnotationMetadata.md create mode 100644 client/docs/UiPathCvTableOnlyConfig.md create mode 100644 client/docs/UiPathProvisionCreateProperties.md create mode 100644 client/docs/UiPathProvisionCreateRequest.md create mode 100644 client/docs/UiPathProvisionCreateResponse.md create mode 100644 client/docs/UiPathProvisionDeleteRequest.md create mode 100644 client/docs/UiPathProvisionDeleteResponse.md create mode 100644 client/docs/UiPathProvisionRestoreRequest.md create mode 100644 client/docs/UiPathProvisionRestoreResponse.md create mode 100644 client/docs/UiPathProvisionUpdateProperties.md create mode 100644 client/docs/UiPathProvisionUpdateRequest.md create mode 100644 client/docs/UiPathProvisionUpdateResponse.md create mode 100644 client/docs/UiPathTenantServiceStatus.md create mode 100644 client/docs/UipathProvisioningApi.md create mode 100644 client/docs/UnaryLabelHealthAction.md create mode 100644 client/docs/UnaryLabelHealthActionKind.md create mode 100644 client/docs/UnaryLabelHealthWarning.md create mode 100644 client/docs/UnaryLabelHealthWarningKind.md create mode 100644 client/docs/UninformativeLabel.md create mode 100644 client/docs/UninformativeMode.md create mode 100644 client/docs/UnpinModelResponse.md create mode 100644 client/docs/UpdateAlertRequest.md create mode 100644 client/docs/UpdateAlertResponse.md create mode 100644 client/docs/UpdateApplianceConfigResponse.md create mode 100644 client/docs/UpdateBucketRequest.md create mode 100644 client/docs/UpdateBucketResponse.md create mode 100644 client/docs/UpdateCommentLabellingRequest.md create mode 100644 client/docs/UpdateCommentLabellingResponse.md create mode 100644 client/docs/UpdateDashboardRequest.md create mode 100644 client/docs/UpdateDashboardResponse.md create mode 100644 client/docs/UpdateDatasetRequest.md create mode 100644 client/docs/UpdateDatasetResponse.md create mode 100644 client/docs/UpdateIntegrationRequest.md create mode 100644 client/docs/UpdateIntegrationResponse.md create mode 100644 client/docs/UpdateIssueStatusRequest.md create mode 100644 client/docs/UpdateIssueStatusResponse.md create mode 100644 client/docs/UpdateLabelDefResponse.md create mode 100644 client/docs/UpdateModelRequest.md create mode 100644 client/docs/UpdateModelResponse.md create mode 100644 client/docs/UpdateModelTagRequest.md create mode 100644 client/docs/UpdateModelTagResponse.md create mode 100644 client/docs/UpdateProjectRequest.md create mode 100644 client/docs/UpdateProjectResponse.md create mode 100644 client/docs/UpdateSourceRequest.md create mode 100644 client/docs/UpdateSourceResponse.md create mode 100644 client/docs/UpdateTenantClientSubnetsRequest.md create mode 100644 client/docs/UpdateTenantClientSubnetsResponse.md create mode 100644 client/docs/UpdateTenantDefaultProjectPermissionsRequest.md create mode 100644 client/docs/UpdateTenantDefaultProjectPermissionsResponse.md create mode 100644 client/docs/UpdateTenantDomainsRequest.md create mode 100644 client/docs/UpdateTenantDomainsResponse.md create mode 100644 client/docs/UpdateTenantEntityDefIdsRequest.md create mode 100644 client/docs/UpdateTenantEntityDefIdsResponse.md create mode 100644 client/docs/UpdateTenantRequest.md create mode 100644 client/docs/UpdateTenantResponse.md create mode 100644 client/docs/UpdateTriggerRequest.md create mode 100644 client/docs/UpdateTriggerResponse.md create mode 100644 client/docs/UpdateUserRequest.md create mode 100644 client/docs/UpdateUserResponse.md create mode 100644 client/docs/UploadAttachmentResponse.md create mode 100644 client/docs/UploadDocumentResponse.md create mode 100644 client/docs/UploadFilesResponse.md create mode 100644 client/docs/User.md create mode 100644 client/docs/UserAccessModel.md create mode 100644 client/docs/UserAccessModelKind.md create mode 100644 client/docs/UserLicense.md create mode 100644 client/docs/UserLicenseCheck.md create mode 100644 client/docs/UserModel.md create mode 100644 client/docs/UserModelMetadata.md create mode 100644 client/docs/UserModelMetadataFlag.md create mode 100644 client/docs/UserModelMetadataSettings.md create mode 100644 client/docs/UserNew.md create mode 100644 client/docs/UserPropertiesSummary.md create mode 100644 client/docs/UserPropertiesValue.md create mode 100644 client/docs/UserUpdate.md create mode 100644 client/docs/UserV1.md create mode 100644 client/docs/UserWithLicenseCheck.md create mode 100644 client/docs/UsersApi.md create mode 100644 client/docs/ValidateExchangeCredentialsRequest.md create mode 100644 client/docs/ValidateExchangeCredentialsResponse.md create mode 100644 client/docs/ValidationSummary.md create mode 100644 client/docs/ValidationSummaryV1.md create mode 100644 client/docs/VariationKind.md create mode 100644 client/docs/Vertex.md create mode 100644 client/git_push.sh create mode 100644 client/src/apis/alerts_api.rs create mode 100644 client/src/apis/analytics_api.rs create mode 100644 client/src/apis/appliance_configs_api.rs create mode 100644 client/src/apis/attachments_api.rs create mode 100644 client/src/apis/audit_events_api.rs create mode 100644 client/src/apis/buckets_api.rs create mode 100644 client/src/apis/comments_api.rs create mode 100644 client/src/apis/configuration.rs create mode 100644 client/src/apis/conversational_filter_api.rs create mode 100644 client/src/apis/dashboards_api.rs create mode 100644 client/src/apis/datasets_api.rs create mode 100644 client/src/apis/deployment_api.rs create mode 100644 client/src/apis/deprecation_api.rs create mode 100644 client/src/apis/discover_api.rs create mode 100644 client/src/apis/documents_api.rs create mode 100644 client/src/apis/emails_api.rs create mode 100644 client/src/apis/files_api.rs create mode 100644 client/src/apis/integrations_api.rs create mode 100644 client/src/apis/ixp_datasets_api.rs create mode 100644 client/src/apis/ixp_models_api.rs create mode 100644 client/src/apis/ixp_projects_api.rs create mode 100644 client/src/apis/label_defs_api.rs create mode 100644 client/src/apis/label_groups_api.rs create mode 100644 client/src/apis/metadata_api.rs create mode 100644 client/src/apis/mod.rs create mode 100644 client/src/apis/model_family_api.rs create mode 100644 client/src/apis/models_api.rs create mode 100644 client/src/apis/permissions_api.rs create mode 100644 client/src/apis/projects_api.rs create mode 100644 client/src/apis/quotas_api.rs create mode 100644 client/src/apis/reports_api.rs create mode 100644 client/src/apis/search_api.rs create mode 100644 client/src/apis/sources_api.rs create mode 100644 client/src/apis/streams_api.rs create mode 100644 client/src/apis/tenants_api.rs create mode 100644 client/src/apis/themes_api.rs create mode 100644 client/src/apis/thread_themes_api.rs create mode 100644 client/src/apis/triggers_api.rs create mode 100644 client/src/apis/uipath_provisioning_api.rs create mode 100644 client/src/apis/users_api.rs create mode 100644 client/src/lib.rs create mode 100644 client/src/models/_audit_events_dataset.rs create mode 100644 client/src/models/_audit_events_project.rs create mode 100644 client/src/models/_audit_events_source.rs create mode 100644 client/src/models/_audit_events_tenant.rs create mode 100644 client/src/models/_audit_events_trigger.rs create mode 100644 client/src/models/_audit_events_user.rs create mode 100644 client/src/models/_bucket_statistics.rs create mode 100644 client/src/models/_by_labels_include_container.rs create mode 100644 client/src/models/_by_labels_top_container.rs create mode 100644 client/src/models/_dataset_string_summary_value.rs create mode 100644 client/src/models/_dataset_user_properties_summary_number.rs create mode 100644 client/src/models/_dataset_user_properties_summary_string.rs create mode 100644 client/src/models/_entity_summary_v1.rs create mode 100644 client/src/models/_exact_bucket_count.rs create mode 100644 client/src/models/_label_summary_v1.rs create mode 100644 client/src/models/_lower_bound_bucket_count.rs create mode 100644 client/src/models/_query_comments_order_any_label.rs create mode 100644 client/src/models/_query_comments_order_attachment_text_search.rs create mode 100644 client/src/models/_query_comments_order_by_label.rs create mode 100644 client/src/models/_query_comments_order_check.rs create mode 100644 client/src/models/_query_comments_order_diagnostic.rs create mode 100644 client/src/models/_query_comments_order_label_property.rs create mode 100644 client/src/models/_query_comments_order_learning.rs create mode 100644 client/src/models/_query_comments_order_missed.rs create mode 100644 client/src/models/_query_comments_order_recent.rs create mode 100644 client/src/models/_query_comments_order_sample.rs create mode 100644 client/src/models/_query_comments_order_text_search.rs create mode 100644 client/src/models/_query_dataset_user_property_values_filter.rs create mode 100644 client/src/models/_raw_email_body.rs create mode 100644 client/src/models/_raw_email_headers_parsed.rs create mode 100644 client/src/models/_raw_email_headers_raw.rs create mode 100644 client/src/models/_source_statistics.rs create mode 100644 client/src/models/_thread_histogram_binning_custom_container.rs create mode 100644 client/src/models/_thread_histogram_binning_fixed_container.rs create mode 100644 client/src/models/_thread_histogram_binning_variable_container.rs create mode 100644 client/src/models/access.rs create mode 100644 client/src/models/add_comments_request.rs create mode 100644 client/src/models/add_comments_response.rs create mode 100644 client/src/models/add_emails_to_bucket_request.rs create mode 100644 client/src/models/add_emails_to_bucket_response.rs create mode 100644 client/src/models/add_support_tenant_request.rs create mode 100644 client/src/models/add_support_tenant_response.rs create mode 100644 client/src/models/advance_stream_request.rs create mode 100644 client/src/models/advance_stream_response.rs create mode 100644 client/src/models/advance_trigger_request.rs create mode 100644 client/src/models/advance_trigger_response.rs create mode 100644 client/src/models/alert.rs create mode 100644 client/src/models/alert_config.rs create mode 100644 client/src/models/alert_config_kind.rs create mode 100644 client/src/models/alert_filter.rs create mode 100644 client/src/models/alert_issues_response.rs create mode 100644 client/src/models/alert_metric.rs create mode 100644 client/src/models/alert_new.rs create mode 100644 client/src/models/alert_process_threshold.rs create mode 100644 client/src/models/alert_process_variation.rs create mode 100644 client/src/models/alert_subscription.rs create mode 100644 client/src/models/alert_update.rs create mode 100644 client/src/models/amount_field_data_private.rs create mode 100644 client/src/models/annotated_comment.rs create mode 100644 client/src/models/annotation.rs create mode 100644 client/src/models/annotation_label.rs create mode 100644 client/src/models/annotation_metadata.rs create mode 100644 client/src/models/annotation_metadata_count.rs create mode 100644 client/src/models/annotations.rs create mode 100644 client/src/models/app_access_model.rs create mode 100644 client/src/models/app_access_model_kind.rs create mode 100644 client/src/models/application.rs create mode 100644 client/src/models/assigned_predicted_present_filter.rs create mode 100644 client/src/models/assignment_method.rs create mode 100644 client/src/models/attachment.rs create mode 100644 client/src/models/attribute.rs create mode 100644 client/src/models/attribute_filter.rs create mode 100644 client/src/models/attribute_filter_attribute.rs create mode 100644 client/src/models/attribution_method.rs create mode 100644 client/src/models/audit_event.rs create mode 100644 client/src/models/binary_label_health_action.rs create mode 100644 client/src/models/binary_label_health_action_kind.rs create mode 100644 client/src/models/binary_label_health_warning.rs create mode 100644 client/src/models/binary_label_health_warning_kind.rs create mode 100644 client/src/models/binning.rs create mode 100644 client/src/models/bool_field_data_private.rs create mode 100644 client/src/models/bool_field_data_type.rs create mode 100644 client/src/models/breakdown.rs create mode 100644 client/src/models/bucket.rs create mode 100644 client/src/models/bucket_new.rs create mode 100644 client/src/models/bucket_sync_state.rs create mode 100644 client/src/models/bucket_update.rs create mode 100644 client/src/models/bucket_updated_by.rs create mode 100644 client/src/models/builtin_label_def.rs create mode 100644 client/src/models/builtin_label_def_name.rs create mode 100644 client/src/models/builtin_label_def_request.rs create mode 100644 client/src/models/business_rule.rs create mode 100644 client/src/models/business_rule_comparison_operator.rs create mode 100644 client/src/models/business_rule_logical_operator.rs create mode 100644 client/src/models/business_rule_set.rs create mode 100644 client/src/models/business_rule_set_criticality.rs create mode 100644 client/src/models/business_rule_type.rs create mode 100644 client/src/models/by_labels.rs create mode 100644 client/src/models/by_labels_include.rs create mode 100644 client/src/models/by_labels_top.rs create mode 100644 client/src/models/capture_threshold.rs create mode 100644 client/src/models/choice_field_data_private.rs create mode 100644 client/src/models/choice_field_data_type.rs create mode 100644 client/src/models/client_secret_application_model.rs create mode 100644 client/src/models/client_secret_application_model_kind.rs create mode 100644 client/src/models/cm_model_config.rs create mode 100644 client/src/models/comment.rs create mode 100644 client/src/models/comment_extractions_predictions.rs create mode 100644 client/src/models/comment_filter.rs create mode 100644 client/src/models/comment_new.rs create mode 100644 client/src/models/comment_prediction.rs create mode 100644 client/src/models/comment_sentiment.rs create mode 100644 client/src/models/comment_span_new_char.rs create mode 100644 client/src/models/comment_span_new_utf16.rs create mode 100644 client/src/models/comment_thread.rs create mode 100644 client/src/models/comparison.rs create mode 100644 client/src/models/connection_model.rs create mode 100644 client/src/models/content_part.rs create mode 100644 client/src/models/contribution.rs create mode 100644 client/src/models/contributor.rs create mode 100644 client/src/models/contributor_kind.rs create mode 100644 client/src/models/conversational_filter_request.rs create mode 100644 client/src/models/conversational_filter_response.rs create mode 100644 client/src/models/coocurrence.rs create mode 100644 client/src/models/coocurrence_labels.rs create mode 100644 client/src/models/count.rs create mode 100644 client/src/models/create_alert_request.rs create mode 100644 client/src/models/create_alert_response.rs create mode 100644 client/src/models/create_bucket_request.rs create mode 100644 client/src/models/create_bucket_response.rs create mode 100644 client/src/models/create_dashboard_request.rs create mode 100644 client/src/models/create_dashboard_response.rs create mode 100644 client/src/models/create_dataset_request.rs create mode 100644 client/src/models/create_dataset_response.rs create mode 100644 client/src/models/create_integration_request.rs create mode 100644 client/src/models/create_integration_response.rs create mode 100644 client/src/models/create_ixp_dataset_request.rs create mode 100644 client/src/models/create_ixp_dataset_response.rs create mode 100644 client/src/models/create_label_defs_bulk_response.rs create mode 100644 client/src/models/create_label_group_request.rs create mode 100644 client/src/models/create_label_group_response.rs create mode 100644 client/src/models/create_or_update_label_defs_bulk_request.rs create mode 100644 client/src/models/create_or_update_label_defs_bulk_request_label_defs_inner.rs create mode 100644 client/src/models/create_page_view_request.rs create mode 100644 client/src/models/create_page_view_response.rs create mode 100644 client/src/models/create_project_request.rs create mode 100644 client/src/models/create_project_response.rs create mode 100644 client/src/models/create_project_setup_created_response.rs create mode 100644 client/src/models/create_project_setup_request.rs create mode 100644 client/src/models/create_project_setup_response.rs create mode 100644 client/src/models/create_source_request.rs create mode 100644 client/src/models/create_source_response.rs create mode 100644 client/src/models/create_stream_request.rs create mode 100644 client/src/models/create_stream_response.rs create mode 100644 client/src/models/create_tenant_request.rs create mode 100644 client/src/models/create_tenant_response.rs create mode 100644 client/src/models/create_trigger_request.rs create mode 100644 client/src/models/create_trigger_response.rs create mode 100644 client/src/models/create_user_request.rs create mode 100644 client/src/models/create_user_response.rs create mode 100644 client/src/models/custom_action.rs create mode 100644 client/src/models/custom_training_action.rs create mode 100644 client/src/models/dashboard.rs create mode 100644 client/src/models/dashboard_update.rs create mode 100644 client/src/models/data.rs create mode 100644 client/src/models/data_type.rs create mode 100644 client/src/models/data_type_date.rs create mode 100644 client/src/models/data_type_money.rs create mode 100644 client/src/models/data_type_number.rs create mode 100644 client/src/models/data_type_text.rs create mode 100644 client/src/models/dataset.rs create mode 100644 client/src/models/dataset_flag.rs create mode 100644 client/src/models/dataset_new.rs create mode 100644 client/src/models/dataset_operation.rs create mode 100644 client/src/models/dataset_quality.rs create mode 100644 client/src/models/dataset_status.rs create mode 100644 client/src/models/dataset_summary.rs create mode 100644 client/src/models/dataset_training_action.rs create mode 100644 client/src/models/dataset_update.rs create mode 100644 client/src/models/dataset_update_entity_defs_inner.rs create mode 100644 client/src/models/dataset_user_properties_summary.rs create mode 100644 client/src/models/date_field_data_private.rs create mode 100644 client/src/models/date_field_data_type.rs create mode 100644 client/src/models/delete_alert_response.rs create mode 100644 client/src/models/delete_alert_subscription_reponse.rs create mode 100644 client/src/models/delete_bucket_response.rs create mode 100644 client/src/models/delete_comment_response.rs create mode 100644 client/src/models/delete_dashboard_response.rs create mode 100644 client/src/models/delete_dataset_by_id_response.rs create mode 100644 client/src/models/delete_dataset_response.rs create mode 100644 client/src/models/delete_integration_response.rs create mode 100644 client/src/models/delete_ixp_dataset_response.rs create mode 100644 client/src/models/delete_keyed_sync_state_response.rs create mode 100644 client/src/models/delete_label_def_response.rs create mode 100644 client/src/models/delete_label_group_response.rs create mode 100644 client/src/models/delete_model_tag_response.rs create mode 100644 client/src/models/delete_project_response.rs create mode 100644 client/src/models/delete_source_response.rs create mode 100644 client/src/models/delete_stream_exception_response.rs create mode 100644 client/src/models/delete_stream_response.rs create mode 100644 client/src/models/delete_tenant_default_project_permissions_response.rs create mode 100644 client/src/models/delete_tenant_response.rs create mode 100644 client/src/models/delete_trigger_response.rs create mode 100644 client/src/models/delete_user_response.rs create mode 100644 client/src/models/deprecated_user_model_metadata.rs create mode 100644 client/src/models/diagnostic.rs create mode 100644 client/src/models/diagnostic_kind.rs create mode 100644 client/src/models/direction.rs create mode 100644 client/src/models/disable_integration_action.rs create mode 100644 client/src/models/disable_mailbox_action.rs create mode 100644 client/src/models/doc_path_ixp_model_config.rs create mode 100644 client/src/models/document_label_property_prediction.rs create mode 100644 client/src/models/document_search_result.rs create mode 100644 client/src/models/document_span.rs create mode 100644 client/src/models/email.rs create mode 100644 client/src/models/email_metadata.rs create mode 100644 client/src/models/email_metadata_new.rs create mode 100644 client/src/models/email_new.rs create mode 100644 client/src/models/email_properties_summary.rs create mode 100644 client/src/models/email_properties_summary_by_property.rs create mode 100644 client/src/models/email_properties_summary_value.rs create mode 100644 client/src/models/email_property_counts.rs create mode 100644 client/src/models/email_property_counts_by_property.rs create mode 100644 client/src/models/email_property_counts_settings.rs create mode 100644 client/src/models/email_property_counts_settings_by_property.rs create mode 100644 client/src/models/email_transform_tag_info.rs create mode 100644 client/src/models/entities.rs create mode 100644 client/src/models/entities_new.rs create mode 100644 client/src/models/entities_pr_stats.rs create mode 100644 client/src/models/entities_rules.rs create mode 100644 client/src/models/entities_rules_presence_inner.rs create mode 100644 client/src/models/entity.rs create mode 100644 client/src/models/entity_average_stats.rs create mode 100644 client/src/models/entity_def.rs create mode 100644 client/src/models/entity_def_flag.rs create mode 100644 client/src/models/entity_def_id_stat.rs create mode 100644 client/src/models/entity_def_new.rs create mode 100644 client/src/models/entity_def_summary.rs create mode 100644 client/src/models/entity_def_update.rs create mode 100644 client/src/models/entity_def_update_inherits_from_inner.rs create mode 100644 client/src/models/entity_health.rs create mode 100644 client/src/models/entity_health_action.rs create mode 100644 client/src/models/entity_health_action_kind.rs create mode 100644 client/src/models/entity_health_smart.rs create mode 100644 client/src/models/entity_health_warning.rs create mode 100644 client/src/models/entity_health_warning_kind.rs create mode 100644 client/src/models/entity_kind.rs create mode 100644 client/src/models/entity_new.rs create mode 100644 client/src/models/entity_new_spans_inner.rs create mode 100644 client/src/models/entity_presence_filter.rs create mode 100644 client/src/models/entity_presence_filter_with_kind.rs create mode 100644 client/src/models/entity_rule_set_api.rs create mode 100644 client/src/models/entity_rule_set_new_api.rs create mode 100644 client/src/models/entity_rule_set_update_api.rs create mode 100644 client/src/models/entity_rule_set_update_api_choices_inner.rs create mode 100644 client/src/models/entity_template_properties_api.rs create mode 100644 client/src/models/entity_templates_properties_api.rs create mode 100644 client/src/models/error_action.rs create mode 100644 client/src/models/error_response.rs create mode 100644 client/src/models/ews_api_model.rs create mode 100644 client/src/models/ews_api_model_kind.rs create mode 100644 client/src/models/exception_model.rs create mode 100644 client/src/models/export_dataset_request.rs create mode 100644 client/src/models/export_dataset_response.rs create mode 100644 client/src/models/exported_annotations.rs create mode 100644 client/src/models/exported_comment.rs create mode 100644 client/src/models/exported_label.rs create mode 100644 client/src/models/exported_labels.rs create mode 100644 client/src/models/exported_predictions.rs create mode 100644 client/src/models/extraction_field_definition.rs create mode 100644 client/src/models/extraction_prediction.rs create mode 100644 client/src/models/fetch_from_gx_stream_request.rs create mode 100644 client/src/models/fetch_from_gx_stream_response.rs create mode 100644 client/src/models/fetch_from_stream_request.rs create mode 100644 client/src/models/fetch_from_stream_response.rs create mode 100644 client/src/models/field_annotation_private.rs create mode 100644 client/src/models/field_choice_api.rs create mode 100644 client/src/models/field_choice_new_api.rs create mode 100644 client/src/models/field_group_annotation_private.rs create mode 100644 client/src/models/field_group_prediction_private.rs create mode 100644 client/src/models/field_group_snapshot.rs create mode 100644 client/src/models/field_group_version_entry.rs create mode 100644 client/src/models/field_prediction_private.rs create mode 100644 client/src/models/field_snapshot.rs create mode 100644 client/src/models/field_type.rs create mode 100644 client/src/models/field_uipath_context_model.rs create mode 100644 client/src/models/field_value_private.rs create mode 100644 client/src/models/field_version_entry.rs create mode 100644 client/src/models/filter.rs create mode 100644 client/src/models/freshness.rs create mode 100644 client/src/models/full_participant_filter.rs create mode 100644 client/src/models/gemini_table_only_config.rs create mode 100644 client/src/models/general_field_def.rs create mode 100644 client/src/models/general_field_def_new.rs create mode 100644 client/src/models/general_field_def_update.rs create mode 100644 client/src/models/general_field_definition.rs create mode 100644 client/src/models/get_alert_response.rs create mode 100644 client/src/models/get_alert_subscriptions_response.rs create mode 100644 client/src/models/get_all_alerts_response.rs create mode 100644 client/src/models/get_all_buckets_response.rs create mode 100644 client/src/models/get_all_dashboards_in_dataset_response.rs create mode 100644 client/src/models/get_all_dashboards_in_project_response.rs create mode 100644 client/src/models/get_all_datasets_in_project_response.rs create mode 100644 client/src/models/get_all_datasets_response.rs create mode 100644 client/src/models/get_all_integrations_in_project_response.rs create mode 100644 client/src/models/get_all_integrations_response.rs create mode 100644 client/src/models/get_all_ixp_models_in_project_response.rs create mode 100644 client/src/models/get_all_ixp_projects_response.rs create mode 100644 client/src/models/get_all_label_groups_response.rs create mode 100644 client/src/models/get_all_models_in_dataset_request.rs create mode 100644 client/src/models/get_all_models_in_dataset_response.rs create mode 100644 client/src/models/get_all_projects_response.rs create mode 100644 client/src/models/get_all_projects_v1_response.rs create mode 100644 client/src/models/get_all_sources_in_project_response.rs create mode 100644 client/src/models/get_all_sources_response.rs create mode 100644 client/src/models/get_all_streams_response.rs create mode 100644 client/src/models/get_all_triggers_in_dataset_response.rs create mode 100644 client/src/models/get_bucket_by_id_response.rs create mode 100644 client/src/models/get_bucket_emails_request.rs create mode 100644 client/src/models/get_bucket_emails_response.rs create mode 100644 client/src/models/get_bucket_response.rs create mode 100644 client/src/models/get_bucket_statistics_response.rs create mode 100644 client/src/models/get_bucket_sync_state_response.rs create mode 100644 client/src/models/get_buckets_by_owner_response.rs create mode 100644 client/src/models/get_comment_predictions_request.rs create mode 100644 client/src/models/get_comment_predictions_response.rs create mode 100644 client/src/models/get_comment_response.rs create mode 100644 client/src/models/get_comparison_request.rs create mode 100644 client/src/models/get_comparison_response.rs create mode 100644 client/src/models/get_dashboard_response.rs create mode 100644 client/src/models/get_dataset_response.rs create mode 100644 client/src/models/get_dataset_statistics_request.rs create mode 100644 client/src/models/get_dataset_statistics_response.rs create mode 100644 client/src/models/get_dataset_status_response.rs create mode 100644 client/src/models/get_dataset_summary_request.rs create mode 100644 client/src/models/get_dataset_summary_response.rs create mode 100644 client/src/models/get_dataset_user_properties_summary_response.rs create mode 100644 client/src/models/get_deprecated_user_models_response.rs create mode 100644 client/src/models/get_derived_permission_response.rs create mode 100644 client/src/models/get_derived_permissions_request.rs create mode 100644 client/src/models/get_document_metadata_response.rs create mode 100644 client/src/models/get_document_search_response.rs create mode 100644 client/src/models/get_email_from_bucket_by_id_response.rs create mode 100644 client/src/models/get_email_transform_tag_info_response.rs create mode 100644 client/src/models/get_field_group_history_response.rs create mode 100644 client/src/models/get_field_history_response.rs create mode 100644 client/src/models/get_integration_by_id_response.rs create mode 100644 client/src/models/get_integration_errors_response.rs create mode 100644 client/src/models/get_integration_response.rs create mode 100644 client/src/models/get_issue_response.rs create mode 100644 client/src/models/get_ixp_consumability_info_response.rs create mode 100644 client/src/models/get_ixp_project_response.rs create mode 100644 client/src/models/get_keyed_sync_state_response.rs create mode 100644 client/src/models/get_label_def_response.rs create mode 100644 client/src/models/get_label_group_response.rs create mode 100644 client/src/models/get_label_validation_request.rs create mode 100644 client/src/models/get_label_validation_response.rs create mode 100644 client/src/models/get_labellings_response.rs create mode 100644 client/src/models/get_model_tags_response.rs create mode 100644 client/src/models/get_page_selections_response.rs create mode 100644 client/src/models/get_pretrained_labels_response.rs create mode 100644 client/src/models/get_project_resource_counts_response.rs create mode 100644 client/src/models/get_project_response.rs create mode 100644 client/src/models/get_qualified_login_url_request.rs create mode 100644 client/src/models/get_qualified_login_url_response.rs create mode 100644 client/src/models/get_quotas_for_tenant_response.rs create mode 100644 client/src/models/get_reduced_permissions_request.rs create mode 100644 client/src/models/get_reduced_permissions_response.rs create mode 100644 client/src/models/get_reduced_permissions_response_permissions_inner.rs create mode 100644 client/src/models/get_source_by_id_response.rs create mode 100644 client/src/models/get_source_comments_response.rs create mode 100644 client/src/models/get_source_comments_response_thread_properties_inner.rs create mode 100644 client/src/models/get_source_response.rs create mode 100644 client/src/models/get_source_statistics_request.rs create mode 100644 client/src/models/get_source_statistics_response.rs create mode 100644 client/src/models/get_stream_by_name_response.rs create mode 100644 client/src/models/get_stream_results_response.rs create mode 100644 client/src/models/get_subdomain_response.rs create mode 100644 client/src/models/get_tenant_client_subnets_response.rs create mode 100644 client/src/models/get_tenant_default_project_permissions_response.rs create mode 100644 client/src/models/get_tenant_domains_response.rs create mode 100644 client/src/models/get_tenant_entity_def_ids_response.rs create mode 100644 client/src/models/get_tenant_quota_response.rs create mode 100644 client/src/models/get_tenants_response.rs create mode 100644 client/src/models/get_themes_response.rs create mode 100644 client/src/models/get_thread_themes_request.rs create mode 100644 client/src/models/get_thread_themes_response.rs create mode 100644 client/src/models/get_threads_by_source_response.rs create mode 100644 client/src/models/get_training_actions_comment_uids_response.rs create mode 100644 client/src/models/get_training_actions_labels_response.rs create mode 100644 client/src/models/get_training_actions_labels_response_training_actions_labels_inner.rs create mode 100644 client/src/models/get_trigger_response.rs create mode 100644 client/src/models/get_user_by_id_response.rs create mode 100644 client/src/models/get_users_response.rs create mode 100644 client/src/models/get_users_v1_response.rs create mode 100644 client/src/models/get_validation_response.rs create mode 100644 client/src/models/get_validation_v1_response.rs create mode 100644 client/src/models/global_permission.rs create mode 100644 client/src/models/gpt_ixp_flag.rs create mode 100644 client/src/models/gpt_ixp_model_config.rs create mode 100644 client/src/models/gpt_model_version.rs create mode 100644 client/src/models/graph_api_model.rs create mode 100644 client/src/models/graph_api_model_kind.rs create mode 100644 client/src/models/group_labellings_request.rs create mode 100644 client/src/models/group_predictions.rs create mode 100644 client/src/models/headers.rs create mode 100644 client/src/models/highlight.rs create mode 100644 client/src/models/histogram_bin.rs create mode 100644 client/src/models/image_input_config.rs create mode 100644 client/src/models/import_taxonomy_request.rs create mode 100644 client/src/models/import_taxonomy_response.rs create mode 100644 client/src/models/inference_stats.rs create mode 100644 client/src/models/inherits_from.rs create mode 100644 client/src/models/input_config.rs create mode 100644 client/src/models/integration.rs create mode 100644 client/src/models/integration_disabled_reason.rs create mode 100644 client/src/models/integration_error.rs create mode 100644 client/src/models/integration_error_details.rs create mode 100644 client/src/models/integration_new.rs create mode 100644 client/src/models/integration_type.rs create mode 100644 client/src/models/integration_update.rs create mode 100644 client/src/models/integrations_o_auth2_authenticate_response.rs create mode 100644 client/src/models/intent_threshold.rs create mode 100644 client/src/models/intent_validation.rs create mode 100644 client/src/models/intent_validation_summary.rs create mode 100644 client/src/models/intents_value.rs create mode 100644 client/src/models/interpretation_span.rs create mode 100644 client/src/models/issue.rs create mode 100644 client/src/models/issue_detail.rs create mode 100644 client/src/models/issue_status.rs create mode 100644 client/src/models/iterative_config.rs create mode 100644 client/src/models/ixp_confidence.rs create mode 100644 client/src/models/ixp_dataset_new.rs create mode 100644 client/src/models/ixp_extraction_status.rs create mode 100644 client/src/models/ixp_field.rs create mode 100644 client/src/models/ixp_field_group.rs create mode 100644 client/src/models/ixp_field_type.rs create mode 100644 client/src/models/ixp_model_metadata.rs create mode 100644 client/src/models/ixp_predict_extractions_response.rs create mode 100644 client/src/models/ixp_project.rs create mode 100644 client/src/models/ixp_relative_urls.rs create mode 100644 client/src/models/ixp_taxonomy.rs create mode 100644 client/src/models/ixp_taxonomy_extraction.rs create mode 100644 client/src/models/ixp_upload_document_response.rs create mode 100644 client/src/models/ixp_uploaded_document.rs create mode 100644 client/src/models/keyed_folder_sync_state.rs create mode 100644 client/src/models/keyed_folder_sync_state_update.rs create mode 100644 client/src/models/keyed_mailbox_sync_state.rs create mode 100644 client/src/models/keyed_mailbox_sync_state_update.rs create mode 100644 client/src/models/keyed_sync_state.rs create mode 100644 client/src/models/keyed_sync_state_1.rs create mode 100644 client/src/models/label.rs create mode 100644 client/src/models/label_action.rs create mode 100644 client/src/models/label_collection.rs create mode 100644 client/src/models/label_comparison.rs create mode 100644 client/src/models/label_counts.rs create mode 100644 client/src/models/label_def.rs create mode 100644 client/src/models/label_def_flag.rs create mode 100644 client/src/models/label_def_new.rs create mode 100644 client/src/models/label_def_property.rs create mode 100644 client/src/models/label_def_update.rs create mode 100644 client/src/models/label_def_update_moon_form_inner.rs create mode 100644 client/src/models/label_def_update_request.rs create mode 100644 client/src/models/label_definition.rs create mode 100644 client/src/models/label_group.rs create mode 100644 client/src/models/label_group_new.rs create mode 100644 client/src/models/label_health.rs create mode 100644 client/src/models/label_health_action.rs create mode 100644 client/src/models/label_health_smart.rs create mode 100644 client/src/models/label_health_warning.rs create mode 100644 client/src/models/label_metrics.rs create mode 100644 client/src/models/label_name_only_response.rs create mode 100644 client/src/models/label_properties_digest.rs create mode 100644 client/src/models/label_property.rs create mode 100644 client/src/models/label_property_digest.rs create mode 100644 client/src/models/label_property_id.rs create mode 100644 client/src/models/label_property_name.rs create mode 100644 client/src/models/label_property_summary.rs create mode 100644 client/src/models/label_property_summary_label.rs create mode 100644 client/src/models/label_property_time_series_row.rs create mode 100644 client/src/models/label_sentiment.rs create mode 100644 client/src/models/label_suggestion_reasoning.rs create mode 100644 client/src/models/label_timeseries_entry.rs create mode 100644 client/src/models/label_training_action.rs create mode 100644 client/src/models/label_validation_summary.rs create mode 100644 client/src/models/labelling_group.rs create mode 100644 client/src/models/language.rs create mode 100644 client/src/models/legacy_entity_pattern_api.rs create mode 100644 client/src/models/list_keyed_sync_states_response.rs create mode 100644 client/src/models/list_keyed_sync_states_response_keyed_sync_states_inner.rs create mode 100644 client/src/models/locales.rs create mode 100644 client/src/models/locales_preferences.rs create mode 100644 client/src/models/markup_break.rs create mode 100644 client/src/models/markup_break_kind.rs create mode 100644 client/src/models/markup_image.rs create mode 100644 client/src/models/markup_link.rs create mode 100644 client/src/models/markup_list.rs create mode 100644 client/src/models/markup_list_item.rs create mode 100644 client/src/models/markup_list_kind.rs create mode 100644 client/src/models/markup_paragraph.rs create mode 100644 client/src/models/markup_paragraph_kind.rs create mode 100644 client/src/models/markup_style.rs create mode 100644 client/src/models/markup_style_kind.rs create mode 100644 client/src/models/markup_table.rs create mode 100644 client/src/models/markup_table_caption.rs create mode 100644 client/src/models/markup_table_cell.rs create mode 100644 client/src/models/markup_table_cell_children_inner.rs create mode 100644 client/src/models/markup_table_cell_kind.rs create mode 100644 client/src/models/markup_table_row.rs create mode 100644 client/src/models/markup_table_section_kind.rs create mode 100644 client/src/models/markup_text.rs create mode 100644 client/src/models/matched_field_group_extractions.rs create mode 100644 client/src/models/mean_pr_curve.rs create mode 100644 client/src/models/message.rs create mode 100644 client/src/models/message_filter.rs create mode 100644 client/src/models/message_rich_text.rs create mode 100644 client/src/models/message_rich_text_text_markup_inner.rs create mode 100644 client/src/models/message_span.rs create mode 100644 client/src/models/message_text.rs create mode 100644 client/src/models/metadata.rs create mode 100644 client/src/models/microsoft_api.rs create mode 100644 client/src/models/mod.rs create mode 100644 client/src/models/model_config.rs create mode 100644 client/src/models/model_definition.rs create mode 100644 client/src/models/model_error.rs create mode 100644 client/src/models/model_error_kind.rs create mode 100644 client/src/models/model_family.rs create mode 100644 client/src/models/model_name.rs create mode 100644 client/src/models/model_rating.rs create mode 100644 client/src/models/model_rating_action.rs create mode 100644 client/src/models/model_rating_factor.rs create mode 100644 client/src/models/model_rating_factor_kind.rs create mode 100644 client/src/models/model_taxonomy.rs create mode 100644 client/src/models/monetary_field_data_private.rs create mode 100644 client/src/models/monetary_quantity_field_data_type.rs create mode 100644 client/src/models/moon_form_capture_fields_annotation.rs create mode 100644 client/src/models/moon_form_capture_fields_annotation_new.rs create mode 100644 client/src/models/moon_form_capture_fields_prediction.rs create mode 100644 client/src/models/moon_form_dismissed_update.rs create mode 100644 client/src/models/moon_form_field_annotation.rs create mode 100644 client/src/models/moon_form_field_annotation_new.rs create mode 100644 client/src/models/moon_form_field_def.rs create mode 100644 client/src/models/moon_form_field_def_new.rs create mode 100644 client/src/models/moon_form_field_def_update.rs create mode 100644 client/src/models/moon_form_field_prediction.rs create mode 100644 client/src/models/moon_form_group.rs create mode 100644 client/src/models/moon_form_group_update.rs create mode 100644 client/src/models/moon_form_label_annotation.rs create mode 100644 client/src/models/moon_form_label_annotation_update.rs create mode 100644 client/src/models/moon_form_label_prediction.rs create mode 100644 client/src/models/moon_intent_fields_metrics.rs create mode 100644 client/src/models/moon_intent_validation_request.rs create mode 100644 client/src/models/moon_summary_metrics.rs create mode 100644 client/src/models/moon_validation.rs create mode 100644 client/src/models/name.rs create mode 100644 client/src/models/new_dashboard.rs create mode 100644 client/src/models/no_ui_metadata_reason.rs create mode 100644 client/src/models/nps_summary.rs create mode 100644 client/src/models/ntlm_application_model.rs create mode 100644 client/src/models/ntlm_application_model_kind.rs create mode 100644 client/src/models/nullable_string_array_filter.rs create mode 100644 client/src/models/number_field_data_type.rs create mode 100644 client/src/models/number_one_of_filter.rs create mode 100644 client/src/models/number_range_filter.rs create mode 100644 client/src/models/number_range_filter_with_kind.rs create mode 100644 client/src/models/number_user_property_summary.rs create mode 100644 client/src/models/o_auth2_salesforce_callback_request.rs create mode 100644 client/src/models/o_auth2_salesforce_callback_response.rs create mode 100644 client/src/models/optimal_threshold.rs create mode 100644 client/src/models/order.rs create mode 100644 client/src/models/page_dimensions.rs create mode 100644 client/src/models/page_metadata.rs create mode 100644 client/src/models/page_polygon.rs create mode 100644 client/src/models/page_selection.rs create mode 100644 client/src/models/parse_email_new_comment.rs create mode 100644 client/src/models/parsed_value.rs create mode 100644 client/src/models/period.rs create mode 100644 client/src/models/pin_model_response.rs create mode 100644 client/src/models/poll_trigger_request.rs create mode 100644 client/src/models/poll_trigger_response.rs create mode 100644 client/src/models/pr_curve.rs create mode 100644 client/src/models/predict_document.rs create mode 100644 client/src/models/predict_extractions_request.rs create mode 100644 client/src/models/predict_extractions_response.rs create mode 100644 client/src/models/predict_latest_request.rs create mode 100644 client/src/models/predict_latest_response.rs create mode 100644 client/src/models/predict_raw_emails_request.rs create mode 100644 client/src/models/predict_raw_emails_response.rs create mode 100644 client/src/models/predict_request.rs create mode 100644 client/src/models/predict_response.rs create mode 100644 client/src/models/predicted_entity.rs create mode 100644 client/src/models/predicted_label.rs create mode 100644 client/src/models/predicted_label_property.rs create mode 100644 client/src/models/predictions_model.rs create mode 100644 client/src/models/preference.rs create mode 100644 client/src/models/preferred_locale.rs create mode 100644 client/src/models/preview_alert_request.rs create mode 100644 client/src/models/preview_alert_response.rs create mode 100644 client/src/models/private_key_application_model.rs create mode 100644 client/src/models/private_key_application_model_kind.rs create mode 100644 client/src/models/process.rs create mode 100644 client/src/models/project.rs create mode 100644 client/src/models/project_new.rs create mode 100644 client/src/models/project_permission.rs create mode 100644 client/src/models/project_setup_existing_source.rs create mode 100644 client/src/models/project_setup_new_dataset.rs create mode 100644 client/src/models/project_setup_new_project.rs create mode 100644 client/src/models/project_setup_new_source.rs create mode 100644 client/src/models/project_setup_new_stream.rs create mode 100644 client/src/models/project_setup_new_users.rs create mode 100644 client/src/models/project_v1.rs create mode 100644 client/src/models/put_comment_as_seen_request.rs create mode 100644 client/src/models/put_comment_as_seen_response.rs create mode 100644 client/src/models/query_audit_events_filter.rs create mode 100644 client/src/models/query_audit_events_request.rs create mode 100644 client/src/models/query_audit_events_response.rs create mode 100644 client/src/models/query_comments_request.rs create mode 100644 client/src/models/query_comments_response.rs create mode 100644 client/src/models/query_dataset_user_property_values_request.rs create mode 100644 client/src/models/query_dataset_user_property_values_response.rs create mode 100644 client/src/models/query_issues_request.rs create mode 100644 client/src/models/query_issues_response.rs create mode 100644 client/src/models/query_keyed_sync_state_ids_request.rs create mode 100644 client/src/models/query_keyed_sync_state_ids_response.rs create mode 100644 client/src/models/query_result_counts.rs create mode 100644 client/src/models/quota.rs create mode 100644 client/src/models/quota_kind.rs create mode 100644 client/src/models/raw_email.rs create mode 100644 client/src/models/raw_email_document.rs create mode 100644 client/src/models/regex.rs create mode 100644 client/src/models/remove_support_tenant_request.rs create mode 100644 client/src/models/remove_support_tenant_response.rs create mode 100644 client/src/models/reset_annotations_to_previous_pinned_model_request.rs create mode 100644 client/src/models/reset_annotations_to_previous_pinned_model_response.rs create mode 100644 client/src/models/reset_stream_request.rs create mode 100644 client/src/models/reset_stream_response.rs create mode 100644 client/src/models/reset_tenant_quota_response.rs create mode 100644 client/src/models/reset_trigger_request.rs create mode 100644 client/src/models/reset_trigger_response.rs create mode 100644 client/src/models/response_status_error.rs create mode 100644 client/src/models/retrieval_method.rs create mode 100644 client/src/models/reviewable_block.rs create mode 100644 client/src/models/reviewable_block_group.rs create mode 100644 client/src/models/reviewed.rs create mode 100644 client/src/models/reviewed_filter_rule.rs create mode 100644 client/src/models/rich_diagnostic_kind.rs create mode 100644 client/src/models/send_welcome_email_response.rs create mode 100644 client/src/models/sentiment.rs create mode 100644 client/src/models/set_comment_audio_response.rs create mode 100644 client/src/models/set_quota_for_tenant_request.rs create mode 100644 client/src/models/set_quota_for_tenant_response.rs create mode 100644 client/src/models/set_tenant_quota_request.rs create mode 100644 client/src/models/set_tenant_quota_response.rs create mode 100644 client/src/models/set_tenant_state_request.rs create mode 100644 client/src/models/set_tenant_state_response.rs create mode 100644 client/src/models/significance.rs create mode 100644 client/src/models/significance_value.rs create mode 100644 client/src/models/single_label_summary.rs create mode 100644 client/src/models/single_tenants_response.rs create mode 100644 client/src/models/sniff_csv_response.rs create mode 100644 client/src/models/source.rs create mode 100644 client/src/models/source_1.rs create mode 100644 client/src/models/source_counts.rs create mode 100644 client/src/models/source_counts_settings.rs create mode 100644 client/src/models/source_kind.rs create mode 100644 client/src/models/source_update.rs create mode 100644 client/src/models/span.rs create mode 100644 client/src/models/statistics.rs create mode 100644 client/src/models/store_bucket_sync_state_request.rs create mode 100644 client/src/models/store_bucket_sync_state_response.rs create mode 100644 client/src/models/store_exception_request.rs create mode 100644 client/src/models/store_exception_response.rs create mode 100644 client/src/models/store_keyed_sync_state_request.rs create mode 100644 client/src/models/store_keyed_sync_state_response.rs create mode 100644 client/src/models/stream_comment_extractions_result.rs create mode 100644 client/src/models/stream_comment_prediction.rs create mode 100644 client/src/models/stream_comment_result.rs create mode 100644 client/src/models/stream_confidence.rs create mode 100644 client/src/models/stream_extraction_field_prediction.rs create mode 100644 client/src/models/stream_field_value.rs create mode 100644 client/src/models/stream_general_field_prediction.rs create mode 100644 client/src/models/stream_label_prediction.rs create mode 100644 client/src/models/stream_result.rs create mode 100644 client/src/models/stream_score_prediction.rs create mode 100644 client/src/models/stream_taxonomy_prediction.rs create mode 100644 client/src/models/stream_text_span.rs create mode 100644 client/src/models/string_any_of_filter.rs create mode 100644 client/src/models/string_array_filter.rs create mode 100644 client/src/models/string_none_of_filter.rs create mode 100644 client/src/models/string_one_of_filter.rs create mode 100644 client/src/models/string_search_filter.rs create mode 100644 client/src/models/string_user_property_count.rs create mode 100644 client/src/models/string_user_property_count_single.rs create mode 100644 client/src/models/string_user_property_counts_settings.rs create mode 100644 client/src/models/string_user_property_summary.rs create mode 100644 client/src/models/suggest_taxonomy_request.rs create mode 100644 client/src/models/suggest_taxonomy_response.rs create mode 100644 client/src/models/suggested_label.rs create mode 100644 client/src/models/suggested_taxonomy.rs create mode 100644 client/src/models/sync_annotations_request.rs create mode 100644 client/src/models/sync_annotations_response.rs create mode 100644 client/src/models/sync_comments_from_csv_response.rs create mode 100644 client/src/models/sync_comments_request.rs create mode 100644 client/src/models/sync_comments_response.rs create mode 100644 client/src/models/sync_raw_emails_request.rs create mode 100644 client/src/models/sync_raw_emails_response.rs create mode 100644 client/src/models/sync_status.rs create mode 100644 client/src/models/tagged_ixp_model_version.rs create mode 100644 client/src/models/tagged_user_model_version.rs create mode 100644 client/src/models/tagged_user_model_version_name.rs create mode 100644 client/src/models/tagged_user_model_version_update.rs create mode 100644 client/src/models/taxonomy_extraction_private.rs create mode 100644 client/src/models/tenant.rs create mode 100644 client/src/models/tenant_new.rs create mode 100644 client/src/models/tenant_update.rs create mode 100644 client/src/models/text_config.rs create mode 100644 client/src/models/text_field_data_private.rs create mode 100644 client/src/models/text_field_data_type.rs create mode 100644 client/src/models/text_field_flag.rs create mode 100644 client/src/models/text_format.rs create mode 100644 client/src/models/text_image_input_config.rs create mode 100644 client/src/models/text_span.rs create mode 100644 client/src/models/theme.rs create mode 100644 client/src/models/theme_comment.rs create mode 100644 client/src/models/theme_comment_interpretation.rs create mode 100644 client/src/models/theme_set.rs create mode 100644 client/src/models/thread_histogram_binning_custom.rs create mode 100644 client/src/models/thread_histogram_binning_fixed.rs create mode 100644 client/src/models/thread_histogram_binning_variable.rs create mode 100644 client/src/models/thread_histogram_counts.rs create mode 100644 client/src/models/thread_histogram_counts_by_property.rs create mode 100644 client/src/models/thread_histogram_settings.rs create mode 100644 client/src/models/thread_histogram_settings_by_property.rs create mode 100644 client/src/models/thread_properties.rs create mode 100644 client/src/models/thread_property_filter.rs create mode 100644 client/src/models/thread_theme.rs create mode 100644 client/src/models/threshold.rs create mode 100644 client/src/models/threshold_1.rs create mode 100644 client/src/models/threshold_enum.rs create mode 100644 client/src/models/time_period_comparison.rs create mode 100644 client/src/models/time_resolution.rs create mode 100644 client/src/models/timestamp_range_filter.rs create mode 100644 client/src/models/train_view.rs create mode 100644 client/src/models/training_action.rs create mode 100644 client/src/models/training_action_completeness.rs create mode 100644 client/src/models/translation.rs create mode 100644 client/src/models/trigger.rs create mode 100644 client/src/models/trigger_exception.rs create mode 100644 client/src/models/trigger_exceptions_summary.rs create mode 100644 client/src/models/trigger_label_threshold.rs create mode 100644 client/src/models/trigger_new.rs create mode 100644 client/src/models/trigger_update.rs create mode 100644 client/src/models/trigger_user_model.rs create mode 100644 client/src/models/ui.rs create mode 100644 client/src/models/ui_annotation_metadata.rs create mode 100644 client/src/models/ui_path_cv_table_only_config.rs create mode 100644 client/src/models/ui_path_provision_create_properties.rs create mode 100644 client/src/models/ui_path_provision_create_request.rs create mode 100644 client/src/models/ui_path_provision_create_response.rs create mode 100644 client/src/models/ui_path_provision_delete_request.rs create mode 100644 client/src/models/ui_path_provision_delete_response.rs create mode 100644 client/src/models/ui_path_provision_restore_request.rs create mode 100644 client/src/models/ui_path_provision_restore_response.rs create mode 100644 client/src/models/ui_path_provision_update_properties.rs create mode 100644 client/src/models/ui_path_provision_update_request.rs create mode 100644 client/src/models/ui_path_provision_update_response.rs create mode 100644 client/src/models/ui_path_tenant_service_status.rs create mode 100644 client/src/models/unary_label_health_action.rs create mode 100644 client/src/models/unary_label_health_action_kind.rs create mode 100644 client/src/models/unary_label_health_warning.rs create mode 100644 client/src/models/unary_label_health_warning_kind.rs create mode 100644 client/src/models/uninformative_label.rs create mode 100644 client/src/models/uninformative_mode.rs create mode 100644 client/src/models/unpin_model_response.rs create mode 100644 client/src/models/update_alert_request.rs create mode 100644 client/src/models/update_alert_response.rs create mode 100644 client/src/models/update_appliance_config_response.rs create mode 100644 client/src/models/update_bucket_request.rs create mode 100644 client/src/models/update_bucket_response.rs create mode 100644 client/src/models/update_comment_labelling_request.rs create mode 100644 client/src/models/update_comment_labelling_response.rs create mode 100644 client/src/models/update_dashboard_request.rs create mode 100644 client/src/models/update_dashboard_response.rs create mode 100644 client/src/models/update_dataset_request.rs create mode 100644 client/src/models/update_dataset_response.rs create mode 100644 client/src/models/update_integration_request.rs create mode 100644 client/src/models/update_integration_response.rs create mode 100644 client/src/models/update_issue_status_request.rs create mode 100644 client/src/models/update_issue_status_response.rs create mode 100644 client/src/models/update_label_def_response.rs create mode 100644 client/src/models/update_model_request.rs create mode 100644 client/src/models/update_model_response.rs create mode 100644 client/src/models/update_model_tag_request.rs create mode 100644 client/src/models/update_model_tag_response.rs create mode 100644 client/src/models/update_project_request.rs create mode 100644 client/src/models/update_project_response.rs create mode 100644 client/src/models/update_source_request.rs create mode 100644 client/src/models/update_source_response.rs create mode 100644 client/src/models/update_tenant_client_subnets_request.rs create mode 100644 client/src/models/update_tenant_client_subnets_response.rs create mode 100644 client/src/models/update_tenant_default_project_permissions_request.rs create mode 100644 client/src/models/update_tenant_default_project_permissions_response.rs create mode 100644 client/src/models/update_tenant_domains_request.rs create mode 100644 client/src/models/update_tenant_domains_response.rs create mode 100644 client/src/models/update_tenant_entity_def_ids_request.rs create mode 100644 client/src/models/update_tenant_entity_def_ids_response.rs create mode 100644 client/src/models/update_tenant_request.rs create mode 100644 client/src/models/update_tenant_response.rs create mode 100644 client/src/models/update_trigger_request.rs create mode 100644 client/src/models/update_trigger_response.rs create mode 100644 client/src/models/update_user_request.rs create mode 100644 client/src/models/update_user_response.rs create mode 100644 client/src/models/upload_attachment_response.rs create mode 100644 client/src/models/upload_document_response.rs create mode 100644 client/src/models/upload_files_response.rs create mode 100644 client/src/models/user.rs create mode 100644 client/src/models/user_access_model.rs create mode 100644 client/src/models/user_access_model_kind.rs create mode 100644 client/src/models/user_license.rs create mode 100644 client/src/models/user_license_check.rs create mode 100644 client/src/models/user_model.rs create mode 100644 client/src/models/user_model_metadata.rs create mode 100644 client/src/models/user_model_metadata_flag.rs create mode 100644 client/src/models/user_model_metadata_settings.rs create mode 100644 client/src/models/user_new.rs create mode 100644 client/src/models/user_properties_summary.rs create mode 100644 client/src/models/user_properties_value.rs create mode 100644 client/src/models/user_update.rs create mode 100644 client/src/models/user_v1.rs create mode 100644 client/src/models/user_with_license_check.rs create mode 100644 client/src/models/validate_exchange_credentials_request.rs create mode 100644 client/src/models/validate_exchange_credentials_response.rs create mode 100644 client/src/models/validation_summary.rs create mode 100644 client/src/models/validation_summary_v1.rs create mode 100644 client/src/models/variation_kind.rs create mode 100644 client/src/models/vertex.rs create mode 100755 debug_reviewed_comments.sh create mode 100644 scripts/README.md create mode 100755 scripts/gen-client.sh create mode 100644 scripts/patches/inherits_from.rs create mode 100644 scripts/patches/markup_table_cell_children_inner.rs create mode 100644 scripts/patches/message_rich_text_text_markup_inner.rs create mode 100644 scripts/patches/model_config.rs create mode 100644 scripts/patches/moon_form_group_update.rs create mode 100644 scripts/patches/name.rs create mode 100644 scripts/patches/text_format.rs create mode 100644 scripts/patches/user_properties_value.rs create mode 100755 scripts/preprocess-spec.py create mode 100755 scripts/update-and-generate.sh create mode 100755 scripts/update-spec.sh create mode 100755 test_debug diff --git a/Cargo.lock b/Cargo.lock index e67d1761..60fee1f1 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -53,27 +53,10 @@ dependencies = [ ] [[package]] -name = "assert-json-diff" -version = "2.0.2" +name = "atomic-waker" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "47e4f2b81832e72834d7518d8487a0396a28cc408186a2e8854c0f98011faf12" -dependencies = [ - "serde", - "serde_json", -] - -[[package]] -name = "async-compression" -version = "0.3.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "942c7cd7ae39e91bde4820d74132e9862e62c2f386c3aa90ccf55949f5bad63a" -dependencies = [ - "flate2", - "futures-core", - "memchr", - "pin-project-lite", - "tokio", -] +checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" [[package]] name = "atty" @@ -111,9 +94,9 @@ checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" [[package]] name = "base64" -version = "0.21.0" +version = "0.22.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4a4ddaa51a5bc52a6948f74c06d20aaaddb71924eab79b8c97a8c556e942d6a" +checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" [[package]] name = "bitflags" @@ -387,7 +370,7 @@ dependencies = [ "proc-macro2", "quote", "scratch", - "syn 2.0.34", + "syn 2.0.106", ] [[package]] @@ -404,14 +387,14 @@ checksum = "2345488264226bf682893e25de0769f3360aac9957980ec49361b083ddaa5bc5" dependencies = [ "proc-macro2", "quote", - "syn 2.0.34", + "syn 2.0.106", ] [[package]] name = "darling" -version = "0.14.4" +version = "0.20.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b750cb3417fd1b327431a470f388520309479ab0bf5e323505daf0290cd3850" +checksum = "fc7f46116c46ff9ab3eb1597a45688b6715c6e628b5c133e288e709a29bcb4ee" dependencies = [ "darling_core", "darling_macro", @@ -419,27 +402,27 @@ dependencies = [ [[package]] name = "darling_core" -version = "0.14.4" +version = "0.20.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "109c1ca6e6b7f82cc233a97004ea8ed7ca123a9af07a8230878fcfda9b158bf0" +checksum = "0d00b9596d185e565c2207a0b01f8bd1a135483d02d9b7b0a54b11da8d53412e" dependencies = [ "fnv", "ident_case", "proc-macro2", "quote", "strsim", - "syn 1.0.109", + "syn 2.0.106", ] [[package]] name = "darling_macro" -version = "0.14.4" +version = "0.20.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4aab4dbc9f7611d8b55048a3a16d2d010c2c8334e46304b40ac1cc14bf3b48e" +checksum = "fc34b93ccb385b40dc71c6fceac4b2ad23662c7eeb248cf10d529b7e055b6ead" dependencies = [ "darling_core", "quote", - "syn 1.0.109", + "syn 2.0.106", ] [[package]] @@ -472,7 +455,7 @@ checksum = "30542c1ad912e0e3d22a1935c290e12e8a29d704a420177a31faad4a601a0800" dependencies = [ "proc-macro2", "quote", - "syn 2.0.34", + "syn 2.0.106", ] [[package]] @@ -547,6 +530,23 @@ dependencies = [ "winapi", ] +[[package]] +name = "displaydoc" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.106", +] + +[[package]] +name = "dyn-clone" +version = "1.0.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d0881ea181b1df73ff77ffaaf9c7544ecc11e82fba9b5f27b262a3c73a332555" + [[package]] name = "either" version = "1.13.0" @@ -657,9 +657,9 @@ checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" [[package]] name = "form_urlencoded" -version = "1.1.0" +version = "1.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9c384f161156f5260c24a097c56119f9be8c798586aecc13afbcbe7b7e26bf8" +checksum = "cb4cb245038516f5f85277875cdaa4f7d2c9a0fa0468de06ed190163b1581fcf" dependencies = [ "percent-encoding", ] @@ -671,6 +671,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "164713a5a0dcc3e7b4b1ed7d3b433cabc18025386f9339346e8daf15963cf7ac" dependencies = [ "futures-core", + "futures-sink", ] [[package]] @@ -705,6 +706,7 @@ checksum = "3ef6b17e481503ec85211fed8f39d1970f128935ca1f814cd32ac4a6842e84ab" dependencies = [ "futures-core", "futures-io", + "futures-sink", "futures-task", "memchr", "pin-project-lite", @@ -758,17 +760,17 @@ dependencies = [ [[package]] name = "h2" -version = "0.3.16" +version = "0.4.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5be7b54589b581f624f566bf5d8eb2bab1db736c51528720b6bd36b96b55924d" +checksum = "f3c0b69cfcb4e1b9f1bf2f53f95f766e4661169728ec61cd3fe5a0166f2d1386" dependencies = [ + "atomic-waker", "bytes", "fnv", "futures-core", "futures-sink", - "futures-util", "http", - "indexmap 1.9.3", + "indexmap 2.8.0", "slab", "tokio", "tokio-util", @@ -837,9 +839,9 @@ dependencies = [ [[package]] name = "http" -version = "0.2.9" +version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd6effc99afb63425aff9b05836f029929e345a6148a14b7ecd5ab67af944482" +checksum = "f4a85d31aea989eead29a3aaf9e1115a180df8282431156e533de47660892565" dependencies = [ "bytes", "fnv", @@ -848,12 +850,24 @@ dependencies = [ [[package]] name = "http-body" -version = "0.4.5" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1" +checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" dependencies = [ "bytes", "http", +] + +[[package]] +name = "http-body-util" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b021d93e26becf5dc7e1b75b1bed1fd93124b374ceb73f43d4d4eafec896a64a" +dependencies = [ + "bytes", + "futures-core", + "http", + "http-body", "pin-project-lite", ] @@ -863,12 +877,6 @@ version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904" -[[package]] -name = "httpdate" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4a1e36c821dbe04574f602848a19f742f4fb3c98d40449f11bcad18d6b17421" - [[package]] name = "humantime" version = "2.1.0" @@ -877,39 +885,58 @@ checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" [[package]] name = "hyper" -version = "0.14.25" +version = "1.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc5e554ff619822309ffd57d8734d77cd5ce6238bc956f037ea06c58238c9899" +checksum = "256fb8d4bd6413123cc9d91832d78325c48ff41677595be797d90f42969beae0" dependencies = [ "bytes", "futures-channel", - "futures-core", "futures-util", "h2", "http", "http-body", "httparse", - "httpdate", "itoa", "pin-project-lite", - "socket2", + "smallvec", "tokio", - "tower-service", - "tracing", "want", ] [[package]] name = "hyper-tls" -version = "0.5.0" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905" +checksum = "70206fc6890eaca9fde8a0bf71caa2ddfc9fe045ac9e5c70df101a7dbde866e0" dependencies = [ "bytes", + "http-body-util", "hyper", + "hyper-util", "native-tls", "tokio", "tokio-native-tls", + "tower-service", +] + +[[package]] +name = "hyper-util" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cde7055719c54e36e95e8719f95883f22072a48ede39db7fc17a4e1d5281e9b9" +dependencies = [ + "bytes", + "futures-channel", + "futures-util", + "http", + "http-body", + "hyper", + "pin-project-lite", + "socket2 0.5.8", + "tokio", + "tower", + "tower-service", + "tracing", ] [[package]] @@ -936,6 +963,92 @@ dependencies = [ "cxx-build", ] +[[package]] +name = "icu_collections" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "200072f5d0e3614556f94a9930d5dc3e0662a652823904c3a75dc3b0af7fee47" +dependencies = [ + "displaydoc", + "potential_utf", + "yoke", + "zerofrom", + "zerovec", +] + +[[package]] +name = "icu_locale_core" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0cde2700ccaed3872079a65fb1a78f6c0a36c91570f28755dda67bc8f7d9f00a" +dependencies = [ + "displaydoc", + "litemap", + "tinystr", + "writeable", + "zerovec", +] + +[[package]] +name = "icu_normalizer" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "436880e8e18df4d7bbc06d58432329d6458cc84531f7ac5f024e93deadb37979" +dependencies = [ + "displaydoc", + "icu_collections", + "icu_normalizer_data", + "icu_properties", + "icu_provider", + "smallvec", + "zerovec", +] + +[[package]] +name = "icu_normalizer_data" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00210d6893afc98edb752b664b8890f0ef174c8adbb8d0be9710fa66fbbf72d3" + +[[package]] +name = "icu_properties" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "016c619c1eeb94efb86809b015c58f479963de65bdb6253345c1a1276f22e32b" +dependencies = [ + "displaydoc", + "icu_collections", + "icu_locale_core", + "icu_properties_data", + "icu_provider", + "potential_utf", + "zerotrie", + "zerovec", +] + +[[package]] +name = "icu_properties_data" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "298459143998310acd25ffe6810ed544932242d3f07083eee1084d83a71bd632" + +[[package]] +name = "icu_provider" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "03c80da27b5f4187909049ee2d72f276f0d9f99a42c306bd0131ecfe04d8e5af" +dependencies = [ + "displaydoc", + "icu_locale_core", + "stable_deref_trait", + "tinystr", + "writeable", + "yoke", + "zerofrom", + "zerotrie", + "zerovec", +] + [[package]] name = "ident_case" version = "1.0.1" @@ -944,12 +1057,23 @@ checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" [[package]] name = "idna" -version = "0.3.0" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b0875f23caa03898994f6ddc501886a45c7d3d62d04d2d90788d47be1b1e4de" +dependencies = [ + "idna_adapter", + "smallvec", + "utf8_iter", +] + +[[package]] +name = "idna_adapter" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e14ddfc70884202db2244c223200c204c2bda1bc6e0998d11b5e024d657209e6" +checksum = "3acae9609540aa318d1bc588455225fb2085b9ed0c4f6bd0d9d5bcd86f1a0344" dependencies = [ - "unicode-bidi", - "unicode-normalization", + "icu_normalizer", + "icu_properties", ] [[package]] @@ -971,6 +1095,7 @@ checksum = "3954d50fe15b02142bf25d3b8bdadb634ec3948f103d04ffe3031bc8fe9d7058" dependencies = [ "equivalent", "hashbrown 0.15.2", + "serde", ] [[package]] @@ -1134,6 +1259,12 @@ version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f051f77a7c8e6957c0696eac88f26b0117e54f52d3fc682ab19397a8812846a4" +[[package]] +name = "litemap" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "241eaef5fd12c88705a01fc1066c48c4b36e0dd4377dcdc7ec3942cea7a69956" + [[package]] name = "lockfree-object-pool" version = "0.1.6" @@ -1163,12 +1294,6 @@ version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3e2e65a1a2e43cfcb47a895c4c8b10d1f4a61097f9f254f183aee60cad9c651d" -[[package]] -name = "matches" -version = "0.1.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2532096657941c2fea9c289d370a250971c689d4f143798ff67113ec042024a5" - [[package]] name = "memchr" version = "2.7.4" @@ -1212,24 +1337,6 @@ dependencies = [ "windows-sys 0.45.0", ] -[[package]] -name = "mockito" -version = "0.31.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80f9fece9bd97ab74339fe19f4bcaf52b76dcc18e5364c7977c1838f76b38de9" -dependencies = [ - "assert-json-diff", - "colored", - "httparse", - "lazy_static", - "log", - "rand", - "regex", - "serde_json", - "serde_urlencoded", - "similar", -] - [[package]] name = "native-tls" version = "0.2.11" @@ -1295,6 +1402,19 @@ version = "1.21.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" +[[package]] +name = "openapi" +version = "0.1.0" +dependencies = [ + "reqwest", + "serde", + "serde_json", + "serde_repr", + "serde_with", + "url", + "uuid", +] + [[package]] name = "openssl" version = "0.10.48" @@ -1327,15 +1447,6 @@ version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" -[[package]] -name = "openssl-src" -version = "111.25.2+1.1.1t" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "320708a054ad9b3bf314688b5db87cf4d6683d64cfc835e2337924ae62bf4431" -dependencies = [ - "cc", -] - [[package]] name = "openssl-sys" version = "0.9.83" @@ -1345,7 +1456,6 @@ dependencies = [ "autocfg", "cc", "libc", - "openssl-src", "pkg-config", "vcpkg", ] @@ -1382,9 +1492,29 @@ dependencies = [ [[package]] name = "percent-encoding" -version = "2.2.0" +version = "2.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" + +[[package]] +name = "pin-project" +version = "1.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "677f1add503faace112b9f1373e43e9e054bfdd22ff1a63c1bc485eaec6a6a8a" +dependencies = [ + "pin-project-internal", +] + +[[package]] +name = "pin-project-internal" +version = "1.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "478c572c3d73181ff3c2539045f6eb99e5491218eae919370993b890cdbdd98e" +checksum = "6e918e4ff8c4549eb882f14b3a4bc8c8bc93de829416eacf579f1207a8fbf861" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.106", +] [[package]] name = "pin-project-lite" @@ -1410,6 +1540,15 @@ version = "0.3.19" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "26f6a7b87c2e435a3241addceeeff740ff8b7e76b74c13bf9acb17fa454ea00b" +[[package]] +name = "potential_utf" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5a7c30837279ca13e7c867e9e40053bc68740f988cb07f7ca6df43cc734b585" +dependencies = [ + "zerovec", +] + [[package]] name = "powerfmt" version = "0.2.0" @@ -1474,18 +1613,18 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.67" +version = "1.0.101" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d433d9f1a3e8c1263d9456598b16fec66f4acc9a74dacffd35c7bb09b3a1328" +checksum = "89ae43fd86e4158d6db51ad8e2b80f313af9cc74f5c0e03ccb87de09998732de" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.33" +version = "1.0.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae" +checksum = "1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d" dependencies = [ "proc-macro2", ] @@ -1554,6 +1693,26 @@ dependencies = [ "thiserror", ] +[[package]] +name = "ref-cast" +version = "1.0.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a0ae411dbe946a674d89546582cea4ba2bb8defac896622d6496f14c23ba5cf" +dependencies = [ + "ref-cast-impl", +] + +[[package]] +name = "ref-cast-impl" +version = "1.0.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1165225c21bff1f3bbce98f5a1f889949bc902d3575308cc7b0de30b4f6d27c7" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.106", +] + [[package]] name = "regex" version = "1.7.3" @@ -1595,12 +1754,12 @@ dependencies = [ "maplit", "mime_guess", "once_cell", + "openapi", "ordered-float", "pretty_assertions", "prettytable-rs", "rand", "regex", - "reinfer-client", "reqwest", "scoped_threadpool", "serde", @@ -1611,43 +1770,25 @@ dependencies = [ "zip", ] -[[package]] -name = "reinfer-client" -version = "0.38.10" -dependencies = [ - "chrono", - "http", - "log", - "matches", - "mockito", - "once_cell", - "ordered-float", - "regex", - "reqwest", - "serde", - "serde_json", - "serde_with", - "thiserror", - "url", -] - [[package]] name = "reqwest" -version = "0.11.16" +version = "0.12.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "27b71749df584b7f4cac2c426c127a7c785a5106cc98f7a8feb044115f0fa254" +checksum = "566cafdd92868e0939d3fb961bd0dc25fcfaaed179291093b3d43e6b3150ea10" dependencies = [ - "async-compression", - "base64 0.21.0", + "base64 0.22.1", "bytes", "encoding_rs", + "futures-channel", "futures-core", "futures-util", "h2", "http", "http-body", + "http-body-util", "hyper", "hyper-tls", + "hyper-util", "ipnet", "js-sys", "log", @@ -1657,12 +1798,14 @@ dependencies = [ "once_cell", "percent-encoding", "pin-project-lite", + "rustls-pemfile", "serde", "serde_json", "serde_urlencoded", + "sync_wrapper", + "system-configuration", "tokio", "tokio-native-tls", - "tokio-util", "tower-service", "url", "wasm-bindgen", @@ -1685,6 +1828,24 @@ dependencies = [ "windows-sys 0.45.0", ] +[[package]] +name = "rustls-pemfile" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dce314e5fee3f39953d46bb63bb8a46d40c2f8fb7cc5a3b6cab2bde9721d6e50" +dependencies = [ + "rustls-pki-types", +] + +[[package]] +name = "rustls-pki-types" +version = "1.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "229a4a4c221013e7e1f1a043678c5cc39fe5171437c88fb47151a21e6f5b5c79" +dependencies = [ + "zeroize", +] + [[package]] name = "rustversion" version = "1.0.12" @@ -1706,6 +1867,30 @@ dependencies = [ "windows-sys 0.42.0", ] +[[package]] +name = "schemars" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4cd191f9397d57d581cddd31014772520aa448f65ef991055d7f61582c65165f" +dependencies = [ + "dyn-clone", + "ref-cast", + "serde", + "serde_json", +] + +[[package]] +name = "schemars" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "82d20c4491bc164fa2f6c5d44565947a52ad80b9505d8e36f8d54c27c739fcd0" +dependencies = [ + "dyn-clone", + "ref-cast", + "serde", + "serde_json", +] + [[package]] name = "scoped_threadpool" version = "0.1.9" @@ -1743,35 +1928,47 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.188" +version = "1.0.219" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf9e0fcba69a370eed61bcf2b728575f726b50b55cba78064753d708ddc7549e" +checksum = "5f0e2c6ed6606019b4e29e69dbaba95b11854410e5347d525002456dbbb786b6" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.188" +version = "1.0.219" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4eca7ac642d82aa35b60049a6eccb4be6be75e599bd2e9adb5f875a737654af2" +checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00" dependencies = [ "proc-macro2", "quote", - "syn 2.0.34", + "syn 2.0.106", ] [[package]] name = "serde_json" -version = "1.0.95" +version = "1.0.143" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d721eca97ac802aa7777b701877c8004d950fc142651367300d21c1cc0194744" +checksum = "d401abef1d108fbd9cbaebc3e46611f4b1021f714a0597a71f41ee463f5f4a5a" dependencies = [ "itoa", + "memchr", "ryu", "serde", ] +[[package]] +name = "serde_repr" +version = "0.1.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "175ee3e80ae9982737ca543e96133087cbd9a485eecc3bc4de9c1a37b47ea59c" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.106", +] + [[package]] name = "serde_urlencoded" version = "0.7.1" @@ -1786,15 +1983,19 @@ dependencies = [ [[package]] name = "serde_with" -version = "2.3.1" +version = "3.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85456ffac572dc8826334164f2fb6fb40a7c766aebe195a2a21ee69ee2885ecf" +checksum = "f2c45cd61fefa9db6f254525d46e392b852e0e61d9a1fd36e5bd183450a556d5" dependencies = [ - "base64 0.13.1", + "base64 0.22.1", "chrono", "hex", "indexmap 1.9.3", + "indexmap 2.8.0", + "schemars 0.9.0", + "schemars 1.0.4", "serde", + "serde_derive", "serde_json", "serde_with_macros", "time 0.3.41", @@ -1802,14 +2003,14 @@ dependencies = [ [[package]] name = "serde_with_macros" -version = "2.3.1" +version = "3.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7cbcd6104f8a4ab6af7f6be2a0da6be86b9de3c401f6e86bb856ab2af739232f" +checksum = "de90945e6565ce0d9a25098082ed4ee4002e047cb59892c318d66821e14bb30f" dependencies = [ "darling", "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.106", ] [[package]] @@ -1841,12 +2042,6 @@ version = "0.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe" -[[package]] -name = "similar" -version = "2.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "420acb44afdae038210c99e69aae24109f32f15500aa708e81d46c9f29d55fcf" - [[package]] name = "slab" version = "0.4.8" @@ -1856,6 +2051,12 @@ dependencies = [ "autocfg", ] +[[package]] +name = "smallvec" +version = "1.15.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03" + [[package]] name = "socket2" version = "0.4.9" @@ -1866,11 +2067,27 @@ dependencies = [ "winapi", ] +[[package]] +name = "socket2" +version = "0.5.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c970269d99b64e60ec3bd6ad27270092a5394c4e309314b18ae3fe575695fbe8" +dependencies = [ + "libc", + "windows-sys 0.52.0", +] + +[[package]] +name = "stable_deref_trait" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" + [[package]] name = "strsim" -version = "0.10.0" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" +checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" [[package]] name = "structopt" @@ -1915,15 +2132,53 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.34" +version = "2.0.106" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88ec6cdb6a4c16306eccf52ccd8d492e4ab64705a15a5016acb205251001bf72" +checksum = "ede7c438028d4436d71104916910f5bb611972c5cfd7f89b8300a8186e6fada6" dependencies = [ "proc-macro2", "quote", "unicode-ident", ] +[[package]] +name = "sync_wrapper" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" + +[[package]] +name = "synstructure" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.106", +] + +[[package]] +name = "system-configuration" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7" +dependencies = [ + "bitflags 1.3.2", + "core-foundation", + "system-configuration-sys", +] + +[[package]] +name = "system-configuration-sys" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a75fb188eb626b924683e3b95e3a48e63551fcfb51949de2f06a9d91dbee93c9" +dependencies = [ + "core-foundation-sys", + "libc", +] + [[package]] name = "tempfile" version = "3.4.0" @@ -1983,7 +2238,7 @@ checksum = "f9456a42c5b0d803c8cd86e73dd7cc9edd429499f37a3550d286d5e86720569f" dependencies = [ "proc-macro2", "quote", - "syn 2.0.34", + "syn 2.0.106", ] [[package]] @@ -2039,20 +2294,15 @@ dependencies = [ ] [[package]] -name = "tinyvec" -version = "1.6.0" +name = "tinystr" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50" +checksum = "5d4f6d1145dcb577acf783d4e601bc1d76a13337bb54e6233add580b07344c8b" dependencies = [ - "tinyvec_macros", + "displaydoc", + "zerovec", ] -[[package]] -name = "tinyvec_macros" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" - [[package]] name = "tokio" version = "1.27.0" @@ -2065,7 +2315,7 @@ dependencies = [ "mio", "num_cpus", "pin-project-lite", - "socket2", + "socket2 0.4.9", "windows-sys 0.45.0", ] @@ -2093,6 +2343,27 @@ dependencies = [ "tracing", ] +[[package]] +name = "tower" +version = "0.4.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c" +dependencies = [ + "futures-core", + "futures-util", + "pin-project", + "pin-project-lite", + "tokio", + "tower-layer", + "tower-service", +] + +[[package]] +name = "tower-layer" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "121c2a6cda46980bb0fcd1647ffaf6cd3fc79a013de288782836f6df9c48780e" + [[package]] name = "tower-service" version = "0.3.2" @@ -2140,27 +2411,12 @@ dependencies = [ "version_check", ] -[[package]] -name = "unicode-bidi" -version = "0.3.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460" - [[package]] name = "unicode-ident" version = "1.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b15811caf2415fb889178633e7724bad2509101cde276048e013b9def5e51fa0" -[[package]] -name = "unicode-normalization" -version = "0.1.22" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921" -dependencies = [ - "tinyvec", -] - [[package]] name = "unicode-segmentation" version = "1.10.1" @@ -2175,9 +2431,9 @@ checksum = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b" [[package]] name = "url" -version = "2.3.1" +version = "2.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d68c799ae75762b8c3fe375feb6600ef5602c883c5d21eb51c09f22b83c4643" +checksum = "08bc136a29a3d1758e07a9cca267be308aeebf5cfd5a10f3f67ab2097683ef5b" dependencies = [ "form_urlencoded", "idna", @@ -2185,13 +2441,22 @@ dependencies = [ "serde", ] +[[package]] +name = "utf8_iter" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" + [[package]] name = "uuid" -version = "1.3.0" +version = "1.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1674845326ee10d37ca60470760d4288a6f80f304007d92e5c53bab78c9cfd79" +checksum = "f33196643e165781c20a5ead5582283a7dacbb87855d867fbc2df3f81eddc1be" dependencies = [ - "getrandom 0.2.10", + "getrandom 0.3.2", + "js-sys", + "serde", + "wasm-bindgen", ] [[package]] @@ -2259,7 +2524,7 @@ dependencies = [ "log", "proc-macro2", "quote", - "syn 2.0.34", + "syn 2.0.106", "wasm-bindgen-shared", ] @@ -2293,7 +2558,7 @@ checksum = "8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de" dependencies = [ "proc-macro2", "quote", - "syn 2.0.34", + "syn 2.0.106", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -2354,7 +2619,7 @@ version = "0.46.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cdacb41e6a96a052c6cb63a144f24900236121c6f63f4f8219fef5977ecb0c25" dependencies = [ - "windows-targets", + "windows-targets 0.42.2", ] [[package]] @@ -2363,13 +2628,13 @@ version = "0.42.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7" dependencies = [ - "windows_aarch64_gnullvm", - "windows_aarch64_msvc", - "windows_i686_gnu", - "windows_i686_msvc", - "windows_x86_64_gnu", - "windows_x86_64_gnullvm", - "windows_x86_64_msvc", + "windows_aarch64_gnullvm 0.42.2", + "windows_aarch64_msvc 0.42.2", + "windows_i686_gnu 0.42.2", + "windows_i686_msvc 0.42.2", + "windows_x86_64_gnu 0.42.2", + "windows_x86_64_gnullvm 0.42.2", + "windows_x86_64_msvc 0.42.2", ] [[package]] @@ -2378,7 +2643,25 @@ version = "0.45.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" dependencies = [ - "windows-targets", + "windows-targets 0.42.2", +] + +[[package]] +name = "windows-sys" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" +dependencies = [ + "windows-targets 0.48.5", +] + +[[package]] +name = "windows-sys" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" +dependencies = [ + "windows-targets 0.52.6", ] [[package]] @@ -2387,13 +2670,44 @@ version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071" dependencies = [ - "windows_aarch64_gnullvm", - "windows_aarch64_msvc", - "windows_i686_gnu", - "windows_i686_msvc", - "windows_x86_64_gnu", - "windows_x86_64_gnullvm", - "windows_x86_64_msvc", + "windows_aarch64_gnullvm 0.42.2", + "windows_aarch64_msvc 0.42.2", + "windows_i686_gnu 0.42.2", + "windows_i686_msvc 0.42.2", + "windows_x86_64_gnu 0.42.2", + "windows_x86_64_gnullvm 0.42.2", + "windows_x86_64_msvc 0.42.2", +] + +[[package]] +name = "windows-targets" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" +dependencies = [ + "windows_aarch64_gnullvm 0.48.5", + "windows_aarch64_msvc 0.48.5", + "windows_i686_gnu 0.48.5", + "windows_i686_msvc 0.48.5", + "windows_x86_64_gnu 0.48.5", + "windows_x86_64_gnullvm 0.48.5", + "windows_x86_64_msvc 0.48.5", +] + +[[package]] +name = "windows-targets" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" +dependencies = [ + "windows_aarch64_gnullvm 0.52.6", + "windows_aarch64_msvc 0.52.6", + "windows_i686_gnu 0.52.6", + "windows_i686_gnullvm", + "windows_i686_msvc 0.52.6", + "windows_x86_64_gnu 0.52.6", + "windows_x86_64_gnullvm 0.52.6", + "windows_x86_64_msvc 0.52.6", ] [[package]] @@ -2402,49 +2716,140 @@ version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" + [[package]] name = "windows_aarch64_msvc" version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" +[[package]] +name = "windows_aarch64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" + [[package]] name = "windows_i686_gnu" version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" +[[package]] +name = "windows_i686_gnu" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" + +[[package]] +name = "windows_i686_gnu" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" + +[[package]] +name = "windows_i686_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" + [[package]] name = "windows_i686_msvc" version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" +[[package]] +name = "windows_i686_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" + +[[package]] +name = "windows_i686_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" + [[package]] name = "windows_x86_64_gnu" version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" +[[package]] +name = "windows_x86_64_gnu" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" + [[package]] name = "windows_x86_64_gnullvm" version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3" +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" + [[package]] name = "windows_x86_64_msvc" version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" +[[package]] +name = "windows_x86_64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" + [[package]] name = "winreg" -version = "0.10.1" +version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80d0f4e272c85def139476380b12f9ac60926689dd2e01d4923222f40580869d" +checksum = "a277a57398d4bfa075df44f501a17cfdf8542d224f0d36095a2adc7aee4ef0a5" dependencies = [ - "winapi", + "cfg-if", + "windows-sys 0.48.0", ] [[package]] @@ -2456,12 +2861,63 @@ dependencies = [ "bitflags 2.9.0", ] +[[package]] +name = "writeable" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea2f10b9bb0928dfb1b42b65e1f9e36f7f54dbdf08457afefb38afcdec4fa2bb" + [[package]] name = "yansi" version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09041cd90cf85f7f8b2df60c646f853b7f535ce68f85244eb6731cf89fa498ec" +[[package]] +name = "yoke" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f41bb01b8226ef4bfd589436a297c53d118f65921786300e427be8d487695cc" +dependencies = [ + "serde", + "stable_deref_trait", + "yoke-derive", + "zerofrom", +] + +[[package]] +name = "yoke-derive" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38da3c9736e16c5d3c8c597a9aaa5d1fa565d0532ae05e27c24aa62fb32c0ab6" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.106", + "synstructure", +] + +[[package]] +name = "zerofrom" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50cc42e0333e05660c3587f3bf9d0478688e15d870fab3346451ce7f8c9fbea5" +dependencies = [ + "zerofrom-derive", +] + +[[package]] +name = "zerofrom-derive" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.106", + "synstructure", +] + [[package]] name = "zeroize" version = "1.8.1" @@ -2479,7 +2935,40 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.34", + "syn 2.0.106", +] + +[[package]] +name = "zerotrie" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "36f0bbd478583f79edad978b407914f61b2972f5af6fa089686016be8f9af595" +dependencies = [ + "displaydoc", + "yoke", + "zerofrom", +] + +[[package]] +name = "zerovec" +version = "0.11.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7aa2bd55086f1ab526693ecbe444205da57e25f4489879da80635a46d90e73b" +dependencies = [ + "yoke", + "zerofrom", + "zerovec-derive", +] + +[[package]] +name = "zerovec-derive" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b96237efa0c878c64bd89c436f661be4e46b2f3eff1ebb976f7ef2321d2f58f" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.106", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index 5dc3e76b..7a8f11fe 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,7 +1,7 @@ [workspace] members = [ - "api", "cli", + "client" ] resolver = "2" diff --git a/api/.gitignore b/api/.gitignore deleted file mode 100644 index 53eaa219..00000000 --- a/api/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -/target -**/*.rs.bk diff --git a/api/Cargo.toml b/api/Cargo.toml deleted file mode 100644 index e14527aa..00000000 --- a/api/Cargo.toml +++ /dev/null @@ -1,30 +0,0 @@ -[package] -name = "reinfer-client" -version = "0.38.10" -description = "API client for Re:infer, the conversational data intelligence platform" -homepage = "https://github.com/reinfer/cli" -readme = "README.md" -authors = ["reinfer Ltd. "] -license = "Apache-2.0" -edition = "2021" - -[lib] -name = "reinfer_client" - -[dependencies] -chrono = { version = "0.4.22", features = ["serde"] } -http = "0.2.9" -log = "0.4.17" -matches = "0.1.10" -once_cell = "1.16.0" -ordered-float = { version = "3.9.1", features = ["serde"] } -regex = "1.6.0" -reqwest = { version = "0.11.12", default-features = false, features = ["blocking", "gzip", "json", "multipart", "native-tls-vendored"] } -serde = { version = "1.0.147", features = ["derive"] } -serde_json = "1.0.87" -serde_with = "2.0.1" -thiserror = "1.0.37" -url = "2.3.1" - -[dev-dependencies] -mockito = "0.31.0" diff --git a/api/README.md b/api/README.md deleted file mode 100644 index f351e194..00000000 --- a/api/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# API Library for reinfer - -A Rust library for the reinfer API. diff --git a/api/src/error.rs b/api/src/error.rs deleted file mode 100644 index 75543e69..00000000 --- a/api/src/error.rs +++ /dev/null @@ -1,93 +0,0 @@ -use std::path::PathBuf; - -use reqwest::StatusCode; - -pub type Result = std::result::Result; - -#[derive(Debug, thiserror::Error)] -pub enum Error { - #[error("API request failed with {}: {}", status_code, message)] - Api { - status_code: StatusCode, - message: String, - }, - - #[error("Invalid endpoint: '{}'", endpoint)] - BadEndpoint { endpoint: url::Url }, - - #[error("Bad token: {}", token)] - BadToken { token: String }, - - #[error("File does not exist : {}", path.to_string_lossy())] - FileDoesNotExist { path: PathBuf }, - - #[error("Expected / or a source id, got: {}", identifier)] - BadSourceIdentifier { identifier: String }, - - #[error("Expected / or a dataset id, got: {}", identifier)] - BadDatasetIdentifier { identifier: String }, - - #[error("Expected /: {}", identifier)] - BadIntegrationIdentifier { identifier: String }, - - #[error("Expected //: {}", identifier)] - BadStreamName { identifier: String }, - - #[error("Expected u64: {}", version)] - BadStreamModelVersion { version: String }, - - #[error( - "Expected a user id (usernames and emails are not supported), got: {}", - identifier - )] - BadUserIdentifier { identifier: String }, - - #[error("Expected a valid project name, got: {}", identifier)] - BadProjectIdentifier { identifier: String }, - - #[error("Unknown project permission: {}", permission)] - BadProjectPermission { permission: String }, - - #[error("Unknown global permission: {}", permission)] - BadGlobalPermission { permission: String }, - - #[error("Expected / or a bucket id, got: {}", identifier)] - BadBucketIdentifier { identifier: String }, - - #[error("Expected /, got: {}", name)] - BadBucketName { name: String }, - - #[error("Expected a valid bucket type, got: {}", bucket_type)] - BadBucketType { bucket_type: String }, - - #[error("Expected a valid quota kind, got: {}", tenant_quota_kind)] - BadTenantQuotaKind { tenant_quota_kind: String }, - - #[error("Could not parse JSON response.")] - BadJsonResponse(#[source] reqwest::Error), - - #[error( - "Status code {} inconsistent with response payload: {}", - status_code, - message - )] - BadProtocol { - status_code: StatusCode, - message: String, - }, - - #[error("Failed to initialise the HTTP client")] - BuildHttpClient(#[source] reqwest::Error), - - #[error("HTTP request error: {}", message)] - ReqwestError { - message: String, - source: reqwest::Error, - }, - - #[error("An unknown error has occurred: {}", message)] - Unknown { - message: String, - source: Box, - }, -} diff --git a/api/src/lib.rs b/api/src/lib.rs deleted file mode 100644 index 7138a303..00000000 --- a/api/src/lib.rs +++ /dev/null @@ -1,2504 +0,0 @@ -#![deny(clippy::all)] -mod error; -pub mod resources; -pub mod retry; - -use chrono::{DateTime, Utc}; -use http::{header::ACCEPT, Method}; -use log::debug; -use once_cell::sync::Lazy; -use reqwest::{ - blocking::{ - multipart::{Form, Part}, - Client as HttpClient, Response as HttpResponse, - }, - header::{self, HeaderMap, HeaderValue}, - IntoUrl, Proxy, Result as ReqwestResult, -}; -use resources::{ - attachments::UploadAttachmentResponse, - auth::{RefreshUserPermissionsRequest, RefreshUserPermissionsResponse}, - bucket::{ - GetKeyedSyncStateIdsRequest, GetKeyedSyncStateIdsResponse, GetKeyedSyncStatesResponse, - KeyedSyncState, KeyedSyncStateId, - }, - bucket_statistics::GetBucketStatisticsResponse, - comment::{AttachmentReference, CommentTimestampFilter}, - dataset::{ - CreateIxpDatasetRequest, CreateIxpDatasetResponse, GetAllModelsInDatasetRequest, - GetAllModelsInDatasetRespone, IxpDatasetNew, QueryRequestParams, QueryResponse, - StatisticsRequestParams as DatasetStatisticsRequestParams, SummaryRequestParams, - SummaryResponse, UploadIxpDocumentResponse, UserModelMetadata, - }, - documents::{Document, SyncRawEmailsRequest, SyncRawEmailsResponse}, - email::{Email, GetEmailResponse}, - integration::{ - GetIntegrationResponse, GetIntegrationsResponse, Integration, NewIntegration, - PostIntegrationRequest, PostIntegrationResponse, PutIntegrationRequest, - PutIntegrationResponse, - }, - label_def::{CreateOrUpdateLabelDefsBulkRequest, CreateOrUpdateLabelDefsBulkResponse}, - project::ForceDeleteProject, - quota::{GetQuotasResponse, Quota}, - source::StatisticsRequestParams as SourceStatisticsRequestParams, - stream::{GetStreamResponse, NewStream, PutStreamRequest, PutStreamResponse}, - tenant_id::UiPathTenantId, - validation::{ - LabelValidation, LabelValidationRequest, LabelValidationResponse, ValidationResponse, - }, -}; -use serde::{Deserialize, Serialize}; -use serde_json::json; -use std::{ - cell::Cell, - fmt::{Debug, Display}, - io::Read, - path::{Path, PathBuf}, - time::Duration, -}; -use url::Url; - -use crate::resources::{ - audit::{AuditQueryFilter, AuditQueryRequest, AuditQueryResponse}, - bucket::{ - CreateRequest as CreateBucketRequest, CreateResponse as CreateBucketResponse, - GetAvailableResponse as GetAvailableBucketsResponse, GetResponse as GetBucketResponse, - }, - bucket_statistics::Statistics as BucketStatistics, - comment::{ - GetAnnotationsResponse, GetCommentResponse, GetLabellingsAfter, GetPredictionsResponse, - GetRecentRequest, PutCommentsRequest, PutCommentsResponse, RecentCommentsPage, - SyncCommentsRequest, UpdateAnnotationsRequest, - }, - dataset::{ - CreateRequest as CreateDatasetRequest, CreateResponse as CreateDatasetResponse, - GetAvailableResponse as GetAvailableDatasetsResponse, GetResponse as GetDatasetResponse, - UpdateRequest as UpdateDatasetRequest, UpdateResponse as UpdateDatasetResponse, - }, - email::{PutEmailsRequest, PutEmailsResponse}, - project::{ - CreateProjectRequest, CreateProjectResponse, GetProjectResponse, GetProjectsResponse, - UpdateProjectRequest, UpdateProjectResponse, - }, - quota::{CreateQuota, TenantQuotaKind}, - source::{ - CreateRequest as CreateSourceRequest, CreateResponse as CreateSourceResponse, - GetAvailableResponse as GetAvailableSourcesResponse, GetResponse as GetSourceResponse, - UpdateRequest as UpdateSourceRequest, UpdateResponse as UpdateSourceResponse, - }, - statistics::GetResponse as GetStatisticsResponse, - stream::{ - AdvanceRequest as StreamAdvanceRequest, FetchRequest as StreamFetchRequest, - GetStreamsResponse, ResetRequest as StreamResetRequest, - TagExceptionsRequest as TagStreamExceptionsRequest, - }, - tenant_id::TenantId, - user::{ - CreateRequest as CreateUserRequest, CreateResponse as CreateUserResponse, - GetAvailableResponse as GetAvailableUsersResponse, - GetCurrentResponse as GetCurrentUserResponse, GetResponse as GetUserResponse, - PostUserRequest, PostUserResponse, WelcomeEmailResponse, - }, - EmptySuccess, Response, -}; - -use crate::retry::{Retrier, RetryConfig}; - -pub use crate::{ - error::{Error, Result}, - resources::{ - bucket::{ - Bucket, BucketType, FullName as BucketFullName, Id as BucketId, - Identifier as BucketIdentifier, Name as BucketName, NewBucket, - }, - comment::{ - AnnotatedComment, Comment, CommentFilter, CommentPredictionsThreshold, - CommentsIterPage, Continuation, EitherLabelling, Entities, Entity, - GetCommentPredictionsRequest, HasAnnotations, Id as CommentId, Label, Labelling, - Message, MessageBody, MessageSignature, MessageSubject, NewAnnotatedComment, - NewComment, NewEntities, NewLabelling, NewMoonForm, PredictedLabel, Prediction, - PropertyMap, PropertyValue, Sentiment, SyncCommentsResponse, TriggerLabelThreshold, - Uid as CommentUid, - }, - dataset::{ - Dataset, FullName as DatasetFullName, Id as DatasetId, Identifier as DatasetIdentifier, - ModelVersion, Name as DatasetName, NewDataset, UpdateDataset, - }, - email::{ - Continuation as EmailContinuation, EmailsIterPage, Id as EmailId, Mailbox, MimeContent, - NewEmail, - }, - entity_def::{EntityDef, Id as EntityDefId, Name as EntityName, NewEntityDef}, - integration::FullName as IntegrationFullName, - label_def::{ - LabelDef, LabelDefPretrained, MoonFormFieldDef, Name as LabelName, NewLabelDef, - NewLabelDefPretrained, PretrainedId as LabelDefPretrainedId, - }, - label_group::{ - LabelGroup, Name as LabelGroupName, NewLabelGroup, DEFAULT_LABEL_GROUP_NAME, - }, - project::{NewProject, Project, ProjectName, UpdateProject}, - source::{ - FullName as SourceFullName, Id as SourceId, Identifier as SourceIdentifier, - Name as SourceName, NewSource, Source, SourceKind, TransformTag, UpdateSource, - }, - statistics::Statistics as CommentStatistics, - stream::{ - Batch as StreamBatch, FullName as StreamFullName, SequenceId as StreamSequenceId, - Stream, StreamException, StreamExceptionMetadata, - }, - user::{ - Email as UserEmail, GlobalPermission, Id as UserId, Identifier as UserIdentifier, - ModifiedPermissions, NewUser, ProjectPermission, UpdateUser, User, Username, - }, - }, -}; - -#[derive(Clone, Debug, PartialEq, Eq)] -pub struct Token(pub String); - -pub trait SplittableRequest { - fn split(self) -> impl Iterator - where - Self: Sized; - - fn count(&self) -> usize; -} - -pub struct SplitableRequestResponse -where - for<'de> ResponseT: Deserialize<'de> + ReducibleResponse, -{ - pub response: ResponseT, - pub num_failed: usize, -} - -pub trait ReducibleResponse { - fn merge(self, _b: Self) -> Self - where - Self: std::default::Default, - { - Default::default() - } - - fn empty() -> Self - where - Self: std::default::Default, - { - Default::default() - } -} - -pub struct Config { - pub endpoint: Url, - pub token: Token, - pub accept_invalid_certificates: bool, - pub proxy: Option, - /// Retry settings to use, if any. This will apply to all requests except for POST requests - /// which are not idempotent (as they cannot be naively retried). - pub retry_config: Option, -} - -impl Default for Config { - fn default() -> Self { - Config { - endpoint: DEFAULT_ENDPOINT.clone(), - token: Token("".to_owned()), - accept_invalid_certificates: false, - proxy: None, - retry_config: None, - } - } -} - -#[derive(Debug)] -pub struct Client { - endpoints: Endpoints, - http_client: HttpClient, - headers: HeaderMap, - retrier: Option, -} - -#[derive(Serialize)] -pub struct GetLabellingsInBulk<'a> { - pub source_id: &'a SourceId, - pub return_predictions: &'a bool, - - #[serde(skip_serializing_if = "Option::is_none")] - pub after: &'a Option, - - #[serde(skip_serializing_if = "Option::is_none")] - pub limit: &'a Option, -} - -#[derive(Serialize)] -pub struct GetCommentsIterPageQuery<'a> { - #[serde(skip_serializing_if = "Option::is_none")] - pub from_timestamp: Option>, - #[serde(skip_serializing_if = "Option::is_none")] - pub to_timestamp: Option>, - #[serde(skip_serializing_if = "Option::is_none")] - pub after: Option<&'a Continuation>, - pub limit: usize, - pub include_markup: bool, -} - -#[derive(Serialize)] -pub struct GetEmailsIterPageQuery<'a> { - #[serde(skip_serializing_if = "Option::is_none")] - pub continuation: Option<&'a EmailContinuation>, - pub limit: usize, -} - -#[derive(Serialize)] -pub struct GetCommentQuery { - pub include_markup: bool, -} - -#[derive(Serialize)] -pub struct GetEmailQuery { - pub id: String, -} - -impl Client { - /// Create a new API client. - pub fn new(config: Config) -> Result { - let http_client = build_http_client(&config)?; - let headers = build_headers(&config)?; - let endpoints = Endpoints::new(config.endpoint)?; - let retrier = config.retry_config.map(Retrier::new); - Ok(Client { - endpoints, - http_client, - headers, - retrier, - }) - } - - /// Get the base url for the client - pub fn base_url(&self) -> &Url { - &self.endpoints.base - } - - /// List all visible sources. - pub fn get_sources(&self) -> Result> { - Ok(self - .get::<_, GetAvailableSourcesResponse>(self.endpoints.sources.clone())? - .sources) - } - - /// Get a source by either id or name. - pub fn get_user(&self, user: impl Into) -> Result { - Ok(match user.into() { - UserIdentifier::Id(user_id) => { - self.get::<_, GetUserResponse>(self.endpoints.user_by_id(&user_id)?)? - .user - } - }) - } - - /// Get a source by either id or name. - pub fn get_source(&self, source: impl Into) -> Result { - Ok(match source.into() { - SourceIdentifier::Id(source_id) => { - self.get::<_, GetSourceResponse>(self.endpoints.source_by_id(&source_id)?)? - .source - } - SourceIdentifier::FullName(source_name) => { - self.get::<_, GetSourceResponse>(self.endpoints.source_by_name(&source_name)?)? - .source - } - }) - } - - pub fn create_label_defs_bulk( - &self, - dataset_name: &DatasetFullName, - label_group: LabelGroupName, - label_defs: Vec, - ) -> Result<()> { - self.put::<_, _, CreateOrUpdateLabelDefsBulkResponse>( - self.endpoints.label_group(dataset_name, label_group)?, - CreateOrUpdateLabelDefsBulkRequest { label_defs }, - )?; - Ok(()) - } - - /// Create a new source. - pub fn create_source( - &self, - source_name: &SourceFullName, - options: NewSource<'_>, - ) -> Result { - Ok(self - .put::<_, _, CreateSourceResponse>( - self.endpoints.source_by_name(source_name)?, - CreateSourceRequest { source: options }, - )? - .source) - } - - /// Update a source. - pub fn update_source( - &self, - source_name: &SourceFullName, - options: UpdateSource<'_>, - ) -> Result { - Ok(self - .post::<_, _, UpdateSourceResponse>( - self.endpoints.source_by_name(source_name)?, - UpdateSourceRequest { source: options }, - Retry::Yes, - )? - .source) - } - - /// Delete a source. - pub fn delete_source(&self, source: impl Into) -> Result<()> { - let source_id = match source.into() { - SourceIdentifier::Id(source_id) => source_id, - source @ SourceIdentifier::FullName(_) => self.get_source(source)?.id, - }; - self.delete(self.endpoints.source_by_id(&source_id)?) - } - - /// Set a quota - pub fn create_quota( - &self, - target_tenant_id: &TenantId, - tenant_quota_kind: TenantQuotaKind, - options: CreateQuota, - ) -> Result<()> { - self.post( - self.endpoints.quota(target_tenant_id, tenant_quota_kind)?, - options, - Retry::Yes, - ) - } - - /// Get quotas for current tenant - pub fn get_quotas(&self, tenant_id: &Option) -> Result> { - Ok(self - .get::<_, GetQuotasResponse>(self.endpoints.quotas(tenant_id)?)? - .quotas) - } - - /// Delete a user. - pub fn delete_user(&self, user: impl Into) -> Result<()> { - let UserIdentifier::Id(user_id) = user.into(); - self.delete(self.endpoints.user_by_id(&user_id)?) - } - - /// Delete comments by id in a source. - pub fn delete_comments( - &self, - source: impl Into, - comments: &[CommentId], - ) -> Result<()> { - let source_full_name = match source.into() { - source @ SourceIdentifier::Id(_) => self.get_source(source)?.full_name(), - SourceIdentifier::FullName(source_full_name) => source_full_name, - }; - self.delete_query( - self.endpoints.comments_v1(&source_full_name)?, - Some(&id_list_query(comments.iter().map(|uid| &uid.0))), - ) - } - - /// Get a page of comments from a source. - pub fn get_comments_iter_page( - &self, - source_name: &SourceFullName, - continuation: Option<&ContinuationKind>, - to_timestamp: Option>, - limit: usize, - ) -> Result { - // Comments are returned from the API in increasing order of their - // `timestamp` field. - let (from_timestamp, after) = match continuation { - // If we have a timestamp, then this is a request for the first page of - // a series of comments with timestamps starting from the given time. - Some(ContinuationKind::Timestamp(from_timestamp)) => (Some(*from_timestamp), None), - // If we have a continuation, then this is a request for page n+1 of - // a series of comments, where the continuation came from page n. - Some(ContinuationKind::Continuation(after)) => (None, Some(after)), - // Otherwise, this is a request for the first page of a series of comments - // with timestamps starting from the beginning of time. - None => (None, None), - }; - let query_params = GetCommentsIterPageQuery { - from_timestamp, - to_timestamp, - after, - limit, - include_markup: true, - }; - self.get_query(self.endpoints.comments(source_name)?, Some(&query_params)) - } - - /// Iterate through all comments for a given dataset query. - pub fn get_dataset_query_iter<'a>( - &'a self, - dataset_name: &'a DatasetFullName, - params: &'a mut QueryRequestParams, - ) -> DatasetQueryIter<'a> { - DatasetQueryIter::new(self, dataset_name, params) - } - - /// Iterate through all comments in a source. - pub fn get_comments_iter<'a>( - &'a self, - source_name: &'a SourceFullName, - page_size: Option, - timerange: CommentsIterTimerange, - ) -> CommentsIter<'a> { - CommentsIter::new(self, source_name, page_size, timerange) - } - - pub fn get_keyed_sync_state_ids( - &self, - bucket_id: &BucketId, - request: &GetKeyedSyncStateIdsRequest, - ) -> Result> { - Ok(self - .post::<_, _, GetKeyedSyncStateIdsResponse>( - self.endpoints.query_keyed_sync_state_ids(bucket_id)?, - Some(&request), - Retry::Yes, - )? - .keyed_sync_state_ids) - } - - pub fn delete_keyed_sync_state( - &self, - bucket_id: &BucketId, - id: &KeyedSyncStateId, - ) -> Result<()> { - self.delete(self.endpoints.keyed_sync_state(bucket_id, id)?) - } - - pub fn get_keyed_sync_states(&self, bucket_id: &BucketId) -> Result> { - Ok(self - .get::<_, GetKeyedSyncStatesResponse>(self.endpoints.keyed_sync_states(bucket_id)?)? - .keyed_sync_states) - } - - /// Get a single of email from a bucket. - pub fn get_email(&self, bucket_name: &BucketFullName, id: EmailId) -> Result> { - let query_params = GetEmailQuery { id: id.0 }; - Ok(self - .get_query::<_, _, GetEmailResponse>( - self.endpoints.get_emails(bucket_name)?, - Some(&query_params), - )? - .emails) - } - - /// Get a page of emails from a bucket. - pub fn get_emails_iter_page( - &self, - bucket_name: &BucketFullName, - continuation: Option<&EmailContinuation>, - limit: usize, - ) -> Result { - let query_params = GetEmailsIterPageQuery { - continuation, - limit, - }; - self.post( - self.endpoints.get_emails(bucket_name)?, - Some(&query_params), - Retry::Yes, - ) - } - - /// Iterate through all comments in a source. - pub fn get_emails_iter<'a>( - &'a self, - bucket_name: &'a BucketFullName, - page_size: Option, - ) -> EmailsIter<'a> { - EmailsIter::new(self, bucket_name, page_size) - } - - /// Get a single comment by id. - pub fn get_comment<'a>( - &'a self, - source_name: &'a SourceFullName, - comment_id: &'a CommentId, - ) -> Result { - let query_params = GetCommentQuery { - include_markup: true, - }; - Ok(self - .get_query::<_, _, GetCommentResponse>( - self.endpoints.comment_by_id(source_name, comment_id)?, - Some(&query_params), - )? - .comment) - } - pub fn post_integration( - &self, - name: &IntegrationFullName, - integration: &NewIntegration, - ) -> Result { - self.request( - &Method::POST, - &self.endpoints.integration(name)?, - &Some(PostIntegrationRequest { - integration: integration.clone(), - }), - &None::<()>, - &Retry::No, - ) - } - - pub fn put_integration( - &self, - name: &IntegrationFullName, - integration: &NewIntegration, - ) -> Result { - self.request( - &Method::PUT, - &self.endpoints.integration(name)?, - &Some(PutIntegrationRequest { - integration: integration.clone(), - }), - &None::<()>, - &Retry::No, - ) - } - - pub fn put_comments_split_on_failure( - &self, - source_name: &SourceFullName, - comments: Vec, - no_charge: bool, - ) -> Result> { - // Retrying here despite the potential for 409's in order to increase reliability when - // working with poor connection - - self.splitable_request( - Method::PUT, - self.endpoints.put_comments(source_name)?, - PutCommentsRequest { comments }, - Some(NoChargeQuery { no_charge }), - Retry::Yes, - ) - } - - pub fn put_comments( - &self, - source_name: &SourceFullName, - comments: Vec, - no_charge: bool, - ) -> Result { - // Retrying here despite the potential for 409's in order to increase reliability when - // working with poor connection - self.request( - &Method::PUT, - &self.endpoints.put_comments(source_name)?, - &Some(PutCommentsRequest { comments }), - &Some(NoChargeQuery { no_charge }), - &Retry::Yes, - ) - } - - pub fn put_stream( - &self, - dataset_name: &DatasetFullName, - stream: &NewStream, - ) -> Result { - self.put( - self.endpoints.streams(dataset_name)?, - Some(PutStreamRequest { stream }), - ) - } - - pub fn get_audit_events( - &self, - minimum_timestamp: Option>, - maximum_timestamp: Option>, - continuation: Option, - ) -> Result { - self.post::<_, _, AuditQueryResponse>( - self.endpoints.audit_events_query()?, - AuditQueryRequest { - continuation, - filter: AuditQueryFilter { - timestamp: CommentTimestampFilter { - minimum: minimum_timestamp, - maximum: maximum_timestamp, - }, - }, - }, - Retry::Yes, - ) - } - pub fn get_latest_validation( - &self, - dataset_name: &DatasetFullName, - ) -> Result { - self.get::<_, ValidationResponse>(self.endpoints.latest_validation(dataset_name)?) - } - - pub fn get_validation( - &self, - dataset_name: &DatasetFullName, - model_version: &ModelVersion, - ) -> Result { - self.get::<_, ValidationResponse>(self.endpoints.validation(dataset_name, model_version)?) - } - - pub fn get_labellers(&self, dataset_name: &DatasetFullName) -> Result> { - Ok(self - .post::<_, _, GetAllModelsInDatasetRespone>( - self.endpoints.labellers(dataset_name)?, - GetAllModelsInDatasetRequest {}, - Retry::Yes, - )? - .labellers) - } - - pub fn get_label_validation( - &self, - label: &LabelName, - dataset_name: &DatasetFullName, - model_version: &ModelVersion, - ) -> Result { - Ok(self - .post::<_, _, LabelValidationResponse>( - self.endpoints - .label_validation(dataset_name, model_version)?, - LabelValidationRequest { - label: label.clone(), - }, - Retry::Yes, - )? - .label_validation) - } - - pub fn sync_comments( - &self, - source_name: &SourceFullName, - comments: Vec, - no_charge: bool, - ) -> Result { - self.request( - &Method::POST, - &self.endpoints.sync_comments(source_name)?, - &Some(SyncCommentsRequest { comments }), - &Some(NoChargeQuery { no_charge }), - &Retry::Yes, - ) - } - - pub fn sync_comments_split_on_failure( - &self, - source_name: &SourceFullName, - comments: Vec, - no_charge: bool, - ) -> Result> { - self.splitable_request( - Method::POST, - self.endpoints.sync_comments(source_name)?, - SyncCommentsRequest { comments }, - Some(NoChargeQuery { no_charge }), - Retry::Yes, - ) - } - - pub fn sync_raw_emails( - &self, - source_name: &SourceFullName, - documents: &[Document], - transform_tag: &TransformTag, - include_comments: bool, - no_charge: bool, - ) -> Result { - self.request( - &Method::POST, - &self.endpoints.sync_comments_raw_emails(source_name)?, - &Some(SyncRawEmailsRequest { - documents, - transform_tag, - include_comments, - }), - &Some(NoChargeQuery { no_charge }), - &Retry::Yes, - ) - } - - pub fn put_emails_split_on_failure( - &self, - bucket_name: &BucketFullName, - emails: Vec, - no_charge: bool, - ) -> Result> { - self.splitable_request( - Method::PUT, - self.endpoints.put_emails(bucket_name)?, - PutEmailsRequest { emails }, - Some(NoChargeQuery { no_charge }), - Retry::Yes, - ) - } - - pub fn put_emails( - &self, - bucket_name: &BucketFullName, - emails: Vec, - no_charge: bool, - ) -> Result { - self.request( - &Method::PUT, - &self.endpoints.put_emails(bucket_name)?, - &Some(PutEmailsRequest { emails }), - &Some(NoChargeQuery { no_charge }), - &Retry::Yes, - ) - } - - pub fn post_user(&self, user_id: &UserId, user: UpdateUser) -> Result { - self.post( - self.endpoints.post_user(user_id)?, - PostUserRequest { user: &user }, - Retry::Yes, - ) - } - - pub fn put_comment_audio( - &self, - source_id: &SourceId, - comment_id: &CommentId, - audio_path: impl AsRef, - ) -> Result<()> { - let form = Form::new() - .file("file", audio_path) - .map_err(|source| Error::Unknown { - message: "PUT comment audio operation failed".to_owned(), - source: source.into(), - })?; - let http_response = self - .http_client - .put(self.endpoints.comment_audio(source_id, comment_id)?) - .headers(self.headers.clone()) - .multipart(form) - .send() - .map_err(|source| Error::ReqwestError { - message: "PUT comment audio operation failed".to_owned(), - source, - })?; - let status = http_response.status(); - http_response - .json::>() - .map_err(Error::BadJsonResponse)? - .into_result(status)?; - Ok(()) - } - - pub fn upload_ixp_document( - &self, - source_id: &SourceId, - filename: String, - bytes: Vec, - ) -> Result { - let endpoint = self.endpoints.ixp_documents(source_id)?; - - let do_request = || { - let form = Form::new().part( - "file", - Part::bytes(bytes.clone()).file_name(filename.clone()), - ); - let request = self - .http_client - .request(Method::PUT, endpoint.clone()) - .multipart(form) - .headers(self.headers.clone()); - - request.send() - }; - - let result = self.with_retries(do_request); - - let http_response = result.map_err(|source| Error::ReqwestError { - source, - message: "Operation failed.".to_string(), - })?; - - let status = http_response.status(); - - Ok(http_response - .json::>() - .map_err(Error::BadJsonResponse)? - .into_result(status)? - .comment_id) - } - - pub fn upload_comment_attachment( - &self, - source_id: &SourceId, - comment_id: &CommentId, - attachment_index: usize, - attachment: &PathBuf, - ) -> Result { - let url = self - .endpoints - .attachment_upload(source_id, comment_id, attachment_index)?; - - if !attachment.is_file() || !attachment.exists() { - return Err(Error::FileDoesNotExist { - path: attachment.clone(), - }); - } - - let do_request = || { - let form = Form::new() - .file("file", attachment) - .map_err(|source| Error::Unknown { - message: "PUT comment attachment operation failed".to_owned(), - source: source.into(), - }) - .unwrap(); - let request = self - .http_client - .request(Method::PUT, url.clone()) - .multipart(form) - .headers(self.headers.clone()); - - request.send() - }; - - let result = self.with_retries(do_request); - - let http_response = result.map_err(|source| Error::ReqwestError { - source, - message: "Operation failed.".to_string(), - })?; - - let status = http_response.status(); - - http_response - .json::>() - .map_err(Error::BadJsonResponse)? - .into_result(status) - } - - pub fn get_ixp_document( - &self, - source_id: &SourceId, - comment_id: &CommentId, - ) -> Result> { - self.get_octet_stream(&self.endpoints.ixp_document(source_id, comment_id)?) - } - - fn get_octet_stream(&self, endpoint: &Url) -> Result> { - let mut response = self.raw_request( - &Method::GET, - endpoint, - &None::<()>, - &None::<()>, - &Retry::Yes, - None, - )?; - - let status = response.status(); - - if !status.is_success() { - return Err(Error::Api { - status_code: status, - message: "Bad status code when getting octet stream".to_string(), - }); - } - - let mut buffer = Vec::new(); - - response - .read_to_end(&mut buffer) - .map_err(|source| Error::Unknown { - message: "Failed to read buffer".to_string(), - source: Box::new(source), - })?; - Ok(buffer) - } - - pub fn get_attachment(&self, reference: &AttachmentReference) -> Result> { - self.get_octet_stream(&self.endpoints.attachment_reference(reference)?) - } - - pub fn get_integrations(&self) -> Result> { - Ok(self - .get::<_, GetIntegrationsResponse>(self.endpoints.integrations()?)? - .integrations) - } - - pub fn get_integration(&self, name: &IntegrationFullName) -> Result { - Ok(self - .get::<_, GetIntegrationResponse>(self.endpoints.integration(name)?)? - .integration) - } - - pub fn get_datasets(&self) -> Result> { - Ok(self - .get::<_, GetAvailableDatasetsResponse>(self.endpoints.datasets.clone())? - .datasets) - } - - pub fn get_dataset(&self, dataset: IdentifierT) -> Result - where - IdentifierT: Into, - { - Ok(match dataset.into() { - DatasetIdentifier::Id(dataset_id) => { - self.get::<_, GetDatasetResponse>(self.endpoints.dataset_by_id(&dataset_id)?)? - .dataset - } - DatasetIdentifier::FullName(dataset_name) => { - self.get::<_, GetDatasetResponse>(self.endpoints.dataset_by_name(&dataset_name)?)? - .dataset - } - }) - } - - /// Create a ixp dataset. - pub fn create_ixp_dataset(&self, dataset: IxpDatasetNew) -> Result { - Ok(self - .put::<_, _, CreateIxpDatasetResponse>( - self.endpoints.ixp_datasets()?, - CreateIxpDatasetRequest { dataset }, - )? - .dataset) - } - - /// Create a dataset. - pub fn create_dataset( - &self, - dataset_name: &DatasetFullName, - options: NewDataset<'_>, - ) -> Result { - Ok(self - .put::<_, _, CreateDatasetResponse>( - self.endpoints.dataset_by_name(dataset_name)?, - CreateDatasetRequest { dataset: options }, - )? - .dataset) - } - - /// Update a dataset. - pub fn update_dataset( - &self, - dataset_name: &DatasetFullName, - options: UpdateDataset<'_>, - ) -> Result { - Ok(self - .post::<_, _, UpdateDatasetResponse>( - self.endpoints.dataset_by_name(dataset_name)?, - UpdateDatasetRequest { dataset: options }, - Retry::Yes, - )? - .dataset) - } - - pub fn delete_dataset(&self, dataset: IdentifierT) -> Result<()> - where - IdentifierT: Into, - { - let dataset_id = match dataset.into() { - DatasetIdentifier::Id(dataset_id) => dataset_id, - dataset @ DatasetIdentifier::FullName(_) => self.get_dataset(dataset)?.id, - }; - self.delete(self.endpoints.dataset_by_id(&dataset_id)?) - } - - /// Get labellings for a given a dataset and a list of comment UIDs. - pub fn get_labellings<'a>( - &self, - dataset_name: &DatasetFullName, - comment_uids: impl Iterator, - ) -> Result> { - Ok(self - .get_query::<_, _, GetAnnotationsResponse>( - self.endpoints.get_labellings(dataset_name)?, - Some(&id_list_query(comment_uids.into_iter().map(|id| &id.0))), - )? - .results) - } - - /// Iterate through all reviewed comments in a source. - pub fn get_labellings_iter<'a>( - &'a self, - dataset_name: &'a DatasetFullName, - source_id: &'a SourceId, - return_predictions: bool, - limit: Option, - ) -> LabellingsIter<'a> { - LabellingsIter::new(self, dataset_name, source_id, return_predictions, limit) - } - - /// Get reviewed comments in bulk - pub fn get_labellings_in_bulk( - &self, - dataset_name: &DatasetFullName, - query_parameters: GetLabellingsInBulk<'_>, - ) -> Result { - self.get_query::<_, _, GetAnnotationsResponse>( - self.endpoints.get_labellings(dataset_name)?, - Some(&query_parameters), - ) - } - - /// Update labellings for a given a dataset and comment UID. - pub fn update_labelling( - &self, - dataset_name: &DatasetFullName, - comment_uid: &CommentUid, - labelling: Option<&[NewLabelling]>, - entities: Option<&NewEntities>, - moon_forms: Option<&[NewMoonForm]>, - ) -> Result { - self.post::<_, _, AnnotatedComment>( - self.endpoints.post_labelling(dataset_name, comment_uid)?, - UpdateAnnotationsRequest { - labelling, - entities, - moon_forms, - }, - Retry::Yes, - ) - } - - /// Get predictions for a given a dataset, a model version, and a list of comment UIDs. - pub fn get_comment_predictions<'a>( - &self, - dataset_name: &DatasetFullName, - model_version: &ModelVersion, - comment_uids: impl Iterator, - threshold: Option, - labels: Option>, - ) -> Result> { - Ok(self - .post::<_, _, GetPredictionsResponse>( - self.endpoints - .get_comment_predictions(dataset_name, model_version)?, - GetCommentPredictionsRequest { - uids: comment_uids - .into_iter() - .map(|id| id.0.clone()) - .collect::>(), - - threshold, - labels, - }, - Retry::Yes, - )? - .predictions) - } - - pub fn get_streams(&self, dataset_name: &DatasetFullName) -> Result> { - Ok(self - .get::<_, GetStreamsResponse>(self.endpoints.streams(dataset_name)?)? - .streams) - } - - pub fn get_recent_comments( - &self, - dataset_name: &DatasetFullName, - filter: &CommentFilter, - limit: usize, - continuation: Option<&Continuation>, - ) -> Result { - self.post::<_, _, RecentCommentsPage>( - self.endpoints.recent_comments(dataset_name)?, - GetRecentRequest { - limit, - filter, - continuation, - }, - Retry::No, - ) - } - - pub fn refresh_user_permissions(&self) -> Result { - self.post::<_, _, RefreshUserPermissionsResponse>( - self.endpoints.refresh_user_permissions()?, - RefreshUserPermissionsRequest {}, - Retry::Yes, - ) - } - - pub fn get_current_user(&self) -> Result { - Ok(self - .get::<_, GetCurrentUserResponse>(self.endpoints.current_user.clone())? - .user) - } - - pub fn get_users(&self) -> Result> { - Ok(self - .get::<_, GetAvailableUsersResponse>(self.endpoints.users.clone())? - .users) - } - - pub fn create_user(&self, user: NewUser<'_>) -> Result { - Ok(self - .put::<_, _, CreateUserResponse>( - self.endpoints.users.clone(), - CreateUserRequest { user }, - )? - .user) - } - - pub fn dataset_summary( - &self, - dataset_name: &DatasetFullName, - params: &SummaryRequestParams, - ) -> Result { - self.post::<_, _, SummaryResponse>( - self.endpoints.dataset_summary(dataset_name)?, - serde_json::to_value(params).expect("summary params serialization error"), - Retry::Yes, - ) - } - - pub fn query_dataset_csv( - &self, - dataset_name: &DatasetFullName, - params: &QueryRequestParams, - ) -> Result { - let response = self - .raw_request( - &Method::POST, - &self.endpoints.query_dataset(dataset_name)?, - &Some(serde_json::to_value(params).expect("query params serialization error")), - &None::<()>, - &Retry::Yes, - Some(HeaderValue::from_str("text/csv").expect("Could not parse csv header")), - )? - .text() - .expect("Could not get csv text"); - - Ok(response) - } - - pub fn query_dataset( - &self, - dataset_name: &DatasetFullName, - params: &QueryRequestParams, - ) -> Result { - self.post::<_, _, QueryResponse>( - self.endpoints.query_dataset(dataset_name)?, - serde_json::to_value(params).expect("query params serialization error"), - Retry::Yes, - ) - } - - pub fn send_welcome_email(&self, user_id: UserId) -> Result<()> { - self.post::<_, _, WelcomeEmailResponse>( - self.endpoints.welcome_email(&user_id)?, - json!({}), - Retry::No, - )?; - Ok(()) - } - - pub fn get_bucket_statistics(&self, bucket_name: &BucketFullName) -> Result { - Ok(self - .get::<_, GetBucketStatisticsResponse>(self.endpoints.bucket_statistics(bucket_name)?)? - .statistics) - } - - pub fn get_dataset_statistics( - &self, - dataset_name: &DatasetFullName, - params: &DatasetStatisticsRequestParams, - ) -> Result { - Ok(self - .post::<_, _, GetStatisticsResponse>( - self.endpoints.dataset_statistics(dataset_name)?, - serde_json::to_value(params) - .expect("dataset statistics params serialization error"), - Retry::No, - )? - .statistics) - } - - pub fn get_source_statistics( - &self, - source_name: &SourceFullName, - params: &SourceStatisticsRequestParams, - ) -> Result { - Ok(self - .post::<_, _, GetStatisticsResponse>( - self.endpoints.source_statistics(source_name)?, - serde_json::to_value(params).expect("source statistics params serialization error"), - Retry::No, - )? - .statistics) - } - - /// Create a new bucket. - pub fn create_bucket( - &self, - bucket_name: &BucketFullName, - options: NewBucket<'_>, - ) -> Result { - Ok(self - .put::<_, _, CreateBucketResponse>( - self.endpoints.bucket_by_name(bucket_name)?, - CreateBucketRequest { bucket: options }, - )? - .bucket) - } - - pub fn get_buckets(&self) -> Result> { - Ok(self - .get::<_, GetAvailableBucketsResponse>(self.endpoints.buckets.clone())? - .buckets) - } - - pub fn get_bucket(&self, bucket: IdentifierT) -> Result - where - IdentifierT: Into, - { - Ok(match bucket.into() { - BucketIdentifier::Id(bucket_id) => { - self.get::<_, GetBucketResponse>(self.endpoints.bucket_by_id(&bucket_id)?)? - .bucket - } - BucketIdentifier::FullName(bucket_name) => { - self.get::<_, GetBucketResponse>(self.endpoints.bucket_by_name(&bucket_name)?)? - .bucket - } - }) - } - - pub fn delete_bucket(&self, bucket: IdentifierT) -> Result<()> - where - IdentifierT: Into, - { - let bucket_id = match bucket.into() { - BucketIdentifier::Id(bucket_id) => bucket_id, - bucket @ BucketIdentifier::FullName(_) => self.get_bucket(bucket)?.id, - }; - self.delete(self.endpoints.bucket_by_id(&bucket_id)?) - } - - pub fn fetch_stream_comments( - &self, - stream_name: &StreamFullName, - size: u32, - ) -> Result { - self.post( - self.endpoints.stream_fetch(stream_name)?, - StreamFetchRequest { size }, - Retry::No, - ) - } - - pub fn get_stream(&self, stream_name: &StreamFullName) -> Result { - Ok(self - .get::<_, GetStreamResponse>(self.endpoints.stream(stream_name)?)? - .stream) - } - - pub fn advance_stream( - &self, - stream_name: &StreamFullName, - sequence_id: StreamSequenceId, - ) -> Result<()> { - self.post::<_, _, serde::de::IgnoredAny>( - self.endpoints.stream_advance(stream_name)?, - StreamAdvanceRequest { sequence_id }, - Retry::No, - )?; - Ok(()) - } - - pub fn reset_stream( - &self, - stream_name: &StreamFullName, - to_comment_created_at: DateTime, - ) -> Result<()> { - self.post::<_, _, serde::de::IgnoredAny>( - self.endpoints.stream_reset(stream_name)?, - StreamResetRequest { - to_comment_created_at, - }, - Retry::No, - )?; - Ok(()) - } - - pub fn tag_stream_exceptions( - &self, - stream_name: &StreamFullName, - exceptions: &[StreamException], - ) -> Result<()> { - self.put::<_, _, serde::de::IgnoredAny>( - self.endpoints.stream_exceptions(stream_name)?, - TagStreamExceptionsRequest { exceptions }, - )?; - Ok(()) - } - - /// Gets a project. - pub fn get_project(&self, project_name: &ProjectName) -> Result { - let response = - self.get::<_, GetProjectResponse>(self.endpoints.project_by_name(project_name)?)?; - Ok(response.project) - } - - /// Gets all projects. - pub fn get_projects(&self) -> Result> { - let response = self.get::<_, GetProjectsResponse>(self.endpoints.projects.clone())?; - Ok(response.projects) - } - - /// Creates a new project. - pub fn create_project( - &self, - project_name: &ProjectName, - options: NewProject, - user_ids: &[UserId], - ) -> Result { - Ok(self - .put::<_, _, CreateProjectResponse>( - self.endpoints.project_by_name(project_name)?, - CreateProjectRequest { - project: options, - user_ids, - }, - )? - .project) - } - - /// Updates an existing project. - pub fn update_project( - &self, - project_name: &ProjectName, - options: UpdateProject, - ) -> Result { - Ok(self - .post::<_, _, UpdateProjectResponse>( - self.endpoints.project_by_name(project_name)?, - UpdateProjectRequest { project: options }, - Retry::Yes, - )? - .project) - } - - /// Deletes an existing project. - pub fn delete_project( - &self, - project_name: &ProjectName, - force_delete: ForceDeleteProject, - ) -> Result<()> { - let endpoint = self.endpoints.project_by_name(project_name)?; - match force_delete { - ForceDeleteProject::No => self.delete(endpoint)?, - ForceDeleteProject::Yes => { - self.delete_query(endpoint, Some(&json!({ "force": true })))? - } - }; - Ok(()) - } - - fn get(&self, url: LocationT) -> Result - where - LocationT: IntoUrl + Display + Clone, - for<'de> SuccessT: Deserialize<'de>, - { - self.request(&Method::GET, &url, &None::<()>, &None::<()>, &Retry::Yes) - } - - fn get_query( - &self, - url: LocationT, - query: Option<&QueryT>, - ) -> Result - where - LocationT: IntoUrl + Display + Clone, - QueryT: Serialize, - for<'de> SuccessT: Deserialize<'de>, - { - self.request(&Method::GET, &url, &None::<()>, &Some(query), &Retry::Yes) - } - - fn delete(&self, url: LocationT) -> Result<()> - where - LocationT: IntoUrl + Display + Clone, - { - self.delete_query::(url, None) - } - - fn delete_query(&self, url: LocationT, query: Option<&QueryT>) -> Result<()> - where - LocationT: IntoUrl + Display + Clone, - QueryT: Serialize, - { - debug!("Attempting DELETE `{url}`"); - - let attempts = Cell::new(0); - let http_response = self - .with_retries(|| { - attempts.set(attempts.get() + 1); - - let mut request = self - .http_client - .delete(url.clone()) - .headers(self.headers.clone()); - if let Some(query) = query { - request = request.query(query); - } - request.send() - }) - .map_err(|source| Error::ReqwestError { - source, - message: "DELETE operation failed.".to_owned(), - })?; - let status = http_response.status(); - http_response - .json::>() - .map_err(Error::BadJsonResponse)? - .into_result(status) - .map_or_else( - // Ignore 404 not found if the request had to be re-tried - assume the target - // object was deleted on a previous incomplete request. - |error| { - if attempts.get() > 1 && status == reqwest::StatusCode::NOT_FOUND { - Ok(()) - } else { - Err(error) - } - }, - |_| Ok(()), - ) - } - - fn post( - &self, - url: LocationT, - request: RequestT, - retry: Retry, - ) -> Result - where - LocationT: IntoUrl + Display + Clone, - RequestT: Serialize, - for<'de> SuccessT: Deserialize<'de>, - { - self.request(&Method::POST, &url, &Some(request), &None::<()>, &retry) - } - - fn put( - &self, - url: LocationT, - request: RequestT, - ) -> Result - where - LocationT: IntoUrl + Display + Clone, - RequestT: Serialize, - for<'de> SuccessT: Deserialize<'de>, - { - self.request(&Method::PUT, &url, &Some(request), &None::<()>, &Retry::Yes) - } - - fn raw_request( - &self, - method: &Method, - url: &LocationT, - body: &Option, - query: &Option, - retry: &Retry, - accept_header: Option, - ) -> Result - where - LocationT: IntoUrl + Display + Clone, - RequestT: Serialize, - QueryT: Serialize, - { - let mut headers = self.headers.clone(); - - if let Some(accept_header) = accept_header { - headers.insert(ACCEPT, accept_header); - } - - let do_request = || { - let request = self - .http_client - .request(method.clone(), url.clone()) - .headers(headers.clone()); - - let request = match &query { - Some(query) => request.query(query), - None => request, - }; - let request = match &body { - Some(body) => request.json(body), - None => request, - }; - request.send() - }; - - let result = match retry { - Retry::Yes => self.with_retries(do_request), - Retry::No => do_request(), - }; - let http_response = result.map_err(|source| Error::ReqwestError { - source, - message: format!("{method} operation failed."), - })?; - - Ok(http_response) - } - - fn splitable_request( - &self, - method: Method, - url: LocationT, - body: RequestT, - query: Option, - retry: Retry, - ) -> Result> - where - LocationT: IntoUrl + Display + Clone, - RequestT: Serialize + SplittableRequest + Clone, - QueryT: Serialize + Clone, - for<'de> SuccessT: Deserialize<'de> + ReducibleResponse + Clone + Default, - { - debug!("Attempting {method} `{url}`"); - let result: Result = - self.request(&method, &url, &Some(body.clone()), &query, &retry); - - fn should_split(error: &Error) -> bool { - if let Error::Api { status_code, .. } = error { - *status_code == reqwest::StatusCode::UNPROCESSABLE_ENTITY - || *status_code == reqwest::StatusCode::BAD_REQUEST - } else if let Error::BadJsonResponse(_) = error { - // This is for the case where some sort of network config (e.g. cloudflare) blocks - // the request and returns invalid content - true - } else if let Error::ReqwestError { source, .. } = error { - // Should split timeouts - source.is_timeout() - } else { - false - } - } - - match result { - Ok(response) => Ok(SplitableRequestResponse { - response, - num_failed: 0, - }), - Err(error) if should_split(&error) => { - let mut num_failed = 0; - let response = body - .split() - .filter_map(|request| { - match self.request(&method, &url, &Some(request), &query, &retry) { - Ok(response) => Some(response), - Err(_) => { - num_failed += 1; - None - } - } - }) - .fold(SuccessT::empty(), |merged, next: SuccessT| { - merged.merge(next) - }); - - Ok(SplitableRequestResponse { - num_failed, - response, - }) - } - Err(error) => Err(error), - } - } - - fn request( - &self, - method: &Method, - url: &LocationT, - body: &Option, - query: &Option, - retry: &Retry, - ) -> Result - where - LocationT: IntoUrl + Display + Clone, - RequestT: Serialize, - QueryT: Serialize + Clone, - for<'de> SuccessT: Deserialize<'de>, - { - debug!("Attempting {method} `{url}`"); - let http_response = self.raw_request(method, url, body, query, retry, None)?; - - let status = http_response.status(); - http_response - .json::>() - .map_err(Error::BadJsonResponse)? - .into_result(status) - } - - fn with_retries( - &self, - send_request: impl Fn() -> ReqwestResult, - ) -> ReqwestResult { - match &self.retrier { - Some(retrier) => retrier.with_retries(send_request), - None => send_request(), - } - } -} - -#[derive(Copy, Clone)] -enum Retry { - Yes, - No, -} - -pub struct DatasetQueryIter<'a> { - client: &'a Client, - dataset_name: &'a DatasetFullName, - done: bool, - params: &'a mut QueryRequestParams, -} - -impl<'a> DatasetQueryIter<'a> { - fn new( - client: &'a Client, - dataset_name: &'a DatasetFullName, - params: &'a mut QueryRequestParams, - ) -> Self { - Self { - client, - dataset_name, - done: false, - params, - } - } -} - -impl Iterator for DatasetQueryIter<'_> { - type Item = Result>; - - fn next(&mut self) -> Option { - if self.done { - return None; - } - - let response = self.client.query_dataset(self.dataset_name, self.params); - Some(response.map(|page| { - self.params.continuation = page.continuation; - self.done = self.params.continuation.is_none(); - page.results - })) - } -} - -pub enum ContinuationKind { - Timestamp(DateTime), - Continuation(Continuation), -} - -pub struct EmailsIter<'a> { - client: &'a Client, - bucket_name: &'a BucketFullName, - continuation: Option, - done: bool, - page_size: usize, -} - -impl<'a> EmailsIter<'a> { - // Default number of emails per page to request from API. - pub const DEFAULT_PAGE_SIZE: usize = 64; - // Maximum number of emails per page which can be requested from the API. - pub const MAX_PAGE_SIZE: usize = 256; - - fn new(client: &'a Client, bucket_name: &'a BucketFullName, page_size: Option) -> Self { - Self { - client, - bucket_name, - continuation: None, - done: false, - page_size: page_size.unwrap_or(Self::DEFAULT_PAGE_SIZE), - } - } -} - -impl Iterator for EmailsIter<'_> { - type Item = Result>; - - fn next(&mut self) -> Option { - if self.done { - return None; - } - let response = self.client.get_emails_iter_page( - self.bucket_name, - self.continuation.as_ref(), - self.page_size, - ); - Some(response.map(|page| { - self.continuation = page.continuation; - self.done = self.continuation.is_none(); - page.emails - })) - } -} - -pub struct CommentsIter<'a> { - client: &'a Client, - source_name: &'a SourceFullName, - continuation: Option, - done: bool, - page_size: usize, - to_timestamp: Option>, -} - -#[derive(Debug, Default)] -pub struct CommentsIterTimerange { - pub from: Option>, - pub to: Option>, -} -impl<'a> CommentsIter<'a> { - // Default number of comments per page to request from API. - pub const DEFAULT_PAGE_SIZE: usize = 64; - // Maximum number of comments per page which can be requested from the API. - pub const MAX_PAGE_SIZE: usize = 256; - - fn new( - client: &'a Client, - source_name: &'a SourceFullName, - page_size: Option, - timerange: CommentsIterTimerange, - ) -> Self { - let (from_timestamp, to_timestamp) = (timerange.from, timerange.to); - Self { - client, - source_name, - to_timestamp, - continuation: from_timestamp.map(ContinuationKind::Timestamp), - done: false, - page_size: page_size.unwrap_or(Self::DEFAULT_PAGE_SIZE), - } - } -} - -impl Iterator for CommentsIter<'_> { - type Item = Result>; - - fn next(&mut self) -> Option { - if self.done { - return None; - } - let response = self.client.get_comments_iter_page( - self.source_name, - self.continuation.as_ref(), - self.to_timestamp, - self.page_size, - ); - Some(response.map(|page| { - self.continuation = page.continuation.map(ContinuationKind::Continuation); - self.done = self.continuation.is_none(); - page.comments - })) - } -} - -pub struct LabellingsIter<'a> { - client: &'a Client, - dataset_name: &'a DatasetFullName, - source_id: &'a SourceId, - return_predictions: bool, - after: Option, - limit: Option, - done: bool, -} - -impl<'a> LabellingsIter<'a> { - fn new( - client: &'a Client, - dataset_name: &'a DatasetFullName, - source_id: &'a SourceId, - return_predictions: bool, - limit: Option, - ) -> Self { - Self { - client, - dataset_name, - source_id, - return_predictions, - after: None, - limit, - done: false, - } - } -} - -impl Iterator for LabellingsIter<'_> { - type Item = Result>; - - fn next(&mut self) -> Option { - if self.done { - return None; - } - let response = self.client.get_labellings_in_bulk( - self.dataset_name, - GetLabellingsInBulk { - source_id: self.source_id, - return_predictions: &self.return_predictions, - after: &self.after, - limit: &self.limit, - }, - ); - Some(response.map(|page| { - if self.after == page.after && !page.results.is_empty() { - panic!("Labellings API did not increment pagination continuation"); - } - self.after = page.after; - if page.results.is_empty() { - self.done = true; - } - page.results - })) - } -} - -#[derive(Debug)] -struct Endpoints { - base: Url, - datasets: Url, - sources: Url, - buckets: Url, - users: Url, - current_user: Url, - projects: Url, -} - -#[derive(Debug, Serialize, Clone, Copy)] -struct NoChargeQuery { - no_charge: bool, -} - -fn construct_endpoint(base: &Url, segments: &[&str]) -> Result { - let mut endpoint = base.clone(); - - let mut endpoint_segments = endpoint - .path_segments_mut() - .map_err(|_| Error::BadEndpoint { - endpoint: base.clone(), - })?; - - for segment in segments { - endpoint_segments.push(segment); - } - - drop(endpoint_segments); - - Ok(endpoint) -} - -impl Endpoints { - pub fn new(base: Url) -> Result { - let datasets = construct_endpoint(&base, &["api", "v1", "datasets"])?; - let sources = construct_endpoint(&base, &["api", "v1", "sources"])?; - let buckets = construct_endpoint(&base, &["api", "_private", "buckets"])?; - let users = construct_endpoint(&base, &["api", "_private", "users"])?; - let current_user = construct_endpoint(&base, &["auth", "user"])?; - let projects = construct_endpoint(&base, &["api", "_private", "projects"])?; - - Ok(Endpoints { - base, - datasets, - sources, - buckets, - users, - current_user, - projects, - }) - } - - fn refresh_user_permissions(&self) -> Result { - construct_endpoint(&self.base, &["auth", "refresh-user-permissions"]) - } - - fn label_group( - &self, - dataset_name: &DatasetFullName, - label_group: LabelGroupName, - ) -> Result { - construct_endpoint( - &self.base, - &[ - "api", - "_private", - "datasets", - &dataset_name.0, - "labels", - &label_group.0, - ], - ) - } - - fn ixp_datasets(&self) -> Result { - construct_endpoint(&self.base, &["api", "_private", "ixp", "datasets"]) - } - - fn ixp_documents(&self, source_id: &SourceId) -> Result { - construct_endpoint( - &self.base, - &[ - "api", - "_private", - "sources", - &format!("id:{0}", source_id.0), - "documents", - ], - ) - } - - fn ixp_document(&self, source_id: &SourceId, comment_id: &CommentId) -> Result { - construct_endpoint( - &self.base, - &[ - "api", - "_private", - "sources", - &format!("id:{0}", source_id.0), - "documents", - &comment_id.0, - ], - ) - } - - fn keyed_sync_states(&self, bucket_id: &BucketId) -> Result { - construct_endpoint( - &self.base, - &[ - "api", - "_private", - "buckets", - &format!("id:{}", bucket_id.0), - "keyed-sync-states/", - ], - ) - } - - fn keyed_sync_state(&self, bucket_id: &BucketId, id: &KeyedSyncStateId) -> Result { - construct_endpoint( - &self.base, - &[ - "api", - "_private", - "buckets", - &format!("id:{}", bucket_id.0), - "keyed-sync-state", - &id.0, - ], - ) - } - - fn query_keyed_sync_state_ids(&self, bucket_id: &BucketId) -> Result { - construct_endpoint( - &self.base, - &[ - "api", - "_private", - "buckets", - &format!("id:{}", bucket_id.0), - "keyed-sync-state-ids", - ], - ) - } - - fn audit_events_query(&self) -> Result { - construct_endpoint(&self.base, &["api", "v1", "audit_events", "query"]) - } - - fn integrations(&self) -> Result { - construct_endpoint(&self.base, &["api", "_private", "integrations"]) - } - - fn integration(&self, name: &IntegrationFullName) -> Result { - construct_endpoint(&self.base, &["api", "_private", "integrations", &name.0]) - } - - fn attachment_reference(&self, reference: &AttachmentReference) -> Result { - construct_endpoint(&self.base, &["api", "v1", "attachments", &reference.0]) - } - - fn attachment_upload( - &self, - source_id: &SourceId, - comment_id: &CommentId, - attachment_index: usize, - ) -> Result { - construct_endpoint( - &self.base, - &[ - "api", - "_private", - "sources", - &format!("id:{}", source_id.0), - "comments", - &comment_id.0, - "attachments", - &attachment_index.to_string(), - ], - ) - } - fn latest_validation(&self, dataset_name: &DatasetFullName) -> Result { - construct_endpoint( - &self.base, - &[ - "api", - "_private", - "datasets", - &dataset_name.0, - "labellers", - "latest", - "validation", - ], - ) - } - - fn validation( - &self, - dataset_name: &DatasetFullName, - model_version: &ModelVersion, - ) -> Result { - construct_endpoint( - &self.base, - &[ - "api", - "_private", - "datasets", - &dataset_name.0, - "labellers", - &model_version.0.to_string(), - "validation", - ], - ) - } - - fn label_validation( - &self, - dataset_name: &DatasetFullName, - model_version: &ModelVersion, - ) -> Result { - construct_endpoint( - &self.base, - &[ - "api", - "_private", - "datasets", - &dataset_name.0, - "labellers", - &model_version.0.to_string(), - "label-validation", - ], - ) - } - fn bucket_statistics(&self, bucket_name: &BucketFullName) -> Result { - construct_endpoint( - &self.base, - &["api", "_private", "buckets", &bucket_name.0, "statistics"], - ) - } - - fn dataset_summary(&self, dataset_name: &DatasetFullName) -> Result { - construct_endpoint( - &self.base, - &["api", "_private", "datasets", &dataset_name.0, "summary"], - ) - } - - fn query_dataset(&self, dataset_name: &DatasetFullName) -> Result { - construct_endpoint( - &self.base, - &["api", "_private", "datasets", &dataset_name.0, "query"], - ) - } - - fn streams(&self, dataset_name: &DatasetFullName) -> Result { - construct_endpoint( - &self.base, - &["api", "v1", "datasets", &dataset_name.0, "streams"], - ) - } - - fn stream(&self, stream_name: &StreamFullName) -> Result { - construct_endpoint( - &self.base, - &[ - "api", - "v1", - "datasets", - &stream_name.dataset.0, - "streams", - &stream_name.stream.0, - ], - ) - } - - fn stream_fetch(&self, stream_name: &StreamFullName) -> Result { - construct_endpoint( - &self.base, - &[ - "api", - "v1", - "datasets", - &stream_name.dataset.0, - "streams", - &stream_name.stream.0, - "fetch", - ], - ) - } - - fn stream_advance(&self, stream_name: &StreamFullName) -> Result { - construct_endpoint( - &self.base, - &[ - "api", - "v1", - "datasets", - &stream_name.dataset.0, - "streams", - &stream_name.stream.0, - "advance", - ], - ) - } - - fn stream_reset(&self, stream_name: &StreamFullName) -> Result { - construct_endpoint( - &self.base, - &[ - "api", - "v1", - "datasets", - &stream_name.dataset.0, - "streams", - &stream_name.stream.0, - "reset", - ], - ) - } - - fn stream_exceptions(&self, stream_name: &StreamFullName) -> Result { - construct_endpoint( - &self.base, - &[ - "api", - "v1", - "datasets", - &stream_name.dataset.0, - "streams", - &stream_name.stream.0, - "exceptions", - ], - ) - } - - fn recent_comments(&self, dataset_name: &DatasetFullName) -> Result { - construct_endpoint( - &self.base, - &["api", "_private", "datasets", &dataset_name.0, "recent"], - ) - } - - fn dataset_statistics(&self, dataset_name: &DatasetFullName) -> Result { - construct_endpoint( - &self.base, - &["api", "_private", "datasets", &dataset_name.0, "statistics"], - ) - } - - fn source_statistics(&self, source_name: &SourceFullName) -> Result { - construct_endpoint( - &self.base, - &["api", "v1", "sources", &source_name.0, "statistics"], - ) - } - - fn user_by_id(&self, user_id: &UserId) -> Result { - construct_endpoint(&self.base, &["api", "_private", "users", &user_id.0]) - } - - fn source_by_id(&self, source_id: &SourceId) -> Result { - construct_endpoint( - &self.base, - &["api", "v1", "sources", &format!("id:{}", source_id.0)], - ) - } - - fn source_by_name(&self, source_name: &SourceFullName) -> Result { - construct_endpoint(&self.base, &["api", "v1", "sources", &source_name.0]) - } - - fn quotas(&self, tenant_id: &Option) -> Result { - if let Some(tenant_id) = tenant_id { - construct_endpoint(&self.base, &["api", "_private", "quotas", &tenant_id.0]) - } else { - construct_endpoint(&self.base, &["api", "_private", "quotas"]) - } - } - - fn quota(&self, tenant_id: &TenantId, tenant_quota_kind: TenantQuotaKind) -> Result { - construct_endpoint( - &self.base, - &[ - "api", - "_private", - "quotas", - &tenant_id.to_string(), - &tenant_quota_kind.to_string(), - ], - ) - } - - fn put_comments(&self, source_name: &SourceFullName) -> Result { - construct_endpoint( - &self.base, - &["api", "_private", "sources", &source_name.0, "comments"], - ) - } - - fn comments(&self, source_name: &SourceFullName) -> Result { - construct_endpoint( - &self.base, - &["api", "_private", "sources", &source_name.0, "comments"], - ) - } - - fn comment_by_id(&self, source_name: &SourceFullName, comment_id: &CommentId) -> Result { - construct_endpoint( - &self.base, - &[ - "api", - "v1", - "sources", - &source_name.0, - "comments", - &comment_id.0, - ], - ) - } - - fn comments_v1(&self, source_name: &SourceFullName) -> Result { - construct_endpoint( - &self.base, - &["api", "v1", "sources", &source_name.0, "comments"], - ) - } - - fn sync_comments(&self, source_name: &SourceFullName) -> Result { - construct_endpoint( - &self.base, - &["api", "v1", "sources", &source_name.0, "sync"], - ) - } - - fn sync_comments_raw_emails(&self, source_name: &SourceFullName) -> Result { - construct_endpoint( - &self.base, - &["api", "v1", "sources", &source_name.0, "sync-raw-emails"], - ) - } - - fn comment_audio(&self, source_id: &SourceId, comment_id: &CommentId) -> Result { - construct_endpoint( - &self.base, - &[ - "api", - "_private", - "sources", - &format!("id:{}", source_id.0), - "comments", - &comment_id.0, - "audio", - ], - ) - } - - fn get_emails(&self, bucket_name: &BucketFullName) -> Result { - construct_endpoint( - &self.base, - &["api", "_private", "buckets", &bucket_name.0, "emails"], - ) - } - - fn put_emails(&self, bucket_name: &BucketFullName) -> Result { - construct_endpoint( - &self.base, - &["api", "_private", "buckets", &bucket_name.0, "emails"], - ) - } - - fn post_user(&self, user_id: &UserId) -> Result { - construct_endpoint(&self.base, &["api", "_private", "users", &user_id.0]) - } - - fn dataset_by_id(&self, dataset_id: &DatasetId) -> Result { - construct_endpoint( - &self.base, - &["api", "v1", "datasets", &format!("id:{}", dataset_id.0)], - ) - } - - fn dataset_by_name(&self, dataset_name: &DatasetFullName) -> Result { - construct_endpoint(&self.base, &["api", "v1", "datasets", &dataset_name.0]) - } - - fn get_labellings(&self, dataset_name: &DatasetFullName) -> Result { - construct_endpoint( - &self.base, - &["api", "_private", "datasets", &dataset_name.0, "labellings"], - ) - } - - fn labellers(&self, dataset_name: &DatasetFullName) -> Result { - construct_endpoint( - &self.base, - &["api", "_private", "datasets", &dataset_name.0, "labellers"], - ) - } - - fn get_comment_predictions( - &self, - dataset_name: &DatasetFullName, - model_version: &ModelVersion, - ) -> Result { - construct_endpoint( - &self.base, - &[ - "api", - "v1", - "datasets", - &dataset_name.0, - "labellers", - &model_version.0.to_string(), - "predict-comments", - ], - ) - } - - fn post_labelling( - &self, - dataset_name: &DatasetFullName, - comment_uid: &CommentUid, - ) -> Result { - construct_endpoint( - &self.base, - &[ - "api", - "_private", - "datasets", - &dataset_name.0, - "labellings", - &comment_uid.0, - ], - ) - } - - fn bucket_by_id(&self, bucket_id: &BucketId) -> Result { - construct_endpoint( - &self.base, - &["api", "_private", "buckets", &format!("id:{}", bucket_id.0)], - ) - } - - fn bucket_by_name(&self, bucket_name: &BucketFullName) -> Result { - construct_endpoint(&self.base, &["api", "_private", "buckets", &bucket_name.0]) - } - - fn project_by_name(&self, project_name: &ProjectName) -> Result { - construct_endpoint( - &self.base, - &["api", "_private", "projects", &project_name.0], - ) - } - - fn welcome_email(&self, user_id: &UserId) -> Result { - construct_endpoint( - &self.base, - &["api", "_private", "users", &user_id.0, "welcome-email"], - ) - } -} - -const DEFAULT_HTTP_TIMEOUT_SECONDS: u64 = 240; - -fn build_http_client(config: &Config) -> Result { - let mut builder = HttpClient::builder() - .gzip(true) - .danger_accept_invalid_certs(config.accept_invalid_certificates) - .timeout(Some(Duration::from_secs(DEFAULT_HTTP_TIMEOUT_SECONDS))); - - if let Some(proxy) = config.proxy.clone() { - builder = builder.proxy(Proxy::all(proxy).map_err(Error::BuildHttpClient)?); - } - builder.build().map_err(Error::BuildHttpClient) -} - -fn build_headers(config: &Config) -> Result { - let mut headers = HeaderMap::new(); - headers.insert( - header::AUTHORIZATION, - HeaderValue::from_str(&format!("Bearer {}", &config.token.0)).map_err(|_| { - Error::BadToken { - token: config.token.0.clone(), - } - })?, - ); - Ok(headers) -} - -fn id_list_query<'a>(ids: impl Iterator) -> Vec<(&'static str, &'a str)> { - // Return a list of pairs ("id", "a"), ("id", "b"), ... - // The http client will turn this into a query string of - // the form "id=a&id=b&..." - ids.map(|id| ("id", id.as_str())).collect() -} - -pub static DEFAULT_ENDPOINT: Lazy = - Lazy::new(|| Url::parse("https://reinfer.dev").expect("Default URL is well-formed")); - -#[cfg(test)] -mod tests { - use super::*; - - #[test] - fn test_construct_endpoint() { - let url = construct_endpoint( - &Url::parse("https://cloud.uipath.com/org/tenant/reinfer_").unwrap(), - &["api", "v1", "sources", "project", "source", "sync"], - ) - .unwrap(); - - assert_eq!( - url.to_string(), - "https://cloud.uipath.com/org/tenant/reinfer_/api/v1/sources/project/source/sync" - ) - } - - #[test] - fn test_id_list_query() { - assert_eq!(id_list_query(Vec::new().iter()), Vec::new()); - assert_eq!( - id_list_query(["foo".to_owned()].iter()), - vec![("id", "foo")] - ); - assert_eq!( - id_list_query( - [ - "Stream".to_owned(), - "River".to_owned(), - "Waterfall".to_owned() - ] - .iter() - ), - [("id", "Stream"), ("id", "River"), ("id", "Waterfall"),] - ); - } -} diff --git a/api/src/resources/attachments.rs b/api/src/resources/attachments.rs deleted file mode 100644 index e9464c52..00000000 --- a/api/src/resources/attachments.rs +++ /dev/null @@ -1,31 +0,0 @@ -use std::path::Path; - -use crate::AttachmentReference; -use serde::{Deserialize, Serialize}; - -#[derive(Debug, Clone, Deserialize, Serialize, PartialEq, Eq)] -pub struct ContentHash(pub String); - -#[derive(Debug, Clone, Deserialize, Serialize)] -pub struct UploadAttachmentResponse { - pub content_hash: ContentHash, -} - -#[derive(Debug, Clone, Deserialize, Serialize, PartialEq, Eq)] -pub struct AttachmentMetadata { - pub name: String, - pub size: u64, - pub content_type: String, - #[serde(skip_serializing_if = "Option::is_none")] - pub attachment_reference: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub content_hash: Option, -} - -impl AttachmentMetadata { - pub fn extension(&self) -> Option { - let path = Path::new(&self.name); - path.extension() - .map(|path| path.to_string_lossy().to_string()) - } -} diff --git a/api/src/resources/audit.rs b/api/src/resources/audit.rs deleted file mode 100644 index c289575e..00000000 --- a/api/src/resources/audit.rs +++ /dev/null @@ -1,201 +0,0 @@ -use chrono::{DateTime, Utc}; - -use crate::{Continuation, DatasetId, DatasetName, ProjectName, UserEmail, UserId, Username}; - -use super::{comment::CommentTimestampFilter, project::Id as ProjectId}; -use serde::{Deserialize, Serialize}; - -#[derive(Debug, Clone, Deserialize, Serialize)] -pub struct AuditQueryFilter { - pub timestamp: CommentTimestampFilter, -} - -#[derive(PartialEq, Eq, Debug, Clone, Deserialize, Serialize)] -pub struct AuditEventId(pub String); - -#[derive(PartialEq, Eq, Debug, Clone, Deserialize, Serialize)] -pub struct AuditEventType(pub String); - -#[derive(PartialEq, Eq, Debug, Clone, Deserialize, Serialize)] -pub struct AuditTenantName(pub String); - -#[derive(PartialEq, Eq, Debug, Clone, Deserialize, Serialize)] -pub struct AuditTenantId(pub String); - -#[derive(Debug, Clone, Deserialize, Serialize)] -pub struct AuditQueryRequest { - pub filter: AuditQueryFilter, - #[serde(skip_serializing_if = "Option::is_none", default)] - pub continuation: Option, -} - -#[derive(Debug, Clone, Deserialize, Serialize)] -pub struct AuditEvent { - actor_user_id: UserId, - actor_tenant_id: AuditTenantId, - #[serde(skip_serializing_if = "Vec::is_empty", default)] - dataset_ids: Vec, - event_id: AuditEventId, - event_type: AuditEventType, - #[serde(skip_serializing_if = "Vec::is_empty", default)] - project_ids: Vec, - tenant_ids: Vec, - timestamp: DateTime, -} - -#[derive(Debug, Clone, Deserialize, Serialize)] -pub struct PrintableAuditEvent { - pub actor_email: UserEmail, - pub actor_tenant_name: AuditTenantName, - pub event_type: AuditEventType, - pub dataset_names: Vec, - pub event_id: AuditEventId, - pub project_names: Vec, - pub tenant_names: Vec, - pub timestamp: DateTime, -} - -#[derive(Debug, Clone, Deserialize, Serialize)] -struct AuditDataset { - id: DatasetId, - name: DatasetName, - project_id: ProjectId, - title: String, -} - -#[derive(Debug, Clone, Deserialize, Serialize)] -struct AuditProject { - id: ProjectId, - name: ProjectName, - tenant_id: AuditTenantId, -} - -#[derive(Debug, Clone, Deserialize, Serialize)] -struct AuditTenant { - id: AuditTenantId, - name: AuditTenantName, -} - -#[derive(Debug, Clone, Deserialize, Serialize)] -struct AuditUser { - display_name: Username, - email: UserEmail, - id: UserId, - tenant_id: AuditTenantId, - username: Username, -} - -#[derive(Debug, Clone, Deserialize, Serialize)] -pub struct AuditQueryResponse { - audit_events: Vec, - projects: Vec, - pub continuation: Option, - datasets: Vec, - tenants: Vec, - users: Vec, -} - -impl AuditQueryResponse { - pub fn into_iter_printable(self) -> QueryResponseIterator { - QueryResponseIterator { - response: self, - index: 0, - } - } - - fn get_user(&self, user_id: &UserId) -> Option<&AuditUser> { - self.users.iter().find(|user| user.id == *user_id) - } - - fn get_dataset(&self, dataset_id: &DatasetId) -> Option<&AuditDataset> { - self.datasets - .iter() - .find(|dataset| dataset.id == *dataset_id) - } - - fn get_project(&self, project_id: &ProjectId) -> Option<&AuditProject> { - self.projects - .iter() - .find(|project| project.id == *project_id) - } - - fn get_tenant(&self, tenant_id: &AuditTenantId) -> Option<&AuditTenant> { - self.tenants.iter().find(|tenant| tenant.id == *tenant_id) - } -} - -pub struct QueryResponseIterator { - response: AuditQueryResponse, - index: usize, -} - -impl Iterator for QueryResponseIterator { - type Item = PrintableAuditEvent; - fn next(&mut self) -> Option { - let event = self.response.audit_events.get(self.index)?; - - let actor_email = &self - .response - .get_user(&event.actor_user_id) - .unwrap_or_else(|| panic!("Could not find user for id `{}`", event.actor_user_id.0)) - .email; - - let dataset_names = event - .dataset_ids - .iter() - .map(|dataset_id| { - &self - .response - .get_dataset(dataset_id) - .unwrap_or_else(|| panic!("Could not get dataset for id `{}`", dataset_id.0)) - .name - }) - .cloned() - .collect(); - - let project_names = event - .project_ids - .iter() - .map(|project_id| { - &self - .response - .get_project(project_id) - .unwrap_or_else(|| panic!("Could not get project for id `{}`", project_id.0)) - .name - }) - .cloned() - .collect(); - - let tenant_names = event - .tenant_ids - .iter() - .map(|tenant_id| { - &self - .response - .get_tenant(tenant_id) - .unwrap_or_else(|| panic!("Could not get tenant for id `{}`", tenant_id.0)) - .name - }) - .cloned() - .collect(); - - let actor_tenant_name = &self - .response - .get_tenant(&event.actor_tenant_id) - .unwrap_or_else(|| panic!("Could not get tenant for id `{}`", event.actor_tenant_id.0)) - .name; - - self.index += 1; - - Some(PrintableAuditEvent { - event_type: event.event_type.clone(), - actor_tenant_name: actor_tenant_name.clone(), - event_id: event.event_id.clone(), - timestamp: event.timestamp, - actor_email: actor_email.clone(), - dataset_names, - project_names, - tenant_names, - }) - } -} diff --git a/api/src/resources/auth.rs b/api/src/resources/auth.rs deleted file mode 100644 index 65b0d0cf..00000000 --- a/api/src/resources/auth.rs +++ /dev/null @@ -1,9 +0,0 @@ -use serde::{Deserialize, Serialize}; - -#[derive(Debug, Serialize, Deserialize)] -pub struct RefreshUserPermissionsRequest {} - -#[derive(Debug, Serialize, Deserialize)] -pub struct RefreshUserPermissionsResponse { - pub permissions_refreshed: Option, -} diff --git a/api/src/resources/bucket.rs b/api/src/resources/bucket.rs deleted file mode 100644 index f64dc742..00000000 --- a/api/src/resources/bucket.rs +++ /dev/null @@ -1,215 +0,0 @@ -use chrono::{DateTime, Utc}; -use core::fmt; -use once_cell::sync::Lazy; -use regex::Regex; -use serde::{Deserialize, Serialize}; -use std::fmt::{Display, Formatter, Result as FmtResult}; -use std::str::FromStr; - -use crate::{ - error::{Error, Result}, - resources::user::Username, -}; - -static FULL_NAME_REGEX: Lazy = - Lazy::new(|| Regex::new("^[A-Za-z0-9-_]{1,256}/[A-Za-z0-9-_]{1,256}$").unwrap()); - -#[derive(Debug, Clone, Deserialize, Serialize, PartialEq, Eq)] -pub struct Bucket { - pub id: Id, - pub name: Name, - pub owner: Username, - pub created_at: DateTime, -} - -impl Bucket { - pub fn full_name(&self) -> FullName { - FullName(format!("{}/{}", self.owner.0, self.name.0)) - } -} - -#[derive(Debug, Clone, Deserialize, Serialize, PartialEq, Eq, Hash)] -pub struct Name(pub String); - -#[derive(Debug, Clone, Deserialize, Serialize, PartialEq, Eq, Hash)] -pub struct FullName(pub String); - -#[derive(Debug, Clone, Deserialize, Serialize, PartialEq, Eq, Hash)] -pub struct Id(pub String); - -#[derive(Debug, Clone, Deserialize, Serialize, PartialEq, Eq, Hash)] -pub struct ModelFamily(pub String); - -// TODO(mcobzarenco)[3963]: Make `Identifier` into a trait (ensure it still implements -// `FromStr` so we can take T: Identifier as a clap command line argument). -#[derive(Debug, Clone, Deserialize, Serialize, PartialEq, Eq, Hash)] -pub enum Identifier { - Id(Id), - FullName(FullName), -} - -impl From for Identifier { - fn from(full_name: FullName) -> Self { - Identifier::FullName(full_name) - } -} - -impl From for Identifier { - fn from(id: Id) -> Self { - Identifier::Id(id) - } -} - -impl FromStr for Identifier { - type Err = Error; - - fn from_str(string: &str) -> Result { - if string.chars().all(|c| c.is_ascii_hexdigit()) { - Ok(Identifier::Id(Id(string.into()))) - } else if FULL_NAME_REGEX.is_match(string) { - Ok(Identifier::FullName(FullName(string.into()))) - } else { - Err(Error::BadBucketIdentifier { - identifier: string.into(), - }) - } - } -} - -impl Display for FullName { - fn fmt(&self, formatter: &mut Formatter<'_>) -> FmtResult { - write!(formatter, "{}", self.0) - } -} - -impl Display for Id { - fn fmt(&self, formatter: &mut Formatter<'_>) -> FmtResult { - write!(formatter, "{}", self.0) - } -} - -impl Display for Identifier { - fn fmt(&self, formatter: &mut Formatter<'_>) -> FmtResult { - match self { - Identifier::Id(id) => Display::fmt(id, formatter), - Identifier::FullName(full_name) => Display::fmt(full_name, formatter), - } - } -} - -#[derive(Debug, Clone, Serialize, PartialEq, Eq)] -pub struct NewBucket<'request> { - pub bucket_type: BucketType, - #[serde(skip_serializing_if = "Option::is_none")] - pub title: Option<&'request str>, -} - -#[derive(Debug, Clone, Serialize, PartialEq, Eq)] -pub(crate) struct CreateRequest<'request> { - pub bucket: NewBucket<'request>, -} - -#[derive(Debug, Clone, Deserialize, Serialize, PartialEq, Eq)] -pub(crate) struct CreateResponse { - pub bucket: Bucket, -} - -#[derive(Debug, Clone, Deserialize, Serialize, PartialEq, Eq)] -#[serde(rename_all = "SCREAMING_SNAKE_CASE")] -pub enum FolderStatus { - InProgress, - UpToDate, -} - -impl fmt::Display for FolderStatus { - fn fmt(&self, f: &mut Formatter<'_>) -> FmtResult { - match *self { - Self::InProgress => write!(f, "In progress"), - Self::UpToDate => write!(f, "Up to date"), - } - } -} - -#[derive(Debug, Clone, Deserialize, Serialize, PartialEq, Eq)] -pub struct KeyedSyncState { - pub mailbox_name: String, - pub folder_id: Option, - pub folder_path: Option>, - pub status: FolderStatus, - pub synced_until: Option>, - pub last_synced_at: DateTime, -} - -#[derive(Debug, Clone, Deserialize, Serialize, PartialEq, Eq)] -pub(crate) struct GetKeyedSyncStatesResponse { - pub keyed_sync_states: Vec, -} - -#[derive(Debug, Clone, Deserialize, Serialize, PartialEq, Eq, Hash)] -pub struct KeyedSyncStateId(pub String); - -#[derive(Debug, Clone, Deserialize, Serialize, PartialEq, Eq)] -pub struct GetKeyedSyncStateIdsRequest { - pub mailbox_name: String, -} - -#[derive(Debug, Clone, Deserialize, Serialize, PartialEq, Eq)] -pub(crate) struct GetKeyedSyncStateIdsResponse { - pub keyed_sync_state_ids: Vec, -} - -#[derive(Debug, Clone, Deserialize, Serialize, PartialEq, Eq)] -pub(crate) struct GetAvailableResponse { - pub buckets: Vec, -} - -#[derive(Debug, Clone, Deserialize, Serialize, PartialEq, Eq)] -pub(crate) struct GetResponse { - pub bucket: Bucket, -} - -#[derive(Debug, Clone, Copy, Deserialize, Serialize, PartialEq, Eq, Hash)] -pub enum BucketType { - #[serde(rename = "emails")] - Emails, -} - -impl FromStr for BucketType { - type Err = Error; - - fn from_str(string: &str) -> Result { - match string { - "emails" => Ok(Self::Emails), - _ => Err(Error::BadBucketType { - bucket_type: string.into(), - }), - } - } -} - -impl Default for BucketType { - fn default() -> Self { - Self::Emails - } -} - -impl Display for BucketType { - fn fmt(&self, formatter: &mut Formatter<'_>) -> FmtResult { - match *self { - Self::Emails => write!(formatter, "emails"), - } - } -} - -impl FromStr for FullName { - type Err = Error; - fn from_str(string: &str) -> Result { - if FULL_NAME_REGEX.is_match(string) { - Ok(FullName(string.into())) - } else { - Err(Error::BadBucketName { - name: string.into(), - }) - } - } -} diff --git a/api/src/resources/bucket_statistics.rs b/api/src/resources/bucket_statistics.rs deleted file mode 100644 index 6abc89f7..00000000 --- a/api/src/resources/bucket_statistics.rs +++ /dev/null @@ -1,32 +0,0 @@ -use serde::{Deserialize, Serialize}; - -#[derive(Debug, Clone, Deserialize, Serialize, PartialEq)] -pub struct GetBucketStatisticsResponse { - pub statistics: Statistics, -} - -#[derive(Debug, Clone, Deserialize, Serialize, PartialEq)] -#[serde(tag = "kind")] -pub enum Count { - #[serde(rename = "lower_bound")] - LowerBoundBucketCount { value: i32 }, - #[serde(rename = "exact")] - ExactBucketCount { value: i32 }, -} - -#[derive(Debug, Clone, Deserialize, Serialize, PartialEq)] -pub struct Statistics { - pub count: Count, -} - -#[derive(Debug, Clone, Deserialize, Serialize, PartialEq)] -pub struct LowerBoundBucketCount { - pub kind: String, - pub value: i32, -} - -#[derive(Debug, Clone, Deserialize, Serialize, PartialEq)] -pub struct ExactBucketCount { - pub kind: String, - pub value: i32, -} diff --git a/api/src/resources/comment.rs b/api/src/resources/comment.rs deleted file mode 100644 index 07578bcf..00000000 --- a/api/src/resources/comment.rs +++ /dev/null @@ -1,1116 +0,0 @@ -use crate::{ - error::{Error, Result}, - resources::attachments::AttachmentMetadata, - resources::entity_def::Name as EntityName, - resources::label_def::Name as LabelName, - resources::label_group::Name as LabelGroupName, - resources::label_group::DEFAULT_LABEL_GROUP_NAME, - ReducibleResponse, SourceId, SplittableRequest, -}; -use chrono::{DateTime, Utc}; -use ordered_float::NotNan; -use serde::{ - de::{Deserializer, Error as SerdeError, MapAccess, Visitor}, - ser::{SerializeMap, Serializer}, - Deserialize, Serialize, -}; -use serde_json::Value as JsonValue; -use std::{ - collections::HashMap, - fmt::{Formatter, Result as FmtResult}, - ops::{Deref, DerefMut}, - path::PathBuf, - result::Result as StdResult, - str::FromStr, -}; - -#[derive(Debug, Default, Clone, Deserialize, Serialize, PartialEq, Eq, Hash, PartialOrd, Ord)] -pub struct Id(pub String); - -impl FromStr for Id { - type Err = Error; - - fn from_str(string: &str) -> Result { - Ok(Self(string.to_owned())) - } -} - -#[derive(Debug, Clone, Deserialize, Serialize, PartialEq, Eq, Hash)] -pub struct Uid(pub String); - -impl FromStr for Uid { - type Err = Error; - - fn from_str(string: &str) -> Result { - Ok(Self(string.to_owned())) - } -} - -#[derive(Debug, Clone, Deserialize, Serialize, PartialEq, Eq, Hash)] -pub struct ThreadId(pub String); - -#[derive(Debug, Clone, Serialize, Deserialize, Default)] -pub struct CommentTimestampFilter { - #[serde(skip_serializing_if = "Option::is_none")] - pub minimum: Option>, - - #[serde(skip_serializing_if = "Option::is_none")] - pub maximum: Option>, -} - -#[derive(Debug, Clone, Serialize, Deserialize)] -#[serde(rename_all = "snake_case")] -pub enum ReviewedFilterEnum { - OnlyReviewed, - OnlyUnreviewed, -} - -type UserPropertyName = String; - -#[derive(Debug, Clone, Serialize, Deserialize)] -pub struct UserPropertiesFilter(pub HashMap); - -#[derive(Default, Debug, Clone, Serialize, Deserialize)] -pub struct PropertyFilter { - #[serde(skip_serializing_if = "<[_]>::is_empty", default)] - pub one_of: Vec, - #[serde(skip_serializing_if = "<[_]>::is_empty", default)] - pub not_one_of: Vec, - #[serde(skip_serializing_if = "<[_]>::is_empty", default)] - pub domain_not_one_of: Vec, - #[serde(skip_serializing_if = "Option::is_none")] - pub minimum: Option>, - #[serde(skip_serializing_if = "Option::is_none")] - pub maximum: Option>, -} - -impl PropertyFilter { - pub fn new( - one_of: Vec, - not_one_of: Vec, - domain_not_one_of: Vec, - ) -> Self { - Self { - one_of, - not_one_of, - domain_not_one_of, - ..Default::default() - } - } -} - -#[derive(Debug, Clone, Serialize, Deserialize, Default)] -pub struct CommentFilter { - #[serde(skip_serializing_if = "Option::is_none")] - pub reviewed: Option, - - #[serde(skip_serializing_if = "Option::is_none")] - pub timestamp: Option, - - #[serde(skip_serializing_if = "Option::is_none")] - pub user_properties: Option, - - #[serde(skip_serializing_if = "Vec::is_empty")] - #[serde(default)] - pub sources: Vec, - - #[serde(skip_serializing_if = "Option::is_none")] - pub messages: Option, -} - -#[derive(Debug, Clone, Serialize, Deserialize, Default)] -pub struct MessagesFilter { - #[serde(skip_serializing_if = "Option::is_none")] - pub from: Option, - - #[serde(skip_serializing_if = "Option::is_none")] - pub to: Option, -} - -#[derive(Debug, Clone, Serialize)] -#[serde(rename_all(serialize = "lowercase"))] -pub enum CommentPredictionsThreshold { - Auto, -} - -#[derive(Debug, Clone, Serialize)] -pub struct TriggerLabelThreshold { - pub name: Vec, - pub threshold: NotNan, -} - -#[derive(Debug, Clone, Serialize)] -pub struct GetCommentPredictionsRequest { - pub uids: Vec, - #[serde(skip_serializing_if = "Option::is_none")] - pub threshold: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub labels: Option>, -} - -#[derive(Debug, Clone, Serialize)] -pub(crate) struct GetRecentRequest<'a> { - pub limit: usize, - pub filter: &'a CommentFilter, - #[serde(skip_serializing_if = "Option::is_none")] - pub continuation: Option<&'a Continuation>, -} - -#[derive(Debug, Clone, Deserialize, Serialize, PartialEq, Eq, Hash)] -pub struct Continuation(pub String); - -#[derive(Debug, Clone, Deserialize)] -pub struct RecentCommentsPage { - pub results: Vec, - pub continuation: Option, -} - -#[derive(Debug, Clone, Deserialize, Serialize, PartialEq, Eq, Hash)] -pub struct GetLabellingsAfter(pub String); - -#[derive(Debug, Clone, Deserialize)] -pub struct GetAnnotationsResponse { - pub results: Vec, - #[serde(default)] - pub after: Option, -} - -#[derive(Debug, Clone, Deserialize)] -pub struct GetPredictionsResponse { - pub predictions: Vec, -} - -#[derive(Debug, Clone, Serialize)] -pub struct UpdateAnnotationsRequest<'a> { - #[serde(skip_serializing_if = "Option::is_none")] - pub labelling: Option<&'a [NewLabelling]>, - #[serde(skip_serializing_if = "Option::is_none")] - pub entities: Option<&'a NewEntities>, - #[serde(skip_serializing_if = "Option::is_none")] - pub moon_forms: Option<&'a [NewMoonForm]>, -} - -#[derive(Debug, Clone, Deserialize)] -pub struct CommentsIterPage { - pub comments: Vec, - pub continuation: Option, -} - -#[derive(Debug, Clone, Serialize)] -pub(crate) struct PutCommentsRequest { - pub comments: Vec, -} - -impl SplittableRequest for PutCommentsRequest { - fn split(self) -> impl Iterator { - self.comments.into_iter().map(|comment| Self { - comments: vec![comment], - }) - } - - fn count(&self) -> usize { - self.comments.len() - } -} - -#[derive(Default, Debug, Copy, Clone, Deserialize)] -pub struct PutCommentsResponse; - -impl ReducibleResponse for PutCommentsResponse {} - -#[derive(Debug, Clone, Serialize)] -pub(crate) struct SyncCommentsRequest { - pub comments: Vec, -} - -impl SplittableRequest for SyncCommentsRequest { - fn split(self) -> impl Iterator - where - Self: Sized, - { - self.comments.into_iter().map(|comment| Self { - comments: vec![comment], - }) - } - - fn count(&self) -> usize { - self.comments.len() - } -} - -#[derive(Debug, Clone, Deserialize, Default)] -pub struct SyncCommentsResponse { - pub new: usize, - pub updated: usize, - pub unchanged: usize, -} - -impl ReducibleResponse for SyncCommentsResponse { - fn empty() -> Self { - Self { - new: 0, - updated: 0, - unchanged: 0, - } - } - fn merge(self, b: Self) -> Self { - Self { - new: self.new + b.new, - updated: self.updated + b.updated, - unchanged: self.unchanged + b.unchanged, - } - } -} - -#[derive(Debug, Clone, Deserialize, Serialize, PartialEq)] -pub struct GetCommentResponse { - pub comment: Comment, -} - -#[derive(Debug, Clone, Deserialize, Serialize, PartialEq)] -pub struct Comment { - pub id: Id, - pub uid: Uid, - #[serde(skip_serializing_if = "Option::is_none")] - pub thread_id: Option, - pub timestamp: DateTime, - pub messages: Vec, - #[serde(skip_serializing_if = "PropertyMap::is_empty", default)] - pub user_properties: PropertyMap, - #[serde(skip_serializing_if = "Vec::is_empty", default)] - pub attachments: Vec, - pub created_at: DateTime, - - #[serde(default)] - pub has_annotations: bool, -} - -#[derive(Debug, Default, Clone, Deserialize, Serialize, PartialEq, Eq)] -pub struct NewComment { - pub id: Id, - #[serde(skip_serializing_if = "Option::is_none")] - pub thread_id: Option, - pub timestamp: DateTime, - pub messages: Vec, - #[serde(skip_serializing_if = "PropertyMap::is_empty", default)] - pub user_properties: PropertyMap, - #[serde(skip_serializing_if = "Vec::is_empty", default)] - pub attachments: Vec, -} - -#[derive(Debug, Default, Clone, Deserialize, Serialize, PartialEq, Eq)] -pub struct Message { - pub body: MessageBody, - - #[serde(skip_serializing_if = "Option::is_none")] - pub language: Option, - - #[serde(skip_serializing_if = "Option::is_none")] - pub subject: Option, - - #[serde(skip_serializing_if = "Option::is_none")] - pub signature: Option, - - #[serde(skip_serializing_if = "Option::is_none")] - pub from: Option, - - #[serde(skip_serializing_if = "Option::is_none")] - pub to: Option>, - - #[serde(skip_serializing_if = "Option::is_none")] - pub cc: Option>, - - #[serde(skip_serializing_if = "Option::is_none")] - pub bcc: Option>, - - #[serde(skip_serializing_if = "Option::is_none")] - pub sent_at: Option>, -} - -#[derive(Debug, Default, Clone, Deserialize, Serialize, PartialEq, Eq)] -pub struct MessageBody { - pub text: String, - #[serde(skip_serializing_if = "Option::is_none")] - pub translated_from: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub text_markup: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub translated_from_markup: Option, -} - -#[derive(Debug, Clone, Deserialize, Serialize, PartialEq, Eq)] -pub struct MessageSubject { - pub text: String, - #[serde(skip_serializing_if = "Option::is_none")] - pub translated_from: Option, -} - -#[derive(Debug, Clone, Deserialize, Serialize, PartialEq, Eq)] -pub struct MessageSignature { - pub text: String, - #[serde(skip_serializing_if = "Option::is_none")] - pub translated_from: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub text_markup: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub translated_from_markup: Option, -} - -#[derive(Debug, Clone, PartialEq, Deserialize, Serialize, Eq)] -pub enum Sentiment { - #[serde(rename = "positive")] - Positive, - - #[serde(rename = "negative")] - Negative, -} - -#[derive(Debug, Clone, Deserialize, Serialize, PartialEq, Eq)] -pub struct AttachmentReference(pub String); - -#[derive(Debug, Clone, PartialEq, Default, Eq)] -pub struct PropertyMap(HashMap); - -#[derive(Clone, Debug, PartialEq, Eq, Hash, Serialize, Deserialize)] -#[serde(untagged)] -pub enum PropertyValue { - String(String), - Number(NotNan), -} - -impl Deref for PropertyMap { - type Target = HashMap; - - fn deref(&self) -> &Self::Target { - &self.0 - } -} - -impl DerefMut for PropertyMap { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.0 - } -} - -impl PropertyMap { - #[inline] - pub fn new() -> Self { - Default::default() - } - - #[inline] - pub fn with_capacity(capacity: usize) -> Self { - PropertyMap(HashMap::with_capacity(capacity)) - } - - #[inline] - pub fn insert_number(&mut self, key: String, value: NotNan) { - self.0.insert(key, PropertyValue::Number(value)); - } - - #[inline] - pub fn insert_string(&mut self, key: String, value: String) { - self.0.insert(key, PropertyValue::String(value)); - } - - // Provided despite deref, for `skip_serializing_if`. - #[inline] - pub fn is_empty(&self) -> bool { - self.0.is_empty() - } -} - -const STRING_PROPERTY_PREFIX: &str = "string:"; -const NUMBER_PROPERTY_PREFIX: &str = "number:"; - -impl Serialize for PropertyMap { - fn serialize(&self, serializer: S) -> StdResult { - let mut state = serializer.serialize_map(Some(self.len()))?; - if self.0.is_empty() { - return state.end(); - } - - let mut full_name = String::with_capacity(32); - for (key, value) in &self.0 { - full_name.clear(); - match value { - PropertyValue::String(value) => { - if !value.trim().is_empty() { - full_name.push_str(STRING_PROPERTY_PREFIX); - full_name.push_str(key); - state.serialize_entry(&full_name, &value)?; - } - } - PropertyValue::Number(value) => { - full_name.push_str(NUMBER_PROPERTY_PREFIX); - full_name.push_str(key); - state.serialize_entry(&full_name, &value)?; - } - } - } - state.end() - } -} - -impl<'de> Deserialize<'de> for PropertyMap { - #[inline] - fn deserialize>(deserializer: D) -> StdResult { - deserializer.deserialize_any(PropertyMapVisitor) - } -} - -struct PropertyMapVisitor; -impl<'de> Visitor<'de> for PropertyMapVisitor { - type Value = PropertyMap; - - fn expecting(&self, formatter: &mut Formatter<'_>) -> FmtResult { - write!(formatter, "a user property map") - } - - #[inline] - fn visit_unit(self) -> StdResult { - Ok(PropertyMap::new()) - } - - fn visit_map(self, mut access: M) -> StdResult - where - M: MapAccess<'de>, - { - let mut values = PropertyMap::with_capacity(access.size_hint().unwrap_or(0)); - - while let Some(mut key) = access.next_key()? { - if strip_prefix(&mut key, STRING_PROPERTY_PREFIX) { - values.insert(key, PropertyValue::String(access.next_value()?)); - } else if strip_prefix(&mut key, NUMBER_PROPERTY_PREFIX) { - values.insert(key, PropertyValue::Number(access.next_value()?)); - } else { - return Err(M::Error::custom(format!( - "user property full name `{key}` has invalid \ - type prefix" - ))); - } - } - - Ok(values) - } -} - -#[derive(Debug, Clone, Deserialize, Serialize, PartialEq)] -pub struct AnnotatedComment { - pub comment: Comment, - #[serde(skip_serializing_if = "should_skip_serializing_labelling")] - pub labelling: Option>, - #[serde(skip_serializing_if = "should_skip_serializing_entities")] - pub entities: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub thread_properties: Option, - #[serde(skip_serializing_if = "should_skip_serializing_optional_vec", default)] - pub moon_forms: Option>, - #[serde(skip_serializing_if = "should_skip_serializing_optional_vec", default)] - pub label_properties: Option>, -} - -#[derive(Debug, Clone, Deserialize, Serialize, PartialEq, Eq)] -pub struct Prediction { - pub uid: Uid, - #[serde(skip_serializing_if = "should_skip_serializing_optional_vec")] - pub labels: Option>, - #[serde(skip_serializing_if = "should_skip_serializing_optional_vec")] - pub entities: Option>, -} - -pub fn get_default_labelling_group(labelling: &Option>) -> Option<&Labelling> { - labelling - .iter() - .flatten() - .find(|&labelling_group| labelling_group.is_default_group()) -} - -impl Labelling { - pub fn is_default_group(&self) -> bool { - self.group == *DEFAULT_LABEL_GROUP_NAME - } -} - -impl NewLabelling { - pub fn is_default_group(&self) -> bool { - self.group == *DEFAULT_LABEL_GROUP_NAME - } -} - -impl HasAnnotations for AnnotatedComment { - fn has_annotations(&self) -> bool { - let has_labels = self.labelling.iter().flatten().any(|labelling_group| { - !labelling_group.assigned.is_empty() || !labelling_group.dismissed.is_empty() - }); - let has_entities = self - .entities - .as_ref() - .map(|entities| !entities.assigned.is_empty() || !entities.dismissed.is_empty()) - .unwrap_or(false); - has_labels || has_entities || self.moon_forms.has_annotations() - } -} - -impl AnnotatedComment { - pub fn without_predictions(mut self) -> Self { - self.labelling = self.labelling.and_then(|mut labelling| { - if labelling.iter().all(|labelling_group| { - labelling_group.assigned.is_empty() && labelling_group.dismissed.is_empty() - }) { - None - } else { - for comment_labelling in &mut labelling { - comment_labelling.predicted = None; - } - Some(labelling) - } - }); - self.entities = self.entities.and_then(|mut entities| { - if entities.assigned.is_empty() && entities.dismissed.is_empty() { - None - } else { - entities.predicted = None; - Some(entities) - } - }); - self - } -} - -#[derive(Debug, Clone, Deserialize, Serialize, PartialEq, Eq)] -pub struct ThreadProperties { - duration: Option>, - response_time: Option>, - num_messages: u64, - thread_position: Option, - first_sender: Option, -} - -#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)] -#[serde(untagged)] -pub enum EitherLabelling { - Labelling(Vec), - LegacyLabelling(NewLegacyLabelling), -} - -impl EitherLabelling { - fn into_new_labellings(self) -> Vec { - match self { - EitherLabelling::Labelling(new_labelling_vec) => new_labelling_vec, - EitherLabelling::LegacyLabelling(new_legacy_labelling) => { - vec![NewLabelling { - group: DEFAULT_LABEL_GROUP_NAME.clone(), - assigned: new_legacy_labelling.assigned, - dismissed: new_legacy_labelling.dismissed, - }] - } - } - } -} - -impl From for Vec { - fn from(either_labelling: EitherLabelling) -> Vec { - either_labelling.into_new_labellings() - } -} - -impl HasAnnotations for EitherLabelling { - fn has_annotations(&self) -> bool { - match self { - EitherLabelling::Labelling(new_labelling) => { - new_labelling.iter().any(|labelling_group| { - labelling_group.assigned.is_some() || labelling_group.dismissed.is_some() - }) - } - EitherLabelling::LegacyLabelling(new_legacy_labelling) => { - new_legacy_labelling.assigned.is_some() || new_legacy_labelling.dismissed.is_some() - } - } - } -} - -#[derive(Debug, Clone, Deserialize, Serialize, PartialEq)] -pub struct NewAnnotatedComment { - pub comment: NewComment, - #[serde(skip_serializing_if = "Option::is_none")] - pub labelling: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub entities: Option, - #[serde(skip_serializing_if = "Option::is_none")] - pub audio_path: Option, - #[serde(skip_serializing_if = "should_skip_serializing_optional_vec", default)] - pub moon_forms: Option>, -} - -impl HasAnnotations for Option -where - T: HasAnnotations, -{ - fn has_annotations(&self) -> bool { - self.as_ref().is_some_and(HasAnnotations::has_annotations) - } -} - -impl HasAnnotations for Vec { - fn has_annotations(&self) -> bool { - self.iter().any(|form| !form.assigned.is_empty()) - } -} - -impl HasAnnotations for Vec { - fn has_annotations(&self) -> bool { - self.iter().any(|form| !form.assigned.is_empty()) - } -} - -impl NewAnnotatedComment { - pub fn has_annotations(&self) -> bool { - self.labelling.has_annotations() - || self.entities.has_annotations() - || self.moon_forms.has_annotations() - } -} - -#[derive(Debug, Clone, Deserialize, Serialize, PartialEq, Eq)] -pub struct Labelling { - pub group: LabelGroupName, - #[serde(skip_serializing_if = "Vec::is_empty", default)] - pub assigned: Vec