arthur-client 1.4.0__py3-none-any.whl → 1.4.1186__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- arthur_client/__version__.py +1 -0
- arthur_client/api_bindings/__init__.py +334 -0
- arthur_client/api_bindings/api/__init__.py +30 -0
- arthur_client/api_bindings/api/alert_rules_v1_api.py +1930 -0
- arthur_client/api_bindings/api/alerts_v1_api.py +1042 -0
- arthur_client/api_bindings/api/authorization_v1_api.py +3926 -0
- arthur_client/api_bindings/api/connector_schemas_v1_api.py +559 -0
- arthur_client/api_bindings/api/connectors_v1_api.py +2165 -0
- arthur_client/api_bindings/api/data_plane_associations_v1_api.py +1699 -0
- arthur_client/api_bindings/api/data_planes_v1_api.py +1832 -0
- arthur_client/api_bindings/api/data_retrieval_v1_api.py +2403 -0
- arthur_client/api_bindings/api/datasets_v1_api.py +4346 -0
- arthur_client/api_bindings/api/default_api.py +284 -0
- arthur_client/api_bindings/api/feature_flags_v1_api.py +284 -0
- arthur_client/api_bindings/api/groups_v1_api.py +2803 -0
- arthur_client/api_bindings/api/jobs_v1_api.py +3809 -0
- arthur_client/api_bindings/api/metric_functions_v1_api.py +285 -0
- arthur_client/api_bindings/api/metrics_v1_api.py +1297 -0
- arthur_client/api_bindings/api/models_v1_api.py +2739 -0
- arthur_client/api_bindings/api/o_auth_v1_api.py +284 -0
- arthur_client/api_bindings/api/organizations_v1_api.py +827 -0
- arthur_client/api_bindings/api/projects_v1_api.py +1541 -0
- arthur_client/api_bindings/api/registration_v1_api.py +319 -0
- arthur_client/api_bindings/api/roles_v1_api.py +307 -0
- arthur_client/api_bindings/api/tasks_v1_api.py +3173 -0
- arthur_client/api_bindings/api/upsolve_v1_api.py +320 -0
- arthur_client/api_bindings/api/users_v1_api.py +2930 -0
- arthur_client/api_bindings/api/webhooks_v1_api.py +1843 -0
- arthur_client/api_bindings/api/workspaces_v1_api.py +1511 -0
- arthur_client/api_bindings/api_client.py +797 -0
- arthur_client/api_bindings/api_response.py +21 -0
- arthur_client/api_bindings/configuration.py +458 -0
- arthur_client/api_bindings/docs/AggregationMetricType.md +12 -0
- arthur_client/api_bindings/docs/AggregationSpec.md +31 -0
- arthur_client/api_bindings/docs/AggregationSpecSchema.md +34 -0
- arthur_client/api_bindings/docs/AggregationSpecSchemaInitArgsInner.md +39 -0
- arthur_client/api_bindings/docs/Alert.md +44 -0
- arthur_client/api_bindings/docs/AlertBound.md +12 -0
- arthur_client/api_bindings/docs/AlertCheckJobSpec.md +32 -0
- arthur_client/api_bindings/docs/AlertRule.md +41 -0
- arthur_client/api_bindings/docs/AlertRuleInterval.md +30 -0
- arthur_client/api_bindings/docs/AlertRuleNotificationWebhook.md +30 -0
- arthur_client/api_bindings/docs/AlertRuleSQLValidationResp.md +32 -0
- arthur_client/api_bindings/docs/AlertRuleSort.md +12 -0
- arthur_client/api_bindings/docs/AlertRulesV1Api.md +514 -0
- arthur_client/api_bindings/docs/AlertSort.md +12 -0
- arthur_client/api_bindings/docs/AlertWebhookCalled.md +31 -0
- arthur_client/api_bindings/docs/AlertsV1Api.md +268 -0
- arthur_client/api_bindings/docs/AuthorizationV1Api.md +1039 -0
- arthur_client/api_bindings/docs/AvailableDataset.md +39 -0
- arthur_client/api_bindings/docs/AvailableDatasetsSort.md +14 -0
- arthur_client/api_bindings/docs/BadRequestError.md +29 -0
- arthur_client/api_bindings/docs/BaseRole.md +31 -0
- arthur_client/api_bindings/docs/BoundMember.md +30 -0
- arthur_client/api_bindings/docs/BoundMemberKind.md +12 -0
- arthur_client/api_bindings/docs/BoundResource.md +31 -0
- arthur_client/api_bindings/docs/BoundResourceKind.md +16 -0
- arthur_client/api_bindings/docs/BoundRole.md +30 -0
- arthur_client/api_bindings/docs/Config.md +37 -0
- arthur_client/api_bindings/docs/ConflictError.md +29 -0
- arthur_client/api_bindings/docs/ConnectorCheckJobSpec.md +30 -0
- arthur_client/api_bindings/docs/ConnectorCheckOutcome.md +12 -0
- arthur_client/api_bindings/docs/ConnectorCheckResult.md +30 -0
- arthur_client/api_bindings/docs/ConnectorFieldDataType.md +16 -0
- arthur_client/api_bindings/docs/ConnectorPaginationOptions.md +30 -0
- arthur_client/api_bindings/docs/ConnectorSchemasV1Api.md +161 -0
- arthur_client/api_bindings/docs/ConnectorSpec.md +39 -0
- arthur_client/api_bindings/docs/ConnectorSpecField.md +30 -0
- arthur_client/api_bindings/docs/ConnectorSpecFieldWithMetadata.md +32 -0
- arthur_client/api_bindings/docs/ConnectorSpecSchema.md +34 -0
- arthur_client/api_bindings/docs/ConnectorSpecSchemaField.md +34 -0
- arthur_client/api_bindings/docs/ConnectorType.md +18 -0
- arthur_client/api_bindings/docs/ConnectorsSort.md +14 -0
- arthur_client/api_bindings/docs/ConnectorsV1Api.md +586 -0
- arthur_client/api_bindings/docs/CreateModelLinkTaskJobSpec.md +32 -0
- arthur_client/api_bindings/docs/CreateModelTaskJobSpec.md +33 -0
- arthur_client/api_bindings/docs/CreatedAlerts.md +30 -0
- arthur_client/api_bindings/docs/Credentials.md +32 -0
- arthur_client/api_bindings/docs/DType.md +28 -0
- arthur_client/api_bindings/docs/DataPlane.md +37 -0
- arthur_client/api_bindings/docs/DataPlaneAssociation.md +35 -0
- arthur_client/api_bindings/docs/DataPlaneAssociationSort.md +12 -0
- arthur_client/api_bindings/docs/DataPlaneAssociationsV1Api.md +443 -0
- arthur_client/api_bindings/docs/DataPlaneCapabilities.md +29 -0
- arthur_client/api_bindings/docs/DataPlaneSort.md +14 -0
- arthur_client/api_bindings/docs/DataPlanesV1Api.md +502 -0
- arthur_client/api_bindings/docs/DataResultFilter.md +31 -0
- arthur_client/api_bindings/docs/DataResultFilterOp.md +24 -0
- arthur_client/api_bindings/docs/DataRetrievalData.md +30 -0
- arthur_client/api_bindings/docs/DataRetrievalOperation.md +32 -0
- arthur_client/api_bindings/docs/DataRetrievalStatus.md +14 -0
- arthur_client/api_bindings/docs/DataRetrievalV1Api.md +656 -0
- arthur_client/api_bindings/docs/Dataset.md +39 -0
- arthur_client/api_bindings/docs/DatasetColumn.md +31 -0
- arthur_client/api_bindings/docs/DatasetConnector.md +31 -0
- arthur_client/api_bindings/docs/DatasetJoinKind.md +16 -0
- arthur_client/api_bindings/docs/DatasetJoinSpec.md +31 -0
- arthur_client/api_bindings/docs/DatasetListType.md +32 -0
- arthur_client/api_bindings/docs/DatasetLocator.md +29 -0
- arthur_client/api_bindings/docs/DatasetLocatorField.md +30 -0
- arthur_client/api_bindings/docs/DatasetLocatorFieldDataType.md +16 -0
- arthur_client/api_bindings/docs/DatasetLocatorSchema.md +29 -0
- arthur_client/api_bindings/docs/DatasetLocatorSchemaField.md +33 -0
- arthur_client/api_bindings/docs/DatasetObjectType.md +32 -0
- arthur_client/api_bindings/docs/DatasetReference.md +31 -0
- arthur_client/api_bindings/docs/DatasetScalarType.md +32 -0
- arthur_client/api_bindings/docs/DatasetSchema.md +31 -0
- arthur_client/api_bindings/docs/DatasetsSort.md +12 -0
- arthur_client/api_bindings/docs/DatasetsV1Api.md +1175 -0
- arthur_client/api_bindings/docs/DefaultApi.md +74 -0
- arthur_client/api_bindings/docs/Definition.md +34 -0
- arthur_client/api_bindings/docs/DeleteGroupMembership.md +29 -0
- arthur_client/api_bindings/docs/DeleteModelTaskJobSpec.md +30 -0
- arthur_client/api_bindings/docs/Dimension.md +30 -0
- arthur_client/api_bindings/docs/ExampleConfig.md +30 -0
- arthur_client/api_bindings/docs/ExamplesConfig.md +30 -0
- arthur_client/api_bindings/docs/ExtendedRole.md +39 -0
- arthur_client/api_bindings/docs/FeatureFlagsV1Api.md +73 -0
- arthur_client/api_bindings/docs/FetchDataJobSpec.md +36 -0
- arthur_client/api_bindings/docs/FetchModelTaskJobSpec.md +30 -0
- arthur_client/api_bindings/docs/GenerateMetricsSpecRequest.md +29 -0
- arthur_client/api_bindings/docs/Group.md +35 -0
- arthur_client/api_bindings/docs/GroupMembership.md +33 -0
- arthur_client/api_bindings/docs/GroupSort.md +14 -0
- arthur_client/api_bindings/docs/GroupsV1Api.md +756 -0
- arthur_client/api_bindings/docs/HTTPValidationError.md +29 -0
- arthur_client/api_bindings/docs/HealthStatus.md +29 -0
- arthur_client/api_bindings/docs/InfinitePagination.md +30 -0
- arthur_client/api_bindings/docs/InfiniteResourceListAlert.md +30 -0
- arthur_client/api_bindings/docs/InfiniteResourceListJob.md +30 -0
- arthur_client/api_bindings/docs/InternalServerError.md +29 -0
- arthur_client/api_bindings/docs/IntervalUnit.md +16 -0
- arthur_client/api_bindings/docs/InviteNewUser.md +31 -0
- arthur_client/api_bindings/docs/Items.md +34 -0
- arthur_client/api_bindings/docs/Items1.md +31 -0
- arthur_client/api_bindings/docs/Job.md +48 -0
- arthur_client/api_bindings/docs/JobDequeueParameters.md +29 -0
- arthur_client/api_bindings/docs/JobError.md +29 -0
- arthur_client/api_bindings/docs/JobErrors.md +29 -0
- arthur_client/api_bindings/docs/JobKind.md +34 -0
- arthur_client/api_bindings/docs/JobLog.md +31 -0
- arthur_client/api_bindings/docs/JobLogLevel.md +18 -0
- arthur_client/api_bindings/docs/JobLogs.md +29 -0
- arthur_client/api_bindings/docs/JobPriority.md +16 -0
- arthur_client/api_bindings/docs/JobRun.md +34 -0
- arthur_client/api_bindings/docs/JobSpec.md +49 -0
- arthur_client/api_bindings/docs/JobState.md +18 -0
- arthur_client/api_bindings/docs/JobTrigger.md +14 -0
- arthur_client/api_bindings/docs/JobsBatch.md +29 -0
- arthur_client/api_bindings/docs/JobsSort.md +14 -0
- arthur_client/api_bindings/docs/JobsV1Api.md +960 -0
- arthur_client/api_bindings/docs/JoinedDataset.md +32 -0
- arthur_client/api_bindings/docs/KeywordsConfig.md +29 -0
- arthur_client/api_bindings/docs/ListDatasetsJobSpec.md +30 -0
- arthur_client/api_bindings/docs/ListType.md +29 -0
- arthur_client/api_bindings/docs/MetricFunctionsV1Api.md +81 -0
- arthur_client/api_bindings/docs/MetricsArgSpec.md +30 -0
- arthur_client/api_bindings/docs/MetricsCalculationJobSpec.md +32 -0
- arthur_client/api_bindings/docs/MetricsColumnListParameterSchema.md +37 -0
- arthur_client/api_bindings/docs/MetricsColumnListParameterSchemaAllowedColumnTypesInner.md +31 -0
- arthur_client/api_bindings/docs/MetricsColumnParameterSchema.md +37 -0
- arthur_client/api_bindings/docs/MetricsDatasetParameterSchema.md +34 -0
- arthur_client/api_bindings/docs/MetricsLiteralParameterSchema.md +34 -0
- arthur_client/api_bindings/docs/MetricsQueryResult.md +29 -0
- arthur_client/api_bindings/docs/MetricsResultFilterOp.md +24 -0
- arthur_client/api_bindings/docs/MetricsUpload.md +30 -0
- arthur_client/api_bindings/docs/MetricsUploadMetricsInner.md +31 -0
- arthur_client/api_bindings/docs/MetricsUploadResult.md +32 -0
- arthur_client/api_bindings/docs/MetricsV1Api.md +346 -0
- arthur_client/api_bindings/docs/MetricsVersion.md +34 -0
- arthur_client/api_bindings/docs/MetricsVersionsSort.md +16 -0
- arthur_client/api_bindings/docs/Model.md +41 -0
- arthur_client/api_bindings/docs/ModelMetricSpec.md +30 -0
- arthur_client/api_bindings/docs/ModelMetricsSchedule.md +32 -0
- arthur_client/api_bindings/docs/ModelProblemType.md +18 -0
- arthur_client/api_bindings/docs/ModelsSort.md +14 -0
- arthur_client/api_bindings/docs/ModelsV1Api.md +742 -0
- arthur_client/api_bindings/docs/NewRuleRequest.md +33 -0
- arthur_client/api_bindings/docs/NotFoundError.md +29 -0
- arthur_client/api_bindings/docs/NumericMetric.md +30 -0
- arthur_client/api_bindings/docs/NumericPoint.md +30 -0
- arthur_client/api_bindings/docs/NumericTimeSeries.md +30 -0
- arthur_client/api_bindings/docs/OAuthV1Api.md +73 -0
- arthur_client/api_bindings/docs/ObjectType.md +29 -0
- arthur_client/api_bindings/docs/ObjectValue.md +34 -0
- arthur_client/api_bindings/docs/Organization.md +32 -0
- arthur_client/api_bindings/docs/OrganizationsV1Api.md +234 -0
- arthur_client/api_bindings/docs/PIIConfig.md +31 -0
- arthur_client/api_bindings/docs/Pagination.md +32 -0
- arthur_client/api_bindings/docs/PatchAlertRule.md +36 -0
- arthur_client/api_bindings/docs/PatchConnectorSpec.md +31 -0
- arthur_client/api_bindings/docs/PatchDataPlane.md +31 -0
- arthur_client/api_bindings/docs/PatchDataPlaneCapabilities.md +29 -0
- arthur_client/api_bindings/docs/PatchDataset.md +31 -0
- arthur_client/api_bindings/docs/PatchDatasetLocator.md +29 -0
- arthur_client/api_bindings/docs/PatchGroup.md +30 -0
- arthur_client/api_bindings/docs/PatchJob.md +29 -0
- arthur_client/api_bindings/docs/PatchModel.md +31 -0
- arthur_client/api_bindings/docs/PatchOrganization.md +29 -0
- arthur_client/api_bindings/docs/PatchProject.md +30 -0
- arthur_client/api_bindings/docs/PatchServiceAccountUser.md +29 -0
- arthur_client/api_bindings/docs/PatchTaskRequest.md +32 -0
- arthur_client/api_bindings/docs/PatchUser.md +32 -0
- arthur_client/api_bindings/docs/PatchWebhook.md +32 -0
- arthur_client/api_bindings/docs/PatchWorkspace.md +29 -0
- arthur_client/api_bindings/docs/Permission.md +31 -0
- arthur_client/api_bindings/docs/PermissionName.md +272 -0
- arthur_client/api_bindings/docs/PermissionRequestItem.md +31 -0
- arthur_client/api_bindings/docs/PermissionResponseItem.md +32 -0
- arthur_client/api_bindings/docs/PermissionsRequest.md +29 -0
- arthur_client/api_bindings/docs/PermissionsResponse.md +29 -0
- arthur_client/api_bindings/docs/PostAlert.md +37 -0
- arthur_client/api_bindings/docs/PostAlertRule.md +36 -0
- arthur_client/api_bindings/docs/PostAlerts.md +29 -0
- arthur_client/api_bindings/docs/PostConnectorSpec.md +33 -0
- arthur_client/api_bindings/docs/PostDataPlane.md +31 -0
- arthur_client/api_bindings/docs/PostDataPlaneAssociation.md +30 -0
- arthur_client/api_bindings/docs/PostDataRetrievalOperation.md +32 -0
- arthur_client/api_bindings/docs/PostDataset.md +33 -0
- arthur_client/api_bindings/docs/PostDatasetJoinSpec.md +33 -0
- arthur_client/api_bindings/docs/PostEndUser.md +33 -0
- arthur_client/api_bindings/docs/PostGlobalRoleBinding.md +31 -0
- arthur_client/api_bindings/docs/PostGroup.md +30 -0
- arthur_client/api_bindings/docs/PostGroupMembership.md +29 -0
- arthur_client/api_bindings/docs/PostJob.md +34 -0
- arthur_client/api_bindings/docs/PostJobBatch.md +29 -0
- arthur_client/api_bindings/docs/PostJobKind.md +21 -0
- arthur_client/api_bindings/docs/PostJobSpec.md +37 -0
- arthur_client/api_bindings/docs/PostLinkTaskRequest.md +31 -0
- arthur_client/api_bindings/docs/PostMetricsQuery.md +33 -0
- arthur_client/api_bindings/docs/PostMetricsQueryResultFilter.md +31 -0
- arthur_client/api_bindings/docs/PostMetricsQueryResultFilterAndGroup.md +29 -0
- arthur_client/api_bindings/docs/PostMetricsQueryResultFilterAndGroupAndInner.md +33 -0
- arthur_client/api_bindings/docs/PostMetricsQueryResultFilterOrGroup.md +29 -0
- arthur_client/api_bindings/docs/PostMetricsQueryResultFilterOrGroupOrInner.md +33 -0
- arthur_client/api_bindings/docs/PostMetricsQueryTimeRange.md +30 -0
- arthur_client/api_bindings/docs/PostMetricsVersions.md +30 -0
- arthur_client/api_bindings/docs/PostModel.md +33 -0
- arthur_client/api_bindings/docs/PostProject.md +30 -0
- arthur_client/api_bindings/docs/PostRoleBinding.md +31 -0
- arthur_client/api_bindings/docs/PostServiceAccount.md +29 -0
- arthur_client/api_bindings/docs/PostTaskRequest.md +32 -0
- arthur_client/api_bindings/docs/PostTaskValidationAPIKey.md +31 -0
- arthur_client/api_bindings/docs/PostUpsolveTenant.md +30 -0
- arthur_client/api_bindings/docs/PostWebhook.md +32 -0
- arthur_client/api_bindings/docs/PostWorkspace.md +29 -0
- arthur_client/api_bindings/docs/Project.md +35 -0
- arthur_client/api_bindings/docs/ProjectBoundResourceMetadata.md +30 -0
- arthur_client/api_bindings/docs/ProjectSort.md +14 -0
- arthur_client/api_bindings/docs/ProjectsV1Api.md +420 -0
- arthur_client/api_bindings/docs/PutAvailableDataset.md +33 -0
- arthur_client/api_bindings/docs/PutAvailableDatasets.md +29 -0
- arthur_client/api_bindings/docs/PutDatasetSchema.md +30 -0
- arthur_client/api_bindings/docs/PutJobState.md +29 -0
- arthur_client/api_bindings/docs/PutModelMetricSpec.md +29 -0
- arthur_client/api_bindings/docs/PutModelMetricsSchedule.md +31 -0
- arthur_client/api_bindings/docs/PutRetrievedData.md +29 -0
- arthur_client/api_bindings/docs/PutTaskConnectionInfo.md +30 -0
- arthur_client/api_bindings/docs/PutTaskStateCacheRequest.md +29 -0
- arthur_client/api_bindings/docs/RegenerateTaskValidationKeyJobSpec.md +30 -0
- arthur_client/api_bindings/docs/RegexConfig.md +29 -0
- arthur_client/api_bindings/docs/RegisterUser.md +29 -0
- arthur_client/api_bindings/docs/RegistrationV1Api.md +80 -0
- arthur_client/api_bindings/docs/ResourceKind.md +40 -0
- arthur_client/api_bindings/docs/ResourceListAggregationSpecSchema.md +30 -0
- arthur_client/api_bindings/docs/ResourceListAlertRule.md +30 -0
- arthur_client/api_bindings/docs/ResourceListAvailableDataset.md +30 -0
- arthur_client/api_bindings/docs/ResourceListConnectorSpec.md +30 -0
- arthur_client/api_bindings/docs/ResourceListConnectorType.md +30 -0
- arthur_client/api_bindings/docs/ResourceListDataPlane.md +30 -0
- arthur_client/api_bindings/docs/ResourceListDataPlaneAssociation.md +30 -0
- arthur_client/api_bindings/docs/ResourceListDataset.md +30 -0
- arthur_client/api_bindings/docs/ResourceListGroup.md +30 -0
- arthur_client/api_bindings/docs/ResourceListGroupMembership.md +30 -0
- arthur_client/api_bindings/docs/ResourceListJobError.md +30 -0
- arthur_client/api_bindings/docs/ResourceListJobLog.md +30 -0
- arthur_client/api_bindings/docs/ResourceListJobRun.md +30 -0
- arthur_client/api_bindings/docs/ResourceListMetricsVersion.md +30 -0
- arthur_client/api_bindings/docs/ResourceListModel.md +30 -0
- arthur_client/api_bindings/docs/ResourceListPermission.md +30 -0
- arthur_client/api_bindings/docs/ResourceListProject.md +30 -0
- arthur_client/api_bindings/docs/ResourceListRole.md +30 -0
- arthur_client/api_bindings/docs/ResourceListRoleBinding.md +30 -0
- arthur_client/api_bindings/docs/ResourceListUser.md +30 -0
- arthur_client/api_bindings/docs/ResourceListWebhook.md +30 -0
- arthur_client/api_bindings/docs/ResourceListWorkspace.md +30 -0
- arthur_client/api_bindings/docs/ResultFilter.md +34 -0
- arthur_client/api_bindings/docs/Role.md +39 -0
- arthur_client/api_bindings/docs/RoleBinding.md +36 -0
- arthur_client/api_bindings/docs/RoleSort.md +14 -0
- arthur_client/api_bindings/docs/RolesV1Api.md +87 -0
- arthur_client/api_bindings/docs/RuleResponse.md +38 -0
- arthur_client/api_bindings/docs/RuleResponseConfig.md +37 -0
- arthur_client/api_bindings/docs/RuleScope.md +12 -0
- arthur_client/api_bindings/docs/RuleType.md +26 -0
- arthur_client/api_bindings/docs/ScalarType.md +29 -0
- arthur_client/api_bindings/docs/ScheduleJobsJobSpec.md +31 -0
- arthur_client/api_bindings/docs/SchemaInspectionJobSpec.md +31 -0
- arthur_client/api_bindings/docs/ScopeSchemaTag.md +26 -0
- arthur_client/api_bindings/docs/SensitiveDataPlane.md +39 -0
- arthur_client/api_bindings/docs/SensitiveUser.md +41 -0
- arthur_client/api_bindings/docs/ServiceAccountCredentials.md +30 -0
- arthur_client/api_bindings/docs/SketchMetric.md +30 -0
- arthur_client/api_bindings/docs/SketchPoint.md +30 -0
- arthur_client/api_bindings/docs/SketchTimeSeries.md +30 -0
- arthur_client/api_bindings/docs/SortOrder.md +12 -0
- arthur_client/api_bindings/docs/TaskConnectionInfo.md +32 -0
- arthur_client/api_bindings/docs/TaskMutationResponse.md +29 -0
- arthur_client/api_bindings/docs/TaskReadResponse.md +31 -0
- arthur_client/api_bindings/docs/TaskResponse.md +33 -0
- arthur_client/api_bindings/docs/TaskValidationAPIKey.md +31 -0
- arthur_client/api_bindings/docs/TaskValidationKeyRegenerationResponse.md +29 -0
- arthur_client/api_bindings/docs/TasksV1Api.md +892 -0
- arthur_client/api_bindings/docs/ToxicityConfig.md +29 -0
- arthur_client/api_bindings/docs/UpdateModelTaskRulesJobSpec.md +34 -0
- arthur_client/api_bindings/docs/UpsolveToken.md +29 -0
- arthur_client/api_bindings/docs/UpsolveV1Api.md +88 -0
- arthur_client/api_bindings/docs/User.md +40 -0
- arthur_client/api_bindings/docs/UserCredentials.md +29 -0
- arthur_client/api_bindings/docs/UserServiceAccountCredentials.md +41 -0
- arthur_client/api_bindings/docs/UserSort.md +16 -0
- arthur_client/api_bindings/docs/UserType.md +14 -0
- arthur_client/api_bindings/docs/UsersV1Api.md +810 -0
- arthur_client/api_bindings/docs/ValidateAlertRuleQueryReq.md +29 -0
- arthur_client/api_bindings/docs/ValidationError.md +31 -0
- arthur_client/api_bindings/docs/ValidationErrorLocInner.md +28 -0
- arthur_client/api_bindings/docs/Webhook.md +37 -0
- arthur_client/api_bindings/docs/WebhookResponse.md +30 -0
- arthur_client/api_bindings/docs/WebhookResult.md +30 -0
- arthur_client/api_bindings/docs/WebhookSort.md +14 -0
- arthur_client/api_bindings/docs/WebhooksV1Api.md +503 -0
- arthur_client/api_bindings/docs/Workspace.md +33 -0
- arthur_client/api_bindings/docs/WorkspaceSort.md +14 -0
- arthur_client/api_bindings/docs/WorkspacesV1Api.md +416 -0
- arthur_client/api_bindings/exceptions.py +199 -0
- arthur_client/api_bindings/models/__init__.py +292 -0
- arthur_client/api_bindings/models/aggregation_metric_type.py +37 -0
- arthur_client/api_bindings/models/aggregation_spec.py +106 -0
- arthur_client/api_bindings/models/aggregation_spec_schema.py +113 -0
- arthur_client/api_bindings/models/aggregation_spec_schema_init_args_inner.py +164 -0
- arthur_client/api_bindings/models/alert.py +143 -0
- arthur_client/api_bindings/models/alert_bound.py +37 -0
- arthur_client/api_bindings/models/alert_check_job_spec.py +104 -0
- arthur_client/api_bindings/models/alert_rule.py +139 -0
- arthur_client/api_bindings/models/alert_rule_interval.py +90 -0
- arthur_client/api_bindings/models/alert_rule_notification_webhook.py +89 -0
- arthur_client/api_bindings/models/alert_rule_sort.py +37 -0
- arthur_client/api_bindings/models/alert_rule_sql_validation_resp.py +93 -0
- arthur_client/api_bindings/models/alert_sort.py +37 -0
- arthur_client/api_bindings/models/alert_webhook_called.py +95 -0
- arthur_client/api_bindings/models/available_dataset.py +151 -0
- arthur_client/api_bindings/models/available_datasets_sort.py +38 -0
- arthur_client/api_bindings/models/bad_request_error.py +87 -0
- arthur_client/api_bindings/models/base_role.py +96 -0
- arthur_client/api_bindings/models/bound_member.py +89 -0
- arthur_client/api_bindings/models/bound_member_kind.py +37 -0
- arthur_client/api_bindings/models/bound_resource.py +100 -0
- arthur_client/api_bindings/models/bound_resource_kind.py +39 -0
- arthur_client/api_bindings/models/bound_role.py +89 -0
- arthur_client/api_bindings/models/config.py +185 -0
- arthur_client/api_bindings/models/conflict_error.py +87 -0
- arthur_client/api_bindings/models/connector_check_job_spec.py +99 -0
- arthur_client/api_bindings/models/connector_check_outcome.py +37 -0
- arthur_client/api_bindings/models/connector_check_result.py +95 -0
- arthur_client/api_bindings/models/connector_field_data_type.py +39 -0
- arthur_client/api_bindings/models/connector_pagination_options.py +90 -0
- arthur_client/api_bindings/models/connector_spec.py +135 -0
- arthur_client/api_bindings/models/connector_spec_field.py +89 -0
- arthur_client/api_bindings/models/connector_spec_field_with_metadata.py +94 -0
- arthur_client/api_bindings/models/connector_spec_schema.py +111 -0
- arthur_client/api_bindings/models/connector_spec_schema_field.py +103 -0
- arthur_client/api_bindings/models/connector_type.py +40 -0
- arthur_client/api_bindings/models/connectors_sort.py +38 -0
- arthur_client/api_bindings/models/create_model_link_task_job_spec.py +108 -0
- arthur_client/api_bindings/models/create_model_task_job_spec.py +118 -0
- arthur_client/api_bindings/models/created_alerts.py +110 -0
- arthur_client/api_bindings/models/credentials.py +134 -0
- arthur_client/api_bindings/models/d_type.py +45 -0
- arthur_client/api_bindings/models/data_plane.py +113 -0
- arthur_client/api_bindings/models/data_plane_association.py +118 -0
- arthur_client/api_bindings/models/data_plane_association_sort.py +37 -0
- arthur_client/api_bindings/models/data_plane_capabilities.py +87 -0
- arthur_client/api_bindings/models/data_plane_sort.py +38 -0
- arthur_client/api_bindings/models/data_result_filter.py +97 -0
- arthur_client/api_bindings/models/data_result_filter_op.py +43 -0
- arthur_client/api_bindings/models/data_retrieval_data.py +94 -0
- arthur_client/api_bindings/models/data_retrieval_operation.py +103 -0
- arthur_client/api_bindings/models/data_retrieval_status.py +38 -0
- arthur_client/api_bindings/models/dataset.py +145 -0
- arthur_client/api_bindings/models/dataset_column.py +95 -0
- arthur_client/api_bindings/models/dataset_connector.py +92 -0
- arthur_client/api_bindings/models/dataset_join_kind.py +39 -0
- arthur_client/api_bindings/models/dataset_join_spec.py +99 -0
- arthur_client/api_bindings/models/dataset_list_type.py +105 -0
- arthur_client/api_bindings/models/dataset_locator.py +95 -0
- arthur_client/api_bindings/models/dataset_locator_field.py +89 -0
- arthur_client/api_bindings/models/dataset_locator_field_data_type.py +39 -0
- arthur_client/api_bindings/models/dataset_locator_schema.py +95 -0
- arthur_client/api_bindings/models/dataset_locator_schema_field.py +101 -0
- arthur_client/api_bindings/models/dataset_object_type.py +114 -0
- arthur_client/api_bindings/models/dataset_reference.py +97 -0
- arthur_client/api_bindings/models/dataset_scalar_type.py +100 -0
- arthur_client/api_bindings/models/dataset_schema.py +101 -0
- arthur_client/api_bindings/models/datasets_sort.py +37 -0
- arthur_client/api_bindings/models/definition.py +149 -0
- arthur_client/api_bindings/models/delete_group_membership.py +87 -0
- arthur_client/api_bindings/models/delete_model_task_job_spec.py +99 -0
- arthur_client/api_bindings/models/dimension.py +89 -0
- arthur_client/api_bindings/models/example_config.py +89 -0
- arthur_client/api_bindings/models/examples_config.py +102 -0
- arthur_client/api_bindings/models/extended_role.py +129 -0
- arthur_client/api_bindings/models/fetch_data_job_spec.py +134 -0
- arthur_client/api_bindings/models/fetch_model_task_job_spec.py +99 -0
- arthur_client/api_bindings/models/generate_metrics_spec_request.py +87 -0
- arthur_client/api_bindings/models/group.py +105 -0
- arthur_client/api_bindings/models/group_membership.py +100 -0
- arthur_client/api_bindings/models/group_sort.py +38 -0
- arthur_client/api_bindings/models/health_status.py +87 -0
- arthur_client/api_bindings/models/http_validation_error.py +95 -0
- arthur_client/api_bindings/models/infinite_pagination.py +89 -0
- arthur_client/api_bindings/models/infinite_resource_list_alert.py +101 -0
- arthur_client/api_bindings/models/infinite_resource_list_job.py +101 -0
- arthur_client/api_bindings/models/internal_server_error.py +87 -0
- arthur_client/api_bindings/models/interval_unit.py +39 -0
- arthur_client/api_bindings/models/invite_new_user.py +105 -0
- arthur_client/api_bindings/models/items.py +151 -0
- arthur_client/api_bindings/models/items1.py +151 -0
- arthur_client/api_bindings/models/job.py +178 -0
- arthur_client/api_bindings/models/job_dequeue_parameters.py +87 -0
- arthur_client/api_bindings/models/job_error.py +87 -0
- arthur_client/api_bindings/models/job_errors.py +95 -0
- arthur_client/api_bindings/models/job_kind.py +48 -0
- arthur_client/api_bindings/models/job_log.py +93 -0
- arthur_client/api_bindings/models/job_log_level.py +40 -0
- arthur_client/api_bindings/models/job_logs.py +95 -0
- arthur_client/api_bindings/models/job_priority.py +39 -0
- arthur_client/api_bindings/models/job_run.py +104 -0
- arthur_client/api_bindings/models/job_spec.py +299 -0
- arthur_client/api_bindings/models/job_state.py +40 -0
- arthur_client/api_bindings/models/job_trigger.py +38 -0
- arthur_client/api_bindings/models/jobs_batch.py +95 -0
- arthur_client/api_bindings/models/jobs_sort.py +38 -0
- arthur_client/api_bindings/models/joined_dataset.py +98 -0
- arthur_client/api_bindings/models/keywords_config.py +87 -0
- arthur_client/api_bindings/models/list_datasets_job_spec.py +99 -0
- arthur_client/api_bindings/models/list_type.py +93 -0
- arthur_client/api_bindings/models/metrics_arg_spec.py +94 -0
- arthur_client/api_bindings/models/metrics_calculation_job_spec.py +104 -0
- arthur_client/api_bindings/models/metrics_column_list_parameter_schema.py +127 -0
- arthur_client/api_bindings/models/metrics_column_list_parameter_schema_allowed_column_types_inner.py +151 -0
- arthur_client/api_bindings/models/metrics_column_parameter_schema.py +127 -0
- arthur_client/api_bindings/models/metrics_dataset_parameter_schema.py +113 -0
- arthur_client/api_bindings/models/metrics_literal_parameter_schema.py +108 -0
- arthur_client/api_bindings/models/metrics_query_result.py +87 -0
- arthur_client/api_bindings/models/metrics_result_filter_op.py +43 -0
- arthur_client/api_bindings/models/metrics_upload.py +95 -0
- arthur_client/api_bindings/models/metrics_upload_metrics_inner.py +134 -0
- arthur_client/api_bindings/models/metrics_upload_result.py +93 -0
- arthur_client/api_bindings/models/metrics_version.py +98 -0
- arthur_client/api_bindings/models/metrics_versions_sort.py +39 -0
- arthur_client/api_bindings/models/model.py +153 -0
- arthur_client/api_bindings/models/model_metric_spec.py +97 -0
- arthur_client/api_bindings/models/model_metrics_schedule.py +98 -0
- arthur_client/api_bindings/models/model_problem_type.py +40 -0
- arthur_client/api_bindings/models/models_sort.py +38 -0
- arthur_client/api_bindings/models/new_rule_request.py +104 -0
- arthur_client/api_bindings/models/not_found_error.py +87 -0
- arthur_client/api_bindings/models/numeric_metric.py +97 -0
- arthur_client/api_bindings/models/numeric_point.py +90 -0
- arthur_client/api_bindings/models/numeric_time_series.py +105 -0
- arthur_client/api_bindings/models/object_type.py +102 -0
- arthur_client/api_bindings/models/object_value.py +151 -0
- arthur_client/api_bindings/models/organization.py +94 -0
- arthur_client/api_bindings/models/pagination.py +93 -0
- arthur_client/api_bindings/models/patch_alert_rule.py +146 -0
- arthur_client/api_bindings/models/patch_connector_spec.py +109 -0
- arthur_client/api_bindings/models/patch_data_plane.py +110 -0
- arthur_client/api_bindings/models/patch_data_plane_capabilities.py +92 -0
- arthur_client/api_bindings/models/patch_dataset.py +111 -0
- arthur_client/api_bindings/models/patch_dataset_locator.py +100 -0
- arthur_client/api_bindings/models/patch_group.py +99 -0
- arthur_client/api_bindings/models/patch_job.py +92 -0
- arthur_client/api_bindings/models/patch_model.py +106 -0
- arthur_client/api_bindings/models/patch_organization.py +92 -0
- arthur_client/api_bindings/models/patch_project.py +99 -0
- arthur_client/api_bindings/models/patch_service_account_user.py +92 -0
- arthur_client/api_bindings/models/patch_task_request.py +101 -0
- arthur_client/api_bindings/models/patch_user.py +113 -0
- arthur_client/api_bindings/models/patch_webhook.py +113 -0
- arthur_client/api_bindings/models/patch_workspace.py +87 -0
- arthur_client/api_bindings/models/permission.py +93 -0
- arthur_client/api_bindings/models/permission_name.py +167 -0
- arthur_client/api_bindings/models/permission_request_item.py +93 -0
- arthur_client/api_bindings/models/permission_response_item.py +95 -0
- arthur_client/api_bindings/models/permissions_request.py +96 -0
- arthur_client/api_bindings/models/permissions_response.py +95 -0
- arthur_client/api_bindings/models/pii_config.py +106 -0
- arthur_client/api_bindings/models/post_alert.py +124 -0
- arthur_client/api_bindings/models/post_alert_rule.py +111 -0
- arthur_client/api_bindings/models/post_alerts.py +96 -0
- arthur_client/api_bindings/models/post_connector_spec.py +104 -0
- arthur_client/api_bindings/models/post_data_plane.py +95 -0
- arthur_client/api_bindings/models/post_data_plane_association.py +89 -0
- arthur_client/api_bindings/models/post_data_retrieval_operation.py +106 -0
- arthur_client/api_bindings/models/post_dataset.py +128 -0
- arthur_client/api_bindings/models/post_dataset_join_spec.py +96 -0
- arthur_client/api_bindings/models/post_end_user.py +105 -0
- arthur_client/api_bindings/models/post_global_role_binding.py +92 -0
- arthur_client/api_bindings/models/post_group.py +94 -0
- arthur_client/api_bindings/models/post_group_membership.py +87 -0
- arthur_client/api_bindings/models/post_job.py +124 -0
- arthur_client/api_bindings/models/post_job_batch.py +95 -0
- arthur_client/api_bindings/models/post_job_kind.py +41 -0
- arthur_client/api_bindings/models/post_job_spec.py +194 -0
- arthur_client/api_bindings/models/post_link_task_request.py +96 -0
- arthur_client/api_bindings/models/post_metrics_query.py +117 -0
- arthur_client/api_bindings/models/post_metrics_query_result_filter.py +97 -0
- arthur_client/api_bindings/models/post_metrics_query_result_filter_and_group.py +97 -0
- arthur_client/api_bindings/models/post_metrics_query_result_filter_and_group_and_inner.py +151 -0
- arthur_client/api_bindings/models/post_metrics_query_result_filter_or_group.py +97 -0
- arthur_client/api_bindings/models/post_metrics_query_result_filter_or_group_or_inner.py +151 -0
- arthur_client/api_bindings/models/post_metrics_query_time_range.py +90 -0
- arthur_client/api_bindings/models/post_metrics_versions.py +90 -0
- arthur_client/api_bindings/models/post_model.py +115 -0
- arthur_client/api_bindings/models/post_project.py +94 -0
- arthur_client/api_bindings/models/post_role_binding.py +101 -0
- arthur_client/api_bindings/models/post_service_account.py +87 -0
- arthur_client/api_bindings/models/post_task_request.py +107 -0
- arthur_client/api_bindings/models/post_task_validation_api_key.py +91 -0
- arthur_client/api_bindings/models/post_upsolve_tenant.py +90 -0
- arthur_client/api_bindings/models/post_webhook.py +93 -0
- arthur_client/api_bindings/models/post_workspace.py +87 -0
- arthur_client/api_bindings/models/project.py +105 -0
- arthur_client/api_bindings/models/project_bound_resource_metadata.py +89 -0
- arthur_client/api_bindings/models/project_sort.py +38 -0
- arthur_client/api_bindings/models/put_available_dataset.py +133 -0
- arthur_client/api_bindings/models/put_available_datasets.py +95 -0
- arthur_client/api_bindings/models/put_dataset_schema.py +97 -0
- arthur_client/api_bindings/models/put_job_state.py +88 -0
- arthur_client/api_bindings/models/put_model_metric_spec.py +95 -0
- arthur_client/api_bindings/models/put_model_metrics_schedule.py +96 -0
- arthur_client/api_bindings/models/put_retrieved_data.py +87 -0
- arthur_client/api_bindings/models/put_task_connection_info.py +93 -0
- arthur_client/api_bindings/models/put_task_state_cache_request.py +91 -0
- arthur_client/api_bindings/models/regenerate_task_validation_key_job_spec.py +99 -0
- arthur_client/api_bindings/models/regex_config.py +87 -0
- arthur_client/api_bindings/models/register_user.py +87 -0
- arthur_client/api_bindings/models/resource_kind.py +51 -0
- arthur_client/api_bindings/models/resource_list_aggregation_spec_schema.py +101 -0
- arthur_client/api_bindings/models/resource_list_alert_rule.py +101 -0
- arthur_client/api_bindings/models/resource_list_available_dataset.py +101 -0
- arthur_client/api_bindings/models/resource_list_connector_spec.py +101 -0
- arthur_client/api_bindings/models/resource_list_connector_type.py +94 -0
- arthur_client/api_bindings/models/resource_list_data_plane.py +101 -0
- arthur_client/api_bindings/models/resource_list_data_plane_association.py +101 -0
- arthur_client/api_bindings/models/resource_list_dataset.py +101 -0
- arthur_client/api_bindings/models/resource_list_group.py +101 -0
- arthur_client/api_bindings/models/resource_list_group_membership.py +101 -0
- arthur_client/api_bindings/models/resource_list_job_error.py +101 -0
- arthur_client/api_bindings/models/resource_list_job_log.py +101 -0
- arthur_client/api_bindings/models/resource_list_job_run.py +101 -0
- arthur_client/api_bindings/models/resource_list_metrics_version.py +101 -0
- arthur_client/api_bindings/models/resource_list_model.py +101 -0
- arthur_client/api_bindings/models/resource_list_permission.py +101 -0
- arthur_client/api_bindings/models/resource_list_project.py +101 -0
- arthur_client/api_bindings/models/resource_list_role.py +101 -0
- arthur_client/api_bindings/models/resource_list_role_binding.py +101 -0
- arthur_client/api_bindings/models/resource_list_user.py +101 -0
- arthur_client/api_bindings/models/resource_list_webhook.py +101 -0
- arthur_client/api_bindings/models/resource_list_workspace.py +101 -0
- arthur_client/api_bindings/models/result_filter.py +155 -0
- arthur_client/api_bindings/models/role.py +114 -0
- arthur_client/api_bindings/models/role_binding.py +116 -0
- arthur_client/api_bindings/models/role_sort.py +38 -0
- arthur_client/api_bindings/models/rule_response.py +121 -0
- arthur_client/api_bindings/models/rule_response_config.py +185 -0
- arthur_client/api_bindings/models/rule_scope.py +37 -0
- arthur_client/api_bindings/models/rule_type.py +44 -0
- arthur_client/api_bindings/models/scalar_type.py +88 -0
- arthur_client/api_bindings/models/schedule_jobs_job_spec.py +102 -0
- arthur_client/api_bindings/models/schema_inspection_job_spec.py +101 -0
- arthur_client/api_bindings/models/scope_schema_tag.py +44 -0
- arthur_client/api_bindings/models/sensitive_data_plane.py +117 -0
- arthur_client/api_bindings/models/sensitive_user.py +142 -0
- arthur_client/api_bindings/models/service_account_credentials.py +89 -0
- arthur_client/api_bindings/models/sketch_metric.py +97 -0
- arthur_client/api_bindings/models/sketch_point.py +90 -0
- arthur_client/api_bindings/models/sketch_time_series.py +105 -0
- arthur_client/api_bindings/models/sort_order.py +37 -0
- arthur_client/api_bindings/models/task_connection_info.py +98 -0
- arthur_client/api_bindings/models/task_mutation_response.py +87 -0
- arthur_client/api_bindings/models/task_read_response.py +106 -0
- arthur_client/api_bindings/models/task_response.py +103 -0
- arthur_client/api_bindings/models/task_validation_api_key.py +91 -0
- arthur_client/api_bindings/models/task_validation_key_regeneration_response.py +87 -0
- arthur_client/api_bindings/models/toxicity_config.py +100 -0
- arthur_client/api_bindings/models/update_model_task_rules_job_spec.py +115 -0
- arthur_client/api_bindings/models/upsolve_token.py +87 -0
- arthur_client/api_bindings/models/user.py +136 -0
- arthur_client/api_bindings/models/user_credentials.py +87 -0
- arthur_client/api_bindings/models/user_service_account_credentials.py +142 -0
- arthur_client/api_bindings/models/user_sort.py +39 -0
- arthur_client/api_bindings/models/user_type.py +38 -0
- arthur_client/api_bindings/models/validate_alert_rule_query_req.py +87 -0
- arthur_client/api_bindings/models/validation_error.py +99 -0
- arthur_client/api_bindings/models/validation_error_loc_inner.py +138 -0
- arthur_client/api_bindings/models/webhook.py +113 -0
- arthur_client/api_bindings/models/webhook_response.py +99 -0
- arthur_client/api_bindings/models/webhook_result.py +103 -0
- arthur_client/api_bindings/models/webhook_sort.py +38 -0
- arthur_client/api_bindings/models/workspace.py +96 -0
- arthur_client/api_bindings/models/workspace_sort.py +38 -0
- arthur_client/api_bindings/rest.py +257 -0
- arthur_client/api_bindings/test/test_aggregation_metric_type.py +33 -0
- arthur_client/api_bindings/test/test_aggregation_spec.py +72 -0
- arthur_client/api_bindings/test/test_aggregation_spec_schema.py +70 -0
- arthur_client/api_bindings/test/test_aggregation_spec_schema_init_args_inner.py +70 -0
- arthur_client/api_bindings/test/test_alert.py +84 -0
- arthur_client/api_bindings/test/test_alert_bound.py +33 -0
- arthur_client/api_bindings/test/test_alert_check_job_spec.py +57 -0
- arthur_client/api_bindings/test/test_alert_rule.py +98 -0
- arthur_client/api_bindings/test/test_alert_rule_interval.py +54 -0
- arthur_client/api_bindings/test/test_alert_rule_notification_webhook.py +54 -0
- arthur_client/api_bindings/test/test_alert_rule_sort.py +33 -0
- arthur_client/api_bindings/test/test_alert_rule_sql_validation_resp.py +58 -0
- arthur_client/api_bindings/test/test_alert_rules_v1_api.py +73 -0
- arthur_client/api_bindings/test/test_alert_sort.py +33 -0
- arthur_client/api_bindings/test/test_alert_webhook_called.py +64 -0
- arthur_client/api_bindings/test/test_alerts_v1_api.py +52 -0
- arthur_client/api_bindings/test/test_authorization_v1_api.py +115 -0
- arthur_client/api_bindings/test/test_available_dataset.py +94 -0
- arthur_client/api_bindings/test/test_available_datasets_sort.py +33 -0
- arthur_client/api_bindings/test/test_bad_request_error.py +51 -0
- arthur_client/api_bindings/test/test_base_role.py +56 -0
- arthur_client/api_bindings/test/test_bound_member.py +54 -0
- arthur_client/api_bindings/test/test_bound_member_kind.py +33 -0
- arthur_client/api_bindings/test/test_bound_resource.py +57 -0
- arthur_client/api_bindings/test/test_bound_resource_kind.py +33 -0
- arthur_client/api_bindings/test/test_bound_role.py +54 -0
- arthur_client/api_bindings/test/test_config.py +77 -0
- arthur_client/api_bindings/test/test_conflict_error.py +51 -0
- arthur_client/api_bindings/test/test_connector_check_job_spec.py +53 -0
- arthur_client/api_bindings/test/test_connector_check_outcome.py +33 -0
- arthur_client/api_bindings/test/test_connector_check_result.py +53 -0
- arthur_client/api_bindings/test/test_connector_field_data_type.py +33 -0
- arthur_client/api_bindings/test/test_connector_pagination_options.py +52 -0
- arthur_client/api_bindings/test/test_connector_schemas_v1_api.py +45 -0
- arthur_client/api_bindings/test/test_connector_spec.py +96 -0
- arthur_client/api_bindings/test/test_connector_spec_field.py +54 -0
- arthur_client/api_bindings/test/test_connector_spec_field_with_metadata.py +58 -0
- arthur_client/api_bindings/test/test_connector_spec_schema.py +102 -0
- arthur_client/api_bindings/test/test_connector_spec_schema_field.py +63 -0
- arthur_client/api_bindings/test/test_connector_type.py +33 -0
- arthur_client/api_bindings/test/test_connectors_sort.py +33 -0
- arthur_client/api_bindings/test/test_connectors_v1_api.py +80 -0
- arthur_client/api_bindings/test/test_create_model_link_task_job_spec.py +56 -0
- arthur_client/api_bindings/test/test_create_model_task_job_spec.py +72 -0
- arthur_client/api_bindings/test/test_created_alerts.py +102 -0
- arthur_client/api_bindings/test/test_credentials.py +56 -0
- arthur_client/api_bindings/test/test_d_type.py +33 -0
- arthur_client/api_bindings/test/test_data_plane.py +70 -0
- arthur_client/api_bindings/test/test_data_plane_association.py +79 -0
- arthur_client/api_bindings/test/test_data_plane_association_sort.py +33 -0
- arthur_client/api_bindings/test/test_data_plane_associations_v1_api.py +66 -0
- arthur_client/api_bindings/test/test_data_plane_capabilities.py +51 -0
- arthur_client/api_bindings/test/test_data_plane_sort.py +33 -0
- arthur_client/api_bindings/test/test_data_planes_v1_api.py +73 -0
- arthur_client/api_bindings/test/test_data_result_filter.py +56 -0
- arthur_client/api_bindings/test/test_data_result_filter_op.py +33 -0
- arthur_client/api_bindings/test/test_data_retrieval_data.py +54 -0
- arthur_client/api_bindings/test/test_data_retrieval_operation.py +59 -0
- arthur_client/api_bindings/test/test_data_retrieval_status.py +33 -0
- arthur_client/api_bindings/test/test_data_retrieval_v1_api.py +87 -0
- arthur_client/api_bindings/test/test_dataset.py +117 -0
- arthur_client/api_bindings/test/test_dataset_column.py +55 -0
- arthur_client/api_bindings/test/test_dataset_connector.py +56 -0
- arthur_client/api_bindings/test/test_dataset_join_kind.py +33 -0
- arthur_client/api_bindings/test/test_dataset_join_spec.py +71 -0
- arthur_client/api_bindings/test/test_dataset_list_type.py +57 -0
- arthur_client/api_bindings/test/test_dataset_locator.py +60 -0
- arthur_client/api_bindings/test/test_dataset_locator_field.py +54 -0
- arthur_client/api_bindings/test/test_dataset_locator_field_data_type.py +33 -0
- arthur_client/api_bindings/test/test_dataset_locator_schema.py +70 -0
- arthur_client/api_bindings/test/test_dataset_locator_schema_field.py +61 -0
- arthur_client/api_bindings/test/test_dataset_object_type.py +61 -0
- arthur_client/api_bindings/test/test_dataset_reference.py +56 -0
- arthur_client/api_bindings/test/test_dataset_scalar_type.py +57 -0
- arthur_client/api_bindings/test/test_dataset_schema.py +74 -0
- arthur_client/api_bindings/test/test_datasets_sort.py +33 -0
- arthur_client/api_bindings/test/test_datasets_v1_api.py +129 -0
- arthur_client/api_bindings/test/test_default_api.py +38 -0
- arthur_client/api_bindings/test/test_definition.py +65 -0
- arthur_client/api_bindings/test/test_delete_group_membership.py +56 -0
- arthur_client/api_bindings/test/test_delete_model_task_job_spec.py +53 -0
- arthur_client/api_bindings/test/test_dimension.py +54 -0
- arthur_client/api_bindings/test/test_example_config.py +54 -0
- arthur_client/api_bindings/test/test_examples_config.py +57 -0
- arthur_client/api_bindings/test/test_extended_role.py +92 -0
- arthur_client/api_bindings/test/test_feature_flags_v1_api.py +38 -0
- arthur_client/api_bindings/test/test_fetch_data_job_spec.py +77 -0
- arthur_client/api_bindings/test/test_fetch_model_task_job_spec.py +53 -0
- arthur_client/api_bindings/test/test_generate_metrics_spec_request.py +56 -0
- arthur_client/api_bindings/test/test_group.py +63 -0
- arthur_client/api_bindings/test/test_group_membership.py +74 -0
- arthur_client/api_bindings/test/test_group_sort.py +33 -0
- arthur_client/api_bindings/test/test_groups_v1_api.py +94 -0
- arthur_client/api_bindings/test/test_health_status.py +51 -0
- arthur_client/api_bindings/test/test_http_validation_error.py +58 -0
- arthur_client/api_bindings/test/test_infinite_pagination.py +52 -0
- arthur_client/api_bindings/test/test_infinite_resource_list_alert.py +98 -0
- arthur_client/api_bindings/test/test_infinite_resource_list_job.py +126 -0
- arthur_client/api_bindings/test/test_internal_server_error.py +51 -0
- arthur_client/api_bindings/test/test_interval_unit.py +33 -0
- arthur_client/api_bindings/test/test_invite_new_user.py +59 -0
- arthur_client/api_bindings/test/test_items.py +65 -0
- arthur_client/api_bindings/test/test_items1.py +60 -0
- arthur_client/api_bindings/test/test_job.py +94 -0
- arthur_client/api_bindings/test/test_job_dequeue_parameters.py +52 -0
- arthur_client/api_bindings/test/test_job_error.py +52 -0
- arthur_client/api_bindings/test/test_job_errors.py +58 -0
- arthur_client/api_bindings/test/test_job_kind.py +33 -0
- arthur_client/api_bindings/test/test_job_log.py +56 -0
- arthur_client/api_bindings/test/test_job_log_level.py +33 -0
- arthur_client/api_bindings/test/test_job_logs.py +62 -0
- arthur_client/api_bindings/test/test_job_priority.py +33 -0
- arthur_client/api_bindings/test/test_job_run.py +61 -0
- arthur_client/api_bindings/test/test_job_spec.py +124 -0
- arthur_client/api_bindings/test/test_job_state.py +33 -0
- arthur_client/api_bindings/test/test_job_trigger.py +33 -0
- arthur_client/api_bindings/test/test_jobs_batch.py +120 -0
- arthur_client/api_bindings/test/test_jobs_sort.py +33 -0
- arthur_client/api_bindings/test/test_jobs_v1_api.py +108 -0
- arthur_client/api_bindings/test/test_joined_dataset.py +58 -0
- arthur_client/api_bindings/test/test_keywords_config.py +56 -0
- arthur_client/api_bindings/test/test_list_datasets_job_spec.py +53 -0
- arthur_client/api_bindings/test/test_list_type.py +52 -0
- arthur_client/api_bindings/test/test_metric_functions_v1_api.py +38 -0
- arthur_client/api_bindings/test/test_metrics_arg_spec.py +54 -0
- arthur_client/api_bindings/test/test_metrics_calculation_job_spec.py +57 -0
- arthur_client/api_bindings/test/test_metrics_column_list_parameter_schema.py +67 -0
- arthur_client/api_bindings/test/test_metrics_column_list_parameter_schema_allowed_column_types_inner.py +60 -0
- arthur_client/api_bindings/test/test_metrics_column_parameter_schema.py +67 -0
- arthur_client/api_bindings/test/test_metrics_dataset_parameter_schema.py +59 -0
- arthur_client/api_bindings/test/test_metrics_literal_parameter_schema.py +60 -0
- arthur_client/api_bindings/test/test_metrics_query_result.py +56 -0
- arthur_client/api_bindings/test/test_metrics_result_filter_op.py +33 -0
- arthur_client/api_bindings/test/test_metrics_upload.py +56 -0
- arthur_client/api_bindings/test/test_metrics_upload_metrics_inner.py +104 -0
- arthur_client/api_bindings/test/test_metrics_upload_result.py +58 -0
- arthur_client/api_bindings/test/test_metrics_v1_api.py +59 -0
- arthur_client/api_bindings/test/test_metrics_version.py +62 -0
- arthur_client/api_bindings/test/test_metrics_versions_sort.py +33 -0
- arthur_client/api_bindings/test/test_model.py +133 -0
- arthur_client/api_bindings/test/test_model_metric_spec.py +80 -0
- arthur_client/api_bindings/test/test_model_metrics_schedule.py +57 -0
- arthur_client/api_bindings/test/test_model_problem_type.py +33 -0
- arthur_client/api_bindings/test/test_models_sort.py +33 -0
- arthur_client/api_bindings/test/test_models_v1_api.py +94 -0
- arthur_client/api_bindings/test/test_new_rule_request.py +59 -0
- arthur_client/api_bindings/test/test_not_found_error.py +51 -0
- arthur_client/api_bindings/test/test_numeric_metric.py +78 -0
- arthur_client/api_bindings/test/test_numeric_point.py +54 -0
- arthur_client/api_bindings/test/test_numeric_time_series.py +70 -0
- arthur_client/api_bindings/test/test_o_auth_v1_api.py +38 -0
- arthur_client/api_bindings/test/test_object_type.py +56 -0
- arthur_client/api_bindings/test/test_object_value.py +65 -0
- arthur_client/api_bindings/test/test_organization.py +58 -0
- arthur_client/api_bindings/test/test_organizations_v1_api.py +52 -0
- arthur_client/api_bindings/test/test_pagination.py +56 -0
- arthur_client/api_bindings/test/test_patch_alert_rule.py +62 -0
- arthur_client/api_bindings/test/test_patch_connector_spec.py +57 -0
- arthur_client/api_bindings/test/test_patch_data_plane.py +54 -0
- arthur_client/api_bindings/test/test_patch_data_plane_capabilities.py +51 -0
- arthur_client/api_bindings/test/test_patch_dataset.py +58 -0
- arthur_client/api_bindings/test/test_patch_dataset_locator.py +55 -0
- arthur_client/api_bindings/test/test_patch_group.py +52 -0
- arthur_client/api_bindings/test/test_patch_job.py +52 -0
- arthur_client/api_bindings/test/test_patch_model.py +55 -0
- arthur_client/api_bindings/test/test_patch_organization.py +51 -0
- arthur_client/api_bindings/test/test_patch_project.py +52 -0
- arthur_client/api_bindings/test/test_patch_service_account_user.py +51 -0
- arthur_client/api_bindings/test/test_patch_task_request.py +67 -0
- arthur_client/api_bindings/test/test_patch_user.py +54 -0
- arthur_client/api_bindings/test/test_patch_webhook.py +58 -0
- arthur_client/api_bindings/test/test_patch_workspace.py +52 -0
- arthur_client/api_bindings/test/test_permission.py +56 -0
- arthur_client/api_bindings/test/test_permission_name.py +33 -0
- arthur_client/api_bindings/test/test_permission_request_item.py +56 -0
- arthur_client/api_bindings/test/test_permission_response_item.py +58 -0
- arthur_client/api_bindings/test/test_permissions_request.py +62 -0
- arthur_client/api_bindings/test/test_permissions_response.py +64 -0
- arthur_client/api_bindings/test/test_pii_config.py +57 -0
- arthur_client/api_bindings/test/test_post_alert.py +71 -0
- arthur_client/api_bindings/test/test_post_alert_rule.py +70 -0
- arthur_client/api_bindings/test/test_post_alerts.py +78 -0
- arthur_client/api_bindings/test/test_post_connector_spec.py +67 -0
- arthur_client/api_bindings/test/test_post_data_plane.py +56 -0
- arthur_client/api_bindings/test/test_post_data_plane_association.py +54 -0
- arthur_client/api_bindings/test/test_post_data_retrieval_operation.py +63 -0
- arthur_client/api_bindings/test/test_post_dataset.py +75 -0
- arthur_client/api_bindings/test/test_post_dataset_join_spec.py +59 -0
- arthur_client/api_bindings/test/test_post_end_user.py +58 -0
- arthur_client/api_bindings/test/test_post_global_role_binding.py +56 -0
- arthur_client/api_bindings/test/test_post_group.py +53 -0
- arthur_client/api_bindings/test/test_post_group_membership.py +56 -0
- arthur_client/api_bindings/test/test_post_job.py +58 -0
- arthur_client/api_bindings/test/test_post_job_batch.py +68 -0
- arthur_client/api_bindings/test/test_post_job_kind.py +33 -0
- arthur_client/api_bindings/test/test_post_job_spec.py +65 -0
- arthur_client/api_bindings/test/test_post_link_task_request.py +55 -0
- arthur_client/api_bindings/test/test_post_metrics_query.py +63 -0
- arthur_client/api_bindings/test/test_post_metrics_query_result_filter.py +56 -0
- arthur_client/api_bindings/test/test_post_metrics_query_result_filter_and_group.py +56 -0
- arthur_client/api_bindings/test/test_post_metrics_query_result_filter_and_group_and_inner.py +68 -0
- arthur_client/api_bindings/test/test_post_metrics_query_result_filter_or_group.py +56 -0
- arthur_client/api_bindings/test/test_post_metrics_query_result_filter_or_group_or_inner.py +68 -0
- arthur_client/api_bindings/test/test_post_metrics_query_time_range.py +54 -0
- arthur_client/api_bindings/test/test_post_metrics_versions.py +54 -0
- arthur_client/api_bindings/test/test_post_model.py +75 -0
- arthur_client/api_bindings/test/test_post_project.py +53 -0
- arthur_client/api_bindings/test/test_post_role_binding.py +54 -0
- arthur_client/api_bindings/test/test_post_service_account.py +52 -0
- arthur_client/api_bindings/test/test_post_task_request.py +63 -0
- arthur_client/api_bindings/test/test_post_task_validation_api_key.py +56 -0
- arthur_client/api_bindings/test/test_post_upsolve_tenant.py +54 -0
- arthur_client/api_bindings/test/test_post_webhook.py +61 -0
- arthur_client/api_bindings/test/test_post_workspace.py +52 -0
- arthur_client/api_bindings/test/test_project.py +63 -0
- arthur_client/api_bindings/test/test_project_bound_resource_metadata.py +54 -0
- arthur_client/api_bindings/test/test_project_sort.py +33 -0
- arthur_client/api_bindings/test/test_projects_v1_api.py +66 -0
- arthur_client/api_bindings/test/test_put_available_dataset.py +74 -0
- arthur_client/api_bindings/test/test_put_available_datasets.py +104 -0
- arthur_client/api_bindings/test/test_put_dataset_schema.py +68 -0
- arthur_client/api_bindings/test/test_put_job_state.py +52 -0
- arthur_client/api_bindings/test/test_put_model_metric_spec.py +78 -0
- arthur_client/api_bindings/test/test_put_model_metrics_schedule.py +55 -0
- arthur_client/api_bindings/test/test_put_retrieved_data.py +52 -0
- arthur_client/api_bindings/test/test_put_task_connection_info.py +60 -0
- arthur_client/api_bindings/test/test_put_task_state_cache_request.py +86 -0
- arthur_client/api_bindings/test/test_regenerate_task_validation_key_job_spec.py +53 -0
- arthur_client/api_bindings/test/test_regex_config.py +56 -0
- arthur_client/api_bindings/test/test_register_user.py +52 -0
- arthur_client/api_bindings/test/test_registration_v1_api.py +38 -0
- arthur_client/api_bindings/test/test_resource_kind.py +33 -0
- arthur_client/api_bindings/test/test_resource_list_aggregation_spec_schema.py +86 -0
- arthur_client/api_bindings/test/test_resource_list_alert_rule.py +128 -0
- arthur_client/api_bindings/test/test_resource_list_available_dataset.py +144 -0
- arthur_client/api_bindings/test/test_resource_list_connector_spec.py +128 -0
- arthur_client/api_bindings/test/test_resource_list_connector_type.py +66 -0
- arthur_client/api_bindings/test/test_resource_list_data_plane.py +86 -0
- arthur_client/api_bindings/test/test_resource_list_data_plane_association.py +114 -0
- arthur_client/api_bindings/test/test_resource_list_dataset.py +150 -0
- arthur_client/api_bindings/test/test_resource_list_group.py +80 -0
- arthur_client/api_bindings/test/test_resource_list_group_membership.py +90 -0
- arthur_client/api_bindings/test/test_resource_list_job_error.py +68 -0
- arthur_client/api_bindings/test/test_resource_list_job_log.py +72 -0
- arthur_client/api_bindings/test/test_resource_list_job_run.py +78 -0
- arthur_client/api_bindings/test/test_resource_list_metrics_version.py +78 -0
- arthur_client/api_bindings/test/test_resource_list_model.py +168 -0
- arthur_client/api_bindings/test/test_resource_list_permission.py +72 -0
- arthur_client/api_bindings/test/test_resource_list_project.py +80 -0
- arthur_client/api_bindings/test/test_resource_list_role.py +96 -0
- arthur_client/api_bindings/test/test_resource_list_role_binding.py +100 -0
- arthur_client/api_bindings/test/test_resource_list_user.py +90 -0
- arthur_client/api_bindings/test/test_resource_list_webhook.py +116 -0
- arthur_client/api_bindings/test/test_resource_list_workspace.py +76 -0
- arthur_client/api_bindings/test/test_result_filter.py +68 -0
- arthur_client/api_bindings/test/test_role.py +80 -0
- arthur_client/api_bindings/test/test_role_binding.py +84 -0
- arthur_client/api_bindings/test/test_role_sort.py +33 -0
- arthur_client/api_bindings/test/test_roles_v1_api.py +38 -0
- arthur_client/api_bindings/test/test_rule_response.py +68 -0
- arthur_client/api_bindings/test/test_rule_response_config.py +77 -0
- arthur_client/api_bindings/test/test_rule_scope.py +33 -0
- arthur_client/api_bindings/test/test_rule_type.py +33 -0
- arthur_client/api_bindings/test/test_scalar_type.py +52 -0
- arthur_client/api_bindings/test/test_schedule_jobs_job_spec.py +55 -0
- arthur_client/api_bindings/test/test_schema_inspection_job_spec.py +55 -0
- arthur_client/api_bindings/test/test_scope_schema_tag.py +33 -0
- arthur_client/api_bindings/test/test_sensitive_data_plane.py +74 -0
- arthur_client/api_bindings/test/test_sensitive_user.py +72 -0
- arthur_client/api_bindings/test/test_service_account_credentials.py +54 -0
- arthur_client/api_bindings/test/test_sketch_metric.py +78 -0
- arthur_client/api_bindings/test/test_sketch_point.py +54 -0
- arthur_client/api_bindings/test/test_sketch_time_series.py +70 -0
- arthur_client/api_bindings/test/test_sort_order.py +33 -0
- arthur_client/api_bindings/test/test_task_connection_info.py +64 -0
- arthur_client/api_bindings/test/test_task_mutation_response.py +52 -0
- arthur_client/api_bindings/test/test_task_read_response.py +71 -0
- arthur_client/api_bindings/test/test_task_response.py +84 -0
- arthur_client/api_bindings/test/test_task_validation_api_key.py +56 -0
- arthur_client/api_bindings/test/test_task_validation_key_regeneration_response.py +52 -0
- arthur_client/api_bindings/test/test_tasks_v1_api.py +108 -0
- arthur_client/api_bindings/test/test_toxicity_config.py +51 -0
- arthur_client/api_bindings/test/test_update_model_task_rules_job_spec.py +70 -0
- arthur_client/api_bindings/test/test_upsolve_token.py +52 -0
- arthur_client/api_bindings/test/test_upsolve_v1_api.py +38 -0
- arthur_client/api_bindings/test/test_user.py +70 -0
- arthur_client/api_bindings/test/test_user_credentials.py +52 -0
- arthur_client/api_bindings/test/test_user_service_account_credentials.py +76 -0
- arthur_client/api_bindings/test/test_user_sort.py +33 -0
- arthur_client/api_bindings/test/test_user_type.py +33 -0
- arthur_client/api_bindings/test/test_users_v1_api.py +101 -0
- arthur_client/api_bindings/test/test_validate_alert_rule_query_req.py +52 -0
- arthur_client/api_bindings/test/test_validation_error.py +60 -0
- arthur_client/api_bindings/test/test_validation_error_loc_inner.py +50 -0
- arthur_client/api_bindings/test/test_webhook.py +82 -0
- arthur_client/api_bindings/test/test_webhook_response.py +54 -0
- arthur_client/api_bindings/test/test_webhook_result.py +58 -0
- arthur_client/api_bindings/test/test_webhook_sort.py +33 -0
- arthur_client/api_bindings/test/test_webhooks_v1_api.py +73 -0
- arthur_client/api_bindings/test/test_workspace.py +60 -0
- arthur_client/api_bindings/test/test_workspace_sort.py +33 -0
- arthur_client/api_bindings/test/test_workspaces_v1_api.py +66 -0
- arthur_client/api_bindings_README.md +514 -0
- arthur_client/auth/__init__.py +4 -0
- arthur_client/auth/constants.py +1 -0
- arthur_client/auth/device_authorizer.py +74 -0
- arthur_client/auth/discovery.py +40 -0
- arthur_client/auth/oauth_api_config.py +38 -0
- arthur_client/auth/session.py +84 -0
- arthur_client-1.4.1186.dist-info/METADATA +40 -0
- arthur_client-1.4.1186.dist-info/RECORD +927 -0
- {arthur_client-1.4.0.dist-info → arthur_client-1.4.1186.dist-info}/WHEEL +1 -2
- arthur/client/__init__.py +0 -3
- arthur/client/auth/helpers.py +0 -123
- arthur/client/auth/refresh.py +0 -67
- arthur/client/helpers.py +0 -48
- arthur/client/http/helper.py +0 -47
- arthur/client/http/requests.py +0 -654
- arthur/client/http/validation.py +0 -197
- arthur/client/rest/__init__.py +0 -16
- arthur/client/rest/admin/__init__.py +0 -2
- arthur/client/rest/admin/client.py +0 -330
- arthur/client/rest/admin/models.py +0 -457
- arthur/client/rest/alerts/__init__.py +0 -2
- arthur/client/rest/alerts/client.py +0 -589
- arthur/client/rest/alerts/models.py +0 -695
- arthur/client/rest/bench/__init__.py +0 -2
- arthur/client/rest/bench/client.py +0 -280
- arthur/client/rest/bench/models.py +0 -229
- arthur/client/rest/client.py +0 -158
- arthur/client/rest/common/__init__.py +0 -2
- arthur/client/rest/common/client.py +0 -25
- arthur/client/rest/common/models.py +0 -317
- arthur/client/rest/enrichments/__init__.py +0 -2
- arthur/client/rest/enrichments/client.py +0 -352
- arthur/client/rest/enrichments/models.py +0 -483
- arthur/client/rest/inferences/__init__.py +0 -2
- arthur/client/rest/inferences/client.py +0 -268
- arthur/client/rest/inferences/models.py +0 -432
- arthur/client/rest/insights/__init__.py +0 -2
- arthur/client/rest/insights/client.py +0 -199
- arthur/client/rest/insights/models.py +0 -182
- arthur/client/rest/metrics/__init__.py +0 -2
- arthur/client/rest/metrics/client.py +0 -296
- arthur/client/rest/metrics/models.py +0 -325
- arthur/client/rest/model_groups/__init__.py +0 -2
- arthur/client/rest/model_groups/client.py +0 -153
- arthur/client/rest/model_groups/models.py +0 -80
- arthur/client/rest/models/__init__.py +0 -2
- arthur/client/rest/models/client.py +0 -534
- arthur/client/rest/models/models.py +0 -565
- arthur/client/rest/query/__init__.py +0 -2
- arthur/client/rest/query/client.py +0 -123
- arthur/client/rest/query/models.py +0 -133
- arthur/client/rest/users/__init__.py +0 -2
- arthur/client/rest/users/client.py +0 -171
- arthur/client/rest/users/models.py +0 -317
- arthur/client/types.py +0 -9
- arthur/client/version.py +0 -2
- arthur/common/__init__.py +0 -3
- arthur/common/constants.py +0 -5
- arthur/common/exceptions.py +0 -183
- arthur/common/log.py +0 -79
- arthur_client-1.4.0.dist-info/LICENSE +0 -21
- arthur_client-1.4.0.dist-info/METADATA +0 -49
- arthur_client-1.4.0.dist-info/RECORD +0 -58
- arthur_client-1.4.0.dist-info/top_level.txt +0 -1
- {arthur/client/auth → arthur_client}/__init__.py +0 -0
- {arthur/client/http → arthur_client/api_bindings/test}/__init__.py +0 -0
arthur/client/http/requests.py
DELETED
@@ -1,654 +0,0 @@
|
|
1
|
-
import logging
|
2
|
-
import threading
|
3
|
-
from datetime import timedelta
|
4
|
-
from io import BytesIO
|
5
|
-
from time import sleep
|
6
|
-
|
7
|
-
import requests
|
8
|
-
from requests.exceptions import RequestException
|
9
|
-
from typing import Dict, List, Union, Optional, BinaryIO, Tuple, Any, Callable, IO
|
10
|
-
import json as jsonlib
|
11
|
-
from urllib.parse import urlparse
|
12
|
-
|
13
|
-
from requests_toolbelt import MultipartEncoder # type: ignore
|
14
|
-
|
15
|
-
from arthur.client.http.helper import construct_url
|
16
|
-
from arthur.client.http import validation
|
17
|
-
from arthur.common.exceptions import (
|
18
|
-
UnexpectedTypeError,
|
19
|
-
ResponseServerError,
|
20
|
-
ResponseRedirectError,
|
21
|
-
ArthurUnexpectedError,
|
22
|
-
UserValueError,
|
23
|
-
)
|
24
|
-
|
25
|
-
logger = logging.getLogger(__name__)
|
26
|
-
|
27
|
-
|
28
|
-
def _parse_response(response: requests.Response) -> Union[Dict, List, bytes, BytesIO]:
|
29
|
-
"""Depending on the type of response from the server, parses the response and returns
|
30
|
-
|
31
|
-
:param response: response from the REST call
|
32
|
-
:return: parsed response
|
33
|
-
"""
|
34
|
-
if response is None:
|
35
|
-
return bytes()
|
36
|
-
# return error codes as raw responses
|
37
|
-
# https://developer.mozilla.org/en-US/docs/Web/HTTP/Status
|
38
|
-
if response.status_code >= 400:
|
39
|
-
return response.content
|
40
|
-
if response.request.headers.get("Accept") == "application/octet-stream":
|
41
|
-
return BytesIO(response.content)
|
42
|
-
# return the content if the return type is image/binary/csv
|
43
|
-
if response.headers.get("Content-Type") in (
|
44
|
-
"image/jpeg",
|
45
|
-
"text/csv",
|
46
|
-
"avro/binary",
|
47
|
-
"parquet/binary",
|
48
|
-
):
|
49
|
-
return response.content
|
50
|
-
|
51
|
-
try:
|
52
|
-
return response.json()
|
53
|
-
except ValueError:
|
54
|
-
return response.content
|
55
|
-
|
56
|
-
|
57
|
-
def _validate_base_url(base_url: str, allow_insecure=True) -> None:
|
58
|
-
"""
|
59
|
-
Validate that a base URL does not contain any paths or query parameters
|
60
|
-
:param base_url: the base URL to validate
|
61
|
-
:param allow_insecure: flag for http urls
|
62
|
-
:return: None
|
63
|
-
:raises UserValueError: if the URL is invalid
|
64
|
-
"""
|
65
|
-
# add scheme and initial validation from construct_url function
|
66
|
-
parsed = urlparse(construct_url(base_url))
|
67
|
-
|
68
|
-
# validate
|
69
|
-
if parsed.scheme not in ("http", "https"):
|
70
|
-
raise UserValueError(
|
71
|
-
f"Base URL scheme '{parsed.scheme}' is invalid, should be 'http' or 'https'"
|
72
|
-
)
|
73
|
-
if parsed.scheme == "http" and not allow_insecure:
|
74
|
-
raise UserValueError(
|
75
|
-
"Must set allow_secure flag to be True in order to use an http url."
|
76
|
-
)
|
77
|
-
if parsed.path is not None and parsed.path not in ("", "/"):
|
78
|
-
raise UserValueError(f"Base URL {base_url} should not contain a path")
|
79
|
-
if parsed.query is not None and parsed.query != "":
|
80
|
-
raise UserValueError(f"Base URL {base_url} should not contain query parameters")
|
81
|
-
if parsed.params is not None and parsed.params != "":
|
82
|
-
raise UserValueError(f"Base URL {base_url} should not contain a path parameter")
|
83
|
-
if parsed.fragment is not None and parsed.fragment != "":
|
84
|
-
raise UserValueError(f"Base URL {base_url} should not contain a fragment")
|
85
|
-
|
86
|
-
|
87
|
-
class HTTPClient:
|
88
|
-
"""
|
89
|
-
A `requests`-based HTTP Client intended for interacting with JSON-based APIs.
|
90
|
-
Supports response validation, retries, connection reuse, and multipart requests.
|
91
|
-
"""
|
92
|
-
|
93
|
-
def __init__(
|
94
|
-
self,
|
95
|
-
base_url: str,
|
96
|
-
path_prefix: Optional[str] = None,
|
97
|
-
default_headers: Optional[Dict[str, str]] = None,
|
98
|
-
verify_ssl: bool = True,
|
99
|
-
timeout_sec: float = 300.0,
|
100
|
-
allow_insecure: bool = True,
|
101
|
-
header_refresh_func: Optional[
|
102
|
-
Callable[[], Tuple[Dict[str, str], timedelta]]
|
103
|
-
] = None,
|
104
|
-
):
|
105
|
-
"""
|
106
|
-
:param base_url:
|
107
|
-
:param path_prefix:
|
108
|
-
:param default_headers:
|
109
|
-
:param verify_ssl:
|
110
|
-
:param timeout_sec:
|
111
|
-
:param allow_insecure:
|
112
|
-
:param header_refresh_func: function to refresh headers, returning headers to update and time to wait before
|
113
|
-
next refresh
|
114
|
-
"""
|
115
|
-
self.session = requests.Session()
|
116
|
-
if default_headers is not None:
|
117
|
-
self.session.headers.update(default_headers)
|
118
|
-
self.session.verify = verify_ssl
|
119
|
-
self.timeout = timeout_sec
|
120
|
-
|
121
|
-
# exponential backoff settings
|
122
|
-
self.BACKOFF_CONSTANT = 0.1
|
123
|
-
self.BACKOFF_EXPONENT_BASE = 1.5
|
124
|
-
|
125
|
-
try:
|
126
|
-
_validate_base_url(base_url, allow_insecure)
|
127
|
-
except UserValueError as e:
|
128
|
-
raise UserValueError(
|
129
|
-
"Base URL is invalid, see nested exception for details. Base URL should not contain a "
|
130
|
-
"/path or &query=parameters, a /path;parameter, or a #fragment"
|
131
|
-
) from e
|
132
|
-
|
133
|
-
if path_prefix is None:
|
134
|
-
self.api_base_url = construct_url(base_url, validate=True)
|
135
|
-
else:
|
136
|
-
self.api_base_url = construct_url(base_url, path_prefix, validate=True)
|
137
|
-
|
138
|
-
self._header_refresh_func = header_refresh_func
|
139
|
-
self._update_headers()
|
140
|
-
|
141
|
-
def set_path_prefix(self, path_prefix: str) -> None:
|
142
|
-
"""
|
143
|
-
Update the client's path prefix
|
144
|
-
|
145
|
-
This update the path prefix which is prepended to 'endpoint' paths.
|
146
|
-
"""
|
147
|
-
# get current url
|
148
|
-
parsed_url = urlparse(self.api_base_url)
|
149
|
-
|
150
|
-
# remove trailing slash from supplied path if present
|
151
|
-
if path_prefix[-1] == "/":
|
152
|
-
path_prefix = path_prefix[:-1]
|
153
|
-
|
154
|
-
# if existing URL has a path, warn we're overriding it
|
155
|
-
if parsed_url.path not in ("", "/") and parsed_url.path != path_prefix:
|
156
|
-
logger.warning(
|
157
|
-
f"Overriding existing client base URL path '{parsed_url.path}' with supplied '{path_prefix}"
|
158
|
-
)
|
159
|
-
|
160
|
-
# assign the path to the parsed URL and write that back to our base url
|
161
|
-
parsed_url = parsed_url._replace(path=path_prefix)
|
162
|
-
self.api_base_url = parsed_url.geturl()
|
163
|
-
|
164
|
-
def _update_headers(self):
|
165
|
-
if self._header_refresh_func is None:
|
166
|
-
return
|
167
|
-
|
168
|
-
# fetch updates and next refresh wait time
|
169
|
-
header_updates, next_refresh_wait = self._header_refresh_func()
|
170
|
-
# update headers
|
171
|
-
self.session.headers.update(header_updates)
|
172
|
-
|
173
|
-
# schedule next refresh
|
174
|
-
thread = threading.Timer(
|
175
|
-
next_refresh_wait.total_seconds(), self._update_headers
|
176
|
-
)
|
177
|
-
thread.daemon = True
|
178
|
-
thread.start()
|
179
|
-
|
180
|
-
def send(
|
181
|
-
self,
|
182
|
-
endpoint: str,
|
183
|
-
method: str = "GET",
|
184
|
-
json: Optional[Union[Dict, List, str, bytes]] = None,
|
185
|
-
# TODO: fix generic Tuple (which equals Tuple[Any...]) type to specifically allowed types
|
186
|
-
files: Optional[
|
187
|
-
Union[Dict[str, BinaryIO], List[Tuple], Dict[str, Tuple]]
|
188
|
-
] = None,
|
189
|
-
headers: Optional[Dict[str, str]] = None,
|
190
|
-
params: Optional[Union[Dict, bytes]] = None,
|
191
|
-
return_raw_response: bool = False,
|
192
|
-
retries: int = 0,
|
193
|
-
validate_response_status: bool = True,
|
194
|
-
validation_response_code: Optional[int] = None,
|
195
|
-
) -> Union[Dict, List, bytes, BytesIO, requests.Response]:
|
196
|
-
"""Send an HTTP request
|
197
|
-
|
198
|
-
:param endpoint: the specific endpoint to append to the client URL
|
199
|
-
:param method: the HTTP method to use
|
200
|
-
:param headers: headers to use for this request in addition to the client default headers
|
201
|
-
:param json: data to send as JSON, either a string/bytes to send directly or a dictionary/list to serialize. if
|
202
|
-
`files` is also supplied, this should be a map from name to content, to be sent along with the `files` as
|
203
|
-
a multipart request
|
204
|
-
:param files: a map from file names to file-like objects, to be sent as multipart/form-data
|
205
|
-
:param params: query parameters to add to the request
|
206
|
-
:param return_raw_response: if true, return the requests.Response object received; otherwise attempt to parse
|
207
|
-
the response
|
208
|
-
:param retries: number of times to retry the request on failure. uses exponential backoff
|
209
|
-
:param validate_response_status: if True, raise an ArthurException if the status code is not 2XX or does not
|
210
|
-
match `validation_response_code`
|
211
|
-
:param validation_response_code: expected status code of the response to validate. if None, allow any 2XX
|
212
|
-
:return: if return_raw_response is true, return the requests.Response object received; otherwise attempt to
|
213
|
-
parse the response
|
214
|
-
:raises ArthurUserError: failed due to user error
|
215
|
-
:raises ArthurUnexpectedError: failed due to an internal error
|
216
|
-
"""
|
217
|
-
if headers is None:
|
218
|
-
headers = {}
|
219
|
-
|
220
|
-
# VALIDATION AND PREPROCESSING
|
221
|
-
if retries < 0:
|
222
|
-
raise UserValueError(f"retries must be greater than or equal to 0")
|
223
|
-
if validation_response_code is None and retries > 0:
|
224
|
-
logger.warning(
|
225
|
-
f"retries was specified as {retries} but validation_response_code was not set, response "
|
226
|
-
f"contents will not be evaluated."
|
227
|
-
)
|
228
|
-
# automatically add json content type headers and serialize json if `json` is supplied but no (multipart)
|
229
|
-
# files are supplied
|
230
|
-
multipart: bool = files is not None or (
|
231
|
-
"Content-Type" in headers.keys()
|
232
|
-
and headers["Content-Type"] == "multipart/form-data"
|
233
|
-
)
|
234
|
-
if json is not None and not multipart:
|
235
|
-
logger.debug("serializing JSON and adding Content-Type header")
|
236
|
-
# headers
|
237
|
-
if "Content-Type" not in headers.keys():
|
238
|
-
headers["Content-Type"] = "application/json"
|
239
|
-
elif headers["Content-Type"] != "application/json":
|
240
|
-
logger.debug(
|
241
|
-
f"Content-Type header is specified as {headers['Content-Type']}, not overwriting"
|
242
|
-
)
|
243
|
-
# body
|
244
|
-
if type(json) != str and type(json) != bytes:
|
245
|
-
try:
|
246
|
-
json = jsonlib.dumps(json)
|
247
|
-
except TypeError as e:
|
248
|
-
raise UnexpectedTypeError("failed to serialize 'json' input") from e
|
249
|
-
|
250
|
-
# multipart request preparation
|
251
|
-
me: Optional[MultipartEncoder] = None
|
252
|
-
if multipart:
|
253
|
-
data: Dict[
|
254
|
-
str, Union[Tuple[str, IO], Tuple[str, IO, str], Tuple[Any, ...]]
|
255
|
-
] = {}
|
256
|
-
# if json will be sent as multipart clean it up
|
257
|
-
if json is not None:
|
258
|
-
if not isinstance(json, dict):
|
259
|
-
raise UnexpectedTypeError(
|
260
|
-
f"Received 'json' parameter with a multipart request but was of type "
|
261
|
-
f"{type(json)} not dict."
|
262
|
-
)
|
263
|
-
for field_name, field_value in json.items():
|
264
|
-
# validate key type
|
265
|
-
if not isinstance(field_name, str):
|
266
|
-
raise UnexpectedTypeError(
|
267
|
-
f"both 'files' and 'json' were supplied but 'json' keys type is "
|
268
|
-
f"{type(field_name)} not str"
|
269
|
-
)
|
270
|
-
# serialize the values if needed
|
271
|
-
if isinstance(field_value, dict) or isinstance(field_value, list):
|
272
|
-
try:
|
273
|
-
field_value = jsonlib.dumps(field_value)
|
274
|
-
except TypeError as e:
|
275
|
-
raise UnexpectedTypeError(
|
276
|
-
f"failed to serialize 'json' input for key '{field_name}'"
|
277
|
-
) from e
|
278
|
-
# convert strings to BytesIO
|
279
|
-
if isinstance(field_value, str):
|
280
|
-
field_value = BytesIO(bytes(field_value, encoding="utf-8"))
|
281
|
-
|
282
|
-
# check that our final value is file-like
|
283
|
-
try:
|
284
|
-
field_value.seek(0)
|
285
|
-
except AttributeError as e:
|
286
|
-
raise UnexpectedTypeError(
|
287
|
-
f"Received 'data' dict but could not convert field '{field_name}' "
|
288
|
-
f"of type '{type(json[field_name])}' to file-like object"
|
289
|
-
) from e
|
290
|
-
# set value in our newly-built data
|
291
|
-
data[field_name] = field_value
|
292
|
-
|
293
|
-
if files is not None:
|
294
|
-
# if list, must be of tuples like ("fname", data, [encoding]) -- add to data in dict format
|
295
|
-
if isinstance(files, list):
|
296
|
-
for entry in files:
|
297
|
-
if not (
|
298
|
-
isinstance(entry, tuple)
|
299
|
-
and len(entry) >= 2
|
300
|
-
and isinstance(entry[0], str)
|
301
|
-
):
|
302
|
-
raise UnexpectedTypeError(
|
303
|
-
f"received list for files argument but did not contain tuples in "
|
304
|
-
f"the correct format, entry was of type {type(entry)}: {entry}"
|
305
|
-
)
|
306
|
-
data[entry[0]] = entry
|
307
|
-
# if dict, ensure in tuple format like ("fname", data, [encoding]) or reformat if not
|
308
|
-
elif isinstance(files, dict):
|
309
|
-
for fname in files.keys():
|
310
|
-
file_obj = files[fname]
|
311
|
-
if isinstance(file_obj, tuple):
|
312
|
-
data[fname] = file_obj
|
313
|
-
elif hasattr(file_obj, "read"):
|
314
|
-
# we don't want an AttributeError if the file_obj doesn't have a name,
|
315
|
-
# so it defaults to the key, fname for things like BytesIO objects
|
316
|
-
data[fname] = (
|
317
|
-
(file_obj.name, file_obj)
|
318
|
-
if hasattr(file_obj, "name")
|
319
|
-
else (fname, file_obj)
|
320
|
-
)
|
321
|
-
else:
|
322
|
-
raise UnexpectedTypeError(
|
323
|
-
f"files['{fname}'] is of type {type(file_obj)}, not a tuple or "
|
324
|
-
f"file-like"
|
325
|
-
)
|
326
|
-
else:
|
327
|
-
raise UnexpectedTypeError(
|
328
|
-
f"received 'files' argument but was of type '{type(files)}; not list or dict"
|
329
|
-
)
|
330
|
-
|
331
|
-
url = construct_url(self.api_base_url, endpoint)
|
332
|
-
|
333
|
-
# REQUEST SENDING AND RESPONSE PARSING
|
334
|
-
resp: Optional[requests.Response] = None
|
335
|
-
success = False
|
336
|
-
error = None
|
337
|
-
attempts = 0
|
338
|
-
while not success and attempts <= retries:
|
339
|
-
if attempts > 0:
|
340
|
-
if resp is not None:
|
341
|
-
encoding = resp.encoding if resp.encoding is not None else "utf-8"
|
342
|
-
logger.debug(
|
343
|
-
f"Request failed with status {resp.status_code} auto retry {attempts}/{retries}:\n"
|
344
|
-
f"{resp.content.decode(encoding)}"
|
345
|
-
)
|
346
|
-
wait_time = self.BACKOFF_CONSTANT * (
|
347
|
-
self.BACKOFF_EXPONENT_BASE**attempts
|
348
|
-
)
|
349
|
-
sleep(wait_time)
|
350
|
-
try:
|
351
|
-
if multipart:
|
352
|
-
logger.debug(
|
353
|
-
"Sending multipart request: %s %s\nHeaders: %s",
|
354
|
-
method,
|
355
|
-
url,
|
356
|
-
headers,
|
357
|
-
)
|
358
|
-
# create multipart encoder
|
359
|
-
#
|
360
|
-
# we want to stream the multipart upload: i.e. send the data in sections read from disk, rather than
|
361
|
-
# loading it all into memory at once before starting the request. however the requests library can
|
362
|
-
# only stream data from file-like objects. we need something to properly construct the multipart
|
363
|
-
# request with its content boundaries and such
|
364
|
-
# (see https://www.w3.org/TR/html401/interact/forms.html#h-17.13.4.2)
|
365
|
-
# and turn it into a file-like object. this is what the MultipartEncoder does.
|
366
|
-
me = MultipartEncoder(fields=data)
|
367
|
-
headers["Content-Type"] = me.content_type
|
368
|
-
resp = self.session.request(
|
369
|
-
method,
|
370
|
-
url,
|
371
|
-
params=params,
|
372
|
-
data=me,
|
373
|
-
headers=headers,
|
374
|
-
timeout=self.timeout,
|
375
|
-
)
|
376
|
-
# rewind the read over the data
|
377
|
-
if me is None:
|
378
|
-
raise UnexpectedTypeError(
|
379
|
-
"Attempted retry on multipart request but MultipartEncoder was None"
|
380
|
-
)
|
381
|
-
for fkey in data:
|
382
|
-
try:
|
383
|
-
data[fkey][1].seek(0)
|
384
|
-
except (AttributeError, IndexError, TypeError):
|
385
|
-
continue
|
386
|
-
else:
|
387
|
-
logger.debug(
|
388
|
-
"Sending request: %s %s\nHeaders: %s\nData: %s",
|
389
|
-
method,
|
390
|
-
url,
|
391
|
-
headers,
|
392
|
-
json,
|
393
|
-
)
|
394
|
-
resp = self.session.request(
|
395
|
-
method,
|
396
|
-
url,
|
397
|
-
params=params,
|
398
|
-
headers=headers,
|
399
|
-
data=json,
|
400
|
-
timeout=self.timeout,
|
401
|
-
)
|
402
|
-
if validate_response_status:
|
403
|
-
validation.validate_response_status(
|
404
|
-
resp, expected_status_code=validation_response_code
|
405
|
-
)
|
406
|
-
success = True
|
407
|
-
except (ResponseServerError, ResponseRedirectError, RequestException) as e:
|
408
|
-
error = e
|
409
|
-
logger.debug(e)
|
410
|
-
|
411
|
-
attempts += 1
|
412
|
-
|
413
|
-
if success and resp is not None:
|
414
|
-
logger.debug(
|
415
|
-
f"[{threading.current_thread().name}] Rest Call Response Time: "
|
416
|
-
f"{resp.elapsed.total_seconds() * 1000} ms"
|
417
|
-
)
|
418
|
-
logger.debug(
|
419
|
-
"Received response: %d %s\nHeaders: %s\nContent: %s",
|
420
|
-
resp.status_code,
|
421
|
-
resp.url,
|
422
|
-
resp.headers,
|
423
|
-
resp.content,
|
424
|
-
)
|
425
|
-
|
426
|
-
if not success:
|
427
|
-
if error is None:
|
428
|
-
# should never happen but just in case
|
429
|
-
raise ArthurUnexpectedError(f"failed to send request but error is None")
|
430
|
-
raise error
|
431
|
-
|
432
|
-
if resp is None:
|
433
|
-
raise UnexpectedTypeError("Response object was None")
|
434
|
-
elif return_raw_response:
|
435
|
-
return resp
|
436
|
-
else:
|
437
|
-
return _parse_response(resp)
|
438
|
-
|
439
|
-
def get(
|
440
|
-
self,
|
441
|
-
endpoint: str,
|
442
|
-
headers: Optional[Dict[str, str]] = None,
|
443
|
-
params: Optional[Union[Dict, bytes]] = None,
|
444
|
-
return_raw_response: bool = False,
|
445
|
-
retries: int = 0,
|
446
|
-
validate_response_status: bool = True,
|
447
|
-
validation_response_code: Optional[int] = None,
|
448
|
-
) -> Union[Dict, List, bytes, BytesIO, requests.Response]:
|
449
|
-
"""Send an HTTP GET request
|
450
|
-
|
451
|
-
:param endpoint: the specific endpoint to append to the client URL
|
452
|
-
:param headers: headers to use for this request in addition to the client default headers
|
453
|
-
:param params: query parameters to add to the request
|
454
|
-
:param return_raw_response: if true, return the requests.Response object received; otherwise attempt to parse
|
455
|
-
the response
|
456
|
-
:param retries: number of times to retry the request on failure. uses exponential backoff
|
457
|
-
:param validate_response_status: if True, raise an ArthurException if the status code is not 2XX or does not
|
458
|
-
match `validation_response_code`
|
459
|
-
:param validation_response_code: expected status code of the response to validate. if None, allow any 2XX
|
460
|
-
:return: if return_raw_response is true, return the requests.Response object received; otherwise attempt to
|
461
|
-
parse the response
|
462
|
-
:raises ArthurUserError: failed due to user error
|
463
|
-
:raises ArthurUnexpectedError: failed due to an internal error
|
464
|
-
"""
|
465
|
-
return self.send(
|
466
|
-
endpoint,
|
467
|
-
method="GET",
|
468
|
-
headers=headers,
|
469
|
-
params=params,
|
470
|
-
return_raw_response=return_raw_response,
|
471
|
-
retries=retries,
|
472
|
-
validate_response_status=validate_response_status,
|
473
|
-
validation_response_code=validation_response_code,
|
474
|
-
)
|
475
|
-
|
476
|
-
def post(
|
477
|
-
self,
|
478
|
-
endpoint: str,
|
479
|
-
json: Optional[Union[Dict, List, str, bytes]] = None,
|
480
|
-
files: Optional[
|
481
|
-
Union[Dict[str, BinaryIO], List[Tuple], Dict[str, Tuple]]
|
482
|
-
] = None,
|
483
|
-
headers: Optional[Dict[str, str]] = None,
|
484
|
-
params: Optional[Union[Dict, bytes]] = None,
|
485
|
-
return_raw_response: bool = False,
|
486
|
-
retries: int = 0,
|
487
|
-
validate_response_status: bool = True,
|
488
|
-
validation_response_code: Optional[int] = None,
|
489
|
-
) -> Union[Dict, List, bytes, BytesIO, requests.Response]:
|
490
|
-
"""Send an HTTP POST request
|
491
|
-
|
492
|
-
:param endpoint: the specific endpoint to append to the client URL
|
493
|
-
:param headers: headers to use for this request in addition to the client default headers
|
494
|
-
:param json: data to send as JSON, either a string/bytes to send directly or a dictionary/list to serialize. if
|
495
|
-
`files` is also supplied, this should be a map from name to content, to be sent along with the
|
496
|
-
`files` as a multipart request
|
497
|
-
:param files: a map from file names to file-like objects, to be sent as multipart/form-data
|
498
|
-
:param params: query parameters to add to the request
|
499
|
-
:param return_raw_response: if true, return the requests.Response object received; otherwise attempt to parse
|
500
|
-
the response
|
501
|
-
:param retries: number of times to retry the request on failure. uses exponential backoff
|
502
|
-
:param validate_response_status: if True, raise an ArthurException if the status code is not 2XX or does not
|
503
|
-
match `validation_response_code`
|
504
|
-
:param validation_response_code: expected status code of the response to validate. if None, don't validate
|
505
|
-
:return: if return_raw_response is true, return the requests.Response object received; otherwise attempt to
|
506
|
-
parse the response
|
507
|
-
"""
|
508
|
-
return self.send(
|
509
|
-
endpoint,
|
510
|
-
method="POST",
|
511
|
-
headers=headers,
|
512
|
-
json=json,
|
513
|
-
files=files,
|
514
|
-
params=params,
|
515
|
-
return_raw_response=return_raw_response,
|
516
|
-
retries=retries,
|
517
|
-
validate_response_status=validate_response_status,
|
518
|
-
validation_response_code=validation_response_code,
|
519
|
-
)
|
520
|
-
|
521
|
-
def put(
|
522
|
-
self,
|
523
|
-
endpoint: str,
|
524
|
-
json: Optional[Union[Dict, List, str, bytes]] = None,
|
525
|
-
files: Optional[
|
526
|
-
Union[Dict[str, BinaryIO], List[Tuple], Dict[str, Tuple]]
|
527
|
-
] = None,
|
528
|
-
headers: Optional[Dict[str, str]] = None,
|
529
|
-
params: Optional[Union[Dict, bytes]] = None,
|
530
|
-
return_raw_response: bool = False,
|
531
|
-
retries: int = 0,
|
532
|
-
validate_response_status: bool = True,
|
533
|
-
validation_response_code: Optional[int] = None,
|
534
|
-
) -> Union[Dict, List, bytes, BytesIO, requests.Response]:
|
535
|
-
"""Send an HTTP PUT request
|
536
|
-
|
537
|
-
:param endpoint: the specific endpoint to append to the client URL
|
538
|
-
:param headers: headers to use for this request in addition to the client default headers
|
539
|
-
:param json: data to send as JSON, either a string/bytes to send directly or a dictionary/list to serialize. if
|
540
|
-
`files` is also supplied, this should be a map from name to content, to be sent along with the `files` as a
|
541
|
-
multipart request
|
542
|
-
:param files: a map from file names to file-like objects, to be sent as multipart/form-data
|
543
|
-
:param params: query parameters to add to the request
|
544
|
-
:param return_raw_response: if true, return the requests.Response object received; otherwise attempt to parse
|
545
|
-
the response
|
546
|
-
:param retries: number of times to retry the request on failure. uses exponential backoff
|
547
|
-
:param validate_response_status: if True, raise an ArthurException if the status code is not 2XX or does not
|
548
|
-
match `validation_response_code`
|
549
|
-
:param validation_response_code: expected status code of the response to validate. if None, don't validate
|
550
|
-
:return: if return_raw_response is true, return the requests.Response object received; otherwise attempt to
|
551
|
-
parse the response
|
552
|
-
"""
|
553
|
-
return self.send(
|
554
|
-
endpoint,
|
555
|
-
method="PUT",
|
556
|
-
headers=headers,
|
557
|
-
json=json,
|
558
|
-
files=files,
|
559
|
-
params=params,
|
560
|
-
return_raw_response=return_raw_response,
|
561
|
-
retries=retries,
|
562
|
-
validate_response_status=validate_response_status,
|
563
|
-
validation_response_code=validation_response_code,
|
564
|
-
)
|
565
|
-
|
566
|
-
def patch(
|
567
|
-
self,
|
568
|
-
endpoint: str,
|
569
|
-
json: Optional[Union[Dict, List, str, bytes]] = None,
|
570
|
-
files: Optional[
|
571
|
-
Union[Dict[str, BinaryIO], List[Tuple], Dict[str, Tuple]]
|
572
|
-
] = None,
|
573
|
-
headers: Optional[Dict[str, str]] = None,
|
574
|
-
params: Optional[Union[Dict, bytes]] = None,
|
575
|
-
return_raw_response: bool = False,
|
576
|
-
retries: int = 0,
|
577
|
-
validate_response_status: bool = True,
|
578
|
-
validation_response_code: Optional[int] = None,
|
579
|
-
) -> Union[Dict, List, bytes, BytesIO, requests.Response]:
|
580
|
-
"""Send an HTTP POST request
|
581
|
-
|
582
|
-
:param endpoint: the specific endpoint to append to the client URL
|
583
|
-
:param headers: headers to use for this request in addition to the client default headers
|
584
|
-
:param json: data to send as JSON, either a string/bytes to send directly or a dictionary/list to serialize.
|
585
|
-
if `files` is also supplied, this should be a map from name to content, to be sent along with the `files` as
|
586
|
-
a multipart request
|
587
|
-
:param files: a map from file names to file-like objects, to be sent as multipart/form-data
|
588
|
-
:param params: query parameters to add to the request
|
589
|
-
:param return_raw_response: if true, return the requests.Response object received; otherwise attempt to parse
|
590
|
-
the response
|
591
|
-
:param retries: number of times to retry the request on failure. uses exponential backoff
|
592
|
-
:param validate_response_status: if True, raise an ArthurException if the status code is not 2XX or does not
|
593
|
-
match `validation_response_code`
|
594
|
-
:param validation_response_code: expected status code of the response to validate. if None, don't validate
|
595
|
-
:return: if return_raw_response is true, return the requests.Response object received; otherwise attempt to
|
596
|
-
parse the response
|
597
|
-
"""
|
598
|
-
return self.send(
|
599
|
-
endpoint,
|
600
|
-
method="PATCH",
|
601
|
-
headers=headers,
|
602
|
-
json=json,
|
603
|
-
files=files,
|
604
|
-
params=params,
|
605
|
-
return_raw_response=return_raw_response,
|
606
|
-
retries=retries,
|
607
|
-
validate_response_status=validate_response_status,
|
608
|
-
validation_response_code=validation_response_code,
|
609
|
-
)
|
610
|
-
|
611
|
-
def delete(
|
612
|
-
self,
|
613
|
-
endpoint: str,
|
614
|
-
json: Optional[Union[Dict, List, str, bytes]] = None,
|
615
|
-
files: Optional[
|
616
|
-
Union[Dict[str, BinaryIO], List[Tuple], Dict[str, Tuple]]
|
617
|
-
] = None,
|
618
|
-
headers: Optional[Dict[str, str]] = None,
|
619
|
-
return_raw_response: bool = False,
|
620
|
-
params: Optional[Union[Dict, bytes]] = None,
|
621
|
-
retries: int = 0,
|
622
|
-
validate_response_status: bool = True,
|
623
|
-
validation_response_code: Optional[int] = None,
|
624
|
-
) -> Union[Dict, List, bytes, BytesIO, requests.Response]:
|
625
|
-
"""Send an HTTP DELETE request
|
626
|
-
|
627
|
-
:param endpoint: the specific endpoint to append to the client URL
|
628
|
-
:param headers: headers to use for this request in addition to the client default headers
|
629
|
-
:param json: data to send as JSON, either a string/bytes to send directly or a dictionary/list to serialize. if
|
630
|
-
`files` is also supplied, this should be a map from name to content, to be sent along with the `files` as a
|
631
|
-
multipart request
|
632
|
-
:param files: a map from file names to file-like objects, to be sent as multipart/form-data
|
633
|
-
:param return_raw_response: if true, return the requests.Response object received; otherwise attempt to parse
|
634
|
-
the response
|
635
|
-
:param params: query parameters to add to the request
|
636
|
-
:param retries: number of times to retry the request on failure. uses exponential backoff
|
637
|
-
:param validate_response_status: if True, raise an ArthurException if the status code is not 2XX or does not
|
638
|
-
match validation_response_code
|
639
|
-
:param validation_response_code: expected status code of the response to validate. if None, don't validate
|
640
|
-
:return: if return_raw_response is true, return the requests.Response object received; otherwise attempt to
|
641
|
-
parse the response
|
642
|
-
"""
|
643
|
-
return self.send(
|
644
|
-
endpoint,
|
645
|
-
method="DELETE",
|
646
|
-
headers=headers,
|
647
|
-
json=json,
|
648
|
-
files=files,
|
649
|
-
return_raw_response=return_raw_response,
|
650
|
-
retries=retries,
|
651
|
-
validate_response_status=validate_response_status,
|
652
|
-
params=params,
|
653
|
-
validation_response_code=validation_response_code,
|
654
|
-
)
|