From f5611b482dd99ed68635566d78aa2babab87baa2 Mon Sep 17 00:00:00 2001 From: "quantcloud[bot]" Date: Sun, 12 Jul 2026 17:26:43 +0000 Subject: [PATCH] feat(sdk): v4.20.0 - Auto-generated from unified API spec Generated from unified API spec v4.20.0 Changes: - Auto-generated SDK updates This PR was automatically created by the API generation pipeline. --- .openapi-generator/FILES | 396 +- README.md | 226 +- docs/AIAgentsApi.md | 257 + docs/AIApi.md | 97 + docs/AICustomToolsApi.md | 92 +- docs/AIFilterPoliciesApi.md | 565 ++ docs/AIGovernanceApi.md | 246 + docs/AIOrchestrationsApi.md | 796 +++ docs/AISearchApi.md | 1353 +++++ docs/AISkillsApi.md | 980 ++++ docs/AISlackBotsApi.md | 606 ++ docs/AIToolsApi.md | 11 +- docs/{AIMonitoringApi.md => AIUsageApi.md} | 31 +- docs/AIVectorDatabaseApi.md | 192 +- docs/AiSearchChatRequest.md | 32 + docs/AiSearchDeletePagesRequest.md | 30 + docs/AiSearchEnableRequest.md | 30 + docs/AiSearchIngestPagesRequest.md | 30 + docs/AiSearchIngestPagesRequestPagesInner.md | 37 + docs/AiSearchSearchRequest.md | 31 + docs/AiSearchTriggerCrawlRequest.md | 29 + docs/AiSearchUpdateSettingsRequest.md | 30 + docs/Application.md | 9 +- docs/ApplicationCache.md | 32 + docs/ApplicationEnvironmentsInner.md | 32 - docs/CDNMetricsApi.md | 275 + docs/ChatInference200ResponseUsage.md | 3 +- docs/ChatInferenceRequest.md | 3 + docs/ChatInferenceRequestGuardrails.md | 32 + docs/ChatInferenceStreamRequest.md | 3 + ...ChatWithAIAgent200ResponseResponseUsage.md | 2 + docs/ChatWithAIAgentRequest.md | 3 + docs/Compose.md | 2 + docs/ContainerOriginProtectionConfig.md | 1 + docs/CreateAIAgentRequest.md | 4 + docs/CreateCustomTool201Response.md | 3 + docs/CreateCustomToolRequest.md | 8 +- docs/CreateEnvironmentRequest.md | 2 + docs/CreateFilterPolicyRequest.md | 32 + docs/CreateFilterPolicyRequestRulesInner.md | 32 + ...reateFilterPolicyRequestRulesInnerMatch.md | 32 + docs/CreateOrchestrationRequest.md | 40 + docs/CreateOrchestrationRequestInputSource.md | 32 + ...CreateOrchestrationRequestStopCondition.md | 31 + docs/CreateSkill201Response.md | 31 + docs/CreateSkillRequest.md | 39 + docs/CreateSlackBot201Response.md | 29 + docs/CreateSlackBotRequest.md | 50 + docs/CreateVectorCollectionRequest.md | 2 +- docs/Cron.md | 7 +- docs/DeleteAgentOverlay200Response.md | 30 + docs/DeleteSkill200Response.md | 30 + docs/DeleteSkillCollection200Response.md | 30 + docs/DeleteSlackBot200Response.md | 30 + docs/DeleteVectorCollection200Response.md | 30 - docs/DeleteVectorDocuments200Response.md | 31 + docs/DeleteVectorDocumentsRequest.md | 32 + docs/DeleteVectorDocumentsRequestMetadata.md | 30 + docs/EnvironmentResponse.md | 38 +- docs/GetAIAgent200ResponseAgent.md | 5 + docs/GetAIOrchestrationStatus200Response.md | 3 +- docs/GetAIUsageStats200Response.md | 31 - .../GetAIUsageStats200ResponseByModelValue.md | 30 - docs/GetAgentOverlay200Response.md | 30 + docs/GetAgentOverlay200ResponseBase.md | 34 + docs/GetAgentOverlay200ResponseOverlay.md | 39 + docs/GetCustomTool200Response.md | 29 + docs/GetCustomTool200ResponseTool.md | 39 + ...leExecutionStatus200ResponseResultUsage.md | 2 + docs/GetGovernanceConfig200Response.md | 36 + ...tGovernanceConfig200ResponseSpendLimits.md | 38 + ...ResponseSpendLimitsInterfaceLimitsValue.md | 30 + ...00ResponseSpendLimitsUserOverridesValue.md | 31 + docs/GetGovernanceSpend200Response.md | 33 + docs/GetGovernanceSpend200ResponseBudget.md | 31 + ...etGovernanceSpend200ResponseDailyBudget.md | 31 + docs/GetGovernanceSpend200ResponseOrgTotal.md | 30 + ...GetGovernanceSpend200ResponseTodayTotal.md | 30 + .../GetGovernanceSpend200ResponseUserTotal.md | 30 + docs/GetMyUsage200Response.md | 33 + docs/GetMyUsage200ResponseDaily.md | 29 + docs/GetMyUsage200ResponseMonthly.md | 30 + docs/GetMyUsage200ResponseQuota.md | 30 + docs/GetMyUsage200ResponseQuotaDailyLimit.md | 33 + .../GetMyUsage200ResponseQuotaMonthlyLimit.md | 32 + docs/GetRestoreStatus200Response.md | 39 + docs/GetScalingPolicyResponse.md | 34 + docs/GetSkill200Response.md | 29 + docs/GetSkill200ResponseSkill.md | 42 + docs/GetSlackBot200Response.md | 29 + docs/GetSlackBot200ResponseBot.md | 55 + docs/ImportSkill201Response.md | 30 + docs/ImportSkillCollection201Response.md | 33 + docs/ImportSkillCollectionRequest.md | 32 + docs/ImportSkillCollectionRequestSource.md | 32 + docs/ImportSkillRequest.md | 37 + docs/ImportSkillRequestSource.md | 33 + docs/KVApi.md | 174 + docs/KVLinkToProject200Response.md | 30 + docs/KVLinkToProjectRequest.md | 29 + docs/ListAIAgents200ResponseAgentsInner.md | 5 + docs/ListCustomTools200ResponseToolsInner.md | 2 +- docs/ListOrchestrationBatches200Response.md | 30 + ...estrationBatches200ResponseBatchesInner.md | 38 + docs/ListOrchestrations200Response.md | 30 + docs/ListSkillCollections200Response.md | 29 + ...lCollections200ResponseCollectionsInner.md | 31 + docs/ListSkills200Response.md | 30 + docs/ListSkills200ResponseSkillsInner.md | 37 + docs/ListSlackBots200Response.md | 29 + docs/ListSlackBots200ResponseBotsInner.md | 47 + docs/OaiChatCompletions200Response.md | 34 + ...iChatCompletions200ResponseChoicesInner.md | 31 + ...mpletions200ResponseChoicesInnerMessage.md | 31 + docs/OaiChatCompletions200ResponseUsage.md | 31 + docs/OaiChatCompletionsRequest.md | 37 + .../OaiChatCompletionsRequestMessagesInner.md | 30 + docs/OaiEmbeddings200Response.md | 32 + docs/OaiEmbeddings200ResponseDataInner.md | 31 + docs/OaiEmbeddings200ResponseUsage.md | 30 + docs/OaiEmbeddingsRequest.md | 30 + docs/OaiGetModel200Response.md | 32 + docs/OaiListModels200Response.md | 30 + docs/OaiListModels200ResponseDataInner.md | 32 + docs/OpenAICompatibilityApi.md | 330 ++ docs/OrchestrationApi.md | 120 - docs/PatchEnvironmentComposeRequest.md | 2 + docs/RestoreDatabase202Response.md | 31 + docs/RestoreDatabaseRequest.md | 30 + docs/RestoreFilesystem202Response.md | 31 + docs/RestoreFilesystemRequest.md | 30 + docs/RestoreManagementApi.md | 271 + docs/ScalingPolicy.md | 32 - docs/ScalingPolicyApi.md | 118 +- docs/ScalingPolicyListResponse.md | 29 + ...SearchSlackWorkspaceChannels200Response.md | 29 + ...orkspaceChannels200ResponseResultsInner.md | 30 + docs/SearchSlackWorkspaceUsers200Response.md | 29 + ...ckWorkspaceUsers200ResponseResultsInner.md | 31 + docs/SetScalingPolicyRequest.md | 32 + docs/SubscriptionApi.md | 88 + docs/SyncSkillCollection200Response.md | 34 + docs/TokensApi.md | 250 + docs/TokensCreate201Response.md | 36 + docs/TokensCreateRequest.md | 33 + docs/TokensDelete200Response.md | 29 + docs/TokensList200ResponseInner.md | 32 + docs/UpdateAIAgentRequest.md | 4 + docs/UpdateFilterPolicyRequest.md | 32 + docs/UpdateGovernanceConfig200Response.md | 30 + docs/UpdateGovernanceConfigRequest.md | 35 + docs/UpdateSkill200Response.md | 31 + docs/UpdateSkillRequest.md | 39 + docs/UpdateSlackBotRequest.md | 50 + ...oadVectorDocumentsRequestDocumentsInner.md | 1 + docs/UpsertAgentOverlay200Response.md | 29 + docs/UpsertAgentOverlayRequest.md | 39 + docs/V2CrawlerSchedule.md | 2 +- docs/V2CrawlerScheduleRequest.md | 4 +- docs/V2MetricData.md | 32 + docs/V2MetricDataPoint.md | 30 + docs/V2MetricDataPointTimestamp.md | 29 + docs/V2MetricsMeta.md | 34 + docs/V2MetricsResponse.md | 30 + docs/V2Rule.md | 3 + docs/V2RuleAuth.md | 3 + docs/V2RuleAuthRequest.md | 3 + docs/V2RuleBotChallenge.md | 3 + docs/V2RuleBotChallengeRequest.md | 3 + docs/V2RuleContentFilter.md | 3 + docs/V2RuleContentFilterRequest.md | 3 + docs/V2RuleCustomResponse.md | 3 + docs/V2RuleCustomResponseRequest.md | 3 + docs/V2RuleFunction.md | 3 + docs/V2RuleFunctionRequest.md | 3 + docs/V2RuleHeader.md | 3 + docs/V2RuleHeaderRequest.md | 3 + docs/V2RuleProxy.md | 3 + docs/V2RuleProxyRequest.md | 3 + docs/V2RuleRedirect.md | 3 + docs/V2RuleRedirectRequest.md | 3 + docs/V2RuleRequest.md | 3 + docs/V2RuleServeStatic.md | 3 + docs/V2RuleServeStaticRequest.md | 3 + pyproject.toml | 2 +- quantcdn/__init__.py | 134 +- quantcdn/__version__.py | 2 +- quantcdn/api/__init__.py | 15 +- quantcdn/api/ai_agents_api.py | 1155 +++- .../api/{orchestration_api.py => ai_api.py} | 169 +- quantcdn/api/ai_custom_tools_api.py | 303 +- quantcdn/api/ai_file_storage_api.py | 2 +- quantcdn/api/ai_filter_policies_api.py | 2004 +++++++ quantcdn/api/ai_governance_api.py | 855 +++ quantcdn/api/ai_inference_api.py | 2 +- quantcdn/api/ai_models_api.py | 2 +- quantcdn/api/ai_orchestrations_api.py | 2694 +++++++++ quantcdn/api/ai_search_api.py | 4987 +++++++++++++++++ quantcdn/api/ai_sessions_api.py | 2 +- quantcdn/api/ai_skills_api.py | 3290 +++++++++++ quantcdn/api/ai_slack_bots_api.py | 2101 +++++++ quantcdn/api/ai_task_management_api.py | 2 +- quantcdn/api/ai_tools_api.py | 14 +- .../{ai_monitoring_api.py => ai_usage_api.py} | 59 +- quantcdn/api/ai_vector_database_api.py | 664 ++- quantcdn/api/applications_api.py | 2 +- quantcdn/api/backup_management_api.py | 2 +- quantcdn/api/cdn_metrics_api.py | 1041 ++++ quantcdn/api/commands_api.py | 2 +- quantcdn/api/compose_api.py | 2 +- quantcdn/api/containers_api.py | 2 +- quantcdn/api/crawler_schedules_api.py | 2 +- quantcdn/api/crawlers_api.py | 2 +- quantcdn/api/cron_api.py | 2 +- quantcdn/api/domains_api.py | 2 +- quantcdn/api/environments_api.py | 2 +- quantcdn/api/headers_api.py | 2 +- quantcdn/api/kv_api.py | 709 ++- quantcdn/api/open_ai_compatibility_api.py | 1121 ++++ quantcdn/api/organizations_api.py | 2 +- quantcdn/api/projects_api.py | 2 +- quantcdn/api/purge_api.py | 2 +- quantcdn/api/restore_management_api.py | 1022 ++++ quantcdn/api/rules_api.py | 2 +- quantcdn/api/scaling_policy_api.py | 324 +- quantcdn/api/ssh_access_api.py | 2 +- quantcdn/api/subscription_api.py | 315 ++ quantcdn/api/tokens_api.py | 877 +++ quantcdn/api/variables_api.py | 2 +- quantcdn/api/volumes_api.py | 2 +- quantcdn/api_client.py | 2 +- quantcdn/configuration.py | 4 +- quantcdn/exceptions.py | 2 +- quantcdn/models/__init__.py | 119 +- quantcdn/models/ai_search_chat_request.py | 94 + .../models/ai_search_delete_pages_request.py | 89 + quantcdn/models/ai_search_enable_request.py | 89 + ...e.py => ai_search_ingest_pages_request.py} | 45 +- ...search_ingest_pages_request_pages_inner.py | 103 + quantcdn/models/ai_search_search_request.py | 92 + .../models/ai_search_trigger_crawl_request.py | 87 + .../ai_search_update_settings_request.py | 89 + quantcdn/models/application.py | 41 +- quantcdn/models/application_cache.py | 106 + quantcdn/models/application_database.py | 2 +- ...pplication_deployment_information_inner.py | 2 +- quantcdn/models/application_filesystem.py | 2 +- .../models/application_image_reference.py | 2 +- .../bulk_set_environment_variables_request.py | 2 +- ...ent_variables_request_environment_inner.py | 2 +- quantcdn/models/chat_inference200_response.py | 2 +- .../chat_inference200_response_response.py | 2 +- ...inference200_response_response_tool_use.py | 2 +- ...ce200_response_response_tool_use_one_of.py | 2 +- ...esponse_response_tool_use_one_of1_inner.py | 2 +- ...esponse_response_tool_use_one_of_result.py | 2 +- .../chat_inference200_response_usage.py | 14 +- quantcdn/models/chat_inference202_response.py | 2 +- quantcdn/models/chat_inference_request.py | 16 +- .../chat_inference_request_guardrails.py | 101 + .../chat_inference_request_messages_inner.py | 2 +- ...nference_request_messages_inner_content.py | 2 +- ...est_messages_inner_content_one_of_inner.py | 2 +- ...sages_inner_content_one_of_inner_one_of.py | 2 +- ...ages_inner_content_one_of_inner_one_of1.py | 2 +- ...nner_content_one_of_inner_one_of1_image.py | 2 +- ...ntent_one_of_inner_one_of1_image_source.py | 2 +- ...ages_inner_content_one_of_inner_one_of2.py | 2 +- ...nner_content_one_of_inner_one_of2_video.py | 2 +- ...ntent_one_of_inner_one_of2_video_source.py | 2 +- ...ages_inner_content_one_of_inner_one_of3.py | 2 +- ...r_content_one_of_inner_one_of3_document.py | 2 +- ...nt_one_of_inner_one_of3_document_source.py | 2 +- .../chat_inference_request_response_format.py | 2 +- .../chat_inference_request_tool_config.py | 2 +- ...ference_request_tool_config_tools_inner.py | 2 +- ...quest_tool_config_tools_inner_tool_spec.py | 2 +- ...nfig_tools_inner_tool_spec_input_schema.py | 2 +- .../models/chat_inference_stream_request.py | 16 +- ...inference_stream_request_messages_inner.py | 2 +- ...e_stream_request_messages_inner_content.py | 2 +- .../models/chat_with_ai_agent200_response.py | 2 +- ...chat_with_ai_agent200_response_response.py | 2 +- ...ith_ai_agent200_response_response_usage.py | 14 +- .../models/chat_with_ai_agent202_response.py | 2 +- quantcdn/models/chat_with_ai_agent_request.py | 13 +- quantcdn/models/command.py | 2 +- quantcdn/models/compose.py | 19 +- quantcdn/models/container.py | 2 +- quantcdn/models/container_depends_on_inner.py | 2 +- .../models/container_environment_inner.py | 2 +- quantcdn/models/container_health_check.py | 2 +- quantcdn/models/container_image_reference.py | 2 +- .../models/container_mount_points_inner.py | 2 +- .../container_origin_protection_config.py | 13 +- quantcdn/models/container_secrets_inner.py | 2 +- quantcdn/models/crawlers_run200_response.py | 2 +- quantcdn/models/crawlers_run_request.py | 2 +- .../models/create_ai_agent201_response.py | 2 +- quantcdn/models/create_ai_agent_request.py | 31 +- .../models/create_ai_session201_response.py | 2 +- quantcdn/models/create_ai_session_request.py | 2 +- ..._session_request_initial_messages_inner.py | 2 +- .../models/create_application403_response.py | 2 +- quantcdn/models/create_application_request.py | 2 +- .../create_application_request_database.py | 2 +- ...e_application_request_environment_inner.py | 2 +- .../create_application_request_filesystem.py | 2 +- quantcdn/models/create_backup202_response.py | 2 +- quantcdn/models/create_backup_request.py | 2 +- quantcdn/models/create_command_request.py | 2 +- quantcdn/models/create_cron_job_request.py | 2 +- .../models/create_custom_tool201_response.py | 12 +- quantcdn/models/create_custom_tool_request.py | 52 +- .../models/create_environment403_response.py | 2 +- quantcdn/models/create_environment_request.py | 18 +- ...e_environment_request_environment_inner.py | 2 +- .../models/create_filter_policy_request.py | 107 + ...reate_filter_policy_request_rules_inner.py | 117 + ...filter_policy_request_rules_inner_match.py | 102 + .../models/create_orchestration_request.py | 143 + ...eate_orchestration_request_input_source.py | 100 + ...te_orchestration_request_stop_condition.py | 102 + quantcdn/models/create_skill201_response.py | 91 + quantcdn/models/create_skill_request.py | 107 + .../models/create_slack_bot201_response.py | 87 + quantcdn/models/create_slack_bot_request.py | 137 + quantcdn/models/create_task201_response.py | 2 +- quantcdn/models/create_task_request.py | 2 +- .../create_vector_collection201_response.py | 2 +- ...ector_collection201_response_collection.py | 2 +- .../create_vector_collection_request.py | 4 +- quantcdn/models/create_volume_request.py | 2 +- quantcdn/models/cron.py | 30 +- quantcdn/models/cron_run.py | 2 +- ...py => delete_agent_overlay200_response.py} | 10 +- .../models/delete_ai_agent200_response.py | 2 +- .../models/delete_ai_session200_response.py | 2 +- quantcdn/models/delete_backup200_response.py | 2 +- .../models/delete_custom_tool200_response.py | 2 +- quantcdn/models/delete_file200_response.py | 2 +- quantcdn/models/delete_skill200_response.py | 89 + .../delete_skill_collection200_response.py | 89 + .../models/delete_slack_bot200_response.py | 89 + quantcdn/models/delete_task200_response.py | 2 +- quantcdn/models/delete_task409_response.py | 2 +- .../delete_vector_documents200_response.py | 91 + .../models/delete_vector_documents_request.py | 98 + ...elete_vector_documents_request_metadata.py | 89 + .../models/download_backup200_response.py | 2 +- quantcdn/models/embeddings200_response.py | 2 +- .../embeddings200_response_embeddings.py | 2 +- .../models/embeddings200_response_usage.py | 2 +- quantcdn/models/embeddings_request.py | 2 +- quantcdn/models/embeddings_request_input.py | 2 +- quantcdn/models/environment.py | 2 +- quantcdn/models/environment_response.py | 52 +- quantcdn/models/environment_summary.py | 2 +- .../models/extend_ai_session200_response.py | 2 +- quantcdn/models/extend_ai_session_request.py | 2 +- .../models/get_agent_overlay200_response.py | 102 + .../get_agent_overlay200_response_base.py | 95 + .../get_agent_overlay200_response_overlay.py | 107 + quantcdn/models/get_ai_agent200_response.py | 2 +- .../models/get_ai_agent200_response_agent.py | 16 +- quantcdn/models/get_ai_model200_response.py | 2 +- .../get_ai_model200_response_capabilities.py | 2 +- .../get_ai_model200_response_pricing.py | 2 +- quantcdn/models/get_ai_model404_response.py | 2 +- ...get_ai_orchestration_status200_response.py | 16 +- ...stration_status200_response_tools_inner.py | 2 +- ...get_ai_orchestration_status404_response.py | 2 +- quantcdn/models/get_ai_session200_response.py | 2 +- ...et_ai_tool_execution_status200_response.py | 2 +- ...ool_execution_status200_response_result.py | 2 +- ...et_ai_tool_execution_status404_response.py | 2 +- .../models/get_custom_tool200_response.py | 91 + .../get_custom_tool200_response_tool.py | 138 + .../get_dependency_graph200_response.py | 2 +- ...et_durable_execution_status200_response.py | 2 +- ...able_execution_status200_response_error.py | 2 +- ..._status200_response_pending_tools_inner.py | 2 +- ...ble_execution_status200_response_result.py | 2 +- ...tion_status200_response_result_response.py | 2 +- ...ecution_status200_response_result_usage.py | 14 +- .../get_ecr_login_credentials200_response.py | 2 +- .../get_environment_logs200_response.py | 2 +- ...nment_logs200_response_log_events_inner.py | 2 +- quantcdn/models/get_file200_response.py | 2 +- .../get_governance_config200_response.py | 120 + ...ernance_config200_response_spend_limits.py | 178 + ...nse_spend_limits_interface_limits_value.py | 99 + ...ponse_spend_limits_user_overrides_value.py | 106 + .../get_governance_spend200_response.py | 130 + ...get_governance_spend200_response_budget.py | 91 + ...vernance_spend200_response_daily_budget.py | 91 + ..._governance_spend200_response_org_total.py | 89 + ...overnance_spend200_response_today_total.py | 89 + ...governance_spend200_response_user_total.py | 89 + quantcdn/models/get_my_usage200_response.py | 112 + ...e.py => get_my_usage200_response_daily.py} | 18 +- .../get_my_usage200_response_monthly.py | 89 + .../models/get_my_usage200_response_quota.py | 107 + ..._my_usage200_response_quota_daily_limit.py | 94 + ...y_usage200_response_quota_monthly_limit.py | 91 + .../models/get_restore_status200_response.py | 138 + .../models/get_scaling_policy_response.py | 112 + quantcdn/models/get_skill200_response.py | 91 + .../models/get_skill200_response_skill.py | 114 + quantcdn/models/get_slack_bot200_response.py | 91 + .../models/get_slack_bot200_response_bot.py | 160 + .../get_ssh_access_credentials200_response.py | 2 +- ...ess_credentials200_response_credentials.py | 2 +- quantcdn/models/get_task200_response.py | 2 +- .../get_vector_collection200_response.py | 2 +- ...ector_collection200_response_collection.py | 2 +- .../models/image_generation200_response.py | 2 +- quantcdn/models/image_generation_request.py | 2 +- ...ation_request_background_removal_params.py | 2 +- ..._request_color_guided_generation_params.py | 2 +- ...eration_request_image_generation_config.py | 2 +- ...neration_request_image_variation_params.py | 2 +- ...e_generation_request_in_painting_params.py | 2 +- ..._generation_request_out_painting_params.py | 2 +- ...generation_request_text_to_image_params.py | 2 +- quantcdn/models/import_skill201_response.py | 89 + .../import_skill_collection201_response.py | 95 + .../models/import_skill_collection_request.py | 105 + .../import_skill_collection_request_source.py | 100 + quantcdn/models/import_skill_request.py | 107 + .../models/import_skill_request_source.py | 102 + .../models/kv_items_create200_response.py | 2 +- .../models/kv_items_delete200_response.py | 2 +- quantcdn/models/kv_items_show200_response.py | 2 +- .../models/kv_items_show200_response_value.py | 2 +- .../models/kv_link_to_project200_response.py | 89 + quantcdn/models/kv_link_to_project_request.py | 87 + quantcdn/models/list_ai_agents200_response.py | 2 +- ...list_ai_agents200_response_agents_inner.py | 16 +- quantcdn/models/list_ai_models200_response.py | 2 +- ...list_ai_models200_response_models_inner.py | 2 +- ...s200_response_models_inner_capabilities.py | 2 +- .../list_ai_sessions200_response_inner.py | 2 +- .../list_ai_tool_executions200_response.py | 2 +- ...executions200_response_executions_inner.py | 2 +- .../models/list_ai_tool_names200_response.py | 2 +- quantcdn/models/list_ai_tools200_response.py | 2 +- .../list_ai_tools200_response_tools_inner.py | 2 +- ...tools200_response_tools_inner_tool_spec.py | 2 +- ...onse_tools_inner_tool_spec_input_schema.py | 2 +- quantcdn/models/list_backups200_response.py | 2 +- .../list_backups200_response_backups_inner.py | 2 +- quantcdn/models/list_backups422_response.py | 2 +- .../models/list_custom_tools200_response.py | 2 +- ...st_custom_tools200_response_tools_inner.py | 4 +- quantcdn/models/list_files200_response.py | 2 +- .../list_files200_response_files_inner.py | 2 +- .../list_orchestration_batches200_response.py | 102 + ...ation_batches200_response_batches_inner.py | 121 + .../models/list_orchestrations200_response.py | 94 + .../list_skill_collections200_response.py | 95 + ...llections200_response_collections_inner.py | 91 + quantcdn/models/list_skills200_response.py | 97 + .../list_skills200_response_skills_inner.py | 104 + .../models/list_slack_bots200_response.py | 95 + .../list_slack_bots200_response_bots_inner.py | 144 + quantcdn/models/list_tasks200_response.py | 2 +- .../list_tasks200_response_tasks_inner.py | 2 +- .../list_vector_collections200_response.py | 2 +- ...llections200_response_collections_inner.py | 2 +- .../oai_chat_completions200_response.py | 109 + ...t_completions200_response_choices_inner.py | 105 + ...tions200_response_choices_inner_message.py | 96 + .../oai_chat_completions200_response_usage.py | 91 + .../models/oai_chat_completions_request.py | 116 + ...chat_completions_request_messages_inner.py | 99 + quantcdn/models/oai_embeddings200_response.py | 105 + .../oai_embeddings200_response_data_inner.py | 91 + .../oai_embeddings200_response_usage.py | 89 + quantcdn/models/oai_embeddings_request.py | 94 + quantcdn/models/oai_get_model200_response.py | 93 + .../models/oai_list_models200_response.py | 97 + .../oai_list_models200_response_data_inner.py | 93 + .../organizations_list200_response_inner.py | 2 +- .../patch_environment_compose202_response.py | 2 +- ..._compose202_response_spot_configuration.py | 2 +- .../patch_environment_compose400_response.py | 2 +- .../patch_environment_compose_request.py | 18 +- ...ment_compose_request_spot_configuration.py | 2 +- quantcdn/models/purge_create_request.py | 2 +- .../query_vector_collection200_response.py | 2 +- ...ector_collection200_response_pagination.py | 2 +- ...or_collection200_response_results_inner.py | 2 +- .../models/query_vector_collection_request.py | 2 +- .../query_vector_collection_request_filter.py | 2 +- .../models/restore_database202_response.py | 91 + quantcdn/models/restore_database_request.py | 89 + ...r.py => restore_filesystem202_response.py} | 26 +- quantcdn/models/restore_filesystem_request.py | 89 + .../models/scaling_policy_list_response.py | 95 + ...ch_slack_workspace_channels200_response.py | 95 + ...pace_channels200_response_results_inner.py | 89 + ...earch_slack_workspace_users200_response.py | 95 + ...rkspace_users200_response_results_inner.py | 91 + ...olicy.py => set_scaling_policy_request.py} | 25 +- quantcdn/models/spot_configuration.py | 2 +- .../submit_tool_callback200_response.py | 2 +- .../models/submit_tool_callback_request.py | 2 +- ...ool_callback_request_tool_results_inner.py | 2 +- quantcdn/models/sync_operation.py | 2 +- .../sync_skill_collection200_response.py | 97 + .../models/sync_to_environment_request.py | 2 +- quantcdn/models/tokens_create201_response.py | 122 + quantcdn/models/tokens_create_request.py | 125 + quantcdn/models/tokens_delete200_response.py | 87 + .../models/tokens_list200_response_inner.py | 99 + .../models/update_ai_agent200_response.py | 2 +- quantcdn/models/update_ai_agent_request.py | 31 +- .../models/update_ai_session200_response.py | 2 +- quantcdn/models/update_ai_session_request.py | 2 +- ...e_ai_session_request_new_messages_inner.py | 2 +- quantcdn/models/update_cron_job_request.py | 2 +- quantcdn/models/update_environment_request.py | 2 +- .../update_environment_state_request.py | 2 +- .../update_environment_variable_request.py | 2 +- .../models/update_filter_policy_request.py | 107 + .../update_governance_config200_response.py | 89 + .../update_governance_config_request.py | 125 + quantcdn/models/update_skill200_response.py | 91 + quantcdn/models/update_skill_request.py | 107 + quantcdn/models/update_slack_bot_request.py | 140 + quantcdn/models/update_task200_response.py | 2 +- quantcdn/models/update_task_request.py | 2 +- quantcdn/models/upload_file201_response.py | 2 +- quantcdn/models/upload_file_request.py | 2 +- .../upload_vector_documents200_response.py | 2 +- .../models/upload_vector_documents_request.py | 2 +- ...ector_documents_request_documents_inner.py | 7 +- ...uments_request_documents_inner_metadata.py | 2 +- .../upsert_agent_overlay200_response.py | 87 + .../models/upsert_agent_overlay_request.py | 123 + quantcdn/models/v1_content_item.py | 2 +- quantcdn/models/v1_content_list_response.py | 2 +- quantcdn/models/v1_content_request.py | 2 +- quantcdn/models/v1_delete_response.py | 2 +- quantcdn/models/v1_error.py | 2 +- quantcdn/models/v1_form_submission_item.py | 2 +- .../v1_form_submission_list_response.py | 2 +- .../models/v1_get_metric_series_response.py | 2 +- .../v1_get_metric_series_response_data.py | 2 +- quantcdn/models/v1_get_metrics_response.py | 2 +- .../models/v1_get_metrics_response_data.py | 2 +- quantcdn/models/v1_global_meta_response.py | 2 +- .../v1_global_meta_response_global_meta.py | 2 +- quantcdn/models/v1_info.py | 2 +- quantcdn/models/v1_meta.py | 2 +- quantcdn/models/v1_metric_day_stats.py | 2 +- quantcdn/models/v1_metric_minute_stats.py | 2 +- quantcdn/models/v1_metric_month_stats.py | 2 +- quantcdn/models/v1_ping_response.py | 2 +- quantcdn/models/v1_proxy_item.py | 2 +- quantcdn/models/v1_proxy_list_response.py | 2 +- quantcdn/models/v1_redirect_item.py | 2 +- quantcdn/models/v1_redirect_list_response.py | 2 +- quantcdn/models/v1_redirect_request.py | 2 +- quantcdn/models/v1_redirect_response.py | 2 +- quantcdn/models/v1_revision.py | 2 +- quantcdn/models/v1_revisions_response.py | 2 +- quantcdn/models/v1_search_hit.py | 2 +- quantcdn/models/v1_search_items_response.py | 2 +- .../models/v1_search_mutation_response.py | 2 +- quantcdn/models/v1_search_record.py | 2 +- quantcdn/models/v1_search_response.py | 2 +- quantcdn/models/v1_series_point_day.py | 2 +- quantcdn/models/v1_series_point_month.py | 2 +- quantcdn/models/v1_transition.py | 2 +- quantcdn/models/v1_upload_response.py | 2 +- quantcdn/models/v1_url_meta_request.py | 2 +- quantcdn/models/v1_url_meta_response.py | 2 +- quantcdn/models/v1_waf_log_item.py | 2 +- quantcdn/models/v1_waf_log_list_response.py | 2 +- quantcdn/models/v2_crawler.py | 2 +- quantcdn/models/v2_crawler_assets.py | 2 +- .../v2_crawler_assets_network_intercept.py | 2 +- quantcdn/models/v2_crawler_assets_parser.py | 2 +- quantcdn/models/v2_crawler_request.py | 2 +- quantcdn/models/v2_crawler_run.py | 2 +- quantcdn/models/v2_crawler_schedule.py | 4 +- .../models/v2_crawler_schedule_request.py | 8 +- quantcdn/models/v2_crawler_sitemap_inner.py | 2 +- quantcdn/models/v2_custom_header_request.py | 2 +- quantcdn/models/v2_domain.py | 2 +- .../v2_domain_dns_go_live_records_inner.py | 2 +- .../v2_domain_dns_validation_records_inner.py | 2 +- quantcdn/models/v2_domain_request.py | 2 +- quantcdn/models/v2_error.py | 2 +- quantcdn/models/v2_metric_data.py | 101 + quantcdn/models/v2_metric_data_point.py | 93 + .../models/v2_metric_data_point_timestamp.py | 144 + quantcdn/models/v2_metrics_meta.py | 116 + quantcdn/models/v2_metrics_response.py | 106 + quantcdn/models/v2_organization.py | 2 +- quantcdn/models/v2_organization_request.py | 2 +- quantcdn/models/v2_project.py | 2 +- quantcdn/models/v2_project_request.py | 2 +- quantcdn/models/v2_rule.py | 10 +- quantcdn/models/v2_rule_auth.py | 10 +- quantcdn/models/v2_rule_auth_action.py | 2 +- quantcdn/models/v2_rule_auth_request.py | 10 +- quantcdn/models/v2_rule_bot_challenge.py | 10 +- .../models/v2_rule_bot_challenge_action.py | 2 +- .../models/v2_rule_bot_challenge_request.py | 10 +- quantcdn/models/v2_rule_content_filter.py | 10 +- .../models/v2_rule_content_filter_action.py | 2 +- .../models/v2_rule_content_filter_request.py | 10 +- quantcdn/models/v2_rule_custom_response.py | 10 +- .../models/v2_rule_custom_response_action.py | 2 +- .../models/v2_rule_custom_response_request.py | 10 +- quantcdn/models/v2_rule_function.py | 10 +- quantcdn/models/v2_rule_function_action.py | 2 +- quantcdn/models/v2_rule_function_request.py | 10 +- quantcdn/models/v2_rule_header.py | 10 +- quantcdn/models/v2_rule_header_action.py | 2 +- quantcdn/models/v2_rule_header_request.py | 10 +- quantcdn/models/v2_rule_proxy.py | 10 +- quantcdn/models/v2_rule_proxy_action.py | 2 +- .../v2_rule_proxy_action_notify_config.py | 2 +- ...rule_proxy_action_quant_cloud_selection.py | 2 +- quantcdn/models/v2_rule_proxy_request.py | 10 +- quantcdn/models/v2_rule_redirect.py | 10 +- quantcdn/models/v2_rule_redirect_action.py | 2 +- quantcdn/models/v2_rule_redirect_request.py | 10 +- quantcdn/models/v2_rule_request.py | 12 +- quantcdn/models/v2_rule_serve_static.py | 10 +- .../models/v2_rule_serve_static_action.py | 2 +- .../models/v2_rule_serve_static_request.py | 10 +- quantcdn/models/v2_secret_store.py | 2 +- quantcdn/models/v2_secret_store_request.py | 2 +- quantcdn/models/v2_store.py | 2 +- quantcdn/models/v2_store_item.py | 2 +- quantcdn/models/v2_store_item_request.py | 2 +- .../models/v2_store_item_update_request.py | 2 +- .../models/v2_store_items_list_response.py | 2 +- quantcdn/models/v2_store_request.py | 2 +- .../models/validate_compose200_response.py | 2 +- .../models/validate_compose422_response.py | 2 +- quantcdn/models/validate_compose_request.py | 2 +- quantcdn/models/variable.py | 2 +- quantcdn/models/volume.py | 2 +- quantcdn/models/waf_config.py | 2 +- quantcdn/models/waf_config_block_lists.py | 2 +- quantcdn/models/waf_config_httpbl.py | 2 +- .../models/waf_config_thresholds_inner.py | 2 +- quantcdn/rest.py | 2 +- setup.py | 4 +- test/test_ai_agents_api.py | 23 +- ...st_ai_monitoring_api.py => test_ai_api.py} | 12 +- test/test_ai_custom_tools_api.py | 9 +- test/test_ai_file_storage_api.py | 2 +- test/test_ai_filter_policies_api.py | 80 + test/test_ai_governance_api.py | 52 + test/test_ai_inference_api.py | 2 +- test/test_ai_models_api.py | 2 +- test/test_ai_orchestrations_api.py | 94 + test/test_ai_search_api.py | 150 + test/test_ai_search_chat_request.py | 55 + test/test_ai_search_delete_pages_request.py | 56 + test/test_ai_search_enable_request.py | 52 + test/test_ai_search_ingest_pages_request.py | 83 + ...search_ingest_pages_request_pages_inner.py | 66 + test/test_ai_search_search_request.py | 54 + test/test_ai_search_trigger_crawl_request.py | 52 + .../test_ai_search_update_settings_request.py | 52 + test/test_ai_sessions_api.py | 2 +- test/test_ai_skills_api.py | 108 + test/test_ai_slack_bots_api.py | 80 + test/test_ai_task_management_api.py | 2 +- test/test_ai_tools_api.py | 4 +- ...hestration_api.py => test_ai_usage_api.py} | 16 +- test/test_ai_vector_database_api.py | 16 +- test/test_application.py | 19 +- test/test_application_cache.py | 53 + test/test_application_database.py | 2 +- ...pplication_deployment_information_inner.py | 2 +- test/test_application_environments_inner.py | 54 - test/test_application_filesystem.py | 2 +- test/test_application_image_reference.py | 2 +- test/test_applications_api.py | 2 +- test/test_backup_management_api.py | 2 +- ..._bulk_set_environment_variables_request.py | 2 +- ...ent_variables_request_environment_inner.py | 2 +- test/test_cdn_metrics_api.py | 52 + test/test_chat_inference200_response.py | 5 +- ...est_chat_inference200_response_response.py | 2 +- ...inference200_response_response_tool_use.py | 2 +- ...ce200_response_response_tool_use_one_of.py | 2 +- ...esponse_response_tool_use_one_of1_inner.py | 2 +- ...esponse_response_tool_use_one_of_result.py | 2 +- test/test_chat_inference200_response_usage.py | 5 +- test/test_chat_inference202_response.py | 2 +- test/test_chat_inference_request.py | 10 +- .../test_chat_inference_request_guardrails.py | 53 + ...t_chat_inference_request_messages_inner.py | 2 +- ...nference_request_messages_inner_content.py | 2 +- ...est_messages_inner_content_one_of_inner.py | 2 +- ...sages_inner_content_one_of_inner_one_of.py | 2 +- ...ages_inner_content_one_of_inner_one_of1.py | 2 +- ...nner_content_one_of_inner_one_of1_image.py | 2 +- ...ntent_one_of_inner_one_of1_image_source.py | 2 +- ...ages_inner_content_one_of_inner_one_of2.py | 2 +- ...nner_content_one_of_inner_one_of2_video.py | 2 +- ...ntent_one_of_inner_one_of2_video_source.py | 2 +- ...ages_inner_content_one_of_inner_one_of3.py | 2 +- ...r_content_one_of_inner_one_of3_document.py | 2 +- ...nt_one_of_inner_one_of3_document_source.py | 2 +- ..._chat_inference_request_response_format.py | 2 +- ...test_chat_inference_request_tool_config.py | 2 +- ...ference_request_tool_config_tools_inner.py | 2 +- ...quest_tool_config_tools_inner_tool_spec.py | 2 +- ...nfig_tools_inner_tool_spec_input_schema.py | 2 +- test/test_chat_inference_stream_request.py | 10 +- ...inference_stream_request_messages_inner.py | 2 +- ...e_stream_request_messages_inner_content.py | 2 +- test/test_chat_with_ai_agent200_response.py | 6 +- ...chat_with_ai_agent200_response_response.py | 6 +- ...ith_ai_agent200_response_response_usage.py | 6 +- test/test_chat_with_ai_agent202_response.py | 2 +- test/test_chat_with_ai_agent_request.py | 9 +- test/test_command.py | 2 +- test/test_commands_api.py | 2 +- test/test_compose.py | 7 +- test/test_compose_api.py | 2 +- test/test_container.py | 5 +- test/test_container_depends_on_inner.py | 2 +- test/test_container_environment_inner.py | 2 +- test/test_container_health_check.py | 2 +- test/test_container_image_reference.py | 2 +- test/test_container_mount_points_inner.py | 2 +- ...test_container_origin_protection_config.py | 5 +- test/test_container_secrets_inner.py | 2 +- test/test_containers_api.py | 2 +- test/test_crawler_schedules_api.py | 2 +- test/test_crawlers_api.py | 2 +- test/test_crawlers_run200_response.py | 2 +- test/test_crawlers_run_request.py | 2 +- test/test_create_ai_agent201_response.py | 2 +- test/test_create_ai_agent_request.py | 12 +- test/test_create_ai_session201_response.py | 2 +- test/test_create_ai_session_request.py | 2 +- ..._session_request_initial_messages_inner.py | 2 +- test/test_create_application403_response.py | 2 +- test/test_create_application_request.py | 12 +- ...est_create_application_request_database.py | 2 +- ...e_application_request_environment_inner.py | 2 +- ...t_create_application_request_filesystem.py | 2 +- test/test_create_backup202_response.py | 2 +- test/test_create_backup_request.py | 2 +- test/test_create_command_request.py | 2 +- test/test_create_cron_job_request.py | 2 +- test/test_create_custom_tool201_response.py | 7 +- test/test_create_custom_tool_request.py | 16 +- test/test_create_environment403_response.py | 2 +- test/test_create_environment_request.py | 9 +- ...e_environment_request_environment_inner.py | 2 +- test/test_create_filter_policy_request.py | 78 + ...reate_filter_policy_request_rules_inner.py | 59 + ...filter_policy_request_rules_inner_match.py | 55 + test/test_create_orchestration_request.py | 81 + ...eate_orchestration_request_input_source.py | 57 + ...te_orchestration_request_stop_condition.py | 53 + test/test_create_skill201_response.py | 53 + test/test_create_skill_request.py | 70 + test/test_create_slack_bot201_response.py | 51 + test/test_create_slack_bot_request.py | 94 + test/test_create_task201_response.py | 2 +- test/test_create_task_request.py | 2 +- ...st_create_vector_collection201_response.py | 2 +- ...ector_collection201_response_collection.py | 2 +- test/test_create_vector_collection_request.py | 3 +- test/test_create_volume_request.py | 2 +- test/test_cron.py | 11 +- test/test_cron_api.py | 2 +- test/test_cron_run.py | 2 +- test/test_delete_agent_overlay200_response.py | 52 + test/test_delete_ai_agent200_response.py | 2 +- test/test_delete_ai_session200_response.py | 2 +- test/test_delete_backup200_response.py | 2 +- test/test_delete_custom_tool200_response.py | 2 +- test/test_delete_file200_response.py | 2 +- test/test_delete_skill200_response.py | 52 + ...st_delete_skill_collection200_response.py} | 24 +- test/test_delete_slack_bot200_response.py | 52 + test/test_delete_task200_response.py | 2 +- test/test_delete_task409_response.py | 2 +- ...est_delete_vector_documents200_response.py | 53 + test/test_delete_vector_documents_request.py | 62 + ...elete_vector_documents_request_metadata.py | 54 + test/test_domains_api.py | 2 +- test/test_download_backup200_response.py | 2 +- test/test_embeddings200_response.py | 2 +- .../test_embeddings200_response_embeddings.py | 2 +- test/test_embeddings200_response_usage.py | 2 +- test/test_embeddings_request.py | 2 +- test/test_embeddings_request_input.py | 2 +- test/test_environment.py | 2 +- test/test_environment_response.py | 19 +- test/test_environment_summary.py | 2 +- test/test_environments_api.py | 2 +- test/test_extend_ai_session200_response.py | 2 +- test/test_extend_ai_session_request.py | 2 +- test/test_get_agent_overlay200_response.py | 82 + ...test_get_agent_overlay200_response_base.py | 59 + ...t_get_agent_overlay200_response_overlay.py | 71 + test/test_get_ai_agent200_response.py | 9 +- test/test_get_ai_agent200_response_agent.py | 9 +- test/test_get_ai_model200_response.py | 2 +- ...t_get_ai_model200_response_capabilities.py | 2 +- test/test_get_ai_model200_response_pricing.py | 2 +- test/test_get_ai_model404_response.py | 2 +- ...get_ai_orchestration_status200_response.py | 7 +- ...stration_status200_response_tools_inner.py | 2 +- ...get_ai_orchestration_status404_response.py | 2 +- test/test_get_ai_session200_response.py | 2 +- ...et_ai_tool_execution_status200_response.py | 2 +- ...ool_execution_status200_response_result.py | 2 +- ...et_ai_tool_execution_status404_response.py | 2 +- test/test_get_ai_usage_stats200_response.py | 53 - ..._usage_stats200_response_by_model_value.py | 52 - test/test_get_custom_tool200_response.py | 62 + test/test_get_custom_tool200_response_tool.py | 61 + test/test_get_dependency_graph200_response.py | 2 +- ...et_durable_execution_status200_response.py | 5 +- ...able_execution_status200_response_error.py | 2 +- ..._status200_response_pending_tools_inner.py | 2 +- ...ble_execution_status200_response_result.py | 5 +- ...tion_status200_response_result_response.py | 2 +- ...ecution_status200_response_result_usage.py | 5 +- ...t_get_ecr_login_credentials200_response.py | 2 +- test/test_get_environment_logs200_response.py | 2 +- ...nment_logs200_response_log_events_inner.py | 2 +- test/test_get_file200_response.py | 2 +- .../test_get_governance_config200_response.py | 86 + ...ernance_config200_response_spend_limits.py | 74 + ...nse_spend_limits_interface_limits_value.py | 52 + ...ponse_spend_limits_user_overrides_value.py | 53 + test/test_get_governance_spend200_response.py | 67 + ...get_governance_spend200_response_budget.py | 53 + ...vernance_spend200_response_daily_budget.py | 53 + ..._governance_spend200_response_org_total.py | 52 + ...overnance_spend200_response_today_total.py | 52 + ...governance_spend200_response_user_total.py | 52 + test/test_get_my_usage200_response.py | 67 + test/test_get_my_usage200_response_daily.py | 51 + test/test_get_my_usage200_response_monthly.py | 52 + test/test_get_my_usage200_response_quota.py | 59 + ..._my_usage200_response_quota_daily_limit.py | 54 + ...y_usage200_response_quota_monthly_limit.py | 53 + test/test_get_restore_status200_response.py | 61 + test/test_get_scaling_policy_response.py | 56 + test/test_get_skill200_response.py | 71 + test/test_get_skill200_response_skill.py | 70 + test/test_get_slack_bot200_response.py | 96 + test/test_get_slack_bot200_response_bot.py | 95 + ..._get_ssh_access_credentials200_response.py | 2 +- ...ess_credentials200_response_credentials.py | 2 +- test/test_get_task200_response.py | 2 +- .../test_get_vector_collection200_response.py | 2 +- ...ector_collection200_response_collection.py | 2 +- test/test_headers_api.py | 2 +- test/test_image_generation200_response.py | 2 +- test/test_image_generation_request.py | 2 +- ...ation_request_background_removal_params.py | 2 +- ..._request_color_guided_generation_params.py | 2 +- ...eration_request_image_generation_config.py | 2 +- ...neration_request_image_variation_params.py | 2 +- ...e_generation_request_in_painting_params.py | 2 +- ..._generation_request_out_painting_params.py | 2 +- ...generation_request_text_to_image_params.py | 2 +- test/test_import_skill201_response.py | 52 + ...est_import_skill_collection201_response.py | 59 + test/test_import_skill_collection_request.py | 66 + ..._import_skill_collection_request_source.py | 56 + test/test_import_skill_request.py | 76 + test/test_import_skill_request_source.py | 56 + test/test_kv_api.py | 16 +- test/test_kv_items_create200_response.py | 2 +- test/test_kv_items_delete200_response.py | 2 +- test/test_kv_items_show200_response.py | 2 +- test/test_kv_items_show200_response_value.py | 2 +- test/test_kv_link_to_project200_response.py | 52 + test/test_kv_link_to_project_request.py | 52 + test/test_list_ai_agents200_response.py | 9 +- ...list_ai_agents200_response_agents_inner.py | 9 +- test/test_list_ai_models200_response.py | 2 +- ...list_ai_models200_response_models_inner.py | 2 +- ...s200_response_models_inner_capabilities.py | 2 +- ...test_list_ai_sessions200_response_inner.py | 2 +- ...est_list_ai_tool_executions200_response.py | 2 +- ...executions200_response_executions_inner.py | 2 +- test/test_list_ai_tool_names200_response.py | 2 +- test/test_list_ai_tools200_response.py | 2 +- ...t_list_ai_tools200_response_tools_inner.py | 2 +- ...tools200_response_tools_inner_tool_spec.py | 2 +- ...onse_tools_inner_tool_spec_input_schema.py | 2 +- test/test_list_backups200_response.py | 2 +- ..._list_backups200_response_backups_inner.py | 2 +- test/test_list_backups422_response.py | 2 +- test/test_list_custom_tools200_response.py | 4 +- ...st_custom_tools200_response_tools_inner.py | 4 +- test/test_list_files200_response.py | 2 +- ...test_list_files200_response_files_inner.py | 2 +- ..._list_orchestration_batches200_response.py | 64 + ...ation_batches200_response_batches_inner.py | 60 + test/test_list_orchestrations200_response.py | 54 + ...test_list_skill_collections200_response.py | 58 + ...llections200_response_collections_inner.py | 55 + test/test_list_skills200_response.py | 65 + ...st_list_skills200_response_skills_inner.py | 61 + test/test_list_slack_bots200_response.py | 82 + ..._list_slack_bots200_response_bots_inner.py | 79 + test/test_list_tasks200_response.py | 2 +- ...test_list_tasks200_response_tasks_inner.py | 2 +- ...est_list_vector_collections200_response.py | 2 +- ...llections200_response_collections_inner.py | 2 +- test/test_oai_chat_completions200_response.py | 69 + ...t_completions200_response_choices_inner.py | 58 + ...tions200_response_choices_inner_message.py | 55 + ..._oai_chat_completions200_response_usage.py | 53 + test/test_oai_chat_completions_request.py | 71 + ...chat_completions_request_messages_inner.py | 52 + test/test_oai_embeddings200_response.py | 63 + ...t_oai_embeddings200_response_data_inner.py | 55 + test/test_oai_embeddings200_response_usage.py | 52 + test/test_oai_embeddings_request.py | 54 + test/test_oai_get_model200_response.py | 54 + test/test_oai_list_models200_response.py | 58 + ..._oai_list_models200_response_data_inner.py | 54 + test/test_open_ai_compatibility_api.py | 59 + test/test_organizations_api.py | 2 +- ...st_organizations_list200_response_inner.py | 2 +- ...t_patch_environment_compose202_response.py | 2 +- ..._compose202_response_spot_configuration.py | 2 +- ...t_patch_environment_compose400_response.py | 2 +- .../test_patch_environment_compose_request.py | 4 +- ...ment_compose_request_spot_configuration.py | 2 +- test/test_projects_api.py | 2 +- test/test_purge_api.py | 2 +- test/test_purge_create_request.py | 2 +- ...est_query_vector_collection200_response.py | 2 +- ...ector_collection200_response_pagination.py | 2 +- ...or_collection200_response_results_inner.py | 2 +- test/test_query_vector_collection_request.py | 2 +- ..._query_vector_collection_request_filter.py | 2 +- test/test_restore_database202_response.py | 53 + test/test_restore_database_request.py | 54 + test/test_restore_filesystem202_response.py | 53 + test/test_restore_filesystem_request.py | 54 + test/test_restore_management_api.py | 52 + test/test_rules_api.py | 2 +- test/test_scaling_policy_api.py | 16 +- test/test_scaling_policy_list_response.py | 59 + ...ch_slack_workspace_channels200_response.py | 55 + ...pace_channels200_response_results_inner.py | 52 + ...earch_slack_workspace_users200_response.py | 56 + ...rkspace_users200_response_results_inner.py | 53 + ....py => test_set_scaling_policy_request.py} | 28 +- test/test_spot_configuration.py | 2 +- test/test_ssh_access_api.py | 2 +- test/test_submit_tool_callback200_response.py | 2 +- test/test_submit_tool_callback_request.py | 2 +- ...ool_callback_request_tool_results_inner.py | 2 +- test/test_subscription_api.py | 38 + test/test_sync_operation.py | 2 +- .../test_sync_skill_collection200_response.py | 60 + test/test_sync_to_environment_request.py | 2 +- test/test_tokens_api.py | 52 + test/test_tokens_create201_response.py | 62 + test/test_tokens_create_request.py | 58 + test/test_tokens_delete200_response.py | 51 + test/test_tokens_list200_response_inner.py | 54 + test/test_update_ai_agent200_response.py | 2 +- test/test_update_ai_agent_request.py | 10 +- test/test_update_ai_session200_response.py | 2 +- test/test_update_ai_session_request.py | 2 +- ...e_ai_session_request_new_messages_inner.py | 2 +- test/test_update_cron_job_request.py | 2 +- test/test_update_environment_request.py | 12 +- test/test_update_environment_state_request.py | 2 +- ...est_update_environment_variable_request.py | 2 +- test/test_update_filter_policy_request.py | 65 + ...st_update_governance_config200_response.py | 52 + test/test_update_governance_config_request.py | 87 + test/test_update_skill200_response.py | 53 + test/test_update_skill_request.py | 67 + test/test_update_slack_bot_request.py | 90 + test/test_update_task200_response.py | 2 +- test/test_update_task_request.py | 2 +- test/test_upload_file201_response.py | 2 +- test/test_upload_file_request.py | 2 +- ...est_upload_vector_documents200_response.py | 2 +- test/test_upload_vector_documents_request.py | 4 +- ...ector_documents_request_documents_inner.py | 3 +- ...uments_request_documents_inner_metadata.py | 2 +- test/test_upsert_agent_overlay200_response.py | 51 + test/test_upsert_agent_overlay_request.py | 71 + test/test_v1_content_item.py | 2 +- test/test_v1_content_list_response.py | 2 +- test/test_v1_content_request.py | 2 +- test/test_v1_delete_response.py | 2 +- test/test_v1_error.py | 2 +- test/test_v1_form_submission_item.py | 2 +- test/test_v1_form_submission_list_response.py | 2 +- test/test_v1_get_metric_series_response.py | 2 +- ...test_v1_get_metric_series_response_data.py | 2 +- test/test_v1_get_metrics_response.py | 2 +- test/test_v1_get_metrics_response_data.py | 2 +- test/test_v1_global_meta_response.py | 2 +- ...est_v1_global_meta_response_global_meta.py | 2 +- test/test_v1_info.py | 2 +- test/test_v1_meta.py | 2 +- test/test_v1_metric_day_stats.py | 2 +- test/test_v1_metric_minute_stats.py | 2 +- test/test_v1_metric_month_stats.py | 2 +- test/test_v1_ping_response.py | 2 +- test/test_v1_proxy_item.py | 2 +- test/test_v1_proxy_list_response.py | 2 +- test/test_v1_redirect_item.py | 2 +- test/test_v1_redirect_list_response.py | 2 +- test/test_v1_redirect_request.py | 2 +- test/test_v1_redirect_response.py | 2 +- test/test_v1_revision.py | 2 +- test/test_v1_revisions_response.py | 2 +- test/test_v1_search_hit.py | 2 +- test/test_v1_search_items_response.py | 2 +- test/test_v1_search_mutation_response.py | 2 +- test/test_v1_search_record.py | 2 +- test/test_v1_search_response.py | 2 +- test/test_v1_series_point_day.py | 2 +- test/test_v1_series_point_month.py | 2 +- test/test_v1_transition.py | 2 +- test/test_v1_upload_response.py | 2 +- test/test_v1_url_meta_request.py | 2 +- test/test_v1_url_meta_response.py | 2 +- test/test_v1_waf_log_item.py | 2 +- test/test_v1_waf_log_list_response.py | 2 +- test/test_v2_crawler.py | 2 +- test/test_v2_crawler_assets.py | 2 +- ...est_v2_crawler_assets_network_intercept.py | 2 +- test/test_v2_crawler_assets_parser.py | 2 +- test/test_v2_crawler_request.py | 2 +- test/test_v2_crawler_run.py | 2 +- test/test_v2_crawler_schedule.py | 2 +- test/test_v2_crawler_schedule_request.py | 5 +- test/test_v2_crawler_sitemap_inner.py | 2 +- test/test_v2_custom_header_request.py | 2 +- test/test_v2_domain.py | 2 +- ...est_v2_domain_dns_go_live_records_inner.py | 2 +- ..._v2_domain_dns_validation_records_inner.py | 2 +- test/test_v2_domain_request.py | 2 +- test/test_v2_error.py | 2 +- test/test_v2_metric_data.py | 66 + test/test_v2_metric_data_point.py | 54 + test/test_v2_metric_data_point_timestamp.py | 50 + test/test_v2_metrics_meta.py | 61 + test/test_v2_metrics_response.py | 66 + test/test_v2_organization.py | 2 +- test/test_v2_organization_request.py | 2 +- test/test_v2_project.py | 2 +- test/test_v2_project_request.py | 2 +- test/test_v2_rule.py | 5 +- test/test_v2_rule_auth.py | 5 +- test/test_v2_rule_auth_action.py | 2 +- test/test_v2_rule_auth_request.py | 5 +- test/test_v2_rule_bot_challenge.py | 5 +- test/test_v2_rule_bot_challenge_action.py | 2 +- test/test_v2_rule_bot_challenge_request.py | 5 +- test/test_v2_rule_content_filter.py | 5 +- test/test_v2_rule_content_filter_action.py | 2 +- test/test_v2_rule_content_filter_request.py | 5 +- test/test_v2_rule_custom_response.py | 5 +- test/test_v2_rule_custom_response_action.py | 2 +- test/test_v2_rule_custom_response_request.py | 5 +- test/test_v2_rule_function.py | 5 +- test/test_v2_rule_function_action.py | 2 +- test/test_v2_rule_function_request.py | 5 +- test/test_v2_rule_header.py | 5 +- test/test_v2_rule_header_action.py | 2 +- test/test_v2_rule_header_request.py | 5 +- test/test_v2_rule_proxy.py | 5 +- test/test_v2_rule_proxy_action.py | 2 +- ...test_v2_rule_proxy_action_notify_config.py | 2 +- ...rule_proxy_action_quant_cloud_selection.py | 2 +- test/test_v2_rule_proxy_request.py | 5 +- test/test_v2_rule_redirect.py | 5 +- test/test_v2_rule_redirect_action.py | 2 +- test/test_v2_rule_redirect_request.py | 5 +- test/test_v2_rule_request.py | 7 +- test/test_v2_rule_serve_static.py | 5 +- test/test_v2_rule_serve_static_action.py | 2 +- test/test_v2_rule_serve_static_request.py | 5 +- test/test_v2_secret_store.py | 2 +- test/test_v2_secret_store_request.py | 2 +- test/test_v2_store.py | 2 +- test/test_v2_store_item.py | 2 +- test/test_v2_store_item_request.py | 2 +- test/test_v2_store_item_update_request.py | 2 +- test/test_v2_store_items_list_response.py | 2 +- test/test_v2_store_request.py | 2 +- test/test_validate_compose200_response.py | 2 +- test/test_validate_compose422_response.py | 2 +- test/test_validate_compose_request.py | 2 +- test/test_variable.py | 2 +- test/test_variables_api.py | 2 +- test/test_volume.py | 2 +- test/test_volumes_api.py | 2 +- test/test_waf_config.py | 2 +- test/test_waf_config_block_lists.py | 2 +- test/test_waf_config_httpbl.py | 2 +- test/test_waf_config_thresholds_inner.py | 2 +- 1119 files changed, 54618 insertions(+), 1944 deletions(-) create mode 100644 docs/AIApi.md create mode 100644 docs/AIFilterPoliciesApi.md create mode 100644 docs/AIGovernanceApi.md create mode 100644 docs/AIOrchestrationsApi.md create mode 100644 docs/AISearchApi.md create mode 100644 docs/AISkillsApi.md create mode 100644 docs/AISlackBotsApi.md rename docs/{AIMonitoringApi.md => AIUsageApi.md} (63%) create mode 100644 docs/AiSearchChatRequest.md create mode 100644 docs/AiSearchDeletePagesRequest.md create mode 100644 docs/AiSearchEnableRequest.md create mode 100644 docs/AiSearchIngestPagesRequest.md create mode 100644 docs/AiSearchIngestPagesRequestPagesInner.md create mode 100644 docs/AiSearchSearchRequest.md create mode 100644 docs/AiSearchTriggerCrawlRequest.md create mode 100644 docs/AiSearchUpdateSettingsRequest.md create mode 100644 docs/ApplicationCache.md delete mode 100644 docs/ApplicationEnvironmentsInner.md create mode 100644 docs/CDNMetricsApi.md create mode 100644 docs/ChatInferenceRequestGuardrails.md create mode 100644 docs/CreateFilterPolicyRequest.md create mode 100644 docs/CreateFilterPolicyRequestRulesInner.md create mode 100644 docs/CreateFilterPolicyRequestRulesInnerMatch.md create mode 100644 docs/CreateOrchestrationRequest.md create mode 100644 docs/CreateOrchestrationRequestInputSource.md create mode 100644 docs/CreateOrchestrationRequestStopCondition.md create mode 100644 docs/CreateSkill201Response.md create mode 100644 docs/CreateSkillRequest.md create mode 100644 docs/CreateSlackBot201Response.md create mode 100644 docs/CreateSlackBotRequest.md create mode 100644 docs/DeleteAgentOverlay200Response.md create mode 100644 docs/DeleteSkill200Response.md create mode 100644 docs/DeleteSkillCollection200Response.md create mode 100644 docs/DeleteSlackBot200Response.md delete mode 100644 docs/DeleteVectorCollection200Response.md create mode 100644 docs/DeleteVectorDocuments200Response.md create mode 100644 docs/DeleteVectorDocumentsRequest.md create mode 100644 docs/DeleteVectorDocumentsRequestMetadata.md delete mode 100644 docs/GetAIUsageStats200Response.md delete mode 100644 docs/GetAIUsageStats200ResponseByModelValue.md create mode 100644 docs/GetAgentOverlay200Response.md create mode 100644 docs/GetAgentOverlay200ResponseBase.md create mode 100644 docs/GetAgentOverlay200ResponseOverlay.md create mode 100644 docs/GetCustomTool200Response.md create mode 100644 docs/GetCustomTool200ResponseTool.md create mode 100644 docs/GetGovernanceConfig200Response.md create mode 100644 docs/GetGovernanceConfig200ResponseSpendLimits.md create mode 100644 docs/GetGovernanceConfig200ResponseSpendLimitsInterfaceLimitsValue.md create mode 100644 docs/GetGovernanceConfig200ResponseSpendLimitsUserOverridesValue.md create mode 100644 docs/GetGovernanceSpend200Response.md create mode 100644 docs/GetGovernanceSpend200ResponseBudget.md create mode 100644 docs/GetGovernanceSpend200ResponseDailyBudget.md create mode 100644 docs/GetGovernanceSpend200ResponseOrgTotal.md create mode 100644 docs/GetGovernanceSpend200ResponseTodayTotal.md create mode 100644 docs/GetGovernanceSpend200ResponseUserTotal.md create mode 100644 docs/GetMyUsage200Response.md create mode 100644 docs/GetMyUsage200ResponseDaily.md create mode 100644 docs/GetMyUsage200ResponseMonthly.md create mode 100644 docs/GetMyUsage200ResponseQuota.md create mode 100644 docs/GetMyUsage200ResponseQuotaDailyLimit.md create mode 100644 docs/GetMyUsage200ResponseQuotaMonthlyLimit.md create mode 100644 docs/GetRestoreStatus200Response.md create mode 100644 docs/GetScalingPolicyResponse.md create mode 100644 docs/GetSkill200Response.md create mode 100644 docs/GetSkill200ResponseSkill.md create mode 100644 docs/GetSlackBot200Response.md create mode 100644 docs/GetSlackBot200ResponseBot.md create mode 100644 docs/ImportSkill201Response.md create mode 100644 docs/ImportSkillCollection201Response.md create mode 100644 docs/ImportSkillCollectionRequest.md create mode 100644 docs/ImportSkillCollectionRequestSource.md create mode 100644 docs/ImportSkillRequest.md create mode 100644 docs/ImportSkillRequestSource.md create mode 100644 docs/KVLinkToProject200Response.md create mode 100644 docs/KVLinkToProjectRequest.md create mode 100644 docs/ListOrchestrationBatches200Response.md create mode 100644 docs/ListOrchestrationBatches200ResponseBatchesInner.md create mode 100644 docs/ListOrchestrations200Response.md create mode 100644 docs/ListSkillCollections200Response.md create mode 100644 docs/ListSkillCollections200ResponseCollectionsInner.md create mode 100644 docs/ListSkills200Response.md create mode 100644 docs/ListSkills200ResponseSkillsInner.md create mode 100644 docs/ListSlackBots200Response.md create mode 100644 docs/ListSlackBots200ResponseBotsInner.md create mode 100644 docs/OaiChatCompletions200Response.md create mode 100644 docs/OaiChatCompletions200ResponseChoicesInner.md create mode 100644 docs/OaiChatCompletions200ResponseChoicesInnerMessage.md create mode 100644 docs/OaiChatCompletions200ResponseUsage.md create mode 100644 docs/OaiChatCompletionsRequest.md create mode 100644 docs/OaiChatCompletionsRequestMessagesInner.md create mode 100644 docs/OaiEmbeddings200Response.md create mode 100644 docs/OaiEmbeddings200ResponseDataInner.md create mode 100644 docs/OaiEmbeddings200ResponseUsage.md create mode 100644 docs/OaiEmbeddingsRequest.md create mode 100644 docs/OaiGetModel200Response.md create mode 100644 docs/OaiListModels200Response.md create mode 100644 docs/OaiListModels200ResponseDataInner.md create mode 100644 docs/OpenAICompatibilityApi.md delete mode 100644 docs/OrchestrationApi.md create mode 100644 docs/RestoreDatabase202Response.md create mode 100644 docs/RestoreDatabaseRequest.md create mode 100644 docs/RestoreFilesystem202Response.md create mode 100644 docs/RestoreFilesystemRequest.md create mode 100644 docs/RestoreManagementApi.md delete mode 100644 docs/ScalingPolicy.md create mode 100644 docs/ScalingPolicyListResponse.md create mode 100644 docs/SearchSlackWorkspaceChannels200Response.md create mode 100644 docs/SearchSlackWorkspaceChannels200ResponseResultsInner.md create mode 100644 docs/SearchSlackWorkspaceUsers200Response.md create mode 100644 docs/SearchSlackWorkspaceUsers200ResponseResultsInner.md create mode 100644 docs/SetScalingPolicyRequest.md create mode 100644 docs/SubscriptionApi.md create mode 100644 docs/SyncSkillCollection200Response.md create mode 100644 docs/TokensApi.md create mode 100644 docs/TokensCreate201Response.md create mode 100644 docs/TokensCreateRequest.md create mode 100644 docs/TokensDelete200Response.md create mode 100644 docs/TokensList200ResponseInner.md create mode 100644 docs/UpdateFilterPolicyRequest.md create mode 100644 docs/UpdateGovernanceConfig200Response.md create mode 100644 docs/UpdateGovernanceConfigRequest.md create mode 100644 docs/UpdateSkill200Response.md create mode 100644 docs/UpdateSkillRequest.md create mode 100644 docs/UpdateSlackBotRequest.md create mode 100644 docs/UpsertAgentOverlay200Response.md create mode 100644 docs/UpsertAgentOverlayRequest.md create mode 100644 docs/V2MetricData.md create mode 100644 docs/V2MetricDataPoint.md create mode 100644 docs/V2MetricDataPointTimestamp.md create mode 100644 docs/V2MetricsMeta.md create mode 100644 docs/V2MetricsResponse.md rename quantcdn/api/{orchestration_api.py => ai_api.py} (57%) create mode 100644 quantcdn/api/ai_filter_policies_api.py create mode 100644 quantcdn/api/ai_governance_api.py create mode 100644 quantcdn/api/ai_orchestrations_api.py create mode 100644 quantcdn/api/ai_search_api.py create mode 100644 quantcdn/api/ai_skills_api.py create mode 100644 quantcdn/api/ai_slack_bots_api.py rename quantcdn/api/{ai_monitoring_api.py => ai_usage_api.py} (85%) create mode 100644 quantcdn/api/cdn_metrics_api.py create mode 100644 quantcdn/api/open_ai_compatibility_api.py create mode 100644 quantcdn/api/restore_management_api.py create mode 100644 quantcdn/api/subscription_api.py create mode 100644 quantcdn/api/tokens_api.py create mode 100644 quantcdn/models/ai_search_chat_request.py create mode 100644 quantcdn/models/ai_search_delete_pages_request.py create mode 100644 quantcdn/models/ai_search_enable_request.py rename quantcdn/models/{get_ai_usage_stats200_response.py => ai_search_ingest_pages_request.py} (58%) create mode 100644 quantcdn/models/ai_search_ingest_pages_request_pages_inner.py create mode 100644 quantcdn/models/ai_search_search_request.py create mode 100644 quantcdn/models/ai_search_trigger_crawl_request.py create mode 100644 quantcdn/models/ai_search_update_settings_request.py create mode 100644 quantcdn/models/application_cache.py create mode 100644 quantcdn/models/chat_inference_request_guardrails.py create mode 100644 quantcdn/models/create_filter_policy_request.py create mode 100644 quantcdn/models/create_filter_policy_request_rules_inner.py create mode 100644 quantcdn/models/create_filter_policy_request_rules_inner_match.py create mode 100644 quantcdn/models/create_orchestration_request.py create mode 100644 quantcdn/models/create_orchestration_request_input_source.py create mode 100644 quantcdn/models/create_orchestration_request_stop_condition.py create mode 100644 quantcdn/models/create_skill201_response.py create mode 100644 quantcdn/models/create_skill_request.py create mode 100644 quantcdn/models/create_slack_bot201_response.py create mode 100644 quantcdn/models/create_slack_bot_request.py rename quantcdn/models/{delete_vector_collection200_response.py => delete_agent_overlay200_response.py} (88%) create mode 100644 quantcdn/models/delete_skill200_response.py create mode 100644 quantcdn/models/delete_skill_collection200_response.py create mode 100644 quantcdn/models/delete_slack_bot200_response.py create mode 100644 quantcdn/models/delete_vector_documents200_response.py create mode 100644 quantcdn/models/delete_vector_documents_request.py create mode 100644 quantcdn/models/delete_vector_documents_request_metadata.py create mode 100644 quantcdn/models/get_agent_overlay200_response.py create mode 100644 quantcdn/models/get_agent_overlay200_response_base.py create mode 100644 quantcdn/models/get_agent_overlay200_response_overlay.py create mode 100644 quantcdn/models/get_custom_tool200_response.py create mode 100644 quantcdn/models/get_custom_tool200_response_tool.py create mode 100644 quantcdn/models/get_governance_config200_response.py create mode 100644 quantcdn/models/get_governance_config200_response_spend_limits.py create mode 100644 quantcdn/models/get_governance_config200_response_spend_limits_interface_limits_value.py create mode 100644 quantcdn/models/get_governance_config200_response_spend_limits_user_overrides_value.py create mode 100644 quantcdn/models/get_governance_spend200_response.py create mode 100644 quantcdn/models/get_governance_spend200_response_budget.py create mode 100644 quantcdn/models/get_governance_spend200_response_daily_budget.py create mode 100644 quantcdn/models/get_governance_spend200_response_org_total.py create mode 100644 quantcdn/models/get_governance_spend200_response_today_total.py create mode 100644 quantcdn/models/get_governance_spend200_response_user_total.py create mode 100644 quantcdn/models/get_my_usage200_response.py rename quantcdn/models/{get_ai_usage_stats200_response_by_model_value.py => get_my_usage200_response_daily.py} (75%) create mode 100644 quantcdn/models/get_my_usage200_response_monthly.py create mode 100644 quantcdn/models/get_my_usage200_response_quota.py create mode 100644 quantcdn/models/get_my_usage200_response_quota_daily_limit.py create mode 100644 quantcdn/models/get_my_usage200_response_quota_monthly_limit.py create mode 100644 quantcdn/models/get_restore_status200_response.py create mode 100644 quantcdn/models/get_scaling_policy_response.py create mode 100644 quantcdn/models/get_skill200_response.py create mode 100644 quantcdn/models/get_skill200_response_skill.py create mode 100644 quantcdn/models/get_slack_bot200_response.py create mode 100644 quantcdn/models/get_slack_bot200_response_bot.py create mode 100644 quantcdn/models/import_skill201_response.py create mode 100644 quantcdn/models/import_skill_collection201_response.py create mode 100644 quantcdn/models/import_skill_collection_request.py create mode 100644 quantcdn/models/import_skill_collection_request_source.py create mode 100644 quantcdn/models/import_skill_request.py create mode 100644 quantcdn/models/import_skill_request_source.py create mode 100644 quantcdn/models/kv_link_to_project200_response.py create mode 100644 quantcdn/models/kv_link_to_project_request.py create mode 100644 quantcdn/models/list_orchestration_batches200_response.py create mode 100644 quantcdn/models/list_orchestration_batches200_response_batches_inner.py create mode 100644 quantcdn/models/list_orchestrations200_response.py create mode 100644 quantcdn/models/list_skill_collections200_response.py create mode 100644 quantcdn/models/list_skill_collections200_response_collections_inner.py create mode 100644 quantcdn/models/list_skills200_response.py create mode 100644 quantcdn/models/list_skills200_response_skills_inner.py create mode 100644 quantcdn/models/list_slack_bots200_response.py create mode 100644 quantcdn/models/list_slack_bots200_response_bots_inner.py create mode 100644 quantcdn/models/oai_chat_completions200_response.py create mode 100644 quantcdn/models/oai_chat_completions200_response_choices_inner.py create mode 100644 quantcdn/models/oai_chat_completions200_response_choices_inner_message.py create mode 100644 quantcdn/models/oai_chat_completions200_response_usage.py create mode 100644 quantcdn/models/oai_chat_completions_request.py create mode 100644 quantcdn/models/oai_chat_completions_request_messages_inner.py create mode 100644 quantcdn/models/oai_embeddings200_response.py create mode 100644 quantcdn/models/oai_embeddings200_response_data_inner.py create mode 100644 quantcdn/models/oai_embeddings200_response_usage.py create mode 100644 quantcdn/models/oai_embeddings_request.py create mode 100644 quantcdn/models/oai_get_model200_response.py create mode 100644 quantcdn/models/oai_list_models200_response.py create mode 100644 quantcdn/models/oai_list_models200_response_data_inner.py create mode 100644 quantcdn/models/restore_database202_response.py create mode 100644 quantcdn/models/restore_database_request.py rename quantcdn/models/{application_environments_inner.py => restore_filesystem202_response.py} (68%) create mode 100644 quantcdn/models/restore_filesystem_request.py create mode 100644 quantcdn/models/scaling_policy_list_response.py create mode 100644 quantcdn/models/search_slack_workspace_channels200_response.py create mode 100644 quantcdn/models/search_slack_workspace_channels200_response_results_inner.py create mode 100644 quantcdn/models/search_slack_workspace_users200_response.py create mode 100644 quantcdn/models/search_slack_workspace_users200_response_results_inner.py rename quantcdn/models/{scaling_policy.py => set_scaling_policy_request.py} (77%) create mode 100644 quantcdn/models/sync_skill_collection200_response.py create mode 100644 quantcdn/models/tokens_create201_response.py create mode 100644 quantcdn/models/tokens_create_request.py create mode 100644 quantcdn/models/tokens_delete200_response.py create mode 100644 quantcdn/models/tokens_list200_response_inner.py create mode 100644 quantcdn/models/update_filter_policy_request.py create mode 100644 quantcdn/models/update_governance_config200_response.py create mode 100644 quantcdn/models/update_governance_config_request.py create mode 100644 quantcdn/models/update_skill200_response.py create mode 100644 quantcdn/models/update_skill_request.py create mode 100644 quantcdn/models/update_slack_bot_request.py create mode 100644 quantcdn/models/upsert_agent_overlay200_response.py create mode 100644 quantcdn/models/upsert_agent_overlay_request.py create mode 100644 quantcdn/models/v2_metric_data.py create mode 100644 quantcdn/models/v2_metric_data_point.py create mode 100644 quantcdn/models/v2_metric_data_point_timestamp.py create mode 100644 quantcdn/models/v2_metrics_meta.py create mode 100644 quantcdn/models/v2_metrics_response.py rename test/{test_ai_monitoring_api.py => test_ai_api.py} (65%) create mode 100644 test/test_ai_filter_policies_api.py create mode 100644 test/test_ai_governance_api.py create mode 100644 test/test_ai_orchestrations_api.py create mode 100644 test/test_ai_search_api.py create mode 100644 test/test_ai_search_chat_request.py create mode 100644 test/test_ai_search_delete_pages_request.py create mode 100644 test/test_ai_search_enable_request.py create mode 100644 test/test_ai_search_ingest_pages_request.py create mode 100644 test/test_ai_search_ingest_pages_request_pages_inner.py create mode 100644 test/test_ai_search_search_request.py create mode 100644 test/test_ai_search_trigger_crawl_request.py create mode 100644 test/test_ai_search_update_settings_request.py create mode 100644 test/test_ai_skills_api.py create mode 100644 test/test_ai_slack_bots_api.py rename test/{test_orchestration_api.py => test_ai_usage_api.py} (51%) create mode 100644 test/test_application_cache.py delete mode 100644 test/test_application_environments_inner.py create mode 100644 test/test_cdn_metrics_api.py create mode 100644 test/test_chat_inference_request_guardrails.py create mode 100644 test/test_create_filter_policy_request.py create mode 100644 test/test_create_filter_policy_request_rules_inner.py create mode 100644 test/test_create_filter_policy_request_rules_inner_match.py create mode 100644 test/test_create_orchestration_request.py create mode 100644 test/test_create_orchestration_request_input_source.py create mode 100644 test/test_create_orchestration_request_stop_condition.py create mode 100644 test/test_create_skill201_response.py create mode 100644 test/test_create_skill_request.py create mode 100644 test/test_create_slack_bot201_response.py create mode 100644 test/test_create_slack_bot_request.py create mode 100644 test/test_delete_agent_overlay200_response.py create mode 100644 test/test_delete_skill200_response.py rename test/{test_delete_vector_collection200_response.py => test_delete_skill_collection200_response.py} (53%) create mode 100644 test/test_delete_slack_bot200_response.py create mode 100644 test/test_delete_vector_documents200_response.py create mode 100644 test/test_delete_vector_documents_request.py create mode 100644 test/test_delete_vector_documents_request_metadata.py create mode 100644 test/test_get_agent_overlay200_response.py create mode 100644 test/test_get_agent_overlay200_response_base.py create mode 100644 test/test_get_agent_overlay200_response_overlay.py delete mode 100644 test/test_get_ai_usage_stats200_response.py delete mode 100644 test/test_get_ai_usage_stats200_response_by_model_value.py create mode 100644 test/test_get_custom_tool200_response.py create mode 100644 test/test_get_custom_tool200_response_tool.py create mode 100644 test/test_get_governance_config200_response.py create mode 100644 test/test_get_governance_config200_response_spend_limits.py create mode 100644 test/test_get_governance_config200_response_spend_limits_interface_limits_value.py create mode 100644 test/test_get_governance_config200_response_spend_limits_user_overrides_value.py create mode 100644 test/test_get_governance_spend200_response.py create mode 100644 test/test_get_governance_spend200_response_budget.py create mode 100644 test/test_get_governance_spend200_response_daily_budget.py create mode 100644 test/test_get_governance_spend200_response_org_total.py create mode 100644 test/test_get_governance_spend200_response_today_total.py create mode 100644 test/test_get_governance_spend200_response_user_total.py create mode 100644 test/test_get_my_usage200_response.py create mode 100644 test/test_get_my_usage200_response_daily.py create mode 100644 test/test_get_my_usage200_response_monthly.py create mode 100644 test/test_get_my_usage200_response_quota.py create mode 100644 test/test_get_my_usage200_response_quota_daily_limit.py create mode 100644 test/test_get_my_usage200_response_quota_monthly_limit.py create mode 100644 test/test_get_restore_status200_response.py create mode 100644 test/test_get_scaling_policy_response.py create mode 100644 test/test_get_skill200_response.py create mode 100644 test/test_get_skill200_response_skill.py create mode 100644 test/test_get_slack_bot200_response.py create mode 100644 test/test_get_slack_bot200_response_bot.py create mode 100644 test/test_import_skill201_response.py create mode 100644 test/test_import_skill_collection201_response.py create mode 100644 test/test_import_skill_collection_request.py create mode 100644 test/test_import_skill_collection_request_source.py create mode 100644 test/test_import_skill_request.py create mode 100644 test/test_import_skill_request_source.py create mode 100644 test/test_kv_link_to_project200_response.py create mode 100644 test/test_kv_link_to_project_request.py create mode 100644 test/test_list_orchestration_batches200_response.py create mode 100644 test/test_list_orchestration_batches200_response_batches_inner.py create mode 100644 test/test_list_orchestrations200_response.py create mode 100644 test/test_list_skill_collections200_response.py create mode 100644 test/test_list_skill_collections200_response_collections_inner.py create mode 100644 test/test_list_skills200_response.py create mode 100644 test/test_list_skills200_response_skills_inner.py create mode 100644 test/test_list_slack_bots200_response.py create mode 100644 test/test_list_slack_bots200_response_bots_inner.py create mode 100644 test/test_oai_chat_completions200_response.py create mode 100644 test/test_oai_chat_completions200_response_choices_inner.py create mode 100644 test/test_oai_chat_completions200_response_choices_inner_message.py create mode 100644 test/test_oai_chat_completions200_response_usage.py create mode 100644 test/test_oai_chat_completions_request.py create mode 100644 test/test_oai_chat_completions_request_messages_inner.py create mode 100644 test/test_oai_embeddings200_response.py create mode 100644 test/test_oai_embeddings200_response_data_inner.py create mode 100644 test/test_oai_embeddings200_response_usage.py create mode 100644 test/test_oai_embeddings_request.py create mode 100644 test/test_oai_get_model200_response.py create mode 100644 test/test_oai_list_models200_response.py create mode 100644 test/test_oai_list_models200_response_data_inner.py create mode 100644 test/test_open_ai_compatibility_api.py create mode 100644 test/test_restore_database202_response.py create mode 100644 test/test_restore_database_request.py create mode 100644 test/test_restore_filesystem202_response.py create mode 100644 test/test_restore_filesystem_request.py create mode 100644 test/test_restore_management_api.py create mode 100644 test/test_scaling_policy_list_response.py create mode 100644 test/test_search_slack_workspace_channels200_response.py create mode 100644 test/test_search_slack_workspace_channels200_response_results_inner.py create mode 100644 test/test_search_slack_workspace_users200_response.py create mode 100644 test/test_search_slack_workspace_users200_response_results_inner.py rename test/{test_scaling_policy.py => test_set_scaling_policy_request.py} (55%) create mode 100644 test/test_subscription_api.py create mode 100644 test/test_sync_skill_collection200_response.py create mode 100644 test/test_tokens_api.py create mode 100644 test/test_tokens_create201_response.py create mode 100644 test/test_tokens_create_request.py create mode 100644 test/test_tokens_delete200_response.py create mode 100644 test/test_tokens_list200_response_inner.py create mode 100644 test/test_update_filter_policy_request.py create mode 100644 test/test_update_governance_config200_response.py create mode 100644 test/test_update_governance_config_request.py create mode 100644 test/test_update_skill200_response.py create mode 100644 test/test_update_skill_request.py create mode 100644 test/test_update_slack_bot_request.py create mode 100644 test/test_upsert_agent_overlay200_response.py create mode 100644 test/test_upsert_agent_overlay_request.py create mode 100644 test/test_v2_metric_data.py create mode 100644 test/test_v2_metric_data_point.py create mode 100644 test/test_v2_metric_data_point_timestamp.py create mode 100644 test/test_v2_metrics_meta.py create mode 100644 test/test_v2_metrics_response.py diff --git a/.openapi-generator/FILES b/.openapi-generator/FILES index 57fb1bd8..3842da17 100644 --- a/.openapi-generator/FILES +++ b/.openapi-generator/FILES @@ -4,25 +4,41 @@ .travis.yml README.md docs/AIAgentsApi.md +docs/AIApi.md docs/AICustomToolsApi.md docs/AIFileStorageApi.md +docs/AIFilterPoliciesApi.md +docs/AIGovernanceApi.md docs/AIInferenceApi.md docs/AIModelsApi.md -docs/AIMonitoringApi.md +docs/AIOrchestrationsApi.md +docs/AISearchApi.md docs/AISessionsApi.md +docs/AISkillsApi.md +docs/AISlackBotsApi.md docs/AITaskManagementApi.md docs/AIToolsApi.md +docs/AIUsageApi.md docs/AIVectorDatabaseApi.md +docs/AiSearchChatRequest.md +docs/AiSearchDeletePagesRequest.md +docs/AiSearchEnableRequest.md +docs/AiSearchIngestPagesRequest.md +docs/AiSearchIngestPagesRequestPagesInner.md +docs/AiSearchSearchRequest.md +docs/AiSearchTriggerCrawlRequest.md +docs/AiSearchUpdateSettingsRequest.md docs/Application.md +docs/ApplicationCache.md docs/ApplicationDatabase.md docs/ApplicationDeploymentInformationInner.md -docs/ApplicationEnvironmentsInner.md docs/ApplicationFilesystem.md docs/ApplicationImageReference.md docs/ApplicationsApi.md docs/BackupManagementApi.md docs/BulkSetEnvironmentVariablesRequest.md docs/BulkSetEnvironmentVariablesRequestEnvironmentInner.md +docs/CDNMetricsApi.md docs/ChatInference200Response.md docs/ChatInference200ResponseResponse.md docs/ChatInference200ResponseResponseToolUse.md @@ -32,6 +48,7 @@ docs/ChatInference200ResponseResponseToolUseOneOfResult.md docs/ChatInference200ResponseUsage.md docs/ChatInference202Response.md docs/ChatInferenceRequest.md +docs/ChatInferenceRequestGuardrails.md docs/ChatInferenceRequestMessagesInner.md docs/ChatInferenceRequestMessagesInnerContent.md docs/ChatInferenceRequestMessagesInnerContentOneOfInner.md @@ -94,6 +111,16 @@ docs/CreateCustomToolRequest.md docs/CreateEnvironment403Response.md docs/CreateEnvironmentRequest.md docs/CreateEnvironmentRequestEnvironmentInner.md +docs/CreateFilterPolicyRequest.md +docs/CreateFilterPolicyRequestRulesInner.md +docs/CreateFilterPolicyRequestRulesInnerMatch.md +docs/CreateOrchestrationRequest.md +docs/CreateOrchestrationRequestInputSource.md +docs/CreateOrchestrationRequestStopCondition.md +docs/CreateSkill201Response.md +docs/CreateSkillRequest.md +docs/CreateSlackBot201Response.md +docs/CreateSlackBotRequest.md docs/CreateTask201Response.md docs/CreateTaskRequest.md docs/CreateVectorCollection201Response.md @@ -105,12 +132,18 @@ docs/CronApi.md docs/CronRun.md docs/DeleteAIAgent200Response.md docs/DeleteAISession200Response.md +docs/DeleteAgentOverlay200Response.md docs/DeleteBackup200Response.md docs/DeleteCustomTool200Response.md docs/DeleteFile200Response.md +docs/DeleteSkill200Response.md +docs/DeleteSkillCollection200Response.md +docs/DeleteSlackBot200Response.md docs/DeleteTask200Response.md docs/DeleteTask409Response.md -docs/DeleteVectorCollection200Response.md +docs/DeleteVectorDocuments200Response.md +docs/DeleteVectorDocumentsRequest.md +docs/DeleteVectorDocumentsRequestMetadata.md docs/DomainsApi.md docs/DownloadBackup200Response.md docs/Embeddings200Response.md @@ -137,8 +170,11 @@ docs/GetAISession200Response.md docs/GetAIToolExecutionStatus200Response.md docs/GetAIToolExecutionStatus200ResponseResult.md docs/GetAIToolExecutionStatus404Response.md -docs/GetAIUsageStats200Response.md -docs/GetAIUsageStats200ResponseByModelValue.md +docs/GetAgentOverlay200Response.md +docs/GetAgentOverlay200ResponseBase.md +docs/GetAgentOverlay200ResponseOverlay.md +docs/GetCustomTool200Response.md +docs/GetCustomTool200ResponseTool.md docs/GetDependencyGraph200Response.md docs/GetDurableExecutionStatus200Response.md docs/GetDurableExecutionStatus200ResponseError.md @@ -150,6 +186,28 @@ docs/GetEcrLoginCredentials200Response.md docs/GetEnvironmentLogs200Response.md docs/GetEnvironmentLogs200ResponseLogEventsInner.md docs/GetFile200Response.md +docs/GetGovernanceConfig200Response.md +docs/GetGovernanceConfig200ResponseSpendLimits.md +docs/GetGovernanceConfig200ResponseSpendLimitsInterfaceLimitsValue.md +docs/GetGovernanceConfig200ResponseSpendLimitsUserOverridesValue.md +docs/GetGovernanceSpend200Response.md +docs/GetGovernanceSpend200ResponseBudget.md +docs/GetGovernanceSpend200ResponseDailyBudget.md +docs/GetGovernanceSpend200ResponseOrgTotal.md +docs/GetGovernanceSpend200ResponseTodayTotal.md +docs/GetGovernanceSpend200ResponseUserTotal.md +docs/GetMyUsage200Response.md +docs/GetMyUsage200ResponseDaily.md +docs/GetMyUsage200ResponseMonthly.md +docs/GetMyUsage200ResponseQuota.md +docs/GetMyUsage200ResponseQuotaDailyLimit.md +docs/GetMyUsage200ResponseQuotaMonthlyLimit.md +docs/GetRestoreStatus200Response.md +docs/GetScalingPolicyResponse.md +docs/GetSkill200Response.md +docs/GetSkill200ResponseSkill.md +docs/GetSlackBot200Response.md +docs/GetSlackBot200ResponseBot.md docs/GetSshAccessCredentials200Response.md docs/GetSshAccessCredentials200ResponseCredentials.md docs/GetTask200Response.md @@ -165,11 +223,19 @@ docs/ImageGenerationRequestImageVariationParams.md docs/ImageGenerationRequestInPaintingParams.md docs/ImageGenerationRequestOutPaintingParams.md docs/ImageGenerationRequestTextToImageParams.md +docs/ImportSkill201Response.md +docs/ImportSkillCollection201Response.md +docs/ImportSkillCollectionRequest.md +docs/ImportSkillCollectionRequestSource.md +docs/ImportSkillRequest.md +docs/ImportSkillRequestSource.md docs/KVApi.md docs/KVItemsCreate200Response.md docs/KVItemsDelete200Response.md docs/KVItemsShow200Response.md docs/KVItemsShow200ResponseValue.md +docs/KVLinkToProject200Response.md +docs/KVLinkToProjectRequest.md docs/ListAIAgents200Response.md docs/ListAIAgents200ResponseAgentsInner.md docs/ListAIModels200Response.md @@ -190,11 +256,33 @@ docs/ListCustomTools200Response.md docs/ListCustomTools200ResponseToolsInner.md docs/ListFiles200Response.md docs/ListFiles200ResponseFilesInner.md +docs/ListOrchestrationBatches200Response.md +docs/ListOrchestrationBatches200ResponseBatchesInner.md +docs/ListOrchestrations200Response.md +docs/ListSkillCollections200Response.md +docs/ListSkillCollections200ResponseCollectionsInner.md +docs/ListSkills200Response.md +docs/ListSkills200ResponseSkillsInner.md +docs/ListSlackBots200Response.md +docs/ListSlackBots200ResponseBotsInner.md docs/ListTasks200Response.md docs/ListTasks200ResponseTasksInner.md docs/ListVectorCollections200Response.md docs/ListVectorCollections200ResponseCollectionsInner.md -docs/OrchestrationApi.md +docs/OaiChatCompletions200Response.md +docs/OaiChatCompletions200ResponseChoicesInner.md +docs/OaiChatCompletions200ResponseChoicesInnerMessage.md +docs/OaiChatCompletions200ResponseUsage.md +docs/OaiChatCompletionsRequest.md +docs/OaiChatCompletionsRequestMessagesInner.md +docs/OaiEmbeddings200Response.md +docs/OaiEmbeddings200ResponseDataInner.md +docs/OaiEmbeddings200ResponseUsage.md +docs/OaiEmbeddingsRequest.md +docs/OaiGetModel200Response.md +docs/OaiListModels200Response.md +docs/OaiListModels200ResponseDataInner.md +docs/OpenAICompatibilityApi.md docs/OrganizationsApi.md docs/OrganizationsList200ResponseInner.md docs/PatchEnvironmentCompose202Response.md @@ -210,16 +298,33 @@ docs/QueryVectorCollection200ResponsePagination.md docs/QueryVectorCollection200ResponseResultsInner.md docs/QueryVectorCollectionRequest.md docs/QueryVectorCollectionRequestFilter.md +docs/RestoreDatabase202Response.md +docs/RestoreDatabaseRequest.md +docs/RestoreFilesystem202Response.md +docs/RestoreFilesystemRequest.md +docs/RestoreManagementApi.md docs/RulesApi.md docs/SSHAccessApi.md -docs/ScalingPolicy.md docs/ScalingPolicyApi.md +docs/ScalingPolicyListResponse.md +docs/SearchSlackWorkspaceChannels200Response.md +docs/SearchSlackWorkspaceChannels200ResponseResultsInner.md +docs/SearchSlackWorkspaceUsers200Response.md +docs/SearchSlackWorkspaceUsers200ResponseResultsInner.md +docs/SetScalingPolicyRequest.md docs/SpotConfiguration.md docs/SubmitToolCallback200Response.md docs/SubmitToolCallbackRequest.md docs/SubmitToolCallbackRequestToolResultsInner.md +docs/SubscriptionApi.md docs/SyncOperation.md +docs/SyncSkillCollection200Response.md docs/SyncToEnvironmentRequest.md +docs/TokensApi.md +docs/TokensCreate201Response.md +docs/TokensCreateRequest.md +docs/TokensDelete200Response.md +docs/TokensList200ResponseInner.md docs/UpdateAIAgent200Response.md docs/UpdateAIAgentRequest.md docs/UpdateAISession200Response.md @@ -229,6 +334,12 @@ docs/UpdateCronJobRequest.md docs/UpdateEnvironmentRequest.md docs/UpdateEnvironmentStateRequest.md docs/UpdateEnvironmentVariableRequest.md +docs/UpdateFilterPolicyRequest.md +docs/UpdateGovernanceConfig200Response.md +docs/UpdateGovernanceConfigRequest.md +docs/UpdateSkill200Response.md +docs/UpdateSkillRequest.md +docs/UpdateSlackBotRequest.md docs/UpdateTask200Response.md docs/UpdateTaskRequest.md docs/UploadFile201Response.md @@ -237,6 +348,8 @@ docs/UploadVectorDocuments200Response.md docs/UploadVectorDocumentsRequest.md docs/UploadVectorDocumentsRequestDocumentsInner.md docs/UploadVectorDocumentsRequestDocumentsInnerMetadata.md +docs/UpsertAgentOverlay200Response.md +docs/UpsertAgentOverlayRequest.md docs/V1ContentItem.md docs/V1ContentListResponse.md docs/V1ContentRequest.md @@ -292,6 +405,11 @@ docs/V2DomainDnsGoLiveRecordsInner.md docs/V2DomainDnsValidationRecordsInner.md docs/V2DomainRequest.md docs/V2Error.md +docs/V2MetricData.md +docs/V2MetricDataPoint.md +docs/V2MetricDataPointTimestamp.md +docs/V2MetricsMeta.md +docs/V2MetricsResponse.md docs/V2Organization.md docs/V2OrganizationRequest.md docs/V2Project.md @@ -351,17 +469,25 @@ pyproject.toml quantcdn/__init__.py quantcdn/api/__init__.py quantcdn/api/ai_agents_api.py +quantcdn/api/ai_api.py quantcdn/api/ai_custom_tools_api.py quantcdn/api/ai_file_storage_api.py +quantcdn/api/ai_filter_policies_api.py +quantcdn/api/ai_governance_api.py quantcdn/api/ai_inference_api.py quantcdn/api/ai_models_api.py -quantcdn/api/ai_monitoring_api.py +quantcdn/api/ai_orchestrations_api.py +quantcdn/api/ai_search_api.py quantcdn/api/ai_sessions_api.py +quantcdn/api/ai_skills_api.py +quantcdn/api/ai_slack_bots_api.py quantcdn/api/ai_task_management_api.py quantcdn/api/ai_tools_api.py +quantcdn/api/ai_usage_api.py quantcdn/api/ai_vector_database_api.py quantcdn/api/applications_api.py quantcdn/api/backup_management_api.py +quantcdn/api/cdn_metrics_api.py quantcdn/api/commands_api.py quantcdn/api/compose_api.py quantcdn/api/containers_api.py @@ -372,13 +498,16 @@ quantcdn/api/domains_api.py quantcdn/api/environments_api.py quantcdn/api/headers_api.py quantcdn/api/kv_api.py -quantcdn/api/orchestration_api.py +quantcdn/api/open_ai_compatibility_api.py quantcdn/api/organizations_api.py quantcdn/api/projects_api.py quantcdn/api/purge_api.py +quantcdn/api/restore_management_api.py quantcdn/api/rules_api.py quantcdn/api/scaling_policy_api.py quantcdn/api/ssh_access_api.py +quantcdn/api/subscription_api.py +quantcdn/api/tokens_api.py quantcdn/api/variables_api.py quantcdn/api/volumes_api.py quantcdn/api_client.py @@ -386,10 +515,18 @@ quantcdn/api_response.py quantcdn/configuration.py quantcdn/exceptions.py quantcdn/models/__init__.py +quantcdn/models/ai_search_chat_request.py +quantcdn/models/ai_search_delete_pages_request.py +quantcdn/models/ai_search_enable_request.py +quantcdn/models/ai_search_ingest_pages_request.py +quantcdn/models/ai_search_ingest_pages_request_pages_inner.py +quantcdn/models/ai_search_search_request.py +quantcdn/models/ai_search_trigger_crawl_request.py +quantcdn/models/ai_search_update_settings_request.py quantcdn/models/application.py +quantcdn/models/application_cache.py quantcdn/models/application_database.py quantcdn/models/application_deployment_information_inner.py -quantcdn/models/application_environments_inner.py quantcdn/models/application_filesystem.py quantcdn/models/application_image_reference.py quantcdn/models/bulk_set_environment_variables_request.py @@ -403,6 +540,7 @@ quantcdn/models/chat_inference200_response_response_tool_use_one_of_result.py quantcdn/models/chat_inference200_response_usage.py quantcdn/models/chat_inference202_response.py quantcdn/models/chat_inference_request.py +quantcdn/models/chat_inference_request_guardrails.py quantcdn/models/chat_inference_request_messages_inner.py quantcdn/models/chat_inference_request_messages_inner_content.py quantcdn/models/chat_inference_request_messages_inner_content_one_of_inner.py @@ -460,6 +598,16 @@ quantcdn/models/create_custom_tool_request.py quantcdn/models/create_environment403_response.py quantcdn/models/create_environment_request.py quantcdn/models/create_environment_request_environment_inner.py +quantcdn/models/create_filter_policy_request.py +quantcdn/models/create_filter_policy_request_rules_inner.py +quantcdn/models/create_filter_policy_request_rules_inner_match.py +quantcdn/models/create_orchestration_request.py +quantcdn/models/create_orchestration_request_input_source.py +quantcdn/models/create_orchestration_request_stop_condition.py +quantcdn/models/create_skill201_response.py +quantcdn/models/create_skill_request.py +quantcdn/models/create_slack_bot201_response.py +quantcdn/models/create_slack_bot_request.py quantcdn/models/create_task201_response.py quantcdn/models/create_task_request.py quantcdn/models/create_vector_collection201_response.py @@ -468,14 +616,20 @@ quantcdn/models/create_vector_collection_request.py quantcdn/models/create_volume_request.py quantcdn/models/cron.py quantcdn/models/cron_run.py +quantcdn/models/delete_agent_overlay200_response.py quantcdn/models/delete_ai_agent200_response.py quantcdn/models/delete_ai_session200_response.py quantcdn/models/delete_backup200_response.py quantcdn/models/delete_custom_tool200_response.py quantcdn/models/delete_file200_response.py +quantcdn/models/delete_skill200_response.py +quantcdn/models/delete_skill_collection200_response.py +quantcdn/models/delete_slack_bot200_response.py quantcdn/models/delete_task200_response.py quantcdn/models/delete_task409_response.py -quantcdn/models/delete_vector_collection200_response.py +quantcdn/models/delete_vector_documents200_response.py +quantcdn/models/delete_vector_documents_request.py +quantcdn/models/delete_vector_documents_request_metadata.py quantcdn/models/download_backup200_response.py quantcdn/models/embeddings200_response.py quantcdn/models/embeddings200_response_embeddings.py @@ -487,6 +641,9 @@ quantcdn/models/environment_response.py quantcdn/models/environment_summary.py quantcdn/models/extend_ai_session200_response.py quantcdn/models/extend_ai_session_request.py +quantcdn/models/get_agent_overlay200_response.py +quantcdn/models/get_agent_overlay200_response_base.py +quantcdn/models/get_agent_overlay200_response_overlay.py quantcdn/models/get_ai_agent200_response.py quantcdn/models/get_ai_agent200_response_agent.py quantcdn/models/get_ai_model200_response.py @@ -500,8 +657,8 @@ quantcdn/models/get_ai_session200_response.py quantcdn/models/get_ai_tool_execution_status200_response.py quantcdn/models/get_ai_tool_execution_status200_response_result.py quantcdn/models/get_ai_tool_execution_status404_response.py -quantcdn/models/get_ai_usage_stats200_response.py -quantcdn/models/get_ai_usage_stats200_response_by_model_value.py +quantcdn/models/get_custom_tool200_response.py +quantcdn/models/get_custom_tool200_response_tool.py quantcdn/models/get_dependency_graph200_response.py quantcdn/models/get_durable_execution_status200_response.py quantcdn/models/get_durable_execution_status200_response_error.py @@ -513,6 +670,28 @@ quantcdn/models/get_ecr_login_credentials200_response.py quantcdn/models/get_environment_logs200_response.py quantcdn/models/get_environment_logs200_response_log_events_inner.py quantcdn/models/get_file200_response.py +quantcdn/models/get_governance_config200_response.py +quantcdn/models/get_governance_config200_response_spend_limits.py +quantcdn/models/get_governance_config200_response_spend_limits_interface_limits_value.py +quantcdn/models/get_governance_config200_response_spend_limits_user_overrides_value.py +quantcdn/models/get_governance_spend200_response.py +quantcdn/models/get_governance_spend200_response_budget.py +quantcdn/models/get_governance_spend200_response_daily_budget.py +quantcdn/models/get_governance_spend200_response_org_total.py +quantcdn/models/get_governance_spend200_response_today_total.py +quantcdn/models/get_governance_spend200_response_user_total.py +quantcdn/models/get_my_usage200_response.py +quantcdn/models/get_my_usage200_response_daily.py +quantcdn/models/get_my_usage200_response_monthly.py +quantcdn/models/get_my_usage200_response_quota.py +quantcdn/models/get_my_usage200_response_quota_daily_limit.py +quantcdn/models/get_my_usage200_response_quota_monthly_limit.py +quantcdn/models/get_restore_status200_response.py +quantcdn/models/get_scaling_policy_response.py +quantcdn/models/get_skill200_response.py +quantcdn/models/get_skill200_response_skill.py +quantcdn/models/get_slack_bot200_response.py +quantcdn/models/get_slack_bot200_response_bot.py quantcdn/models/get_ssh_access_credentials200_response.py quantcdn/models/get_ssh_access_credentials200_response_credentials.py quantcdn/models/get_task200_response.py @@ -527,10 +706,18 @@ quantcdn/models/image_generation_request_image_variation_params.py quantcdn/models/image_generation_request_in_painting_params.py quantcdn/models/image_generation_request_out_painting_params.py quantcdn/models/image_generation_request_text_to_image_params.py +quantcdn/models/import_skill201_response.py +quantcdn/models/import_skill_collection201_response.py +quantcdn/models/import_skill_collection_request.py +quantcdn/models/import_skill_collection_request_source.py +quantcdn/models/import_skill_request.py +quantcdn/models/import_skill_request_source.py quantcdn/models/kv_items_create200_response.py quantcdn/models/kv_items_delete200_response.py quantcdn/models/kv_items_show200_response.py quantcdn/models/kv_items_show200_response_value.py +quantcdn/models/kv_link_to_project200_response.py +quantcdn/models/kv_link_to_project_request.py quantcdn/models/list_ai_agents200_response.py quantcdn/models/list_ai_agents200_response_agents_inner.py quantcdn/models/list_ai_models200_response.py @@ -551,10 +738,32 @@ quantcdn/models/list_custom_tools200_response.py quantcdn/models/list_custom_tools200_response_tools_inner.py quantcdn/models/list_files200_response.py quantcdn/models/list_files200_response_files_inner.py +quantcdn/models/list_orchestration_batches200_response.py +quantcdn/models/list_orchestration_batches200_response_batches_inner.py +quantcdn/models/list_orchestrations200_response.py +quantcdn/models/list_skill_collections200_response.py +quantcdn/models/list_skill_collections200_response_collections_inner.py +quantcdn/models/list_skills200_response.py +quantcdn/models/list_skills200_response_skills_inner.py +quantcdn/models/list_slack_bots200_response.py +quantcdn/models/list_slack_bots200_response_bots_inner.py quantcdn/models/list_tasks200_response.py quantcdn/models/list_tasks200_response_tasks_inner.py quantcdn/models/list_vector_collections200_response.py quantcdn/models/list_vector_collections200_response_collections_inner.py +quantcdn/models/oai_chat_completions200_response.py +quantcdn/models/oai_chat_completions200_response_choices_inner.py +quantcdn/models/oai_chat_completions200_response_choices_inner_message.py +quantcdn/models/oai_chat_completions200_response_usage.py +quantcdn/models/oai_chat_completions_request.py +quantcdn/models/oai_chat_completions_request_messages_inner.py +quantcdn/models/oai_embeddings200_response.py +quantcdn/models/oai_embeddings200_response_data_inner.py +quantcdn/models/oai_embeddings200_response_usage.py +quantcdn/models/oai_embeddings_request.py +quantcdn/models/oai_get_model200_response.py +quantcdn/models/oai_list_models200_response.py +quantcdn/models/oai_list_models200_response_data_inner.py quantcdn/models/organizations_list200_response_inner.py quantcdn/models/patch_environment_compose202_response.py quantcdn/models/patch_environment_compose202_response_spot_configuration.py @@ -567,13 +776,27 @@ quantcdn/models/query_vector_collection200_response_pagination.py quantcdn/models/query_vector_collection200_response_results_inner.py quantcdn/models/query_vector_collection_request.py quantcdn/models/query_vector_collection_request_filter.py -quantcdn/models/scaling_policy.py +quantcdn/models/restore_database202_response.py +quantcdn/models/restore_database_request.py +quantcdn/models/restore_filesystem202_response.py +quantcdn/models/restore_filesystem_request.py +quantcdn/models/scaling_policy_list_response.py +quantcdn/models/search_slack_workspace_channels200_response.py +quantcdn/models/search_slack_workspace_channels200_response_results_inner.py +quantcdn/models/search_slack_workspace_users200_response.py +quantcdn/models/search_slack_workspace_users200_response_results_inner.py +quantcdn/models/set_scaling_policy_request.py quantcdn/models/spot_configuration.py quantcdn/models/submit_tool_callback200_response.py quantcdn/models/submit_tool_callback_request.py quantcdn/models/submit_tool_callback_request_tool_results_inner.py quantcdn/models/sync_operation.py +quantcdn/models/sync_skill_collection200_response.py quantcdn/models/sync_to_environment_request.py +quantcdn/models/tokens_create201_response.py +quantcdn/models/tokens_create_request.py +quantcdn/models/tokens_delete200_response.py +quantcdn/models/tokens_list200_response_inner.py quantcdn/models/update_ai_agent200_response.py quantcdn/models/update_ai_agent_request.py quantcdn/models/update_ai_session200_response.py @@ -583,6 +806,12 @@ quantcdn/models/update_cron_job_request.py quantcdn/models/update_environment_request.py quantcdn/models/update_environment_state_request.py quantcdn/models/update_environment_variable_request.py +quantcdn/models/update_filter_policy_request.py +quantcdn/models/update_governance_config200_response.py +quantcdn/models/update_governance_config_request.py +quantcdn/models/update_skill200_response.py +quantcdn/models/update_skill_request.py +quantcdn/models/update_slack_bot_request.py quantcdn/models/update_task200_response.py quantcdn/models/update_task_request.py quantcdn/models/upload_file201_response.py @@ -591,6 +820,8 @@ quantcdn/models/upload_vector_documents200_response.py quantcdn/models/upload_vector_documents_request.py quantcdn/models/upload_vector_documents_request_documents_inner.py quantcdn/models/upload_vector_documents_request_documents_inner_metadata.py +quantcdn/models/upsert_agent_overlay200_response.py +quantcdn/models/upsert_agent_overlay_request.py quantcdn/models/v1_content_item.py quantcdn/models/v1_content_list_response.py quantcdn/models/v1_content_request.py @@ -646,6 +877,11 @@ quantcdn/models/v2_domain_dns_go_live_records_inner.py quantcdn/models/v2_domain_dns_validation_records_inner.py quantcdn/models/v2_domain_request.py quantcdn/models/v2_error.py +quantcdn/models/v2_metric_data.py +quantcdn/models/v2_metric_data_point.py +quantcdn/models/v2_metric_data_point_timestamp.py +quantcdn/models/v2_metrics_meta.py +quantcdn/models/v2_metrics_response.py quantcdn/models/v2_organization.py quantcdn/models/v2_organization_request.py quantcdn/models/v2_project.py @@ -706,25 +942,41 @@ setup.py test-requirements.txt test/__init__.py test/test_ai_agents_api.py +test/test_ai_api.py test/test_ai_custom_tools_api.py test/test_ai_file_storage_api.py +test/test_ai_filter_policies_api.py +test/test_ai_governance_api.py test/test_ai_inference_api.py test/test_ai_models_api.py -test/test_ai_monitoring_api.py +test/test_ai_orchestrations_api.py +test/test_ai_search_api.py +test/test_ai_search_chat_request.py +test/test_ai_search_delete_pages_request.py +test/test_ai_search_enable_request.py +test/test_ai_search_ingest_pages_request.py +test/test_ai_search_ingest_pages_request_pages_inner.py +test/test_ai_search_search_request.py +test/test_ai_search_trigger_crawl_request.py +test/test_ai_search_update_settings_request.py test/test_ai_sessions_api.py +test/test_ai_skills_api.py +test/test_ai_slack_bots_api.py test/test_ai_task_management_api.py test/test_ai_tools_api.py +test/test_ai_usage_api.py test/test_ai_vector_database_api.py test/test_application.py +test/test_application_cache.py test/test_application_database.py test/test_application_deployment_information_inner.py -test/test_application_environments_inner.py test/test_application_filesystem.py test/test_application_image_reference.py test/test_applications_api.py test/test_backup_management_api.py test/test_bulk_set_environment_variables_request.py test/test_bulk_set_environment_variables_request_environment_inner.py +test/test_cdn_metrics_api.py test/test_chat_inference200_response.py test/test_chat_inference200_response_response.py test/test_chat_inference200_response_response_tool_use.py @@ -734,6 +986,7 @@ test/test_chat_inference200_response_response_tool_use_one_of_result.py test/test_chat_inference200_response_usage.py test/test_chat_inference202_response.py test/test_chat_inference_request.py +test/test_chat_inference_request_guardrails.py test/test_chat_inference_request_messages_inner.py test/test_chat_inference_request_messages_inner_content.py test/test_chat_inference_request_messages_inner_content_one_of_inner.py @@ -796,6 +1049,16 @@ test/test_create_custom_tool_request.py test/test_create_environment403_response.py test/test_create_environment_request.py test/test_create_environment_request_environment_inner.py +test/test_create_filter_policy_request.py +test/test_create_filter_policy_request_rules_inner.py +test/test_create_filter_policy_request_rules_inner_match.py +test/test_create_orchestration_request.py +test/test_create_orchestration_request_input_source.py +test/test_create_orchestration_request_stop_condition.py +test/test_create_skill201_response.py +test/test_create_skill_request.py +test/test_create_slack_bot201_response.py +test/test_create_slack_bot_request.py test/test_create_task201_response.py test/test_create_task_request.py test/test_create_vector_collection201_response.py @@ -805,14 +1068,20 @@ test/test_create_volume_request.py test/test_cron.py test/test_cron_api.py test/test_cron_run.py +test/test_delete_agent_overlay200_response.py test/test_delete_ai_agent200_response.py test/test_delete_ai_session200_response.py test/test_delete_backup200_response.py test/test_delete_custom_tool200_response.py test/test_delete_file200_response.py +test/test_delete_skill200_response.py +test/test_delete_skill_collection200_response.py +test/test_delete_slack_bot200_response.py test/test_delete_task200_response.py test/test_delete_task409_response.py -test/test_delete_vector_collection200_response.py +test/test_delete_vector_documents200_response.py +test/test_delete_vector_documents_request.py +test/test_delete_vector_documents_request_metadata.py test/test_domains_api.py test/test_download_backup200_response.py test/test_embeddings200_response.py @@ -826,6 +1095,9 @@ test/test_environment_summary.py test/test_environments_api.py test/test_extend_ai_session200_response.py test/test_extend_ai_session_request.py +test/test_get_agent_overlay200_response.py +test/test_get_agent_overlay200_response_base.py +test/test_get_agent_overlay200_response_overlay.py test/test_get_ai_agent200_response.py test/test_get_ai_agent200_response_agent.py test/test_get_ai_model200_response.py @@ -839,8 +1111,8 @@ test/test_get_ai_session200_response.py test/test_get_ai_tool_execution_status200_response.py test/test_get_ai_tool_execution_status200_response_result.py test/test_get_ai_tool_execution_status404_response.py -test/test_get_ai_usage_stats200_response.py -test/test_get_ai_usage_stats200_response_by_model_value.py +test/test_get_custom_tool200_response.py +test/test_get_custom_tool200_response_tool.py test/test_get_dependency_graph200_response.py test/test_get_durable_execution_status200_response.py test/test_get_durable_execution_status200_response_error.py @@ -852,6 +1124,28 @@ test/test_get_ecr_login_credentials200_response.py test/test_get_environment_logs200_response.py test/test_get_environment_logs200_response_log_events_inner.py test/test_get_file200_response.py +test/test_get_governance_config200_response.py +test/test_get_governance_config200_response_spend_limits.py +test/test_get_governance_config200_response_spend_limits_interface_limits_value.py +test/test_get_governance_config200_response_spend_limits_user_overrides_value.py +test/test_get_governance_spend200_response.py +test/test_get_governance_spend200_response_budget.py +test/test_get_governance_spend200_response_daily_budget.py +test/test_get_governance_spend200_response_org_total.py +test/test_get_governance_spend200_response_today_total.py +test/test_get_governance_spend200_response_user_total.py +test/test_get_my_usage200_response.py +test/test_get_my_usage200_response_daily.py +test/test_get_my_usage200_response_monthly.py +test/test_get_my_usage200_response_quota.py +test/test_get_my_usage200_response_quota_daily_limit.py +test/test_get_my_usage200_response_quota_monthly_limit.py +test/test_get_restore_status200_response.py +test/test_get_scaling_policy_response.py +test/test_get_skill200_response.py +test/test_get_skill200_response_skill.py +test/test_get_slack_bot200_response.py +test/test_get_slack_bot200_response_bot.py test/test_get_ssh_access_credentials200_response.py test/test_get_ssh_access_credentials200_response_credentials.py test/test_get_task200_response.py @@ -867,11 +1161,19 @@ test/test_image_generation_request_image_variation_params.py test/test_image_generation_request_in_painting_params.py test/test_image_generation_request_out_painting_params.py test/test_image_generation_request_text_to_image_params.py +test/test_import_skill201_response.py +test/test_import_skill_collection201_response.py +test/test_import_skill_collection_request.py +test/test_import_skill_collection_request_source.py +test/test_import_skill_request.py +test/test_import_skill_request_source.py test/test_kv_api.py test/test_kv_items_create200_response.py test/test_kv_items_delete200_response.py test/test_kv_items_show200_response.py test/test_kv_items_show200_response_value.py +test/test_kv_link_to_project200_response.py +test/test_kv_link_to_project_request.py test/test_list_ai_agents200_response.py test/test_list_ai_agents200_response_agents_inner.py test/test_list_ai_models200_response.py @@ -892,11 +1194,33 @@ test/test_list_custom_tools200_response.py test/test_list_custom_tools200_response_tools_inner.py test/test_list_files200_response.py test/test_list_files200_response_files_inner.py +test/test_list_orchestration_batches200_response.py +test/test_list_orchestration_batches200_response_batches_inner.py +test/test_list_orchestrations200_response.py +test/test_list_skill_collections200_response.py +test/test_list_skill_collections200_response_collections_inner.py +test/test_list_skills200_response.py +test/test_list_skills200_response_skills_inner.py +test/test_list_slack_bots200_response.py +test/test_list_slack_bots200_response_bots_inner.py test/test_list_tasks200_response.py test/test_list_tasks200_response_tasks_inner.py test/test_list_vector_collections200_response.py test/test_list_vector_collections200_response_collections_inner.py -test/test_orchestration_api.py +test/test_oai_chat_completions200_response.py +test/test_oai_chat_completions200_response_choices_inner.py +test/test_oai_chat_completions200_response_choices_inner_message.py +test/test_oai_chat_completions200_response_usage.py +test/test_oai_chat_completions_request.py +test/test_oai_chat_completions_request_messages_inner.py +test/test_oai_embeddings200_response.py +test/test_oai_embeddings200_response_data_inner.py +test/test_oai_embeddings200_response_usage.py +test/test_oai_embeddings_request.py +test/test_oai_get_model200_response.py +test/test_oai_list_models200_response.py +test/test_oai_list_models200_response_data_inner.py +test/test_open_ai_compatibility_api.py test/test_organizations_api.py test/test_organizations_list200_response_inner.py test/test_patch_environment_compose202_response.py @@ -912,16 +1236,33 @@ test/test_query_vector_collection200_response_pagination.py test/test_query_vector_collection200_response_results_inner.py test/test_query_vector_collection_request.py test/test_query_vector_collection_request_filter.py +test/test_restore_database202_response.py +test/test_restore_database_request.py +test/test_restore_filesystem202_response.py +test/test_restore_filesystem_request.py +test/test_restore_management_api.py test/test_rules_api.py -test/test_scaling_policy.py test/test_scaling_policy_api.py +test/test_scaling_policy_list_response.py +test/test_search_slack_workspace_channels200_response.py +test/test_search_slack_workspace_channels200_response_results_inner.py +test/test_search_slack_workspace_users200_response.py +test/test_search_slack_workspace_users200_response_results_inner.py +test/test_set_scaling_policy_request.py test/test_spot_configuration.py test/test_ssh_access_api.py test/test_submit_tool_callback200_response.py test/test_submit_tool_callback_request.py test/test_submit_tool_callback_request_tool_results_inner.py +test/test_subscription_api.py test/test_sync_operation.py +test/test_sync_skill_collection200_response.py test/test_sync_to_environment_request.py +test/test_tokens_api.py +test/test_tokens_create201_response.py +test/test_tokens_create_request.py +test/test_tokens_delete200_response.py +test/test_tokens_list200_response_inner.py test/test_update_ai_agent200_response.py test/test_update_ai_agent_request.py test/test_update_ai_session200_response.py @@ -931,6 +1272,12 @@ test/test_update_cron_job_request.py test/test_update_environment_request.py test/test_update_environment_state_request.py test/test_update_environment_variable_request.py +test/test_update_filter_policy_request.py +test/test_update_governance_config200_response.py +test/test_update_governance_config_request.py +test/test_update_skill200_response.py +test/test_update_skill_request.py +test/test_update_slack_bot_request.py test/test_update_task200_response.py test/test_update_task_request.py test/test_upload_file201_response.py @@ -939,6 +1286,8 @@ test/test_upload_vector_documents200_response.py test/test_upload_vector_documents_request.py test/test_upload_vector_documents_request_documents_inner.py test/test_upload_vector_documents_request_documents_inner_metadata.py +test/test_upsert_agent_overlay200_response.py +test/test_upsert_agent_overlay_request.py test/test_v1_content_item.py test/test_v1_content_list_response.py test/test_v1_content_request.py @@ -994,6 +1343,11 @@ test/test_v2_domain_dns_go_live_records_inner.py test/test_v2_domain_dns_validation_records_inner.py test/test_v2_domain_request.py test/test_v2_error.py +test/test_v2_metric_data.py +test/test_v2_metric_data_point.py +test/test_v2_metric_data_point_timestamp.py +test/test_v2_metrics_meta.py +test/test_v2_metrics_response.py test/test_v2_organization.py test/test_v2_organization_request.py test/test_v2_project.py diff --git a/README.md b/README.md index 13b3f72b..1ca038de 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project: -- API version: 4.9.0 +- API version: 4.20.0 - Package version: 1.0.0 - Generator version: 7.13.0 - Build package: org.openapitools.codegen.languages.PythonClientCodegen @@ -75,18 +75,19 @@ configuration = quantcdn.Configuration( # Enter a context with an instance of the API client with quantcdn.ApiClient(configuration) as api_client: # Create an instance of the API class - api_instance = quantcdn.AIAgentsApi(api_client) - organisation = 'organisation_example' # str | The organisation ID - agent_id = 'agent_id_example' # str | The agent ID - chat_with_ai_agent_request = quantcdn.ChatWithAIAgentRequest() # ChatWithAIAgentRequest | + api_instance = quantcdn.AIApi(api_client) + organisation = 'organisation_example' # str | + month = 'month_example' # str | YYYY-MM, defaults to current month (optional) + group_by = model # str | (optional) (default to model) + include = 'include_example' # str | Set to 'daily' to append a 30-day series (optional) + user_id = 'user_id_example' # str | Scope the daily series to a user (optional) + token_id = 'token_id_example' # str | Scope the daily series to a token (optional) try: - # Chat with AI Agent - api_response = api_instance.chat_with_ai_agent(organisation, agent_id, chat_with_ai_agent_request) - print("The response of AIAgentsApi->chat_with_ai_agent:\n") - pprint(api_response) + # Organisation AI usage breakdown (subscription page parity) + api_instance.get_ai_usage_stats(organisation, month=month, group_by=group_by, include=include, user_id=user_id, token_id=token_id) except ApiException as e: - print("Exception when calling AIAgentsApi->chat_with_ai_agent: %s\n" % e) + print("Exception when calling AIApi->get_ai_usage_stats: %s\n" % e) ``` @@ -96,19 +97,34 @@ All URIs are relative to *https://dashboard.quantcdn.io* Class | Method | HTTP request | Description ------------ | ------------- | ------------- | ------------- +*AIApi* | [**get_ai_usage_stats**](docs/AIApi.md#get_ai_usage_stats) | **GET** /api/v3/organizations/{organisation}/ai/usage | Organisation AI usage breakdown (subscription page parity) *AIAgentsApi* | [**chat_with_ai_agent**](docs/AIAgentsApi.md#chat_with_ai_agent) | **POST** /api/v3/organizations/{organisation}/ai/agents/{agentId}/chat | Chat with AI Agent *AIAgentsApi* | [**create_ai_agent**](docs/AIAgentsApi.md#create_ai_agent) | **POST** /api/v3/organizations/{organisation}/ai/agents | Create AI Agent +*AIAgentsApi* | [**delete_agent_overlay**](docs/AIAgentsApi.md#delete_agent_overlay) | **DELETE** /api/v3/organizations/{organisation}/ai/agents/{agentId}/overlay | Delete Agent Overlay *AIAgentsApi* | [**delete_ai_agent**](docs/AIAgentsApi.md#delete_ai_agent) | **DELETE** /api/v3/organizations/{organisation}/ai/agents/{agentId} | Delete Agent +*AIAgentsApi* | [**get_agent_overlay**](docs/AIAgentsApi.md#get_agent_overlay) | **GET** /api/v3/organizations/{organisation}/ai/agents/{agentId}/overlay | Get Agent Overlay *AIAgentsApi* | [**get_ai_agent**](docs/AIAgentsApi.md#get_ai_agent) | **GET** /api/v3/organizations/{organisation}/ai/agents/{agentId} | Get Agent Details *AIAgentsApi* | [**list_ai_agents**](docs/AIAgentsApi.md#list_ai_agents) | **GET** /api/v3/organizations/{organisation}/ai/agents | List AI Agents *AIAgentsApi* | [**update_ai_agent**](docs/AIAgentsApi.md#update_ai_agent) | **PUT** /api/v3/organizations/{organisation}/ai/agents/{agentId} | Update Agent +*AIAgentsApi* | [**upsert_agent_overlay**](docs/AIAgentsApi.md#upsert_agent_overlay) | **PUT** /api/v3/organizations/{organisation}/ai/agents/{agentId}/overlay | Upsert Agent Overlay *AICustomToolsApi* | [**create_custom_tool**](docs/AICustomToolsApi.md#create_custom_tool) | **POST** /api/v3/organizations/{organisation}/ai/custom-tools | Register Custom Edge Function Tool *AICustomToolsApi* | [**delete_custom_tool**](docs/AICustomToolsApi.md#delete_custom_tool) | **DELETE** /api/v3/organizations/{organisation}/ai/custom-tools/{toolName} | Delete Custom Tool +*AICustomToolsApi* | [**get_custom_tool**](docs/AICustomToolsApi.md#get_custom_tool) | **GET** /api/v3/organizations/{organisation}/ai/custom-tools/{toolName} | Get Custom Tool *AICustomToolsApi* | [**list_custom_tools**](docs/AICustomToolsApi.md#list_custom_tools) | **GET** /api/v3/organizations/{organisation}/ai/custom-tools | List Custom Tools *AIFileStorageApi* | [**delete_file**](docs/AIFileStorageApi.md#delete_file) | **DELETE** /api/v3/organizations/{organisation}/ai/files/{fileId} | Delete File *AIFileStorageApi* | [**get_file**](docs/AIFileStorageApi.md#get_file) | **GET** /api/v3/organizations/{organisation}/ai/files/{fileId} | Get File *AIFileStorageApi* | [**list_files**](docs/AIFileStorageApi.md#list_files) | **GET** /api/v3/organizations/{organisation}/ai/files | List Files *AIFileStorageApi* | [**upload_file**](docs/AIFileStorageApi.md#upload_file) | **POST** /api/v3/organizations/{organisation}/ai/files | Upload File to S3 +*AIFilterPoliciesApi* | [**create_filter_policy**](docs/AIFilterPoliciesApi.md#create_filter_policy) | **POST** /api/v3/organizations/{organisation}/ai/filter-policies | Create an AI filter policy for an organisation +*AIFilterPoliciesApi* | [**delete_filter_policy**](docs/AIFilterPoliciesApi.md#delete_filter_policy) | **DELETE** /api/v3/organizations/{organisation}/ai/filter-policies/{policyId} | Delete a specific AI filter policy +*AIFilterPoliciesApi* | [**disable_filter_policy**](docs/AIFilterPoliciesApi.md#disable_filter_policy) | **PUT** /api/v3/organizations/{organisation}/ai/filter-policies/{policyId}/disable | Disable a specific AI filter policy +*AIFilterPoliciesApi* | [**enable_filter_policy**](docs/AIFilterPoliciesApi.md#enable_filter_policy) | **PUT** /api/v3/organizations/{organisation}/ai/filter-policies/{policyId}/enable | Enable a specific AI filter policy +*AIFilterPoliciesApi* | [**get_filter_policy**](docs/AIFilterPoliciesApi.md#get_filter_policy) | **GET** /api/v3/organizations/{organisation}/ai/filter-policies/{policyId} | Get a specific AI filter policy +*AIFilterPoliciesApi* | [**list_filter_policies**](docs/AIFilterPoliciesApi.md#list_filter_policies) | **GET** /api/v3/organizations/{organisation}/ai/filter-policies | List AI filter policies for an organisation +*AIFilterPoliciesApi* | [**update_filter_policy**](docs/AIFilterPoliciesApi.md#update_filter_policy) | **PUT** /api/v3/organizations/{organisation}/ai/filter-policies/{policyId} | Update a specific AI filter policy +*AIGovernanceApi* | [**get_governance_config**](docs/AIGovernanceApi.md#get_governance_config) | **GET** /api/v3/organizations/{organisation}/ai/governance | Get AI governance configuration for an organisation +*AIGovernanceApi* | [**get_governance_spend**](docs/AIGovernanceApi.md#get_governance_spend) | **GET** /api/v3/organizations/{organisation}/ai/governance/spend | Get AI spend summary for an organisation +*AIGovernanceApi* | [**update_governance_config**](docs/AIGovernanceApi.md#update_governance_config) | **PUT** /api/v3/organizations/{organisation}/ai/governance | Update AI governance configuration for an organisation *AIInferenceApi* | [**chat_inference**](docs/AIInferenceApi.md#chat_inference) | **POST** /api/v3/organizations/{organisation}/ai/chat | Chat inference via API Gateway (buffered responses) with multimodal support *AIInferenceApi* | [**chat_inference_stream**](docs/AIInferenceApi.md#chat_inference_stream) | **POST** /api/v3/organizations/{organisation}/ai/chat/stream | Chat inference via streaming endpoint (true HTTP streaming) with multimodal support *AIInferenceApi* | [**embeddings**](docs/AIInferenceApi.md#embeddings) | **POST** /api/v3/organizations/{organisation}/ai/embeddings | Generate text embeddings for semantic search and RAG applications @@ -117,28 +133,74 @@ Class | Method | HTTP request | Description *AIInferenceApi* | [**submit_tool_callback**](docs/AIInferenceApi.md#submit_tool_callback) | **POST** /api/v3/organizations/{organisation}/ai/chat/callback | Submit Client Tool Results (Callback) *AIModelsApi* | [**get_ai_model**](docs/AIModelsApi.md#get_ai_model) | **GET** /api/v3/organizations/{organisation}/ai/models/{modelId} | Get AI Model Details *AIModelsApi* | [**list_ai_models**](docs/AIModelsApi.md#list_ai_models) | **GET** /api/v3/organizations/{organisation}/ai/models | List available AI models for an organization -*AIMonitoringApi* | [**get_ai_usage_stats**](docs/AIMonitoringApi.md#get_ai_usage_stats) | **GET** /api/v3/organizations/{organisation}/ai/usage | Get AI usage statistics +*AIOrchestrationsApi* | [**cancel_orchestration**](docs/AIOrchestrationsApi.md#cancel_orchestration) | **POST** /api/v3/organizations/{organisation}/ai/orchestrations/{orchestrationId}/cancel | Cancel Durable Orchestration +*AIOrchestrationsApi* | [**create_orchestration**](docs/AIOrchestrationsApi.md#create_orchestration) | **POST** /api/v3/organizations/{organisation}/ai/orchestrations | Create Durable Orchestration +*AIOrchestrationsApi* | [**delete_orchestration**](docs/AIOrchestrationsApi.md#delete_orchestration) | **DELETE** /api/v3/organizations/{organisation}/ai/orchestrations/{orchestrationId} | Delete Durable Orchestration +*AIOrchestrationsApi* | [**get_orchestration**](docs/AIOrchestrationsApi.md#get_orchestration) | **GET** /api/v3/organizations/{organisation}/ai/orchestrations/{orchestrationId} | Get Durable Orchestration +*AIOrchestrationsApi* | [**list_orchestration_batches**](docs/AIOrchestrationsApi.md#list_orchestration_batches) | **GET** /api/v3/organizations/{organisation}/ai/orchestrations/{orchestrationId}/batches | List Orchestration Batches +*AIOrchestrationsApi* | [**list_orchestrations**](docs/AIOrchestrationsApi.md#list_orchestrations) | **GET** /api/v3/organizations/{organisation}/ai/orchestrations | List Durable Orchestrations +*AIOrchestrationsApi* | [**pause_orchestration**](docs/AIOrchestrationsApi.md#pause_orchestration) | **POST** /api/v3/organizations/{organisation}/ai/orchestrations/{orchestrationId}/pause | Pause Durable Orchestration +*AIOrchestrationsApi* | [**resume_orchestration**](docs/AIOrchestrationsApi.md#resume_orchestration) | **POST** /api/v3/organizations/{organisation}/ai/orchestrations/{orchestrationId}/resume | Resume Durable Orchestration +*AIOrchestrationsApi* | [**start_orchestration**](docs/AIOrchestrationsApi.md#start_orchestration) | **POST** /api/v3/organizations/{organisation}/ai/orchestrations/{orchestrationId}/start | Start Durable Orchestration +*AISearchApi* | [**ai_search_chat**](docs/AISearchApi.md#ai_search_chat) | **POST** /api/v3/organisations/{organisation}/projects/{project}/ai-search/chat | RAG chat with AI Search content +*AISearchApi* | [**ai_search_delete_pages**](docs/AISearchApi.md#ai_search_delete_pages) | **DELETE** /api/v3/organisations/{organisation}/projects/{project}/ai-search/pages | Delete pages by URLs or patterns +*AISearchApi* | [**ai_search_disable**](docs/AISearchApi.md#ai_search_disable) | **POST** /api/v3/organisations/{organisation}/projects/{project}/ai-search/disable | Disable AI Search for a project +*AISearchApi* | [**ai_search_enable**](docs/AISearchApi.md#ai_search_enable) | **POST** /api/v3/organisations/{organisation}/projects/{project}/ai-search/enable | Enable AI Search for a project +*AISearchApi* | [**ai_search_get_crawl**](docs/AISearchApi.md#ai_search_get_crawl) | **GET** /api/v3/organisations/{organisation}/projects/{project}/ai-search/crawls/{jobId} | Get AI Search ingest job status +*AISearchApi* | [**ai_search_get_crawl_pages**](docs/AISearchApi.md#ai_search_get_crawl_pages) | **GET** /api/v3/organisations/{organisation}/projects/{project}/ai-search/crawls/{jobId}/pages | Get per-page ingest results for a crawl job +*AISearchApi* | [**ai_search_get_settings**](docs/AISearchApi.md#ai_search_get_settings) | **GET** /api/v3/organisations/{organisation}/projects/{project}/ai-search/settings | Get AI Search public access and rate limit settings +*AISearchApi* | [**ai_search_ingest_pages**](docs/AISearchApi.md#ai_search_ingest_pages) | **POST** /api/v3/organisations/{organisation}/projects/{project}/ai-search/pages | Ingest pages into the AI Search index +*AISearchApi* | [**ai_search_list_crawls**](docs/AISearchApi.md#ai_search_list_crawls) | **GET** /api/v3/organisations/{organisation}/projects/{project}/ai-search/crawls | List AI Search ingest jobs +*AISearchApi* | [**ai_search_list_pages**](docs/AISearchApi.md#ai_search_list_pages) | **GET** /api/v3/organisations/{organisation}/projects/{project}/ai-search/pages | List indexed pages with cursor pagination +*AISearchApi* | [**ai_search_purge_index**](docs/AISearchApi.md#ai_search_purge_index) | **DELETE** /api/v3/organisations/{organisation}/projects/{project}/ai-search/index | Purge the entire AI Search index +*AISearchApi* | [**ai_search_search**](docs/AISearchApi.md#ai_search_search) | **POST** /api/v3/organisations/{organisation}/projects/{project}/ai-search/search | Semantic search across the AI Search index +*AISearchApi* | [**ai_search_status**](docs/AISearchApi.md#ai_search_status) | **GET** /api/v3/organisations/{organisation}/projects/{project}/ai-search | Get AI Search status for a project +*AISearchApi* | [**ai_search_top_queries**](docs/AISearchApi.md#ai_search_top_queries) | **GET** /api/v3/organisations/{organisation}/projects/{project}/ai-search/top-queries | Get the most popular AI Search queries +*AISearchApi* | [**ai_search_trigger_crawl**](docs/AISearchApi.md#ai_search_trigger_crawl) | **POST** /api/v3/organisations/{organisation}/projects/{project}/ai-search/crawls | Trigger a crawler run that ingests into AI Search +*AISearchApi* | [**ai_search_update_settings**](docs/AISearchApi.md#ai_search_update_settings) | **PUT** /api/v3/organisations/{organisation}/projects/{project}/ai-search/settings | Update AI Search public access and rate limit settings +*AISearchApi* | [**ai_search_usage**](docs/AISearchApi.md#ai_search_usage) | **GET** /api/v3/organisations/{organisation}/projects/{project}/ai-search/usage | Get usage statistics for the AI Search site *AISessionsApi* | [**create_ai_session**](docs/AISessionsApi.md#create_ai_session) | **POST** /api/v3/organizations/{organisation}/ai/sessions | Create a new chat session with multi-tenant isolation *AISessionsApi* | [**delete_ai_session**](docs/AISessionsApi.md#delete_ai_session) | **DELETE** /api/v3/organizations/{organisation}/ai/sessions/{sessionId} | Delete a chat session *AISessionsApi* | [**extend_ai_session**](docs/AISessionsApi.md#extend_ai_session) | **PUT** /api/v3/organizations/{organisation}/ai/sessions/{sessionId}/extend | Extend Session Expiration *AISessionsApi* | [**get_ai_session**](docs/AISessionsApi.md#get_ai_session) | **GET** /api/v3/organizations/{organisation}/ai/sessions/{sessionId} | Get a specific chat session *AISessionsApi* | [**list_ai_sessions**](docs/AISessionsApi.md#list_ai_sessions) | **GET** /api/v3/organizations/{organisation}/ai/sessions | List chat sessions with multi-tenant filtering *AISessionsApi* | [**update_ai_session**](docs/AISessionsApi.md#update_ai_session) | **PUT** /api/v3/organizations/{organisation}/ai/sessions/{sessionId} | Update Session +*AISkillsApi* | [**create_skill**](docs/AISkillsApi.md#create_skill) | **POST** /api/v3/organizations/{organisation}/ai/skills | Create Inline Skill +*AISkillsApi* | [**delete_skill**](docs/AISkillsApi.md#delete_skill) | **DELETE** /api/v3/organizations/{organisation}/ai/skills/{skillId} | Delete Skill +*AISkillsApi* | [**delete_skill_collection**](docs/AISkillsApi.md#delete_skill_collection) | **DELETE** /api/v3/organizations/{organisation}/ai/skills/collections/{namespace} | Delete Skill Collection +*AISkillsApi* | [**get_skill**](docs/AISkillsApi.md#get_skill) | **GET** /api/v3/organizations/{organisation}/ai/skills/{skillId} | Get Skill Details +*AISkillsApi* | [**import_skill**](docs/AISkillsApi.md#import_skill) | **POST** /api/v3/organizations/{organisation}/ai/skills/import | Import Skill from External Source +*AISkillsApi* | [**import_skill_collection**](docs/AISkillsApi.md#import_skill_collection) | **POST** /api/v3/organizations/{organisation}/ai/skills/import-collection | Import Skill Collection from GitHub +*AISkillsApi* | [**list_skill_collections**](docs/AISkillsApi.md#list_skill_collections) | **GET** /api/v3/organizations/{organisation}/ai/skills/collections | List Skill Collections +*AISkillsApi* | [**list_skills**](docs/AISkillsApi.md#list_skills) | **GET** /api/v3/organizations/{organisation}/ai/skills | List Organization's Skills +*AISkillsApi* | [**sync_skill**](docs/AISkillsApi.md#sync_skill) | **POST** /api/v3/organizations/{organisation}/ai/skills/{skillId}/sync | Sync Skill from Source +*AISkillsApi* | [**sync_skill_collection**](docs/AISkillsApi.md#sync_skill_collection) | **POST** /api/v3/organizations/{organisation}/ai/skills/collections/{namespace}/sync | Sync Skill Collection +*AISkillsApi* | [**update_skill**](docs/AISkillsApi.md#update_skill) | **PUT** /api/v3/organizations/{organisation}/ai/skills/{skillId} | Update Skill +*AISlackBotsApi* | [**create_slack_bot**](docs/AISlackBotsApi.md#create_slack_bot) | **POST** /api/v3/organizations/{organisation}/ai/slack-bots | Create Slack Bot +*AISlackBotsApi* | [**delete_slack_bot**](docs/AISlackBotsApi.md#delete_slack_bot) | **DELETE** /api/v3/organizations/{organisation}/ai/slack-bots/{botId} | Delete Slack Bot +*AISlackBotsApi* | [**get_slack_bot**](docs/AISlackBotsApi.md#get_slack_bot) | **GET** /api/v3/organizations/{organisation}/ai/slack-bots/{botId} | Get Slack Bot +*AISlackBotsApi* | [**list_slack_bots**](docs/AISlackBotsApi.md#list_slack_bots) | **GET** /api/v3/organizations/{organisation}/ai/slack-bots | List Slack Bots +*AISlackBotsApi* | [**search_slack_workspace_channels**](docs/AISlackBotsApi.md#search_slack_workspace_channels) | **GET** /api/v3/organizations/{organisation}/ai/slack-bots/{botId}/workspace/channels | Search Slack Workspace Channels +*AISlackBotsApi* | [**search_slack_workspace_users**](docs/AISlackBotsApi.md#search_slack_workspace_users) | **GET** /api/v3/organizations/{organisation}/ai/slack-bots/{botId}/workspace/users | Search Slack Workspace Users +*AISlackBotsApi* | [**update_slack_bot**](docs/AISlackBotsApi.md#update_slack_bot) | **PUT** /api/v3/organizations/{organisation}/ai/slack-bots/{botId} | Update Slack Bot *AITaskManagementApi* | [**create_task**](docs/AITaskManagementApi.md#create_task) | **POST** /api/v3/organizations/{organisation}/ai/tasks | Create a new task *AITaskManagementApi* | [**delete_task**](docs/AITaskManagementApi.md#delete_task) | **DELETE** /api/v3/organizations/{organisation}/ai/tasks/{taskId} | Delete a task *AITaskManagementApi* | [**get_dependency_graph**](docs/AITaskManagementApi.md#get_dependency_graph) | **GET** /api/v3/organizations/{organisation}/ai/tasks/{taskListId}/dependency-graph | Get dependency graph for a task list *AITaskManagementApi* | [**get_task**](docs/AITaskManagementApi.md#get_task) | **GET** /api/v3/organizations/{organisation}/ai/tasks/{taskId} | Get task details *AITaskManagementApi* | [**list_tasks**](docs/AITaskManagementApi.md#list_tasks) | **GET** /api/v3/organizations/{organisation}/ai/tasks | List tasks with optional filtering *AITaskManagementApi* | [**update_task**](docs/AITaskManagementApi.md#update_task) | **PUT** /api/v3/organizations/{organisation}/ai/tasks/{taskId} | Update a task -*AIToolsApi* | [**get_ai_orchestration_status**](docs/AIToolsApi.md#get_ai_orchestration_status) | **GET** /api/v3/organizations/{organisation}/ai/tools/orchestrations/{orchestrationId} | Get Orchestration Status +*AIToolsApi* | [**get_ai_orchestration_status**](docs/AIToolsApi.md#get_ai_orchestration_status) | **GET** /api/v3/organizations/{organisation}/ai/tools/orchestrations/{orchestrationId} | Get Tool Orchestration Status (Async Tool Polling) *AIToolsApi* | [**get_ai_tool_execution_status**](docs/AIToolsApi.md#get_ai_tool_execution_status) | **GET** /api/v3/organizations/{organisation}/ai/tools/executions/{executionId} | Get async tool execution status and result *AIToolsApi* | [**list_ai_tool_executions**](docs/AIToolsApi.md#list_ai_tool_executions) | **GET** /api/v3/organizations/{organisation}/ai/tools/executions | List tool executions for monitoring and debugging *AIToolsApi* | [**list_ai_tool_names**](docs/AIToolsApi.md#list_ai_tool_names) | **GET** /api/v3/organizations/{organisation}/ai/tools/names | List tool names only (lightweight response) *AIToolsApi* | [**list_ai_tools**](docs/AIToolsApi.md#list_ai_tools) | **GET** /api/v3/organizations/{organisation}/ai/tools | List available built-in tools for function calling +*AIUsageApi* | [**get_my_usage**](docs/AIUsageApi.md#get_my_usage) | **GET** /api/v3/organizations/{organisation}/ai/usage/me | Get AI usage summary for the authenticated user *AIVectorDatabaseApi* | [**create_vector_collection**](docs/AIVectorDatabaseApi.md#create_vector_collection) | **POST** /api/v3/organizations/{organisation}/ai/vector-db/collections | Create Vector Database Collection *AIVectorDatabaseApi* | [**delete_vector_collection**](docs/AIVectorDatabaseApi.md#delete_vector_collection) | **DELETE** /api/v3/organizations/{organisation}/ai/vector-db/collections/{collectionId} | Delete Collection +*AIVectorDatabaseApi* | [**delete_vector_documents**](docs/AIVectorDatabaseApi.md#delete_vector_documents) | **DELETE** /api/v3/organizations/{organisation}/ai/vector-db/collections/{collectionId}/documents | Delete Documents from Collection *AIVectorDatabaseApi* | [**get_vector_collection**](docs/AIVectorDatabaseApi.md#get_vector_collection) | **GET** /api/v3/organizations/{organisation}/ai/vector-db/collections/{collectionId} | Get Collection Details *AIVectorDatabaseApi* | [**list_vector_collections**](docs/AIVectorDatabaseApi.md#list_vector_collections) | **GET** /api/v3/organizations/{organisation}/ai/vector-db/collections | List Vector Database Collections +*AIVectorDatabaseApi* | [**list_vector_documents**](docs/AIVectorDatabaseApi.md#list_vector_documents) | **GET** /api/v3/organizations/{organisation}/ai/vector-db/collections/{collectionId}/documents | List Documents in Collection *AIVectorDatabaseApi* | [**query_vector_collection**](docs/AIVectorDatabaseApi.md#query_vector_collection) | **POST** /api/v3/organizations/{organisation}/ai/vector-db/collections/{collectionId}/query | Semantic Search Query *AIVectorDatabaseApi* | [**upload_vector_documents**](docs/AIVectorDatabaseApi.md#upload_vector_documents) | **POST** /api/v3/organizations/{organisation}/ai/vector-db/collections/{collectionId}/documents | Upload Documents to Collection *ApplicationsApi* | [**create_application**](docs/ApplicationsApi.md#create_application) | **POST** /api/v3/organizations/{organisation}/applications | Create a new application @@ -150,6 +212,9 @@ Class | Method | HTTP request | Description *BackupManagementApi* | [**delete_backup**](docs/BackupManagementApi.md#delete_backup) | **DELETE** /api/v3/organizations/{organisation}/applications/{application}/environments/{environment}/backups/{type}/{backupId} | Delete a backup *BackupManagementApi* | [**download_backup**](docs/BackupManagementApi.md#download_backup) | **GET** /api/v3/organizations/{organisation}/applications/{application}/environments/{environment}/backups/{type}/{backupId}/download | Generate a download URL for a backup *BackupManagementApi* | [**list_backups**](docs/BackupManagementApi.md#list_backups) | **GET** /api/v3/organizations/{organisation}/applications/{application}/environments/{environment}/backups/{type} | List backups for an environment +*CDNMetricsApi* | [**get_daily_metrics**](docs/CDNMetricsApi.md#get_daily_metrics) | **GET** /v2/organizations/{organization}/projects/{project}/metrics/daily | Get daily metrics +*CDNMetricsApi* | [**get_hourly_metrics**](docs/CDNMetricsApi.md#get_hourly_metrics) | **GET** /v2/organizations/{organization}/projects/{project}/metrics/hourly | Get hourly metrics +*CDNMetricsApi* | [**get_monthly_metrics**](docs/CDNMetricsApi.md#get_monthly_metrics) | **GET** /v2/organizations/{organization}/projects/{project}/metrics/monthly | Get monthly metrics *CommandsApi* | [**create_command**](docs/CommandsApi.md#create_command) | **POST** /api/v3/organizations/{organisation}/environments/{environment}/commands | Create a command for an environment *CommandsApi* | [**get_command**](docs/CommandsApi.md#get_command) | **GET** /api/v3/organizations/{organisation}/environments/{environment}/commands/{command} | Get a command *CommandsApi* | [**list_commands**](docs/CommandsApi.md#list_commands) | **GET** /api/v3/organizations/{organisation}/environments/{environment}/commands | Get all commands for an environment @@ -203,9 +268,14 @@ Class | Method | HTTP request | Description *KVApi* | [**k_v_items_list**](docs/KVApi.md#k_v_items_list) | **GET** /api/v2/organizations/{organization}/projects/{project}/kv/{store_id}/items | List items in a kv store *KVApi* | [**k_v_items_show**](docs/KVApi.md#k_v_items_show) | **GET** /api/v2/organizations/{organization}/projects/{project}/kv/{store_id}/items/{key} | Get an item from a kv store *KVApi* | [**k_v_items_update**](docs/KVApi.md#k_v_items_update) | **PUT** /api/v2/organizations/{organization}/projects/{project}/kv/{store_id}/items/{key} | Update an item in a kv store +*KVApi* | [**k_v_link_to_project**](docs/KVApi.md#k_v_link_to_project) | **POST** /api/v2/organizations/{organization}/projects/{project}/kv/{store_id}/link | Link a KV store to another project *KVApi* | [**k_v_list**](docs/KVApi.md#k_v_list) | **GET** /api/v2/organizations/{organization}/projects/{project}/kv | List key-value stores *KVApi* | [**k_v_show**](docs/KVApi.md#k_v_show) | **GET** /api/v2/organizations/{organization}/projects/{project}/kv/{store_id} | Get a kv store -*OrchestrationApi* | [**get_ai_orchestration_status**](docs/OrchestrationApi.md#get_ai_orchestration_status) | **GET** /api/v3/organizations/{organisation}/ai/tools/orchestrations/{orchestrationId} | Get Orchestration Status +*KVApi* | [**k_v_unlink_from_project**](docs/KVApi.md#k_v_unlink_from_project) | **DELETE** /api/v2/organizations/{organization}/projects/{project}/kv/{store_id}/link | Unlink a KV store from this project +*OpenAICompatibilityApi* | [**oai_chat_completions**](docs/OpenAICompatibilityApi.md#oai_chat_completions) | **POST** /oai/v1/chat/completions | Create a chat completion (OpenAI-compatible) +*OpenAICompatibilityApi* | [**oai_embeddings**](docs/OpenAICompatibilityApi.md#oai_embeddings) | **POST** /oai/v1/embeddings | Create embeddings (OpenAI-compatible) +*OpenAICompatibilityApi* | [**oai_get_model**](docs/OpenAICompatibilityApi.md#oai_get_model) | **GET** /oai/v1/models/{model} | Retrieve a model (OpenAI-compatible) +*OpenAICompatibilityApi* | [**oai_list_models**](docs/OpenAICompatibilityApi.md#oai_list_models) | **GET** /oai/v1/models | List available models (OpenAI-compatible) *OrganizationsApi* | [**organizations_list**](docs/OrganizationsApi.md#organizations_list) | **GET** /api/v2/organizations | Retrieve all organizations *OrganizationsApi* | [**organizations_read**](docs/OrganizationsApi.md#organizations_read) | **GET** /api/v2/organizations/{organization} | Get details of a single organization *ProjectsApi* | [**projects_create**](docs/ProjectsApi.md#projects_create) | **POST** /api/v2/organizations/{organization}/projects | Create a new project @@ -214,6 +284,9 @@ Class | Method | HTTP request | Description *ProjectsApi* | [**projects_read**](docs/ProjectsApi.md#projects_read) | **GET** /api/v2/organizations/{organization}/projects/{project} | Get details of a single project *ProjectsApi* | [**projects_update**](docs/ProjectsApi.md#projects_update) | **PATCH** /api/v2/organizations/{organization}/projects/{project} | Update a project *PurgeApi* | [**purge_create**](docs/PurgeApi.md#purge_create) | **POST** /api/v2/organizations/{organization}/projects/{project}/purge | Purge cache via URL or cache keys +*RestoreManagementApi* | [**get_restore_status**](docs/RestoreManagementApi.md#get_restore_status) | **GET** /api/v3/organizations/{organisation}/applications/{application}/environments/{environment}/restores/{restoreId} | Get the status of a restore operation +*RestoreManagementApi* | [**restore_database**](docs/RestoreManagementApi.md#restore_database) | **POST** /api/v3/organizations/{organisation}/applications/{application}/environments/{environment}/backups/{backupId}/restore-database | Restore a database backup to a target environment +*RestoreManagementApi* | [**restore_filesystem**](docs/RestoreManagementApi.md#restore_filesystem) | **POST** /api/v3/organizations/{organisation}/applications/{application}/environments/{environment}/backups/{backupId}/restore-filesystem | Restore a filesystem backup to a target environment *RulesApi* | [**rules_auth_create**](docs/RulesApi.md#rules_auth_create) | **POST** /api/v2/organizations/{organization}/projects/{project}/rules/auth | Create an authentication rule *RulesApi* | [**rules_auth_delete**](docs/RulesApi.md#rules_auth_delete) | **DELETE** /api/v2/organizations/{organization}/projects/{project}/rules/auth/{rule} | Delete an authentication rule *RulesApi* | [**rules_auth_list**](docs/RulesApi.md#rules_auth_list) | **GET** /api/v2/organizations/{organization}/projects/{project}/rules/auth | List authentication rules @@ -260,9 +333,13 @@ Class | Method | HTTP request | Description *RulesApi* | [**rules_serve_static_read**](docs/RulesApi.md#rules_serve_static_read) | **GET** /api/v2/organizations/{organization}/projects/{project}/rules/serve-static/{rule} | Get details of a serve static rule *RulesApi* | [**rules_serve_static_update**](docs/RulesApi.md#rules_serve_static_update) | **PATCH** /api/v2/organizations/{organization}/projects/{project}/rules/serve-static/{rule} | Update a serve static rule *SSHAccessApi* | [**get_ssh_access_credentials**](docs/SSHAccessApi.md#get_ssh_access_credentials) | **GET** /api/v3/organizations/{organisation}/applications/{application}/environments/{environment}/ssh-access | Get SSH access credentials for an environment -*ScalingPolicyApi* | [**delete_scaling_policy**](docs/ScalingPolicyApi.md#delete_scaling_policy) | **DELETE** /api/v3/organizations/{organisation}/applications/{application}/environments/{environment}/scaling-policies/{policyName} | Delete the scaling policy for an environment -*ScalingPolicyApi* | [**get_scaling_policies**](docs/ScalingPolicyApi.md#get_scaling_policies) | **GET** /api/v3/organizations/{organisation}/applications/{application}/environments/{environment}/scaling-policies | Get the scaling policies for an environment -*ScalingPolicyApi* | [**update_scaling_policy**](docs/ScalingPolicyApi.md#update_scaling_policy) | **PUT** /api/v3/organizations/{organisation}/applications/{application}/environments/{environment}/scaling-policies | Update the scaling policy for an environment +*ScalingPolicyApi* | [**delete_scaling_policy**](docs/ScalingPolicyApi.md#delete_scaling_policy) | **DELETE** /api/v3/organizations/{organisation}/applications/{application}/environments/{environment}/scaling-policies | Delete Scaling Policy +*ScalingPolicyApi* | [**list_scaling_policies**](docs/ScalingPolicyApi.md#list_scaling_policies) | **GET** /api/v3/organizations/{organisation}/applications/{application}/environments/{environment}/scaling-policies | List Scaling Policies +*ScalingPolicyApi* | [**upsert_scaling_policy**](docs/ScalingPolicyApi.md#upsert_scaling_policy) | **PUT** /api/v3/organizations/{organisation}/applications/{application}/environments/{environment}/scaling-policies | Upsert Scaling Policy +*SubscriptionApi* | [**get_subscription_cloud_usage**](docs/SubscriptionApi.md#get_subscription_cloud_usage) | **GET** /api/v3/organizations/{organisation}/subscription/cloud-usage | Cloud-app cost breakdown for the subscription page +*TokensApi* | [**tokens_create**](docs/TokensApi.md#tokens_create) | **POST** /api/v2/organizations/{organization}/tokens | Create a new API token scoped to this organization +*TokensApi* | [**tokens_delete**](docs/TokensApi.md#tokens_delete) | **DELETE** /api/v2/organizations/{organization}/tokens/{token_id} | Revoke an API token +*TokensApi* | [**tokens_list**](docs/TokensApi.md#tokens_list) | **GET** /api/v2/organizations/{organization}/tokens | List API tokens scoped to this organization *VariablesApi* | [**bulk_set_environment_variables**](docs/VariablesApi.md#bulk_set_environment_variables) | **PUT** /api/v3/organizations/{api_organisation}/applications/{api_application}/environments/{api_environment}/variables | Bulk set/replace environment variables *VariablesApi* | [**delete_environment_variable**](docs/VariablesApi.md#delete_environment_variable) | **DELETE** /api/v3/organizations/{api_organisation}/applications/{api_application}/environments/{api_environment}/variables/{api_variable} | Delete a variable *VariablesApi* | [**list_environment_variables**](docs/VariablesApi.md#list_environment_variables) | **GET** /api/v3/organizations/{api_organisation}/applications/{api_application}/environments/{api_environment}/variables | Get all variables for an environment @@ -275,10 +352,18 @@ Class | Method | HTTP request | Description ## Documentation For Models + - [AiSearchChatRequest](docs/AiSearchChatRequest.md) + - [AiSearchDeletePagesRequest](docs/AiSearchDeletePagesRequest.md) + - [AiSearchEnableRequest](docs/AiSearchEnableRequest.md) + - [AiSearchIngestPagesRequest](docs/AiSearchIngestPagesRequest.md) + - [AiSearchIngestPagesRequestPagesInner](docs/AiSearchIngestPagesRequestPagesInner.md) + - [AiSearchSearchRequest](docs/AiSearchSearchRequest.md) + - [AiSearchTriggerCrawlRequest](docs/AiSearchTriggerCrawlRequest.md) + - [AiSearchUpdateSettingsRequest](docs/AiSearchUpdateSettingsRequest.md) - [Application](docs/Application.md) + - [ApplicationCache](docs/ApplicationCache.md) - [ApplicationDatabase](docs/ApplicationDatabase.md) - [ApplicationDeploymentInformationInner](docs/ApplicationDeploymentInformationInner.md) - - [ApplicationEnvironmentsInner](docs/ApplicationEnvironmentsInner.md) - [ApplicationFilesystem](docs/ApplicationFilesystem.md) - [ApplicationImageReference](docs/ApplicationImageReference.md) - [BulkSetEnvironmentVariablesRequest](docs/BulkSetEnvironmentVariablesRequest.md) @@ -292,6 +377,7 @@ Class | Method | HTTP request | Description - [ChatInference200ResponseUsage](docs/ChatInference200ResponseUsage.md) - [ChatInference202Response](docs/ChatInference202Response.md) - [ChatInferenceRequest](docs/ChatInferenceRequest.md) + - [ChatInferenceRequestGuardrails](docs/ChatInferenceRequestGuardrails.md) - [ChatInferenceRequestMessagesInner](docs/ChatInferenceRequestMessagesInner.md) - [ChatInferenceRequestMessagesInnerContent](docs/ChatInferenceRequestMessagesInnerContent.md) - [ChatInferenceRequestMessagesInnerContentOneOfInner](docs/ChatInferenceRequestMessagesInnerContentOneOfInner.md) @@ -349,6 +435,16 @@ Class | Method | HTTP request | Description - [CreateEnvironment403Response](docs/CreateEnvironment403Response.md) - [CreateEnvironmentRequest](docs/CreateEnvironmentRequest.md) - [CreateEnvironmentRequestEnvironmentInner](docs/CreateEnvironmentRequestEnvironmentInner.md) + - [CreateFilterPolicyRequest](docs/CreateFilterPolicyRequest.md) + - [CreateFilterPolicyRequestRulesInner](docs/CreateFilterPolicyRequestRulesInner.md) + - [CreateFilterPolicyRequestRulesInnerMatch](docs/CreateFilterPolicyRequestRulesInnerMatch.md) + - [CreateOrchestrationRequest](docs/CreateOrchestrationRequest.md) + - [CreateOrchestrationRequestInputSource](docs/CreateOrchestrationRequestInputSource.md) + - [CreateOrchestrationRequestStopCondition](docs/CreateOrchestrationRequestStopCondition.md) + - [CreateSkill201Response](docs/CreateSkill201Response.md) + - [CreateSkillRequest](docs/CreateSkillRequest.md) + - [CreateSlackBot201Response](docs/CreateSlackBot201Response.md) + - [CreateSlackBotRequest](docs/CreateSlackBotRequest.md) - [CreateTask201Response](docs/CreateTask201Response.md) - [CreateTaskRequest](docs/CreateTaskRequest.md) - [CreateVectorCollection201Response](docs/CreateVectorCollection201Response.md) @@ -359,12 +455,18 @@ Class | Method | HTTP request | Description - [CronRun](docs/CronRun.md) - [DeleteAIAgent200Response](docs/DeleteAIAgent200Response.md) - [DeleteAISession200Response](docs/DeleteAISession200Response.md) + - [DeleteAgentOverlay200Response](docs/DeleteAgentOverlay200Response.md) - [DeleteBackup200Response](docs/DeleteBackup200Response.md) - [DeleteCustomTool200Response](docs/DeleteCustomTool200Response.md) - [DeleteFile200Response](docs/DeleteFile200Response.md) + - [DeleteSkill200Response](docs/DeleteSkill200Response.md) + - [DeleteSkillCollection200Response](docs/DeleteSkillCollection200Response.md) + - [DeleteSlackBot200Response](docs/DeleteSlackBot200Response.md) - [DeleteTask200Response](docs/DeleteTask200Response.md) - [DeleteTask409Response](docs/DeleteTask409Response.md) - - [DeleteVectorCollection200Response](docs/DeleteVectorCollection200Response.md) + - [DeleteVectorDocuments200Response](docs/DeleteVectorDocuments200Response.md) + - [DeleteVectorDocumentsRequest](docs/DeleteVectorDocumentsRequest.md) + - [DeleteVectorDocumentsRequestMetadata](docs/DeleteVectorDocumentsRequestMetadata.md) - [DownloadBackup200Response](docs/DownloadBackup200Response.md) - [Embeddings200Response](docs/Embeddings200Response.md) - [Embeddings200ResponseEmbeddings](docs/Embeddings200ResponseEmbeddings.md) @@ -389,8 +491,11 @@ Class | Method | HTTP request | Description - [GetAIToolExecutionStatus200Response](docs/GetAIToolExecutionStatus200Response.md) - [GetAIToolExecutionStatus200ResponseResult](docs/GetAIToolExecutionStatus200ResponseResult.md) - [GetAIToolExecutionStatus404Response](docs/GetAIToolExecutionStatus404Response.md) - - [GetAIUsageStats200Response](docs/GetAIUsageStats200Response.md) - - [GetAIUsageStats200ResponseByModelValue](docs/GetAIUsageStats200ResponseByModelValue.md) + - [GetAgentOverlay200Response](docs/GetAgentOverlay200Response.md) + - [GetAgentOverlay200ResponseBase](docs/GetAgentOverlay200ResponseBase.md) + - [GetAgentOverlay200ResponseOverlay](docs/GetAgentOverlay200ResponseOverlay.md) + - [GetCustomTool200Response](docs/GetCustomTool200Response.md) + - [GetCustomTool200ResponseTool](docs/GetCustomTool200ResponseTool.md) - [GetDependencyGraph200Response](docs/GetDependencyGraph200Response.md) - [GetDurableExecutionStatus200Response](docs/GetDurableExecutionStatus200Response.md) - [GetDurableExecutionStatus200ResponseError](docs/GetDurableExecutionStatus200ResponseError.md) @@ -402,6 +507,28 @@ Class | Method | HTTP request | Description - [GetEnvironmentLogs200Response](docs/GetEnvironmentLogs200Response.md) - [GetEnvironmentLogs200ResponseLogEventsInner](docs/GetEnvironmentLogs200ResponseLogEventsInner.md) - [GetFile200Response](docs/GetFile200Response.md) + - [GetGovernanceConfig200Response](docs/GetGovernanceConfig200Response.md) + - [GetGovernanceConfig200ResponseSpendLimits](docs/GetGovernanceConfig200ResponseSpendLimits.md) + - [GetGovernanceConfig200ResponseSpendLimitsInterfaceLimitsValue](docs/GetGovernanceConfig200ResponseSpendLimitsInterfaceLimitsValue.md) + - [GetGovernanceConfig200ResponseSpendLimitsUserOverridesValue](docs/GetGovernanceConfig200ResponseSpendLimitsUserOverridesValue.md) + - [GetGovernanceSpend200Response](docs/GetGovernanceSpend200Response.md) + - [GetGovernanceSpend200ResponseBudget](docs/GetGovernanceSpend200ResponseBudget.md) + - [GetGovernanceSpend200ResponseDailyBudget](docs/GetGovernanceSpend200ResponseDailyBudget.md) + - [GetGovernanceSpend200ResponseOrgTotal](docs/GetGovernanceSpend200ResponseOrgTotal.md) + - [GetGovernanceSpend200ResponseTodayTotal](docs/GetGovernanceSpend200ResponseTodayTotal.md) + - [GetGovernanceSpend200ResponseUserTotal](docs/GetGovernanceSpend200ResponseUserTotal.md) + - [GetMyUsage200Response](docs/GetMyUsage200Response.md) + - [GetMyUsage200ResponseDaily](docs/GetMyUsage200ResponseDaily.md) + - [GetMyUsage200ResponseMonthly](docs/GetMyUsage200ResponseMonthly.md) + - [GetMyUsage200ResponseQuota](docs/GetMyUsage200ResponseQuota.md) + - [GetMyUsage200ResponseQuotaDailyLimit](docs/GetMyUsage200ResponseQuotaDailyLimit.md) + - [GetMyUsage200ResponseQuotaMonthlyLimit](docs/GetMyUsage200ResponseQuotaMonthlyLimit.md) + - [GetRestoreStatus200Response](docs/GetRestoreStatus200Response.md) + - [GetScalingPolicyResponse](docs/GetScalingPolicyResponse.md) + - [GetSkill200Response](docs/GetSkill200Response.md) + - [GetSkill200ResponseSkill](docs/GetSkill200ResponseSkill.md) + - [GetSlackBot200Response](docs/GetSlackBot200Response.md) + - [GetSlackBot200ResponseBot](docs/GetSlackBot200ResponseBot.md) - [GetSshAccessCredentials200Response](docs/GetSshAccessCredentials200Response.md) - [GetSshAccessCredentials200ResponseCredentials](docs/GetSshAccessCredentials200ResponseCredentials.md) - [GetTask200Response](docs/GetTask200Response.md) @@ -416,10 +543,18 @@ Class | Method | HTTP request | Description - [ImageGenerationRequestInPaintingParams](docs/ImageGenerationRequestInPaintingParams.md) - [ImageGenerationRequestOutPaintingParams](docs/ImageGenerationRequestOutPaintingParams.md) - [ImageGenerationRequestTextToImageParams](docs/ImageGenerationRequestTextToImageParams.md) + - [ImportSkill201Response](docs/ImportSkill201Response.md) + - [ImportSkillCollection201Response](docs/ImportSkillCollection201Response.md) + - [ImportSkillCollectionRequest](docs/ImportSkillCollectionRequest.md) + - [ImportSkillCollectionRequestSource](docs/ImportSkillCollectionRequestSource.md) + - [ImportSkillRequest](docs/ImportSkillRequest.md) + - [ImportSkillRequestSource](docs/ImportSkillRequestSource.md) - [KVItemsCreate200Response](docs/KVItemsCreate200Response.md) - [KVItemsDelete200Response](docs/KVItemsDelete200Response.md) - [KVItemsShow200Response](docs/KVItemsShow200Response.md) - [KVItemsShow200ResponseValue](docs/KVItemsShow200ResponseValue.md) + - [KVLinkToProject200Response](docs/KVLinkToProject200Response.md) + - [KVLinkToProjectRequest](docs/KVLinkToProjectRequest.md) - [ListAIAgents200Response](docs/ListAIAgents200Response.md) - [ListAIAgents200ResponseAgentsInner](docs/ListAIAgents200ResponseAgentsInner.md) - [ListAIModels200Response](docs/ListAIModels200Response.md) @@ -440,10 +575,32 @@ Class | Method | HTTP request | Description - [ListCustomTools200ResponseToolsInner](docs/ListCustomTools200ResponseToolsInner.md) - [ListFiles200Response](docs/ListFiles200Response.md) - [ListFiles200ResponseFilesInner](docs/ListFiles200ResponseFilesInner.md) + - [ListOrchestrationBatches200Response](docs/ListOrchestrationBatches200Response.md) + - [ListOrchestrationBatches200ResponseBatchesInner](docs/ListOrchestrationBatches200ResponseBatchesInner.md) + - [ListOrchestrations200Response](docs/ListOrchestrations200Response.md) + - [ListSkillCollections200Response](docs/ListSkillCollections200Response.md) + - [ListSkillCollections200ResponseCollectionsInner](docs/ListSkillCollections200ResponseCollectionsInner.md) + - [ListSkills200Response](docs/ListSkills200Response.md) + - [ListSkills200ResponseSkillsInner](docs/ListSkills200ResponseSkillsInner.md) + - [ListSlackBots200Response](docs/ListSlackBots200Response.md) + - [ListSlackBots200ResponseBotsInner](docs/ListSlackBots200ResponseBotsInner.md) - [ListTasks200Response](docs/ListTasks200Response.md) - [ListTasks200ResponseTasksInner](docs/ListTasks200ResponseTasksInner.md) - [ListVectorCollections200Response](docs/ListVectorCollections200Response.md) - [ListVectorCollections200ResponseCollectionsInner](docs/ListVectorCollections200ResponseCollectionsInner.md) + - [OaiChatCompletions200Response](docs/OaiChatCompletions200Response.md) + - [OaiChatCompletions200ResponseChoicesInner](docs/OaiChatCompletions200ResponseChoicesInner.md) + - [OaiChatCompletions200ResponseChoicesInnerMessage](docs/OaiChatCompletions200ResponseChoicesInnerMessage.md) + - [OaiChatCompletions200ResponseUsage](docs/OaiChatCompletions200ResponseUsage.md) + - [OaiChatCompletionsRequest](docs/OaiChatCompletionsRequest.md) + - [OaiChatCompletionsRequestMessagesInner](docs/OaiChatCompletionsRequestMessagesInner.md) + - [OaiEmbeddings200Response](docs/OaiEmbeddings200Response.md) + - [OaiEmbeddings200ResponseDataInner](docs/OaiEmbeddings200ResponseDataInner.md) + - [OaiEmbeddings200ResponseUsage](docs/OaiEmbeddings200ResponseUsage.md) + - [OaiEmbeddingsRequest](docs/OaiEmbeddingsRequest.md) + - [OaiGetModel200Response](docs/OaiGetModel200Response.md) + - [OaiListModels200Response](docs/OaiListModels200Response.md) + - [OaiListModels200ResponseDataInner](docs/OaiListModels200ResponseDataInner.md) - [OrganizationsList200ResponseInner](docs/OrganizationsList200ResponseInner.md) - [PatchEnvironmentCompose202Response](docs/PatchEnvironmentCompose202Response.md) - [PatchEnvironmentCompose202ResponseSpotConfiguration](docs/PatchEnvironmentCompose202ResponseSpotConfiguration.md) @@ -456,13 +613,27 @@ Class | Method | HTTP request | Description - [QueryVectorCollection200ResponseResultsInner](docs/QueryVectorCollection200ResponseResultsInner.md) - [QueryVectorCollectionRequest](docs/QueryVectorCollectionRequest.md) - [QueryVectorCollectionRequestFilter](docs/QueryVectorCollectionRequestFilter.md) - - [ScalingPolicy](docs/ScalingPolicy.md) + - [RestoreDatabase202Response](docs/RestoreDatabase202Response.md) + - [RestoreDatabaseRequest](docs/RestoreDatabaseRequest.md) + - [RestoreFilesystem202Response](docs/RestoreFilesystem202Response.md) + - [RestoreFilesystemRequest](docs/RestoreFilesystemRequest.md) + - [ScalingPolicyListResponse](docs/ScalingPolicyListResponse.md) + - [SearchSlackWorkspaceChannels200Response](docs/SearchSlackWorkspaceChannels200Response.md) + - [SearchSlackWorkspaceChannels200ResponseResultsInner](docs/SearchSlackWorkspaceChannels200ResponseResultsInner.md) + - [SearchSlackWorkspaceUsers200Response](docs/SearchSlackWorkspaceUsers200Response.md) + - [SearchSlackWorkspaceUsers200ResponseResultsInner](docs/SearchSlackWorkspaceUsers200ResponseResultsInner.md) + - [SetScalingPolicyRequest](docs/SetScalingPolicyRequest.md) - [SpotConfiguration](docs/SpotConfiguration.md) - [SubmitToolCallback200Response](docs/SubmitToolCallback200Response.md) - [SubmitToolCallbackRequest](docs/SubmitToolCallbackRequest.md) - [SubmitToolCallbackRequestToolResultsInner](docs/SubmitToolCallbackRequestToolResultsInner.md) - [SyncOperation](docs/SyncOperation.md) + - [SyncSkillCollection200Response](docs/SyncSkillCollection200Response.md) - [SyncToEnvironmentRequest](docs/SyncToEnvironmentRequest.md) + - [TokensCreate201Response](docs/TokensCreate201Response.md) + - [TokensCreateRequest](docs/TokensCreateRequest.md) + - [TokensDelete200Response](docs/TokensDelete200Response.md) + - [TokensList200ResponseInner](docs/TokensList200ResponseInner.md) - [UpdateAIAgent200Response](docs/UpdateAIAgent200Response.md) - [UpdateAIAgentRequest](docs/UpdateAIAgentRequest.md) - [UpdateAISession200Response](docs/UpdateAISession200Response.md) @@ -472,6 +643,12 @@ Class | Method | HTTP request | Description - [UpdateEnvironmentRequest](docs/UpdateEnvironmentRequest.md) - [UpdateEnvironmentStateRequest](docs/UpdateEnvironmentStateRequest.md) - [UpdateEnvironmentVariableRequest](docs/UpdateEnvironmentVariableRequest.md) + - [UpdateFilterPolicyRequest](docs/UpdateFilterPolicyRequest.md) + - [UpdateGovernanceConfig200Response](docs/UpdateGovernanceConfig200Response.md) + - [UpdateGovernanceConfigRequest](docs/UpdateGovernanceConfigRequest.md) + - [UpdateSkill200Response](docs/UpdateSkill200Response.md) + - [UpdateSkillRequest](docs/UpdateSkillRequest.md) + - [UpdateSlackBotRequest](docs/UpdateSlackBotRequest.md) - [UpdateTask200Response](docs/UpdateTask200Response.md) - [UpdateTaskRequest](docs/UpdateTaskRequest.md) - [UploadFile201Response](docs/UploadFile201Response.md) @@ -480,6 +657,8 @@ Class | Method | HTTP request | Description - [UploadVectorDocumentsRequest](docs/UploadVectorDocumentsRequest.md) - [UploadVectorDocumentsRequestDocumentsInner](docs/UploadVectorDocumentsRequestDocumentsInner.md) - [UploadVectorDocumentsRequestDocumentsInnerMetadata](docs/UploadVectorDocumentsRequestDocumentsInnerMetadata.md) + - [UpsertAgentOverlay200Response](docs/UpsertAgentOverlay200Response.md) + - [UpsertAgentOverlayRequest](docs/UpsertAgentOverlayRequest.md) - [V1ContentItem](docs/V1ContentItem.md) - [V1ContentListResponse](docs/V1ContentListResponse.md) - [V1ContentRequest](docs/V1ContentRequest.md) @@ -535,6 +714,11 @@ Class | Method | HTTP request | Description - [V2DomainDnsValidationRecordsInner](docs/V2DomainDnsValidationRecordsInner.md) - [V2DomainRequest](docs/V2DomainRequest.md) - [V2Error](docs/V2Error.md) + - [V2MetricData](docs/V2MetricData.md) + - [V2MetricDataPoint](docs/V2MetricDataPoint.md) + - [V2MetricDataPointTimestamp](docs/V2MetricDataPointTimestamp.md) + - [V2MetricsMeta](docs/V2MetricsMeta.md) + - [V2MetricsResponse](docs/V2MetricsResponse.md) - [V2Organization](docs/V2Organization.md) - [V2OrganizationRequest](docs/V2OrganizationRequest.md) - [V2Project](docs/V2Project.md) diff --git a/docs/AIAgentsApi.md b/docs/AIAgentsApi.md index 8db99480..25c76c25 100644 --- a/docs/AIAgentsApi.md +++ b/docs/AIAgentsApi.md @@ -6,10 +6,13 @@ Method | HTTP request | Description ------------- | ------------- | ------------- [**chat_with_ai_agent**](AIAgentsApi.md#chat_with_ai_agent) | **POST** /api/v3/organizations/{organisation}/ai/agents/{agentId}/chat | Chat with AI Agent [**create_ai_agent**](AIAgentsApi.md#create_ai_agent) | **POST** /api/v3/organizations/{organisation}/ai/agents | Create AI Agent +[**delete_agent_overlay**](AIAgentsApi.md#delete_agent_overlay) | **DELETE** /api/v3/organizations/{organisation}/ai/agents/{agentId}/overlay | Delete Agent Overlay [**delete_ai_agent**](AIAgentsApi.md#delete_ai_agent) | **DELETE** /api/v3/organizations/{organisation}/ai/agents/{agentId} | Delete Agent +[**get_agent_overlay**](AIAgentsApi.md#get_agent_overlay) | **GET** /api/v3/organizations/{organisation}/ai/agents/{agentId}/overlay | Get Agent Overlay [**get_ai_agent**](AIAgentsApi.md#get_ai_agent) | **GET** /api/v3/organizations/{organisation}/ai/agents/{agentId} | Get Agent Details [**list_ai_agents**](AIAgentsApi.md#list_ai_agents) | **GET** /api/v3/organizations/{organisation}/ai/agents | List AI Agents [**update_ai_agent**](AIAgentsApi.md#update_ai_agent) | **PUT** /api/v3/organizations/{organisation}/ai/agents/{agentId} | Update Agent +[**upsert_agent_overlay**](AIAgentsApi.md#upsert_agent_overlay) | **PUT** /api/v3/organizations/{organisation}/ai/agents/{agentId}/overlay | Upsert Agent Overlay # **chat_with_ai_agent** @@ -223,6 +226,89 @@ Name | Type | Description | Notes [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) +# **delete_agent_overlay** +> DeleteAgentOverlay200Response delete_agent_overlay(organisation, agent_id) + +Delete Agent Overlay + +Removes the per-organisation overlay for a global agent, reverting it to platform defaults. + +### Example + +* Bearer (JWT) Authentication (BearerAuth): + +```python +import quantcdn +from quantcdn.models.delete_agent_overlay200_response import DeleteAgentOverlay200Response +from quantcdn.rest import ApiException +from pprint import pprint + +# Defining the host is optional and defaults to https://dashboard.quantcdn.io +# See configuration.py for a list of all supported configuration parameters. +configuration = quantcdn.Configuration( + host = "https://dashboard.quantcdn.io" +) + +# The client must configure the authentication and authorization parameters +# in accordance with the API server security policy. +# Examples for each auth method are provided below, use the example that +# satisfies your auth use case. + +# Configure Bearer authorization (JWT): BearerAuth +configuration = quantcdn.Configuration( + access_token = os.environ["BEARER_TOKEN"] +) + +# Enter a context with an instance of the API client +with quantcdn.ApiClient(configuration) as api_client: + # Create an instance of the API class + api_instance = quantcdn.AIAgentsApi(api_client) + organisation = 'organisation_example' # str | The organisation ID + agent_id = 'agent_id_example' # str | Global agent identifier + + try: + # Delete Agent Overlay + api_response = api_instance.delete_agent_overlay(organisation, agent_id) + print("The response of AIAgentsApi->delete_agent_overlay:\n") + pprint(api_response) + except Exception as e: + print("Exception when calling AIAgentsApi->delete_agent_overlay: %s\n" % e) +``` + + + +### Parameters + + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **organisation** | **str**| The organisation ID | + **agent_id** | **str**| Global agent identifier | + +### Return type + +[**DeleteAgentOverlay200Response**](DeleteAgentOverlay200Response.md) + +### Authorization + +[BearerAuth](../README.md#BearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + +### HTTP response details + +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**200** | Overlay deleted — agent reverted to defaults | - | +**403** | Access denied | - | +**404** | Not a global agent | - | +**500** | Failed to reset overlay | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + # **delete_ai_agent** > DeleteAIAgent200Response delete_ai_agent(organisation, agent_id) @@ -306,6 +392,89 @@ Name | Type | Description | Notes [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) +# **get_agent_overlay** +> GetAgentOverlay200Response get_agent_overlay(organisation, agent_id) + +Get Agent Overlay + +Returns the per-organisation overlay for a global agent, plus base agent metadata for UI context. If no overlay exists the response contains `overlay: null`. Overlays can only be created for global agents. + +### Example + +* Bearer (JWT) Authentication (BearerAuth): + +```python +import quantcdn +from quantcdn.models.get_agent_overlay200_response import GetAgentOverlay200Response +from quantcdn.rest import ApiException +from pprint import pprint + +# Defining the host is optional and defaults to https://dashboard.quantcdn.io +# See configuration.py for a list of all supported configuration parameters. +configuration = quantcdn.Configuration( + host = "https://dashboard.quantcdn.io" +) + +# The client must configure the authentication and authorization parameters +# in accordance with the API server security policy. +# Examples for each auth method are provided below, use the example that +# satisfies your auth use case. + +# Configure Bearer authorization (JWT): BearerAuth +configuration = quantcdn.Configuration( + access_token = os.environ["BEARER_TOKEN"] +) + +# Enter a context with an instance of the API client +with quantcdn.ApiClient(configuration) as api_client: + # Create an instance of the API class + api_instance = quantcdn.AIAgentsApi(api_client) + organisation = 'organisation_example' # str | The organisation ID + agent_id = 'agent_id_example' # str | Global agent identifier (e.g., 'quantgov-code') + + try: + # Get Agent Overlay + api_response = api_instance.get_agent_overlay(organisation, agent_id) + print("The response of AIAgentsApi->get_agent_overlay:\n") + pprint(api_response) + except Exception as e: + print("Exception when calling AIAgentsApi->get_agent_overlay: %s\n" % e) +``` + + + +### Parameters + + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **organisation** | **str**| The organisation ID | + **agent_id** | **str**| Global agent identifier (e.g., 'quantgov-code') | + +### Return type + +[**GetAgentOverlay200Response**](GetAgentOverlay200Response.md) + +### Authorization + +[BearerAuth](../README.md#BearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + +### HTTP response details + +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**200** | Overlay retrieved (may be null if none set) | - | +**403** | Access denied | - | +**404** | Not a global agent | - | +**500** | Failed to retrieve overlay | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + # **get_ai_agent** > GetAIAgent200Response get_ai_agent(organisation, agent_id) @@ -563,3 +732,91 @@ Name | Type | Description | Notes [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) +# **upsert_agent_overlay** +> UpsertAgentOverlay200Response upsert_agent_overlay(organisation, agent_id, upsert_agent_overlay_request) + +Upsert Agent Overlay + +Creates or replaces the per-organisation overlay for a global agent. PUT is full replacement — omitted optional fields are removed. Include `version` from a prior GET to enable compare-and-swap (409 on conflict). Omit for last-writer-wins. + +### Example + +* Bearer (JWT) Authentication (BearerAuth): + +```python +import quantcdn +from quantcdn.models.upsert_agent_overlay200_response import UpsertAgentOverlay200Response +from quantcdn.models.upsert_agent_overlay_request import UpsertAgentOverlayRequest +from quantcdn.rest import ApiException +from pprint import pprint + +# Defining the host is optional and defaults to https://dashboard.quantcdn.io +# See configuration.py for a list of all supported configuration parameters. +configuration = quantcdn.Configuration( + host = "https://dashboard.quantcdn.io" +) + +# The client must configure the authentication and authorization parameters +# in accordance with the API server security policy. +# Examples for each auth method are provided below, use the example that +# satisfies your auth use case. + +# Configure Bearer authorization (JWT): BearerAuth +configuration = quantcdn.Configuration( + access_token = os.environ["BEARER_TOKEN"] +) + +# Enter a context with an instance of the API client +with quantcdn.ApiClient(configuration) as api_client: + # Create an instance of the API class + api_instance = quantcdn.AIAgentsApi(api_client) + organisation = 'organisation_example' # str | The organisation ID + agent_id = 'agent_id_example' # str | Global agent identifier + upsert_agent_overlay_request = quantcdn.UpsertAgentOverlayRequest() # UpsertAgentOverlayRequest | + + try: + # Upsert Agent Overlay + api_response = api_instance.upsert_agent_overlay(organisation, agent_id, upsert_agent_overlay_request) + print("The response of AIAgentsApi->upsert_agent_overlay:\n") + pprint(api_response) + except Exception as e: + print("Exception when calling AIAgentsApi->upsert_agent_overlay: %s\n" % e) +``` + + + +### Parameters + + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **organisation** | **str**| The organisation ID | + **agent_id** | **str**| Global agent identifier | + **upsert_agent_overlay_request** | [**UpsertAgentOverlayRequest**](UpsertAgentOverlayRequest.md)| | + +### Return type + +[**UpsertAgentOverlay200Response**](UpsertAgentOverlay200Response.md) + +### Authorization + +[BearerAuth](../README.md#BearerAuth) + +### HTTP request headers + + - **Content-Type**: application/json + - **Accept**: application/json + +### HTTP response details + +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**200** | Overlay created or updated | - | +**400** | Invalid request parameters | - | +**403** | Access denied | - | +**404** | Not a global agent | - | +**409** | Version conflict — overlay was modified concurrently | - | +**500** | Failed to save overlay | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + diff --git a/docs/AIApi.md b/docs/AIApi.md new file mode 100644 index 00000000..9788604c --- /dev/null +++ b/docs/AIApi.md @@ -0,0 +1,97 @@ +# quantcdn.AIApi + +All URIs are relative to *https://dashboard.quantcdn.io* + +Method | HTTP request | Description +------------- | ------------- | ------------- +[**get_ai_usage_stats**](AIApi.md#get_ai_usage_stats) | **GET** /api/v3/organizations/{organisation}/ai/usage | Organisation AI usage breakdown (subscription page parity) + + +# **get_ai_usage_stats** +> get_ai_usage_stats(organisation, month=month, group_by=group_by, include=include, user_id=user_id, token_id=token_id) + +Organisation AI usage breakdown (subscription page parity) + +AI usage from the subscription page's source (cloud-api monthly-usage). Parameterized by month, groupBy (model|user|token) and optional daily series. NOTE: as of API 4.19.0 this endpoint requires the update_subscription permission + subscription:read scope (previously use_ai_services + ai:use). For per-caller spend use /ai/usage/me. + +### Example + +* Bearer (JWT) Authentication (BearerAuth): + +```python +import quantcdn +from quantcdn.rest import ApiException +from pprint import pprint + +# Defining the host is optional and defaults to https://dashboard.quantcdn.io +# See configuration.py for a list of all supported configuration parameters. +configuration = quantcdn.Configuration( + host = "https://dashboard.quantcdn.io" +) + +# The client must configure the authentication and authorization parameters +# in accordance with the API server security policy. +# Examples for each auth method are provided below, use the example that +# satisfies your auth use case. + +# Configure Bearer authorization (JWT): BearerAuth +configuration = quantcdn.Configuration( + access_token = os.environ["BEARER_TOKEN"] +) + +# Enter a context with an instance of the API client +with quantcdn.ApiClient(configuration) as api_client: + # Create an instance of the API class + api_instance = quantcdn.AIApi(api_client) + organisation = 'organisation_example' # str | + month = 'month_example' # str | YYYY-MM, defaults to current month (optional) + group_by = model # str | (optional) (default to model) + include = 'include_example' # str | Set to 'daily' to append a 30-day series (optional) + user_id = 'user_id_example' # str | Scope the daily series to a user (optional) + token_id = 'token_id_example' # str | Scope the daily series to a token (optional) + + try: + # Organisation AI usage breakdown (subscription page parity) + api_instance.get_ai_usage_stats(organisation, month=month, group_by=group_by, include=include, user_id=user_id, token_id=token_id) + except Exception as e: + print("Exception when calling AIApi->get_ai_usage_stats: %s\n" % e) +``` + + + +### Parameters + + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **organisation** | **str**| | + **month** | **str**| YYYY-MM, defaults to current month | [optional] + **group_by** | **str**| | [optional] [default to model] + **include** | **str**| Set to 'daily' to append a 30-day series | [optional] + **user_id** | **str**| Scope the daily series to a user | [optional] + **token_id** | **str**| Scope the daily series to a token | [optional] + +### Return type + +void (empty response body) + +### Authorization + +[BearerAuth](../README.md#BearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: Not defined + +### HTTP response details + +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**200** | Usage breakdown | - | +**403** | Missing update_subscription permission or subscription:read scope | - | +**422** | Invalid groupBy | - | +**500** | Failed to fetch usage data | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + diff --git a/docs/AICustomToolsApi.md b/docs/AICustomToolsApi.md index a2e306dd..0760d69b 100644 --- a/docs/AICustomToolsApi.md +++ b/docs/AICustomToolsApi.md @@ -6,6 +6,7 @@ Method | HTTP request | Description ------------- | ------------- | ------------- [**create_custom_tool**](AICustomToolsApi.md#create_custom_tool) | **POST** /api/v3/organizations/{organisation}/ai/custom-tools | Register Custom Edge Function Tool [**delete_custom_tool**](AICustomToolsApi.md#delete_custom_tool) | **DELETE** /api/v3/organizations/{organisation}/ai/custom-tools/{toolName} | Delete Custom Tool +[**get_custom_tool**](AICustomToolsApi.md#get_custom_tool) | **GET** /api/v3/organizations/{organisation}/ai/custom-tools/{toolName} | Get Custom Tool [**list_custom_tools**](AICustomToolsApi.md#list_custom_tools) | **GET** /api/v3/organizations/{organisation}/ai/custom-tools | List Custom Tools @@ -14,13 +15,16 @@ Method | HTTP request | Description Register Custom Edge Function Tool -Registers a custom edge function as a tool that AI models can invoke. This enables customers to create their own tools backed by edge functions. +Registers a custom edge function as a tool that AI models can invoke. Provide `edgeFunctionCode` (JavaScript) and the API will deploy it to the CDN, compute the edge function URL, and register the tool. * * **Edge Function Contract:** * - Edge functions must accept POST requests with JSON payload * - Expected request format: `{ 'toolName': '...', 'input': {...}, 'orgId': '...' }` * - Must return JSON response with either `result` or `error` field * + * **Idempotent Updates:** + * POSTing with the same `name` will update the existing tool — the edge function code is redeployed to the same UUID and the tool registration is updated. + * * **Async Tools:** * Set `isAsync: true` for operations >5 seconds. The edge function should return `{ executionId: '...' }` and the AI will poll for completion. @@ -97,7 +101,6 @@ Name | Type | Description | Notes **201** | Custom tool registered successfully | - | **400** | Invalid request parameters | - | **403** | Access denied | - | -**409** | Tool with this name already exists | - | **500** | Failed to register custom tool | - | [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) @@ -107,7 +110,7 @@ Name | Type | Description | Notes Delete Custom Tool -Deletes a custom tool registration. The underlying edge function is not affected. +Deletes a custom tool registration and its deployed edge function. ### Example @@ -185,6 +188,89 @@ Name | Type | Description | Notes [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) +# **get_custom_tool** +> GetCustomTool200Response get_custom_tool(organisation, tool_name) + +Get Custom Tool + +Retrieves a single registered custom tool by name. + +### Example + +* Bearer (JWT) Authentication (BearerAuth): + +```python +import quantcdn +from quantcdn.models.get_custom_tool200_response import GetCustomTool200Response +from quantcdn.rest import ApiException +from pprint import pprint + +# Defining the host is optional and defaults to https://dashboard.quantcdn.io +# See configuration.py for a list of all supported configuration parameters. +configuration = quantcdn.Configuration( + host = "https://dashboard.quantcdn.io" +) + +# The client must configure the authentication and authorization parameters +# in accordance with the API server security policy. +# Examples for each auth method are provided below, use the example that +# satisfies your auth use case. + +# Configure Bearer authorization (JWT): BearerAuth +configuration = quantcdn.Configuration( + access_token = os.environ["BEARER_TOKEN"] +) + +# Enter a context with an instance of the API client +with quantcdn.ApiClient(configuration) as api_client: + # Create an instance of the API class + api_instance = quantcdn.AICustomToolsApi(api_client) + organisation = 'organisation_example' # str | The organisation ID + tool_name = 'tool_name_example' # str | The tool name to retrieve + + try: + # Get Custom Tool + api_response = api_instance.get_custom_tool(organisation, tool_name) + print("The response of AICustomToolsApi->get_custom_tool:\n") + pprint(api_response) + except Exception as e: + print("Exception when calling AICustomToolsApi->get_custom_tool: %s\n" % e) +``` + + + +### Parameters + + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **organisation** | **str**| The organisation ID | + **tool_name** | **str**| The tool name to retrieve | + +### Return type + +[**GetCustomTool200Response**](GetCustomTool200Response.md) + +### Authorization + +[BearerAuth](../README.md#BearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + +### HTTP response details + +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**200** | Custom tool retrieved successfully | - | +**403** | Access denied | - | +**404** | Tool not found | - | +**500** | Failed to retrieve custom tools | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + # **list_custom_tools** > ListCustomTools200Response list_custom_tools(organisation) diff --git a/docs/AIFilterPoliciesApi.md b/docs/AIFilterPoliciesApi.md new file mode 100644 index 00000000..0a45aa47 --- /dev/null +++ b/docs/AIFilterPoliciesApi.md @@ -0,0 +1,565 @@ +# quantcdn.AIFilterPoliciesApi + +All URIs are relative to *https://dashboard.quantcdn.io* + +Method | HTTP request | Description +------------- | ------------- | ------------- +[**create_filter_policy**](AIFilterPoliciesApi.md#create_filter_policy) | **POST** /api/v3/organizations/{organisation}/ai/filter-policies | Create an AI filter policy for an organisation +[**delete_filter_policy**](AIFilterPoliciesApi.md#delete_filter_policy) | **DELETE** /api/v3/organizations/{organisation}/ai/filter-policies/{policyId} | Delete a specific AI filter policy +[**disable_filter_policy**](AIFilterPoliciesApi.md#disable_filter_policy) | **PUT** /api/v3/organizations/{organisation}/ai/filter-policies/{policyId}/disable | Disable a specific AI filter policy +[**enable_filter_policy**](AIFilterPoliciesApi.md#enable_filter_policy) | **PUT** /api/v3/organizations/{organisation}/ai/filter-policies/{policyId}/enable | Enable a specific AI filter policy +[**get_filter_policy**](AIFilterPoliciesApi.md#get_filter_policy) | **GET** /api/v3/organizations/{organisation}/ai/filter-policies/{policyId} | Get a specific AI filter policy +[**list_filter_policies**](AIFilterPoliciesApi.md#list_filter_policies) | **GET** /api/v3/organizations/{organisation}/ai/filter-policies | List AI filter policies for an organisation +[**update_filter_policy**](AIFilterPoliciesApi.md#update_filter_policy) | **PUT** /api/v3/organizations/{organisation}/ai/filter-policies/{policyId} | Update a specific AI filter policy + + +# **create_filter_policy** +> object create_filter_policy(organisation, create_filter_policy_request) + +Create an AI filter policy for an organisation + +### Example + +* Bearer (JWT) Authentication (BearerAuth): + +```python +import quantcdn +from quantcdn.models.create_filter_policy_request import CreateFilterPolicyRequest +from quantcdn.rest import ApiException +from pprint import pprint + +# Defining the host is optional and defaults to https://dashboard.quantcdn.io +# See configuration.py for a list of all supported configuration parameters. +configuration = quantcdn.Configuration( + host = "https://dashboard.quantcdn.io" +) + +# The client must configure the authentication and authorization parameters +# in accordance with the API server security policy. +# Examples for each auth method are provided below, use the example that +# satisfies your auth use case. + +# Configure Bearer authorization (JWT): BearerAuth +configuration = quantcdn.Configuration( + access_token = os.environ["BEARER_TOKEN"] +) + +# Enter a context with an instance of the API client +with quantcdn.ApiClient(configuration) as api_client: + # Create an instance of the API class + api_instance = quantcdn.AIFilterPoliciesApi(api_client) + organisation = 'organisation_example' # str | The organisation ID + create_filter_policy_request = quantcdn.CreateFilterPolicyRequest() # CreateFilterPolicyRequest | + + try: + # Create an AI filter policy for an organisation + api_response = api_instance.create_filter_policy(organisation, create_filter_policy_request) + print("The response of AIFilterPoliciesApi->create_filter_policy:\n") + pprint(api_response) + except Exception as e: + print("Exception when calling AIFilterPoliciesApi->create_filter_policy: %s\n" % e) +``` + + + +### Parameters + + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **organisation** | **str**| The organisation ID | + **create_filter_policy_request** | [**CreateFilterPolicyRequest**](CreateFilterPolicyRequest.md)| | + +### Return type + +**object** + +### Authorization + +[BearerAuth](../README.md#BearerAuth) + +### HTTP request headers + + - **Content-Type**: application/json + - **Accept**: application/json + +### HTTP response details + +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**201** | Filter policy created successfully | - | +**422** | Validation error | - | +**500** | Failed to create filter policy | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **delete_filter_policy** +> object delete_filter_policy(organisation, policy_id) + +Delete a specific AI filter policy + +### Example + +* Bearer (JWT) Authentication (BearerAuth): + +```python +import quantcdn +from quantcdn.rest import ApiException +from pprint import pprint + +# Defining the host is optional and defaults to https://dashboard.quantcdn.io +# See configuration.py for a list of all supported configuration parameters. +configuration = quantcdn.Configuration( + host = "https://dashboard.quantcdn.io" +) + +# The client must configure the authentication and authorization parameters +# in accordance with the API server security policy. +# Examples for each auth method are provided below, use the example that +# satisfies your auth use case. + +# Configure Bearer authorization (JWT): BearerAuth +configuration = quantcdn.Configuration( + access_token = os.environ["BEARER_TOKEN"] +) + +# Enter a context with an instance of the API client +with quantcdn.ApiClient(configuration) as api_client: + # Create an instance of the API class + api_instance = quantcdn.AIFilterPoliciesApi(api_client) + organisation = 'organisation_example' # str | + policy_id = 'policy_id_example' # str | + + try: + # Delete a specific AI filter policy + api_response = api_instance.delete_filter_policy(organisation, policy_id) + print("The response of AIFilterPoliciesApi->delete_filter_policy:\n") + pprint(api_response) + except Exception as e: + print("Exception when calling AIFilterPoliciesApi->delete_filter_policy: %s\n" % e) +``` + + + +### Parameters + + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **organisation** | **str**| | + **policy_id** | **str**| | + +### Return type + +**object** + +### Authorization + +[BearerAuth](../README.md#BearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + +### HTTP response details + +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**200** | Filter policy deleted successfully | - | +**500** | Failed to delete filter policy | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **disable_filter_policy** +> object disable_filter_policy(organisation, policy_id) + +Disable a specific AI filter policy + +### Example + +* Bearer (JWT) Authentication (BearerAuth): + +```python +import quantcdn +from quantcdn.rest import ApiException +from pprint import pprint + +# Defining the host is optional and defaults to https://dashboard.quantcdn.io +# See configuration.py for a list of all supported configuration parameters. +configuration = quantcdn.Configuration( + host = "https://dashboard.quantcdn.io" +) + +# The client must configure the authentication and authorization parameters +# in accordance with the API server security policy. +# Examples for each auth method are provided below, use the example that +# satisfies your auth use case. + +# Configure Bearer authorization (JWT): BearerAuth +configuration = quantcdn.Configuration( + access_token = os.environ["BEARER_TOKEN"] +) + +# Enter a context with an instance of the API client +with quantcdn.ApiClient(configuration) as api_client: + # Create an instance of the API class + api_instance = quantcdn.AIFilterPoliciesApi(api_client) + organisation = 'organisation_example' # str | + policy_id = 'policy_id_example' # str | + + try: + # Disable a specific AI filter policy + api_response = api_instance.disable_filter_policy(organisation, policy_id) + print("The response of AIFilterPoliciesApi->disable_filter_policy:\n") + pprint(api_response) + except Exception as e: + print("Exception when calling AIFilterPoliciesApi->disable_filter_policy: %s\n" % e) +``` + + + +### Parameters + + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **organisation** | **str**| | + **policy_id** | **str**| | + +### Return type + +**object** + +### Authorization + +[BearerAuth](../README.md#BearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + +### HTTP response details + +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**200** | Filter policy disabled successfully | - | +**500** | Failed to disable filter policy | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **enable_filter_policy** +> object enable_filter_policy(organisation, policy_id) + +Enable a specific AI filter policy + +### Example + +* Bearer (JWT) Authentication (BearerAuth): + +```python +import quantcdn +from quantcdn.rest import ApiException +from pprint import pprint + +# Defining the host is optional and defaults to https://dashboard.quantcdn.io +# See configuration.py for a list of all supported configuration parameters. +configuration = quantcdn.Configuration( + host = "https://dashboard.quantcdn.io" +) + +# The client must configure the authentication and authorization parameters +# in accordance with the API server security policy. +# Examples for each auth method are provided below, use the example that +# satisfies your auth use case. + +# Configure Bearer authorization (JWT): BearerAuth +configuration = quantcdn.Configuration( + access_token = os.environ["BEARER_TOKEN"] +) + +# Enter a context with an instance of the API client +with quantcdn.ApiClient(configuration) as api_client: + # Create an instance of the API class + api_instance = quantcdn.AIFilterPoliciesApi(api_client) + organisation = 'organisation_example' # str | + policy_id = 'policy_id_example' # str | + + try: + # Enable a specific AI filter policy + api_response = api_instance.enable_filter_policy(organisation, policy_id) + print("The response of AIFilterPoliciesApi->enable_filter_policy:\n") + pprint(api_response) + except Exception as e: + print("Exception when calling AIFilterPoliciesApi->enable_filter_policy: %s\n" % e) +``` + + + +### Parameters + + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **organisation** | **str**| | + **policy_id** | **str**| | + +### Return type + +**object** + +### Authorization + +[BearerAuth](../README.md#BearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + +### HTTP response details + +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**200** | Filter policy enabled successfully | - | +**500** | Failed to enable filter policy | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **get_filter_policy** +> object get_filter_policy(organisation, policy_id) + +Get a specific AI filter policy + +### Example + +* Bearer (JWT) Authentication (BearerAuth): + +```python +import quantcdn +from quantcdn.rest import ApiException +from pprint import pprint + +# Defining the host is optional and defaults to https://dashboard.quantcdn.io +# See configuration.py for a list of all supported configuration parameters. +configuration = quantcdn.Configuration( + host = "https://dashboard.quantcdn.io" +) + +# The client must configure the authentication and authorization parameters +# in accordance with the API server security policy. +# Examples for each auth method are provided below, use the example that +# satisfies your auth use case. + +# Configure Bearer authorization (JWT): BearerAuth +configuration = quantcdn.Configuration( + access_token = os.environ["BEARER_TOKEN"] +) + +# Enter a context with an instance of the API client +with quantcdn.ApiClient(configuration) as api_client: + # Create an instance of the API class + api_instance = quantcdn.AIFilterPoliciesApi(api_client) + organisation = 'organisation_example' # str | + policy_id = 'policy_id_example' # str | + + try: + # Get a specific AI filter policy + api_response = api_instance.get_filter_policy(organisation, policy_id) + print("The response of AIFilterPoliciesApi->get_filter_policy:\n") + pprint(api_response) + except Exception as e: + print("Exception when calling AIFilterPoliciesApi->get_filter_policy: %s\n" % e) +``` + + + +### Parameters + + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **organisation** | **str**| | + **policy_id** | **str**| | + +### Return type + +**object** + +### Authorization + +[BearerAuth](../README.md#BearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + +### HTTP response details + +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**200** | Filter policy details | - | +**404** | Filter policy not found | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **list_filter_policies** +> object list_filter_policies(organisation) + +List AI filter policies for an organisation + +### Example + +* Bearer (JWT) Authentication (BearerAuth): + +```python +import quantcdn +from quantcdn.rest import ApiException +from pprint import pprint + +# Defining the host is optional and defaults to https://dashboard.quantcdn.io +# See configuration.py for a list of all supported configuration parameters. +configuration = quantcdn.Configuration( + host = "https://dashboard.quantcdn.io" +) + +# The client must configure the authentication and authorization parameters +# in accordance with the API server security policy. +# Examples for each auth method are provided below, use the example that +# satisfies your auth use case. + +# Configure Bearer authorization (JWT): BearerAuth +configuration = quantcdn.Configuration( + access_token = os.environ["BEARER_TOKEN"] +) + +# Enter a context with an instance of the API client +with quantcdn.ApiClient(configuration) as api_client: + # Create an instance of the API class + api_instance = quantcdn.AIFilterPoliciesApi(api_client) + organisation = 'organisation_example' # str | The organisation ID + + try: + # List AI filter policies for an organisation + api_response = api_instance.list_filter_policies(organisation) + print("The response of AIFilterPoliciesApi->list_filter_policies:\n") + pprint(api_response) + except Exception as e: + print("Exception when calling AIFilterPoliciesApi->list_filter_policies: %s\n" % e) +``` + + + +### Parameters + + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **organisation** | **str**| The organisation ID | + +### Return type + +**object** + +### Authorization + +[BearerAuth](../README.md#BearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + +### HTTP response details + +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**200** | List of filter policies | - | +**500** | Failed to retrieve filter policies | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **update_filter_policy** +> object update_filter_policy(organisation, policy_id, update_filter_policy_request) + +Update a specific AI filter policy + +### Example + +* Bearer (JWT) Authentication (BearerAuth): + +```python +import quantcdn +from quantcdn.models.update_filter_policy_request import UpdateFilterPolicyRequest +from quantcdn.rest import ApiException +from pprint import pprint + +# Defining the host is optional and defaults to https://dashboard.quantcdn.io +# See configuration.py for a list of all supported configuration parameters. +configuration = quantcdn.Configuration( + host = "https://dashboard.quantcdn.io" +) + +# The client must configure the authentication and authorization parameters +# in accordance with the API server security policy. +# Examples for each auth method are provided below, use the example that +# satisfies your auth use case. + +# Configure Bearer authorization (JWT): BearerAuth +configuration = quantcdn.Configuration( + access_token = os.environ["BEARER_TOKEN"] +) + +# Enter a context with an instance of the API client +with quantcdn.ApiClient(configuration) as api_client: + # Create an instance of the API class + api_instance = quantcdn.AIFilterPoliciesApi(api_client) + organisation = 'organisation_example' # str | + policy_id = 'policy_id_example' # str | + update_filter_policy_request = quantcdn.UpdateFilterPolicyRequest() # UpdateFilterPolicyRequest | + + try: + # Update a specific AI filter policy + api_response = api_instance.update_filter_policy(organisation, policy_id, update_filter_policy_request) + print("The response of AIFilterPoliciesApi->update_filter_policy:\n") + pprint(api_response) + except Exception as e: + print("Exception when calling AIFilterPoliciesApi->update_filter_policy: %s\n" % e) +``` + + + +### Parameters + + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **organisation** | **str**| | + **policy_id** | **str**| | + **update_filter_policy_request** | [**UpdateFilterPolicyRequest**](UpdateFilterPolicyRequest.md)| | + +### Return type + +**object** + +### Authorization + +[BearerAuth](../README.md#BearerAuth) + +### HTTP request headers + + - **Content-Type**: application/json + - **Accept**: application/json + +### HTTP response details + +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**200** | Filter policy updated successfully | - | +**422** | Validation error | - | +**500** | Failed to update filter policy | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + diff --git a/docs/AIGovernanceApi.md b/docs/AIGovernanceApi.md new file mode 100644 index 00000000..14a02d2f --- /dev/null +++ b/docs/AIGovernanceApi.md @@ -0,0 +1,246 @@ +# quantcdn.AIGovernanceApi + +All URIs are relative to *https://dashboard.quantcdn.io* + +Method | HTTP request | Description +------------- | ------------- | ------------- +[**get_governance_config**](AIGovernanceApi.md#get_governance_config) | **GET** /api/v3/organizations/{organisation}/ai/governance | Get AI governance configuration for an organisation +[**get_governance_spend**](AIGovernanceApi.md#get_governance_spend) | **GET** /api/v3/organizations/{organisation}/ai/governance/spend | Get AI spend summary for an organisation +[**update_governance_config**](AIGovernanceApi.md#update_governance_config) | **PUT** /api/v3/organizations/{organisation}/ai/governance | Update AI governance configuration for an organisation + + +# **get_governance_config** +> GetGovernanceConfig200Response get_governance_config(organisation) + +Get AI governance configuration for an organisation + +### Example + +* Bearer (JWT) Authentication (BearerAuth): + +```python +import quantcdn +from quantcdn.models.get_governance_config200_response import GetGovernanceConfig200Response +from quantcdn.rest import ApiException +from pprint import pprint + +# Defining the host is optional and defaults to https://dashboard.quantcdn.io +# See configuration.py for a list of all supported configuration parameters. +configuration = quantcdn.Configuration( + host = "https://dashboard.quantcdn.io" +) + +# The client must configure the authentication and authorization parameters +# in accordance with the API server security policy. +# Examples for each auth method are provided below, use the example that +# satisfies your auth use case. + +# Configure Bearer authorization (JWT): BearerAuth +configuration = quantcdn.Configuration( + access_token = os.environ["BEARER_TOKEN"] +) + +# Enter a context with an instance of the API client +with quantcdn.ApiClient(configuration) as api_client: + # Create an instance of the API class + api_instance = quantcdn.AIGovernanceApi(api_client) + organisation = 'organisation_example' # str | The organisation ID + + try: + # Get AI governance configuration for an organisation + api_response = api_instance.get_governance_config(organisation) + print("The response of AIGovernanceApi->get_governance_config:\n") + pprint(api_response) + except Exception as e: + print("Exception when calling AIGovernanceApi->get_governance_config: %s\n" % e) +``` + + + +### Parameters + + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **organisation** | **str**| The organisation ID | + +### Return type + +[**GetGovernanceConfig200Response**](GetGovernanceConfig200Response.md) + +### Authorization + +[BearerAuth](../README.md#BearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + +### HTTP response details + +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**200** | AI governance configuration | - | +**500** | Failed to retrieve governance configuration | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **get_governance_spend** +> GetGovernanceSpend200Response get_governance_spend(organisation) + +Get AI spend summary for an organisation + +### Example + +* Bearer (JWT) Authentication (BearerAuth): + +```python +import quantcdn +from quantcdn.models.get_governance_spend200_response import GetGovernanceSpend200Response +from quantcdn.rest import ApiException +from pprint import pprint + +# Defining the host is optional and defaults to https://dashboard.quantcdn.io +# See configuration.py for a list of all supported configuration parameters. +configuration = quantcdn.Configuration( + host = "https://dashboard.quantcdn.io" +) + +# The client must configure the authentication and authorization parameters +# in accordance with the API server security policy. +# Examples for each auth method are provided below, use the example that +# satisfies your auth use case. + +# Configure Bearer authorization (JWT): BearerAuth +configuration = quantcdn.Configuration( + access_token = os.environ["BEARER_TOKEN"] +) + +# Enter a context with an instance of the API client +with quantcdn.ApiClient(configuration) as api_client: + # Create an instance of the API class + api_instance = quantcdn.AIGovernanceApi(api_client) + organisation = 'organisation_example' # str | The organisation ID + + try: + # Get AI spend summary for an organisation + api_response = api_instance.get_governance_spend(organisation) + print("The response of AIGovernanceApi->get_governance_spend:\n") + pprint(api_response) + except Exception as e: + print("Exception when calling AIGovernanceApi->get_governance_spend: %s\n" % e) +``` + + + +### Parameters + + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **organisation** | **str**| The organisation ID | + +### Return type + +[**GetGovernanceSpend200Response**](GetGovernanceSpend200Response.md) + +### Authorization + +[BearerAuth](../README.md#BearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + +### HTTP response details + +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**200** | AI spend summary | - | +**500** | Failed to retrieve spend summary | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **update_governance_config** +> UpdateGovernanceConfig200Response update_governance_config(organisation, update_governance_config_request) + +Update AI governance configuration for an organisation + +### Example + +* Bearer (JWT) Authentication (BearerAuth): + +```python +import quantcdn +from quantcdn.models.update_governance_config200_response import UpdateGovernanceConfig200Response +from quantcdn.models.update_governance_config_request import UpdateGovernanceConfigRequest +from quantcdn.rest import ApiException +from pprint import pprint + +# Defining the host is optional and defaults to https://dashboard.quantcdn.io +# See configuration.py for a list of all supported configuration parameters. +configuration = quantcdn.Configuration( + host = "https://dashboard.quantcdn.io" +) + +# The client must configure the authentication and authorization parameters +# in accordance with the API server security policy. +# Examples for each auth method are provided below, use the example that +# satisfies your auth use case. + +# Configure Bearer authorization (JWT): BearerAuth +configuration = quantcdn.Configuration( + access_token = os.environ["BEARER_TOKEN"] +) + +# Enter a context with an instance of the API client +with quantcdn.ApiClient(configuration) as api_client: + # Create an instance of the API class + api_instance = quantcdn.AIGovernanceApi(api_client) + organisation = 'organisation_example' # str | The organisation ID + update_governance_config_request = quantcdn.UpdateGovernanceConfigRequest() # UpdateGovernanceConfigRequest | + + try: + # Update AI governance configuration for an organisation + api_response = api_instance.update_governance_config(organisation, update_governance_config_request) + print("The response of AIGovernanceApi->update_governance_config:\n") + pprint(api_response) + except Exception as e: + print("Exception when calling AIGovernanceApi->update_governance_config: %s\n" % e) +``` + + + +### Parameters + + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **organisation** | **str**| The organisation ID | + **update_governance_config_request** | [**UpdateGovernanceConfigRequest**](UpdateGovernanceConfigRequest.md)| | + +### Return type + +[**UpdateGovernanceConfig200Response**](UpdateGovernanceConfig200Response.md) + +### Authorization + +[BearerAuth](../README.md#BearerAuth) + +### HTTP request headers + + - **Content-Type**: application/json + - **Accept**: application/json + +### HTTP response details + +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**200** | Governance configuration updated successfully | - | +**422** | Validation error | - | +**500** | Failed to update governance configuration | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + diff --git a/docs/AIOrchestrationsApi.md b/docs/AIOrchestrationsApi.md new file mode 100644 index 00000000..a19cd7f7 --- /dev/null +++ b/docs/AIOrchestrationsApi.md @@ -0,0 +1,796 @@ +# quantcdn.AIOrchestrationsApi + +All URIs are relative to *https://dashboard.quantcdn.io* + +Method | HTTP request | Description +------------- | ------------- | ------------- +[**cancel_orchestration**](AIOrchestrationsApi.md#cancel_orchestration) | **POST** /api/v3/organizations/{organisation}/ai/orchestrations/{orchestrationId}/cancel | Cancel Durable Orchestration +[**create_orchestration**](AIOrchestrationsApi.md#create_orchestration) | **POST** /api/v3/organizations/{organisation}/ai/orchestrations | Create Durable Orchestration +[**delete_orchestration**](AIOrchestrationsApi.md#delete_orchestration) | **DELETE** /api/v3/organizations/{organisation}/ai/orchestrations/{orchestrationId} | Delete Durable Orchestration +[**get_orchestration**](AIOrchestrationsApi.md#get_orchestration) | **GET** /api/v3/organizations/{organisation}/ai/orchestrations/{orchestrationId} | Get Durable Orchestration +[**list_orchestration_batches**](AIOrchestrationsApi.md#list_orchestration_batches) | **GET** /api/v3/organizations/{organisation}/ai/orchestrations/{orchestrationId}/batches | List Orchestration Batches +[**list_orchestrations**](AIOrchestrationsApi.md#list_orchestrations) | **GET** /api/v3/organizations/{organisation}/ai/orchestrations | List Durable Orchestrations +[**pause_orchestration**](AIOrchestrationsApi.md#pause_orchestration) | **POST** /api/v3/organizations/{organisation}/ai/orchestrations/{orchestrationId}/pause | Pause Durable Orchestration +[**resume_orchestration**](AIOrchestrationsApi.md#resume_orchestration) | **POST** /api/v3/organizations/{organisation}/ai/orchestrations/{orchestrationId}/resume | Resume Durable Orchestration +[**start_orchestration**](AIOrchestrationsApi.md#start_orchestration) | **POST** /api/v3/organizations/{organisation}/ai/orchestrations/{orchestrationId}/start | Start Durable Orchestration + + +# **cancel_orchestration** +> object cancel_orchestration(organisation, orchestration_id) + +Cancel Durable Orchestration + +Cancel an orchestration permanently. Cannot be resumed. Any in-progress items will complete, but no new processing starts. + +### Example + +* Bearer (JWT) Authentication (BearerAuth): + +```python +import quantcdn +from quantcdn.rest import ApiException +from pprint import pprint + +# Defining the host is optional and defaults to https://dashboard.quantcdn.io +# See configuration.py for a list of all supported configuration parameters. +configuration = quantcdn.Configuration( + host = "https://dashboard.quantcdn.io" +) + +# The client must configure the authentication and authorization parameters +# in accordance with the API server security policy. +# Examples for each auth method are provided below, use the example that +# satisfies your auth use case. + +# Configure Bearer authorization (JWT): BearerAuth +configuration = quantcdn.Configuration( + access_token = os.environ["BEARER_TOKEN"] +) + +# Enter a context with an instance of the API client +with quantcdn.ApiClient(configuration) as api_client: + # Create an instance of the API class + api_instance = quantcdn.AIOrchestrationsApi(api_client) + organisation = 'organisation_example' # str | The organisation machine name + orchestration_id = 'orchestration_id_example' # str | Orchestration identifier + + try: + # Cancel Durable Orchestration + api_response = api_instance.cancel_orchestration(organisation, orchestration_id) + print("The response of AIOrchestrationsApi->cancel_orchestration:\n") + pprint(api_response) + except Exception as e: + print("Exception when calling AIOrchestrationsApi->cancel_orchestration: %s\n" % e) +``` + + + +### Parameters + + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **organisation** | **str**| The organisation machine name | + **orchestration_id** | **str**| Orchestration identifier | + +### Return type + +**object** + +### Authorization + +[BearerAuth](../README.md#BearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + +### HTTP response details + +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**200** | Orchestration cancelled | - | +**400** | Orchestration already completed/cancelled | - | +**403** | Access denied | - | +**404** | Orchestration not found | - | +**500** | Failed to cancel orchestration | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **create_orchestration** +> object create_orchestration(organisation, create_orchestration_request) + +Create Durable Orchestration + +Create a new durable orchestration for batch processing. + * + * **Input Sources:** + * - `static`: Process a fixed list of items + * - `task_query`: Process tasks matching a query + * - `generator`: AI generates items from a prompt + * + * **Stop Conditions:** + * - `all_complete`: Stop when all items processed + * - `max_iterations`: Stop after N iterations + * - `condition`: AI evaluates a prompt to decide + * - `manual`: Run until manually stopped + * + * **Auto-start:** + * By default, the orchestration starts immediately. Set `autoStart: false` to create in pending state. + +### Example + +* Bearer (JWT) Authentication (BearerAuth): + +```python +import quantcdn +from quantcdn.models.create_orchestration_request import CreateOrchestrationRequest +from quantcdn.rest import ApiException +from pprint import pprint + +# Defining the host is optional and defaults to https://dashboard.quantcdn.io +# See configuration.py for a list of all supported configuration parameters. +configuration = quantcdn.Configuration( + host = "https://dashboard.quantcdn.io" +) + +# The client must configure the authentication and authorization parameters +# in accordance with the API server security policy. +# Examples for each auth method are provided below, use the example that +# satisfies your auth use case. + +# Configure Bearer authorization (JWT): BearerAuth +configuration = quantcdn.Configuration( + access_token = os.environ["BEARER_TOKEN"] +) + +# Enter a context with an instance of the API client +with quantcdn.ApiClient(configuration) as api_client: + # Create an instance of the API class + api_instance = quantcdn.AIOrchestrationsApi(api_client) + organisation = 'organisation_example' # str | The organisation machine name + create_orchestration_request = quantcdn.CreateOrchestrationRequest() # CreateOrchestrationRequest | + + try: + # Create Durable Orchestration + api_response = api_instance.create_orchestration(organisation, create_orchestration_request) + print("The response of AIOrchestrationsApi->create_orchestration:\n") + pprint(api_response) + except Exception as e: + print("Exception when calling AIOrchestrationsApi->create_orchestration: %s\n" % e) +``` + + + +### Parameters + + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **organisation** | **str**| The organisation machine name | + **create_orchestration_request** | [**CreateOrchestrationRequest**](CreateOrchestrationRequest.md)| | + +### Return type + +**object** + +### Authorization + +[BearerAuth](../README.md#BearerAuth) + +### HTTP request headers + + - **Content-Type**: application/json + - **Accept**: application/json + +### HTTP response details + +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**201** | Orchestration created | - | +**400** | Invalid request | - | +**403** | Access denied | - | +**500** | Failed to create orchestration | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **delete_orchestration** +> delete_orchestration(organisation, orchestration_id) + +Delete Durable Orchestration + +Delete an orchestration. Can only delete orchestrations in completed, failed, or cancelled status. + +### Example + +* Bearer (JWT) Authentication (BearerAuth): + +```python +import quantcdn +from quantcdn.rest import ApiException +from pprint import pprint + +# Defining the host is optional and defaults to https://dashboard.quantcdn.io +# See configuration.py for a list of all supported configuration parameters. +configuration = quantcdn.Configuration( + host = "https://dashboard.quantcdn.io" +) + +# The client must configure the authentication and authorization parameters +# in accordance with the API server security policy. +# Examples for each auth method are provided below, use the example that +# satisfies your auth use case. + +# Configure Bearer authorization (JWT): BearerAuth +configuration = quantcdn.Configuration( + access_token = os.environ["BEARER_TOKEN"] +) + +# Enter a context with an instance of the API client +with quantcdn.ApiClient(configuration) as api_client: + # Create an instance of the API class + api_instance = quantcdn.AIOrchestrationsApi(api_client) + organisation = 'organisation_example' # str | The organisation machine name + orchestration_id = 'orchestration_id_example' # str | Orchestration identifier + + try: + # Delete Durable Orchestration + api_instance.delete_orchestration(organisation, orchestration_id) + except Exception as e: + print("Exception when calling AIOrchestrationsApi->delete_orchestration: %s\n" % e) +``` + + + +### Parameters + + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **organisation** | **str**| The organisation machine name | + **orchestration_id** | **str**| Orchestration identifier | + +### Return type + +void (empty response body) + +### Authorization + +[BearerAuth](../README.md#BearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: Not defined + +### HTTP response details + +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**204** | Orchestration deleted | - | +**400** | Cannot delete active orchestration | - | +**403** | Access denied | - | +**404** | Orchestration not found | - | +**500** | Failed to delete orchestration | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **get_orchestration** +> object get_orchestration(organisation, orchestration_id) + +Get Durable Orchestration + +Get orchestration details including status and progress. + * + * **Progress Tracking:** + * - `total`: Total items to process + * - `completed`: Successfully processed + * - `failed`: Failed processing + * - `pending`: Awaiting processing + +### Example + +* Bearer (JWT) Authentication (BearerAuth): + +```python +import quantcdn +from quantcdn.rest import ApiException +from pprint import pprint + +# Defining the host is optional and defaults to https://dashboard.quantcdn.io +# See configuration.py for a list of all supported configuration parameters. +configuration = quantcdn.Configuration( + host = "https://dashboard.quantcdn.io" +) + +# The client must configure the authentication and authorization parameters +# in accordance with the API server security policy. +# Examples for each auth method are provided below, use the example that +# satisfies your auth use case. + +# Configure Bearer authorization (JWT): BearerAuth +configuration = quantcdn.Configuration( + access_token = os.environ["BEARER_TOKEN"] +) + +# Enter a context with an instance of the API client +with quantcdn.ApiClient(configuration) as api_client: + # Create an instance of the API class + api_instance = quantcdn.AIOrchestrationsApi(api_client) + organisation = 'organisation_example' # str | The organisation machine name + orchestration_id = 'orch_1704067200_abc123xyz' # str | Orchestration identifier + + try: + # Get Durable Orchestration + api_response = api_instance.get_orchestration(organisation, orchestration_id) + print("The response of AIOrchestrationsApi->get_orchestration:\n") + pprint(api_response) + except Exception as e: + print("Exception when calling AIOrchestrationsApi->get_orchestration: %s\n" % e) +``` + + + +### Parameters + + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **organisation** | **str**| The organisation machine name | + **orchestration_id** | **str**| Orchestration identifier | + +### Return type + +**object** + +### Authorization + +[BearerAuth](../README.md#BearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + +### HTTP response details + +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**200** | Orchestration details | - | +**403** | Access denied | - | +**404** | Orchestration not found | - | +**500** | Failed to get orchestration | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **list_orchestration_batches** +> ListOrchestrationBatches200Response list_orchestration_batches(organisation, orchestration_id, limit=limit, cursor=cursor) + +List Orchestration Batches + +Get history of batches processed by this orchestration. Returns paginated batch records with status and item counts. + +### Example + +* Bearer (JWT) Authentication (BearerAuth): + +```python +import quantcdn +from quantcdn.models.list_orchestration_batches200_response import ListOrchestrationBatches200Response +from quantcdn.rest import ApiException +from pprint import pprint + +# Defining the host is optional and defaults to https://dashboard.quantcdn.io +# See configuration.py for a list of all supported configuration parameters. +configuration = quantcdn.Configuration( + host = "https://dashboard.quantcdn.io" +) + +# The client must configure the authentication and authorization parameters +# in accordance with the API server security policy. +# Examples for each auth method are provided below, use the example that +# satisfies your auth use case. + +# Configure Bearer authorization (JWT): BearerAuth +configuration = quantcdn.Configuration( + access_token = os.environ["BEARER_TOKEN"] +) + +# Enter a context with an instance of the API client +with quantcdn.ApiClient(configuration) as api_client: + # Create an instance of the API class + api_instance = quantcdn.AIOrchestrationsApi(api_client) + organisation = 'organisation_example' # str | The organisation machine name + orchestration_id = 'orchestration_id_example' # str | Orchestration identifier + limit = 20 # int | Maximum number of batches to return (optional) (default to 20) + cursor = 'cursor_example' # str | Pagination cursor from previous response (optional) + + try: + # List Orchestration Batches + api_response = api_instance.list_orchestration_batches(organisation, orchestration_id, limit=limit, cursor=cursor) + print("The response of AIOrchestrationsApi->list_orchestration_batches:\n") + pprint(api_response) + except Exception as e: + print("Exception when calling AIOrchestrationsApi->list_orchestration_batches: %s\n" % e) +``` + + + +### Parameters + + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **organisation** | **str**| The organisation machine name | + **orchestration_id** | **str**| Orchestration identifier | + **limit** | **int**| Maximum number of batches to return | [optional] [default to 20] + **cursor** | **str**| Pagination cursor from previous response | [optional] + +### Return type + +[**ListOrchestrationBatches200Response**](ListOrchestrationBatches200Response.md) + +### Authorization + +[BearerAuth](../README.md#BearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + +### HTTP response details + +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**200** | Batch history | - | +**403** | Access denied | - | +**404** | Orchestration not found | - | +**500** | Failed to list orchestration batches | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **list_orchestrations** +> ListOrchestrations200Response list_orchestrations(organisation, status=status, limit=limit, cursor=cursor) + +List Durable Orchestrations + +List durable orchestrations for an organization with optional filtering. + * + * **Note:** This is different from `/tools/orchestrations` which handles async tool execution + * polling. These durable orchestrations are for long-running batch processing loops. + * + * **Filter Options:** + * - `status`: Filter by orchestration status + * - `limit`: Max results (default 20, max 100) + * - `cursor`: Pagination cursor + +### Example + +* Bearer (JWT) Authentication (BearerAuth): + +```python +import quantcdn +from quantcdn.models.list_orchestrations200_response import ListOrchestrations200Response +from quantcdn.rest import ApiException +from pprint import pprint + +# Defining the host is optional and defaults to https://dashboard.quantcdn.io +# See configuration.py for a list of all supported configuration parameters. +configuration = quantcdn.Configuration( + host = "https://dashboard.quantcdn.io" +) + +# The client must configure the authentication and authorization parameters +# in accordance with the API server security policy. +# Examples for each auth method are provided below, use the example that +# satisfies your auth use case. + +# Configure Bearer authorization (JWT): BearerAuth +configuration = quantcdn.Configuration( + access_token = os.environ["BEARER_TOKEN"] +) + +# Enter a context with an instance of the API client +with quantcdn.ApiClient(configuration) as api_client: + # Create an instance of the API class + api_instance = quantcdn.AIOrchestrationsApi(api_client) + organisation = 'organisation_example' # str | The organisation machine name + status = 'status_example' # str | Filter by orchestration status (optional) + limit = 20 # int | Maximum number of results (optional) (default to 20) + cursor = 'cursor_example' # str | Pagination cursor from previous response (optional) + + try: + # List Durable Orchestrations + api_response = api_instance.list_orchestrations(organisation, status=status, limit=limit, cursor=cursor) + print("The response of AIOrchestrationsApi->list_orchestrations:\n") + pprint(api_response) + except Exception as e: + print("Exception when calling AIOrchestrationsApi->list_orchestrations: %s\n" % e) +``` + + + +### Parameters + + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **organisation** | **str**| The organisation machine name | + **status** | **str**| Filter by orchestration status | [optional] + **limit** | **int**| Maximum number of results | [optional] [default to 20] + **cursor** | **str**| Pagination cursor from previous response | [optional] + +### Return type + +[**ListOrchestrations200Response**](ListOrchestrations200Response.md) + +### Authorization + +[BearerAuth](../README.md#BearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + +### HTTP response details + +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**200** | List of orchestrations | - | +**403** | Access denied | - | +**500** | Failed to list orchestrations | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **pause_orchestration** +> object pause_orchestration(organisation, orchestration_id) + +Pause Durable Orchestration + +Pause a running orchestration. The current batch will complete, but no new batches will start. Can be resumed later. + +### Example + +* Bearer (JWT) Authentication (BearerAuth): + +```python +import quantcdn +from quantcdn.rest import ApiException +from pprint import pprint + +# Defining the host is optional and defaults to https://dashboard.quantcdn.io +# See configuration.py for a list of all supported configuration parameters. +configuration = quantcdn.Configuration( + host = "https://dashboard.quantcdn.io" +) + +# The client must configure the authentication and authorization parameters +# in accordance with the API server security policy. +# Examples for each auth method are provided below, use the example that +# satisfies your auth use case. + +# Configure Bearer authorization (JWT): BearerAuth +configuration = quantcdn.Configuration( + access_token = os.environ["BEARER_TOKEN"] +) + +# Enter a context with an instance of the API client +with quantcdn.ApiClient(configuration) as api_client: + # Create an instance of the API class + api_instance = quantcdn.AIOrchestrationsApi(api_client) + organisation = 'organisation_example' # str | The organisation machine name + orchestration_id = 'orchestration_id_example' # str | Orchestration identifier + + try: + # Pause Durable Orchestration + api_response = api_instance.pause_orchestration(organisation, orchestration_id) + print("The response of AIOrchestrationsApi->pause_orchestration:\n") + pprint(api_response) + except Exception as e: + print("Exception when calling AIOrchestrationsApi->pause_orchestration: %s\n" % e) +``` + + + +### Parameters + + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **organisation** | **str**| The organisation machine name | + **orchestration_id** | **str**| Orchestration identifier | + +### Return type + +**object** + +### Authorization + +[BearerAuth](../README.md#BearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + +### HTTP response details + +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**200** | Orchestration paused | - | +**400** | Orchestration not running | - | +**403** | Access denied | - | +**404** | Orchestration not found | - | +**500** | Failed to pause orchestration | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **resume_orchestration** +> object resume_orchestration(organisation, orchestration_id) + +Resume Durable Orchestration + +Resume a paused orchestration. Processing continues from where it left off. + +### Example + +* Bearer (JWT) Authentication (BearerAuth): + +```python +import quantcdn +from quantcdn.rest import ApiException +from pprint import pprint + +# Defining the host is optional and defaults to https://dashboard.quantcdn.io +# See configuration.py for a list of all supported configuration parameters. +configuration = quantcdn.Configuration( + host = "https://dashboard.quantcdn.io" +) + +# The client must configure the authentication and authorization parameters +# in accordance with the API server security policy. +# Examples for each auth method are provided below, use the example that +# satisfies your auth use case. + +# Configure Bearer authorization (JWT): BearerAuth +configuration = quantcdn.Configuration( + access_token = os.environ["BEARER_TOKEN"] +) + +# Enter a context with an instance of the API client +with quantcdn.ApiClient(configuration) as api_client: + # Create an instance of the API class + api_instance = quantcdn.AIOrchestrationsApi(api_client) + organisation = 'organisation_example' # str | The organisation machine name + orchestration_id = 'orchestration_id_example' # str | Orchestration identifier + + try: + # Resume Durable Orchestration + api_response = api_instance.resume_orchestration(organisation, orchestration_id) + print("The response of AIOrchestrationsApi->resume_orchestration:\n") + pprint(api_response) + except Exception as e: + print("Exception when calling AIOrchestrationsApi->resume_orchestration: %s\n" % e) +``` + + + +### Parameters + + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **organisation** | **str**| The organisation machine name | + **orchestration_id** | **str**| Orchestration identifier | + +### Return type + +**object** + +### Authorization + +[BearerAuth](../README.md#BearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + +### HTTP response details + +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**200** | Orchestration resumed | - | +**400** | Orchestration not paused | - | +**403** | Access denied | - | +**404** | Orchestration not found | - | +**500** | Failed to resume orchestration | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **start_orchestration** +> object start_orchestration(organisation, orchestration_id) + +Start Durable Orchestration + +Start a pending orchestration. Only works on orchestrations created with `autoStart: false`. + +### Example + +* Bearer (JWT) Authentication (BearerAuth): + +```python +import quantcdn +from quantcdn.rest import ApiException +from pprint import pprint + +# Defining the host is optional and defaults to https://dashboard.quantcdn.io +# See configuration.py for a list of all supported configuration parameters. +configuration = quantcdn.Configuration( + host = "https://dashboard.quantcdn.io" +) + +# The client must configure the authentication and authorization parameters +# in accordance with the API server security policy. +# Examples for each auth method are provided below, use the example that +# satisfies your auth use case. + +# Configure Bearer authorization (JWT): BearerAuth +configuration = quantcdn.Configuration( + access_token = os.environ["BEARER_TOKEN"] +) + +# Enter a context with an instance of the API client +with quantcdn.ApiClient(configuration) as api_client: + # Create an instance of the API class + api_instance = quantcdn.AIOrchestrationsApi(api_client) + organisation = 'organisation_example' # str | The organisation machine name + orchestration_id = 'orchestration_id_example' # str | Orchestration identifier + + try: + # Start Durable Orchestration + api_response = api_instance.start_orchestration(organisation, orchestration_id) + print("The response of AIOrchestrationsApi->start_orchestration:\n") + pprint(api_response) + except Exception as e: + print("Exception when calling AIOrchestrationsApi->start_orchestration: %s\n" % e) +``` + + + +### Parameters + + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **organisation** | **str**| The organisation machine name | + **orchestration_id** | **str**| Orchestration identifier | + +### Return type + +**object** + +### Authorization + +[BearerAuth](../README.md#BearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + +### HTTP response details + +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**200** | Orchestration started | - | +**400** | Orchestration not in pending state | - | +**403** | Access denied | - | +**404** | Orchestration not found | - | +**500** | Failed to start orchestration | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + diff --git a/docs/AISearchApi.md b/docs/AISearchApi.md new file mode 100644 index 00000000..cab3509a --- /dev/null +++ b/docs/AISearchApi.md @@ -0,0 +1,1353 @@ +# quantcdn.AISearchApi + +All URIs are relative to *https://dashboard.quantcdn.io* + +Method | HTTP request | Description +------------- | ------------- | ------------- +[**ai_search_chat**](AISearchApi.md#ai_search_chat) | **POST** /api/v3/organisations/{organisation}/projects/{project}/ai-search/chat | RAG chat with AI Search content +[**ai_search_delete_pages**](AISearchApi.md#ai_search_delete_pages) | **DELETE** /api/v3/organisations/{organisation}/projects/{project}/ai-search/pages | Delete pages by URLs or patterns +[**ai_search_disable**](AISearchApi.md#ai_search_disable) | **POST** /api/v3/organisations/{organisation}/projects/{project}/ai-search/disable | Disable AI Search for a project +[**ai_search_enable**](AISearchApi.md#ai_search_enable) | **POST** /api/v3/organisations/{organisation}/projects/{project}/ai-search/enable | Enable AI Search for a project +[**ai_search_get_crawl**](AISearchApi.md#ai_search_get_crawl) | **GET** /api/v3/organisations/{organisation}/projects/{project}/ai-search/crawls/{jobId} | Get AI Search ingest job status +[**ai_search_get_crawl_pages**](AISearchApi.md#ai_search_get_crawl_pages) | **GET** /api/v3/organisations/{organisation}/projects/{project}/ai-search/crawls/{jobId}/pages | Get per-page ingest results for a crawl job +[**ai_search_get_settings**](AISearchApi.md#ai_search_get_settings) | **GET** /api/v3/organisations/{organisation}/projects/{project}/ai-search/settings | Get AI Search public access and rate limit settings +[**ai_search_ingest_pages**](AISearchApi.md#ai_search_ingest_pages) | **POST** /api/v3/organisations/{organisation}/projects/{project}/ai-search/pages | Ingest pages into the AI Search index +[**ai_search_list_crawls**](AISearchApi.md#ai_search_list_crawls) | **GET** /api/v3/organisations/{organisation}/projects/{project}/ai-search/crawls | List AI Search ingest jobs +[**ai_search_list_pages**](AISearchApi.md#ai_search_list_pages) | **GET** /api/v3/organisations/{organisation}/projects/{project}/ai-search/pages | List indexed pages with cursor pagination +[**ai_search_purge_index**](AISearchApi.md#ai_search_purge_index) | **DELETE** /api/v3/organisations/{organisation}/projects/{project}/ai-search/index | Purge the entire AI Search index +[**ai_search_search**](AISearchApi.md#ai_search_search) | **POST** /api/v3/organisations/{organisation}/projects/{project}/ai-search/search | Semantic search across the AI Search index +[**ai_search_status**](AISearchApi.md#ai_search_status) | **GET** /api/v3/organisations/{organisation}/projects/{project}/ai-search | Get AI Search status for a project +[**ai_search_top_queries**](AISearchApi.md#ai_search_top_queries) | **GET** /api/v3/organisations/{organisation}/projects/{project}/ai-search/top-queries | Get the most popular AI Search queries +[**ai_search_trigger_crawl**](AISearchApi.md#ai_search_trigger_crawl) | **POST** /api/v3/organisations/{organisation}/projects/{project}/ai-search/crawls | Trigger a crawler run that ingests into AI Search +[**ai_search_update_settings**](AISearchApi.md#ai_search_update_settings) | **PUT** /api/v3/organisations/{organisation}/projects/{project}/ai-search/settings | Update AI Search public access and rate limit settings +[**ai_search_usage**](AISearchApi.md#ai_search_usage) | **GET** /api/v3/organisations/{organisation}/projects/{project}/ai-search/usage | Get usage statistics for the AI Search site + + +# **ai_search_chat** +> ai_search_chat(organisation, project, ai_search_chat_request) + +RAG chat with AI Search content + +### Example + +* Bearer (JWT) Authentication (BearerAuth): + +```python +import quantcdn +from quantcdn.models.ai_search_chat_request import AiSearchChatRequest +from quantcdn.rest import ApiException +from pprint import pprint + +# Defining the host is optional and defaults to https://dashboard.quantcdn.io +# See configuration.py for a list of all supported configuration parameters. +configuration = quantcdn.Configuration( + host = "https://dashboard.quantcdn.io" +) + +# The client must configure the authentication and authorization parameters +# in accordance with the API server security policy. +# Examples for each auth method are provided below, use the example that +# satisfies your auth use case. + +# Configure Bearer authorization (JWT): BearerAuth +configuration = quantcdn.Configuration( + access_token = os.environ["BEARER_TOKEN"] +) + +# Enter a context with an instance of the API client +with quantcdn.ApiClient(configuration) as api_client: + # Create an instance of the API class + api_instance = quantcdn.AISearchApi(api_client) + organisation = 'organisation_example' # str | + project = 'project_example' # str | + ai_search_chat_request = quantcdn.AiSearchChatRequest() # AiSearchChatRequest | + + try: + # RAG chat with AI Search content + api_instance.ai_search_chat(organisation, project, ai_search_chat_request) + except Exception as e: + print("Exception when calling AISearchApi->ai_search_chat: %s\n" % e) +``` + + + +### Parameters + + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **organisation** | **str**| | + **project** | **str**| | + **ai_search_chat_request** | [**AiSearchChatRequest**](AiSearchChatRequest.md)| | + +### Return type + +void (empty response body) + +### Authorization + +[BearerAuth](../README.md#BearerAuth) + +### HTTP request headers + + - **Content-Type**: application/json + - **Accept**: Not defined + +### HTTP response details + +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**200** | Chat reply | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **ai_search_delete_pages** +> ai_search_delete_pages(organisation, project, ai_search_delete_pages_request) + +Delete pages by URLs or patterns + +### Example + +* Bearer (JWT) Authentication (BearerAuth): + +```python +import quantcdn +from quantcdn.models.ai_search_delete_pages_request import AiSearchDeletePagesRequest +from quantcdn.rest import ApiException +from pprint import pprint + +# Defining the host is optional and defaults to https://dashboard.quantcdn.io +# See configuration.py for a list of all supported configuration parameters. +configuration = quantcdn.Configuration( + host = "https://dashboard.quantcdn.io" +) + +# The client must configure the authentication and authorization parameters +# in accordance with the API server security policy. +# Examples for each auth method are provided below, use the example that +# satisfies your auth use case. + +# Configure Bearer authorization (JWT): BearerAuth +configuration = quantcdn.Configuration( + access_token = os.environ["BEARER_TOKEN"] +) + +# Enter a context with an instance of the API client +with quantcdn.ApiClient(configuration) as api_client: + # Create an instance of the API class + api_instance = quantcdn.AISearchApi(api_client) + organisation = 'organisation_example' # str | + project = 'project_example' # str | + ai_search_delete_pages_request = quantcdn.AiSearchDeletePagesRequest() # AiSearchDeletePagesRequest | + + try: + # Delete pages by URLs or patterns + api_instance.ai_search_delete_pages(organisation, project, ai_search_delete_pages_request) + except Exception as e: + print("Exception when calling AISearchApi->ai_search_delete_pages: %s\n" % e) +``` + + + +### Parameters + + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **organisation** | **str**| | + **project** | **str**| | + **ai_search_delete_pages_request** | [**AiSearchDeletePagesRequest**](AiSearchDeletePagesRequest.md)| | + +### Return type + +void (empty response body) + +### Authorization + +[BearerAuth](../README.md#BearerAuth) + +### HTTP request headers + + - **Content-Type**: application/json + - **Accept**: Not defined + +### HTTP response details + +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**200** | Deleted | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **ai_search_disable** +> ai_search_disable(organisation, project) + +Disable AI Search for a project + +### Example + +* Bearer (JWT) Authentication (BearerAuth): + +```python +import quantcdn +from quantcdn.rest import ApiException +from pprint import pprint + +# Defining the host is optional and defaults to https://dashboard.quantcdn.io +# See configuration.py for a list of all supported configuration parameters. +configuration = quantcdn.Configuration( + host = "https://dashboard.quantcdn.io" +) + +# The client must configure the authentication and authorization parameters +# in accordance with the API server security policy. +# Examples for each auth method are provided below, use the example that +# satisfies your auth use case. + +# Configure Bearer authorization (JWT): BearerAuth +configuration = quantcdn.Configuration( + access_token = os.environ["BEARER_TOKEN"] +) + +# Enter a context with an instance of the API client +with quantcdn.ApiClient(configuration) as api_client: + # Create an instance of the API class + api_instance = quantcdn.AISearchApi(api_client) + organisation = 'organisation_example' # str | + project = 'project_example' # str | + + try: + # Disable AI Search for a project + api_instance.ai_search_disable(organisation, project) + except Exception as e: + print("Exception when calling AISearchApi->ai_search_disable: %s\n" % e) +``` + + + +### Parameters + + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **organisation** | **str**| | + **project** | **str**| | + +### Return type + +void (empty response body) + +### Authorization + +[BearerAuth](../README.md#BearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: Not defined + +### HTTP response details + +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**200** | Disabled | - | +**404** | Not enabled | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **ai_search_enable** +> ai_search_enable(organisation, project, ai_search_enable_request=ai_search_enable_request) + +Enable AI Search for a project + +### Example + +* Bearer (JWT) Authentication (BearerAuth): + +```python +import quantcdn +from quantcdn.models.ai_search_enable_request import AiSearchEnableRequest +from quantcdn.rest import ApiException +from pprint import pprint + +# Defining the host is optional and defaults to https://dashboard.quantcdn.io +# See configuration.py for a list of all supported configuration parameters. +configuration = quantcdn.Configuration( + host = "https://dashboard.quantcdn.io" +) + +# The client must configure the authentication and authorization parameters +# in accordance with the API server security policy. +# Examples for each auth method are provided below, use the example that +# satisfies your auth use case. + +# Configure Bearer authorization (JWT): BearerAuth +configuration = quantcdn.Configuration( + access_token = os.environ["BEARER_TOKEN"] +) + +# Enter a context with an instance of the API client +with quantcdn.ApiClient(configuration) as api_client: + # Create an instance of the API class + api_instance = quantcdn.AISearchApi(api_client) + organisation = 'organisation_example' # str | + project = 'project_example' # str | + ai_search_enable_request = quantcdn.AiSearchEnableRequest() # AiSearchEnableRequest | (optional) + + try: + # Enable AI Search for a project + api_instance.ai_search_enable(organisation, project, ai_search_enable_request=ai_search_enable_request) + except Exception as e: + print("Exception when calling AISearchApi->ai_search_enable: %s\n" % e) +``` + + + +### Parameters + + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **organisation** | **str**| | + **project** | **str**| | + **ai_search_enable_request** | [**AiSearchEnableRequest**](AiSearchEnableRequest.md)| | [optional] + +### Return type + +void (empty response body) + +### Authorization + +[BearerAuth](../README.md#BearerAuth) + +### HTTP request headers + + - **Content-Type**: application/json + - **Accept**: Not defined + +### HTTP response details + +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**200** | Enabled | - | +**400** | Missing base URL | - | +**409** | Already enabled | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **ai_search_get_crawl** +> ai_search_get_crawl(organisation, project, job_id) + +Get AI Search ingest job status + +### Example + +* Bearer (JWT) Authentication (BearerAuth): + +```python +import quantcdn +from quantcdn.rest import ApiException +from pprint import pprint + +# Defining the host is optional and defaults to https://dashboard.quantcdn.io +# See configuration.py for a list of all supported configuration parameters. +configuration = quantcdn.Configuration( + host = "https://dashboard.quantcdn.io" +) + +# The client must configure the authentication and authorization parameters +# in accordance with the API server security policy. +# Examples for each auth method are provided below, use the example that +# satisfies your auth use case. + +# Configure Bearer authorization (JWT): BearerAuth +configuration = quantcdn.Configuration( + access_token = os.environ["BEARER_TOKEN"] +) + +# Enter a context with an instance of the API client +with quantcdn.ApiClient(configuration) as api_client: + # Create an instance of the API class + api_instance = quantcdn.AISearchApi(api_client) + organisation = 'organisation_example' # str | + project = 'project_example' # str | + job_id = 'job_id_example' # str | + + try: + # Get AI Search ingest job status + api_instance.ai_search_get_crawl(organisation, project, job_id) + except Exception as e: + print("Exception when calling AISearchApi->ai_search_get_crawl: %s\n" % e) +``` + + + +### Parameters + + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **organisation** | **str**| | + **project** | **str**| | + **job_id** | **str**| | + +### Return type + +void (empty response body) + +### Authorization + +[BearerAuth](../README.md#BearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: Not defined + +### HTTP response details + +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**200** | Job status | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **ai_search_get_crawl_pages** +> ai_search_get_crawl_pages(organisation, project, job_id, limit=limit, status_code=status_code, processing_status=processing_status) + +Get per-page ingest results for a crawl job + +### Example + +* Bearer (JWT) Authentication (BearerAuth): + +```python +import quantcdn +from quantcdn.rest import ApiException +from pprint import pprint + +# Defining the host is optional and defaults to https://dashboard.quantcdn.io +# See configuration.py for a list of all supported configuration parameters. +configuration = quantcdn.Configuration( + host = "https://dashboard.quantcdn.io" +) + +# The client must configure the authentication and authorization parameters +# in accordance with the API server security policy. +# Examples for each auth method are provided below, use the example that +# satisfies your auth use case. + +# Configure Bearer authorization (JWT): BearerAuth +configuration = quantcdn.Configuration( + access_token = os.environ["BEARER_TOKEN"] +) + +# Enter a context with an instance of the API client +with quantcdn.ApiClient(configuration) as api_client: + # Create an instance of the API class + api_instance = quantcdn.AISearchApi(api_client) + organisation = 'organisation_example' # str | + project = 'project_example' # str | + job_id = 'job_id_example' # str | + limit = 56 # int | (optional) + status_code = 56 # int | (optional) + processing_status = 'processing_status_example' # str | (optional) + + try: + # Get per-page ingest results for a crawl job + api_instance.ai_search_get_crawl_pages(organisation, project, job_id, limit=limit, status_code=status_code, processing_status=processing_status) + except Exception as e: + print("Exception when calling AISearchApi->ai_search_get_crawl_pages: %s\n" % e) +``` + + + +### Parameters + + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **organisation** | **str**| | + **project** | **str**| | + **job_id** | **str**| | + **limit** | **int**| | [optional] + **status_code** | **int**| | [optional] + **processing_status** | **str**| | [optional] + +### Return type + +void (empty response body) + +### Authorization + +[BearerAuth](../README.md#BearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: Not defined + +### HTTP response details + +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**200** | Pages | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **ai_search_get_settings** +> ai_search_get_settings(organisation, project) + +Get AI Search public access and rate limit settings + +### Example + +* Bearer (JWT) Authentication (BearerAuth): + +```python +import quantcdn +from quantcdn.rest import ApiException +from pprint import pprint + +# Defining the host is optional and defaults to https://dashboard.quantcdn.io +# See configuration.py for a list of all supported configuration parameters. +configuration = quantcdn.Configuration( + host = "https://dashboard.quantcdn.io" +) + +# The client must configure the authentication and authorization parameters +# in accordance with the API server security policy. +# Examples for each auth method are provided below, use the example that +# satisfies your auth use case. + +# Configure Bearer authorization (JWT): BearerAuth +configuration = quantcdn.Configuration( + access_token = os.environ["BEARER_TOKEN"] +) + +# Enter a context with an instance of the API client +with quantcdn.ApiClient(configuration) as api_client: + # Create an instance of the API class + api_instance = quantcdn.AISearchApi(api_client) + organisation = 'organisation_example' # str | + project = 'project_example' # str | + + try: + # Get AI Search public access and rate limit settings + api_instance.ai_search_get_settings(organisation, project) + except Exception as e: + print("Exception when calling AISearchApi->ai_search_get_settings: %s\n" % e) +``` + + + +### Parameters + + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **organisation** | **str**| | + **project** | **str**| | + +### Return type + +void (empty response body) + +### Authorization + +[BearerAuth](../README.md#BearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: Not defined + +### HTTP response details + +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**200** | Settings | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **ai_search_ingest_pages** +> ai_search_ingest_pages(organisation, project, ai_search_ingest_pages_request) + +Ingest pages into the AI Search index + +### Example + +* Bearer (JWT) Authentication (BearerAuth): + +```python +import quantcdn +from quantcdn.models.ai_search_ingest_pages_request import AiSearchIngestPagesRequest +from quantcdn.rest import ApiException +from pprint import pprint + +# Defining the host is optional and defaults to https://dashboard.quantcdn.io +# See configuration.py for a list of all supported configuration parameters. +configuration = quantcdn.Configuration( + host = "https://dashboard.quantcdn.io" +) + +# The client must configure the authentication and authorization parameters +# in accordance with the API server security policy. +# Examples for each auth method are provided below, use the example that +# satisfies your auth use case. + +# Configure Bearer authorization (JWT): BearerAuth +configuration = quantcdn.Configuration( + access_token = os.environ["BEARER_TOKEN"] +) + +# Enter a context with an instance of the API client +with quantcdn.ApiClient(configuration) as api_client: + # Create an instance of the API class + api_instance = quantcdn.AISearchApi(api_client) + organisation = 'organisation_example' # str | + project = 'project_example' # str | + ai_search_ingest_pages_request = quantcdn.AiSearchIngestPagesRequest() # AiSearchIngestPagesRequest | + + try: + # Ingest pages into the AI Search index + api_instance.ai_search_ingest_pages(organisation, project, ai_search_ingest_pages_request) + except Exception as e: + print("Exception when calling AISearchApi->ai_search_ingest_pages: %s\n" % e) +``` + + + +### Parameters + + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **organisation** | **str**| | + **project** | **str**| | + **ai_search_ingest_pages_request** | [**AiSearchIngestPagesRequest**](AiSearchIngestPagesRequest.md)| | + +### Return type + +void (empty response body) + +### Authorization + +[BearerAuth](../README.md#BearerAuth) + +### HTTP request headers + + - **Content-Type**: application/json + - **Accept**: Not defined + +### HTTP response details + +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**200** | Pages processed | - | +**422** | Validation failed | - | +**502** | Upstream failure | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **ai_search_list_crawls** +> ai_search_list_crawls(organisation, project, limit=limit) + +List AI Search ingest jobs + +### Example + +* Bearer (JWT) Authentication (BearerAuth): + +```python +import quantcdn +from quantcdn.rest import ApiException +from pprint import pprint + +# Defining the host is optional and defaults to https://dashboard.quantcdn.io +# See configuration.py for a list of all supported configuration parameters. +configuration = quantcdn.Configuration( + host = "https://dashboard.quantcdn.io" +) + +# The client must configure the authentication and authorization parameters +# in accordance with the API server security policy. +# Examples for each auth method are provided below, use the example that +# satisfies your auth use case. + +# Configure Bearer authorization (JWT): BearerAuth +configuration = quantcdn.Configuration( + access_token = os.environ["BEARER_TOKEN"] +) + +# Enter a context with an instance of the API client +with quantcdn.ApiClient(configuration) as api_client: + # Create an instance of the API class + api_instance = quantcdn.AISearchApi(api_client) + organisation = 'organisation_example' # str | + project = 'project_example' # str | + limit = 56 # int | (optional) + + try: + # List AI Search ingest jobs + api_instance.ai_search_list_crawls(organisation, project, limit=limit) + except Exception as e: + print("Exception when calling AISearchApi->ai_search_list_crawls: %s\n" % e) +``` + + + +### Parameters + + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **organisation** | **str**| | + **project** | **str**| | + **limit** | **int**| | [optional] + +### Return type + +void (empty response body) + +### Authorization + +[BearerAuth](../README.md#BearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: Not defined + +### HTTP response details + +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**200** | Jobs | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **ai_search_list_pages** +> ai_search_list_pages(organisation, project, limit=limit, cursor=cursor, search=search) + +List indexed pages with cursor pagination + +### Example + +* Bearer (JWT) Authentication (BearerAuth): + +```python +import quantcdn +from quantcdn.rest import ApiException +from pprint import pprint + +# Defining the host is optional and defaults to https://dashboard.quantcdn.io +# See configuration.py for a list of all supported configuration parameters. +configuration = quantcdn.Configuration( + host = "https://dashboard.quantcdn.io" +) + +# The client must configure the authentication and authorization parameters +# in accordance with the API server security policy. +# Examples for each auth method are provided below, use the example that +# satisfies your auth use case. + +# Configure Bearer authorization (JWT): BearerAuth +configuration = quantcdn.Configuration( + access_token = os.environ["BEARER_TOKEN"] +) + +# Enter a context with an instance of the API client +with quantcdn.ApiClient(configuration) as api_client: + # Create an instance of the API class + api_instance = quantcdn.AISearchApi(api_client) + organisation = 'organisation_example' # str | + project = 'project_example' # str | + limit = 56 # int | (optional) + cursor = 'cursor_example' # str | (optional) + search = 'search_example' # str | (optional) + + try: + # List indexed pages with cursor pagination + api_instance.ai_search_list_pages(organisation, project, limit=limit, cursor=cursor, search=search) + except Exception as e: + print("Exception when calling AISearchApi->ai_search_list_pages: %s\n" % e) +``` + + + +### Parameters + + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **organisation** | **str**| | + **project** | **str**| | + **limit** | **int**| | [optional] + **cursor** | **str**| | [optional] + **search** | **str**| | [optional] + +### Return type + +void (empty response body) + +### Authorization + +[BearerAuth](../README.md#BearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: Not defined + +### HTTP response details + +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**200** | Pages | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **ai_search_purge_index** +> ai_search_purge_index(organisation, project) + +Purge the entire AI Search index + +### Example + +* Bearer (JWT) Authentication (BearerAuth): + +```python +import quantcdn +from quantcdn.rest import ApiException +from pprint import pprint + +# Defining the host is optional and defaults to https://dashboard.quantcdn.io +# See configuration.py for a list of all supported configuration parameters. +configuration = quantcdn.Configuration( + host = "https://dashboard.quantcdn.io" +) + +# The client must configure the authentication and authorization parameters +# in accordance with the API server security policy. +# Examples for each auth method are provided below, use the example that +# satisfies your auth use case. + +# Configure Bearer authorization (JWT): BearerAuth +configuration = quantcdn.Configuration( + access_token = os.environ["BEARER_TOKEN"] +) + +# Enter a context with an instance of the API client +with quantcdn.ApiClient(configuration) as api_client: + # Create an instance of the API class + api_instance = quantcdn.AISearchApi(api_client) + organisation = 'organisation_example' # str | + project = 'project_example' # str | + + try: + # Purge the entire AI Search index + api_instance.ai_search_purge_index(organisation, project) + except Exception as e: + print("Exception when calling AISearchApi->ai_search_purge_index: %s\n" % e) +``` + + + +### Parameters + + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **organisation** | **str**| | + **project** | **str**| | + +### Return type + +void (empty response body) + +### Authorization + +[BearerAuth](../README.md#BearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: Not defined + +### HTTP response details + +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**200** | Purged | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **ai_search_search** +> ai_search_search(organisation, project, ai_search_search_request) + +Semantic search across the AI Search index + +### Example + +* Bearer (JWT) Authentication (BearerAuth): + +```python +import quantcdn +from quantcdn.models.ai_search_search_request import AiSearchSearchRequest +from quantcdn.rest import ApiException +from pprint import pprint + +# Defining the host is optional and defaults to https://dashboard.quantcdn.io +# See configuration.py for a list of all supported configuration parameters. +configuration = quantcdn.Configuration( + host = "https://dashboard.quantcdn.io" +) + +# The client must configure the authentication and authorization parameters +# in accordance with the API server security policy. +# Examples for each auth method are provided below, use the example that +# satisfies your auth use case. + +# Configure Bearer authorization (JWT): BearerAuth +configuration = quantcdn.Configuration( + access_token = os.environ["BEARER_TOKEN"] +) + +# Enter a context with an instance of the API client +with quantcdn.ApiClient(configuration) as api_client: + # Create an instance of the API class + api_instance = quantcdn.AISearchApi(api_client) + organisation = 'organisation_example' # str | + project = 'project_example' # str | + ai_search_search_request = quantcdn.AiSearchSearchRequest() # AiSearchSearchRequest | + + try: + # Semantic search across the AI Search index + api_instance.ai_search_search(organisation, project, ai_search_search_request) + except Exception as e: + print("Exception when calling AISearchApi->ai_search_search: %s\n" % e) +``` + + + +### Parameters + + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **organisation** | **str**| | + **project** | **str**| | + **ai_search_search_request** | [**AiSearchSearchRequest**](AiSearchSearchRequest.md)| | + +### Return type + +void (empty response body) + +### Authorization + +[BearerAuth](../README.md#BearerAuth) + +### HTTP request headers + + - **Content-Type**: application/json + - **Accept**: Not defined + +### HTTP response details + +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**200** | Results | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **ai_search_status** +> ai_search_status(organisation, project) + +Get AI Search status for a project + +### Example + +* Bearer (JWT) Authentication (BearerAuth): + +```python +import quantcdn +from quantcdn.rest import ApiException +from pprint import pprint + +# Defining the host is optional and defaults to https://dashboard.quantcdn.io +# See configuration.py for a list of all supported configuration parameters. +configuration = quantcdn.Configuration( + host = "https://dashboard.quantcdn.io" +) + +# The client must configure the authentication and authorization parameters +# in accordance with the API server security policy. +# Examples for each auth method are provided below, use the example that +# satisfies your auth use case. + +# Configure Bearer authorization (JWT): BearerAuth +configuration = quantcdn.Configuration( + access_token = os.environ["BEARER_TOKEN"] +) + +# Enter a context with an instance of the API client +with quantcdn.ApiClient(configuration) as api_client: + # Create an instance of the API class + api_instance = quantcdn.AISearchApi(api_client) + organisation = 'organisation_example' # str | + project = 'project_example' # str | + + try: + # Get AI Search status for a project + api_instance.ai_search_status(organisation, project) + except Exception as e: + print("Exception when calling AISearchApi->ai_search_status: %s\n" % e) +``` + + + +### Parameters + + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **organisation** | **str**| | + **project** | **str**| | + +### Return type + +void (empty response body) + +### Authorization + +[BearerAuth](../README.md#BearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: Not defined + +### HTTP response details + +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**200** | Status | - | +**401** | Unauthorized | - | +**403** | Forbidden | - | +**404** | Not found | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **ai_search_top_queries** +> ai_search_top_queries(organisation, project, range=range, limit=limit) + +Get the most popular AI Search queries + +### Example + +* Bearer (JWT) Authentication (BearerAuth): + +```python +import quantcdn +from quantcdn.rest import ApiException +from pprint import pprint + +# Defining the host is optional and defaults to https://dashboard.quantcdn.io +# See configuration.py for a list of all supported configuration parameters. +configuration = quantcdn.Configuration( + host = "https://dashboard.quantcdn.io" +) + +# The client must configure the authentication and authorization parameters +# in accordance with the API server security policy. +# Examples for each auth method are provided below, use the example that +# satisfies your auth use case. + +# Configure Bearer authorization (JWT): BearerAuth +configuration = quantcdn.Configuration( + access_token = os.environ["BEARER_TOKEN"] +) + +# Enter a context with an instance of the API client +with quantcdn.ApiClient(configuration) as api_client: + # Create an instance of the API class + api_instance = quantcdn.AISearchApi(api_client) + organisation = 'organisation_example' # str | + project = 'project_example' # str | + range = '30d' # str | (optional) (default to '30d') + limit = 56 # int | (optional) + + try: + # Get the most popular AI Search queries + api_instance.ai_search_top_queries(organisation, project, range=range, limit=limit) + except Exception as e: + print("Exception when calling AISearchApi->ai_search_top_queries: %s\n" % e) +``` + + + +### Parameters + + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **organisation** | **str**| | + **project** | **str**| | + **range** | **str**| | [optional] [default to '30d'] + **limit** | **int**| | [optional] + +### Return type + +void (empty response body) + +### Authorization + +[BearerAuth](../README.md#BearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: Not defined + +### HTTP response details + +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**200** | Top queries | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **ai_search_trigger_crawl** +> ai_search_trigger_crawl(organisation, project, ai_search_trigger_crawl_request) + +Trigger a crawler run that ingests into AI Search + +### Example + +* Bearer (JWT) Authentication (BearerAuth): + +```python +import quantcdn +from quantcdn.models.ai_search_trigger_crawl_request import AiSearchTriggerCrawlRequest +from quantcdn.rest import ApiException +from pprint import pprint + +# Defining the host is optional and defaults to https://dashboard.quantcdn.io +# See configuration.py for a list of all supported configuration parameters. +configuration = quantcdn.Configuration( + host = "https://dashboard.quantcdn.io" +) + +# The client must configure the authentication and authorization parameters +# in accordance with the API server security policy. +# Examples for each auth method are provided below, use the example that +# satisfies your auth use case. + +# Configure Bearer authorization (JWT): BearerAuth +configuration = quantcdn.Configuration( + access_token = os.environ["BEARER_TOKEN"] +) + +# Enter a context with an instance of the API client +with quantcdn.ApiClient(configuration) as api_client: + # Create an instance of the API class + api_instance = quantcdn.AISearchApi(api_client) + organisation = 'organisation_example' # str | + project = 'project_example' # str | + ai_search_trigger_crawl_request = quantcdn.AiSearchTriggerCrawlRequest() # AiSearchTriggerCrawlRequest | + + try: + # Trigger a crawler run that ingests into AI Search + api_instance.ai_search_trigger_crawl(organisation, project, ai_search_trigger_crawl_request) + except Exception as e: + print("Exception when calling AISearchApi->ai_search_trigger_crawl: %s\n" % e) +``` + + + +### Parameters + + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **organisation** | **str**| | + **project** | **str**| | + **ai_search_trigger_crawl_request** | [**AiSearchTriggerCrawlRequest**](AiSearchTriggerCrawlRequest.md)| | + +### Return type + +void (empty response body) + +### Authorization + +[BearerAuth](../README.md#BearerAuth) + +### HTTP request headers + + - **Content-Type**: application/json + - **Accept**: Not defined + +### HTTP response details + +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**200** | Crawl started | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **ai_search_update_settings** +> ai_search_update_settings(organisation, project, ai_search_update_settings_request) + +Update AI Search public access and rate limit settings + +### Example + +* Bearer (JWT) Authentication (BearerAuth): + +```python +import quantcdn +from quantcdn.models.ai_search_update_settings_request import AiSearchUpdateSettingsRequest +from quantcdn.rest import ApiException +from pprint import pprint + +# Defining the host is optional and defaults to https://dashboard.quantcdn.io +# See configuration.py for a list of all supported configuration parameters. +configuration = quantcdn.Configuration( + host = "https://dashboard.quantcdn.io" +) + +# The client must configure the authentication and authorization parameters +# in accordance with the API server security policy. +# Examples for each auth method are provided below, use the example that +# satisfies your auth use case. + +# Configure Bearer authorization (JWT): BearerAuth +configuration = quantcdn.Configuration( + access_token = os.environ["BEARER_TOKEN"] +) + +# Enter a context with an instance of the API client +with quantcdn.ApiClient(configuration) as api_client: + # Create an instance of the API class + api_instance = quantcdn.AISearchApi(api_client) + organisation = 'organisation_example' # str | + project = 'project_example' # str | + ai_search_update_settings_request = quantcdn.AiSearchUpdateSettingsRequest() # AiSearchUpdateSettingsRequest | + + try: + # Update AI Search public access and rate limit settings + api_instance.ai_search_update_settings(organisation, project, ai_search_update_settings_request) + except Exception as e: + print("Exception when calling AISearchApi->ai_search_update_settings: %s\n" % e) +``` + + + +### Parameters + + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **organisation** | **str**| | + **project** | **str**| | + **ai_search_update_settings_request** | [**AiSearchUpdateSettingsRequest**](AiSearchUpdateSettingsRequest.md)| | + +### Return type + +void (empty response body) + +### Authorization + +[BearerAuth](../README.md#BearerAuth) + +### HTTP request headers + + - **Content-Type**: application/json + - **Accept**: Not defined + +### HTTP response details + +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**200** | Updated | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **ai_search_usage** +> ai_search_usage(organisation, project, range=range) + +Get usage statistics for the AI Search site + +### Example + +* Bearer (JWT) Authentication (BearerAuth): + +```python +import quantcdn +from quantcdn.rest import ApiException +from pprint import pprint + +# Defining the host is optional and defaults to https://dashboard.quantcdn.io +# See configuration.py for a list of all supported configuration parameters. +configuration = quantcdn.Configuration( + host = "https://dashboard.quantcdn.io" +) + +# The client must configure the authentication and authorization parameters +# in accordance with the API server security policy. +# Examples for each auth method are provided below, use the example that +# satisfies your auth use case. + +# Configure Bearer authorization (JWT): BearerAuth +configuration = quantcdn.Configuration( + access_token = os.environ["BEARER_TOKEN"] +) + +# Enter a context with an instance of the API client +with quantcdn.ApiClient(configuration) as api_client: + # Create an instance of the API class + api_instance = quantcdn.AISearchApi(api_client) + organisation = 'organisation_example' # str | + project = 'project_example' # str | + range = '30d' # str | (optional) (default to '30d') + + try: + # Get usage statistics for the AI Search site + api_instance.ai_search_usage(organisation, project, range=range) + except Exception as e: + print("Exception when calling AISearchApi->ai_search_usage: %s\n" % e) +``` + + + +### Parameters + + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **organisation** | **str**| | + **project** | **str**| | + **range** | **str**| | [optional] [default to '30d'] + +### Return type + +void (empty response body) + +### Authorization + +[BearerAuth](../README.md#BearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: Not defined + +### HTTP response details + +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**200** | Usage | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + diff --git a/docs/AISkillsApi.md b/docs/AISkillsApi.md new file mode 100644 index 00000000..ae4a863b --- /dev/null +++ b/docs/AISkillsApi.md @@ -0,0 +1,980 @@ +# quantcdn.AISkillsApi + +All URIs are relative to *https://dashboard.quantcdn.io* + +Method | HTTP request | Description +------------- | ------------- | ------------- +[**create_skill**](AISkillsApi.md#create_skill) | **POST** /api/v3/organizations/{organisation}/ai/skills | Create Inline Skill +[**delete_skill**](AISkillsApi.md#delete_skill) | **DELETE** /api/v3/organizations/{organisation}/ai/skills/{skillId} | Delete Skill +[**delete_skill_collection**](AISkillsApi.md#delete_skill_collection) | **DELETE** /api/v3/organizations/{organisation}/ai/skills/collections/{namespace} | Delete Skill Collection +[**get_skill**](AISkillsApi.md#get_skill) | **GET** /api/v3/organizations/{organisation}/ai/skills/{skillId} | Get Skill Details +[**import_skill**](AISkillsApi.md#import_skill) | **POST** /api/v3/organizations/{organisation}/ai/skills/import | Import Skill from External Source +[**import_skill_collection**](AISkillsApi.md#import_skill_collection) | **POST** /api/v3/organizations/{organisation}/ai/skills/import-collection | Import Skill Collection from GitHub +[**list_skill_collections**](AISkillsApi.md#list_skill_collections) | **GET** /api/v3/organizations/{organisation}/ai/skills/collections | List Skill Collections +[**list_skills**](AISkillsApi.md#list_skills) | **GET** /api/v3/organizations/{organisation}/ai/skills | List Organization's Skills +[**sync_skill**](AISkillsApi.md#sync_skill) | **POST** /api/v3/organizations/{organisation}/ai/skills/{skillId}/sync | Sync Skill from Source +[**sync_skill_collection**](AISkillsApi.md#sync_skill_collection) | **POST** /api/v3/organizations/{organisation}/ai/skills/collections/{namespace}/sync | Sync Skill Collection +[**update_skill**](AISkillsApi.md#update_skill) | **PUT** /api/v3/organizations/{organisation}/ai/skills/{skillId} | Update Skill + + +# **create_skill** +> CreateSkill201Response create_skill(organisation, create_skill_request) + +Create Inline Skill + +Creates a new skill with inline content. Use this for custom skills + * that are defined directly in your organization. + * + * **Trigger Conditions:** + * - Natural language description of when to use the skill + * - Used by AI to determine when to suggest or apply the skill + * - Example: 'When the user asks about code review or security analysis' + +### Example + +* Bearer (JWT) Authentication (BearerAuth): + +```python +import quantcdn +from quantcdn.models.create_skill201_response import CreateSkill201Response +from quantcdn.models.create_skill_request import CreateSkillRequest +from quantcdn.rest import ApiException +from pprint import pprint + +# Defining the host is optional and defaults to https://dashboard.quantcdn.io +# See configuration.py for a list of all supported configuration parameters. +configuration = quantcdn.Configuration( + host = "https://dashboard.quantcdn.io" +) + +# The client must configure the authentication and authorization parameters +# in accordance with the API server security policy. +# Examples for each auth method are provided below, use the example that +# satisfies your auth use case. + +# Configure Bearer authorization (JWT): BearerAuth +configuration = quantcdn.Configuration( + access_token = os.environ["BEARER_TOKEN"] +) + +# Enter a context with an instance of the API client +with quantcdn.ApiClient(configuration) as api_client: + # Create an instance of the API class + api_instance = quantcdn.AISkillsApi(api_client) + organisation = 'organisation_example' # str | The organisation ID + create_skill_request = quantcdn.CreateSkillRequest() # CreateSkillRequest | + + try: + # Create Inline Skill + api_response = api_instance.create_skill(organisation, create_skill_request) + print("The response of AISkillsApi->create_skill:\n") + pprint(api_response) + except Exception as e: + print("Exception when calling AISkillsApi->create_skill: %s\n" % e) +``` + + + +### Parameters + + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **organisation** | **str**| The organisation ID | + **create_skill_request** | [**CreateSkillRequest**](CreateSkillRequest.md)| | + +### Return type + +[**CreateSkill201Response**](CreateSkill201Response.md) + +### Authorization + +[BearerAuth](../README.md#BearerAuth) + +### HTTP request headers + + - **Content-Type**: application/json + - **Accept**: application/json + +### HTTP response details + +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**201** | Skill created successfully | - | +**400** | Invalid request parameters | - | +**403** | Access denied | - | +**500** | Failed to create skill | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **delete_skill** +> DeleteSkill200Response delete_skill(organisation, skill_id) + +Delete Skill + +Permanently deletes a skill. This will also remove it from any agents that have it assigned. + +### Example + +* Bearer (JWT) Authentication (BearerAuth): + +```python +import quantcdn +from quantcdn.models.delete_skill200_response import DeleteSkill200Response +from quantcdn.rest import ApiException +from pprint import pprint + +# Defining the host is optional and defaults to https://dashboard.quantcdn.io +# See configuration.py for a list of all supported configuration parameters. +configuration = quantcdn.Configuration( + host = "https://dashboard.quantcdn.io" +) + +# The client must configure the authentication and authorization parameters +# in accordance with the API server security policy. +# Examples for each auth method are provided below, use the example that +# satisfies your auth use case. + +# Configure Bearer authorization (JWT): BearerAuth +configuration = quantcdn.Configuration( + access_token = os.environ["BEARER_TOKEN"] +) + +# Enter a context with an instance of the API client +with quantcdn.ApiClient(configuration) as api_client: + # Create an instance of the API class + api_instance = quantcdn.AISkillsApi(api_client) + organisation = 'organisation_example' # str | The organisation ID + skill_id = 'skill_id_example' # str | The skill ID + + try: + # Delete Skill + api_response = api_instance.delete_skill(organisation, skill_id) + print("The response of AISkillsApi->delete_skill:\n") + pprint(api_response) + except Exception as e: + print("Exception when calling AISkillsApi->delete_skill: %s\n" % e) +``` + + + +### Parameters + + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **organisation** | **str**| The organisation ID | + **skill_id** | **str**| The skill ID | + +### Return type + +[**DeleteSkill200Response**](DeleteSkill200Response.md) + +### Authorization + +[BearerAuth](../README.md#BearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + +### HTTP response details + +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**200** | Skill deleted successfully | - | +**403** | Access denied | - | +**404** | Skill not found | - | +**500** | Failed to delete skill | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **delete_skill_collection** +> DeleteSkillCollection200Response delete_skill_collection(organisation, namespace) + +Delete Skill Collection + +Permanently deletes all skills in the specified namespace. + +### Example + +* Bearer (JWT) Authentication (BearerAuth): + +```python +import quantcdn +from quantcdn.models.delete_skill_collection200_response import DeleteSkillCollection200Response +from quantcdn.rest import ApiException +from pprint import pprint + +# Defining the host is optional and defaults to https://dashboard.quantcdn.io +# See configuration.py for a list of all supported configuration parameters. +configuration = quantcdn.Configuration( + host = "https://dashboard.quantcdn.io" +) + +# The client must configure the authentication and authorization parameters +# in accordance with the API server security policy. +# Examples for each auth method are provided below, use the example that +# satisfies your auth use case. + +# Configure Bearer authorization (JWT): BearerAuth +configuration = quantcdn.Configuration( + access_token = os.environ["BEARER_TOKEN"] +) + +# Enter a context with an instance of the API client +with quantcdn.ApiClient(configuration) as api_client: + # Create an instance of the API class + api_instance = quantcdn.AISkillsApi(api_client) + organisation = 'organisation_example' # str | The organisation ID + namespace = 'namespace_example' # str | Collection namespace + + try: + # Delete Skill Collection + api_response = api_instance.delete_skill_collection(organisation, namespace) + print("The response of AISkillsApi->delete_skill_collection:\n") + pprint(api_response) + except Exception as e: + print("Exception when calling AISkillsApi->delete_skill_collection: %s\n" % e) +``` + + + +### Parameters + + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **organisation** | **str**| The organisation ID | + **namespace** | **str**| Collection namespace | + +### Return type + +[**DeleteSkillCollection200Response**](DeleteSkillCollection200Response.md) + +### Authorization + +[BearerAuth](../README.md#BearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + +### HTTP response details + +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**200** | Collection deleted successfully | - | +**403** | Access denied | - | +**404** | Collection not found | - | +**500** | Failed to delete collection | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **get_skill** +> GetSkill200Response get_skill(organisation, skill_id) + +Get Skill Details + +Retrieves full details of a skill including its content, source information, and metadata. + +### Example + +* Bearer (JWT) Authentication (BearerAuth): + +```python +import quantcdn +from quantcdn.models.get_skill200_response import GetSkill200Response +from quantcdn.rest import ApiException +from pprint import pprint + +# Defining the host is optional and defaults to https://dashboard.quantcdn.io +# See configuration.py for a list of all supported configuration parameters. +configuration = quantcdn.Configuration( + host = "https://dashboard.quantcdn.io" +) + +# The client must configure the authentication and authorization parameters +# in accordance with the API server security policy. +# Examples for each auth method are provided below, use the example that +# satisfies your auth use case. + +# Configure Bearer authorization (JWT): BearerAuth +configuration = quantcdn.Configuration( + access_token = os.environ["BEARER_TOKEN"] +) + +# Enter a context with an instance of the API client +with quantcdn.ApiClient(configuration) as api_client: + # Create an instance of the API class + api_instance = quantcdn.AISkillsApi(api_client) + organisation = 'organisation_example' # str | The organisation ID + skill_id = 'skill_id_example' # str | The skill ID + + try: + # Get Skill Details + api_response = api_instance.get_skill(organisation, skill_id) + print("The response of AISkillsApi->get_skill:\n") + pprint(api_response) + except Exception as e: + print("Exception when calling AISkillsApi->get_skill: %s\n" % e) +``` + + + +### Parameters + + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **organisation** | **str**| The organisation ID | + **skill_id** | **str**| The skill ID | + +### Return type + +[**GetSkill200Response**](GetSkill200Response.md) + +### Authorization + +[BearerAuth](../README.md#BearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + +### HTTP response details + +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**200** | Skill details retrieved successfully | - | +**403** | Access denied | - | +**404** | Skill not found | - | +**500** | Failed to retrieve skill | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **import_skill** +> ImportSkill201Response import_skill(organisation, import_skill_request) + +Import Skill from External Source + +Imports a skill from an external source like skills.sh registry or GitHub repository. + * + * **Supported Sources:** + * - `skills.sh`: Import from the skills.sh community registry + * - `github`: Import from a GitHub repository (public or private) + * + * **Version Control:** + * - Skills can be pinned to specific versions + * - Use the sync endpoint to update to latest version + +### Example + +* Bearer (JWT) Authentication (BearerAuth): + +```python +import quantcdn +from quantcdn.models.import_skill201_response import ImportSkill201Response +from quantcdn.models.import_skill_request import ImportSkillRequest +from quantcdn.rest import ApiException +from pprint import pprint + +# Defining the host is optional and defaults to https://dashboard.quantcdn.io +# See configuration.py for a list of all supported configuration parameters. +configuration = quantcdn.Configuration( + host = "https://dashboard.quantcdn.io" +) + +# The client must configure the authentication and authorization parameters +# in accordance with the API server security policy. +# Examples for each auth method are provided below, use the example that +# satisfies your auth use case. + +# Configure Bearer authorization (JWT): BearerAuth +configuration = quantcdn.Configuration( + access_token = os.environ["BEARER_TOKEN"] +) + +# Enter a context with an instance of the API client +with quantcdn.ApiClient(configuration) as api_client: + # Create an instance of the API class + api_instance = quantcdn.AISkillsApi(api_client) + organisation = 'organisation_example' # str | The organisation ID + import_skill_request = quantcdn.ImportSkillRequest() # ImportSkillRequest | + + try: + # Import Skill from External Source + api_response = api_instance.import_skill(organisation, import_skill_request) + print("The response of AISkillsApi->import_skill:\n") + pprint(api_response) + except Exception as e: + print("Exception when calling AISkillsApi->import_skill: %s\n" % e) +``` + + + +### Parameters + + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **organisation** | **str**| The organisation ID | + **import_skill_request** | [**ImportSkillRequest**](ImportSkillRequest.md)| | + +### Return type + +[**ImportSkill201Response**](ImportSkill201Response.md) + +### Authorization + +[BearerAuth](../README.md#BearerAuth) + +### HTTP request headers + + - **Content-Type**: application/json + - **Accept**: application/json + +### HTTP response details + +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**201** | Skill imported successfully | - | +**400** | Invalid request parameters | - | +**403** | Access denied | - | +**502** | Failed to fetch skill from source | - | +**500** | Failed to import skill | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **import_skill_collection** +> ImportSkillCollection201Response import_skill_collection(organisation, import_skill_collection_request) + +Import Skill Collection from GitHub + +Discovers all skill directories under a given path in a GitHub repository + * and imports each as a skill within the specified namespace. Each subdirectory must contain a SKILL.md file. + * + * **Namespace:** Used for grouping and slash-command invocation (e.g., `/superpowers:brainstorming`). + * + * **Idempotent:** If a skill with the same namespace + name already exists, it is updated. + +### Example + +* Bearer (JWT) Authentication (BearerAuth): + +```python +import quantcdn +from quantcdn.models.import_skill_collection201_response import ImportSkillCollection201Response +from quantcdn.models.import_skill_collection_request import ImportSkillCollectionRequest +from quantcdn.rest import ApiException +from pprint import pprint + +# Defining the host is optional and defaults to https://dashboard.quantcdn.io +# See configuration.py for a list of all supported configuration parameters. +configuration = quantcdn.Configuration( + host = "https://dashboard.quantcdn.io" +) + +# The client must configure the authentication and authorization parameters +# in accordance with the API server security policy. +# Examples for each auth method are provided below, use the example that +# satisfies your auth use case. + +# Configure Bearer authorization (JWT): BearerAuth +configuration = quantcdn.Configuration( + access_token = os.environ["BEARER_TOKEN"] +) + +# Enter a context with an instance of the API client +with quantcdn.ApiClient(configuration) as api_client: + # Create an instance of the API class + api_instance = quantcdn.AISkillsApi(api_client) + organisation = 'organisation_example' # str | The organisation ID + import_skill_collection_request = quantcdn.ImportSkillCollectionRequest() # ImportSkillCollectionRequest | + + try: + # Import Skill Collection from GitHub + api_response = api_instance.import_skill_collection(organisation, import_skill_collection_request) + print("The response of AISkillsApi->import_skill_collection:\n") + pprint(api_response) + except Exception as e: + print("Exception when calling AISkillsApi->import_skill_collection: %s\n" % e) +``` + + + +### Parameters + + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **organisation** | **str**| The organisation ID | + **import_skill_collection_request** | [**ImportSkillCollectionRequest**](ImportSkillCollectionRequest.md)| | + +### Return type + +[**ImportSkillCollection201Response**](ImportSkillCollection201Response.md) + +### Authorization + +[BearerAuth](../README.md#BearerAuth) + +### HTTP request headers + + - **Content-Type**: application/json + - **Accept**: application/json + +### HTTP response details + +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**201** | Collection imported successfully | - | +**400** | Invalid request parameters | - | +**403** | Access denied | - | +**502** | GitHub API error | - | +**500** | Failed to import collection | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **list_skill_collections** +> ListSkillCollections200Response list_skill_collections(organisation) + +List Skill Collections + +Lists distinct namespaces (collections) for the organization, with skill counts and skill names for each collection. + +### Example + +* Bearer (JWT) Authentication (BearerAuth): + +```python +import quantcdn +from quantcdn.models.list_skill_collections200_response import ListSkillCollections200Response +from quantcdn.rest import ApiException +from pprint import pprint + +# Defining the host is optional and defaults to https://dashboard.quantcdn.io +# See configuration.py for a list of all supported configuration parameters. +configuration = quantcdn.Configuration( + host = "https://dashboard.quantcdn.io" +) + +# The client must configure the authentication and authorization parameters +# in accordance with the API server security policy. +# Examples for each auth method are provided below, use the example that +# satisfies your auth use case. + +# Configure Bearer authorization (JWT): BearerAuth +configuration = quantcdn.Configuration( + access_token = os.environ["BEARER_TOKEN"] +) + +# Enter a context with an instance of the API client +with quantcdn.ApiClient(configuration) as api_client: + # Create an instance of the API class + api_instance = quantcdn.AISkillsApi(api_client) + organisation = 'organisation_example' # str | The organisation ID + + try: + # List Skill Collections + api_response = api_instance.list_skill_collections(organisation) + print("The response of AISkillsApi->list_skill_collections:\n") + pprint(api_response) + except Exception as e: + print("Exception when calling AISkillsApi->list_skill_collections: %s\n" % e) +``` + + + +### Parameters + + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **organisation** | **str**| The organisation ID | + +### Return type + +[**ListSkillCollections200Response**](ListSkillCollections200Response.md) + +### Authorization + +[BearerAuth](../README.md#BearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + +### HTTP response details + +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**200** | Collections retrieved successfully | - | +**403** | Access denied | - | +**500** | Failed to retrieve collections | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **list_skills** +> ListSkills200Response list_skills(organisation, tag=tag, namespace=namespace, limit=limit) + +List Organization's Skills + +Lists all skills available to the organization. Skills are reusable prompts, + * workflows, or instructions that can be assigned to agents or invoked directly. + * + * **Skill Sources:** + * - `inline`: Created directly via the API + * - `skills.sh`: Imported from skills.sh registry + * - `github`: Imported from a GitHub repository + * - `local`: Uploaded from local file + +### Example + +* Bearer (JWT) Authentication (BearerAuth): + +```python +import quantcdn +from quantcdn.models.list_skills200_response import ListSkills200Response +from quantcdn.rest import ApiException +from pprint import pprint + +# Defining the host is optional and defaults to https://dashboard.quantcdn.io +# See configuration.py for a list of all supported configuration parameters. +configuration = quantcdn.Configuration( + host = "https://dashboard.quantcdn.io" +) + +# The client must configure the authentication and authorization parameters +# in accordance with the API server security policy. +# Examples for each auth method are provided below, use the example that +# satisfies your auth use case. + +# Configure Bearer authorization (JWT): BearerAuth +configuration = quantcdn.Configuration( + access_token = os.environ["BEARER_TOKEN"] +) + +# Enter a context with an instance of the API client +with quantcdn.ApiClient(configuration) as api_client: + # Create an instance of the API class + api_instance = quantcdn.AISkillsApi(api_client) + organisation = 'organisation_example' # str | The organisation ID + tag = 'tag_example' # str | Filter skills by tag (optional) + namespace = 'namespace_example' # str | Filter skills by collection namespace (e.g. 'superpowers') (optional) + limit = 50 # int | Maximum number of skills to return (optional) (default to 50) + + try: + # List Organization's Skills + api_response = api_instance.list_skills(organisation, tag=tag, namespace=namespace, limit=limit) + print("The response of AISkillsApi->list_skills:\n") + pprint(api_response) + except Exception as e: + print("Exception when calling AISkillsApi->list_skills: %s\n" % e) +``` + + + +### Parameters + + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **organisation** | **str**| The organisation ID | + **tag** | **str**| Filter skills by tag | [optional] + **namespace** | **str**| Filter skills by collection namespace (e.g. 'superpowers') | [optional] + **limit** | **int**| Maximum number of skills to return | [optional] [default to 50] + +### Return type + +[**ListSkills200Response**](ListSkills200Response.md) + +### Authorization + +[BearerAuth](../README.md#BearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + +### HTTP response details + +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**200** | List of skills retrieved successfully | - | +**403** | Access denied | - | +**500** | Failed to retrieve skills | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **sync_skill** +> ImportSkill201Response sync_skill(organisation, skill_id) + +Sync Skill from Source + +Re-fetches skill content from its original source. + * Only applicable to skills imported from external sources (skills.sh, github). + * Inline skills cannot be synced. + * + * **Version Behavior:** + * - If version is pinned, fetches that specific version + * - If no version specified, fetches latest + +### Example + +* Bearer (JWT) Authentication (BearerAuth): + +```python +import quantcdn +from quantcdn.models.import_skill201_response import ImportSkill201Response +from quantcdn.rest import ApiException +from pprint import pprint + +# Defining the host is optional and defaults to https://dashboard.quantcdn.io +# See configuration.py for a list of all supported configuration parameters. +configuration = quantcdn.Configuration( + host = "https://dashboard.quantcdn.io" +) + +# The client must configure the authentication and authorization parameters +# in accordance with the API server security policy. +# Examples for each auth method are provided below, use the example that +# satisfies your auth use case. + +# Configure Bearer authorization (JWT): BearerAuth +configuration = quantcdn.Configuration( + access_token = os.environ["BEARER_TOKEN"] +) + +# Enter a context with an instance of the API client +with quantcdn.ApiClient(configuration) as api_client: + # Create an instance of the API class + api_instance = quantcdn.AISkillsApi(api_client) + organisation = 'organisation_example' # str | The organisation ID + skill_id = 'skill_id_example' # str | The skill ID + + try: + # Sync Skill from Source + api_response = api_instance.sync_skill(organisation, skill_id) + print("The response of AISkillsApi->sync_skill:\n") + pprint(api_response) + except Exception as e: + print("Exception when calling AISkillsApi->sync_skill: %s\n" % e) +``` + + + +### Parameters + + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **organisation** | **str**| The organisation ID | + **skill_id** | **str**| The skill ID | + +### Return type + +[**ImportSkill201Response**](ImportSkill201Response.md) + +### Authorization + +[BearerAuth](../README.md#BearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + +### HTTP response details + +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**200** | Skill synced successfully | - | +**400** | Cannot sync inline skill | - | +**403** | Access denied | - | +**404** | Skill not found | - | +**502** | Failed to fetch skill from source | - | +**500** | Failed to sync skill | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **sync_skill_collection** +> SyncSkillCollection200Response sync_skill_collection(organisation, namespace) + +Sync Skill Collection + +Re-syncs all skills in a namespace from their GitHub source. Detects new + * skills added to the repository and flags skills removed from the source. Does NOT auto-delete removed skills. + +### Example + +* Bearer (JWT) Authentication (BearerAuth): + +```python +import quantcdn +from quantcdn.models.sync_skill_collection200_response import SyncSkillCollection200Response +from quantcdn.rest import ApiException +from pprint import pprint + +# Defining the host is optional and defaults to https://dashboard.quantcdn.io +# See configuration.py for a list of all supported configuration parameters. +configuration = quantcdn.Configuration( + host = "https://dashboard.quantcdn.io" +) + +# The client must configure the authentication and authorization parameters +# in accordance with the API server security policy. +# Examples for each auth method are provided below, use the example that +# satisfies your auth use case. + +# Configure Bearer authorization (JWT): BearerAuth +configuration = quantcdn.Configuration( + access_token = os.environ["BEARER_TOKEN"] +) + +# Enter a context with an instance of the API client +with quantcdn.ApiClient(configuration) as api_client: + # Create an instance of the API class + api_instance = quantcdn.AISkillsApi(api_client) + organisation = 'organisation_example' # str | The organisation ID + namespace = 'namespace_example' # str | Collection namespace + + try: + # Sync Skill Collection + api_response = api_instance.sync_skill_collection(organisation, namespace) + print("The response of AISkillsApi->sync_skill_collection:\n") + pprint(api_response) + except Exception as e: + print("Exception when calling AISkillsApi->sync_skill_collection: %s\n" % e) +``` + + + +### Parameters + + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **organisation** | **str**| The organisation ID | + **namespace** | **str**| Collection namespace | + +### Return type + +[**SyncSkillCollection200Response**](SyncSkillCollection200Response.md) + +### Authorization + +[BearerAuth](../README.md#BearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + +### HTTP response details + +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**200** | Collection synced successfully | - | +**400** | Invalid request | - | +**403** | Access denied | - | +**404** | Collection not found | - | +**502** | GitHub API error | - | +**500** | Failed to sync collection | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **update_skill** +> UpdateSkill200Response update_skill(organisation, skill_id, update_skill_request) + +Update Skill + +Updates an existing skill. For imported skills, this updates + * local overrides (name, tags, triggerCondition) but not the source content. + * Use the sync endpoint to update source content. + +### Example + +* Bearer (JWT) Authentication (BearerAuth): + +```python +import quantcdn +from quantcdn.models.update_skill200_response import UpdateSkill200Response +from quantcdn.models.update_skill_request import UpdateSkillRequest +from quantcdn.rest import ApiException +from pprint import pprint + +# Defining the host is optional and defaults to https://dashboard.quantcdn.io +# See configuration.py for a list of all supported configuration parameters. +configuration = quantcdn.Configuration( + host = "https://dashboard.quantcdn.io" +) + +# The client must configure the authentication and authorization parameters +# in accordance with the API server security policy. +# Examples for each auth method are provided below, use the example that +# satisfies your auth use case. + +# Configure Bearer authorization (JWT): BearerAuth +configuration = quantcdn.Configuration( + access_token = os.environ["BEARER_TOKEN"] +) + +# Enter a context with an instance of the API client +with quantcdn.ApiClient(configuration) as api_client: + # Create an instance of the API class + api_instance = quantcdn.AISkillsApi(api_client) + organisation = 'organisation_example' # str | The organisation ID + skill_id = 'skill_id_example' # str | The skill ID + update_skill_request = quantcdn.UpdateSkillRequest() # UpdateSkillRequest | + + try: + # Update Skill + api_response = api_instance.update_skill(organisation, skill_id, update_skill_request) + print("The response of AISkillsApi->update_skill:\n") + pprint(api_response) + except Exception as e: + print("Exception when calling AISkillsApi->update_skill: %s\n" % e) +``` + + + +### Parameters + + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **organisation** | **str**| The organisation ID | + **skill_id** | **str**| The skill ID | + **update_skill_request** | [**UpdateSkillRequest**](UpdateSkillRequest.md)| | + +### Return type + +[**UpdateSkill200Response**](UpdateSkill200Response.md) + +### Authorization + +[BearerAuth](../README.md#BearerAuth) + +### HTTP request headers + + - **Content-Type**: application/json + - **Accept**: application/json + +### HTTP response details + +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**200** | Skill updated successfully | - | +**400** | Invalid request parameters | - | +**403** | Access denied | - | +**404** | Skill not found | - | +**500** | Failed to update skill | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + diff --git a/docs/AISlackBotsApi.md b/docs/AISlackBotsApi.md new file mode 100644 index 00000000..5c3e110b --- /dev/null +++ b/docs/AISlackBotsApi.md @@ -0,0 +1,606 @@ +# quantcdn.AISlackBotsApi + +All URIs are relative to *https://dashboard.quantcdn.io* + +Method | HTTP request | Description +------------- | ------------- | ------------- +[**create_slack_bot**](AISlackBotsApi.md#create_slack_bot) | **POST** /api/v3/organizations/{organisation}/ai/slack-bots | Create Slack Bot +[**delete_slack_bot**](AISlackBotsApi.md#delete_slack_bot) | **DELETE** /api/v3/organizations/{organisation}/ai/slack-bots/{botId} | Delete Slack Bot +[**get_slack_bot**](AISlackBotsApi.md#get_slack_bot) | **GET** /api/v3/organizations/{organisation}/ai/slack-bots/{botId} | Get Slack Bot +[**list_slack_bots**](AISlackBotsApi.md#list_slack_bots) | **GET** /api/v3/organizations/{organisation}/ai/slack-bots | List Slack Bots +[**search_slack_workspace_channels**](AISlackBotsApi.md#search_slack_workspace_channels) | **GET** /api/v3/organizations/{organisation}/ai/slack-bots/{botId}/workspace/channels | Search Slack Workspace Channels +[**search_slack_workspace_users**](AISlackBotsApi.md#search_slack_workspace_users) | **GET** /api/v3/organizations/{organisation}/ai/slack-bots/{botId}/workspace/users | Search Slack Workspace Users +[**update_slack_bot**](AISlackBotsApi.md#update_slack_bot) | **PUT** /api/v3/organizations/{organisation}/ai/slack-bots/{botId} | Update Slack Bot + + +# **create_slack_bot** +> CreateSlackBot201Response create_slack_bot(organisation, create_slack_bot_request) + +Create Slack Bot + +Creates a new Slack bot with inline AI agent configuration. A backing agent is created automatically — callers do not need to manage agents separately. + * + * **Setup Types:** + * - `quant`: Quant-managed Slack app — uses shared OAuth credentials + * - `byo`: Bring Your Own — customer provides their own Slack app credentials + +### Example + +* Bearer (JWT) Authentication (BearerAuth): + +```python +import quantcdn +from quantcdn.models.create_slack_bot201_response import CreateSlackBot201Response +from quantcdn.models.create_slack_bot_request import CreateSlackBotRequest +from quantcdn.rest import ApiException +from pprint import pprint + +# Defining the host is optional and defaults to https://dashboard.quantcdn.io +# See configuration.py for a list of all supported configuration parameters. +configuration = quantcdn.Configuration( + host = "https://dashboard.quantcdn.io" +) + +# The client must configure the authentication and authorization parameters +# in accordance with the API server security policy. +# Examples for each auth method are provided below, use the example that +# satisfies your auth use case. + +# Configure Bearer authorization (JWT): BearerAuth +configuration = quantcdn.Configuration( + access_token = os.environ["BEARER_TOKEN"] +) + +# Enter a context with an instance of the API client +with quantcdn.ApiClient(configuration) as api_client: + # Create an instance of the API class + api_instance = quantcdn.AISlackBotsApi(api_client) + organisation = 'organisation_example' # str | The organisation ID + create_slack_bot_request = quantcdn.CreateSlackBotRequest() # CreateSlackBotRequest | + + try: + # Create Slack Bot + api_response = api_instance.create_slack_bot(organisation, create_slack_bot_request) + print("The response of AISlackBotsApi->create_slack_bot:\n") + pprint(api_response) + except Exception as e: + print("Exception when calling AISlackBotsApi->create_slack_bot: %s\n" % e) +``` + + + +### Parameters + + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **organisation** | **str**| The organisation ID | + **create_slack_bot_request** | [**CreateSlackBotRequest**](CreateSlackBotRequest.md)| | + +### Return type + +[**CreateSlackBot201Response**](CreateSlackBot201Response.md) + +### Authorization + +[BearerAuth](../README.md#BearerAuth) + +### HTTP request headers + + - **Content-Type**: application/json + - **Accept**: application/json + +### HTTP response details + +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**201** | Slack bot created successfully | - | +**400** | Invalid request parameters | - | +**403** | Access denied | - | +**500** | Failed to create Slack bot | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **delete_slack_bot** +> DeleteSlackBot200Response delete_slack_bot(organisation, bot_id) + +Delete Slack Bot + +Permanently deletes a Slack bot, disconnects it from the workspace, and deletes its backing AI agent. + +### Example + +* Bearer (JWT) Authentication (BearerAuth): + +```python +import quantcdn +from quantcdn.models.delete_slack_bot200_response import DeleteSlackBot200Response +from quantcdn.rest import ApiException +from pprint import pprint + +# Defining the host is optional and defaults to https://dashboard.quantcdn.io +# See configuration.py for a list of all supported configuration parameters. +configuration = quantcdn.Configuration( + host = "https://dashboard.quantcdn.io" +) + +# The client must configure the authentication and authorization parameters +# in accordance with the API server security policy. +# Examples for each auth method are provided below, use the example that +# satisfies your auth use case. + +# Configure Bearer authorization (JWT): BearerAuth +configuration = quantcdn.Configuration( + access_token = os.environ["BEARER_TOKEN"] +) + +# Enter a context with an instance of the API client +with quantcdn.ApiClient(configuration) as api_client: + # Create an instance of the API class + api_instance = quantcdn.AISlackBotsApi(api_client) + organisation = 'organisation_example' # str | The organisation ID + bot_id = 'bot_id_example' # str | The Slack bot ID + + try: + # Delete Slack Bot + api_response = api_instance.delete_slack_bot(organisation, bot_id) + print("The response of AISlackBotsApi->delete_slack_bot:\n") + pprint(api_response) + except Exception as e: + print("Exception when calling AISlackBotsApi->delete_slack_bot: %s\n" % e) +``` + + + +### Parameters + + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **organisation** | **str**| The organisation ID | + **bot_id** | **str**| The Slack bot ID | + +### Return type + +[**DeleteSlackBot200Response**](DeleteSlackBot200Response.md) + +### Authorization + +[BearerAuth](../README.md#BearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + +### HTTP response details + +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**200** | Slack bot deleted successfully | - | +**403** | Access denied | - | +**404** | Slack bot not found | - | +**500** | Failed to delete Slack bot | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **get_slack_bot** +> GetSlackBot200Response get_slack_bot(organisation, bot_id) + +Get Slack Bot + +Retrieves details for a specific Slack bot including its configuration, connection status, and flattened agent configuration. + +### Example + +* Bearer (JWT) Authentication (BearerAuth): + +```python +import quantcdn +from quantcdn.models.get_slack_bot200_response import GetSlackBot200Response +from quantcdn.rest import ApiException +from pprint import pprint + +# Defining the host is optional and defaults to https://dashboard.quantcdn.io +# See configuration.py for a list of all supported configuration parameters. +configuration = quantcdn.Configuration( + host = "https://dashboard.quantcdn.io" +) + +# The client must configure the authentication and authorization parameters +# in accordance with the API server security policy. +# Examples for each auth method are provided below, use the example that +# satisfies your auth use case. + +# Configure Bearer authorization (JWT): BearerAuth +configuration = quantcdn.Configuration( + access_token = os.environ["BEARER_TOKEN"] +) + +# Enter a context with an instance of the API client +with quantcdn.ApiClient(configuration) as api_client: + # Create an instance of the API class + api_instance = quantcdn.AISlackBotsApi(api_client) + organisation = 'organisation_example' # str | The organisation ID + bot_id = 'bot_id_example' # str | The Slack bot ID + + try: + # Get Slack Bot + api_response = api_instance.get_slack_bot(organisation, bot_id) + print("The response of AISlackBotsApi->get_slack_bot:\n") + pprint(api_response) + except Exception as e: + print("Exception when calling AISlackBotsApi->get_slack_bot: %s\n" % e) +``` + + + +### Parameters + + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **organisation** | **str**| The organisation ID | + **bot_id** | **str**| The Slack bot ID | + +### Return type + +[**GetSlackBot200Response**](GetSlackBot200Response.md) + +### Authorization + +[BearerAuth](../README.md#BearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + +### HTTP response details + +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**200** | Slack bot details retrieved successfully | - | +**403** | Access denied | - | +**404** | Slack bot not found | - | +**500** | Failed to retrieve Slack bot | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **list_slack_bots** +> ListSlackBots200Response list_slack_bots(organisation) + +List Slack Bots + +Lists all Slack bots configured for the organization. Each bot is backed by an AI agent and can be connected to a Slack workspace. Agent configuration fields are flattened onto each bot object. + +### Example + +* Bearer (JWT) Authentication (BearerAuth): + +```python +import quantcdn +from quantcdn.models.list_slack_bots200_response import ListSlackBots200Response +from quantcdn.rest import ApiException +from pprint import pprint + +# Defining the host is optional and defaults to https://dashboard.quantcdn.io +# See configuration.py for a list of all supported configuration parameters. +configuration = quantcdn.Configuration( + host = "https://dashboard.quantcdn.io" +) + +# The client must configure the authentication and authorization parameters +# in accordance with the API server security policy. +# Examples for each auth method are provided below, use the example that +# satisfies your auth use case. + +# Configure Bearer authorization (JWT): BearerAuth +configuration = quantcdn.Configuration( + access_token = os.environ["BEARER_TOKEN"] +) + +# Enter a context with an instance of the API client +with quantcdn.ApiClient(configuration) as api_client: + # Create an instance of the API class + api_instance = quantcdn.AISlackBotsApi(api_client) + organisation = 'organisation_example' # str | The organisation ID + + try: + # List Slack Bots + api_response = api_instance.list_slack_bots(organisation) + print("The response of AISlackBotsApi->list_slack_bots:\n") + pprint(api_response) + except Exception as e: + print("Exception when calling AISlackBotsApi->list_slack_bots: %s\n" % e) +``` + + + +### Parameters + + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **organisation** | **str**| The organisation ID | + +### Return type + +[**ListSlackBots200Response**](ListSlackBots200Response.md) + +### Authorization + +[BearerAuth](../README.md#BearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + +### HTTP response details + +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**200** | Slack bots retrieved successfully | - | +**403** | Access denied | - | +**500** | Failed to retrieve Slack bots | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **search_slack_workspace_channels** +> SearchSlackWorkspaceChannels200Response search_slack_workspace_channels(organisation, bot_id, q=q) + +Search Slack Workspace Channels + +Searches channels in the Slack workspace connected to this bot. Requires the bot to be connected via OAuth. + +### Example + +* Bearer (JWT) Authentication (BearerAuth): + +```python +import quantcdn +from quantcdn.models.search_slack_workspace_channels200_response import SearchSlackWorkspaceChannels200Response +from quantcdn.rest import ApiException +from pprint import pprint + +# Defining the host is optional and defaults to https://dashboard.quantcdn.io +# See configuration.py for a list of all supported configuration parameters. +configuration = quantcdn.Configuration( + host = "https://dashboard.quantcdn.io" +) + +# The client must configure the authentication and authorization parameters +# in accordance with the API server security policy. +# Examples for each auth method are provided below, use the example that +# satisfies your auth use case. + +# Configure Bearer authorization (JWT): BearerAuth +configuration = quantcdn.Configuration( + access_token = os.environ["BEARER_TOKEN"] +) + +# Enter a context with an instance of the API client +with quantcdn.ApiClient(configuration) as api_client: + # Create an instance of the API class + api_instance = quantcdn.AISlackBotsApi(api_client) + organisation = 'organisation_example' # str | The organisation ID + bot_id = 'bot_id_example' # str | The Slack bot ID + q = 'q_example' # str | Search query to filter channels by name (optional) + + try: + # Search Slack Workspace Channels + api_response = api_instance.search_slack_workspace_channels(organisation, bot_id, q=q) + print("The response of AISlackBotsApi->search_slack_workspace_channels:\n") + pprint(api_response) + except Exception as e: + print("Exception when calling AISlackBotsApi->search_slack_workspace_channels: %s\n" % e) +``` + + + +### Parameters + + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **organisation** | **str**| The organisation ID | + **bot_id** | **str**| The Slack bot ID | + **q** | **str**| Search query to filter channels by name | [optional] + +### Return type + +[**SearchSlackWorkspaceChannels200Response**](SearchSlackWorkspaceChannels200Response.md) + +### Authorization + +[BearerAuth](../README.md#BearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + +### HTTP response details + +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**200** | Workspace channels retrieved successfully | - | +**403** | Access denied | - | +**404** | Slack bot not found or not connected | - | +**500** | Failed to search channels | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **search_slack_workspace_users** +> SearchSlackWorkspaceUsers200Response search_slack_workspace_users(organisation, bot_id, q=q) + +Search Slack Workspace Users + +Searches users in the Slack workspace connected to this bot. Requires the bot to be connected via OAuth. + +### Example + +* Bearer (JWT) Authentication (BearerAuth): + +```python +import quantcdn +from quantcdn.models.search_slack_workspace_users200_response import SearchSlackWorkspaceUsers200Response +from quantcdn.rest import ApiException +from pprint import pprint + +# Defining the host is optional and defaults to https://dashboard.quantcdn.io +# See configuration.py for a list of all supported configuration parameters. +configuration = quantcdn.Configuration( + host = "https://dashboard.quantcdn.io" +) + +# The client must configure the authentication and authorization parameters +# in accordance with the API server security policy. +# Examples for each auth method are provided below, use the example that +# satisfies your auth use case. + +# Configure Bearer authorization (JWT): BearerAuth +configuration = quantcdn.Configuration( + access_token = os.environ["BEARER_TOKEN"] +) + +# Enter a context with an instance of the API client +with quantcdn.ApiClient(configuration) as api_client: + # Create an instance of the API class + api_instance = quantcdn.AISlackBotsApi(api_client) + organisation = 'organisation_example' # str | The organisation ID + bot_id = 'bot_id_example' # str | The Slack bot ID + q = 'q_example' # str | Search query to filter users by name (optional) + + try: + # Search Slack Workspace Users + api_response = api_instance.search_slack_workspace_users(organisation, bot_id, q=q) + print("The response of AISlackBotsApi->search_slack_workspace_users:\n") + pprint(api_response) + except Exception as e: + print("Exception when calling AISlackBotsApi->search_slack_workspace_users: %s\n" % e) +``` + + + +### Parameters + + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **organisation** | **str**| The organisation ID | + **bot_id** | **str**| The Slack bot ID | + **q** | **str**| Search query to filter users by name | [optional] + +### Return type + +[**SearchSlackWorkspaceUsers200Response**](SearchSlackWorkspaceUsers200Response.md) + +### Authorization + +[BearerAuth](../README.md#BearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + +### HTTP response details + +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**200** | Workspace users retrieved successfully | - | +**403** | Access denied | - | +**404** | Slack bot not found or not connected | - | +**500** | Failed to search users | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **update_slack_bot** +> CreateSlackBot201Response update_slack_bot(organisation, bot_id, update_slack_bot_request) + +Update Slack Bot + +Updates a Slack bot's configuration and/or its backing agent. Only provided fields are updated. + +### Example + +* Bearer (JWT) Authentication (BearerAuth): + +```python +import quantcdn +from quantcdn.models.create_slack_bot201_response import CreateSlackBot201Response +from quantcdn.models.update_slack_bot_request import UpdateSlackBotRequest +from quantcdn.rest import ApiException +from pprint import pprint + +# Defining the host is optional and defaults to https://dashboard.quantcdn.io +# See configuration.py for a list of all supported configuration parameters. +configuration = quantcdn.Configuration( + host = "https://dashboard.quantcdn.io" +) + +# The client must configure the authentication and authorization parameters +# in accordance with the API server security policy. +# Examples for each auth method are provided below, use the example that +# satisfies your auth use case. + +# Configure Bearer authorization (JWT): BearerAuth +configuration = quantcdn.Configuration( + access_token = os.environ["BEARER_TOKEN"] +) + +# Enter a context with an instance of the API client +with quantcdn.ApiClient(configuration) as api_client: + # Create an instance of the API class + api_instance = quantcdn.AISlackBotsApi(api_client) + organisation = 'organisation_example' # str | The organisation ID + bot_id = 'bot_id_example' # str | The Slack bot ID + update_slack_bot_request = quantcdn.UpdateSlackBotRequest() # UpdateSlackBotRequest | + + try: + # Update Slack Bot + api_response = api_instance.update_slack_bot(organisation, bot_id, update_slack_bot_request) + print("The response of AISlackBotsApi->update_slack_bot:\n") + pprint(api_response) + except Exception as e: + print("Exception when calling AISlackBotsApi->update_slack_bot: %s\n" % e) +``` + + + +### Parameters + + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **organisation** | **str**| The organisation ID | + **bot_id** | **str**| The Slack bot ID | + **update_slack_bot_request** | [**UpdateSlackBotRequest**](UpdateSlackBotRequest.md)| | + +### Return type + +[**CreateSlackBot201Response**](CreateSlackBot201Response.md) + +### Authorization + +[BearerAuth](../README.md#BearerAuth) + +### HTTP request headers + + - **Content-Type**: application/json + - **Accept**: application/json + +### HTTP response details + +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**200** | Slack bot updated successfully | - | +**400** | Invalid request parameters | - | +**403** | Access denied | - | +**404** | Slack bot not found | - | +**500** | Failed to update Slack bot | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + diff --git a/docs/AIToolsApi.md b/docs/AIToolsApi.md index c52e6584..b618f162 100644 --- a/docs/AIToolsApi.md +++ b/docs/AIToolsApi.md @@ -4,7 +4,7 @@ All URIs are relative to *https://dashboard.quantcdn.io* Method | HTTP request | Description ------------- | ------------- | ------------- -[**get_ai_orchestration_status**](AIToolsApi.md#get_ai_orchestration_status) | **GET** /api/v3/organizations/{organisation}/ai/tools/orchestrations/{orchestrationId} | Get Orchestration Status +[**get_ai_orchestration_status**](AIToolsApi.md#get_ai_orchestration_status) | **GET** /api/v3/organizations/{organisation}/ai/tools/orchestrations/{orchestrationId} | Get Tool Orchestration Status (Async Tool Polling) [**get_ai_tool_execution_status**](AIToolsApi.md#get_ai_tool_execution_status) | **GET** /api/v3/organizations/{organisation}/ai/tools/executions/{executionId} | Get async tool execution status and result [**list_ai_tool_executions**](AIToolsApi.md#list_ai_tool_executions) | **GET** /api/v3/organizations/{organisation}/ai/tools/executions | List tool executions for monitoring and debugging [**list_ai_tool_names**](AIToolsApi.md#list_ai_tool_names) | **GET** /api/v3/organizations/{organisation}/ai/tools/names | List tool names only (lightweight response) @@ -14,9 +14,12 @@ Method | HTTP request | Description # **get_ai_orchestration_status** > GetAIOrchestrationStatus200Response get_ai_orchestration_status(organisation, orchestration_id) -Get Orchestration Status +Get Tool Orchestration Status (Async Tool Polling) -Retrieves the status and synthesized result of a multi-tool orchestration. +Retrieves the status and synthesized result of a multi-tool async execution orchestration. + * + * **Note:** This endpoint is for async tool execution polling (`/tools/orchestrations`). + * For durable batch processing orchestrations, see `GET /orchestrations` endpoints. * * **Orchestration Pattern:** * When the AI requests multiple async tools simultaneously, an orchestration is created @@ -80,7 +83,7 @@ with quantcdn.ApiClient(configuration) as api_client: orchestration_id = 'orch_abc123def456789012345678901234' # str | Orchestration identifier for aggregated async tool executions try: - # Get Orchestration Status + # Get Tool Orchestration Status (Async Tool Polling) api_response = api_instance.get_ai_orchestration_status(organisation, orchestration_id) print("The response of AIToolsApi->get_ai_orchestration_status:\n") pprint(api_response) diff --git a/docs/AIMonitoringApi.md b/docs/AIUsageApi.md similarity index 63% rename from docs/AIMonitoringApi.md rename to docs/AIUsageApi.md index 0e7e8bea..e1b7e6a0 100644 --- a/docs/AIMonitoringApi.md +++ b/docs/AIUsageApi.md @@ -1,16 +1,16 @@ -# quantcdn.AIMonitoringApi +# quantcdn.AIUsageApi All URIs are relative to *https://dashboard.quantcdn.io* Method | HTTP request | Description ------------- | ------------- | ------------- -[**get_ai_usage_stats**](AIMonitoringApi.md#get_ai_usage_stats) | **GET** /api/v3/organizations/{organisation}/ai/usage | Get AI usage statistics +[**get_my_usage**](AIUsageApi.md#get_my_usage) | **GET** /api/v3/organizations/{organisation}/ai/usage/me | Get AI usage summary for the authenticated user -# **get_ai_usage_stats** -> GetAIUsageStats200Response get_ai_usage_stats(organisation, month=month) +# **get_my_usage** +> GetMyUsage200Response get_my_usage(organisation) -Get AI usage statistics +Get AI usage summary for the authenticated user ### Example @@ -18,7 +18,7 @@ Get AI usage statistics ```python import quantcdn -from quantcdn.models.get_ai_usage_stats200_response import GetAIUsageStats200Response +from quantcdn.models.get_my_usage200_response import GetMyUsage200Response from quantcdn.rest import ApiException from pprint import pprint @@ -41,17 +41,16 @@ configuration = quantcdn.Configuration( # Enter a context with an instance of the API client with quantcdn.ApiClient(configuration) as api_client: # Create an instance of the API class - api_instance = quantcdn.AIMonitoringApi(api_client) + api_instance = quantcdn.AIUsageApi(api_client) organisation = 'organisation_example' # str | The organisation ID - month = '2025-10' # str | Month to retrieve statistics for (YYYY-MM format) (optional) try: - # Get AI usage statistics - api_response = api_instance.get_ai_usage_stats(organisation, month=month) - print("The response of AIMonitoringApi->get_ai_usage_stats:\n") + # Get AI usage summary for the authenticated user + api_response = api_instance.get_my_usage(organisation) + print("The response of AIUsageApi->get_my_usage:\n") pprint(api_response) except Exception as e: - print("Exception when calling AIMonitoringApi->get_ai_usage_stats: %s\n" % e) + print("Exception when calling AIUsageApi->get_my_usage: %s\n" % e) ``` @@ -62,11 +61,10 @@ with quantcdn.ApiClient(configuration) as api_client: Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- **organisation** | **str**| The organisation ID | - **month** | **str**| Month to retrieve statistics for (YYYY-MM format) | [optional] ### Return type -[**GetAIUsageStats200Response**](GetAIUsageStats200Response.md) +[**GetMyUsage200Response**](GetMyUsage200Response.md) ### Authorization @@ -81,8 +79,9 @@ Name | Type | Description | Notes | Status code | Description | Response headers | |-------------|-------------|------------------| -**200** | Usage statistics | - | -**500** | Failed to fetch usage statistics | - | +**200** | User AI usage summary | - | +**401** | Cannot determine caller identity | - | +**500** | Failed to retrieve usage data | - | [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) diff --git a/docs/AIVectorDatabaseApi.md b/docs/AIVectorDatabaseApi.md index 9ba325ae..0a1cc4c1 100644 --- a/docs/AIVectorDatabaseApi.md +++ b/docs/AIVectorDatabaseApi.md @@ -6,8 +6,10 @@ Method | HTTP request | Description ------------- | ------------- | ------------- [**create_vector_collection**](AIVectorDatabaseApi.md#create_vector_collection) | **POST** /api/v3/organizations/{organisation}/ai/vector-db/collections | Create Vector Database Collection [**delete_vector_collection**](AIVectorDatabaseApi.md#delete_vector_collection) | **DELETE** /api/v3/organizations/{organisation}/ai/vector-db/collections/{collectionId} | Delete Collection +[**delete_vector_documents**](AIVectorDatabaseApi.md#delete_vector_documents) | **DELETE** /api/v3/organizations/{organisation}/ai/vector-db/collections/{collectionId}/documents | Delete Documents from Collection [**get_vector_collection**](AIVectorDatabaseApi.md#get_vector_collection) | **GET** /api/v3/organizations/{organisation}/ai/vector-db/collections/{collectionId} | Get Collection Details [**list_vector_collections**](AIVectorDatabaseApi.md#list_vector_collections) | **GET** /api/v3/organizations/{organisation}/ai/vector-db/collections | List Vector Database Collections +[**list_vector_documents**](AIVectorDatabaseApi.md#list_vector_documents) | **GET** /api/v3/organizations/{organisation}/ai/vector-db/collections/{collectionId}/documents | List Documents in Collection [**query_vector_collection**](AIVectorDatabaseApi.md#query_vector_collection) | **POST** /api/v3/organizations/{organisation}/ai/vector-db/collections/{collectionId}/query | Semantic Search Query [**upload_vector_documents**](AIVectorDatabaseApi.md#upload_vector_documents) | **POST** /api/v3/organizations/{organisation}/ai/vector-db/collections/{collectionId}/documents | Upload Documents to Collection @@ -104,7 +106,7 @@ Name | Type | Description | Notes [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) # **delete_vector_collection** -> DeleteVectorCollection200Response delete_vector_collection(organisation, collection_id) +> DeleteSkillCollection200Response delete_vector_collection(organisation, collection_id) Delete Collection @@ -116,7 +118,7 @@ Deletes a vector database collection and all its documents. This action cannot b ```python import quantcdn -from quantcdn.models.delete_vector_collection200_response import DeleteVectorCollection200Response +from quantcdn.models.delete_skill_collection200_response import DeleteSkillCollection200Response from quantcdn.rest import ApiException from pprint import pprint @@ -164,7 +166,7 @@ Name | Type | Description | Notes ### Return type -[**DeleteVectorCollection200Response**](DeleteVectorCollection200Response.md) +[**DeleteSkillCollection200Response**](DeleteSkillCollection200Response.md) ### Authorization @@ -186,6 +188,104 @@ Name | Type | Description | Notes [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) +# **delete_vector_documents** +> DeleteVectorDocuments200Response delete_vector_documents(organisation, collection_id, delete_vector_documents_request) + +Delete Documents from Collection + +Delete documents from a collection. Supports three deletion modes: + * + * 1. **Purge All** - Set `purgeAll: true` to delete ALL documents in the collection + * + * 2. **By Document IDs** - Provide `documentIds` array with specific document UUIDs + * + * 3. **By Metadata** - Provide `metadata` object with `field` and `values` to delete documents where the metadata field matches any of the values + * + * **Drupal Integration:** + * When using with Drupal AI Search, use metadata deletion with: + * - `field: 'drupal_entity_id'` to delete all chunks for specific entities + * - `field: 'drupal_long_id'` to delete specific chunks + +### Example + +* Bearer (JWT) Authentication (BearerAuth): + +```python +import quantcdn +from quantcdn.models.delete_vector_documents200_response import DeleteVectorDocuments200Response +from quantcdn.models.delete_vector_documents_request import DeleteVectorDocumentsRequest +from quantcdn.rest import ApiException +from pprint import pprint + +# Defining the host is optional and defaults to https://dashboard.quantcdn.io +# See configuration.py for a list of all supported configuration parameters. +configuration = quantcdn.Configuration( + host = "https://dashboard.quantcdn.io" +) + +# The client must configure the authentication and authorization parameters +# in accordance with the API server security policy. +# Examples for each auth method are provided below, use the example that +# satisfies your auth use case. + +# Configure Bearer authorization (JWT): BearerAuth +configuration = quantcdn.Configuration( + access_token = os.environ["BEARER_TOKEN"] +) + +# Enter a context with an instance of the API client +with quantcdn.ApiClient(configuration) as api_client: + # Create an instance of the API class + api_instance = quantcdn.AIVectorDatabaseApi(api_client) + organisation = 'organisation_example' # str | Organisation machine name + collection_id = 'collection_id_example' # str | Collection UUID + delete_vector_documents_request = quantcdn.DeleteVectorDocumentsRequest() # DeleteVectorDocumentsRequest | + + try: + # Delete Documents from Collection + api_response = api_instance.delete_vector_documents(organisation, collection_id, delete_vector_documents_request) + print("The response of AIVectorDatabaseApi->delete_vector_documents:\n") + pprint(api_response) + except Exception as e: + print("Exception when calling AIVectorDatabaseApi->delete_vector_documents: %s\n" % e) +``` + + + +### Parameters + + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **organisation** | **str**| Organisation machine name | + **collection_id** | **str**| Collection UUID | + **delete_vector_documents_request** | [**DeleteVectorDocumentsRequest**](DeleteVectorDocumentsRequest.md)| | + +### Return type + +[**DeleteVectorDocuments200Response**](DeleteVectorDocuments200Response.md) + +### Authorization + +[BearerAuth](../README.md#BearerAuth) + +### HTTP request headers + + - **Content-Type**: application/json + - **Accept**: application/json + +### HTTP response details + +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**200** | Documents deleted successfully | - | +**400** | Invalid request - must specify purgeAll, documentIds, or metadata | - | +**403** | Access denied | - | +**404** | Collection not found | - | +**500** | Failed to delete documents | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + # **get_vector_collection** > GetVectorCollection200Response get_vector_collection(organisation, collection_id) @@ -349,6 +449,92 @@ Name | Type | Description | Notes [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) +# **list_vector_documents** +> list_vector_documents(organisation, collection_id, key=key, limit=limit, offset=offset) + +List Documents in Collection + +Lists documents in a collection with pagination. Supports filtering by document key. + +### Example + +* Bearer (JWT) Authentication (BearerAuth): + +```python +import quantcdn +from quantcdn.rest import ApiException +from pprint import pprint + +# Defining the host is optional and defaults to https://dashboard.quantcdn.io +# See configuration.py for a list of all supported configuration parameters. +configuration = quantcdn.Configuration( + host = "https://dashboard.quantcdn.io" +) + +# The client must configure the authentication and authorization parameters +# in accordance with the API server security policy. +# Examples for each auth method are provided below, use the example that +# satisfies your auth use case. + +# Configure Bearer authorization (JWT): BearerAuth +configuration = quantcdn.Configuration( + access_token = os.environ["BEARER_TOKEN"] +) + +# Enter a context with an instance of the API client +with quantcdn.ApiClient(configuration) as api_client: + # Create an instance of the API class + api_instance = quantcdn.AIVectorDatabaseApi(api_client) + organisation = 'organisation_example' # str | + collection_id = 'collection_id_example' # str | + key = 'key_example' # str | Filter by document key (optional) + limit = 50 # int | (optional) (default to 50) + offset = 0 # int | (optional) (default to 0) + + try: + # List Documents in Collection + api_instance.list_vector_documents(organisation, collection_id, key=key, limit=limit, offset=offset) + except Exception as e: + print("Exception when calling AIVectorDatabaseApi->list_vector_documents: %s\n" % e) +``` + + + +### Parameters + + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **organisation** | **str**| | + **collection_id** | **str**| | + **key** | **str**| Filter by document key | [optional] + **limit** | **int**| | [optional] [default to 50] + **offset** | **int**| | [optional] [default to 0] + +### Return type + +void (empty response body) + +### Authorization + +[BearerAuth](../README.md#BearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: Not defined + +### HTTP response details + +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**200** | Documents retrieved successfully | - | +**403** | Access denied | - | +**404** | Collection not found | - | +**500** | Failed to list documents | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + # **query_vector_collection** > QueryVectorCollection200Response query_vector_collection(organisation, collection_id, query_vector_collection_request) diff --git a/docs/AiSearchChatRequest.md b/docs/AiSearchChatRequest.md new file mode 100644 index 00000000..c1fdb71b --- /dev/null +++ b/docs/AiSearchChatRequest.md @@ -0,0 +1,32 @@ +# AiSearchChatRequest + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**message** | **str** | | +**session_id** | **str** | | [optional] +**context_url** | **str** | | [optional] +**max_context_chunks** | **int** | | [optional] + +## Example + +```python +from quantcdn.models.ai_search_chat_request import AiSearchChatRequest + +# TODO update the JSON string below +json = "{}" +# create an instance of AiSearchChatRequest from a JSON string +ai_search_chat_request_instance = AiSearchChatRequest.from_json(json) +# print the JSON string representation of the object +print(AiSearchChatRequest.to_json()) + +# convert the object into a dict +ai_search_chat_request_dict = ai_search_chat_request_instance.to_dict() +# create an instance of AiSearchChatRequest from a dict +ai_search_chat_request_from_dict = AiSearchChatRequest.from_dict(ai_search_chat_request_dict) +``` +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/AiSearchDeletePagesRequest.md b/docs/AiSearchDeletePagesRequest.md new file mode 100644 index 00000000..cb7703ef --- /dev/null +++ b/docs/AiSearchDeletePagesRequest.md @@ -0,0 +1,30 @@ +# AiSearchDeletePagesRequest + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**urls** | **List[str]** | | [optional] +**patterns** | **List[str]** | | [optional] + +## Example + +```python +from quantcdn.models.ai_search_delete_pages_request import AiSearchDeletePagesRequest + +# TODO update the JSON string below +json = "{}" +# create an instance of AiSearchDeletePagesRequest from a JSON string +ai_search_delete_pages_request_instance = AiSearchDeletePagesRequest.from_json(json) +# print the JSON string representation of the object +print(AiSearchDeletePagesRequest.to_json()) + +# convert the object into a dict +ai_search_delete_pages_request_dict = ai_search_delete_pages_request_instance.to_dict() +# create an instance of AiSearchDeletePagesRequest from a dict +ai_search_delete_pages_request_from_dict = AiSearchDeletePagesRequest.from_dict(ai_search_delete_pages_request_dict) +``` +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/AiSearchEnableRequest.md b/docs/AiSearchEnableRequest.md new file mode 100644 index 00000000..d4d970a1 --- /dev/null +++ b/docs/AiSearchEnableRequest.md @@ -0,0 +1,30 @@ +# AiSearchEnableRequest + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**base_url** | **str** | | [optional] +**crawler_config** | **object** | | [optional] + +## Example + +```python +from quantcdn.models.ai_search_enable_request import AiSearchEnableRequest + +# TODO update the JSON string below +json = "{}" +# create an instance of AiSearchEnableRequest from a JSON string +ai_search_enable_request_instance = AiSearchEnableRequest.from_json(json) +# print the JSON string representation of the object +print(AiSearchEnableRequest.to_json()) + +# convert the object into a dict +ai_search_enable_request_dict = ai_search_enable_request_instance.to_dict() +# create an instance of AiSearchEnableRequest from a dict +ai_search_enable_request_from_dict = AiSearchEnableRequest.from_dict(ai_search_enable_request_dict) +``` +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/AiSearchIngestPagesRequest.md b/docs/AiSearchIngestPagesRequest.md new file mode 100644 index 00000000..b6cb55d9 --- /dev/null +++ b/docs/AiSearchIngestPagesRequest.md @@ -0,0 +1,30 @@ +# AiSearchIngestPagesRequest + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**job_id** | **str** | | [optional] +**pages** | [**List[AiSearchIngestPagesRequestPagesInner]**](AiSearchIngestPagesRequestPagesInner.md) | | + +## Example + +```python +from quantcdn.models.ai_search_ingest_pages_request import AiSearchIngestPagesRequest + +# TODO update the JSON string below +json = "{}" +# create an instance of AiSearchIngestPagesRequest from a JSON string +ai_search_ingest_pages_request_instance = AiSearchIngestPagesRequest.from_json(json) +# print the JSON string representation of the object +print(AiSearchIngestPagesRequest.to_json()) + +# convert the object into a dict +ai_search_ingest_pages_request_dict = ai_search_ingest_pages_request_instance.to_dict() +# create an instance of AiSearchIngestPagesRequest from a dict +ai_search_ingest_pages_request_from_dict = AiSearchIngestPagesRequest.from_dict(ai_search_ingest_pages_request_dict) +``` +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/AiSearchIngestPagesRequestPagesInner.md b/docs/AiSearchIngestPagesRequestPagesInner.md new file mode 100644 index 00000000..6382e5f7 --- /dev/null +++ b/docs/AiSearchIngestPagesRequestPagesInner.md @@ -0,0 +1,37 @@ +# AiSearchIngestPagesRequestPagesInner + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**url** | **str** | | +**title** | **str** | | +**content** | **str** | | +**content_type** | **str** | | [optional] +**fetched_at** | **str** | | [optional] +**pre_processed** | **bool** | | [optional] +**summary** | **str** | | [optional] +**tags** | **List[str]** | | [optional] +**topics** | **List[str]** | | [optional] + +## Example + +```python +from quantcdn.models.ai_search_ingest_pages_request_pages_inner import AiSearchIngestPagesRequestPagesInner + +# TODO update the JSON string below +json = "{}" +# create an instance of AiSearchIngestPagesRequestPagesInner from a JSON string +ai_search_ingest_pages_request_pages_inner_instance = AiSearchIngestPagesRequestPagesInner.from_json(json) +# print the JSON string representation of the object +print(AiSearchIngestPagesRequestPagesInner.to_json()) + +# convert the object into a dict +ai_search_ingest_pages_request_pages_inner_dict = ai_search_ingest_pages_request_pages_inner_instance.to_dict() +# create an instance of AiSearchIngestPagesRequestPagesInner from a dict +ai_search_ingest_pages_request_pages_inner_from_dict = AiSearchIngestPagesRequestPagesInner.from_dict(ai_search_ingest_pages_request_pages_inner_dict) +``` +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/AiSearchSearchRequest.md b/docs/AiSearchSearchRequest.md new file mode 100644 index 00000000..18763191 --- /dev/null +++ b/docs/AiSearchSearchRequest.md @@ -0,0 +1,31 @@ +# AiSearchSearchRequest + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**query** | **str** | | +**limit** | **int** | | [optional] +**min_score** | **float** | | [optional] + +## Example + +```python +from quantcdn.models.ai_search_search_request import AiSearchSearchRequest + +# TODO update the JSON string below +json = "{}" +# create an instance of AiSearchSearchRequest from a JSON string +ai_search_search_request_instance = AiSearchSearchRequest.from_json(json) +# print the JSON string representation of the object +print(AiSearchSearchRequest.to_json()) + +# convert the object into a dict +ai_search_search_request_dict = ai_search_search_request_instance.to_dict() +# create an instance of AiSearchSearchRequest from a dict +ai_search_search_request_from_dict = AiSearchSearchRequest.from_dict(ai_search_search_request_dict) +``` +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/AiSearchTriggerCrawlRequest.md b/docs/AiSearchTriggerCrawlRequest.md new file mode 100644 index 00000000..4bbf1f43 --- /dev/null +++ b/docs/AiSearchTriggerCrawlRequest.md @@ -0,0 +1,29 @@ +# AiSearchTriggerCrawlRequest + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**crawler_uuid** | **str** | | + +## Example + +```python +from quantcdn.models.ai_search_trigger_crawl_request import AiSearchTriggerCrawlRequest + +# TODO update the JSON string below +json = "{}" +# create an instance of AiSearchTriggerCrawlRequest from a JSON string +ai_search_trigger_crawl_request_instance = AiSearchTriggerCrawlRequest.from_json(json) +# print the JSON string representation of the object +print(AiSearchTriggerCrawlRequest.to_json()) + +# convert the object into a dict +ai_search_trigger_crawl_request_dict = ai_search_trigger_crawl_request_instance.to_dict() +# create an instance of AiSearchTriggerCrawlRequest from a dict +ai_search_trigger_crawl_request_from_dict = AiSearchTriggerCrawlRequest.from_dict(ai_search_trigger_crawl_request_dict) +``` +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/AiSearchUpdateSettingsRequest.md b/docs/AiSearchUpdateSettingsRequest.md new file mode 100644 index 00000000..47e70386 --- /dev/null +++ b/docs/AiSearchUpdateSettingsRequest.md @@ -0,0 +1,30 @@ +# AiSearchUpdateSettingsRequest + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**public_access** | **object** | | [optional] +**rate_limits** | **object** | | [optional] + +## Example + +```python +from quantcdn.models.ai_search_update_settings_request import AiSearchUpdateSettingsRequest + +# TODO update the JSON string below +json = "{}" +# create an instance of AiSearchUpdateSettingsRequest from a JSON string +ai_search_update_settings_request_instance = AiSearchUpdateSettingsRequest.from_json(json) +# print the JSON string representation of the object +print(AiSearchUpdateSettingsRequest.to_json()) + +# convert the object into a dict +ai_search_update_settings_request_dict = ai_search_update_settings_request_instance.to_dict() +# create an instance of AiSearchUpdateSettingsRequest from a dict +ai_search_update_settings_request_from_dict = AiSearchUpdateSettingsRequest.from_dict(ai_search_update_settings_request_dict) +``` +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/Application.md b/docs/Application.md index dd972eee..d1d6115f 100644 --- a/docs/Application.md +++ b/docs/Application.md @@ -9,16 +9,17 @@ Name | Type | Description | Notes **organisation** | **str** | Organisation machine name | **database** | [**ApplicationDatabase**](ApplicationDatabase.md) | | [optional] **filesystem** | [**ApplicationFilesystem**](ApplicationFilesystem.md) | | [optional] +**cache** | [**ApplicationCache**](ApplicationCache.md) | | [optional] **compose_definition** | [**Compose**](Compose.md) | | [optional] -**status** | **str** | Application status | [optional] -**deployment_information** | [**List[ApplicationDeploymentInformationInner]**](ApplicationDeploymentInformationInner.md) | Deployment history | [optional] +**status** | **str** | Application status | [optional] [readonly] +**deployment_information** | [**List[ApplicationDeploymentInformationInner]**](ApplicationDeploymentInformationInner.md) | Deployment history | [optional] [readonly] **image_reference** | [**ApplicationImageReference**](ApplicationImageReference.md) | | [optional] -**container_names** | **List[str]** | List of container names | [optional] +**container_names** | **List[str]** | List of container names | [optional] [readonly] **min_capacity** | **int** | Minimum task count for auto-scaling | [optional] **max_capacity** | **int** | Maximum task count for auto-scaling | [optional] **desired_count** | **int** | Desired task count | [optional] **running_count** | **int** | Currently running task count | [optional] -**environments** | [**List[ApplicationEnvironmentsInner]**](ApplicationEnvironmentsInner.md) | List of environments | [optional] +**environment_names** | **List[str]** | List of environment names (read-only) | [optional] [readonly] ## Example diff --git a/docs/ApplicationCache.md b/docs/ApplicationCache.md new file mode 100644 index 00000000..99da0d48 --- /dev/null +++ b/docs/ApplicationCache.md @@ -0,0 +1,32 @@ +# ApplicationCache + +Managed Valkey cache configuration + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**cache_endpoint** | **str** | Cache cluster endpoint | [optional] +**cache_identifier** | **str** | Cache cluster identifier | [optional] +**data_storage_max_gb** | **int** | Maximum cache storage in GB | [optional] + +## Example + +```python +from quantcdn.models.application_cache import ApplicationCache + +# TODO update the JSON string below +json = "{}" +# create an instance of ApplicationCache from a JSON string +application_cache_instance = ApplicationCache.from_json(json) +# print the JSON string representation of the object +print(ApplicationCache.to_json()) + +# convert the object into a dict +application_cache_dict = application_cache_instance.to_dict() +# create an instance of ApplicationCache from a dict +application_cache_from_dict = ApplicationCache.from_dict(application_cache_dict) +``` +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/ApplicationEnvironmentsInner.md b/docs/ApplicationEnvironmentsInner.md deleted file mode 100644 index f2bec76f..00000000 --- a/docs/ApplicationEnvironmentsInner.md +++ /dev/null @@ -1,32 +0,0 @@ -# ApplicationEnvironmentsInner - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**env_name** | **str** | Environment name | [optional] -**status** | **str** | Environment status | [optional] -**running_count** | **int** | Running task count | [optional] -**desired_count** | **int** | Desired task count | [optional] - -## Example - -```python -from quantcdn.models.application_environments_inner import ApplicationEnvironmentsInner - -# TODO update the JSON string below -json = "{}" -# create an instance of ApplicationEnvironmentsInner from a JSON string -application_environments_inner_instance = ApplicationEnvironmentsInner.from_json(json) -# print the JSON string representation of the object -print(ApplicationEnvironmentsInner.to_json()) - -# convert the object into a dict -application_environments_inner_dict = application_environments_inner_instance.to_dict() -# create an instance of ApplicationEnvironmentsInner from a dict -application_environments_inner_from_dict = ApplicationEnvironmentsInner.from_dict(application_environments_inner_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - diff --git a/docs/CDNMetricsApi.md b/docs/CDNMetricsApi.md new file mode 100644 index 00000000..b6b6fc2c --- /dev/null +++ b/docs/CDNMetricsApi.md @@ -0,0 +1,275 @@ +# quantcdn.CDNMetricsApi + +All URIs are relative to *https://dashboard.quantcdn.io* + +Method | HTTP request | Description +------------- | ------------- | ------------- +[**get_daily_metrics**](CDNMetricsApi.md#get_daily_metrics) | **GET** /v2/organizations/{organization}/projects/{project}/metrics/daily | Get daily metrics +[**get_hourly_metrics**](CDNMetricsApi.md#get_hourly_metrics) | **GET** /v2/organizations/{organization}/projects/{project}/metrics/hourly | Get hourly metrics +[**get_monthly_metrics**](CDNMetricsApi.md#get_monthly_metrics) | **GET** /v2/organizations/{organization}/projects/{project}/metrics/monthly | Get monthly metrics + + +# **get_daily_metrics** +> V2MetricsResponse get_daily_metrics(organization, project, domain=domain, metrics=metrics, timestamp_format=timestamp_format) + +Get daily metrics + +Returns the last 30 days of daily metrics data + +### Example + +* Bearer (JWT) Authentication (BearerAuth): + +```python +import quantcdn +from quantcdn.models.v2_metrics_response import V2MetricsResponse +from quantcdn.rest import ApiException +from pprint import pprint + +# Defining the host is optional and defaults to https://dashboard.quantcdn.io +# See configuration.py for a list of all supported configuration parameters. +configuration = quantcdn.Configuration( + host = "https://dashboard.quantcdn.io" +) + +# The client must configure the authentication and authorization parameters +# in accordance with the API server security policy. +# Examples for each auth method are provided below, use the example that +# satisfies your auth use case. + +# Configure Bearer authorization (JWT): BearerAuth +configuration = quantcdn.Configuration( + access_token = os.environ["BEARER_TOKEN"] +) + +# Enter a context with an instance of the API client +with quantcdn.ApiClient(configuration) as api_client: + # Create an instance of the API class + api_instance = quantcdn.CDNMetricsApi(api_client) + organization = 'organization_example' # str | Organization identifier + project = 'project_example' # str | Project identifier + domain = 'domain_example' # str | Filter by domain ID or domain name (optional) + metrics = ['metrics_example'] # List[str] | Metrics to return (default: hits, bytes). Use the /metrics/available endpoint to list all metrics by category. (optional) + timestamp_format = iso8601 # str | Timestamp format in response (optional) (default to iso8601) + + try: + # Get daily metrics + api_response = api_instance.get_daily_metrics(organization, project, domain=domain, metrics=metrics, timestamp_format=timestamp_format) + print("The response of CDNMetricsApi->get_daily_metrics:\n") + pprint(api_response) + except Exception as e: + print("Exception when calling CDNMetricsApi->get_daily_metrics: %s\n" % e) +``` + + + +### Parameters + + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **organization** | **str**| Organization identifier | + **project** | **str**| Project identifier | + **domain** | **str**| Filter by domain ID or domain name | [optional] + **metrics** | [**List[str]**](str.md)| Metrics to return (default: hits, bytes). Use the /metrics/available endpoint to list all metrics by category. | [optional] + **timestamp_format** | **str**| Timestamp format in response | [optional] [default to iso8601] + +### Return type + +[**V2MetricsResponse**](V2MetricsResponse.md) + +### Authorization + +[BearerAuth](../README.md#BearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + +### HTTP response details + +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**200** | Daily metrics data | - | +**400** | Invalid metric requested | - | +**404** | No domains found or domain not found | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **get_hourly_metrics** +> V2MetricsResponse get_hourly_metrics(organization, project, domain=domain, metrics=metrics, timestamp_format=timestamp_format) + +Get hourly metrics + +Returns the last hour of minute-by-minute metrics data + +### Example + +* Bearer (JWT) Authentication (BearerAuth): + +```python +import quantcdn +from quantcdn.models.v2_metrics_response import V2MetricsResponse +from quantcdn.rest import ApiException +from pprint import pprint + +# Defining the host is optional and defaults to https://dashboard.quantcdn.io +# See configuration.py for a list of all supported configuration parameters. +configuration = quantcdn.Configuration( + host = "https://dashboard.quantcdn.io" +) + +# The client must configure the authentication and authorization parameters +# in accordance with the API server security policy. +# Examples for each auth method are provided below, use the example that +# satisfies your auth use case. + +# Configure Bearer authorization (JWT): BearerAuth +configuration = quantcdn.Configuration( + access_token = os.environ["BEARER_TOKEN"] +) + +# Enter a context with an instance of the API client +with quantcdn.ApiClient(configuration) as api_client: + # Create an instance of the API class + api_instance = quantcdn.CDNMetricsApi(api_client) + organization = 'organization_example' # str | Organization identifier + project = 'project_example' # str | Project identifier + domain = 'domain_example' # str | Filter by domain ID or domain name (optional) + metrics = ['metrics_example'] # List[str] | Metrics to return (default: hits, bytes). Use the /metrics/available endpoint to list all metrics by category. (optional) + timestamp_format = iso8601 # str | Timestamp format in response (optional) (default to iso8601) + + try: + # Get hourly metrics + api_response = api_instance.get_hourly_metrics(organization, project, domain=domain, metrics=metrics, timestamp_format=timestamp_format) + print("The response of CDNMetricsApi->get_hourly_metrics:\n") + pprint(api_response) + except Exception as e: + print("Exception when calling CDNMetricsApi->get_hourly_metrics: %s\n" % e) +``` + + + +### Parameters + + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **organization** | **str**| Organization identifier | + **project** | **str**| Project identifier | + **domain** | **str**| Filter by domain ID or domain name | [optional] + **metrics** | [**List[str]**](str.md)| Metrics to return (default: hits, bytes). Use the /metrics/available endpoint to list all metrics by category. | [optional] + **timestamp_format** | **str**| Timestamp format in response | [optional] [default to iso8601] + +### Return type + +[**V2MetricsResponse**](V2MetricsResponse.md) + +### Authorization + +[BearerAuth](../README.md#BearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + +### HTTP response details + +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**200** | Hourly metrics data | - | +**400** | Invalid metric requested | - | +**404** | No domains found or domain not found | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **get_monthly_metrics** +> V2MetricsResponse get_monthly_metrics(organization, project, domain=domain, metrics=metrics, timestamp_format=timestamp_format) + +Get monthly metrics + +Returns the last 12 months of monthly metrics data + +### Example + +* Bearer (JWT) Authentication (BearerAuth): + +```python +import quantcdn +from quantcdn.models.v2_metrics_response import V2MetricsResponse +from quantcdn.rest import ApiException +from pprint import pprint + +# Defining the host is optional and defaults to https://dashboard.quantcdn.io +# See configuration.py for a list of all supported configuration parameters. +configuration = quantcdn.Configuration( + host = "https://dashboard.quantcdn.io" +) + +# The client must configure the authentication and authorization parameters +# in accordance with the API server security policy. +# Examples for each auth method are provided below, use the example that +# satisfies your auth use case. + +# Configure Bearer authorization (JWT): BearerAuth +configuration = quantcdn.Configuration( + access_token = os.environ["BEARER_TOKEN"] +) + +# Enter a context with an instance of the API client +with quantcdn.ApiClient(configuration) as api_client: + # Create an instance of the API class + api_instance = quantcdn.CDNMetricsApi(api_client) + organization = 'organization_example' # str | Organization identifier + project = 'project_example' # str | Project identifier + domain = 'domain_example' # str | Filter by domain ID or domain name (optional) + metrics = ['metrics_example'] # List[str] | Metrics to return (default: hits, bytes). Use the /metrics/available endpoint to list all metrics by category. (optional) + timestamp_format = iso8601 # str | Timestamp format in response (optional) (default to iso8601) + + try: + # Get monthly metrics + api_response = api_instance.get_monthly_metrics(organization, project, domain=domain, metrics=metrics, timestamp_format=timestamp_format) + print("The response of CDNMetricsApi->get_monthly_metrics:\n") + pprint(api_response) + except Exception as e: + print("Exception when calling CDNMetricsApi->get_monthly_metrics: %s\n" % e) +``` + + + +### Parameters + + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **organization** | **str**| Organization identifier | + **project** | **str**| Project identifier | + **domain** | **str**| Filter by domain ID or domain name | [optional] + **metrics** | [**List[str]**](str.md)| Metrics to return (default: hits, bytes). Use the /metrics/available endpoint to list all metrics by category. | [optional] + **timestamp_format** | **str**| Timestamp format in response | [optional] [default to iso8601] + +### Return type + +[**V2MetricsResponse**](V2MetricsResponse.md) + +### Authorization + +[BearerAuth](../README.md#BearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + +### HTTP response details + +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**200** | Monthly metrics data | - | +**400** | Invalid metric requested | - | +**404** | No domains found or domain not found | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + diff --git a/docs/ChatInference200ResponseUsage.md b/docs/ChatInference200ResponseUsage.md index a2b1d070..76256759 100644 --- a/docs/ChatInference200ResponseUsage.md +++ b/docs/ChatInference200ResponseUsage.md @@ -1,6 +1,6 @@ # ChatInference200ResponseUsage -Token usage information +Token usage and cost for this inference call ## Properties @@ -9,6 +9,7 @@ Name | Type | Description | Notes **input_tokens** | **int** | Number of input tokens | [optional] **output_tokens** | **int** | Number of output tokens | [optional] **total_tokens** | **int** | Total tokens consumed | [optional] +**cost_cents** | **float** | Cost of this inference call in US cents | [optional] ## Example diff --git a/docs/ChatInferenceRequest.md b/docs/ChatInferenceRequest.md index fb5bcdd0..3f6e31d3 100644 --- a/docs/ChatInferenceRequest.md +++ b/docs/ChatInferenceRequest.md @@ -17,6 +17,9 @@ Name | Type | Description | Notes **tool_config** | [**ChatInferenceRequestToolConfig**](ChatInferenceRequestToolConfig.md) | | [optional] **session_id** | **str** | Optional session ID for conversation continuity. Omit to use stateless mode, include to continue an existing session. | [optional] **var_async** | **bool** | Enable async/durable execution mode. When true, returns 202 with pollUrl instead of waiting for completion. Use for long-running inference, client-executed tools, or operations >30 seconds. | [optional] [default to False] +**allowed_tools** | **List[str]** | Top-level convenience alias for toolConfig.allowedTools. Whitelists which tools can be auto-executed. | [optional] +**guardrails** | [**ChatInferenceRequestGuardrails**](ChatInferenceRequestGuardrails.md) | | [optional] +**long_context** | **bool** | Enable 1M context window support regardless of token estimation. Use when sending large payloads (>200K tokens). | [optional] [default to False] ## Example diff --git a/docs/ChatInferenceRequestGuardrails.md b/docs/ChatInferenceRequestGuardrails.md new file mode 100644 index 00000000..9eb42c9d --- /dev/null +++ b/docs/ChatInferenceRequestGuardrails.md @@ -0,0 +1,32 @@ +# ChatInferenceRequestGuardrails + +AWS Bedrock guardrails configuration for content filtering and safety. + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**guardrail_identifier** | **str** | Guardrail identifier from AWS Bedrock | [optional] +**guardrail_version** | **str** | Guardrail version | [optional] +**trace** | **str** | Enable guardrail trace output | [optional] + +## Example + +```python +from quantcdn.models.chat_inference_request_guardrails import ChatInferenceRequestGuardrails + +# TODO update the JSON string below +json = "{}" +# create an instance of ChatInferenceRequestGuardrails from a JSON string +chat_inference_request_guardrails_instance = ChatInferenceRequestGuardrails.from_json(json) +# print the JSON string representation of the object +print(ChatInferenceRequestGuardrails.to_json()) + +# convert the object into a dict +chat_inference_request_guardrails_dict = chat_inference_request_guardrails_instance.to_dict() +# create an instance of ChatInferenceRequestGuardrails from a dict +chat_inference_request_guardrails_from_dict = ChatInferenceRequestGuardrails.from_dict(chat_inference_request_guardrails_dict) +``` +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/ChatInferenceStreamRequest.md b/docs/ChatInferenceStreamRequest.md index 79263276..1ccbcbac 100644 --- a/docs/ChatInferenceStreamRequest.md +++ b/docs/ChatInferenceStreamRequest.md @@ -16,6 +16,9 @@ Name | Type | Description | Notes **tool_config** | [**ChatInferenceRequestToolConfig**](ChatInferenceRequestToolConfig.md) | | [optional] **session_id** | **str** | Optional session ID for conversation continuity. Omit to use stateless mode, include to continue an existing session. | [optional] **var_async** | **bool** | Enable async/durable execution mode. When true, returns 202 with pollUrl instead of streaming. Use for long-running inference, client-executed tools, or operations >30 seconds. | [optional] [default to False] +**allowed_tools** | **List[str]** | Top-level convenience alias for toolConfig.allowedTools. Whitelists which tools can be auto-executed. | [optional] +**guardrails** | [**ChatInferenceRequestGuardrails**](ChatInferenceRequestGuardrails.md) | | [optional] +**long_context** | **bool** | Enable 1M context window support regardless of token estimation. Use when sending large payloads (>200K tokens). | [optional] [default to False] ## Example diff --git a/docs/ChatWithAIAgent200ResponseResponseUsage.md b/docs/ChatWithAIAgent200ResponseResponseUsage.md index 4e735ee1..d069bef2 100644 --- a/docs/ChatWithAIAgent200ResponseResponseUsage.md +++ b/docs/ChatWithAIAgent200ResponseResponseUsage.md @@ -7,6 +7,8 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **input_tokens** | **int** | | [optional] **output_tokens** | **int** | | [optional] +**total_tokens** | **int** | | [optional] +**cost_cents** | **float** | Cost of this inference call in US cents | [optional] ## Example diff --git a/docs/ChatWithAIAgentRequest.md b/docs/ChatWithAIAgentRequest.md index 1a432ec1..eaa250e8 100644 --- a/docs/ChatWithAIAgentRequest.md +++ b/docs/ChatWithAIAgentRequest.md @@ -11,6 +11,9 @@ Name | Type | Description | Notes **stream** | **bool** | Whether to stream the response (SSE) | [optional] [default to False] **var_async** | **bool** | Enable async/durable execution mode. When true, returns 202 with pollUrl. Use for long-running agent tasks. | [optional] [default to False] **system** | **str** | Optional additional system prompt (appended to agent's configured prompt) | [optional] +**long_context** | **bool** | Per-request override to force 1M context window routing | [optional] [default to False] +**max_tool_iterations** | **int** | Maximum tool auto-execution iterations for this request | [optional] +**allowed_collections** | **List[str]** | Per-request override for vector DB collections the agent can query | [optional] ## Example diff --git a/docs/Compose.md b/docs/Compose.md index 092f09e8..d770f2f8 100644 --- a/docs/Compose.md +++ b/docs/Compose.md @@ -11,6 +11,8 @@ Name | Type | Description | Notes **task_memory** | **int** | Task-level memory in MB | [optional] **min_capacity** | **int** | Minimum number of instances | [optional] **max_capacity** | **int** | Maximum number of instances | [optional] +**single_task_only** | **bool** | Optional. Forces single-task mode for data-safe applications (max one running task). When true: capacity is locked to 1. When false: explicitly allows scaling. When omitted: the platform auto-detects stateful containers and enables single-task mode if found. | [optional] +**startup_grace_period_seconds** | **int** | Optional. Seconds the load balancer waits after a task starts before an unhealthy health check can replace it (applied as the ECS service's healthCheckGracePeriodSeconds when a load balancer is attached). Raise for apps that are slow to boot, e.g. run migrations on startup. Tasks that become healthy sooner still enter service immediately. Defaults to 120 when omitted. | [optional] [default to 120] **spot_configuration** | [**SpotConfiguration**](SpotConfiguration.md) | | [optional] **enable_cross_env_networking** | **bool** | Optional. Enable cross-environment networking within the same application. When false (default): Uses shared security group for complete isolation (most secure). When true: Uses app-specific security group to enable communication between environments of the same application (e.g., staging can connect to production database). Note: If enableCrossAppNetworking is true, this setting is overridden. | [optional] [default to False] **enable_cross_app_networking** | **bool** | Optional. Enable cross-application networking within the same organization. When false (default): Uses shared/app-specific security group based on enableCrossEnvNetworking. When true: Uses org-specific security group to enable container-to-container communication with ALL applications in the same organization via service discovery (microservices architecture). This setting takes priority over enableCrossEnvNetworking. | [optional] [default to False] diff --git a/docs/ContainerOriginProtectionConfig.md b/docs/ContainerOriginProtectionConfig.md index f67d8bbe..2fb2e7b8 100644 --- a/docs/ContainerOriginProtectionConfig.md +++ b/docs/ContainerOriginProtectionConfig.md @@ -8,6 +8,7 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **enabled** | **bool** | Whether origin protection is enabled. Defaults to true if this config object is provided. | [optional] [default to True] **ip_allow** | **List[str]** | List of IP addresses or CIDR ranges that can bypass origin protection for direct access (e.g., VPN IPs) | [optional] +**redirect_host** | **str** | Optional bare host (e.g. www.example.com). When set, requests denied by origin protection are 302-redirected to https://<redirectHost> with path and query preserved, instead of receiving a 403. Allowed IPs and valid-header (CDN) traffic are unaffected. | [optional] ## Example diff --git a/docs/CreateAIAgentRequest.md b/docs/CreateAIAgentRequest.md index 1a0b60f3..7330f22b 100644 --- a/docs/CreateAIAgentRequest.md +++ b/docs/CreateAIAgentRequest.md @@ -14,7 +14,11 @@ Name | Type | Description | Notes **max_tokens** | **int** | | [optional] **allowed_tools** | **List[str]** | | [optional] **allowed_collections** | **List[str]** | | [optional] +**assigned_skills** | **List[str]** | Skill IDs to assign to this agent | [optional] **created_by** | **str** | User identifier who created the agent | [optional] +**long_context** | **bool** | Enable 1M context window support | [optional] +**guardrail_preset** | **str** | Guardrail preset name | [optional] +**filter_policies** | **List[str]** | Filter policy IDs to apply to this agent's inference requests | [optional] ## Example diff --git a/docs/CreateCustomTool201Response.md b/docs/CreateCustomTool201Response.md index f2f4100a..1ec692de 100644 --- a/docs/CreateCustomTool201Response.md +++ b/docs/CreateCustomTool201Response.md @@ -7,6 +7,9 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **success** | **bool** | | [optional] **tool** | **object** | | [optional] +**edge_function_url** | **str** | Computed edge function URL (read-only) | [optional] +**edge_function_code** | **str** | The deployed edge function code | [optional] +**is_update** | **bool** | Whether this was an update to an existing tool | [optional] **message** | **str** | | [optional] ## Example diff --git a/docs/CreateCustomToolRequest.md b/docs/CreateCustomToolRequest.md index 131580e0..40e3123f 100644 --- a/docs/CreateCustomToolRequest.md +++ b/docs/CreateCustomToolRequest.md @@ -7,10 +7,14 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **name** | **str** | Unique tool name (alphanumeric and underscores only) | **description** | **str** | Human-readable description of what the tool does | -**edge_function_url** | **str** | HTTPS URL of the edge function | -**input_schema** | **object** | JSON Schema defining the tool's input parameters | +**edge_function_code** | **str** | JavaScript source code for the edge function | +**input_schema** | **str** | JSON-encoded JSON Schema object defining the tool's input parameters | **is_async** | **bool** | Whether this tool runs asynchronously (>5 seconds) | [optional] [default to False] **timeout_seconds** | **int** | Tool execution timeout | [optional] [default to 30] +**output_schema** | **str** | JSON-encoded JSON Schema object defining the tool's output structure | [optional] +**output_schema_description** | **str** | Human-readable description of the tool's output | [optional] +**category** | **str** | Category to group related tools | [optional] +**response_mode** | **str** | How the tool response is handled: llm (passed back to model) or direct (returned to user) | [optional] ## Example diff --git a/docs/CreateEnvironmentRequest.md b/docs/CreateEnvironmentRequest.md index a84cb4b7..eddac670 100644 --- a/docs/CreateEnvironmentRequest.md +++ b/docs/CreateEnvironmentRequest.md @@ -8,6 +8,8 @@ Name | Type | Description | Notes **env_name** | **str** | Environment name (e.g., 'staging', 'development') | **min_capacity** | **int** | Minimum number of instances | [optional] **max_capacity** | **int** | Maximum number of instances | [optional] +**single_task_only** | **bool** | Optional. Forces single-task mode (max one running task). When omitted, the platform auto-detects stateful containers. | [optional] +**startup_grace_period_seconds** | **int** | Optional. Seconds the load balancer waits after a task starts before an unhealthy health check can replace it. If not set, the value from composeDefinition (or default 120) is used. | [optional] [default to 120] **clone_configuration_from** | **str** | Clone configuration from an existing environment | [optional] **compose_definition** | [**Compose**](Compose.md) | | [optional] **image_suffix** | **str** | Optional image tag suffix for cloning | [optional] diff --git a/docs/CreateFilterPolicyRequest.md b/docs/CreateFilterPolicyRequest.md new file mode 100644 index 00000000..28995009 --- /dev/null +++ b/docs/CreateFilterPolicyRequest.md @@ -0,0 +1,32 @@ +# CreateFilterPolicyRequest + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**name** | **str** | | +**description** | **str** | | [optional] +**enabled** | **bool** | | [optional] +**rules** | [**List[CreateFilterPolicyRequestRulesInner]**](CreateFilterPolicyRequestRulesInner.md) | | + +## Example + +```python +from quantcdn.models.create_filter_policy_request import CreateFilterPolicyRequest + +# TODO update the JSON string below +json = "{}" +# create an instance of CreateFilterPolicyRequest from a JSON string +create_filter_policy_request_instance = CreateFilterPolicyRequest.from_json(json) +# print the JSON string representation of the object +print(CreateFilterPolicyRequest.to_json()) + +# convert the object into a dict +create_filter_policy_request_dict = create_filter_policy_request_instance.to_dict() +# create an instance of CreateFilterPolicyRequest from a dict +create_filter_policy_request_from_dict = CreateFilterPolicyRequest.from_dict(create_filter_policy_request_dict) +``` +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/CreateFilterPolicyRequestRulesInner.md b/docs/CreateFilterPolicyRequestRulesInner.md new file mode 100644 index 00000000..f0881eaa --- /dev/null +++ b/docs/CreateFilterPolicyRequestRulesInner.md @@ -0,0 +1,32 @@ +# CreateFilterPolicyRequestRulesInner + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**name** | **str** | | [optional] +**match** | [**CreateFilterPolicyRequestRulesInnerMatch**](CreateFilterPolicyRequestRulesInnerMatch.md) | | [optional] +**action** | **str** | | [optional] +**apply_to** | **str** | | [optional] + +## Example + +```python +from quantcdn.models.create_filter_policy_request_rules_inner import CreateFilterPolicyRequestRulesInner + +# TODO update the JSON string below +json = "{}" +# create an instance of CreateFilterPolicyRequestRulesInner from a JSON string +create_filter_policy_request_rules_inner_instance = CreateFilterPolicyRequestRulesInner.from_json(json) +# print the JSON string representation of the object +print(CreateFilterPolicyRequestRulesInner.to_json()) + +# convert the object into a dict +create_filter_policy_request_rules_inner_dict = create_filter_policy_request_rules_inner_instance.to_dict() +# create an instance of CreateFilterPolicyRequestRulesInner from a dict +create_filter_policy_request_rules_inner_from_dict = CreateFilterPolicyRequestRulesInner.from_dict(create_filter_policy_request_rules_inner_dict) +``` +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/CreateFilterPolicyRequestRulesInnerMatch.md b/docs/CreateFilterPolicyRequestRulesInnerMatch.md new file mode 100644 index 00000000..51cb46dc --- /dev/null +++ b/docs/CreateFilterPolicyRequestRulesInnerMatch.md @@ -0,0 +1,32 @@ +# CreateFilterPolicyRequestRulesInnerMatch + +Match criteria + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**type** | **str** | | [optional] +**values** | **List[str]** | Required when type=word | [optional] +**pattern** | **str** | Required when type=regex | [optional] + +## Example + +```python +from quantcdn.models.create_filter_policy_request_rules_inner_match import CreateFilterPolicyRequestRulesInnerMatch + +# TODO update the JSON string below +json = "{}" +# create an instance of CreateFilterPolicyRequestRulesInnerMatch from a JSON string +create_filter_policy_request_rules_inner_match_instance = CreateFilterPolicyRequestRulesInnerMatch.from_json(json) +# print the JSON string representation of the object +print(CreateFilterPolicyRequestRulesInnerMatch.to_json()) + +# convert the object into a dict +create_filter_policy_request_rules_inner_match_dict = create_filter_policy_request_rules_inner_match_instance.to_dict() +# create an instance of CreateFilterPolicyRequestRulesInnerMatch from a dict +create_filter_policy_request_rules_inner_match_from_dict = CreateFilterPolicyRequestRulesInnerMatch.from_dict(create_filter_policy_request_rules_inner_match_dict) +``` +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/CreateOrchestrationRequest.md b/docs/CreateOrchestrationRequest.md new file mode 100644 index 00000000..508cc84e --- /dev/null +++ b/docs/CreateOrchestrationRequest.md @@ -0,0 +1,40 @@ +# CreateOrchestrationRequest + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**name** | **str** | Orchestration name | +**description** | **str** | Optional description | [optional] +**agent_id** | **str** | Agent to process items | [optional] +**tool_id** | **str** | Tool to execute for items | [optional] +**workflow_id** | **str** | Workflow to run for items | [optional] +**input_source** | [**CreateOrchestrationRequestInputSource**](CreateOrchestrationRequestInputSource.md) | | +**batch_size** | **int** | Items per batch | [optional] [default to 10] +**concurrency** | **int** | Concurrent items within a batch | [optional] [default to 1] +**stop_condition** | [**CreateOrchestrationRequestStopCondition**](CreateOrchestrationRequestStopCondition.md) | | [optional] +**assigned_skills** | **List[str]** | Skill IDs to assign | [optional] +**context** | **object** | Optional context merged into each item before processing (e.g. shared credentials or endpoints) | [optional] +**auto_start** | **bool** | Whether to start immediately | [optional] [default to True] + +## Example + +```python +from quantcdn.models.create_orchestration_request import CreateOrchestrationRequest + +# TODO update the JSON string below +json = "{}" +# create an instance of CreateOrchestrationRequest from a JSON string +create_orchestration_request_instance = CreateOrchestrationRequest.from_json(json) +# print the JSON string representation of the object +print(CreateOrchestrationRequest.to_json()) + +# convert the object into a dict +create_orchestration_request_dict = create_orchestration_request_instance.to_dict() +# create an instance of CreateOrchestrationRequest from a dict +create_orchestration_request_from_dict = CreateOrchestrationRequest.from_dict(create_orchestration_request_dict) +``` +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/CreateOrchestrationRequestInputSource.md b/docs/CreateOrchestrationRequestInputSource.md new file mode 100644 index 00000000..4dd82ad1 --- /dev/null +++ b/docs/CreateOrchestrationRequestInputSource.md @@ -0,0 +1,32 @@ +# CreateOrchestrationRequestInputSource + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**type** | **str** | Input source type (api type not yet supported) | +**items** | **List[object]** | Static items (for type=static) | [optional] +**task_query** | **object** | Task query filters (for type=task_query) | [optional] +**generator_prompt** | **str** | AI prompt (for type=generator) | [optional] + +## Example + +```python +from quantcdn.models.create_orchestration_request_input_source import CreateOrchestrationRequestInputSource + +# TODO update the JSON string below +json = "{}" +# create an instance of CreateOrchestrationRequestInputSource from a JSON string +create_orchestration_request_input_source_instance = CreateOrchestrationRequestInputSource.from_json(json) +# print the JSON string representation of the object +print(CreateOrchestrationRequestInputSource.to_json()) + +# convert the object into a dict +create_orchestration_request_input_source_dict = create_orchestration_request_input_source_instance.to_dict() +# create an instance of CreateOrchestrationRequestInputSource from a dict +create_orchestration_request_input_source_from_dict = CreateOrchestrationRequestInputSource.from_dict(create_orchestration_request_input_source_dict) +``` +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/CreateOrchestrationRequestStopCondition.md b/docs/CreateOrchestrationRequestStopCondition.md new file mode 100644 index 00000000..f03784a0 --- /dev/null +++ b/docs/CreateOrchestrationRequestStopCondition.md @@ -0,0 +1,31 @@ +# CreateOrchestrationRequestStopCondition + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**type** | **str** | | [optional] [default to 'all_complete'] +**max_iterations** | **int** | Max iterations (for type=max_iterations) | [optional] +**condition_prompt** | **str** | AI prompt to evaluate stop (for type=condition) | [optional] + +## Example + +```python +from quantcdn.models.create_orchestration_request_stop_condition import CreateOrchestrationRequestStopCondition + +# TODO update the JSON string below +json = "{}" +# create an instance of CreateOrchestrationRequestStopCondition from a JSON string +create_orchestration_request_stop_condition_instance = CreateOrchestrationRequestStopCondition.from_json(json) +# print the JSON string representation of the object +print(CreateOrchestrationRequestStopCondition.to_json()) + +# convert the object into a dict +create_orchestration_request_stop_condition_dict = create_orchestration_request_stop_condition_instance.to_dict() +# create an instance of CreateOrchestrationRequestStopCondition from a dict +create_orchestration_request_stop_condition_from_dict = CreateOrchestrationRequestStopCondition.from_dict(create_orchestration_request_stop_condition_dict) +``` +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/CreateSkill201Response.md b/docs/CreateSkill201Response.md new file mode 100644 index 00000000..a698fe47 --- /dev/null +++ b/docs/CreateSkill201Response.md @@ -0,0 +1,31 @@ +# CreateSkill201Response + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**success** | **bool** | | [optional] +**skill** | **object** | | [optional] +**message** | **str** | | [optional] + +## Example + +```python +from quantcdn.models.create_skill201_response import CreateSkill201Response + +# TODO update the JSON string below +json = "{}" +# create an instance of CreateSkill201Response from a JSON string +create_skill201_response_instance = CreateSkill201Response.from_json(json) +# print the JSON string representation of the object +print(CreateSkill201Response.to_json()) + +# convert the object into a dict +create_skill201_response_dict = create_skill201_response_instance.to_dict() +# create an instance of CreateSkill201Response from a dict +create_skill201_response_from_dict = CreateSkill201Response.from_dict(create_skill201_response_dict) +``` +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/CreateSkillRequest.md b/docs/CreateSkillRequest.md new file mode 100644 index 00000000..ab328a99 --- /dev/null +++ b/docs/CreateSkillRequest.md @@ -0,0 +1,39 @@ +# CreateSkillRequest + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**name** | **str** | | +**description** | **str** | | [optional] +**content** | **str** | | +**trigger_condition** | **str** | | +**tags** | **List[str]** | | [optional] +**required_tools** | **List[str]** | | [optional] +**namespace** | **str** | | [optional] +**files** | **object** | | [optional] +**disable_model_invocation** | **bool** | | [optional] +**allowed_tools** | **List[str]** | | [optional] +**installed_by** | **str** | | [optional] + +## Example + +```python +from quantcdn.models.create_skill_request import CreateSkillRequest + +# TODO update the JSON string below +json = "{}" +# create an instance of CreateSkillRequest from a JSON string +create_skill_request_instance = CreateSkillRequest.from_json(json) +# print the JSON string representation of the object +print(CreateSkillRequest.to_json()) + +# convert the object into a dict +create_skill_request_dict = create_skill_request_instance.to_dict() +# create an instance of CreateSkillRequest from a dict +create_skill_request_from_dict = CreateSkillRequest.from_dict(create_skill_request_dict) +``` +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/CreateSlackBot201Response.md b/docs/CreateSlackBot201Response.md new file mode 100644 index 00000000..ff653992 --- /dev/null +++ b/docs/CreateSlackBot201Response.md @@ -0,0 +1,29 @@ +# CreateSlackBot201Response + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**bot** | **object** | | [optional] + +## Example + +```python +from quantcdn.models.create_slack_bot201_response import CreateSlackBot201Response + +# TODO update the JSON string below +json = "{}" +# create an instance of CreateSlackBot201Response from a JSON string +create_slack_bot201_response_instance = CreateSlackBot201Response.from_json(json) +# print the JSON string representation of the object +print(CreateSlackBot201Response.to_json()) + +# convert the object into a dict +create_slack_bot201_response_dict = create_slack_bot201_response_instance.to_dict() +# create an instance of CreateSlackBot201Response from a dict +create_slack_bot201_response_from_dict = CreateSlackBot201Response.from_dict(create_slack_bot201_response_dict) +``` +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/CreateSlackBotRequest.md b/docs/CreateSlackBotRequest.md new file mode 100644 index 00000000..800e99f1 --- /dev/null +++ b/docs/CreateSlackBotRequest.md @@ -0,0 +1,50 @@ +# CreateSlackBotRequest + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**name** | **str** | Display name for the bot | +**setup_type** | **str** | Whether to use Quant-managed or customer-provided Slack app | +**system_prompt** | **str** | System prompt for the backing AI agent | +**model_id** | **str** | AI model identifier | +**temperature** | **float** | Sampling temperature | [optional] +**max_tokens** | **int** | Maximum response tokens | [optional] +**allowed_tools** | **List[str]** | Tools the agent may use | [optional] +**assigned_skills** | **List[str]** | Skills assigned to the agent | [optional] +**allowed_collections** | **List[str]** | Vector DB collections the agent may query | [optional] +**allowed_sub_agents** | **List[str]** | Sub-agents the agent may call | [optional] +**guardrail_preset** | **str** | Guardrail preset name | [optional] +**filter_policies** | **List[str]** | Content filter policies | [optional] +**long_context** | **bool** | Enable long context mode | [optional] +**session_ttl_days** | **int** | Session TTL in days | [optional] +**allowed_channels** | **List[str]** | Slack channel IDs the bot may respond in | [optional] +**allowed_users** | **List[str]** | Slack user IDs allowed to interact with the bot | [optional] +**denied_users** | **List[str]** | Slack user IDs denied from interacting with the bot | [optional] +**allow_guests** | **bool** | Whether guest users may interact with the bot | [optional] +**home_tab_content** | **str** | Content shown on the bot's Home tab in Slack | [optional] +**agent_access_control** | **object** | Agent-level access control settings | [optional] +**keywords_enabled** | **bool** | Whether keyword triggers are enabled | [optional] +**keywords** | **List[str]** | Keywords that trigger the bot | [optional] + +## Example + +```python +from quantcdn.models.create_slack_bot_request import CreateSlackBotRequest + +# TODO update the JSON string below +json = "{}" +# create an instance of CreateSlackBotRequest from a JSON string +create_slack_bot_request_instance = CreateSlackBotRequest.from_json(json) +# print the JSON string representation of the object +print(CreateSlackBotRequest.to_json()) + +# convert the object into a dict +create_slack_bot_request_dict = create_slack_bot_request_instance.to_dict() +# create an instance of CreateSlackBotRequest from a dict +create_slack_bot_request_from_dict = CreateSlackBotRequest.from_dict(create_slack_bot_request_dict) +``` +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/CreateVectorCollectionRequest.md b/docs/CreateVectorCollectionRequest.md index 1c8e80f0..98ec2065 100644 --- a/docs/CreateVectorCollectionRequest.md +++ b/docs/CreateVectorCollectionRequest.md @@ -7,7 +7,7 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **name** | **str** | Collection name (used for reference) | **description** | **str** | | [optional] -**embedding_model** | **str** | Embedding model to use (default: amazon.titan-embed-text-v2:0) | [optional] +**embedding_model** | **str** | Embedding model to use. Supported: amazon.titan-embed-text-v2:0, cohere.embed-english-v3, cohere.embed-multilingual-v3 | **dimensions** | **int** | Embedding dimensions (default: 1024) | [optional] ## Example diff --git a/docs/Cron.md b/docs/Cron.md index c4072912..80a7c4fe 100644 --- a/docs/Cron.md +++ b/docs/Cron.md @@ -6,8 +6,11 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **name** | **str** | | [optional] -**schedule** | **str** | | [optional] -**command** | **str** | | [optional] +**description** | **str** | | [optional] +**schedule_expression** | **str** | | [optional] +**command** | **List[str]** | | [optional] +**target_container_name** | **str** | | [optional] +**is_enabled** | **bool** | | [optional] ## Example diff --git a/docs/DeleteAgentOverlay200Response.md b/docs/DeleteAgentOverlay200Response.md new file mode 100644 index 00000000..1877496b --- /dev/null +++ b/docs/DeleteAgentOverlay200Response.md @@ -0,0 +1,30 @@ +# DeleteAgentOverlay200Response + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**success** | **bool** | | [optional] +**message** | **str** | | [optional] + +## Example + +```python +from quantcdn.models.delete_agent_overlay200_response import DeleteAgentOverlay200Response + +# TODO update the JSON string below +json = "{}" +# create an instance of DeleteAgentOverlay200Response from a JSON string +delete_agent_overlay200_response_instance = DeleteAgentOverlay200Response.from_json(json) +# print the JSON string representation of the object +print(DeleteAgentOverlay200Response.to_json()) + +# convert the object into a dict +delete_agent_overlay200_response_dict = delete_agent_overlay200_response_instance.to_dict() +# create an instance of DeleteAgentOverlay200Response from a dict +delete_agent_overlay200_response_from_dict = DeleteAgentOverlay200Response.from_dict(delete_agent_overlay200_response_dict) +``` +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/DeleteSkill200Response.md b/docs/DeleteSkill200Response.md new file mode 100644 index 00000000..458721da --- /dev/null +++ b/docs/DeleteSkill200Response.md @@ -0,0 +1,30 @@ +# DeleteSkill200Response + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**success** | **bool** | | [optional] +**message** | **str** | | [optional] + +## Example + +```python +from quantcdn.models.delete_skill200_response import DeleteSkill200Response + +# TODO update the JSON string below +json = "{}" +# create an instance of DeleteSkill200Response from a JSON string +delete_skill200_response_instance = DeleteSkill200Response.from_json(json) +# print the JSON string representation of the object +print(DeleteSkill200Response.to_json()) + +# convert the object into a dict +delete_skill200_response_dict = delete_skill200_response_instance.to_dict() +# create an instance of DeleteSkill200Response from a dict +delete_skill200_response_from_dict = DeleteSkill200Response.from_dict(delete_skill200_response_dict) +``` +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/DeleteSkillCollection200Response.md b/docs/DeleteSkillCollection200Response.md new file mode 100644 index 00000000..3f33edd2 --- /dev/null +++ b/docs/DeleteSkillCollection200Response.md @@ -0,0 +1,30 @@ +# DeleteSkillCollection200Response + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**success** | **bool** | | [optional] +**message** | **str** | | [optional] + +## Example + +```python +from quantcdn.models.delete_skill_collection200_response import DeleteSkillCollection200Response + +# TODO update the JSON string below +json = "{}" +# create an instance of DeleteSkillCollection200Response from a JSON string +delete_skill_collection200_response_instance = DeleteSkillCollection200Response.from_json(json) +# print the JSON string representation of the object +print(DeleteSkillCollection200Response.to_json()) + +# convert the object into a dict +delete_skill_collection200_response_dict = delete_skill_collection200_response_instance.to_dict() +# create an instance of DeleteSkillCollection200Response from a dict +delete_skill_collection200_response_from_dict = DeleteSkillCollection200Response.from_dict(delete_skill_collection200_response_dict) +``` +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/DeleteSlackBot200Response.md b/docs/DeleteSlackBot200Response.md new file mode 100644 index 00000000..275a16c6 --- /dev/null +++ b/docs/DeleteSlackBot200Response.md @@ -0,0 +1,30 @@ +# DeleteSlackBot200Response + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**success** | **bool** | | [optional] +**message** | **str** | | [optional] + +## Example + +```python +from quantcdn.models.delete_slack_bot200_response import DeleteSlackBot200Response + +# TODO update the JSON string below +json = "{}" +# create an instance of DeleteSlackBot200Response from a JSON string +delete_slack_bot200_response_instance = DeleteSlackBot200Response.from_json(json) +# print the JSON string representation of the object +print(DeleteSlackBot200Response.to_json()) + +# convert the object into a dict +delete_slack_bot200_response_dict = delete_slack_bot200_response_instance.to_dict() +# create an instance of DeleteSlackBot200Response from a dict +delete_slack_bot200_response_from_dict = DeleteSlackBot200Response.from_dict(delete_slack_bot200_response_dict) +``` +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/DeleteVectorCollection200Response.md b/docs/DeleteVectorCollection200Response.md deleted file mode 100644 index 038c7146..00000000 --- a/docs/DeleteVectorCollection200Response.md +++ /dev/null @@ -1,30 +0,0 @@ -# DeleteVectorCollection200Response - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**success** | **bool** | | [optional] -**message** | **str** | | [optional] - -## Example - -```python -from quantcdn.models.delete_vector_collection200_response import DeleteVectorCollection200Response - -# TODO update the JSON string below -json = "{}" -# create an instance of DeleteVectorCollection200Response from a JSON string -delete_vector_collection200_response_instance = DeleteVectorCollection200Response.from_json(json) -# print the JSON string representation of the object -print(DeleteVectorCollection200Response.to_json()) - -# convert the object into a dict -delete_vector_collection200_response_dict = delete_vector_collection200_response_instance.to_dict() -# create an instance of DeleteVectorCollection200Response from a dict -delete_vector_collection200_response_from_dict = DeleteVectorCollection200Response.from_dict(delete_vector_collection200_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - diff --git a/docs/DeleteVectorDocuments200Response.md b/docs/DeleteVectorDocuments200Response.md new file mode 100644 index 00000000..5ef3488e --- /dev/null +++ b/docs/DeleteVectorDocuments200Response.md @@ -0,0 +1,31 @@ +# DeleteVectorDocuments200Response + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**message** | **str** | | [optional] +**collection_id** | **str** | | [optional] +**deleted_count** | **int** | | [optional] + +## Example + +```python +from quantcdn.models.delete_vector_documents200_response import DeleteVectorDocuments200Response + +# TODO update the JSON string below +json = "{}" +# create an instance of DeleteVectorDocuments200Response from a JSON string +delete_vector_documents200_response_instance = DeleteVectorDocuments200Response.from_json(json) +# print the JSON string representation of the object +print(DeleteVectorDocuments200Response.to_json()) + +# convert the object into a dict +delete_vector_documents200_response_dict = delete_vector_documents200_response_instance.to_dict() +# create an instance of DeleteVectorDocuments200Response from a dict +delete_vector_documents200_response_from_dict = DeleteVectorDocuments200Response.from_dict(delete_vector_documents200_response_dict) +``` +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/DeleteVectorDocumentsRequest.md b/docs/DeleteVectorDocumentsRequest.md new file mode 100644 index 00000000..21c7cd23 --- /dev/null +++ b/docs/DeleteVectorDocumentsRequest.md @@ -0,0 +1,32 @@ +# DeleteVectorDocumentsRequest + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**purge_all** | **bool** | Delete ALL documents in collection | [optional] +**document_ids** | **List[str]** | Delete specific documents by UUID | [optional] +**keys** | **List[str]** | Delete documents by key | [optional] +**metadata** | [**DeleteVectorDocumentsRequestMetadata**](DeleteVectorDocumentsRequestMetadata.md) | | [optional] + +## Example + +```python +from quantcdn.models.delete_vector_documents_request import DeleteVectorDocumentsRequest + +# TODO update the JSON string below +json = "{}" +# create an instance of DeleteVectorDocumentsRequest from a JSON string +delete_vector_documents_request_instance = DeleteVectorDocumentsRequest.from_json(json) +# print the JSON string representation of the object +print(DeleteVectorDocumentsRequest.to_json()) + +# convert the object into a dict +delete_vector_documents_request_dict = delete_vector_documents_request_instance.to_dict() +# create an instance of DeleteVectorDocumentsRequest from a dict +delete_vector_documents_request_from_dict = DeleteVectorDocumentsRequest.from_dict(delete_vector_documents_request_dict) +``` +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/DeleteVectorDocumentsRequestMetadata.md b/docs/DeleteVectorDocumentsRequestMetadata.md new file mode 100644 index 00000000..28db80bf --- /dev/null +++ b/docs/DeleteVectorDocumentsRequestMetadata.md @@ -0,0 +1,30 @@ +# DeleteVectorDocumentsRequestMetadata + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**var_field** | **str** | Metadata field name (e.g., 'drupal_entity_id') | [optional] +**values** | **List[str]** | Values to match (OR logic) | [optional] + +## Example + +```python +from quantcdn.models.delete_vector_documents_request_metadata import DeleteVectorDocumentsRequestMetadata + +# TODO update the JSON string below +json = "{}" +# create an instance of DeleteVectorDocumentsRequestMetadata from a JSON string +delete_vector_documents_request_metadata_instance = DeleteVectorDocumentsRequestMetadata.from_json(json) +# print the JSON string representation of the object +print(DeleteVectorDocumentsRequestMetadata.to_json()) + +# convert the object into a dict +delete_vector_documents_request_metadata_dict = delete_vector_documents_request_metadata_instance.to_dict() +# create an instance of DeleteVectorDocumentsRequestMetadata from a dict +delete_vector_documents_request_metadata_from_dict = DeleteVectorDocumentsRequestMetadata.from_dict(delete_vector_documents_request_metadata_dict) +``` +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/EnvironmentResponse.md b/docs/EnvironmentResponse.md index 00799f9f..6a1419df 100644 --- a/docs/EnvironmentResponse.md +++ b/docs/EnvironmentResponse.md @@ -7,27 +7,27 @@ Environment response schema with runtime details Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **env_name** | **str** | Environment name | -**status** | **str** | Environment status | [optional] -**running_count** | **int** | Number of running tasks | [optional] -**desired_count** | **int** | Desired number of tasks | [optional] +**status** | **str** | Environment status | [optional] [readonly] +**running_count** | **int** | Number of running tasks | [optional] [readonly] +**desired_count** | **int** | Desired number of tasks | [optional] [readonly] **min_capacity** | **int** | Minimum capacity for autoscaling | [optional] **max_capacity** | **int** | Maximum capacity for autoscaling | [optional] -**public_ip_address** | **str** | Public IP address for SSH access | [optional] -**deployment_status** | **str** | Current deployment status. FAILED indicates the most recent deployment did not complete successfully. | [optional] -**deployment_failure_type** | **str** | Type of deployment failure when deploymentStatus is FAILED (e.g., 'ECS_DEPLOYMENT_CIRCUIT_BREAKER', 'IMAGE_PULL_ERROR') | [optional] -**deployment_failure_reason** | **str** | Human-readable explanation of why the deployment failed. Contains details such as wrong image architecture, missing image, or container startup errors. | [optional] -**task_definition** | **object** | ECS task definition details | [optional] -**service** | **object** | ECS service details | [optional] -**load_balancer** | **object** | Load balancer configuration | [optional] -**security_group** | **object** | Security group configuration | [optional] -**subnet** | **object** | Subnet configuration | [optional] -**vpc** | **object** | VPC configuration | [optional] -**containers** | **List[object]** | Container configurations | [optional] -**volumes** | [**List[Volume]**](Volume.md) | Persistent storage volumes | [optional] -**cron** | [**List[Cron]**](Cron.md) | Scheduled cron jobs | [optional] -**alb_routing** | **object** | ALB routing configuration | [optional] -**created_at** | **datetime** | Creation timestamp | [optional] -**updated_at** | **datetime** | Last update timestamp | [optional] +**public_ip_address** | **str** | Public IP address for SSH access | [optional] [readonly] +**deployment_status** | **str** | Current deployment status | [optional] [readonly] +**deployment_failure_type** | **str** | Type of deployment failure | [optional] [readonly] +**deployment_failure_reason** | **str** | Reason for deployment failure | [optional] [readonly] +**task_definition** | **object** | ECS task definition details | [optional] [readonly] +**service** | **object** | ECS service details | [optional] [readonly] +**load_balancer** | **object** | Load balancer configuration | [optional] [readonly] +**security_group** | **object** | Security group configuration | [optional] [readonly] +**subnet** | **object** | Subnet configuration | [optional] [readonly] +**vpc** | **object** | VPC configuration | [optional] [readonly] +**container_names** | **List[str]** | Container name list | [optional] [readonly] +**volumes** | [**List[Volume]**](Volume.md) | Persistent storage volumes | [optional] [readonly] +**cron** | [**List[Cron]**](Cron.md) | Scheduled cron jobs | [optional] [readonly] +**alb_routing** | **object** | ALB routing configuration | [optional] [readonly] +**created_at** | **datetime** | Creation timestamp | [optional] [readonly] +**updated_at** | **datetime** | Last update timestamp | [optional] [readonly] ## Example diff --git a/docs/GetAIAgent200ResponseAgent.md b/docs/GetAIAgent200ResponseAgent.md index 8944967b..77dde0a7 100644 --- a/docs/GetAIAgent200ResponseAgent.md +++ b/docs/GetAIAgent200ResponseAgent.md @@ -15,6 +15,11 @@ Name | Type | Description | Notes **max_tokens** | **int** | | [optional] **allowed_tools** | **List[str]** | | [optional] **allowed_collections** | **List[str]** | | [optional] +**assigned_skills** | **List[str]** | | [optional] +**long_context** | **bool** | Whether 1M context window is enabled | [optional] +**guardrail_preset** | **str** | Guardrail preset name | [optional] +**is_global** | **bool** | Whether this is a platform-managed global agent | [optional] +**has_overlay** | **bool** | Whether the requesting org has a per-org overlay for this global agent | [optional] **created_by** | **str** | | [optional] **created_at** | **datetime** | | [optional] **updated_at** | **datetime** | | [optional] diff --git a/docs/GetAIOrchestrationStatus200Response.md b/docs/GetAIOrchestrationStatus200Response.md index dc5132ae..27d311c0 100644 --- a/docs/GetAIOrchestrationStatus200Response.md +++ b/docs/GetAIOrchestrationStatus200Response.md @@ -9,11 +9,12 @@ Name | Type | Description | Notes **status** | **str** | Current orchestration status | **tool_count** | **int** | Total number of async tools in this orchestration | **completed_tools** | **int** | Number of tools that have completed | [optional] -**synthesized_response** | **str** | AI-synthesized response combining all tool results (only present when status=complete) | [optional] +**result** | **str** | AI-synthesized response combining all tool results (only present when status=complete) | [optional] **tools** | [**List[GetAIOrchestrationStatus200ResponseToolsInner]**](GetAIOrchestrationStatus200ResponseToolsInner.md) | Status of individual tool executions | [optional] **error** | **str** | Error message (only present when status=failed) | [optional] **created_at** | **datetime** | When orchestration was created | **completed_at** | **datetime** | When orchestration completed (if status in complete or failed) | [optional] +**duration** | **int** | Seconds from creation to completion (present only once completed) | [optional] ## Example diff --git a/docs/GetAIUsageStats200Response.md b/docs/GetAIUsageStats200Response.md deleted file mode 100644 index bc6b034a..00000000 --- a/docs/GetAIUsageStats200Response.md +++ /dev/null @@ -1,31 +0,0 @@ -# GetAIUsageStats200Response - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**total_requests** | **int** | Total number of API requests | [optional] -**total_tokens** | **int** | Total tokens consumed across all requests | [optional] -**by_model** | [**Dict[str, GetAIUsageStats200ResponseByModelValue]**](GetAIUsageStats200ResponseByModelValue.md) | Usage breakdown by model ID | [optional] - -## Example - -```python -from quantcdn.models.get_ai_usage_stats200_response import GetAIUsageStats200Response - -# TODO update the JSON string below -json = "{}" -# create an instance of GetAIUsageStats200Response from a JSON string -get_ai_usage_stats200_response_instance = GetAIUsageStats200Response.from_json(json) -# print the JSON string representation of the object -print(GetAIUsageStats200Response.to_json()) - -# convert the object into a dict -get_ai_usage_stats200_response_dict = get_ai_usage_stats200_response_instance.to_dict() -# create an instance of GetAIUsageStats200Response from a dict -get_ai_usage_stats200_response_from_dict = GetAIUsageStats200Response.from_dict(get_ai_usage_stats200_response_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - diff --git a/docs/GetAIUsageStats200ResponseByModelValue.md b/docs/GetAIUsageStats200ResponseByModelValue.md deleted file mode 100644 index 2e3781f1..00000000 --- a/docs/GetAIUsageStats200ResponseByModelValue.md +++ /dev/null @@ -1,30 +0,0 @@ -# GetAIUsageStats200ResponseByModelValue - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**requests** | **int** | Number of requests for this model | [optional] -**tokens** | **int** | Total tokens for this model | [optional] - -## Example - -```python -from quantcdn.models.get_ai_usage_stats200_response_by_model_value import GetAIUsageStats200ResponseByModelValue - -# TODO update the JSON string below -json = "{}" -# create an instance of GetAIUsageStats200ResponseByModelValue from a JSON string -get_ai_usage_stats200_response_by_model_value_instance = GetAIUsageStats200ResponseByModelValue.from_json(json) -# print the JSON string representation of the object -print(GetAIUsageStats200ResponseByModelValue.to_json()) - -# convert the object into a dict -get_ai_usage_stats200_response_by_model_value_dict = get_ai_usage_stats200_response_by_model_value_instance.to_dict() -# create an instance of GetAIUsageStats200ResponseByModelValue from a dict -get_ai_usage_stats200_response_by_model_value_from_dict = GetAIUsageStats200ResponseByModelValue.from_dict(get_ai_usage_stats200_response_by_model_value_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - diff --git a/docs/GetAgentOverlay200Response.md b/docs/GetAgentOverlay200Response.md new file mode 100644 index 00000000..9ee407a6 --- /dev/null +++ b/docs/GetAgentOverlay200Response.md @@ -0,0 +1,30 @@ +# GetAgentOverlay200Response + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**overlay** | [**GetAgentOverlay200ResponseOverlay**](GetAgentOverlay200ResponseOverlay.md) | | [optional] +**base** | [**GetAgentOverlay200ResponseBase**](GetAgentOverlay200ResponseBase.md) | | [optional] + +## Example + +```python +from quantcdn.models.get_agent_overlay200_response import GetAgentOverlay200Response + +# TODO update the JSON string below +json = "{}" +# create an instance of GetAgentOverlay200Response from a JSON string +get_agent_overlay200_response_instance = GetAgentOverlay200Response.from_json(json) +# print the JSON string representation of the object +print(GetAgentOverlay200Response.to_json()) + +# convert the object into a dict +get_agent_overlay200_response_dict = get_agent_overlay200_response_instance.to_dict() +# create an instance of GetAgentOverlay200Response from a dict +get_agent_overlay200_response_from_dict = GetAgentOverlay200Response.from_dict(get_agent_overlay200_response_dict) +``` +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/GetAgentOverlay200ResponseBase.md b/docs/GetAgentOverlay200ResponseBase.md new file mode 100644 index 00000000..9d4c9316 --- /dev/null +++ b/docs/GetAgentOverlay200ResponseBase.md @@ -0,0 +1,34 @@ +# GetAgentOverlay200ResponseBase + +Base global agent metadata + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**agent_id** | **str** | | [optional] +**name** | **str** | | [optional] +**model_id** | **str** | | [optional] +**allowed_tools** | **List[str]** | | [optional] +**assigned_skill_ids** | **List[str]** | | [optional] + +## Example + +```python +from quantcdn.models.get_agent_overlay200_response_base import GetAgentOverlay200ResponseBase + +# TODO update the JSON string below +json = "{}" +# create an instance of GetAgentOverlay200ResponseBase from a JSON string +get_agent_overlay200_response_base_instance = GetAgentOverlay200ResponseBase.from_json(json) +# print the JSON string representation of the object +print(GetAgentOverlay200ResponseBase.to_json()) + +# convert the object into a dict +get_agent_overlay200_response_base_dict = get_agent_overlay200_response_base_instance.to_dict() +# create an instance of GetAgentOverlay200ResponseBase from a dict +get_agent_overlay200_response_base_from_dict = GetAgentOverlay200ResponseBase.from_dict(get_agent_overlay200_response_base_dict) +``` +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/GetAgentOverlay200ResponseOverlay.md b/docs/GetAgentOverlay200ResponseOverlay.md new file mode 100644 index 00000000..620c91d4 --- /dev/null +++ b/docs/GetAgentOverlay200ResponseOverlay.md @@ -0,0 +1,39 @@ +# GetAgentOverlay200ResponseOverlay + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**model_id** | **str** | | [optional] +**temperature** | **float** | | [optional] +**max_tokens** | **int** | | [optional] +**disabled_skills** | **List[str]** | | [optional] +**additional_skills** | **List[str]** | | [optional] +**additional_tools** | **List[str]** | | [optional] +**disabled_tools** | **List[str]** | | [optional] +**system_prompt_append** | **str** | | [optional] +**allowed_collections** | **List[str]** | | [optional] +**guardrail_preset** | **str** | | [optional] +**version** | **int** | | [optional] + +## Example + +```python +from quantcdn.models.get_agent_overlay200_response_overlay import GetAgentOverlay200ResponseOverlay + +# TODO update the JSON string below +json = "{}" +# create an instance of GetAgentOverlay200ResponseOverlay from a JSON string +get_agent_overlay200_response_overlay_instance = GetAgentOverlay200ResponseOverlay.from_json(json) +# print the JSON string representation of the object +print(GetAgentOverlay200ResponseOverlay.to_json()) + +# convert the object into a dict +get_agent_overlay200_response_overlay_dict = get_agent_overlay200_response_overlay_instance.to_dict() +# create an instance of GetAgentOverlay200ResponseOverlay from a dict +get_agent_overlay200_response_overlay_from_dict = GetAgentOverlay200ResponseOverlay.from_dict(get_agent_overlay200_response_overlay_dict) +``` +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/GetCustomTool200Response.md b/docs/GetCustomTool200Response.md new file mode 100644 index 00000000..6cc36aff --- /dev/null +++ b/docs/GetCustomTool200Response.md @@ -0,0 +1,29 @@ +# GetCustomTool200Response + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**tool** | [**GetCustomTool200ResponseTool**](GetCustomTool200ResponseTool.md) | | [optional] + +## Example + +```python +from quantcdn.models.get_custom_tool200_response import GetCustomTool200Response + +# TODO update the JSON string below +json = "{}" +# create an instance of GetCustomTool200Response from a JSON string +get_custom_tool200_response_instance = GetCustomTool200Response.from_json(json) +# print the JSON string representation of the object +print(GetCustomTool200Response.to_json()) + +# convert the object into a dict +get_custom_tool200_response_dict = get_custom_tool200_response_instance.to_dict() +# create an instance of GetCustomTool200Response from a dict +get_custom_tool200_response_from_dict = GetCustomTool200Response.from_dict(get_custom_tool200_response_dict) +``` +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/GetCustomTool200ResponseTool.md b/docs/GetCustomTool200ResponseTool.md new file mode 100644 index 00000000..808b47fa --- /dev/null +++ b/docs/GetCustomTool200ResponseTool.md @@ -0,0 +1,39 @@ +# GetCustomTool200ResponseTool + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**name** | **str** | | [optional] +**description** | **str** | | [optional] +**edge_function_url** | **str** | | [optional] +**edge_function_code** | **str** | The deployed edge function source code | [optional] +**is_async** | **bool** | | [optional] +**input_schema** | **str** | | [optional] +**output_schema** | **str** | | [optional] +**output_schema_description** | **str** | | [optional] +**category** | **str** | | [optional] +**response_mode** | **str** | | [optional] +**created_at** | **datetime** | | [optional] + +## Example + +```python +from quantcdn.models.get_custom_tool200_response_tool import GetCustomTool200ResponseTool + +# TODO update the JSON string below +json = "{}" +# create an instance of GetCustomTool200ResponseTool from a JSON string +get_custom_tool200_response_tool_instance = GetCustomTool200ResponseTool.from_json(json) +# print the JSON string representation of the object +print(GetCustomTool200ResponseTool.to_json()) + +# convert the object into a dict +get_custom_tool200_response_tool_dict = get_custom_tool200_response_tool_instance.to_dict() +# create an instance of GetCustomTool200ResponseTool from a dict +get_custom_tool200_response_tool_from_dict = GetCustomTool200ResponseTool.from_dict(get_custom_tool200_response_tool_dict) +``` +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/GetDurableExecutionStatus200ResponseResultUsage.md b/docs/GetDurableExecutionStatus200ResponseResultUsage.md index 94217cfa..1cbbbf21 100644 --- a/docs/GetDurableExecutionStatus200ResponseResultUsage.md +++ b/docs/GetDurableExecutionStatus200ResponseResultUsage.md @@ -1,5 +1,6 @@ # GetDurableExecutionStatus200ResponseResultUsage +Token usage and cost for the final synthesis turn ## Properties @@ -8,6 +9,7 @@ Name | Type | Description | Notes **input_tokens** | **int** | | [optional] **output_tokens** | **int** | | [optional] **total_tokens** | **int** | | [optional] +**cost_cents** | **float** | Cost of the final synthesis turn in US cents | [optional] ## Example diff --git a/docs/GetGovernanceConfig200Response.md b/docs/GetGovernanceConfig200Response.md new file mode 100644 index 00000000..7159217b --- /dev/null +++ b/docs/GetGovernanceConfig200Response.md @@ -0,0 +1,36 @@ +# GetGovernanceConfig200Response + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**org_id** | **str** | | [optional] +**ai_enabled** | **bool** | | [optional] +**model_policy** | **str** | | [optional] +**model_list** | **List[str]** | | [optional] +**mandatory_guardrail_preset** | **str** | | [optional] +**mandatory_filter_policies** | **List[str]** | | [optional] +**spend_limits** | [**GetGovernanceConfig200ResponseSpendLimits**](GetGovernanceConfig200ResponseSpendLimits.md) | | [optional] +**version** | **int** | | [optional] + +## Example + +```python +from quantcdn.models.get_governance_config200_response import GetGovernanceConfig200Response + +# TODO update the JSON string below +json = "{}" +# create an instance of GetGovernanceConfig200Response from a JSON string +get_governance_config200_response_instance = GetGovernanceConfig200Response.from_json(json) +# print the JSON string representation of the object +print(GetGovernanceConfig200Response.to_json()) + +# convert the object into a dict +get_governance_config200_response_dict = get_governance_config200_response_instance.to_dict() +# create an instance of GetGovernanceConfig200Response from a dict +get_governance_config200_response_from_dict = GetGovernanceConfig200Response.from_dict(get_governance_config200_response_dict) +``` +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/GetGovernanceConfig200ResponseSpendLimits.md b/docs/GetGovernanceConfig200ResponseSpendLimits.md new file mode 100644 index 00000000..d6b5e214 --- /dev/null +++ b/docs/GetGovernanceConfig200ResponseSpendLimits.md @@ -0,0 +1,38 @@ +# GetGovernanceConfig200ResponseSpendLimits + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**monthly_budget_cents** | **int** | | [optional] +**daily_budget_cents** | **int** | | [optional] +**per_user_monthly_budget_cents** | **int** | | [optional] +**per_user_daily_budget_cents** | **int** | | [optional] +**warning_threshold_percent** | **int** | | [optional] +**interface_limits** | [**Dict[str, GetGovernanceConfig200ResponseSpendLimitsInterfaceLimitsValue]**](GetGovernanceConfig200ResponseSpendLimitsInterfaceLimitsValue.md) | Aggregate spend caps per interface label (slack, autonomous, api-gateway, streaming, websocket). Keys are interface labels. | [optional] +**user_overrides** | [**Dict[str, GetGovernanceConfig200ResponseSpendLimitsUserOverridesValue]**](GetGovernanceConfig200ResponseSpendLimitsUserOverridesValue.md) | Per-user budget overrides keyed by userId (numeric portal id, slack-<id>, or system:code-agent). Replaces the flat per-user budget for that user; unlimited=true exempts them. | [optional] +**per_token_monthly_budget_cents** | **int** | Flat monthly cap in cents applied to every API token without a named override | [optional] +**per_token_daily_budget_cents** | **int** | Flat daily cap in cents applied to every API token without a named override | [optional] +**token_overrides** | [**Dict[str, GetGovernanceConfig200ResponseSpendLimitsUserOverridesValue]**](GetGovernanceConfig200ResponseSpendLimitsUserOverridesValue.md) | Per-token budget overrides keyed by API token id. Replaces the flat per-token budget for that token; unlimited=true exempts it. | [optional] + +## Example + +```python +from quantcdn.models.get_governance_config200_response_spend_limits import GetGovernanceConfig200ResponseSpendLimits + +# TODO update the JSON string below +json = "{}" +# create an instance of GetGovernanceConfig200ResponseSpendLimits from a JSON string +get_governance_config200_response_spend_limits_instance = GetGovernanceConfig200ResponseSpendLimits.from_json(json) +# print the JSON string representation of the object +print(GetGovernanceConfig200ResponseSpendLimits.to_json()) + +# convert the object into a dict +get_governance_config200_response_spend_limits_dict = get_governance_config200_response_spend_limits_instance.to_dict() +# create an instance of GetGovernanceConfig200ResponseSpendLimits from a dict +get_governance_config200_response_spend_limits_from_dict = GetGovernanceConfig200ResponseSpendLimits.from_dict(get_governance_config200_response_spend_limits_dict) +``` +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/GetGovernanceConfig200ResponseSpendLimitsInterfaceLimitsValue.md b/docs/GetGovernanceConfig200ResponseSpendLimitsInterfaceLimitsValue.md new file mode 100644 index 00000000..4679f6d2 --- /dev/null +++ b/docs/GetGovernanceConfig200ResponseSpendLimitsInterfaceLimitsValue.md @@ -0,0 +1,30 @@ +# GetGovernanceConfig200ResponseSpendLimitsInterfaceLimitsValue + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**daily_cents** | **int** | | [optional] +**monthly_cents** | **int** | | [optional] + +## Example + +```python +from quantcdn.models.get_governance_config200_response_spend_limits_interface_limits_value import GetGovernanceConfig200ResponseSpendLimitsInterfaceLimitsValue + +# TODO update the JSON string below +json = "{}" +# create an instance of GetGovernanceConfig200ResponseSpendLimitsInterfaceLimitsValue from a JSON string +get_governance_config200_response_spend_limits_interface_limits_value_instance = GetGovernanceConfig200ResponseSpendLimitsInterfaceLimitsValue.from_json(json) +# print the JSON string representation of the object +print(GetGovernanceConfig200ResponseSpendLimitsInterfaceLimitsValue.to_json()) + +# convert the object into a dict +get_governance_config200_response_spend_limits_interface_limits_value_dict = get_governance_config200_response_spend_limits_interface_limits_value_instance.to_dict() +# create an instance of GetGovernanceConfig200ResponseSpendLimitsInterfaceLimitsValue from a dict +get_governance_config200_response_spend_limits_interface_limits_value_from_dict = GetGovernanceConfig200ResponseSpendLimitsInterfaceLimitsValue.from_dict(get_governance_config200_response_spend_limits_interface_limits_value_dict) +``` +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/GetGovernanceConfig200ResponseSpendLimitsUserOverridesValue.md b/docs/GetGovernanceConfig200ResponseSpendLimitsUserOverridesValue.md new file mode 100644 index 00000000..39a6e871 --- /dev/null +++ b/docs/GetGovernanceConfig200ResponseSpendLimitsUserOverridesValue.md @@ -0,0 +1,31 @@ +# GetGovernanceConfig200ResponseSpendLimitsUserOverridesValue + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**daily_cents** | **int** | | [optional] +**monthly_cents** | **int** | | [optional] +**unlimited** | **bool** | | [optional] + +## Example + +```python +from quantcdn.models.get_governance_config200_response_spend_limits_user_overrides_value import GetGovernanceConfig200ResponseSpendLimitsUserOverridesValue + +# TODO update the JSON string below +json = "{}" +# create an instance of GetGovernanceConfig200ResponseSpendLimitsUserOverridesValue from a JSON string +get_governance_config200_response_spend_limits_user_overrides_value_instance = GetGovernanceConfig200ResponseSpendLimitsUserOverridesValue.from_json(json) +# print the JSON string representation of the object +print(GetGovernanceConfig200ResponseSpendLimitsUserOverridesValue.to_json()) + +# convert the object into a dict +get_governance_config200_response_spend_limits_user_overrides_value_dict = get_governance_config200_response_spend_limits_user_overrides_value_instance.to_dict() +# create an instance of GetGovernanceConfig200ResponseSpendLimitsUserOverridesValue from a dict +get_governance_config200_response_spend_limits_user_overrides_value_from_dict = GetGovernanceConfig200ResponseSpendLimitsUserOverridesValue.from_dict(get_governance_config200_response_spend_limits_user_overrides_value_dict) +``` +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/GetGovernanceSpend200Response.md b/docs/GetGovernanceSpend200Response.md new file mode 100644 index 00000000..5f5935e7 --- /dev/null +++ b/docs/GetGovernanceSpend200Response.md @@ -0,0 +1,33 @@ +# GetGovernanceSpend200Response + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**org_total** | [**GetGovernanceSpend200ResponseOrgTotal**](GetGovernanceSpend200ResponseOrgTotal.md) | | [optional] +**today_total** | [**GetGovernanceSpend200ResponseTodayTotal**](GetGovernanceSpend200ResponseTodayTotal.md) | | [optional] +**budget** | [**GetGovernanceSpend200ResponseBudget**](GetGovernanceSpend200ResponseBudget.md) | | [optional] +**daily_budget** | [**GetGovernanceSpend200ResponseDailyBudget**](GetGovernanceSpend200ResponseDailyBudget.md) | | [optional] +**user_total** | [**GetGovernanceSpend200ResponseUserTotal**](GetGovernanceSpend200ResponseUserTotal.md) | | [optional] + +## Example + +```python +from quantcdn.models.get_governance_spend200_response import GetGovernanceSpend200Response + +# TODO update the JSON string below +json = "{}" +# create an instance of GetGovernanceSpend200Response from a JSON string +get_governance_spend200_response_instance = GetGovernanceSpend200Response.from_json(json) +# print the JSON string representation of the object +print(GetGovernanceSpend200Response.to_json()) + +# convert the object into a dict +get_governance_spend200_response_dict = get_governance_spend200_response_instance.to_dict() +# create an instance of GetGovernanceSpend200Response from a dict +get_governance_spend200_response_from_dict = GetGovernanceSpend200Response.from_dict(get_governance_spend200_response_dict) +``` +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/GetGovernanceSpend200ResponseBudget.md b/docs/GetGovernanceSpend200ResponseBudget.md new file mode 100644 index 00000000..20e8d8d8 --- /dev/null +++ b/docs/GetGovernanceSpend200ResponseBudget.md @@ -0,0 +1,31 @@ +# GetGovernanceSpend200ResponseBudget + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**monthly_budget_cents** | **int** | | [optional] +**used_percent** | **float** | | [optional] +**remaining_cents** | **int** | | [optional] + +## Example + +```python +from quantcdn.models.get_governance_spend200_response_budget import GetGovernanceSpend200ResponseBudget + +# TODO update the JSON string below +json = "{}" +# create an instance of GetGovernanceSpend200ResponseBudget from a JSON string +get_governance_spend200_response_budget_instance = GetGovernanceSpend200ResponseBudget.from_json(json) +# print the JSON string representation of the object +print(GetGovernanceSpend200ResponseBudget.to_json()) + +# convert the object into a dict +get_governance_spend200_response_budget_dict = get_governance_spend200_response_budget_instance.to_dict() +# create an instance of GetGovernanceSpend200ResponseBudget from a dict +get_governance_spend200_response_budget_from_dict = GetGovernanceSpend200ResponseBudget.from_dict(get_governance_spend200_response_budget_dict) +``` +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/GetGovernanceSpend200ResponseDailyBudget.md b/docs/GetGovernanceSpend200ResponseDailyBudget.md new file mode 100644 index 00000000..ad43f3bd --- /dev/null +++ b/docs/GetGovernanceSpend200ResponseDailyBudget.md @@ -0,0 +1,31 @@ +# GetGovernanceSpend200ResponseDailyBudget + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**daily_budget_cents** | **int** | | [optional] +**used_percent** | **float** | | [optional] +**remaining_cents** | **int** | | [optional] + +## Example + +```python +from quantcdn.models.get_governance_spend200_response_daily_budget import GetGovernanceSpend200ResponseDailyBudget + +# TODO update the JSON string below +json = "{}" +# create an instance of GetGovernanceSpend200ResponseDailyBudget from a JSON string +get_governance_spend200_response_daily_budget_instance = GetGovernanceSpend200ResponseDailyBudget.from_json(json) +# print the JSON string representation of the object +print(GetGovernanceSpend200ResponseDailyBudget.to_json()) + +# convert the object into a dict +get_governance_spend200_response_daily_budget_dict = get_governance_spend200_response_daily_budget_instance.to_dict() +# create an instance of GetGovernanceSpend200ResponseDailyBudget from a dict +get_governance_spend200_response_daily_budget_from_dict = GetGovernanceSpend200ResponseDailyBudget.from_dict(get_governance_spend200_response_daily_budget_dict) +``` +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/GetGovernanceSpend200ResponseOrgTotal.md b/docs/GetGovernanceSpend200ResponseOrgTotal.md new file mode 100644 index 00000000..42bcaf9f --- /dev/null +++ b/docs/GetGovernanceSpend200ResponseOrgTotal.md @@ -0,0 +1,30 @@ +# GetGovernanceSpend200ResponseOrgTotal + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**spend_cents** | **int** | Total org spend in US cents | [optional] +**request_count** | **int** | | [optional] + +## Example + +```python +from quantcdn.models.get_governance_spend200_response_org_total import GetGovernanceSpend200ResponseOrgTotal + +# TODO update the JSON string below +json = "{}" +# create an instance of GetGovernanceSpend200ResponseOrgTotal from a JSON string +get_governance_spend200_response_org_total_instance = GetGovernanceSpend200ResponseOrgTotal.from_json(json) +# print the JSON string representation of the object +print(GetGovernanceSpend200ResponseOrgTotal.to_json()) + +# convert the object into a dict +get_governance_spend200_response_org_total_dict = get_governance_spend200_response_org_total_instance.to_dict() +# create an instance of GetGovernanceSpend200ResponseOrgTotal from a dict +get_governance_spend200_response_org_total_from_dict = GetGovernanceSpend200ResponseOrgTotal.from_dict(get_governance_spend200_response_org_total_dict) +``` +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/GetGovernanceSpend200ResponseTodayTotal.md b/docs/GetGovernanceSpend200ResponseTodayTotal.md new file mode 100644 index 00000000..7ccee287 --- /dev/null +++ b/docs/GetGovernanceSpend200ResponseTodayTotal.md @@ -0,0 +1,30 @@ +# GetGovernanceSpend200ResponseTodayTotal + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**spend_cents** | **int** | Org spend today in US cents | [optional] +**request_count** | **int** | | [optional] + +## Example + +```python +from quantcdn.models.get_governance_spend200_response_today_total import GetGovernanceSpend200ResponseTodayTotal + +# TODO update the JSON string below +json = "{}" +# create an instance of GetGovernanceSpend200ResponseTodayTotal from a JSON string +get_governance_spend200_response_today_total_instance = GetGovernanceSpend200ResponseTodayTotal.from_json(json) +# print the JSON string representation of the object +print(GetGovernanceSpend200ResponseTodayTotal.to_json()) + +# convert the object into a dict +get_governance_spend200_response_today_total_dict = get_governance_spend200_response_today_total_instance.to_dict() +# create an instance of GetGovernanceSpend200ResponseTodayTotal from a dict +get_governance_spend200_response_today_total_from_dict = GetGovernanceSpend200ResponseTodayTotal.from_dict(get_governance_spend200_response_today_total_dict) +``` +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/GetGovernanceSpend200ResponseUserTotal.md b/docs/GetGovernanceSpend200ResponseUserTotal.md new file mode 100644 index 00000000..771d8062 --- /dev/null +++ b/docs/GetGovernanceSpend200ResponseUserTotal.md @@ -0,0 +1,30 @@ +# GetGovernanceSpend200ResponseUserTotal + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**monthly_spend_cents** | **int** | | [optional] +**daily_spend_cents** | **int** | | [optional] + +## Example + +```python +from quantcdn.models.get_governance_spend200_response_user_total import GetGovernanceSpend200ResponseUserTotal + +# TODO update the JSON string below +json = "{}" +# create an instance of GetGovernanceSpend200ResponseUserTotal from a JSON string +get_governance_spend200_response_user_total_instance = GetGovernanceSpend200ResponseUserTotal.from_json(json) +# print the JSON string representation of the object +print(GetGovernanceSpend200ResponseUserTotal.to_json()) + +# convert the object into a dict +get_governance_spend200_response_user_total_dict = get_governance_spend200_response_user_total_instance.to_dict() +# create an instance of GetGovernanceSpend200ResponseUserTotal from a dict +get_governance_spend200_response_user_total_from_dict = GetGovernanceSpend200ResponseUserTotal.from_dict(get_governance_spend200_response_user_total_dict) +``` +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/GetMyUsage200Response.md b/docs/GetMyUsage200Response.md new file mode 100644 index 00000000..8d59fc11 --- /dev/null +++ b/docs/GetMyUsage200Response.md @@ -0,0 +1,33 @@ +# GetMyUsage200Response + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**user_id** | **str** | | [optional] +**current_month** | **str** | | [optional] +**monthly** | [**GetMyUsage200ResponseMonthly**](GetMyUsage200ResponseMonthly.md) | | [optional] +**daily** | [**GetMyUsage200ResponseDaily**](GetMyUsage200ResponseDaily.md) | | [optional] +**quota** | [**GetMyUsage200ResponseQuota**](GetMyUsage200ResponseQuota.md) | | [optional] + +## Example + +```python +from quantcdn.models.get_my_usage200_response import GetMyUsage200Response + +# TODO update the JSON string below +json = "{}" +# create an instance of GetMyUsage200Response from a JSON string +get_my_usage200_response_instance = GetMyUsage200Response.from_json(json) +# print the JSON string representation of the object +print(GetMyUsage200Response.to_json()) + +# convert the object into a dict +get_my_usage200_response_dict = get_my_usage200_response_instance.to_dict() +# create an instance of GetMyUsage200Response from a dict +get_my_usage200_response_from_dict = GetMyUsage200Response.from_dict(get_my_usage200_response_dict) +``` +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/GetMyUsage200ResponseDaily.md b/docs/GetMyUsage200ResponseDaily.md new file mode 100644 index 00000000..0c9d5cb7 --- /dev/null +++ b/docs/GetMyUsage200ResponseDaily.md @@ -0,0 +1,29 @@ +# GetMyUsage200ResponseDaily + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**spend_cents** | **int** | | [optional] + +## Example + +```python +from quantcdn.models.get_my_usage200_response_daily import GetMyUsage200ResponseDaily + +# TODO update the JSON string below +json = "{}" +# create an instance of GetMyUsage200ResponseDaily from a JSON string +get_my_usage200_response_daily_instance = GetMyUsage200ResponseDaily.from_json(json) +# print the JSON string representation of the object +print(GetMyUsage200ResponseDaily.to_json()) + +# convert the object into a dict +get_my_usage200_response_daily_dict = get_my_usage200_response_daily_instance.to_dict() +# create an instance of GetMyUsage200ResponseDaily from a dict +get_my_usage200_response_daily_from_dict = GetMyUsage200ResponseDaily.from_dict(get_my_usage200_response_daily_dict) +``` +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/GetMyUsage200ResponseMonthly.md b/docs/GetMyUsage200ResponseMonthly.md new file mode 100644 index 00000000..990a1195 --- /dev/null +++ b/docs/GetMyUsage200ResponseMonthly.md @@ -0,0 +1,30 @@ +# GetMyUsage200ResponseMonthly + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**spend_cents** | **int** | | [optional] +**request_count** | **int** | | [optional] + +## Example + +```python +from quantcdn.models.get_my_usage200_response_monthly import GetMyUsage200ResponseMonthly + +# TODO update the JSON string below +json = "{}" +# create an instance of GetMyUsage200ResponseMonthly from a JSON string +get_my_usage200_response_monthly_instance = GetMyUsage200ResponseMonthly.from_json(json) +# print the JSON string representation of the object +print(GetMyUsage200ResponseMonthly.to_json()) + +# convert the object into a dict +get_my_usage200_response_monthly_dict = get_my_usage200_response_monthly_instance.to_dict() +# create an instance of GetMyUsage200ResponseMonthly from a dict +get_my_usage200_response_monthly_from_dict = GetMyUsage200ResponseMonthly.from_dict(get_my_usage200_response_monthly_dict) +``` +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/GetMyUsage200ResponseQuota.md b/docs/GetMyUsage200ResponseQuota.md new file mode 100644 index 00000000..cebbf9fb --- /dev/null +++ b/docs/GetMyUsage200ResponseQuota.md @@ -0,0 +1,30 @@ +# GetMyUsage200ResponseQuota + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**monthly_limit** | [**GetMyUsage200ResponseQuotaMonthlyLimit**](GetMyUsage200ResponseQuotaMonthlyLimit.md) | | [optional] +**daily_limit** | [**GetMyUsage200ResponseQuotaDailyLimit**](GetMyUsage200ResponseQuotaDailyLimit.md) | | [optional] + +## Example + +```python +from quantcdn.models.get_my_usage200_response_quota import GetMyUsage200ResponseQuota + +# TODO update the JSON string below +json = "{}" +# create an instance of GetMyUsage200ResponseQuota from a JSON string +get_my_usage200_response_quota_instance = GetMyUsage200ResponseQuota.from_json(json) +# print the JSON string representation of the object +print(GetMyUsage200ResponseQuota.to_json()) + +# convert the object into a dict +get_my_usage200_response_quota_dict = get_my_usage200_response_quota_instance.to_dict() +# create an instance of GetMyUsage200ResponseQuota from a dict +get_my_usage200_response_quota_from_dict = GetMyUsage200ResponseQuota.from_dict(get_my_usage200_response_quota_dict) +``` +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/GetMyUsage200ResponseQuotaDailyLimit.md b/docs/GetMyUsage200ResponseQuotaDailyLimit.md new file mode 100644 index 00000000..900345a4 --- /dev/null +++ b/docs/GetMyUsage200ResponseQuotaDailyLimit.md @@ -0,0 +1,33 @@ +# GetMyUsage200ResponseQuotaDailyLimit + +Per-user daily spend cap (object form, present when an org-level perUserDailyBudget is configured) + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**limit_cents** | **int** | The configured daily cap in US cents | [optional] +**used_percent** | **float** | Percentage of the cap consumed today (0–100+) | [optional] +**remaining_cents** | **int** | Cents remaining before the cap is hit; can be negative if overspent | [optional] +**resets_at** | **datetime** | UTC timestamp when the daily counter resets (always next UTC midnight) | [optional] + +## Example + +```python +from quantcdn.models.get_my_usage200_response_quota_daily_limit import GetMyUsage200ResponseQuotaDailyLimit + +# TODO update the JSON string below +json = "{}" +# create an instance of GetMyUsage200ResponseQuotaDailyLimit from a JSON string +get_my_usage200_response_quota_daily_limit_instance = GetMyUsage200ResponseQuotaDailyLimit.from_json(json) +# print the JSON string representation of the object +print(GetMyUsage200ResponseQuotaDailyLimit.to_json()) + +# convert the object into a dict +get_my_usage200_response_quota_daily_limit_dict = get_my_usage200_response_quota_daily_limit_instance.to_dict() +# create an instance of GetMyUsage200ResponseQuotaDailyLimit from a dict +get_my_usage200_response_quota_daily_limit_from_dict = GetMyUsage200ResponseQuotaDailyLimit.from_dict(get_my_usage200_response_quota_daily_limit_dict) +``` +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/GetMyUsage200ResponseQuotaMonthlyLimit.md b/docs/GetMyUsage200ResponseQuotaMonthlyLimit.md new file mode 100644 index 00000000..6555cf29 --- /dev/null +++ b/docs/GetMyUsage200ResponseQuotaMonthlyLimit.md @@ -0,0 +1,32 @@ +# GetMyUsage200ResponseQuotaMonthlyLimit + +Per-user monthly spend cap (object form, present when an org-level perUserMonthlyBudget is configured) + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**limit_cents** | **int** | The configured monthly cap in US cents | [optional] +**used_percent** | **float** | Percentage of the cap consumed this month (0–100+) | [optional] +**remaining_cents** | **int** | Cents remaining before the cap is hit; can be negative if overspent | [optional] + +## Example + +```python +from quantcdn.models.get_my_usage200_response_quota_monthly_limit import GetMyUsage200ResponseQuotaMonthlyLimit + +# TODO update the JSON string below +json = "{}" +# create an instance of GetMyUsage200ResponseQuotaMonthlyLimit from a JSON string +get_my_usage200_response_quota_monthly_limit_instance = GetMyUsage200ResponseQuotaMonthlyLimit.from_json(json) +# print the JSON string representation of the object +print(GetMyUsage200ResponseQuotaMonthlyLimit.to_json()) + +# convert the object into a dict +get_my_usage200_response_quota_monthly_limit_dict = get_my_usage200_response_quota_monthly_limit_instance.to_dict() +# create an instance of GetMyUsage200ResponseQuotaMonthlyLimit from a dict +get_my_usage200_response_quota_monthly_limit_from_dict = GetMyUsage200ResponseQuotaMonthlyLimit.from_dict(get_my_usage200_response_quota_monthly_limit_dict) +``` +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/GetRestoreStatus200Response.md b/docs/GetRestoreStatus200Response.md new file mode 100644 index 00000000..aac754d3 --- /dev/null +++ b/docs/GetRestoreStatus200Response.md @@ -0,0 +1,39 @@ +# GetRestoreStatus200Response + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**restore_id** | **str** | | [optional] +**org_name** | **str** | | [optional] +**app_name** | **str** | | [optional] +**env_name** | **str** | | [optional] +**backup_id** | **str** | | [optional] +**status** | **str** | | [optional] +**started_at** | **datetime** | | [optional] +**completed_at** | **datetime** | | [optional] +**error_message** | **str** | | [optional] +**task_arn** | **str** | | [optional] +**ttl** | **int** | | [optional] + +## Example + +```python +from quantcdn.models.get_restore_status200_response import GetRestoreStatus200Response + +# TODO update the JSON string below +json = "{}" +# create an instance of GetRestoreStatus200Response from a JSON string +get_restore_status200_response_instance = GetRestoreStatus200Response.from_json(json) +# print the JSON string representation of the object +print(GetRestoreStatus200Response.to_json()) + +# convert the object into a dict +get_restore_status200_response_dict = get_restore_status200_response_instance.to_dict() +# create an instance of GetRestoreStatus200Response from a dict +get_restore_status200_response_from_dict = GetRestoreStatus200Response.from_dict(get_restore_status200_response_dict) +``` +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/GetScalingPolicyResponse.md b/docs/GetScalingPolicyResponse.md new file mode 100644 index 00000000..4cf7aab5 --- /dev/null +++ b/docs/GetScalingPolicyResponse.md @@ -0,0 +1,34 @@ +# GetScalingPolicyResponse + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**metric** | **str** | | [optional] +**target_value** | **float** | | [optional] +**scale_in_cooldown_seconds** | **int** | | [optional] +**scale_out_cooldown_seconds** | **int** | | [optional] +**policy_name** | **str** | Name of the underlying Application Auto Scaling policy. | [optional] +**resource_label** | **str** | ALB ResourceLabel for RPS policies (target group identifier). | [optional] + +## Example + +```python +from quantcdn.models.get_scaling_policy_response import GetScalingPolicyResponse + +# TODO update the JSON string below +json = "{}" +# create an instance of GetScalingPolicyResponse from a JSON string +get_scaling_policy_response_instance = GetScalingPolicyResponse.from_json(json) +# print the JSON string representation of the object +print(GetScalingPolicyResponse.to_json()) + +# convert the object into a dict +get_scaling_policy_response_dict = get_scaling_policy_response_instance.to_dict() +# create an instance of GetScalingPolicyResponse from a dict +get_scaling_policy_response_from_dict = GetScalingPolicyResponse.from_dict(get_scaling_policy_response_dict) +``` +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/GetSkill200Response.md b/docs/GetSkill200Response.md new file mode 100644 index 00000000..2aa3e6f4 --- /dev/null +++ b/docs/GetSkill200Response.md @@ -0,0 +1,29 @@ +# GetSkill200Response + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**skill** | [**GetSkill200ResponseSkill**](GetSkill200ResponseSkill.md) | | [optional] + +## Example + +```python +from quantcdn.models.get_skill200_response import GetSkill200Response + +# TODO update the JSON string below +json = "{}" +# create an instance of GetSkill200Response from a JSON string +get_skill200_response_instance = GetSkill200Response.from_json(json) +# print the JSON string representation of the object +print(GetSkill200Response.to_json()) + +# convert the object into a dict +get_skill200_response_dict = get_skill200_response_instance.to_dict() +# create an instance of GetSkill200Response from a dict +get_skill200_response_from_dict = GetSkill200Response.from_dict(get_skill200_response_dict) +``` +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/GetSkill200ResponseSkill.md b/docs/GetSkill200ResponseSkill.md new file mode 100644 index 00000000..219ca189 --- /dev/null +++ b/docs/GetSkill200ResponseSkill.md @@ -0,0 +1,42 @@ +# GetSkill200ResponseSkill + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**skill_id** | **str** | | [optional] +**name** | **str** | | [optional] +**description** | **str** | | [optional] +**content** | **str** | | [optional] +**trigger_condition** | **str** | | [optional] +**tags** | **List[str]** | | [optional] +**source** | **object** | | [optional] +**required_tools** | **List[str]** | | [optional] +**files** | **object** | | [optional] +**namespace** | **str** | | [optional] +**disable_model_invocation** | **bool** | | [optional] +**allowed_tools** | **List[str]** | | [optional] +**installed_at** | **datetime** | | [optional] +**updated_at** | **datetime** | | [optional] + +## Example + +```python +from quantcdn.models.get_skill200_response_skill import GetSkill200ResponseSkill + +# TODO update the JSON string below +json = "{}" +# create an instance of GetSkill200ResponseSkill from a JSON string +get_skill200_response_skill_instance = GetSkill200ResponseSkill.from_json(json) +# print the JSON string representation of the object +print(GetSkill200ResponseSkill.to_json()) + +# convert the object into a dict +get_skill200_response_skill_dict = get_skill200_response_skill_instance.to_dict() +# create an instance of GetSkill200ResponseSkill from a dict +get_skill200_response_skill_from_dict = GetSkill200ResponseSkill.from_dict(get_skill200_response_skill_dict) +``` +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/GetSlackBot200Response.md b/docs/GetSlackBot200Response.md new file mode 100644 index 00000000..d021cfa2 --- /dev/null +++ b/docs/GetSlackBot200Response.md @@ -0,0 +1,29 @@ +# GetSlackBot200Response + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**bot** | [**GetSlackBot200ResponseBot**](GetSlackBot200ResponseBot.md) | | [optional] + +## Example + +```python +from quantcdn.models.get_slack_bot200_response import GetSlackBot200Response + +# TODO update the JSON string below +json = "{}" +# create an instance of GetSlackBot200Response from a JSON string +get_slack_bot200_response_instance = GetSlackBot200Response.from_json(json) +# print the JSON string representation of the object +print(GetSlackBot200Response.to_json()) + +# convert the object into a dict +get_slack_bot200_response_dict = get_slack_bot200_response_instance.to_dict() +# create an instance of GetSlackBot200Response from a dict +get_slack_bot200_response_from_dict = GetSlackBot200Response.from_dict(get_slack_bot200_response_dict) +``` +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/GetSlackBot200ResponseBot.md b/docs/GetSlackBot200ResponseBot.md new file mode 100644 index 00000000..d3af860e --- /dev/null +++ b/docs/GetSlackBot200ResponseBot.md @@ -0,0 +1,55 @@ +# GetSlackBot200ResponseBot + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**bot_id** | **str** | | [optional] +**name** | **str** | | [optional] +**setup_type** | **str** | | [optional] +**status** | **str** | | [optional] +**connected** | **bool** | | [optional] +**system_prompt** | **str** | | [optional] +**model_id** | **str** | | [optional] +**temperature** | **float** | | [optional] +**max_tokens** | **int** | | [optional] +**allowed_tools** | **List[str]** | | [optional] +**assigned_skills** | **List[str]** | | [optional] +**allowed_collections** | **List[str]** | | [optional] +**allowed_sub_agents** | **List[str]** | | [optional] +**guardrail_preset** | **str** | | [optional] +**filter_policies** | **List[str]** | | [optional] +**long_context** | **bool** | | [optional] +**session_ttl_days** | **int** | | [optional] +**allowed_channels** | **List[str]** | | [optional] +**allowed_users** | **List[str]** | | [optional] +**denied_users** | **List[str]** | | [optional] +**allow_guests** | **bool** | | [optional] +**home_tab_content** | **str** | | [optional] +**agent_access_control** | **object** | | [optional] +**keywords_enabled** | **bool** | | [optional] +**keywords** | **List[str]** | | [optional] +**created_at** | **datetime** | | [optional] +**updated_at** | **datetime** | | [optional] + +## Example + +```python +from quantcdn.models.get_slack_bot200_response_bot import GetSlackBot200ResponseBot + +# TODO update the JSON string below +json = "{}" +# create an instance of GetSlackBot200ResponseBot from a JSON string +get_slack_bot200_response_bot_instance = GetSlackBot200ResponseBot.from_json(json) +# print the JSON string representation of the object +print(GetSlackBot200ResponseBot.to_json()) + +# convert the object into a dict +get_slack_bot200_response_bot_dict = get_slack_bot200_response_bot_instance.to_dict() +# create an instance of GetSlackBot200ResponseBot from a dict +get_slack_bot200_response_bot_from_dict = GetSlackBot200ResponseBot.from_dict(get_slack_bot200_response_bot_dict) +``` +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/ImportSkill201Response.md b/docs/ImportSkill201Response.md new file mode 100644 index 00000000..065a2a95 --- /dev/null +++ b/docs/ImportSkill201Response.md @@ -0,0 +1,30 @@ +# ImportSkill201Response + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**skill** | **object** | | [optional] +**message** | **str** | | [optional] + +## Example + +```python +from quantcdn.models.import_skill201_response import ImportSkill201Response + +# TODO update the JSON string below +json = "{}" +# create an instance of ImportSkill201Response from a JSON string +import_skill201_response_instance = ImportSkill201Response.from_json(json) +# print the JSON string representation of the object +print(ImportSkill201Response.to_json()) + +# convert the object into a dict +import_skill201_response_dict = import_skill201_response_instance.to_dict() +# create an instance of ImportSkill201Response from a dict +import_skill201_response_from_dict = ImportSkill201Response.from_dict(import_skill201_response_dict) +``` +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/ImportSkillCollection201Response.md b/docs/ImportSkillCollection201Response.md new file mode 100644 index 00000000..63d686d0 --- /dev/null +++ b/docs/ImportSkillCollection201Response.md @@ -0,0 +1,33 @@ +# ImportSkillCollection201Response + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**namespace** | **str** | | [optional] +**imported** | **int** | | [optional] +**failed** | **int** | | [optional] +**skills** | **List[object]** | | [optional] +**errors** | **List[object]** | | [optional] + +## Example + +```python +from quantcdn.models.import_skill_collection201_response import ImportSkillCollection201Response + +# TODO update the JSON string below +json = "{}" +# create an instance of ImportSkillCollection201Response from a JSON string +import_skill_collection201_response_instance = ImportSkillCollection201Response.from_json(json) +# print the JSON string representation of the object +print(ImportSkillCollection201Response.to_json()) + +# convert the object into a dict +import_skill_collection201_response_dict = import_skill_collection201_response_instance.to_dict() +# create an instance of ImportSkillCollection201Response from a dict +import_skill_collection201_response_from_dict = ImportSkillCollection201Response.from_dict(import_skill_collection201_response_dict) +``` +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/ImportSkillCollectionRequest.md b/docs/ImportSkillCollectionRequest.md new file mode 100644 index 00000000..02ebab37 --- /dev/null +++ b/docs/ImportSkillCollectionRequest.md @@ -0,0 +1,32 @@ +# ImportSkillCollectionRequest + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**namespace** | **str** | | +**source** | [**ImportSkillCollectionRequestSource**](ImportSkillCollectionRequestSource.md) | | +**tags** | **List[str]** | | [optional] +**installed_by** | **str** | | [optional] + +## Example + +```python +from quantcdn.models.import_skill_collection_request import ImportSkillCollectionRequest + +# TODO update the JSON string below +json = "{}" +# create an instance of ImportSkillCollectionRequest from a JSON string +import_skill_collection_request_instance = ImportSkillCollectionRequest.from_json(json) +# print the JSON string representation of the object +print(ImportSkillCollectionRequest.to_json()) + +# convert the object into a dict +import_skill_collection_request_dict = import_skill_collection_request_instance.to_dict() +# create an instance of ImportSkillCollectionRequest from a dict +import_skill_collection_request_from_dict = ImportSkillCollectionRequest.from_dict(import_skill_collection_request_dict) +``` +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/ImportSkillCollectionRequestSource.md b/docs/ImportSkillCollectionRequestSource.md new file mode 100644 index 00000000..01781818 --- /dev/null +++ b/docs/ImportSkillCollectionRequestSource.md @@ -0,0 +1,32 @@ +# ImportSkillCollectionRequestSource + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**type** | **str** | | +**repo** | **str** | | +**path** | **str** | | [optional] +**version** | **str** | | [optional] + +## Example + +```python +from quantcdn.models.import_skill_collection_request_source import ImportSkillCollectionRequestSource + +# TODO update the JSON string below +json = "{}" +# create an instance of ImportSkillCollectionRequestSource from a JSON string +import_skill_collection_request_source_instance = ImportSkillCollectionRequestSource.from_json(json) +# print the JSON string representation of the object +print(ImportSkillCollectionRequestSource.to_json()) + +# convert the object into a dict +import_skill_collection_request_source_dict = import_skill_collection_request_source_instance.to_dict() +# create an instance of ImportSkillCollectionRequestSource from a dict +import_skill_collection_request_source_from_dict = ImportSkillCollectionRequestSource.from_dict(import_skill_collection_request_source_dict) +``` +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/ImportSkillRequest.md b/docs/ImportSkillRequest.md new file mode 100644 index 00000000..4d6ed704 --- /dev/null +++ b/docs/ImportSkillRequest.md @@ -0,0 +1,37 @@ +# ImportSkillRequest + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**source** | [**ImportSkillRequestSource**](ImportSkillRequestSource.md) | | +**name** | **str** | | [optional] +**description** | **str** | | [optional] +**tags** | **List[str]** | | [optional] +**trigger_condition** | **str** | | [optional] +**required_tools** | **List[str]** | | [optional] +**disable_model_invocation** | **bool** | | [optional] +**allowed_tools** | **List[str]** | | [optional] +**installed_by** | **str** | | [optional] + +## Example + +```python +from quantcdn.models.import_skill_request import ImportSkillRequest + +# TODO update the JSON string below +json = "{}" +# create an instance of ImportSkillRequest from a JSON string +import_skill_request_instance = ImportSkillRequest.from_json(json) +# print the JSON string representation of the object +print(ImportSkillRequest.to_json()) + +# convert the object into a dict +import_skill_request_dict = import_skill_request_instance.to_dict() +# create an instance of ImportSkillRequest from a dict +import_skill_request_from_dict = ImportSkillRequest.from_dict(import_skill_request_dict) +``` +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/ImportSkillRequestSource.md b/docs/ImportSkillRequestSource.md new file mode 100644 index 00000000..9600cfea --- /dev/null +++ b/docs/ImportSkillRequestSource.md @@ -0,0 +1,33 @@ +# ImportSkillRequestSource + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**type** | **str** | | +**url** | **str** | | [optional] +**repo** | **str** | | [optional] +**path** | **str** | | [optional] +**version** | **str** | | [optional] + +## Example + +```python +from quantcdn.models.import_skill_request_source import ImportSkillRequestSource + +# TODO update the JSON string below +json = "{}" +# create an instance of ImportSkillRequestSource from a JSON string +import_skill_request_source_instance = ImportSkillRequestSource.from_json(json) +# print the JSON string representation of the object +print(ImportSkillRequestSource.to_json()) + +# convert the object into a dict +import_skill_request_source_dict = import_skill_request_source_instance.to_dict() +# create an instance of ImportSkillRequestSource from a dict +import_skill_request_source_from_dict = ImportSkillRequestSource.from_dict(import_skill_request_source_dict) +``` +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/KVApi.md b/docs/KVApi.md index c5737a9c..6d2f2401 100644 --- a/docs/KVApi.md +++ b/docs/KVApi.md @@ -11,8 +11,10 @@ Method | HTTP request | Description [**k_v_items_list**](KVApi.md#k_v_items_list) | **GET** /api/v2/organizations/{organization}/projects/{project}/kv/{store_id}/items | List items in a kv store [**k_v_items_show**](KVApi.md#k_v_items_show) | **GET** /api/v2/organizations/{organization}/projects/{project}/kv/{store_id}/items/{key} | Get an item from a kv store [**k_v_items_update**](KVApi.md#k_v_items_update) | **PUT** /api/v2/organizations/{organization}/projects/{project}/kv/{store_id}/items/{key} | Update an item in a kv store +[**k_v_link_to_project**](KVApi.md#k_v_link_to_project) | **POST** /api/v2/organizations/{organization}/projects/{project}/kv/{store_id}/link | Link a KV store to another project [**k_v_list**](KVApi.md#k_v_list) | **GET** /api/v2/organizations/{organization}/projects/{project}/kv | List key-value stores [**k_v_show**](KVApi.md#k_v_show) | **GET** /api/v2/organizations/{organization}/projects/{project}/kv/{store_id} | Get a kv store +[**k_v_unlink_from_project**](KVApi.md#k_v_unlink_from_project) | **DELETE** /api/v2/organizations/{organization}/projects/{project}/kv/{store_id}/link | Unlink a KV store from this project # **k_v_create** @@ -611,6 +613,94 @@ Name | Type | Description | Notes [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) +# **k_v_link_to_project** +> KVLinkToProject200Response k_v_link_to_project(organization, project, store_id, kv_link_to_project_request) + +Link a KV store to another project + +Share a KV store from the source project with a target project. The store will be accessible in the target project. + +### Example + +* Bearer (JWT) Authentication (BearerAuth): + +```python +import quantcdn +from quantcdn.models.kv_link_to_project200_response import KVLinkToProject200Response +from quantcdn.models.kv_link_to_project_request import KVLinkToProjectRequest +from quantcdn.rest import ApiException +from pprint import pprint + +# Defining the host is optional and defaults to https://dashboard.quantcdn.io +# See configuration.py for a list of all supported configuration parameters. +configuration = quantcdn.Configuration( + host = "https://dashboard.quantcdn.io" +) + +# The client must configure the authentication and authorization parameters +# in accordance with the API server security policy. +# Examples for each auth method are provided below, use the example that +# satisfies your auth use case. + +# Configure Bearer authorization (JWT): BearerAuth +configuration = quantcdn.Configuration( + access_token = os.environ["BEARER_TOKEN"] +) + +# Enter a context with an instance of the API client +with quantcdn.ApiClient(configuration) as api_client: + # Create an instance of the API class + api_instance = quantcdn.KVApi(api_client) + organization = 'test-org' # str | Organization identifier + project = 'test-project' # str | Source project identifier + store_id = 'store-123' # str | KV store identifier + kv_link_to_project_request = quantcdn.KVLinkToProjectRequest() # KVLinkToProjectRequest | + + try: + # Link a KV store to another project + api_response = api_instance.k_v_link_to_project(organization, project, store_id, kv_link_to_project_request) + print("The response of KVApi->k_v_link_to_project:\n") + pprint(api_response) + except Exception as e: + print("Exception when calling KVApi->k_v_link_to_project: %s\n" % e) +``` + + + +### Parameters + + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **organization** | **str**| Organization identifier | + **project** | **str**| Source project identifier | + **store_id** | **str**| KV store identifier | + **kv_link_to_project_request** | [**KVLinkToProjectRequest**](KVLinkToProjectRequest.md)| | + +### Return type + +[**KVLinkToProject200Response**](KVLinkToProject200Response.md) + +### Authorization + +[BearerAuth](../README.md#BearerAuth) + +### HTTP request headers + + - **Content-Type**: application/json + - **Accept**: application/json + +### HTTP response details + +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**200** | Store linked successfully | - | +**400** | Store already linked or invalid request | - | +**404** | Store or target project not found | - | +**403** | Access forbidden | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + # **k_v_list** > List[V2Store] k_v_list(organization, project) @@ -773,3 +863,87 @@ Name | Type | Description | Notes [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) +# **k_v_unlink_from_project** +> KVLinkToProject200Response k_v_unlink_from_project(organization, project, store_id) + +Unlink a KV store from this project + +Remove access to a linked KV store from this project. The store must be linked (not owned by this project). + +### Example + +* Bearer (JWT) Authentication (BearerAuth): + +```python +import quantcdn +from quantcdn.models.kv_link_to_project200_response import KVLinkToProject200Response +from quantcdn.rest import ApiException +from pprint import pprint + +# Defining the host is optional and defaults to https://dashboard.quantcdn.io +# See configuration.py for a list of all supported configuration parameters. +configuration = quantcdn.Configuration( + host = "https://dashboard.quantcdn.io" +) + +# The client must configure the authentication and authorization parameters +# in accordance with the API server security policy. +# Examples for each auth method are provided below, use the example that +# satisfies your auth use case. + +# Configure Bearer authorization (JWT): BearerAuth +configuration = quantcdn.Configuration( + access_token = os.environ["BEARER_TOKEN"] +) + +# Enter a context with an instance of the API client +with quantcdn.ApiClient(configuration) as api_client: + # Create an instance of the API class + api_instance = quantcdn.KVApi(api_client) + organization = 'test-org' # str | Organization identifier + project = 'test-project' # str | Project identifier + store_id = 'store-123' # str | KV store identifier + + try: + # Unlink a KV store from this project + api_response = api_instance.k_v_unlink_from_project(organization, project, store_id) + print("The response of KVApi->k_v_unlink_from_project:\n") + pprint(api_response) + except Exception as e: + print("Exception when calling KVApi->k_v_unlink_from_project: %s\n" % e) +``` + + + +### Parameters + + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **organization** | **str**| Organization identifier | + **project** | **str**| Project identifier | + **store_id** | **str**| KV store identifier | + +### Return type + +[**KVLinkToProject200Response**](KVLinkToProject200Response.md) + +### Authorization + +[BearerAuth](../README.md#BearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + +### HTTP response details + +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**200** | Store unlinked successfully | - | +**400** | Store not linked or invalid request | - | +**403** | Cannot unlink store owned by this project | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + diff --git a/docs/KVLinkToProject200Response.md b/docs/KVLinkToProject200Response.md new file mode 100644 index 00000000..44a8ea8d --- /dev/null +++ b/docs/KVLinkToProject200Response.md @@ -0,0 +1,30 @@ +# KVLinkToProject200Response + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**success** | **bool** | | [optional] +**message** | **str** | | [optional] + +## Example + +```python +from quantcdn.models.kv_link_to_project200_response import KVLinkToProject200Response + +# TODO update the JSON string below +json = "{}" +# create an instance of KVLinkToProject200Response from a JSON string +kv_link_to_project200_response_instance = KVLinkToProject200Response.from_json(json) +# print the JSON string representation of the object +print(KVLinkToProject200Response.to_json()) + +# convert the object into a dict +kv_link_to_project200_response_dict = kv_link_to_project200_response_instance.to_dict() +# create an instance of KVLinkToProject200Response from a dict +kv_link_to_project200_response_from_dict = KVLinkToProject200Response.from_dict(kv_link_to_project200_response_dict) +``` +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/KVLinkToProjectRequest.md b/docs/KVLinkToProjectRequest.md new file mode 100644 index 00000000..3ef94b2d --- /dev/null +++ b/docs/KVLinkToProjectRequest.md @@ -0,0 +1,29 @@ +# KVLinkToProjectRequest + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**project_id** | **int** | Target project ID to link to | + +## Example + +```python +from quantcdn.models.kv_link_to_project_request import KVLinkToProjectRequest + +# TODO update the JSON string below +json = "{}" +# create an instance of KVLinkToProjectRequest from a JSON string +kv_link_to_project_request_instance = KVLinkToProjectRequest.from_json(json) +# print the JSON string representation of the object +print(KVLinkToProjectRequest.to_json()) + +# convert the object into a dict +kv_link_to_project_request_dict = kv_link_to_project_request_instance.to_dict() +# create an instance of KVLinkToProjectRequest from a dict +kv_link_to_project_request_from_dict = KVLinkToProjectRequest.from_dict(kv_link_to_project_request_dict) +``` +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/ListAIAgents200ResponseAgentsInner.md b/docs/ListAIAgents200ResponseAgentsInner.md index 4a856984..cc6e9ea0 100644 --- a/docs/ListAIAgents200ResponseAgentsInner.md +++ b/docs/ListAIAgents200ResponseAgentsInner.md @@ -13,6 +13,11 @@ Name | Type | Description | Notes **temperature** | **float** | | [optional] **max_tokens** | **int** | | [optional] **allowed_tools** | **List[str]** | | [optional] +**assigned_skills** | **List[str]** | | [optional] +**long_context** | **bool** | | [optional] +**guardrail_preset** | **str** | | [optional] +**is_global** | **bool** | | [optional] +**has_overlay** | **bool** | | [optional] **created_at** | **datetime** | | [optional] **updated_at** | **datetime** | | [optional] diff --git a/docs/ListCustomTools200ResponseToolsInner.md b/docs/ListCustomTools200ResponseToolsInner.md index 9d49cba2..b743e621 100644 --- a/docs/ListCustomTools200ResponseToolsInner.md +++ b/docs/ListCustomTools200ResponseToolsInner.md @@ -9,7 +9,7 @@ Name | Type | Description | Notes **description** | **str** | | [optional] **edge_function_url** | **str** | | [optional] **is_async** | **bool** | | [optional] -**input_schema** | **object** | | [optional] +**input_schema** | **str** | | [optional] **created_at** | **datetime** | | [optional] ## Example diff --git a/docs/ListOrchestrationBatches200Response.md b/docs/ListOrchestrationBatches200Response.md new file mode 100644 index 00000000..9f2f1a0b --- /dev/null +++ b/docs/ListOrchestrationBatches200Response.md @@ -0,0 +1,30 @@ +# ListOrchestrationBatches200Response + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**batches** | [**List[ListOrchestrationBatches200ResponseBatchesInner]**](ListOrchestrationBatches200ResponseBatchesInner.md) | | [optional] +**next_cursor** | **str** | | [optional] + +## Example + +```python +from quantcdn.models.list_orchestration_batches200_response import ListOrchestrationBatches200Response + +# TODO update the JSON string below +json = "{}" +# create an instance of ListOrchestrationBatches200Response from a JSON string +list_orchestration_batches200_response_instance = ListOrchestrationBatches200Response.from_json(json) +# print the JSON string representation of the object +print(ListOrchestrationBatches200Response.to_json()) + +# convert the object into a dict +list_orchestration_batches200_response_dict = list_orchestration_batches200_response_instance.to_dict() +# create an instance of ListOrchestrationBatches200Response from a dict +list_orchestration_batches200_response_from_dict = ListOrchestrationBatches200Response.from_dict(list_orchestration_batches200_response_dict) +``` +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/ListOrchestrationBatches200ResponseBatchesInner.md b/docs/ListOrchestrationBatches200ResponseBatchesInner.md new file mode 100644 index 00000000..23606a38 --- /dev/null +++ b/docs/ListOrchestrationBatches200ResponseBatchesInner.md @@ -0,0 +1,38 @@ +# ListOrchestrationBatches200ResponseBatchesInner + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**batch_id** | **str** | | [optional] +**orchestration_id** | **str** | | [optional] +**iteration** | **int** | | [optional] +**item_count** | **int** | | [optional] +**completed_count** | **int** | | [optional] +**failed_count** | **int** | | [optional] +**status** | **str** | | [optional] +**started_at** | **datetime** | | [optional] +**completed_at** | **datetime** | | [optional] +**error** | **str** | | [optional] + +## Example + +```python +from quantcdn.models.list_orchestration_batches200_response_batches_inner import ListOrchestrationBatches200ResponseBatchesInner + +# TODO update the JSON string below +json = "{}" +# create an instance of ListOrchestrationBatches200ResponseBatchesInner from a JSON string +list_orchestration_batches200_response_batches_inner_instance = ListOrchestrationBatches200ResponseBatchesInner.from_json(json) +# print the JSON string representation of the object +print(ListOrchestrationBatches200ResponseBatchesInner.to_json()) + +# convert the object into a dict +list_orchestration_batches200_response_batches_inner_dict = list_orchestration_batches200_response_batches_inner_instance.to_dict() +# create an instance of ListOrchestrationBatches200ResponseBatchesInner from a dict +list_orchestration_batches200_response_batches_inner_from_dict = ListOrchestrationBatches200ResponseBatchesInner.from_dict(list_orchestration_batches200_response_batches_inner_dict) +``` +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/ListOrchestrations200Response.md b/docs/ListOrchestrations200Response.md new file mode 100644 index 00000000..930d2984 --- /dev/null +++ b/docs/ListOrchestrations200Response.md @@ -0,0 +1,30 @@ +# ListOrchestrations200Response + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**orchestrations** | **List[object]** | | [optional] +**next_cursor** | **str** | | [optional] + +## Example + +```python +from quantcdn.models.list_orchestrations200_response import ListOrchestrations200Response + +# TODO update the JSON string below +json = "{}" +# create an instance of ListOrchestrations200Response from a JSON string +list_orchestrations200_response_instance = ListOrchestrations200Response.from_json(json) +# print the JSON string representation of the object +print(ListOrchestrations200Response.to_json()) + +# convert the object into a dict +list_orchestrations200_response_dict = list_orchestrations200_response_instance.to_dict() +# create an instance of ListOrchestrations200Response from a dict +list_orchestrations200_response_from_dict = ListOrchestrations200Response.from_dict(list_orchestrations200_response_dict) +``` +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/ListSkillCollections200Response.md b/docs/ListSkillCollections200Response.md new file mode 100644 index 00000000..b1749c51 --- /dev/null +++ b/docs/ListSkillCollections200Response.md @@ -0,0 +1,29 @@ +# ListSkillCollections200Response + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**collections** | [**List[ListSkillCollections200ResponseCollectionsInner]**](ListSkillCollections200ResponseCollectionsInner.md) | | [optional] + +## Example + +```python +from quantcdn.models.list_skill_collections200_response import ListSkillCollections200Response + +# TODO update the JSON string below +json = "{}" +# create an instance of ListSkillCollections200Response from a JSON string +list_skill_collections200_response_instance = ListSkillCollections200Response.from_json(json) +# print the JSON string representation of the object +print(ListSkillCollections200Response.to_json()) + +# convert the object into a dict +list_skill_collections200_response_dict = list_skill_collections200_response_instance.to_dict() +# create an instance of ListSkillCollections200Response from a dict +list_skill_collections200_response_from_dict = ListSkillCollections200Response.from_dict(list_skill_collections200_response_dict) +``` +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/ListSkillCollections200ResponseCollectionsInner.md b/docs/ListSkillCollections200ResponseCollectionsInner.md new file mode 100644 index 00000000..39af3790 --- /dev/null +++ b/docs/ListSkillCollections200ResponseCollectionsInner.md @@ -0,0 +1,31 @@ +# ListSkillCollections200ResponseCollectionsInner + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**namespace** | **str** | | [optional] +**count** | **int** | | [optional] +**skills** | **List[str]** | | [optional] + +## Example + +```python +from quantcdn.models.list_skill_collections200_response_collections_inner import ListSkillCollections200ResponseCollectionsInner + +# TODO update the JSON string below +json = "{}" +# create an instance of ListSkillCollections200ResponseCollectionsInner from a JSON string +list_skill_collections200_response_collections_inner_instance = ListSkillCollections200ResponseCollectionsInner.from_json(json) +# print the JSON string representation of the object +print(ListSkillCollections200ResponseCollectionsInner.to_json()) + +# convert the object into a dict +list_skill_collections200_response_collections_inner_dict = list_skill_collections200_response_collections_inner_instance.to_dict() +# create an instance of ListSkillCollections200ResponseCollectionsInner from a dict +list_skill_collections200_response_collections_inner_from_dict = ListSkillCollections200ResponseCollectionsInner.from_dict(list_skill_collections200_response_collections_inner_dict) +``` +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/ListSkills200Response.md b/docs/ListSkills200Response.md new file mode 100644 index 00000000..9b3aaf80 --- /dev/null +++ b/docs/ListSkills200Response.md @@ -0,0 +1,30 @@ +# ListSkills200Response + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**skills** | [**List[ListSkills200ResponseSkillsInner]**](ListSkills200ResponseSkillsInner.md) | | [optional] +**count** | **int** | | [optional] + +## Example + +```python +from quantcdn.models.list_skills200_response import ListSkills200Response + +# TODO update the JSON string below +json = "{}" +# create an instance of ListSkills200Response from a JSON string +list_skills200_response_instance = ListSkills200Response.from_json(json) +# print the JSON string representation of the object +print(ListSkills200Response.to_json()) + +# convert the object into a dict +list_skills200_response_dict = list_skills200_response_instance.to_dict() +# create an instance of ListSkills200Response from a dict +list_skills200_response_from_dict = ListSkills200Response.from_dict(list_skills200_response_dict) +``` +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/ListSkills200ResponseSkillsInner.md b/docs/ListSkills200ResponseSkillsInner.md new file mode 100644 index 00000000..be70f0ab --- /dev/null +++ b/docs/ListSkills200ResponseSkillsInner.md @@ -0,0 +1,37 @@ +# ListSkills200ResponseSkillsInner + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**skill_id** | **str** | | [optional] +**name** | **str** | | [optional] +**description** | **str** | | [optional] +**tags** | **List[str]** | | [optional] +**source** | **object** | | [optional] +**trigger_condition** | **str** | | [optional] +**namespace** | **str** | | [optional] +**installed_at** | **datetime** | | [optional] +**updated_at** | **datetime** | | [optional] + +## Example + +```python +from quantcdn.models.list_skills200_response_skills_inner import ListSkills200ResponseSkillsInner + +# TODO update the JSON string below +json = "{}" +# create an instance of ListSkills200ResponseSkillsInner from a JSON string +list_skills200_response_skills_inner_instance = ListSkills200ResponseSkillsInner.from_json(json) +# print the JSON string representation of the object +print(ListSkills200ResponseSkillsInner.to_json()) + +# convert the object into a dict +list_skills200_response_skills_inner_dict = list_skills200_response_skills_inner_instance.to_dict() +# create an instance of ListSkills200ResponseSkillsInner from a dict +list_skills200_response_skills_inner_from_dict = ListSkills200ResponseSkillsInner.from_dict(list_skills200_response_skills_inner_dict) +``` +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/ListSlackBots200Response.md b/docs/ListSlackBots200Response.md new file mode 100644 index 00000000..241a04a0 --- /dev/null +++ b/docs/ListSlackBots200Response.md @@ -0,0 +1,29 @@ +# ListSlackBots200Response + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**bots** | [**List[ListSlackBots200ResponseBotsInner]**](ListSlackBots200ResponseBotsInner.md) | | [optional] + +## Example + +```python +from quantcdn.models.list_slack_bots200_response import ListSlackBots200Response + +# TODO update the JSON string below +json = "{}" +# create an instance of ListSlackBots200Response from a JSON string +list_slack_bots200_response_instance = ListSlackBots200Response.from_json(json) +# print the JSON string representation of the object +print(ListSlackBots200Response.to_json()) + +# convert the object into a dict +list_slack_bots200_response_dict = list_slack_bots200_response_instance.to_dict() +# create an instance of ListSlackBots200Response from a dict +list_slack_bots200_response_from_dict = ListSlackBots200Response.from_dict(list_slack_bots200_response_dict) +``` +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/ListSlackBots200ResponseBotsInner.md b/docs/ListSlackBots200ResponseBotsInner.md new file mode 100644 index 00000000..d34ca7e5 --- /dev/null +++ b/docs/ListSlackBots200ResponseBotsInner.md @@ -0,0 +1,47 @@ +# ListSlackBots200ResponseBotsInner + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**bot_id** | **str** | | [optional] +**name** | **str** | | [optional] +**setup_type** | **str** | | [optional] +**status** | **str** | | [optional] +**connected** | **bool** | | [optional] +**system_prompt** | **str** | | [optional] +**model_id** | **str** | | [optional] +**temperature** | **float** | | [optional] +**max_tokens** | **int** | | [optional] +**allowed_tools** | **List[str]** | | [optional] +**assigned_skills** | **List[str]** | | [optional] +**allowed_collections** | **List[str]** | | [optional] +**allowed_sub_agents** | **List[str]** | | [optional] +**guardrail_preset** | **str** | | [optional] +**filter_policies** | **List[str]** | | [optional] +**long_context** | **bool** | | [optional] +**session_ttl_days** | **int** | | [optional] +**keywords_enabled** | **bool** | | [optional] +**created_at** | **datetime** | | [optional] + +## Example + +```python +from quantcdn.models.list_slack_bots200_response_bots_inner import ListSlackBots200ResponseBotsInner + +# TODO update the JSON string below +json = "{}" +# create an instance of ListSlackBots200ResponseBotsInner from a JSON string +list_slack_bots200_response_bots_inner_instance = ListSlackBots200ResponseBotsInner.from_json(json) +# print the JSON string representation of the object +print(ListSlackBots200ResponseBotsInner.to_json()) + +# convert the object into a dict +list_slack_bots200_response_bots_inner_dict = list_slack_bots200_response_bots_inner_instance.to_dict() +# create an instance of ListSlackBots200ResponseBotsInner from a dict +list_slack_bots200_response_bots_inner_from_dict = ListSlackBots200ResponseBotsInner.from_dict(list_slack_bots200_response_bots_inner_dict) +``` +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/OaiChatCompletions200Response.md b/docs/OaiChatCompletions200Response.md new file mode 100644 index 00000000..6fe6044a --- /dev/null +++ b/docs/OaiChatCompletions200Response.md @@ -0,0 +1,34 @@ +# OaiChatCompletions200Response + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**id** | **str** | | [optional] +**object** | **str** | | [optional] +**created** | **int** | | [optional] +**model** | **str** | | [optional] +**choices** | [**List[OaiChatCompletions200ResponseChoicesInner]**](OaiChatCompletions200ResponseChoicesInner.md) | | [optional] +**usage** | [**OaiChatCompletions200ResponseUsage**](OaiChatCompletions200ResponseUsage.md) | | [optional] + +## Example + +```python +from quantcdn.models.oai_chat_completions200_response import OaiChatCompletions200Response + +# TODO update the JSON string below +json = "{}" +# create an instance of OaiChatCompletions200Response from a JSON string +oai_chat_completions200_response_instance = OaiChatCompletions200Response.from_json(json) +# print the JSON string representation of the object +print(OaiChatCompletions200Response.to_json()) + +# convert the object into a dict +oai_chat_completions200_response_dict = oai_chat_completions200_response_instance.to_dict() +# create an instance of OaiChatCompletions200Response from a dict +oai_chat_completions200_response_from_dict = OaiChatCompletions200Response.from_dict(oai_chat_completions200_response_dict) +``` +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/OaiChatCompletions200ResponseChoicesInner.md b/docs/OaiChatCompletions200ResponseChoicesInner.md new file mode 100644 index 00000000..5a8ed253 --- /dev/null +++ b/docs/OaiChatCompletions200ResponseChoicesInner.md @@ -0,0 +1,31 @@ +# OaiChatCompletions200ResponseChoicesInner + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**index** | **int** | | [optional] +**message** | [**OaiChatCompletions200ResponseChoicesInnerMessage**](OaiChatCompletions200ResponseChoicesInnerMessage.md) | | [optional] +**finish_reason** | **str** | | [optional] + +## Example + +```python +from quantcdn.models.oai_chat_completions200_response_choices_inner import OaiChatCompletions200ResponseChoicesInner + +# TODO update the JSON string below +json = "{}" +# create an instance of OaiChatCompletions200ResponseChoicesInner from a JSON string +oai_chat_completions200_response_choices_inner_instance = OaiChatCompletions200ResponseChoicesInner.from_json(json) +# print the JSON string representation of the object +print(OaiChatCompletions200ResponseChoicesInner.to_json()) + +# convert the object into a dict +oai_chat_completions200_response_choices_inner_dict = oai_chat_completions200_response_choices_inner_instance.to_dict() +# create an instance of OaiChatCompletions200ResponseChoicesInner from a dict +oai_chat_completions200_response_choices_inner_from_dict = OaiChatCompletions200ResponseChoicesInner.from_dict(oai_chat_completions200_response_choices_inner_dict) +``` +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/OaiChatCompletions200ResponseChoicesInnerMessage.md b/docs/OaiChatCompletions200ResponseChoicesInnerMessage.md new file mode 100644 index 00000000..0e3f2e5f --- /dev/null +++ b/docs/OaiChatCompletions200ResponseChoicesInnerMessage.md @@ -0,0 +1,31 @@ +# OaiChatCompletions200ResponseChoicesInnerMessage + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**role** | **str** | | [optional] +**content** | **str** | | [optional] +**tool_calls** | **List[object]** | | [optional] + +## Example + +```python +from quantcdn.models.oai_chat_completions200_response_choices_inner_message import OaiChatCompletions200ResponseChoicesInnerMessage + +# TODO update the JSON string below +json = "{}" +# create an instance of OaiChatCompletions200ResponseChoicesInnerMessage from a JSON string +oai_chat_completions200_response_choices_inner_message_instance = OaiChatCompletions200ResponseChoicesInnerMessage.from_json(json) +# print the JSON string representation of the object +print(OaiChatCompletions200ResponseChoicesInnerMessage.to_json()) + +# convert the object into a dict +oai_chat_completions200_response_choices_inner_message_dict = oai_chat_completions200_response_choices_inner_message_instance.to_dict() +# create an instance of OaiChatCompletions200ResponseChoicesInnerMessage from a dict +oai_chat_completions200_response_choices_inner_message_from_dict = OaiChatCompletions200ResponseChoicesInnerMessage.from_dict(oai_chat_completions200_response_choices_inner_message_dict) +``` +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/OaiChatCompletions200ResponseUsage.md b/docs/OaiChatCompletions200ResponseUsage.md new file mode 100644 index 00000000..8153be53 --- /dev/null +++ b/docs/OaiChatCompletions200ResponseUsage.md @@ -0,0 +1,31 @@ +# OaiChatCompletions200ResponseUsage + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**prompt_tokens** | **int** | | [optional] +**completion_tokens** | **int** | | [optional] +**total_tokens** | **int** | | [optional] + +## Example + +```python +from quantcdn.models.oai_chat_completions200_response_usage import OaiChatCompletions200ResponseUsage + +# TODO update the JSON string below +json = "{}" +# create an instance of OaiChatCompletions200ResponseUsage from a JSON string +oai_chat_completions200_response_usage_instance = OaiChatCompletions200ResponseUsage.from_json(json) +# print the JSON string representation of the object +print(OaiChatCompletions200ResponseUsage.to_json()) + +# convert the object into a dict +oai_chat_completions200_response_usage_dict = oai_chat_completions200_response_usage_instance.to_dict() +# create an instance of OaiChatCompletions200ResponseUsage from a dict +oai_chat_completions200_response_usage_from_dict = OaiChatCompletions200ResponseUsage.from_dict(oai_chat_completions200_response_usage_dict) +``` +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/OaiChatCompletionsRequest.md b/docs/OaiChatCompletionsRequest.md new file mode 100644 index 00000000..8f7988a5 --- /dev/null +++ b/docs/OaiChatCompletionsRequest.md @@ -0,0 +1,37 @@ +# OaiChatCompletionsRequest + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**model** | **str** | A model id from GET /oai/v1/models | +**messages** | [**List[OaiChatCompletionsRequestMessagesInner]**](OaiChatCompletionsRequestMessagesInner.md) | | +**stream** | **bool** | Stream the response as SSE chat.completion.chunk events | [optional] [default to False] +**max_tokens** | **int** | | [optional] +**temperature** | **float** | | [optional] +**top_p** | **float** | | [optional] +**tools** | **List[object]** | OpenAI function tool definitions | [optional] +**tool_choice** | **object** | auto | none | required | {type:function, function:{name}} | [optional] +**stream_options** | **object** | {include_usage: true} to emit a final usage chunk when streaming | [optional] + +## Example + +```python +from quantcdn.models.oai_chat_completions_request import OaiChatCompletionsRequest + +# TODO update the JSON string below +json = "{}" +# create an instance of OaiChatCompletionsRequest from a JSON string +oai_chat_completions_request_instance = OaiChatCompletionsRequest.from_json(json) +# print the JSON string representation of the object +print(OaiChatCompletionsRequest.to_json()) + +# convert the object into a dict +oai_chat_completions_request_dict = oai_chat_completions_request_instance.to_dict() +# create an instance of OaiChatCompletionsRequest from a dict +oai_chat_completions_request_from_dict = OaiChatCompletionsRequest.from_dict(oai_chat_completions_request_dict) +``` +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/OaiChatCompletionsRequestMessagesInner.md b/docs/OaiChatCompletionsRequestMessagesInner.md new file mode 100644 index 00000000..c7ee2853 --- /dev/null +++ b/docs/OaiChatCompletionsRequestMessagesInner.md @@ -0,0 +1,30 @@ +# OaiChatCompletionsRequestMessagesInner + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**role** | **str** | | [optional] +**content** | **str** | | [optional] + +## Example + +```python +from quantcdn.models.oai_chat_completions_request_messages_inner import OaiChatCompletionsRequestMessagesInner + +# TODO update the JSON string below +json = "{}" +# create an instance of OaiChatCompletionsRequestMessagesInner from a JSON string +oai_chat_completions_request_messages_inner_instance = OaiChatCompletionsRequestMessagesInner.from_json(json) +# print the JSON string representation of the object +print(OaiChatCompletionsRequestMessagesInner.to_json()) + +# convert the object into a dict +oai_chat_completions_request_messages_inner_dict = oai_chat_completions_request_messages_inner_instance.to_dict() +# create an instance of OaiChatCompletionsRequestMessagesInner from a dict +oai_chat_completions_request_messages_inner_from_dict = OaiChatCompletionsRequestMessagesInner.from_dict(oai_chat_completions_request_messages_inner_dict) +``` +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/OaiEmbeddings200Response.md b/docs/OaiEmbeddings200Response.md new file mode 100644 index 00000000..612f5826 --- /dev/null +++ b/docs/OaiEmbeddings200Response.md @@ -0,0 +1,32 @@ +# OaiEmbeddings200Response + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**object** | **str** | | [optional] +**data** | [**List[OaiEmbeddings200ResponseDataInner]**](OaiEmbeddings200ResponseDataInner.md) | | [optional] +**model** | **str** | | [optional] +**usage** | [**OaiEmbeddings200ResponseUsage**](OaiEmbeddings200ResponseUsage.md) | | [optional] + +## Example + +```python +from quantcdn.models.oai_embeddings200_response import OaiEmbeddings200Response + +# TODO update the JSON string below +json = "{}" +# create an instance of OaiEmbeddings200Response from a JSON string +oai_embeddings200_response_instance = OaiEmbeddings200Response.from_json(json) +# print the JSON string representation of the object +print(OaiEmbeddings200Response.to_json()) + +# convert the object into a dict +oai_embeddings200_response_dict = oai_embeddings200_response_instance.to_dict() +# create an instance of OaiEmbeddings200Response from a dict +oai_embeddings200_response_from_dict = OaiEmbeddings200Response.from_dict(oai_embeddings200_response_dict) +``` +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/OaiEmbeddings200ResponseDataInner.md b/docs/OaiEmbeddings200ResponseDataInner.md new file mode 100644 index 00000000..bd03316f --- /dev/null +++ b/docs/OaiEmbeddings200ResponseDataInner.md @@ -0,0 +1,31 @@ +# OaiEmbeddings200ResponseDataInner + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**object** | **str** | | [optional] +**index** | **int** | | [optional] +**embedding** | **List[float]** | | [optional] + +## Example + +```python +from quantcdn.models.oai_embeddings200_response_data_inner import OaiEmbeddings200ResponseDataInner + +# TODO update the JSON string below +json = "{}" +# create an instance of OaiEmbeddings200ResponseDataInner from a JSON string +oai_embeddings200_response_data_inner_instance = OaiEmbeddings200ResponseDataInner.from_json(json) +# print the JSON string representation of the object +print(OaiEmbeddings200ResponseDataInner.to_json()) + +# convert the object into a dict +oai_embeddings200_response_data_inner_dict = oai_embeddings200_response_data_inner_instance.to_dict() +# create an instance of OaiEmbeddings200ResponseDataInner from a dict +oai_embeddings200_response_data_inner_from_dict = OaiEmbeddings200ResponseDataInner.from_dict(oai_embeddings200_response_data_inner_dict) +``` +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/OaiEmbeddings200ResponseUsage.md b/docs/OaiEmbeddings200ResponseUsage.md new file mode 100644 index 00000000..5aa44694 --- /dev/null +++ b/docs/OaiEmbeddings200ResponseUsage.md @@ -0,0 +1,30 @@ +# OaiEmbeddings200ResponseUsage + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**prompt_tokens** | **int** | | [optional] +**total_tokens** | **int** | | [optional] + +## Example + +```python +from quantcdn.models.oai_embeddings200_response_usage import OaiEmbeddings200ResponseUsage + +# TODO update the JSON string below +json = "{}" +# create an instance of OaiEmbeddings200ResponseUsage from a JSON string +oai_embeddings200_response_usage_instance = OaiEmbeddings200ResponseUsage.from_json(json) +# print the JSON string representation of the object +print(OaiEmbeddings200ResponseUsage.to_json()) + +# convert the object into a dict +oai_embeddings200_response_usage_dict = oai_embeddings200_response_usage_instance.to_dict() +# create an instance of OaiEmbeddings200ResponseUsage from a dict +oai_embeddings200_response_usage_from_dict = OaiEmbeddings200ResponseUsage.from_dict(oai_embeddings200_response_usage_dict) +``` +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/OaiEmbeddingsRequest.md b/docs/OaiEmbeddingsRequest.md new file mode 100644 index 00000000..48b21a68 --- /dev/null +++ b/docs/OaiEmbeddingsRequest.md @@ -0,0 +1,30 @@ +# OaiEmbeddingsRequest + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**model** | **str** | | +**input** | **object** | A string or array of strings to embed | + +## Example + +```python +from quantcdn.models.oai_embeddings_request import OaiEmbeddingsRequest + +# TODO update the JSON string below +json = "{}" +# create an instance of OaiEmbeddingsRequest from a JSON string +oai_embeddings_request_instance = OaiEmbeddingsRequest.from_json(json) +# print the JSON string representation of the object +print(OaiEmbeddingsRequest.to_json()) + +# convert the object into a dict +oai_embeddings_request_dict = oai_embeddings_request_instance.to_dict() +# create an instance of OaiEmbeddingsRequest from a dict +oai_embeddings_request_from_dict = OaiEmbeddingsRequest.from_dict(oai_embeddings_request_dict) +``` +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/OaiGetModel200Response.md b/docs/OaiGetModel200Response.md new file mode 100644 index 00000000..da7de500 --- /dev/null +++ b/docs/OaiGetModel200Response.md @@ -0,0 +1,32 @@ +# OaiGetModel200Response + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**id** | **str** | | [optional] +**object** | **str** | | [optional] +**created** | **int** | | [optional] +**owned_by** | **str** | | [optional] + +## Example + +```python +from quantcdn.models.oai_get_model200_response import OaiGetModel200Response + +# TODO update the JSON string below +json = "{}" +# create an instance of OaiGetModel200Response from a JSON string +oai_get_model200_response_instance = OaiGetModel200Response.from_json(json) +# print the JSON string representation of the object +print(OaiGetModel200Response.to_json()) + +# convert the object into a dict +oai_get_model200_response_dict = oai_get_model200_response_instance.to_dict() +# create an instance of OaiGetModel200Response from a dict +oai_get_model200_response_from_dict = OaiGetModel200Response.from_dict(oai_get_model200_response_dict) +``` +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/OaiListModels200Response.md b/docs/OaiListModels200Response.md new file mode 100644 index 00000000..51e2da1f --- /dev/null +++ b/docs/OaiListModels200Response.md @@ -0,0 +1,30 @@ +# OaiListModels200Response + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**object** | **str** | | [optional] +**data** | [**List[OaiListModels200ResponseDataInner]**](OaiListModels200ResponseDataInner.md) | | [optional] + +## Example + +```python +from quantcdn.models.oai_list_models200_response import OaiListModels200Response + +# TODO update the JSON string below +json = "{}" +# create an instance of OaiListModels200Response from a JSON string +oai_list_models200_response_instance = OaiListModels200Response.from_json(json) +# print the JSON string representation of the object +print(OaiListModels200Response.to_json()) + +# convert the object into a dict +oai_list_models200_response_dict = oai_list_models200_response_instance.to_dict() +# create an instance of OaiListModels200Response from a dict +oai_list_models200_response_from_dict = OaiListModels200Response.from_dict(oai_list_models200_response_dict) +``` +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/OaiListModels200ResponseDataInner.md b/docs/OaiListModels200ResponseDataInner.md new file mode 100644 index 00000000..ecdacff1 --- /dev/null +++ b/docs/OaiListModels200ResponseDataInner.md @@ -0,0 +1,32 @@ +# OaiListModels200ResponseDataInner + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**id** | **str** | | [optional] +**object** | **str** | | [optional] +**created** | **int** | | [optional] +**owned_by** | **str** | | [optional] + +## Example + +```python +from quantcdn.models.oai_list_models200_response_data_inner import OaiListModels200ResponseDataInner + +# TODO update the JSON string below +json = "{}" +# create an instance of OaiListModels200ResponseDataInner from a JSON string +oai_list_models200_response_data_inner_instance = OaiListModels200ResponseDataInner.from_json(json) +# print the JSON string representation of the object +print(OaiListModels200ResponseDataInner.to_json()) + +# convert the object into a dict +oai_list_models200_response_data_inner_dict = oai_list_models200_response_data_inner_instance.to_dict() +# create an instance of OaiListModels200ResponseDataInner from a dict +oai_list_models200_response_data_inner_from_dict = OaiListModels200ResponseDataInner.from_dict(oai_list_models200_response_data_inner_dict) +``` +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/OpenAICompatibilityApi.md b/docs/OpenAICompatibilityApi.md new file mode 100644 index 00000000..e2349519 --- /dev/null +++ b/docs/OpenAICompatibilityApi.md @@ -0,0 +1,330 @@ +# quantcdn.OpenAICompatibilityApi + +All URIs are relative to *https://dashboard.quantcdn.io* + +Method | HTTP request | Description +------------- | ------------- | ------------- +[**oai_chat_completions**](OpenAICompatibilityApi.md#oai_chat_completions) | **POST** /oai/v1/chat/completions | Create a chat completion (OpenAI-compatible) +[**oai_embeddings**](OpenAICompatibilityApi.md#oai_embeddings) | **POST** /oai/v1/embeddings | Create embeddings (OpenAI-compatible) +[**oai_get_model**](OpenAICompatibilityApi.md#oai_get_model) | **GET** /oai/v1/models/{model} | Retrieve a model (OpenAI-compatible) +[**oai_list_models**](OpenAICompatibilityApi.md#oai_list_models) | **GET** /oai/v1/models | List available models (OpenAI-compatible) + + +# **oai_chat_completions** +> OaiChatCompletions200Response oai_chat_completions(oai_chat_completions_request) + +Create a chat completion (OpenAI-compatible) + +Drop-in replacement for OpenAI's POST /v1/chat/completions. Point any OpenAI SDK at base_url=https:///oai/v1 and use a Quant API token (qc_...) as the api_key. Set `stream: true` to receive Server-Sent Events (chat.completion.chunk objects terminated by `data: [DONE]`); otherwise a single chat.completion object is returned. Supports tool/function calling and the standard tool_choice modes. + +### Example + +* Bearer (JWT) Authentication (BearerAuth): + +```python +import quantcdn +from quantcdn.models.oai_chat_completions200_response import OaiChatCompletions200Response +from quantcdn.models.oai_chat_completions_request import OaiChatCompletionsRequest +from quantcdn.rest import ApiException +from pprint import pprint + +# Defining the host is optional and defaults to https://dashboard.quantcdn.io +# See configuration.py for a list of all supported configuration parameters. +configuration = quantcdn.Configuration( + host = "https://dashboard.quantcdn.io" +) + +# The client must configure the authentication and authorization parameters +# in accordance with the API server security policy. +# Examples for each auth method are provided below, use the example that +# satisfies your auth use case. + +# Configure Bearer authorization (JWT): BearerAuth +configuration = quantcdn.Configuration( + access_token = os.environ["BEARER_TOKEN"] +) + +# Enter a context with an instance of the API client +with quantcdn.ApiClient(configuration) as api_client: + # Create an instance of the API class + api_instance = quantcdn.OpenAICompatibilityApi(api_client) + oai_chat_completions_request = quantcdn.OaiChatCompletionsRequest() # OaiChatCompletionsRequest | + + try: + # Create a chat completion (OpenAI-compatible) + api_response = api_instance.oai_chat_completions(oai_chat_completions_request) + print("The response of OpenAICompatibilityApi->oai_chat_completions:\n") + pprint(api_response) + except Exception as e: + print("Exception when calling OpenAICompatibilityApi->oai_chat_completions: %s\n" % e) +``` + + + +### Parameters + + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **oai_chat_completions_request** | [**OaiChatCompletionsRequest**](OaiChatCompletionsRequest.md)| | + +### Return type + +[**OaiChatCompletions200Response**](OaiChatCompletions200Response.md) + +### Authorization + +[BearerAuth](../README.md#BearerAuth) + +### HTTP request headers + + - **Content-Type**: application/json + - **Accept**: application/json + +### HTTP response details + +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**200** | A chat.completion object (or an SSE stream of chat.completion.chunk objects when stream=true) | - | +**401** | Missing or invalid API key | - | +**403** | Token not scoped to an organisation, or org lacks AI access | - | +**422** | Invalid request | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **oai_embeddings** +> OaiEmbeddings200Response oai_embeddings(oai_embeddings_request) + +Create embeddings (OpenAI-compatible) + +Drop-in replacement for OpenAI's POST /v1/embeddings. Accepts a single string or an array of strings in `input` and returns a list of embedding objects. + +### Example + +* Bearer (JWT) Authentication (BearerAuth): + +```python +import quantcdn +from quantcdn.models.oai_embeddings200_response import OaiEmbeddings200Response +from quantcdn.models.oai_embeddings_request import OaiEmbeddingsRequest +from quantcdn.rest import ApiException +from pprint import pprint + +# Defining the host is optional and defaults to https://dashboard.quantcdn.io +# See configuration.py for a list of all supported configuration parameters. +configuration = quantcdn.Configuration( + host = "https://dashboard.quantcdn.io" +) + +# The client must configure the authentication and authorization parameters +# in accordance with the API server security policy. +# Examples for each auth method are provided below, use the example that +# satisfies your auth use case. + +# Configure Bearer authorization (JWT): BearerAuth +configuration = quantcdn.Configuration( + access_token = os.environ["BEARER_TOKEN"] +) + +# Enter a context with an instance of the API client +with quantcdn.ApiClient(configuration) as api_client: + # Create an instance of the API class + api_instance = quantcdn.OpenAICompatibilityApi(api_client) + oai_embeddings_request = quantcdn.OaiEmbeddingsRequest() # OaiEmbeddingsRequest | + + try: + # Create embeddings (OpenAI-compatible) + api_response = api_instance.oai_embeddings(oai_embeddings_request) + print("The response of OpenAICompatibilityApi->oai_embeddings:\n") + pprint(api_response) + except Exception as e: + print("Exception when calling OpenAICompatibilityApi->oai_embeddings: %s\n" % e) +``` + + + +### Parameters + + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **oai_embeddings_request** | [**OaiEmbeddingsRequest**](OaiEmbeddingsRequest.md)| | + +### Return type + +[**OaiEmbeddings200Response**](OaiEmbeddings200Response.md) + +### Authorization + +[BearerAuth](../README.md#BearerAuth) + +### HTTP request headers + + - **Content-Type**: application/json + - **Accept**: application/json + +### HTTP response details + +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**200** | A list of embedding objects | - | +**401** | Missing or invalid API key | - | +**403** | Token not scoped to an organisation, or org lacks AI access | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **oai_get_model** +> OaiGetModel200Response oai_get_model(model) + +Retrieve a model (OpenAI-compatible) + +Drop-in replacement for OpenAI's GET /v1/models/{model}. + +### Example + +* Bearer (JWT) Authentication (BearerAuth): + +```python +import quantcdn +from quantcdn.models.oai_get_model200_response import OaiGetModel200Response +from quantcdn.rest import ApiException +from pprint import pprint + +# Defining the host is optional and defaults to https://dashboard.quantcdn.io +# See configuration.py for a list of all supported configuration parameters. +configuration = quantcdn.Configuration( + host = "https://dashboard.quantcdn.io" +) + +# The client must configure the authentication and authorization parameters +# in accordance with the API server security policy. +# Examples for each auth method are provided below, use the example that +# satisfies your auth use case. + +# Configure Bearer authorization (JWT): BearerAuth +configuration = quantcdn.Configuration( + access_token = os.environ["BEARER_TOKEN"] +) + +# Enter a context with an instance of the API client +with quantcdn.ApiClient(configuration) as api_client: + # Create an instance of the API class + api_instance = quantcdn.OpenAICompatibilityApi(api_client) + model = 'amazon.nova-micro-v1:0' # str | + + try: + # Retrieve a model (OpenAI-compatible) + api_response = api_instance.oai_get_model(model) + print("The response of OpenAICompatibilityApi->oai_get_model:\n") + pprint(api_response) + except Exception as e: + print("Exception when calling OpenAICompatibilityApi->oai_get_model: %s\n" % e) +``` + + + +### Parameters + + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **model** | **str**| | + +### Return type + +[**OaiGetModel200Response**](OaiGetModel200Response.md) + +### Authorization + +[BearerAuth](../README.md#BearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + +### HTTP response details + +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**200** | A model object | - | +**401** | Missing or invalid API key | - | +**404** | Model not found | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **oai_list_models** +> OaiListModels200Response oai_list_models() + +List available models (OpenAI-compatible) + +Drop-in replacement for OpenAI's GET /v1/models. Returns the model ids available to the organisation; pass one of these ids as `model` in chat/embeddings requests. + +### Example + +* Bearer (JWT) Authentication (BearerAuth): + +```python +import quantcdn +from quantcdn.models.oai_list_models200_response import OaiListModels200Response +from quantcdn.rest import ApiException +from pprint import pprint + +# Defining the host is optional and defaults to https://dashboard.quantcdn.io +# See configuration.py for a list of all supported configuration parameters. +configuration = quantcdn.Configuration( + host = "https://dashboard.quantcdn.io" +) + +# The client must configure the authentication and authorization parameters +# in accordance with the API server security policy. +# Examples for each auth method are provided below, use the example that +# satisfies your auth use case. + +# Configure Bearer authorization (JWT): BearerAuth +configuration = quantcdn.Configuration( + access_token = os.environ["BEARER_TOKEN"] +) + +# Enter a context with an instance of the API client +with quantcdn.ApiClient(configuration) as api_client: + # Create an instance of the API class + api_instance = quantcdn.OpenAICompatibilityApi(api_client) + + try: + # List available models (OpenAI-compatible) + api_response = api_instance.oai_list_models() + print("The response of OpenAICompatibilityApi->oai_list_models:\n") + pprint(api_response) + except Exception as e: + print("Exception when calling OpenAICompatibilityApi->oai_list_models: %s\n" % e) +``` + + + +### Parameters + +This endpoint does not need any parameter. + +### Return type + +[**OaiListModels200Response**](OaiListModels200Response.md) + +### Authorization + +[BearerAuth](../README.md#BearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + +### HTTP response details + +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**200** | A list of model objects | - | +**401** | Missing or invalid API key | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + diff --git a/docs/OrchestrationApi.md b/docs/OrchestrationApi.md deleted file mode 100644 index 5cb19783..00000000 --- a/docs/OrchestrationApi.md +++ /dev/null @@ -1,120 +0,0 @@ -# quantcdn.OrchestrationApi - -All URIs are relative to *https://dashboard.quantcdn.io* - -Method | HTTP request | Description -------------- | ------------- | ------------- -[**get_ai_orchestration_status**](OrchestrationApi.md#get_ai_orchestration_status) | **GET** /api/v3/organizations/{organisation}/ai/tools/orchestrations/{orchestrationId} | Get Orchestration Status - - -# **get_ai_orchestration_status** -> GetAIOrchestrationStatus200Response get_ai_orchestration_status(organisation, orchestration_id) - -Get Orchestration Status - -Retrieves the status and synthesized result of a multi-tool orchestration. - * - * **Orchestration Pattern:** - * When the AI requests multiple async tools simultaneously, an orchestration is created - * to track all tool executions and synthesize their results into a single coherent response. - * - * **Flow:** - * 1. AI requests multiple async tools (e.g., image generation + web search) - * 2. Chat API creates orchestration and returns orchestrationId - * 3. Tool Orchestrator Lambda polls all async tools - * 4. When all tools complete, Orchestrator synthesizes results using AI - * 5. Client polls this endpoint and receives final synthesized response - * - * **Status Values:** - * - pending: Orchestration created, tools not yet started - * - polling: Orchestrator is actively polling async tools - * - synthesizing: All tools complete, AI is synthesizing response - * - complete: Orchestration finished, synthesizedResponse available - * - failed: Orchestration failed, error available - * - * **Polling Recommendations:** - * - Poll every 2 seconds - * - Maximum poll time: 10 minutes - * - Orchestrator handles tool polling internally - * - * **Benefits over individual polling:** - * - Single poll endpoint for multiple async tools - * - AI synthesizes all results into coherent response - * - Answers the original user question, not just tool summaries - -### Example - -* Bearer (JWT) Authentication (BearerAuth): - -```python -import quantcdn -from quantcdn.models.get_ai_orchestration_status200_response import GetAIOrchestrationStatus200Response -from quantcdn.rest import ApiException -from pprint import pprint - -# Defining the host is optional and defaults to https://dashboard.quantcdn.io -# See configuration.py for a list of all supported configuration parameters. -configuration = quantcdn.Configuration( - host = "https://dashboard.quantcdn.io" -) - -# The client must configure the authentication and authorization parameters -# in accordance with the API server security policy. -# Examples for each auth method are provided below, use the example that -# satisfies your auth use case. - -# Configure Bearer authorization (JWT): BearerAuth -configuration = quantcdn.Configuration( - access_token = os.environ["BEARER_TOKEN"] -) - -# Enter a context with an instance of the API client -with quantcdn.ApiClient(configuration) as api_client: - # Create an instance of the API class - api_instance = quantcdn.OrchestrationApi(api_client) - organisation = 'organisation_example' # str | The organisation ID - orchestration_id = 'orch_abc123def456789012345678901234' # str | Orchestration identifier for aggregated async tool executions - - try: - # Get Orchestration Status - api_response = api_instance.get_ai_orchestration_status(organisation, orchestration_id) - print("The response of OrchestrationApi->get_ai_orchestration_status:\n") - pprint(api_response) - except Exception as e: - print("Exception when calling OrchestrationApi->get_ai_orchestration_status: %s\n" % e) -``` - - - -### Parameters - - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **organisation** | **str**| The organisation ID | - **orchestration_id** | **str**| Orchestration identifier for aggregated async tool executions | - -### Return type - -[**GetAIOrchestrationStatus200Response**](GetAIOrchestrationStatus200Response.md) - -### Authorization - -[BearerAuth](../README.md#BearerAuth) - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: application/json - -### HTTP response details - -| Status code | Description | Response headers | -|-------------|-------------|------------------| -**200** | Orchestration status retrieved successfully | - | -**404** | Orchestration not found (may have expired after 24h) | - | -**403** | Access denied | - | -**500** | Failed to retrieve orchestration status | - | - -[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) - diff --git a/docs/PatchEnvironmentComposeRequest.md b/docs/PatchEnvironmentComposeRequest.md index f4def10b..8c99523f 100644 --- a/docs/PatchEnvironmentComposeRequest.md +++ b/docs/PatchEnvironmentComposeRequest.md @@ -10,6 +10,8 @@ Name | Type | Description | Notes **task_memory** | **str** | | [optional] **min_capacity** | **int** | | [optional] **max_capacity** | **int** | | [optional] +**single_task_only** | **bool** | Forces single-task mode (max one running task). Omitted = auto-detect from stateful containers. | [optional] +**startup_grace_period_seconds** | **int** | Seconds the load balancer waits after a task starts before an unhealthy health check can replace it. Default 120. | [optional] **containers** | **List[object]** | | [optional] **spot_configuration** | [**PatchEnvironmentComposeRequestSpotConfiguration**](PatchEnvironmentComposeRequestSpotConfiguration.md) | | [optional] **enable_cross_env_networking** | **bool** | | [optional] diff --git a/docs/RestoreDatabase202Response.md b/docs/RestoreDatabase202Response.md new file mode 100644 index 00000000..ada812bf --- /dev/null +++ b/docs/RestoreDatabase202Response.md @@ -0,0 +1,31 @@ +# RestoreDatabase202Response + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**restore_id** | **str** | | [optional] +**status** | **str** | | [optional] +**message** | **str** | | [optional] + +## Example + +```python +from quantcdn.models.restore_database202_response import RestoreDatabase202Response + +# TODO update the JSON string below +json = "{}" +# create an instance of RestoreDatabase202Response from a JSON string +restore_database202_response_instance = RestoreDatabase202Response.from_json(json) +# print the JSON string representation of the object +print(RestoreDatabase202Response.to_json()) + +# convert the object into a dict +restore_database202_response_dict = restore_database202_response_instance.to_dict() +# create an instance of RestoreDatabase202Response from a dict +restore_database202_response_from_dict = RestoreDatabase202Response.from_dict(restore_database202_response_dict) +``` +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/RestoreDatabaseRequest.md b/docs/RestoreDatabaseRequest.md new file mode 100644 index 00000000..ce8062ae --- /dev/null +++ b/docs/RestoreDatabaseRequest.md @@ -0,0 +1,30 @@ +# RestoreDatabaseRequest + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**backup_id** | **str** | The backup ID to restore (must match path param) | +**acknowledge_dataloss** | **bool** | Must be true to confirm existing data will be overwritten | + +## Example + +```python +from quantcdn.models.restore_database_request import RestoreDatabaseRequest + +# TODO update the JSON string below +json = "{}" +# create an instance of RestoreDatabaseRequest from a JSON string +restore_database_request_instance = RestoreDatabaseRequest.from_json(json) +# print the JSON string representation of the object +print(RestoreDatabaseRequest.to_json()) + +# convert the object into a dict +restore_database_request_dict = restore_database_request_instance.to_dict() +# create an instance of RestoreDatabaseRequest from a dict +restore_database_request_from_dict = RestoreDatabaseRequest.from_dict(restore_database_request_dict) +``` +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/RestoreFilesystem202Response.md b/docs/RestoreFilesystem202Response.md new file mode 100644 index 00000000..da50e970 --- /dev/null +++ b/docs/RestoreFilesystem202Response.md @@ -0,0 +1,31 @@ +# RestoreFilesystem202Response + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**restore_id** | **str** | | [optional] +**status** | **str** | | [optional] +**message** | **str** | | [optional] + +## Example + +```python +from quantcdn.models.restore_filesystem202_response import RestoreFilesystem202Response + +# TODO update the JSON string below +json = "{}" +# create an instance of RestoreFilesystem202Response from a JSON string +restore_filesystem202_response_instance = RestoreFilesystem202Response.from_json(json) +# print the JSON string representation of the object +print(RestoreFilesystem202Response.to_json()) + +# convert the object into a dict +restore_filesystem202_response_dict = restore_filesystem202_response_instance.to_dict() +# create an instance of RestoreFilesystem202Response from a dict +restore_filesystem202_response_from_dict = RestoreFilesystem202Response.from_dict(restore_filesystem202_response_dict) +``` +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/RestoreFilesystemRequest.md b/docs/RestoreFilesystemRequest.md new file mode 100644 index 00000000..840f83c5 --- /dev/null +++ b/docs/RestoreFilesystemRequest.md @@ -0,0 +1,30 @@ +# RestoreFilesystemRequest + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**backup_id** | **str** | The backup ID to restore (must match path param) | +**acknowledge_dataloss** | **bool** | Must be true. tar extraction overwrites same-named files in the target EFS in place; pre-existing files not in the archive are preserved. | + +## Example + +```python +from quantcdn.models.restore_filesystem_request import RestoreFilesystemRequest + +# TODO update the JSON string below +json = "{}" +# create an instance of RestoreFilesystemRequest from a JSON string +restore_filesystem_request_instance = RestoreFilesystemRequest.from_json(json) +# print the JSON string representation of the object +print(RestoreFilesystemRequest.to_json()) + +# convert the object into a dict +restore_filesystem_request_dict = restore_filesystem_request_instance.to_dict() +# create an instance of RestoreFilesystemRequest from a dict +restore_filesystem_request_from_dict = RestoreFilesystemRequest.from_dict(restore_filesystem_request_dict) +``` +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/RestoreManagementApi.md b/docs/RestoreManagementApi.md new file mode 100644 index 00000000..979d45db --- /dev/null +++ b/docs/RestoreManagementApi.md @@ -0,0 +1,271 @@ +# quantcdn.RestoreManagementApi + +All URIs are relative to *https://dashboard.quantcdn.io* + +Method | HTTP request | Description +------------- | ------------- | ------------- +[**get_restore_status**](RestoreManagementApi.md#get_restore_status) | **GET** /api/v3/organizations/{organisation}/applications/{application}/environments/{environment}/restores/{restoreId} | Get the status of a restore operation +[**restore_database**](RestoreManagementApi.md#restore_database) | **POST** /api/v3/organizations/{organisation}/applications/{application}/environments/{environment}/backups/{backupId}/restore-database | Restore a database backup to a target environment +[**restore_filesystem**](RestoreManagementApi.md#restore_filesystem) | **POST** /api/v3/organizations/{organisation}/applications/{application}/environments/{environment}/backups/{backupId}/restore-filesystem | Restore a filesystem backup to a target environment + + +# **get_restore_status** +> GetRestoreStatus200Response get_restore_status(organisation, application, environment, restore_id) + +Get the status of a restore operation + +Returns the current status and metadata for a restore operation. Poll this endpoint to track progress. + +### Example + +* Bearer (JWT) Authentication (BearerAuth): + +```python +import quantcdn +from quantcdn.models.get_restore_status200_response import GetRestoreStatus200Response +from quantcdn.rest import ApiException +from pprint import pprint + +# Defining the host is optional and defaults to https://dashboard.quantcdn.io +# See configuration.py for a list of all supported configuration parameters. +configuration = quantcdn.Configuration( + host = "https://dashboard.quantcdn.io" +) + +# The client must configure the authentication and authorization parameters +# in accordance with the API server security policy. +# Examples for each auth method are provided below, use the example that +# satisfies your auth use case. + +# Configure Bearer authorization (JWT): BearerAuth +configuration = quantcdn.Configuration( + access_token = os.environ["BEARER_TOKEN"] +) + +# Enter a context with an instance of the API client +with quantcdn.ApiClient(configuration) as api_client: + # Create an instance of the API class + api_instance = quantcdn.RestoreManagementApi(api_client) + organisation = 'test-org' # str | The organisation ID + application = 'test-app' # str | The application ID + environment = 'staging' # str | The environment ID + restore_id = 'restore-abc123' # str | The restore operation ID + + try: + # Get the status of a restore operation + api_response = api_instance.get_restore_status(organisation, application, environment, restore_id) + print("The response of RestoreManagementApi->get_restore_status:\n") + pprint(api_response) + except Exception as e: + print("Exception when calling RestoreManagementApi->get_restore_status: %s\n" % e) +``` + + + +### Parameters + + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **organisation** | **str**| The organisation ID | + **application** | **str**| The application ID | + **environment** | **str**| The environment ID | + **restore_id** | **str**| The restore operation ID | + +### Return type + +[**GetRestoreStatus200Response**](GetRestoreStatus200Response.md) + +### Authorization + +[BearerAuth](../README.md#BearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + +### HTTP response details + +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**200** | Restore operation record | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **restore_database** +> RestoreDatabase202Response restore_database(organisation, application, environment, backup_id, restore_database_request) + +Restore a database backup to a target environment + +Initiates an async restore of a database backup into the specified target environment. The backup may originate from a different environment of the same application (cross-env restore). Returns 202 with a restoreId for status polling. + +### Example + +* Bearer (JWT) Authentication (BearerAuth): + +```python +import quantcdn +from quantcdn.models.restore_database202_response import RestoreDatabase202Response +from quantcdn.models.restore_database_request import RestoreDatabaseRequest +from quantcdn.rest import ApiException +from pprint import pprint + +# Defining the host is optional and defaults to https://dashboard.quantcdn.io +# See configuration.py for a list of all supported configuration parameters. +configuration = quantcdn.Configuration( + host = "https://dashboard.quantcdn.io" +) + +# The client must configure the authentication and authorization parameters +# in accordance with the API server security policy. +# Examples for each auth method are provided below, use the example that +# satisfies your auth use case. + +# Configure Bearer authorization (JWT): BearerAuth +configuration = quantcdn.Configuration( + access_token = os.environ["BEARER_TOKEN"] +) + +# Enter a context with an instance of the API client +with quantcdn.ApiClient(configuration) as api_client: + # Create an instance of the API class + api_instance = quantcdn.RestoreManagementApi(api_client) + organisation = 'test-org' # str | The organisation ID + application = 'test-app' # str | The application ID + environment = 'staging' # str | The TARGET environment ID to restore INTO + backup_id = 'quant-gov-dashboard-staging-2025-09-19T21-50-27-145Z' # str | The backup ID to restore from + restore_database_request = quantcdn.RestoreDatabaseRequest() # RestoreDatabaseRequest | + + try: + # Restore a database backup to a target environment + api_response = api_instance.restore_database(organisation, application, environment, backup_id, restore_database_request) + print("The response of RestoreManagementApi->restore_database:\n") + pprint(api_response) + except Exception as e: + print("Exception when calling RestoreManagementApi->restore_database: %s\n" % e) +``` + + + +### Parameters + + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **organisation** | **str**| The organisation ID | + **application** | **str**| The application ID | + **environment** | **str**| The TARGET environment ID to restore INTO | + **backup_id** | **str**| The backup ID to restore from | + **restore_database_request** | [**RestoreDatabaseRequest**](RestoreDatabaseRequest.md)| | + +### Return type + +[**RestoreDatabase202Response**](RestoreDatabase202Response.md) + +### Authorization + +[BearerAuth](../README.md#BearerAuth) + +### HTTP request headers + + - **Content-Type**: application/json + - **Accept**: application/json + +### HTTP response details + +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**202** | Restore operation initiated | - | +**422** | Validation error | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **restore_filesystem** +> RestoreFilesystem202Response restore_filesystem(organisation, application, environment, backup_id, restore_filesystem_request) + +Restore a filesystem backup to a target environment + +Initiates an async restore of a filesystem backup into the specified target environment. The backup may originate from a different environment of the same application (cross-env restore). Returns 202 with a restoreId for status polling. + +### Example + +* Bearer (JWT) Authentication (BearerAuth): + +```python +import quantcdn +from quantcdn.models.restore_filesystem202_response import RestoreFilesystem202Response +from quantcdn.models.restore_filesystem_request import RestoreFilesystemRequest +from quantcdn.rest import ApiException +from pprint import pprint + +# Defining the host is optional and defaults to https://dashboard.quantcdn.io +# See configuration.py for a list of all supported configuration parameters. +configuration = quantcdn.Configuration( + host = "https://dashboard.quantcdn.io" +) + +# The client must configure the authentication and authorization parameters +# in accordance with the API server security policy. +# Examples for each auth method are provided below, use the example that +# satisfies your auth use case. + +# Configure Bearer authorization (JWT): BearerAuth +configuration = quantcdn.Configuration( + access_token = os.environ["BEARER_TOKEN"] +) + +# Enter a context with an instance of the API client +with quantcdn.ApiClient(configuration) as api_client: + # Create an instance of the API class + api_instance = quantcdn.RestoreManagementApi(api_client) + organisation = 'test-org' # str | The organisation ID + application = 'test-app' # str | The application ID + environment = 'staging' # str | The TARGET environment ID to restore INTO + backup_id = 'quant-gov-dashboard-staging-2025-09-19T21-50-27-145Z' # str | The backup ID to restore from + restore_filesystem_request = quantcdn.RestoreFilesystemRequest() # RestoreFilesystemRequest | + + try: + # Restore a filesystem backup to a target environment + api_response = api_instance.restore_filesystem(organisation, application, environment, backup_id, restore_filesystem_request) + print("The response of RestoreManagementApi->restore_filesystem:\n") + pprint(api_response) + except Exception as e: + print("Exception when calling RestoreManagementApi->restore_filesystem: %s\n" % e) +``` + + + +### Parameters + + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **organisation** | **str**| The organisation ID | + **application** | **str**| The application ID | + **environment** | **str**| The TARGET environment ID to restore INTO | + **backup_id** | **str**| The backup ID to restore from | + **restore_filesystem_request** | [**RestoreFilesystemRequest**](RestoreFilesystemRequest.md)| | + +### Return type + +[**RestoreFilesystem202Response**](RestoreFilesystem202Response.md) + +### Authorization + +[BearerAuth](../README.md#BearerAuth) + +### HTTP request headers + + - **Content-Type**: application/json + - **Accept**: application/json + +### HTTP response details + +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**202** | Restore operation initiated | - | +**422** | Validation error | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + diff --git a/docs/ScalingPolicy.md b/docs/ScalingPolicy.md deleted file mode 100644 index 5fa3d76f..00000000 --- a/docs/ScalingPolicy.md +++ /dev/null @@ -1,32 +0,0 @@ -# ScalingPolicy - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**metric** | **str** | | [optional] -**target_value** | **float** | | [optional] -**scale_in_cooldown_seconds** | **int** | | [optional] -**scale_out_cooldown_seconds** | **int** | | [optional] - -## Example - -```python -from quantcdn.models.scaling_policy import ScalingPolicy - -# TODO update the JSON string below -json = "{}" -# create an instance of ScalingPolicy from a JSON string -scaling_policy_instance = ScalingPolicy.from_json(json) -# print the JSON string representation of the object -print(ScalingPolicy.to_json()) - -# convert the object into a dict -scaling_policy_dict = scaling_policy_instance.to_dict() -# create an instance of ScalingPolicy from a dict -scaling_policy_from_dict = ScalingPolicy.from_dict(scaling_policy_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - diff --git a/docs/ScalingPolicyApi.md b/docs/ScalingPolicyApi.md index f5325c91..c40228f9 100644 --- a/docs/ScalingPolicyApi.md +++ b/docs/ScalingPolicyApi.md @@ -4,15 +4,17 @@ All URIs are relative to *https://dashboard.quantcdn.io* Method | HTTP request | Description ------------- | ------------- | ------------- -[**delete_scaling_policy**](ScalingPolicyApi.md#delete_scaling_policy) | **DELETE** /api/v3/organizations/{organisation}/applications/{application}/environments/{environment}/scaling-policies/{policyName} | Delete the scaling policy for an environment -[**get_scaling_policies**](ScalingPolicyApi.md#get_scaling_policies) | **GET** /api/v3/organizations/{organisation}/applications/{application}/environments/{environment}/scaling-policies | Get the scaling policies for an environment -[**update_scaling_policy**](ScalingPolicyApi.md#update_scaling_policy) | **PUT** /api/v3/organizations/{organisation}/applications/{application}/environments/{environment}/scaling-policies | Update the scaling policy for an environment +[**delete_scaling_policy**](ScalingPolicyApi.md#delete_scaling_policy) | **DELETE** /api/v3/organizations/{organisation}/applications/{application}/environments/{environment}/scaling-policies | Delete Scaling Policy +[**list_scaling_policies**](ScalingPolicyApi.md#list_scaling_policies) | **GET** /api/v3/organizations/{organisation}/applications/{application}/environments/{environment}/scaling-policies | List Scaling Policies +[**upsert_scaling_policy**](ScalingPolicyApi.md#upsert_scaling_policy) | **PUT** /api/v3/organizations/{organisation}/applications/{application}/environments/{environment}/scaling-policies | Upsert Scaling Policy # **delete_scaling_policy** -> delete_scaling_policy(organisation, application, environment, policy_name) +> delete_scaling_policy(organisation, application, environment, metric=metric, policy_name=policy_name) -Delete the scaling policy for an environment +Delete Scaling Policy + +Deletes a specific scaling policy for the environment. Specify the metric type or policy name to delete a single policy. If neither is provided, all policies will be deleted. ### Example @@ -43,14 +45,15 @@ configuration = quantcdn.Configuration( with quantcdn.ApiClient(configuration) as api_client: # Create an instance of the API class api_instance = quantcdn.ScalingPolicyApi(api_client) - organisation = 'test-org' # str | The organisation ID - application = 'test-app' # str | The application ID - environment = 'test-env' # str | The environment ID - policy_name = 'policy_name_example' # str | The policy name + organisation = 'organisation_example' # str | + application = 'application_example' # str | + environment = 'environment_example' # str | + metric = 'metric_example' # str | Optional. Delete by metric type. (optional) + policy_name = 'policy_name_example' # str | Optional. Delete by exact policy name. (optional) try: - # Delete the scaling policy for an environment - api_instance.delete_scaling_policy(organisation, application, environment, policy_name) + # Delete Scaling Policy + api_instance.delete_scaling_policy(organisation, application, environment, metric=metric, policy_name=policy_name) except Exception as e: print("Exception when calling ScalingPolicyApi->delete_scaling_policy: %s\n" % e) ``` @@ -62,10 +65,11 @@ with quantcdn.ApiClient(configuration) as api_client: Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **organisation** | **str**| The organisation ID | - **application** | **str**| The application ID | - **environment** | **str**| The environment ID | - **policy_name** | **str**| The policy name | + **organisation** | **str**| | + **application** | **str**| | + **environment** | **str**| | + **metric** | **str**| Optional. Delete by metric type. | [optional] + **policy_name** | **str**| Optional. Delete by exact policy name. | [optional] ### Return type @@ -84,14 +88,16 @@ void (empty response body) | Status code | Description | Response headers | |-------------|-------------|------------------| -**204** | The scaling policy for the environment | - | +**204** | Scaling policy deleted successfully. | - | [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **get_scaling_policies** -> get_scaling_policies(organisation, application, environment) +# **list_scaling_policies** +> ScalingPolicyListResponse list_scaling_policies(organisation, application, environment, metric=metric, policy_name=policy_name) + +List Scaling Policies -Get the scaling policies for an environment +Retrieves all active target tracking scaling policies for the environment. Returns an array of policies, each with its metric, target value, cooldowns, and resource label (if applicable). ### Example @@ -99,6 +105,7 @@ Get the scaling policies for an environment ```python import quantcdn +from quantcdn.models.scaling_policy_list_response import ScalingPolicyListResponse from quantcdn.rest import ApiException from pprint import pprint @@ -122,15 +129,19 @@ configuration = quantcdn.Configuration( with quantcdn.ApiClient(configuration) as api_client: # Create an instance of the API class api_instance = quantcdn.ScalingPolicyApi(api_client) - organisation = 'test-org' # str | The organisation ID - application = 'test-app' # str | The application ID - environment = 'test-env' # str | The environment ID + organisation = 'organisation_example' # str | + application = 'application_example' # str | + environment = 'environment_example' # str | + metric = 'metric_example' # str | Optional. Filter policies by metric type. (optional) + policy_name = 'policy_name_example' # str | Optional. Filter policies by exact policy name. (optional) try: - # Get the scaling policies for an environment - api_instance.get_scaling_policies(organisation, application, environment) + # List Scaling Policies + api_response = api_instance.list_scaling_policies(organisation, application, environment, metric=metric, policy_name=policy_name) + print("The response of ScalingPolicyApi->list_scaling_policies:\n") + pprint(api_response) except Exception as e: - print("Exception when calling ScalingPolicyApi->get_scaling_policies: %s\n" % e) + print("Exception when calling ScalingPolicyApi->list_scaling_policies: %s\n" % e) ``` @@ -140,13 +151,15 @@ with quantcdn.ApiClient(configuration) as api_client: Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **organisation** | **str**| The organisation ID | - **application** | **str**| The application ID | - **environment** | **str**| The environment ID | + **organisation** | **str**| | + **application** | **str**| | + **environment** | **str**| | + **metric** | **str**| Optional. Filter policies by metric type. | [optional] + **policy_name** | **str**| Optional. Filter policies by exact policy name. | [optional] ### Return type -void (empty response body) +[**ScalingPolicyListResponse**](ScalingPolicyListResponse.md) ### Authorization @@ -155,20 +168,22 @@ void (empty response body) ### HTTP request headers - **Content-Type**: Not defined - - **Accept**: Not defined + - **Accept**: application/json ### HTTP response details | Status code | Description | Response headers | |-------------|-------------|------------------| -**200** | The scaling policy for the environment | - | +**200** | List of scaling policies for the environment. | - | [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) -# **update_scaling_policy** -> update_scaling_policy(organisation, application, environment, scaling_policy) +# **upsert_scaling_policy** +> GetScalingPolicyResponse upsert_scaling_policy(organisation, application, environment, set_scaling_policy_request, policy_name=policy_name) -Update the scaling policy for an environment +Upsert Scaling Policy + +Creates or updates a target tracking scaling policy for the environment. Specify the metric type and target value. If a policy with the same metric or name exists, it will be updated. Optionally, provide a custom policy name via query. ### Example @@ -176,7 +191,8 @@ Update the scaling policy for an environment ```python import quantcdn -from quantcdn.models.scaling_policy import ScalingPolicy +from quantcdn.models.get_scaling_policy_response import GetScalingPolicyResponse +from quantcdn.models.set_scaling_policy_request import SetScalingPolicyRequest from quantcdn.rest import ApiException from pprint import pprint @@ -200,16 +216,19 @@ configuration = quantcdn.Configuration( with quantcdn.ApiClient(configuration) as api_client: # Create an instance of the API class api_instance = quantcdn.ScalingPolicyApi(api_client) - organisation = 'test-org' # str | The organisation ID - application = 'test-app' # str | The application ID - environment = 'test-env' # str | The environment ID - scaling_policy = quantcdn.ScalingPolicy() # ScalingPolicy | + organisation = 'organisation_example' # str | + application = 'application_example' # str | + environment = 'environment_example' # str | + set_scaling_policy_request = quantcdn.SetScalingPolicyRequest() # SetScalingPolicyRequest | + policy_name = 'policy_name_example' # str | Optional. Specify a custom policy name to upsert. (optional) try: - # Update the scaling policy for an environment - api_instance.update_scaling_policy(organisation, application, environment, scaling_policy) + # Upsert Scaling Policy + api_response = api_instance.upsert_scaling_policy(organisation, application, environment, set_scaling_policy_request, policy_name=policy_name) + print("The response of ScalingPolicyApi->upsert_scaling_policy:\n") + pprint(api_response) except Exception as e: - print("Exception when calling ScalingPolicyApi->update_scaling_policy: %s\n" % e) + print("Exception when calling ScalingPolicyApi->upsert_scaling_policy: %s\n" % e) ``` @@ -219,14 +238,15 @@ with quantcdn.ApiClient(configuration) as api_client: Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **organisation** | **str**| The organisation ID | - **application** | **str**| The application ID | - **environment** | **str**| The environment ID | - **scaling_policy** | [**ScalingPolicy**](ScalingPolicy.md)| | + **organisation** | **str**| | + **application** | **str**| | + **environment** | **str**| | + **set_scaling_policy_request** | [**SetScalingPolicyRequest**](SetScalingPolicyRequest.md)| | + **policy_name** | **str**| Optional. Specify a custom policy name to upsert. | [optional] ### Return type -void (empty response body) +[**GetScalingPolicyResponse**](GetScalingPolicyResponse.md) ### Authorization @@ -235,13 +255,13 @@ void (empty response body) ### HTTP request headers - **Content-Type**: application/json - - **Accept**: Not defined + - **Accept**: application/json ### HTTP response details | Status code | Description | Response headers | |-------------|-------------|------------------| -**200** | The scaling policy for the environment | - | +**200** | Scaling policy created or updated successfully. | - | [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) diff --git a/docs/ScalingPolicyListResponse.md b/docs/ScalingPolicyListResponse.md new file mode 100644 index 00000000..728601f5 --- /dev/null +++ b/docs/ScalingPolicyListResponse.md @@ -0,0 +1,29 @@ +# ScalingPolicyListResponse + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**policies** | [**List[GetScalingPolicyResponse]**](GetScalingPolicyResponse.md) | | [optional] + +## Example + +```python +from quantcdn.models.scaling_policy_list_response import ScalingPolicyListResponse + +# TODO update the JSON string below +json = "{}" +# create an instance of ScalingPolicyListResponse from a JSON string +scaling_policy_list_response_instance = ScalingPolicyListResponse.from_json(json) +# print the JSON string representation of the object +print(ScalingPolicyListResponse.to_json()) + +# convert the object into a dict +scaling_policy_list_response_dict = scaling_policy_list_response_instance.to_dict() +# create an instance of ScalingPolicyListResponse from a dict +scaling_policy_list_response_from_dict = ScalingPolicyListResponse.from_dict(scaling_policy_list_response_dict) +``` +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/SearchSlackWorkspaceChannels200Response.md b/docs/SearchSlackWorkspaceChannels200Response.md new file mode 100644 index 00000000..a668416b --- /dev/null +++ b/docs/SearchSlackWorkspaceChannels200Response.md @@ -0,0 +1,29 @@ +# SearchSlackWorkspaceChannels200Response + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**results** | [**List[SearchSlackWorkspaceChannels200ResponseResultsInner]**](SearchSlackWorkspaceChannels200ResponseResultsInner.md) | | [optional] + +## Example + +```python +from quantcdn.models.search_slack_workspace_channels200_response import SearchSlackWorkspaceChannels200Response + +# TODO update the JSON string below +json = "{}" +# create an instance of SearchSlackWorkspaceChannels200Response from a JSON string +search_slack_workspace_channels200_response_instance = SearchSlackWorkspaceChannels200Response.from_json(json) +# print the JSON string representation of the object +print(SearchSlackWorkspaceChannels200Response.to_json()) + +# convert the object into a dict +search_slack_workspace_channels200_response_dict = search_slack_workspace_channels200_response_instance.to_dict() +# create an instance of SearchSlackWorkspaceChannels200Response from a dict +search_slack_workspace_channels200_response_from_dict = SearchSlackWorkspaceChannels200Response.from_dict(search_slack_workspace_channels200_response_dict) +``` +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/SearchSlackWorkspaceChannels200ResponseResultsInner.md b/docs/SearchSlackWorkspaceChannels200ResponseResultsInner.md new file mode 100644 index 00000000..43e57105 --- /dev/null +++ b/docs/SearchSlackWorkspaceChannels200ResponseResultsInner.md @@ -0,0 +1,30 @@ +# SearchSlackWorkspaceChannels200ResponseResultsInner + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**id** | **str** | | [optional] +**name** | **str** | | [optional] + +## Example + +```python +from quantcdn.models.search_slack_workspace_channels200_response_results_inner import SearchSlackWorkspaceChannels200ResponseResultsInner + +# TODO update the JSON string below +json = "{}" +# create an instance of SearchSlackWorkspaceChannels200ResponseResultsInner from a JSON string +search_slack_workspace_channels200_response_results_inner_instance = SearchSlackWorkspaceChannels200ResponseResultsInner.from_json(json) +# print the JSON string representation of the object +print(SearchSlackWorkspaceChannels200ResponseResultsInner.to_json()) + +# convert the object into a dict +search_slack_workspace_channels200_response_results_inner_dict = search_slack_workspace_channels200_response_results_inner_instance.to_dict() +# create an instance of SearchSlackWorkspaceChannels200ResponseResultsInner from a dict +search_slack_workspace_channels200_response_results_inner_from_dict = SearchSlackWorkspaceChannels200ResponseResultsInner.from_dict(search_slack_workspace_channels200_response_results_inner_dict) +``` +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/SearchSlackWorkspaceUsers200Response.md b/docs/SearchSlackWorkspaceUsers200Response.md new file mode 100644 index 00000000..2e6a3574 --- /dev/null +++ b/docs/SearchSlackWorkspaceUsers200Response.md @@ -0,0 +1,29 @@ +# SearchSlackWorkspaceUsers200Response + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**results** | [**List[SearchSlackWorkspaceUsers200ResponseResultsInner]**](SearchSlackWorkspaceUsers200ResponseResultsInner.md) | | [optional] + +## Example + +```python +from quantcdn.models.search_slack_workspace_users200_response import SearchSlackWorkspaceUsers200Response + +# TODO update the JSON string below +json = "{}" +# create an instance of SearchSlackWorkspaceUsers200Response from a JSON string +search_slack_workspace_users200_response_instance = SearchSlackWorkspaceUsers200Response.from_json(json) +# print the JSON string representation of the object +print(SearchSlackWorkspaceUsers200Response.to_json()) + +# convert the object into a dict +search_slack_workspace_users200_response_dict = search_slack_workspace_users200_response_instance.to_dict() +# create an instance of SearchSlackWorkspaceUsers200Response from a dict +search_slack_workspace_users200_response_from_dict = SearchSlackWorkspaceUsers200Response.from_dict(search_slack_workspace_users200_response_dict) +``` +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/SearchSlackWorkspaceUsers200ResponseResultsInner.md b/docs/SearchSlackWorkspaceUsers200ResponseResultsInner.md new file mode 100644 index 00000000..fcd1d651 --- /dev/null +++ b/docs/SearchSlackWorkspaceUsers200ResponseResultsInner.md @@ -0,0 +1,31 @@ +# SearchSlackWorkspaceUsers200ResponseResultsInner + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**id** | **str** | | [optional] +**name** | **str** | | [optional] +**real_name** | **str** | | [optional] + +## Example + +```python +from quantcdn.models.search_slack_workspace_users200_response_results_inner import SearchSlackWorkspaceUsers200ResponseResultsInner + +# TODO update the JSON string below +json = "{}" +# create an instance of SearchSlackWorkspaceUsers200ResponseResultsInner from a JSON string +search_slack_workspace_users200_response_results_inner_instance = SearchSlackWorkspaceUsers200ResponseResultsInner.from_json(json) +# print the JSON string representation of the object +print(SearchSlackWorkspaceUsers200ResponseResultsInner.to_json()) + +# convert the object into a dict +search_slack_workspace_users200_response_results_inner_dict = search_slack_workspace_users200_response_results_inner_instance.to_dict() +# create an instance of SearchSlackWorkspaceUsers200ResponseResultsInner from a dict +search_slack_workspace_users200_response_results_inner_from_dict = SearchSlackWorkspaceUsers200ResponseResultsInner.from_dict(search_slack_workspace_users200_response_results_inner_dict) +``` +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/SetScalingPolicyRequest.md b/docs/SetScalingPolicyRequest.md new file mode 100644 index 00000000..f5f98755 --- /dev/null +++ b/docs/SetScalingPolicyRequest.md @@ -0,0 +1,32 @@ +# SetScalingPolicyRequest + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**metric** | **str** | Metric to track for scaling. | +**target_value** | **float** | Target value. Percentage for CPU/Memory; req/sec per task for RPS. | +**scale_in_cooldown_seconds** | **int** | Cooldown (seconds) before another scale-in can start. | [optional] [default to 300] +**scale_out_cooldown_seconds** | **int** | Cooldown (seconds) before another scale-out can start. | [optional] [default to 60] + +## Example + +```python +from quantcdn.models.set_scaling_policy_request import SetScalingPolicyRequest + +# TODO update the JSON string below +json = "{}" +# create an instance of SetScalingPolicyRequest from a JSON string +set_scaling_policy_request_instance = SetScalingPolicyRequest.from_json(json) +# print the JSON string representation of the object +print(SetScalingPolicyRequest.to_json()) + +# convert the object into a dict +set_scaling_policy_request_dict = set_scaling_policy_request_instance.to_dict() +# create an instance of SetScalingPolicyRequest from a dict +set_scaling_policy_request_from_dict = SetScalingPolicyRequest.from_dict(set_scaling_policy_request_dict) +``` +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/SubscriptionApi.md b/docs/SubscriptionApi.md new file mode 100644 index 00000000..f980f7db --- /dev/null +++ b/docs/SubscriptionApi.md @@ -0,0 +1,88 @@ +# quantcdn.SubscriptionApi + +All URIs are relative to *https://dashboard.quantcdn.io* + +Method | HTTP request | Description +------------- | ------------- | ------------- +[**get_subscription_cloud_usage**](SubscriptionApi.md#get_subscription_cloud_usage) | **GET** /api/v3/organizations/{organisation}/subscription/cloud-usage | Cloud-app cost breakdown for the subscription page + + +# **get_subscription_cloud_usage** +> get_subscription_cloud_usage(organisation, month=month) + +Cloud-app cost breakdown for the subscription page + +Per-project compute/database/storage cost breakdown with spot discount, for the requested month and the month before it. Mirrors the subscription page's Cloud Apps card. + +### Example + +* Bearer (JWT) Authentication (BearerAuth): + +```python +import quantcdn +from quantcdn.rest import ApiException +from pprint import pprint + +# Defining the host is optional and defaults to https://dashboard.quantcdn.io +# See configuration.py for a list of all supported configuration parameters. +configuration = quantcdn.Configuration( + host = "https://dashboard.quantcdn.io" +) + +# The client must configure the authentication and authorization parameters +# in accordance with the API server security policy. +# Examples for each auth method are provided below, use the example that +# satisfies your auth use case. + +# Configure Bearer authorization (JWT): BearerAuth +configuration = quantcdn.Configuration( + access_token = os.environ["BEARER_TOKEN"] +) + +# Enter a context with an instance of the API client +with quantcdn.ApiClient(configuration) as api_client: + # Create an instance of the API class + api_instance = quantcdn.SubscriptionApi(api_client) + organisation = 'organisation_example' # str | + month = 'month_example' # str | YYYY-MM, defaults to current month (optional) + + try: + # Cloud-app cost breakdown for the subscription page + api_instance.get_subscription_cloud_usage(organisation, month=month) + except Exception as e: + print("Exception when calling SubscriptionApi->get_subscription_cloud_usage: %s\n" % e) +``` + + + +### Parameters + + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **organisation** | **str**| | + **month** | **str**| YYYY-MM, defaults to current month | [optional] + +### Return type + +void (empty response body) + +### Authorization + +[BearerAuth](../README.md#BearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: Not defined + +### HTTP response details + +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**200** | Usage envelope | - | +**403** | Missing update_subscription permission or subscription:read scope | - | +**500** | Failed to fetch usage data | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + diff --git a/docs/SyncSkillCollection200Response.md b/docs/SyncSkillCollection200Response.md new file mode 100644 index 00000000..3ee909c5 --- /dev/null +++ b/docs/SyncSkillCollection200Response.md @@ -0,0 +1,34 @@ +# SyncSkillCollection200Response + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**namespace** | **str** | | [optional] +**synced** | **int** | | [optional] +**created** | **int** | | [optional] +**failed** | **int** | | [optional] +**removed_from_source** | **List[str]** | | [optional] +**skills** | **List[object]** | | [optional] + +## Example + +```python +from quantcdn.models.sync_skill_collection200_response import SyncSkillCollection200Response + +# TODO update the JSON string below +json = "{}" +# create an instance of SyncSkillCollection200Response from a JSON string +sync_skill_collection200_response_instance = SyncSkillCollection200Response.from_json(json) +# print the JSON string representation of the object +print(SyncSkillCollection200Response.to_json()) + +# convert the object into a dict +sync_skill_collection200_response_dict = sync_skill_collection200_response_instance.to_dict() +# create an instance of SyncSkillCollection200Response from a dict +sync_skill_collection200_response_from_dict = SyncSkillCollection200Response.from_dict(sync_skill_collection200_response_dict) +``` +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/TokensApi.md b/docs/TokensApi.md new file mode 100644 index 00000000..fe1ea5b8 --- /dev/null +++ b/docs/TokensApi.md @@ -0,0 +1,250 @@ +# quantcdn.TokensApi + +All URIs are relative to *https://dashboard.quantcdn.io* + +Method | HTTP request | Description +------------- | ------------- | ------------- +[**tokens_create**](TokensApi.md#tokens_create) | **POST** /api/v2/organizations/{organization}/tokens | Create a new API token scoped to this organization +[**tokens_delete**](TokensApi.md#tokens_delete) | **DELETE** /api/v2/organizations/{organization}/tokens/{token_id} | Revoke an API token +[**tokens_list**](TokensApi.md#tokens_list) | **GET** /api/v2/organizations/{organization}/tokens | List API tokens scoped to this organization + + +# **tokens_create** +> TokensCreate201Response tokens_create(organization, tokens_create_request) + +Create a new API token scoped to this organization + +### Example + +* Bearer (JWT) Authentication (BearerAuth): + +```python +import quantcdn +from quantcdn.models.tokens_create201_response import TokensCreate201Response +from quantcdn.models.tokens_create_request import TokensCreateRequest +from quantcdn.rest import ApiException +from pprint import pprint + +# Defining the host is optional and defaults to https://dashboard.quantcdn.io +# See configuration.py for a list of all supported configuration parameters. +configuration = quantcdn.Configuration( + host = "https://dashboard.quantcdn.io" +) + +# The client must configure the authentication and authorization parameters +# in accordance with the API server security policy. +# Examples for each auth method are provided below, use the example that +# satisfies your auth use case. + +# Configure Bearer authorization (JWT): BearerAuth +configuration = quantcdn.Configuration( + access_token = os.environ["BEARER_TOKEN"] +) + +# Enter a context with an instance of the API client +with quantcdn.ApiClient(configuration) as api_client: + # Create an instance of the API class + api_instance = quantcdn.TokensApi(api_client) + organization = 'test-org' # str | Organization identifier + tokens_create_request = quantcdn.TokensCreateRequest() # TokensCreateRequest | + + try: + # Create a new API token scoped to this organization + api_response = api_instance.tokens_create(organization, tokens_create_request) + print("The response of TokensApi->tokens_create:\n") + pprint(api_response) + except Exception as e: + print("Exception when calling TokensApi->tokens_create: %s\n" % e) +``` + + + +### Parameters + + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **organization** | **str**| Organization identifier | + **tokens_create_request** | [**TokensCreateRequest**](TokensCreateRequest.md)| | + +### Return type + +[**TokensCreate201Response**](TokensCreate201Response.md) + +### Authorization + +[BearerAuth](../README.md#BearerAuth) + +### HTTP request headers + + - **Content-Type**: application/json + - **Accept**: application/json + +### HTTP response details + +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**201** | Token created. The plain token is returned once and cannot be retrieved again. | - | +**400** | Bad request. | - | +**403** | Access is forbidden. | - | +**422** | Validation error. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **tokens_delete** +> TokensDelete200Response tokens_delete(organization, token_id) + +Revoke an API token + +### Example + +* Bearer (JWT) Authentication (BearerAuth): + +```python +import quantcdn +from quantcdn.models.tokens_delete200_response import TokensDelete200Response +from quantcdn.rest import ApiException +from pprint import pprint + +# Defining the host is optional and defaults to https://dashboard.quantcdn.io +# See configuration.py for a list of all supported configuration parameters. +configuration = quantcdn.Configuration( + host = "https://dashboard.quantcdn.io" +) + +# The client must configure the authentication and authorization parameters +# in accordance with the API server security policy. +# Examples for each auth method are provided below, use the example that +# satisfies your auth use case. + +# Configure Bearer authorization (JWT): BearerAuth +configuration = quantcdn.Configuration( + access_token = os.environ["BEARER_TOKEN"] +) + +# Enter a context with an instance of the API client +with quantcdn.ApiClient(configuration) as api_client: + # Create an instance of the API class + api_instance = quantcdn.TokensApi(api_client) + organization = 'test-org' # str | Organization identifier + token_id = 42 # int | Token ID to revoke + + try: + # Revoke an API token + api_response = api_instance.tokens_delete(organization, token_id) + print("The response of TokensApi->tokens_delete:\n") + pprint(api_response) + except Exception as e: + print("Exception when calling TokensApi->tokens_delete: %s\n" % e) +``` + + + +### Parameters + + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **organization** | **str**| Organization identifier | + **token_id** | **int**| Token ID to revoke | + +### Return type + +[**TokensDelete200Response**](TokensDelete200Response.md) + +### Authorization + +[BearerAuth](../README.md#BearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + +### HTTP response details + +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**200** | Token revoked successfully. | - | +**403** | Access is forbidden. | - | +**404** | Token not found. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + +# **tokens_list** +> List[TokensList200ResponseInner] tokens_list(organization) + +List API tokens scoped to this organization + +### Example + +* Bearer (JWT) Authentication (BearerAuth): + +```python +import quantcdn +from quantcdn.models.tokens_list200_response_inner import TokensList200ResponseInner +from quantcdn.rest import ApiException +from pprint import pprint + +# Defining the host is optional and defaults to https://dashboard.quantcdn.io +# See configuration.py for a list of all supported configuration parameters. +configuration = quantcdn.Configuration( + host = "https://dashboard.quantcdn.io" +) + +# The client must configure the authentication and authorization parameters +# in accordance with the API server security policy. +# Examples for each auth method are provided below, use the example that +# satisfies your auth use case. + +# Configure Bearer authorization (JWT): BearerAuth +configuration = quantcdn.Configuration( + access_token = os.environ["BEARER_TOKEN"] +) + +# Enter a context with an instance of the API client +with quantcdn.ApiClient(configuration) as api_client: + # Create an instance of the API class + api_instance = quantcdn.TokensApi(api_client) + organization = 'test-org' # str | Organization identifier + + try: + # List API tokens scoped to this organization + api_response = api_instance.tokens_list(organization) + print("The response of TokensApi->tokens_list:\n") + pprint(api_response) + except Exception as e: + print("Exception when calling TokensApi->tokens_list: %s\n" % e) +``` + + + +### Parameters + + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **organization** | **str**| Organization identifier | + +### Return type + +[**List[TokensList200ResponseInner]**](TokensList200ResponseInner.md) + +### Authorization + +[BearerAuth](../README.md#BearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json + +### HTTP response details + +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**200** | The request has succeeded. | - | +**403** | Access is forbidden. | - | + +[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) + diff --git a/docs/TokensCreate201Response.md b/docs/TokensCreate201Response.md new file mode 100644 index 00000000..9ce6736c --- /dev/null +++ b/docs/TokensCreate201Response.md @@ -0,0 +1,36 @@ +# TokensCreate201Response + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**token** | **str** | The plain text token (shown once) | [optional] +**id** | **int** | Token ID | [optional] +**name** | **str** | | [optional] +**scopes** | **List[str]** | | [optional] +**projects** | **List[int]** | | [optional] +**preset** | **str** | | [optional] +**expires_at** | **datetime** | | [optional] +**created_at** | **datetime** | | [optional] + +## Example + +```python +from quantcdn.models.tokens_create201_response import TokensCreate201Response + +# TODO update the JSON string below +json = "{}" +# create an instance of TokensCreate201Response from a JSON string +tokens_create201_response_instance = TokensCreate201Response.from_json(json) +# print the JSON string representation of the object +print(TokensCreate201Response.to_json()) + +# convert the object into a dict +tokens_create201_response_dict = tokens_create201_response_instance.to_dict() +# create an instance of TokensCreate201Response from a dict +tokens_create201_response_from_dict = TokensCreate201Response.from_dict(tokens_create201_response_dict) +``` +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/TokensCreateRequest.md b/docs/TokensCreateRequest.md new file mode 100644 index 00000000..bc0f878d --- /dev/null +++ b/docs/TokensCreateRequest.md @@ -0,0 +1,33 @@ +# TokensCreateRequest + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**name** | **str** | Name for the token | +**preset** | **str** | Preset scope bundle | [optional] +**scopes** | **List[str]** | Individual scopes (mutually exclusive with preset) | [optional] +**projects** | **List[int]** | Project IDs to restrict this token to | [optional] +**expires_in** | **str** | Token expiration period | [optional] + +## Example + +```python +from quantcdn.models.tokens_create_request import TokensCreateRequest + +# TODO update the JSON string below +json = "{}" +# create an instance of TokensCreateRequest from a JSON string +tokens_create_request_instance = TokensCreateRequest.from_json(json) +# print the JSON string representation of the object +print(TokensCreateRequest.to_json()) + +# convert the object into a dict +tokens_create_request_dict = tokens_create_request_instance.to_dict() +# create an instance of TokensCreateRequest from a dict +tokens_create_request_from_dict = TokensCreateRequest.from_dict(tokens_create_request_dict) +``` +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/TokensDelete200Response.md b/docs/TokensDelete200Response.md new file mode 100644 index 00000000..67673ee1 --- /dev/null +++ b/docs/TokensDelete200Response.md @@ -0,0 +1,29 @@ +# TokensDelete200Response + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**message** | **str** | | [optional] + +## Example + +```python +from quantcdn.models.tokens_delete200_response import TokensDelete200Response + +# TODO update the JSON string below +json = "{}" +# create an instance of TokensDelete200Response from a JSON string +tokens_delete200_response_instance = TokensDelete200Response.from_json(json) +# print the JSON string representation of the object +print(TokensDelete200Response.to_json()) + +# convert the object into a dict +tokens_delete200_response_dict = tokens_delete200_response_instance.to_dict() +# create an instance of TokensDelete200Response from a dict +tokens_delete200_response_from_dict = TokensDelete200Response.from_dict(tokens_delete200_response_dict) +``` +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/TokensList200ResponseInner.md b/docs/TokensList200ResponseInner.md new file mode 100644 index 00000000..2f077094 --- /dev/null +++ b/docs/TokensList200ResponseInner.md @@ -0,0 +1,32 @@ +# TokensList200ResponseInner + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**id** | **int** | | [optional] +**name** | **str** | | [optional] +**last_used** | **datetime** | | [optional] +**created_at** | **datetime** | | [optional] + +## Example + +```python +from quantcdn.models.tokens_list200_response_inner import TokensList200ResponseInner + +# TODO update the JSON string below +json = "{}" +# create an instance of TokensList200ResponseInner from a JSON string +tokens_list200_response_inner_instance = TokensList200ResponseInner.from_json(json) +# print the JSON string representation of the object +print(TokensList200ResponseInner.to_json()) + +# convert the object into a dict +tokens_list200_response_inner_dict = tokens_list200_response_inner_instance.to_dict() +# create an instance of TokensList200ResponseInner from a dict +tokens_list200_response_inner_from_dict = TokensList200ResponseInner.from_dict(tokens_list200_response_inner_dict) +``` +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/UpdateAIAgentRequest.md b/docs/UpdateAIAgentRequest.md index d69f6650..4b460f0a 100644 --- a/docs/UpdateAIAgentRequest.md +++ b/docs/UpdateAIAgentRequest.md @@ -14,6 +14,10 @@ Name | Type | Description | Notes **max_tokens** | **int** | | [optional] **allowed_tools** | **List[str]** | | [optional] **allowed_collections** | **List[str]** | | [optional] +**assigned_skills** | **List[str]** | Skill IDs to assign to this agent | [optional] +**long_context** | **bool** | Enable 1M context window support | [optional] +**guardrail_preset** | **str** | Guardrail preset name | [optional] +**filter_policies** | **List[str]** | Filter policy IDs to apply to this agent's inference requests | [optional] ## Example diff --git a/docs/UpdateFilterPolicyRequest.md b/docs/UpdateFilterPolicyRequest.md new file mode 100644 index 00000000..e525ebf4 --- /dev/null +++ b/docs/UpdateFilterPolicyRequest.md @@ -0,0 +1,32 @@ +# UpdateFilterPolicyRequest + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**name** | **str** | | [optional] +**description** | **str** | | [optional] +**enabled** | **bool** | | [optional] +**rules** | [**List[CreateFilterPolicyRequestRulesInner]**](CreateFilterPolicyRequestRulesInner.md) | | [optional] + +## Example + +```python +from quantcdn.models.update_filter_policy_request import UpdateFilterPolicyRequest + +# TODO update the JSON string below +json = "{}" +# create an instance of UpdateFilterPolicyRequest from a JSON string +update_filter_policy_request_instance = UpdateFilterPolicyRequest.from_json(json) +# print the JSON string representation of the object +print(UpdateFilterPolicyRequest.to_json()) + +# convert the object into a dict +update_filter_policy_request_dict = update_filter_policy_request_instance.to_dict() +# create an instance of UpdateFilterPolicyRequest from a dict +update_filter_policy_request_from_dict = UpdateFilterPolicyRequest.from_dict(update_filter_policy_request_dict) +``` +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/UpdateGovernanceConfig200Response.md b/docs/UpdateGovernanceConfig200Response.md new file mode 100644 index 00000000..b0300042 --- /dev/null +++ b/docs/UpdateGovernanceConfig200Response.md @@ -0,0 +1,30 @@ +# UpdateGovernanceConfig200Response + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**success** | **bool** | | [optional] +**config** | **object** | | [optional] + +## Example + +```python +from quantcdn.models.update_governance_config200_response import UpdateGovernanceConfig200Response + +# TODO update the JSON string below +json = "{}" +# create an instance of UpdateGovernanceConfig200Response from a JSON string +update_governance_config200_response_instance = UpdateGovernanceConfig200Response.from_json(json) +# print the JSON string representation of the object +print(UpdateGovernanceConfig200Response.to_json()) + +# convert the object into a dict +update_governance_config200_response_dict = update_governance_config200_response_instance.to_dict() +# create an instance of UpdateGovernanceConfig200Response from a dict +update_governance_config200_response_from_dict = UpdateGovernanceConfig200Response.from_dict(update_governance_config200_response_dict) +``` +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/UpdateGovernanceConfigRequest.md b/docs/UpdateGovernanceConfigRequest.md new file mode 100644 index 00000000..a9bf373b --- /dev/null +++ b/docs/UpdateGovernanceConfigRequest.md @@ -0,0 +1,35 @@ +# UpdateGovernanceConfigRequest + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**ai_enabled** | **bool** | | +**model_policy** | **str** | | +**model_list** | **List[str]** | | [optional] +**mandatory_guardrail_preset** | **str** | | [optional] +**mandatory_filter_policies** | **List[str]** | | [optional] +**spend_limits** | [**GetGovernanceConfig200ResponseSpendLimits**](GetGovernanceConfig200ResponseSpendLimits.md) | | [optional] +**version** | **int** | | [optional] + +## Example + +```python +from quantcdn.models.update_governance_config_request import UpdateGovernanceConfigRequest + +# TODO update the JSON string below +json = "{}" +# create an instance of UpdateGovernanceConfigRequest from a JSON string +update_governance_config_request_instance = UpdateGovernanceConfigRequest.from_json(json) +# print the JSON string representation of the object +print(UpdateGovernanceConfigRequest.to_json()) + +# convert the object into a dict +update_governance_config_request_dict = update_governance_config_request_instance.to_dict() +# create an instance of UpdateGovernanceConfigRequest from a dict +update_governance_config_request_from_dict = UpdateGovernanceConfigRequest.from_dict(update_governance_config_request_dict) +``` +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/UpdateSkill200Response.md b/docs/UpdateSkill200Response.md new file mode 100644 index 00000000..83ad89ce --- /dev/null +++ b/docs/UpdateSkill200Response.md @@ -0,0 +1,31 @@ +# UpdateSkill200Response + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**success** | **bool** | | [optional] +**skill** | **object** | | [optional] +**message** | **str** | | [optional] + +## Example + +```python +from quantcdn.models.update_skill200_response import UpdateSkill200Response + +# TODO update the JSON string below +json = "{}" +# create an instance of UpdateSkill200Response from a JSON string +update_skill200_response_instance = UpdateSkill200Response.from_json(json) +# print the JSON string representation of the object +print(UpdateSkill200Response.to_json()) + +# convert the object into a dict +update_skill200_response_dict = update_skill200_response_instance.to_dict() +# create an instance of UpdateSkill200Response from a dict +update_skill200_response_from_dict = UpdateSkill200Response.from_dict(update_skill200_response_dict) +``` +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/UpdateSkillRequest.md b/docs/UpdateSkillRequest.md new file mode 100644 index 00000000..02f25397 --- /dev/null +++ b/docs/UpdateSkillRequest.md @@ -0,0 +1,39 @@ +# UpdateSkillRequest + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**name** | **str** | | [optional] +**description** | **str** | | [optional] +**content** | **str** | | [optional] +**trigger_condition** | **str** | | [optional] +**tags** | **List[str]** | | [optional] +**required_tools** | **List[str]** | | [optional] +**source** | **object** | | [optional] +**files** | **object** | | [optional] +**disable_model_invocation** | **bool** | | [optional] +**allowed_tools** | **List[str]** | | [optional] +**namespace** | **str** | | [optional] + +## Example + +```python +from quantcdn.models.update_skill_request import UpdateSkillRequest + +# TODO update the JSON string below +json = "{}" +# create an instance of UpdateSkillRequest from a JSON string +update_skill_request_instance = UpdateSkillRequest.from_json(json) +# print the JSON string representation of the object +print(UpdateSkillRequest.to_json()) + +# convert the object into a dict +update_skill_request_dict = update_skill_request_instance.to_dict() +# create an instance of UpdateSkillRequest from a dict +update_skill_request_from_dict = UpdateSkillRequest.from_dict(update_skill_request_dict) +``` +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/UpdateSlackBotRequest.md b/docs/UpdateSlackBotRequest.md new file mode 100644 index 00000000..f8e2ddce --- /dev/null +++ b/docs/UpdateSlackBotRequest.md @@ -0,0 +1,50 @@ +# UpdateSlackBotRequest + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**name** | **str** | Display name for the bot | [optional] +**status** | **str** | Enable or disable the bot | [optional] +**system_prompt** | **str** | System prompt for the backing AI agent | [optional] +**model_id** | **str** | AI model identifier | [optional] +**temperature** | **float** | Sampling temperature | [optional] +**max_tokens** | **int** | Maximum response tokens | [optional] +**allowed_tools** | **List[str]** | Tools the agent may use | [optional] +**assigned_skills** | **List[str]** | Skills assigned to the agent | [optional] +**allowed_collections** | **List[str]** | Vector DB collections the agent may query | [optional] +**allowed_sub_agents** | **List[str]** | Sub-agents the agent may call | [optional] +**guardrail_preset** | **str** | Guardrail preset name | [optional] +**filter_policies** | **List[str]** | Content filter policies | [optional] +**long_context** | **bool** | Enable long context mode | [optional] +**session_ttl_days** | **int** | Session TTL in days | [optional] +**allowed_channels** | **List[str]** | Slack channel IDs the bot may respond in | [optional] +**allowed_users** | **List[str]** | Slack user IDs allowed to interact with the bot | [optional] +**denied_users** | **List[str]** | Slack user IDs denied from interacting with the bot | [optional] +**allow_guests** | **bool** | Whether guest users may interact with the bot | [optional] +**home_tab_content** | **str** | Content shown on the bot's Home tab in Slack | [optional] +**agent_access_control** | **object** | Agent-level access control settings | [optional] +**keywords_enabled** | **bool** | Whether keyword triggers are enabled | [optional] +**keywords** | **List[str]** | Keywords that trigger the bot | [optional] + +## Example + +```python +from quantcdn.models.update_slack_bot_request import UpdateSlackBotRequest + +# TODO update the JSON string below +json = "{}" +# create an instance of UpdateSlackBotRequest from a JSON string +update_slack_bot_request_instance = UpdateSlackBotRequest.from_json(json) +# print the JSON string representation of the object +print(UpdateSlackBotRequest.to_json()) + +# convert the object into a dict +update_slack_bot_request_dict = update_slack_bot_request_instance.to_dict() +# create an instance of UpdateSlackBotRequest from a dict +update_slack_bot_request_from_dict = UpdateSlackBotRequest.from_dict(update_slack_bot_request_dict) +``` +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/UploadVectorDocumentsRequestDocumentsInner.md b/docs/UploadVectorDocumentsRequestDocumentsInner.md index 8e45f26a..8e4810a7 100644 --- a/docs/UploadVectorDocumentsRequestDocumentsInner.md +++ b/docs/UploadVectorDocumentsRequestDocumentsInner.md @@ -6,6 +6,7 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **content** | **str** | Document text content | +**key** | **str** | Stable document key for upsert | [optional] **metadata** | [**UploadVectorDocumentsRequestDocumentsInnerMetadata**](UploadVectorDocumentsRequestDocumentsInnerMetadata.md) | | [optional] ## Example diff --git a/docs/UpsertAgentOverlay200Response.md b/docs/UpsertAgentOverlay200Response.md new file mode 100644 index 00000000..63788a2a --- /dev/null +++ b/docs/UpsertAgentOverlay200Response.md @@ -0,0 +1,29 @@ +# UpsertAgentOverlay200Response + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**overlay** | **object** | | [optional] + +## Example + +```python +from quantcdn.models.upsert_agent_overlay200_response import UpsertAgentOverlay200Response + +# TODO update the JSON string below +json = "{}" +# create an instance of UpsertAgentOverlay200Response from a JSON string +upsert_agent_overlay200_response_instance = UpsertAgentOverlay200Response.from_json(json) +# print the JSON string representation of the object +print(UpsertAgentOverlay200Response.to_json()) + +# convert the object into a dict +upsert_agent_overlay200_response_dict = upsert_agent_overlay200_response_instance.to_dict() +# create an instance of UpsertAgentOverlay200Response from a dict +upsert_agent_overlay200_response_from_dict = UpsertAgentOverlay200Response.from_dict(upsert_agent_overlay200_response_dict) +``` +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/UpsertAgentOverlayRequest.md b/docs/UpsertAgentOverlayRequest.md new file mode 100644 index 00000000..4c9f0ea9 --- /dev/null +++ b/docs/UpsertAgentOverlayRequest.md @@ -0,0 +1,39 @@ +# UpsertAgentOverlayRequest + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**model_id** | **str** | Override the base agent's model | [optional] +**temperature** | **float** | Override temperature | [optional] +**max_tokens** | **int** | Override max tokens | [optional] +**disabled_skills** | **List[str]** | Global skill IDs to exclude | [optional] +**additional_skills** | **List[str]** | Org-owned skill IDs to add | [optional] +**additional_tools** | **List[str]** | Tool names to add | [optional] +**disabled_tools** | **List[str]** | Tool names to remove | [optional] +**system_prompt_append** | **str** | Text appended to base system prompt | [optional] +**allowed_collections** | **List[str]** | Vector DB collections | [optional] +**guardrail_preset** | **str** | Guardrail preset | [optional] +**version** | **int** | Current version for optimistic concurrency | [optional] + +## Example + +```python +from quantcdn.models.upsert_agent_overlay_request import UpsertAgentOverlayRequest + +# TODO update the JSON string below +json = "{}" +# create an instance of UpsertAgentOverlayRequest from a JSON string +upsert_agent_overlay_request_instance = UpsertAgentOverlayRequest.from_json(json) +# print the JSON string representation of the object +print(UpsertAgentOverlayRequest.to_json()) + +# convert the object into a dict +upsert_agent_overlay_request_dict = upsert_agent_overlay_request_instance.to_dict() +# create an instance of UpsertAgentOverlayRequest from a dict +upsert_agent_overlay_request_from_dict = UpsertAgentOverlayRequest.from_dict(upsert_agent_overlay_request_dict) +``` +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/V2CrawlerSchedule.md b/docs/V2CrawlerSchedule.md index 3639f8d9..1df78df7 100644 --- a/docs/V2CrawlerSchedule.md +++ b/docs/V2CrawlerSchedule.md @@ -11,7 +11,7 @@ Name | Type | Description | Notes **crawler_uuid** | **str** | Crawler UUID | [optional] **project_id** | **int** | Project ID | **crawler_last_run_id** | **int** | Last run ID | -**schedule_cron_string** | **str** | Cron schedule string | +**schedule_cron_string** | **str** | Standard Unix cron expression with 5 space-separated fields: minute, hour, day-of-month, month, day-of-week. Example: 0 2 * * * runs daily at 2 AM. | **created_at** | **datetime** | Creation timestamp | [optional] **updated_at** | **datetime** | Last update timestamp | [optional] diff --git a/docs/V2CrawlerScheduleRequest.md b/docs/V2CrawlerScheduleRequest.md index 46b272d9..22e1837f 100644 --- a/docs/V2CrawlerScheduleRequest.md +++ b/docs/V2CrawlerScheduleRequest.md @@ -5,8 +5,8 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- -**name** | **str** | Schedule name | -**schedule_cron_string** | **str** | Cron schedule string | +**name** | **str** | Schedule name. If not provided, defaults to 'Schedule {crawler_name}'. | [optional] +**schedule_cron_string** | **str** | Standard Unix cron expression with 5 space-separated fields: minute, hour, day-of-month, month, day-of-week. Example: 0 2 * * * for daily at 2 AM. | ## Example diff --git a/docs/V2MetricData.md b/docs/V2MetricData.md new file mode 100644 index 00000000..e3b32cf9 --- /dev/null +++ b/docs/V2MetricData.md @@ -0,0 +1,32 @@ +# V2MetricData + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**series** | [**List[V2MetricDataPoint]**](V2MetricDataPoint.md) | Time series data points | +**period_total** | **float** | Total value for the period | +**all_time_total** | **float** | All-time total value | +**period_average** | **float** | Average value per time unit in the period | + +## Example + +```python +from quantcdn.models.v2_metric_data import V2MetricData + +# TODO update the JSON string below +json = "{}" +# create an instance of V2MetricData from a JSON string +v2_metric_data_instance = V2MetricData.from_json(json) +# print the JSON string representation of the object +print(V2MetricData.to_json()) + +# convert the object into a dict +v2_metric_data_dict = v2_metric_data_instance.to_dict() +# create an instance of V2MetricData from a dict +v2_metric_data_from_dict = V2MetricData.from_dict(v2_metric_data_dict) +``` +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/V2MetricDataPoint.md b/docs/V2MetricDataPoint.md new file mode 100644 index 00000000..5ed99bd2 --- /dev/null +++ b/docs/V2MetricDataPoint.md @@ -0,0 +1,30 @@ +# V2MetricDataPoint + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**timestamp** | [**V2MetricDataPointTimestamp**](V2MetricDataPointTimestamp.md) | | +**value** | **float** | Metric value at this timestamp | + +## Example + +```python +from quantcdn.models.v2_metric_data_point import V2MetricDataPoint + +# TODO update the JSON string below +json = "{}" +# create an instance of V2MetricDataPoint from a JSON string +v2_metric_data_point_instance = V2MetricDataPoint.from_json(json) +# print the JSON string representation of the object +print(V2MetricDataPoint.to_json()) + +# convert the object into a dict +v2_metric_data_point_dict = v2_metric_data_point_instance.to_dict() +# create an instance of V2MetricDataPoint from a dict +v2_metric_data_point_from_dict = V2MetricDataPoint.from_dict(v2_metric_data_point_dict) +``` +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/V2MetricDataPointTimestamp.md b/docs/V2MetricDataPointTimestamp.md new file mode 100644 index 00000000..2d94752c --- /dev/null +++ b/docs/V2MetricDataPointTimestamp.md @@ -0,0 +1,29 @@ +# V2MetricDataPointTimestamp + +Timestamp for this data point (format depends on timestamp_format parameter) + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- + +## Example + +```python +from quantcdn.models.v2_metric_data_point_timestamp import V2MetricDataPointTimestamp + +# TODO update the JSON string below +json = "{}" +# create an instance of V2MetricDataPointTimestamp from a JSON string +v2_metric_data_point_timestamp_instance = V2MetricDataPointTimestamp.from_json(json) +# print the JSON string representation of the object +print(V2MetricDataPointTimestamp.to_json()) + +# convert the object into a dict +v2_metric_data_point_timestamp_dict = v2_metric_data_point_timestamp_instance.to_dict() +# create an instance of V2MetricDataPointTimestamp from a dict +v2_metric_data_point_timestamp_from_dict = V2MetricDataPointTimestamp.from_dict(v2_metric_data_point_timestamp_dict) +``` +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/V2MetricsMeta.md b/docs/V2MetricsMeta.md new file mode 100644 index 00000000..5f3e5340 --- /dev/null +++ b/docs/V2MetricsMeta.md @@ -0,0 +1,34 @@ +# V2MetricsMeta + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**period** | **str** | The period type for this data | +**granularity** | **str** | The granularity of data points | +**start_time** | **str** | Start time of the data range (ISO8601 or Unix timestamp based on timestamp_format parameter) | +**end_time** | **str** | End time of the data range (ISO8601 or Unix timestamp based on timestamp_format parameter) | +**metrics** | **List[str]** | List of metrics included in the response | +**domain** | **str** | Domain filter applied (if any) | [optional] + +## Example + +```python +from quantcdn.models.v2_metrics_meta import V2MetricsMeta + +# TODO update the JSON string below +json = "{}" +# create an instance of V2MetricsMeta from a JSON string +v2_metrics_meta_instance = V2MetricsMeta.from_json(json) +# print the JSON string representation of the object +print(V2MetricsMeta.to_json()) + +# convert the object into a dict +v2_metrics_meta_dict = v2_metrics_meta_instance.to_dict() +# create an instance of V2MetricsMeta from a dict +v2_metrics_meta_from_dict = V2MetricsMeta.from_dict(v2_metrics_meta_dict) +``` +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/V2MetricsResponse.md b/docs/V2MetricsResponse.md new file mode 100644 index 00000000..d38afe41 --- /dev/null +++ b/docs/V2MetricsResponse.md @@ -0,0 +1,30 @@ +# V2MetricsResponse + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**meta** | [**V2MetricsMeta**](V2MetricsMeta.md) | | +**data** | [**Dict[str, V2MetricData]**](V2MetricData.md) | Metrics data keyed by metric name | + +## Example + +```python +from quantcdn.models.v2_metrics_response import V2MetricsResponse + +# TODO update the JSON string below +json = "{}" +# create an instance of V2MetricsResponse from a JSON string +v2_metrics_response_instance = V2MetricsResponse.from_json(json) +# print the JSON string representation of the object +print(V2MetricsResponse.to_json()) + +# convert the object into a dict +v2_metrics_response_dict = v2_metrics_response_instance.to_dict() +# create an instance of V2MetricsResponse from a dict +v2_metrics_response_from_dict = V2MetricsResponse.from_dict(v2_metrics_response_dict) +``` +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/V2Rule.md b/docs/V2Rule.md index 470088d8..90262674 100644 --- a/docs/V2Rule.md +++ b/docs/V2Rule.md @@ -19,6 +19,9 @@ Name | Type | Description | Notes **ip** | **str** | IP address | [optional] **ip_is** | **List[str]** | Allowed IP addresses | [optional] **ip_is_not** | **List[str]** | Excluded IP addresses | [optional] +**asn** | **str** | ASN filter type (asn_is, asn_is_not, any) | [optional] +**asn_is** | **List[str]** | Allowed AS numbers | [optional] +**asn_is_not** | **List[str]** | Excluded AS numbers | [optional] **country** | **str** | Country code | [optional] **country_is** | **List[str]** | Allowed countries | [optional] **country_is_not** | **List[str]** | Excluded countries | [optional] diff --git a/docs/V2RuleAuth.md b/docs/V2RuleAuth.md index 23f0ff85..163b76f4 100644 --- a/docs/V2RuleAuth.md +++ b/docs/V2RuleAuth.md @@ -19,6 +19,9 @@ Name | Type | Description | Notes **ip** | **str** | IP address | [optional] **ip_is** | **List[str]** | Allowed IP addresses | [optional] **ip_is_not** | **List[str]** | Excluded IP addresses | [optional] +**asn** | **str** | ASN filter type (asn_is, asn_is_not, any) | [optional] +**asn_is** | **List[str]** | Allowed AS numbers | [optional] +**asn_is_not** | **List[str]** | Excluded AS numbers | [optional] **country** | **str** | Country code | [optional] **country_is** | **List[str]** | Allowed countries | [optional] **country_is_not** | **List[str]** | Excluded countries | [optional] diff --git a/docs/V2RuleAuthRequest.md b/docs/V2RuleAuthRequest.md index 1438a9aa..1eb571b1 100644 --- a/docs/V2RuleAuthRequest.md +++ b/docs/V2RuleAuthRequest.md @@ -20,6 +20,9 @@ Name | Type | Description | Notes **ip** | **str** | IP filter type (ip_is, ip_is_not, any) | [optional] **ip_is** | **List[str]** | Allowed IP addresses | [optional] **ip_is_not** | **List[str]** | Excluded IP addresses | [optional] +**asn** | **str** | ASN filter type (asn_is, asn_is_not, any) | [optional] +**asn_is** | **List[str]** | Allowed AS numbers | [optional] +**asn_is_not** | **List[str]** | Excluded AS numbers | [optional] **auth_user** | **str** | Authentication username | **auth_pass** | **str** | Authentication password | diff --git a/docs/V2RuleBotChallenge.md b/docs/V2RuleBotChallenge.md index 959b003b..ab955652 100644 --- a/docs/V2RuleBotChallenge.md +++ b/docs/V2RuleBotChallenge.md @@ -19,6 +19,9 @@ Name | Type | Description | Notes **ip** | **str** | IP address | [optional] **ip_is** | **List[str]** | Allowed IP addresses | [optional] **ip_is_not** | **List[str]** | Excluded IP addresses | [optional] +**asn** | **str** | ASN filter type (asn_is, asn_is_not, any) | [optional] +**asn_is** | **List[str]** | Allowed AS numbers | [optional] +**asn_is_not** | **List[str]** | Excluded AS numbers | [optional] **country** | **str** | Country code | [optional] **country_is** | **List[str]** | Allowed countries | [optional] **country_is_not** | **List[str]** | Excluded countries | [optional] diff --git a/docs/V2RuleBotChallengeRequest.md b/docs/V2RuleBotChallengeRequest.md index 7172653d..2017c307 100644 --- a/docs/V2RuleBotChallengeRequest.md +++ b/docs/V2RuleBotChallengeRequest.md @@ -20,6 +20,9 @@ Name | Type | Description | Notes **ip** | **str** | IP filter type (ip_is, ip_is_not, any) | [optional] **ip_is** | **List[str]** | Allowed IP addresses | [optional] **ip_is_not** | **List[str]** | Excluded IP addresses | [optional] +**asn** | **str** | ASN filter type (asn_is, asn_is_not, any) | [optional] +**asn_is** | **List[str]** | Allowed AS numbers | [optional] +**asn_is_not** | **List[str]** | Excluded AS numbers | [optional] **robot_challenge_type** | **str** | Challenge type (invisible or checkbox) | **robot_challenge_verification_ttl** | **int** | Verification TTL in seconds | [optional] [default to 10800] **robot_challenge_challenge_ttl** | **int** | Challenge TTL in seconds | [optional] [default to 30] diff --git a/docs/V2RuleContentFilter.md b/docs/V2RuleContentFilter.md index f4cac721..97934bc4 100644 --- a/docs/V2RuleContentFilter.md +++ b/docs/V2RuleContentFilter.md @@ -19,6 +19,9 @@ Name | Type | Description | Notes **ip** | **str** | IP address | [optional] **ip_is** | **List[str]** | Allowed IP addresses | [optional] **ip_is_not** | **List[str]** | Excluded IP addresses | [optional] +**asn** | **str** | ASN filter type (asn_is, asn_is_not, any) | [optional] +**asn_is** | **List[str]** | Allowed AS numbers | [optional] +**asn_is_not** | **List[str]** | Excluded AS numbers | [optional] **country** | **str** | Country code | [optional] **country_is** | **List[str]** | Allowed countries | [optional] **country_is_not** | **List[str]** | Excluded countries | [optional] diff --git a/docs/V2RuleContentFilterRequest.md b/docs/V2RuleContentFilterRequest.md index d2119f8e..a331e7f6 100644 --- a/docs/V2RuleContentFilterRequest.md +++ b/docs/V2RuleContentFilterRequest.md @@ -20,6 +20,9 @@ Name | Type | Description | Notes **ip** | **str** | IP filter type (ip_is, ip_is_not, any) | [optional] **ip_is** | **List[str]** | Allowed IP addresses | [optional] **ip_is_not** | **List[str]** | Excluded IP addresses | [optional] +**asn** | **str** | ASN filter type (asn_is, asn_is_not, any) | [optional] +**asn_is** | **List[str]** | Allowed AS numbers | [optional] +**asn_is_not** | **List[str]** | Excluded AS numbers | [optional] **fn_uuid** | **str** | Function UUID | ## Example diff --git a/docs/V2RuleCustomResponse.md b/docs/V2RuleCustomResponse.md index 852cba7c..7f6f2465 100644 --- a/docs/V2RuleCustomResponse.md +++ b/docs/V2RuleCustomResponse.md @@ -19,6 +19,9 @@ Name | Type | Description | Notes **ip** | **str** | IP address | [optional] **ip_is** | **List[str]** | Allowed IP addresses | [optional] **ip_is_not** | **List[str]** | Excluded IP addresses | [optional] +**asn** | **str** | ASN filter type (asn_is, asn_is_not, any) | [optional] +**asn_is** | **List[str]** | Allowed AS numbers | [optional] +**asn_is_not** | **List[str]** | Excluded AS numbers | [optional] **country** | **str** | Country code | [optional] **country_is** | **List[str]** | Allowed countries | [optional] **country_is_not** | **List[str]** | Excluded countries | [optional] diff --git a/docs/V2RuleCustomResponseRequest.md b/docs/V2RuleCustomResponseRequest.md index 699c2521..368ab57f 100644 --- a/docs/V2RuleCustomResponseRequest.md +++ b/docs/V2RuleCustomResponseRequest.md @@ -20,6 +20,9 @@ Name | Type | Description | Notes **ip** | **str** | IP filter type (ip_is, ip_is_not, any) | [optional] **ip_is** | **List[str]** | Allowed IP addresses | [optional] **ip_is_not** | **List[str]** | Excluded IP addresses | [optional] +**asn** | **str** | ASN filter type (asn_is, asn_is_not, any) | [optional] +**asn_is** | **List[str]** | Allowed AS numbers | [optional] +**asn_is_not** | **List[str]** | Excluded AS numbers | [optional] **custom_response_body** | **str** | Custom response body content | **custom_response_status_code** | **int** | HTTP status code for custom response | [optional] [default to 200] **status_code** | **int** | Legacy field for status code (deprecated) | [optional] diff --git a/docs/V2RuleFunction.md b/docs/V2RuleFunction.md index af6ef744..dad9d726 100644 --- a/docs/V2RuleFunction.md +++ b/docs/V2RuleFunction.md @@ -19,6 +19,9 @@ Name | Type | Description | Notes **ip** | **str** | IP address | [optional] **ip_is** | **List[str]** | Allowed IP addresses | [optional] **ip_is_not** | **List[str]** | Excluded IP addresses | [optional] +**asn** | **str** | ASN filter type (asn_is, asn_is_not, any) | [optional] +**asn_is** | **List[str]** | Allowed AS numbers | [optional] +**asn_is_not** | **List[str]** | Excluded AS numbers | [optional] **country** | **str** | Country code | [optional] **country_is** | **List[str]** | Allowed countries | [optional] **country_is_not** | **List[str]** | Excluded countries | [optional] diff --git a/docs/V2RuleFunctionRequest.md b/docs/V2RuleFunctionRequest.md index 0a74311d..936ef73d 100644 --- a/docs/V2RuleFunctionRequest.md +++ b/docs/V2RuleFunctionRequest.md @@ -20,6 +20,9 @@ Name | Type | Description | Notes **ip** | **str** | IP filter type (ip_is, ip_is_not, any) | [optional] **ip_is** | **List[str]** | Allowed IP addresses | [optional] **ip_is_not** | **List[str]** | Excluded IP addresses | [optional] +**asn** | **str** | ASN filter type (asn_is, asn_is_not, any) | [optional] +**asn_is** | **List[str]** | Allowed AS numbers | [optional] +**asn_is_not** | **List[str]** | Excluded AS numbers | [optional] **fn_uuid** | **str** | Function UUID | ## Example diff --git a/docs/V2RuleHeader.md b/docs/V2RuleHeader.md index 148af8e4..f66de47d 100644 --- a/docs/V2RuleHeader.md +++ b/docs/V2RuleHeader.md @@ -19,6 +19,9 @@ Name | Type | Description | Notes **ip** | **str** | IP address | [optional] **ip_is** | **List[str]** | Allowed IP addresses | [optional] **ip_is_not** | **List[str]** | Excluded IP addresses | [optional] +**asn** | **str** | ASN filter type (asn_is, asn_is_not, any) | [optional] +**asn_is** | **List[str]** | Allowed AS numbers | [optional] +**asn_is_not** | **List[str]** | Excluded AS numbers | [optional] **country** | **str** | Country code | [optional] **country_is** | **List[str]** | Allowed countries | [optional] **country_is_not** | **List[str]** | Excluded countries | [optional] diff --git a/docs/V2RuleHeaderRequest.md b/docs/V2RuleHeaderRequest.md index af853733..ec96972a 100644 --- a/docs/V2RuleHeaderRequest.md +++ b/docs/V2RuleHeaderRequest.md @@ -20,6 +20,9 @@ Name | Type | Description | Notes **ip** | **str** | IP filter type (ip_is, ip_is_not, any) | [optional] **ip_is** | **List[str]** | Allowed IP addresses | [optional] **ip_is_not** | **List[str]** | Excluded IP addresses | [optional] +**asn** | **str** | ASN filter type (asn_is, asn_is_not, any) | [optional] +**asn_is** | **List[str]** | Allowed AS numbers | [optional] +**asn_is_not** | **List[str]** | Excluded AS numbers | [optional] **headers** | **Dict[str, str]** | Headers to set | ## Example diff --git a/docs/V2RuleProxy.md b/docs/V2RuleProxy.md index f8bcb56b..133cad8c 100644 --- a/docs/V2RuleProxy.md +++ b/docs/V2RuleProxy.md @@ -19,6 +19,9 @@ Name | Type | Description | Notes **ip** | **str** | IP address | [optional] **ip_is** | **List[str]** | Allowed IP addresses | [optional] **ip_is_not** | **List[str]** | Excluded IP addresses | [optional] +**asn** | **str** | ASN filter type (asn_is, asn_is_not, any) | [optional] +**asn_is** | **List[str]** | Allowed AS numbers | [optional] +**asn_is_not** | **List[str]** | Excluded AS numbers | [optional] **country** | **str** | Country code | [optional] **country_is** | **List[str]** | Allowed countries | [optional] **country_is_not** | **List[str]** | Excluded countries | [optional] diff --git a/docs/V2RuleProxyRequest.md b/docs/V2RuleProxyRequest.md index 8f22f7a2..a3b66c40 100644 --- a/docs/V2RuleProxyRequest.md +++ b/docs/V2RuleProxyRequest.md @@ -20,6 +20,9 @@ Name | Type | Description | Notes **ip** | **str** | IP filter type (ip_is, ip_is_not, any) | [optional] **ip_is** | **List[str]** | Allowed IP addresses | [optional] **ip_is_not** | **List[str]** | Excluded IP addresses | [optional] +**asn** | **str** | ASN filter type (asn_is, asn_is_not, any) | [optional] +**asn_is** | **List[str]** | Allowed AS numbers | [optional] +**asn_is_not** | **List[str]** | Excluded AS numbers | [optional] **to** | **str** | Target URL to proxy to | **host** | **str** | Host header override | [optional] **auth_user** | **str** | Basic auth username | [optional] [default to ''] diff --git a/docs/V2RuleRedirect.md b/docs/V2RuleRedirect.md index 1482fa3d..62eef9d6 100644 --- a/docs/V2RuleRedirect.md +++ b/docs/V2RuleRedirect.md @@ -19,6 +19,9 @@ Name | Type | Description | Notes **ip** | **str** | IP address | [optional] **ip_is** | **List[str]** | Allowed IP addresses | [optional] **ip_is_not** | **List[str]** | Excluded IP addresses | [optional] +**asn** | **str** | ASN filter type (asn_is, asn_is_not, any) | [optional] +**asn_is** | **List[str]** | Allowed AS numbers | [optional] +**asn_is_not** | **List[str]** | Excluded AS numbers | [optional] **country** | **str** | Country code | [optional] **country_is** | **List[str]** | Allowed countries | [optional] **country_is_not** | **List[str]** | Excluded countries | [optional] diff --git a/docs/V2RuleRedirectRequest.md b/docs/V2RuleRedirectRequest.md index b12e9864..8cc190e1 100644 --- a/docs/V2RuleRedirectRequest.md +++ b/docs/V2RuleRedirectRequest.md @@ -20,6 +20,9 @@ Name | Type | Description | Notes **ip** | **str** | IP filter type (ip_is, ip_is_not, any) | [optional] **ip_is** | **List[str]** | Allowed IP addresses | [optional] **ip_is_not** | **List[str]** | Excluded IP addresses | [optional] +**asn** | **str** | ASN filter type (asn_is, asn_is_not, any) | [optional] +**asn_is** | **List[str]** | Allowed AS numbers | [optional] +**asn_is_not** | **List[str]** | Excluded AS numbers | [optional] **redirect_to** | **str** | Redirect destination URL | **redirect_code** | **str** | HTTP status code for redirect | [optional] [default to '301'] diff --git a/docs/V2RuleRequest.md b/docs/V2RuleRequest.md index 72af1f31..486eba54 100644 --- a/docs/V2RuleRequest.md +++ b/docs/V2RuleRequest.md @@ -20,6 +20,9 @@ Name | Type | Description | Notes **ip** | **str** | IP filter type (ip_is, ip_is_not, any) | [optional] **ip_is** | **List[str]** | Allowed IP addresses | [optional] **ip_is_not** | **List[str]** | Excluded IP addresses | [optional] +**asn** | **str** | ASN filter type (asn_is, asn_is_not, any) | [optional] +**asn_is** | **List[str]** | Allowed AS numbers | [optional] +**asn_is_not** | **List[str]** | Excluded AS numbers | [optional] ## Example diff --git a/docs/V2RuleServeStatic.md b/docs/V2RuleServeStatic.md index 3df41055..3d23d4e2 100644 --- a/docs/V2RuleServeStatic.md +++ b/docs/V2RuleServeStatic.md @@ -19,6 +19,9 @@ Name | Type | Description | Notes **ip** | **str** | IP address | [optional] **ip_is** | **List[str]** | Allowed IP addresses | [optional] **ip_is_not** | **List[str]** | Excluded IP addresses | [optional] +**asn** | **str** | ASN filter type (asn_is, asn_is_not, any) | [optional] +**asn_is** | **List[str]** | Allowed AS numbers | [optional] +**asn_is_not** | **List[str]** | Excluded AS numbers | [optional] **country** | **str** | Country code | [optional] **country_is** | **List[str]** | Allowed countries | [optional] **country_is_not** | **List[str]** | Excluded countries | [optional] diff --git a/docs/V2RuleServeStaticRequest.md b/docs/V2RuleServeStaticRequest.md index d74167df..2a9fa810 100644 --- a/docs/V2RuleServeStaticRequest.md +++ b/docs/V2RuleServeStaticRequest.md @@ -20,6 +20,9 @@ Name | Type | Description | Notes **ip** | **str** | IP filter type (ip_is, ip_is_not, any) | [optional] **ip_is** | **List[str]** | Allowed IP addresses | [optional] **ip_is_not** | **List[str]** | Excluded IP addresses | [optional] +**asn** | **str** | ASN filter type (asn_is, asn_is_not, any) | [optional] +**asn_is** | **List[str]** | Allowed AS numbers | [optional] +**asn_is_not** | **List[str]** | Excluded AS numbers | [optional] **static_file_path** | **str** | Path to the static file to serve | ## Example diff --git a/pyproject.toml b/pyproject.toml index 5f9a58bb..ec6259f0 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "quantcdn" -version = "4.9.0" +version = "4.20.0" description = "QuantCDN API" authors = ["OpenAPI Generator Community "] license = "NoLicense" diff --git a/quantcdn/__init__.py b/quantcdn/__init__.py index 2d28adfb..0851539f 100644 --- a/quantcdn/__init__.py +++ b/quantcdn/__init__.py @@ -7,7 +7,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. @@ -17,18 +17,26 @@ __version__ = "1.0.0" # import apis into sdk package +from quantcdn.api.ai_api import AIApi from quantcdn.api.ai_agents_api import AIAgentsApi from quantcdn.api.ai_custom_tools_api import AICustomToolsApi from quantcdn.api.ai_file_storage_api import AIFileStorageApi +from quantcdn.api.ai_filter_policies_api import AIFilterPoliciesApi +from quantcdn.api.ai_governance_api import AIGovernanceApi from quantcdn.api.ai_inference_api import AIInferenceApi from quantcdn.api.ai_models_api import AIModelsApi -from quantcdn.api.ai_monitoring_api import AIMonitoringApi +from quantcdn.api.ai_orchestrations_api import AIOrchestrationsApi +from quantcdn.api.ai_search_api import AISearchApi from quantcdn.api.ai_sessions_api import AISessionsApi +from quantcdn.api.ai_skills_api import AISkillsApi +from quantcdn.api.ai_slack_bots_api import AISlackBotsApi from quantcdn.api.ai_task_management_api import AITaskManagementApi from quantcdn.api.ai_tools_api import AIToolsApi +from quantcdn.api.ai_usage_api import AIUsageApi from quantcdn.api.ai_vector_database_api import AIVectorDatabaseApi from quantcdn.api.applications_api import ApplicationsApi from quantcdn.api.backup_management_api import BackupManagementApi +from quantcdn.api.cdn_metrics_api import CDNMetricsApi from quantcdn.api.commands_api import CommandsApi from quantcdn.api.compose_api import ComposeApi from quantcdn.api.containers_api import ContainersApi @@ -39,13 +47,16 @@ from quantcdn.api.environments_api import EnvironmentsApi from quantcdn.api.headers_api import HeadersApi from quantcdn.api.kv_api import KVApi -from quantcdn.api.orchestration_api import OrchestrationApi +from quantcdn.api.open_ai_compatibility_api import OpenAICompatibilityApi from quantcdn.api.organizations_api import OrganizationsApi from quantcdn.api.projects_api import ProjectsApi from quantcdn.api.purge_api import PurgeApi +from quantcdn.api.restore_management_api import RestoreManagementApi from quantcdn.api.rules_api import RulesApi from quantcdn.api.ssh_access_api import SSHAccessApi from quantcdn.api.scaling_policy_api import ScalingPolicyApi +from quantcdn.api.subscription_api import SubscriptionApi +from quantcdn.api.tokens_api import TokensApi from quantcdn.api.variables_api import VariablesApi from quantcdn.api.volumes_api import VolumesApi @@ -61,10 +72,18 @@ from quantcdn.exceptions import ApiException # import models into sdk package +from quantcdn.models.ai_search_chat_request import AiSearchChatRequest +from quantcdn.models.ai_search_delete_pages_request import AiSearchDeletePagesRequest +from quantcdn.models.ai_search_enable_request import AiSearchEnableRequest +from quantcdn.models.ai_search_ingest_pages_request import AiSearchIngestPagesRequest +from quantcdn.models.ai_search_ingest_pages_request_pages_inner import AiSearchIngestPagesRequestPagesInner +from quantcdn.models.ai_search_search_request import AiSearchSearchRequest +from quantcdn.models.ai_search_trigger_crawl_request import AiSearchTriggerCrawlRequest +from quantcdn.models.ai_search_update_settings_request import AiSearchUpdateSettingsRequest from quantcdn.models.application import Application +from quantcdn.models.application_cache import ApplicationCache from quantcdn.models.application_database import ApplicationDatabase from quantcdn.models.application_deployment_information_inner import ApplicationDeploymentInformationInner -from quantcdn.models.application_environments_inner import ApplicationEnvironmentsInner from quantcdn.models.application_filesystem import ApplicationFilesystem from quantcdn.models.application_image_reference import ApplicationImageReference from quantcdn.models.bulk_set_environment_variables_request import BulkSetEnvironmentVariablesRequest @@ -78,6 +97,7 @@ from quantcdn.models.chat_inference200_response_usage import ChatInference200ResponseUsage from quantcdn.models.chat_inference202_response import ChatInference202Response from quantcdn.models.chat_inference_request import ChatInferenceRequest +from quantcdn.models.chat_inference_request_guardrails import ChatInferenceRequestGuardrails from quantcdn.models.chat_inference_request_messages_inner import ChatInferenceRequestMessagesInner from quantcdn.models.chat_inference_request_messages_inner_content import ChatInferenceRequestMessagesInnerContent from quantcdn.models.chat_inference_request_messages_inner_content_one_of_inner import ChatInferenceRequestMessagesInnerContentOneOfInner @@ -135,6 +155,16 @@ from quantcdn.models.create_environment403_response import CreateEnvironment403Response from quantcdn.models.create_environment_request import CreateEnvironmentRequest from quantcdn.models.create_environment_request_environment_inner import CreateEnvironmentRequestEnvironmentInner +from quantcdn.models.create_filter_policy_request import CreateFilterPolicyRequest +from quantcdn.models.create_filter_policy_request_rules_inner import CreateFilterPolicyRequestRulesInner +from quantcdn.models.create_filter_policy_request_rules_inner_match import CreateFilterPolicyRequestRulesInnerMatch +from quantcdn.models.create_orchestration_request import CreateOrchestrationRequest +from quantcdn.models.create_orchestration_request_input_source import CreateOrchestrationRequestInputSource +from quantcdn.models.create_orchestration_request_stop_condition import CreateOrchestrationRequestStopCondition +from quantcdn.models.create_skill201_response import CreateSkill201Response +from quantcdn.models.create_skill_request import CreateSkillRequest +from quantcdn.models.create_slack_bot201_response import CreateSlackBot201Response +from quantcdn.models.create_slack_bot_request import CreateSlackBotRequest from quantcdn.models.create_task201_response import CreateTask201Response from quantcdn.models.create_task_request import CreateTaskRequest from quantcdn.models.create_vector_collection201_response import CreateVectorCollection201Response @@ -145,12 +175,18 @@ from quantcdn.models.cron_run import CronRun from quantcdn.models.delete_ai_agent200_response import DeleteAIAgent200Response from quantcdn.models.delete_ai_session200_response import DeleteAISession200Response +from quantcdn.models.delete_agent_overlay200_response import DeleteAgentOverlay200Response from quantcdn.models.delete_backup200_response import DeleteBackup200Response from quantcdn.models.delete_custom_tool200_response import DeleteCustomTool200Response from quantcdn.models.delete_file200_response import DeleteFile200Response +from quantcdn.models.delete_skill200_response import DeleteSkill200Response +from quantcdn.models.delete_skill_collection200_response import DeleteSkillCollection200Response +from quantcdn.models.delete_slack_bot200_response import DeleteSlackBot200Response from quantcdn.models.delete_task200_response import DeleteTask200Response from quantcdn.models.delete_task409_response import DeleteTask409Response -from quantcdn.models.delete_vector_collection200_response import DeleteVectorCollection200Response +from quantcdn.models.delete_vector_documents200_response import DeleteVectorDocuments200Response +from quantcdn.models.delete_vector_documents_request import DeleteVectorDocumentsRequest +from quantcdn.models.delete_vector_documents_request_metadata import DeleteVectorDocumentsRequestMetadata from quantcdn.models.download_backup200_response import DownloadBackup200Response from quantcdn.models.embeddings200_response import Embeddings200Response from quantcdn.models.embeddings200_response_embeddings import Embeddings200ResponseEmbeddings @@ -175,8 +211,11 @@ from quantcdn.models.get_ai_tool_execution_status200_response import GetAIToolExecutionStatus200Response from quantcdn.models.get_ai_tool_execution_status200_response_result import GetAIToolExecutionStatus200ResponseResult from quantcdn.models.get_ai_tool_execution_status404_response import GetAIToolExecutionStatus404Response -from quantcdn.models.get_ai_usage_stats200_response import GetAIUsageStats200Response -from quantcdn.models.get_ai_usage_stats200_response_by_model_value import GetAIUsageStats200ResponseByModelValue +from quantcdn.models.get_agent_overlay200_response import GetAgentOverlay200Response +from quantcdn.models.get_agent_overlay200_response_base import GetAgentOverlay200ResponseBase +from quantcdn.models.get_agent_overlay200_response_overlay import GetAgentOverlay200ResponseOverlay +from quantcdn.models.get_custom_tool200_response import GetCustomTool200Response +from quantcdn.models.get_custom_tool200_response_tool import GetCustomTool200ResponseTool from quantcdn.models.get_dependency_graph200_response import GetDependencyGraph200Response from quantcdn.models.get_durable_execution_status200_response import GetDurableExecutionStatus200Response from quantcdn.models.get_durable_execution_status200_response_error import GetDurableExecutionStatus200ResponseError @@ -188,6 +227,28 @@ from quantcdn.models.get_environment_logs200_response import GetEnvironmentLogs200Response from quantcdn.models.get_environment_logs200_response_log_events_inner import GetEnvironmentLogs200ResponseLogEventsInner from quantcdn.models.get_file200_response import GetFile200Response +from quantcdn.models.get_governance_config200_response import GetGovernanceConfig200Response +from quantcdn.models.get_governance_config200_response_spend_limits import GetGovernanceConfig200ResponseSpendLimits +from quantcdn.models.get_governance_config200_response_spend_limits_interface_limits_value import GetGovernanceConfig200ResponseSpendLimitsInterfaceLimitsValue +from quantcdn.models.get_governance_config200_response_spend_limits_user_overrides_value import GetGovernanceConfig200ResponseSpendLimitsUserOverridesValue +from quantcdn.models.get_governance_spend200_response import GetGovernanceSpend200Response +from quantcdn.models.get_governance_spend200_response_budget import GetGovernanceSpend200ResponseBudget +from quantcdn.models.get_governance_spend200_response_daily_budget import GetGovernanceSpend200ResponseDailyBudget +from quantcdn.models.get_governance_spend200_response_org_total import GetGovernanceSpend200ResponseOrgTotal +from quantcdn.models.get_governance_spend200_response_today_total import GetGovernanceSpend200ResponseTodayTotal +from quantcdn.models.get_governance_spend200_response_user_total import GetGovernanceSpend200ResponseUserTotal +from quantcdn.models.get_my_usage200_response import GetMyUsage200Response +from quantcdn.models.get_my_usage200_response_daily import GetMyUsage200ResponseDaily +from quantcdn.models.get_my_usage200_response_monthly import GetMyUsage200ResponseMonthly +from quantcdn.models.get_my_usage200_response_quota import GetMyUsage200ResponseQuota +from quantcdn.models.get_my_usage200_response_quota_daily_limit import GetMyUsage200ResponseQuotaDailyLimit +from quantcdn.models.get_my_usage200_response_quota_monthly_limit import GetMyUsage200ResponseQuotaMonthlyLimit +from quantcdn.models.get_restore_status200_response import GetRestoreStatus200Response +from quantcdn.models.get_scaling_policy_response import GetScalingPolicyResponse +from quantcdn.models.get_skill200_response import GetSkill200Response +from quantcdn.models.get_skill200_response_skill import GetSkill200ResponseSkill +from quantcdn.models.get_slack_bot200_response import GetSlackBot200Response +from quantcdn.models.get_slack_bot200_response_bot import GetSlackBot200ResponseBot from quantcdn.models.get_ssh_access_credentials200_response import GetSshAccessCredentials200Response from quantcdn.models.get_ssh_access_credentials200_response_credentials import GetSshAccessCredentials200ResponseCredentials from quantcdn.models.get_task200_response import GetTask200Response @@ -202,10 +263,18 @@ from quantcdn.models.image_generation_request_in_painting_params import ImageGenerationRequestInPaintingParams from quantcdn.models.image_generation_request_out_painting_params import ImageGenerationRequestOutPaintingParams from quantcdn.models.image_generation_request_text_to_image_params import ImageGenerationRequestTextToImageParams +from quantcdn.models.import_skill201_response import ImportSkill201Response +from quantcdn.models.import_skill_collection201_response import ImportSkillCollection201Response +from quantcdn.models.import_skill_collection_request import ImportSkillCollectionRequest +from quantcdn.models.import_skill_collection_request_source import ImportSkillCollectionRequestSource +from quantcdn.models.import_skill_request import ImportSkillRequest +from quantcdn.models.import_skill_request_source import ImportSkillRequestSource from quantcdn.models.kv_items_create200_response import KVItemsCreate200Response from quantcdn.models.kv_items_delete200_response import KVItemsDelete200Response from quantcdn.models.kv_items_show200_response import KVItemsShow200Response from quantcdn.models.kv_items_show200_response_value import KVItemsShow200ResponseValue +from quantcdn.models.kv_link_to_project200_response import KVLinkToProject200Response +from quantcdn.models.kv_link_to_project_request import KVLinkToProjectRequest from quantcdn.models.list_ai_agents200_response import ListAIAgents200Response from quantcdn.models.list_ai_agents200_response_agents_inner import ListAIAgents200ResponseAgentsInner from quantcdn.models.list_ai_models200_response import ListAIModels200Response @@ -226,10 +295,32 @@ from quantcdn.models.list_custom_tools200_response_tools_inner import ListCustomTools200ResponseToolsInner from quantcdn.models.list_files200_response import ListFiles200Response from quantcdn.models.list_files200_response_files_inner import ListFiles200ResponseFilesInner +from quantcdn.models.list_orchestration_batches200_response import ListOrchestrationBatches200Response +from quantcdn.models.list_orchestration_batches200_response_batches_inner import ListOrchestrationBatches200ResponseBatchesInner +from quantcdn.models.list_orchestrations200_response import ListOrchestrations200Response +from quantcdn.models.list_skill_collections200_response import ListSkillCollections200Response +from quantcdn.models.list_skill_collections200_response_collections_inner import ListSkillCollections200ResponseCollectionsInner +from quantcdn.models.list_skills200_response import ListSkills200Response +from quantcdn.models.list_skills200_response_skills_inner import ListSkills200ResponseSkillsInner +from quantcdn.models.list_slack_bots200_response import ListSlackBots200Response +from quantcdn.models.list_slack_bots200_response_bots_inner import ListSlackBots200ResponseBotsInner from quantcdn.models.list_tasks200_response import ListTasks200Response from quantcdn.models.list_tasks200_response_tasks_inner import ListTasks200ResponseTasksInner from quantcdn.models.list_vector_collections200_response import ListVectorCollections200Response from quantcdn.models.list_vector_collections200_response_collections_inner import ListVectorCollections200ResponseCollectionsInner +from quantcdn.models.oai_chat_completions200_response import OaiChatCompletions200Response +from quantcdn.models.oai_chat_completions200_response_choices_inner import OaiChatCompletions200ResponseChoicesInner +from quantcdn.models.oai_chat_completions200_response_choices_inner_message import OaiChatCompletions200ResponseChoicesInnerMessage +from quantcdn.models.oai_chat_completions200_response_usage import OaiChatCompletions200ResponseUsage +from quantcdn.models.oai_chat_completions_request import OaiChatCompletionsRequest +from quantcdn.models.oai_chat_completions_request_messages_inner import OaiChatCompletionsRequestMessagesInner +from quantcdn.models.oai_embeddings200_response import OaiEmbeddings200Response +from quantcdn.models.oai_embeddings200_response_data_inner import OaiEmbeddings200ResponseDataInner +from quantcdn.models.oai_embeddings200_response_usage import OaiEmbeddings200ResponseUsage +from quantcdn.models.oai_embeddings_request import OaiEmbeddingsRequest +from quantcdn.models.oai_get_model200_response import OaiGetModel200Response +from quantcdn.models.oai_list_models200_response import OaiListModels200Response +from quantcdn.models.oai_list_models200_response_data_inner import OaiListModels200ResponseDataInner from quantcdn.models.organizations_list200_response_inner import OrganizationsList200ResponseInner from quantcdn.models.patch_environment_compose202_response import PatchEnvironmentCompose202Response from quantcdn.models.patch_environment_compose202_response_spot_configuration import PatchEnvironmentCompose202ResponseSpotConfiguration @@ -242,13 +333,27 @@ from quantcdn.models.query_vector_collection200_response_results_inner import QueryVectorCollection200ResponseResultsInner from quantcdn.models.query_vector_collection_request import QueryVectorCollectionRequest from quantcdn.models.query_vector_collection_request_filter import QueryVectorCollectionRequestFilter -from quantcdn.models.scaling_policy import ScalingPolicy +from quantcdn.models.restore_database202_response import RestoreDatabase202Response +from quantcdn.models.restore_database_request import RestoreDatabaseRequest +from quantcdn.models.restore_filesystem202_response import RestoreFilesystem202Response +from quantcdn.models.restore_filesystem_request import RestoreFilesystemRequest +from quantcdn.models.scaling_policy_list_response import ScalingPolicyListResponse +from quantcdn.models.search_slack_workspace_channels200_response import SearchSlackWorkspaceChannels200Response +from quantcdn.models.search_slack_workspace_channels200_response_results_inner import SearchSlackWorkspaceChannels200ResponseResultsInner +from quantcdn.models.search_slack_workspace_users200_response import SearchSlackWorkspaceUsers200Response +from quantcdn.models.search_slack_workspace_users200_response_results_inner import SearchSlackWorkspaceUsers200ResponseResultsInner +from quantcdn.models.set_scaling_policy_request import SetScalingPolicyRequest from quantcdn.models.spot_configuration import SpotConfiguration from quantcdn.models.submit_tool_callback200_response import SubmitToolCallback200Response from quantcdn.models.submit_tool_callback_request import SubmitToolCallbackRequest from quantcdn.models.submit_tool_callback_request_tool_results_inner import SubmitToolCallbackRequestToolResultsInner from quantcdn.models.sync_operation import SyncOperation +from quantcdn.models.sync_skill_collection200_response import SyncSkillCollection200Response from quantcdn.models.sync_to_environment_request import SyncToEnvironmentRequest +from quantcdn.models.tokens_create201_response import TokensCreate201Response +from quantcdn.models.tokens_create_request import TokensCreateRequest +from quantcdn.models.tokens_delete200_response import TokensDelete200Response +from quantcdn.models.tokens_list200_response_inner import TokensList200ResponseInner from quantcdn.models.update_ai_agent200_response import UpdateAIAgent200Response from quantcdn.models.update_ai_agent_request import UpdateAIAgentRequest from quantcdn.models.update_ai_session200_response import UpdateAISession200Response @@ -258,6 +363,12 @@ from quantcdn.models.update_environment_request import UpdateEnvironmentRequest from quantcdn.models.update_environment_state_request import UpdateEnvironmentStateRequest from quantcdn.models.update_environment_variable_request import UpdateEnvironmentVariableRequest +from quantcdn.models.update_filter_policy_request import UpdateFilterPolicyRequest +from quantcdn.models.update_governance_config200_response import UpdateGovernanceConfig200Response +from quantcdn.models.update_governance_config_request import UpdateGovernanceConfigRequest +from quantcdn.models.update_skill200_response import UpdateSkill200Response +from quantcdn.models.update_skill_request import UpdateSkillRequest +from quantcdn.models.update_slack_bot_request import UpdateSlackBotRequest from quantcdn.models.update_task200_response import UpdateTask200Response from quantcdn.models.update_task_request import UpdateTaskRequest from quantcdn.models.upload_file201_response import UploadFile201Response @@ -266,6 +377,8 @@ from quantcdn.models.upload_vector_documents_request import UploadVectorDocumentsRequest from quantcdn.models.upload_vector_documents_request_documents_inner import UploadVectorDocumentsRequestDocumentsInner from quantcdn.models.upload_vector_documents_request_documents_inner_metadata import UploadVectorDocumentsRequestDocumentsInnerMetadata +from quantcdn.models.upsert_agent_overlay200_response import UpsertAgentOverlay200Response +from quantcdn.models.upsert_agent_overlay_request import UpsertAgentOverlayRequest from quantcdn.models.v1_content_item import V1ContentItem from quantcdn.models.v1_content_list_response import V1ContentListResponse from quantcdn.models.v1_content_request import V1ContentRequest @@ -321,6 +434,11 @@ from quantcdn.models.v2_domain_dns_validation_records_inner import V2DomainDnsValidationRecordsInner from quantcdn.models.v2_domain_request import V2DomainRequest from quantcdn.models.v2_error import V2Error +from quantcdn.models.v2_metric_data import V2MetricData +from quantcdn.models.v2_metric_data_point import V2MetricDataPoint +from quantcdn.models.v2_metric_data_point_timestamp import V2MetricDataPointTimestamp +from quantcdn.models.v2_metrics_meta import V2MetricsMeta +from quantcdn.models.v2_metrics_response import V2MetricsResponse from quantcdn.models.v2_organization import V2Organization from quantcdn.models.v2_organization_request import V2OrganizationRequest from quantcdn.models.v2_project import V2Project diff --git a/quantcdn/__version__.py b/quantcdn/__version__.py index 787f0e99..e832c894 100644 --- a/quantcdn/__version__.py +++ b/quantcdn/__version__.py @@ -1,2 +1,2 @@ """Version information for quantcdn SDK.""" -__version__ = "4.9.0" +__version__ = "4.20.0" diff --git a/quantcdn/api/__init__.py b/quantcdn/api/__init__.py index 5d10a475..f78edd76 100644 --- a/quantcdn/api/__init__.py +++ b/quantcdn/api/__init__.py @@ -1,18 +1,26 @@ # flake8: noqa # import apis into api package +from quantcdn.api.ai_api import AIApi from quantcdn.api.ai_agents_api import AIAgentsApi from quantcdn.api.ai_custom_tools_api import AICustomToolsApi from quantcdn.api.ai_file_storage_api import AIFileStorageApi +from quantcdn.api.ai_filter_policies_api import AIFilterPoliciesApi +from quantcdn.api.ai_governance_api import AIGovernanceApi from quantcdn.api.ai_inference_api import AIInferenceApi from quantcdn.api.ai_models_api import AIModelsApi -from quantcdn.api.ai_monitoring_api import AIMonitoringApi +from quantcdn.api.ai_orchestrations_api import AIOrchestrationsApi +from quantcdn.api.ai_search_api import AISearchApi from quantcdn.api.ai_sessions_api import AISessionsApi +from quantcdn.api.ai_skills_api import AISkillsApi +from quantcdn.api.ai_slack_bots_api import AISlackBotsApi from quantcdn.api.ai_task_management_api import AITaskManagementApi from quantcdn.api.ai_tools_api import AIToolsApi +from quantcdn.api.ai_usage_api import AIUsageApi from quantcdn.api.ai_vector_database_api import AIVectorDatabaseApi from quantcdn.api.applications_api import ApplicationsApi from quantcdn.api.backup_management_api import BackupManagementApi +from quantcdn.api.cdn_metrics_api import CDNMetricsApi from quantcdn.api.commands_api import CommandsApi from quantcdn.api.compose_api import ComposeApi from quantcdn.api.containers_api import ContainersApi @@ -23,13 +31,16 @@ from quantcdn.api.environments_api import EnvironmentsApi from quantcdn.api.headers_api import HeadersApi from quantcdn.api.kv_api import KVApi -from quantcdn.api.orchestration_api import OrchestrationApi +from quantcdn.api.open_ai_compatibility_api import OpenAICompatibilityApi from quantcdn.api.organizations_api import OrganizationsApi from quantcdn.api.projects_api import ProjectsApi from quantcdn.api.purge_api import PurgeApi +from quantcdn.api.restore_management_api import RestoreManagementApi from quantcdn.api.rules_api import RulesApi from quantcdn.api.ssh_access_api import SSHAccessApi from quantcdn.api.scaling_policy_api import ScalingPolicyApi +from quantcdn.api.subscription_api import SubscriptionApi +from quantcdn.api.tokens_api import TokensApi from quantcdn.api.variables_api import VariablesApi from quantcdn.api.volumes_api import VolumesApi diff --git a/quantcdn/api/ai_agents_api.py b/quantcdn/api/ai_agents_api.py index 996b66ae..4b4f1987 100644 --- a/quantcdn/api/ai_agents_api.py +++ b/quantcdn/api/ai_agents_api.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. @@ -24,10 +24,14 @@ from quantcdn.models.create_ai_agent201_response import CreateAIAgent201Response from quantcdn.models.create_ai_agent_request import CreateAIAgentRequest from quantcdn.models.delete_ai_agent200_response import DeleteAIAgent200Response +from quantcdn.models.delete_agent_overlay200_response import DeleteAgentOverlay200Response from quantcdn.models.get_ai_agent200_response import GetAIAgent200Response +from quantcdn.models.get_agent_overlay200_response import GetAgentOverlay200Response from quantcdn.models.list_ai_agents200_response import ListAIAgents200Response from quantcdn.models.update_ai_agent200_response import UpdateAIAgent200Response from quantcdn.models.update_ai_agent_request import UpdateAIAgentRequest +from quantcdn.models.upsert_agent_overlay200_response import UpsertAgentOverlay200Response +from quantcdn.models.upsert_agent_overlay_request import UpsertAgentOverlayRequest from quantcdn.api_client import ApiClient, RequestSerialized from quantcdn.api_response import ApiResponse @@ -665,10 +669,10 @@ def _create_ai_agent_serialize( @validate_call - def delete_ai_agent( + def delete_agent_overlay( self, organisation: Annotated[StrictStr, Field(description="The organisation ID")], - agent_id: Annotated[StrictStr, Field(description="The agent ID")], + agent_id: Annotated[StrictStr, Field(description="Global agent identifier")], _request_timeout: Union[ None, Annotated[StrictFloat, Field(gt=0)], @@ -681,14 +685,14 @@ def delete_ai_agent( _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> DeleteAIAgent200Response: - """Delete Agent + ) -> DeleteAgentOverlay200Response: + """Delete Agent Overlay - Permanently deletes an AI agent. This action cannot be undone. + Removes the per-organisation overlay for a global agent, reverting it to platform defaults. :param organisation: The organisation ID (required) :type organisation: str - :param agent_id: The agent ID (required) + :param agent_id: Global agent identifier (required) :type agent_id: str :param _request_timeout: timeout setting for this request. If one number provided, it will be total request @@ -712,7 +716,7 @@ def delete_ai_agent( :return: Returns the result object. """ # noqa: E501 - _param = self._delete_ai_agent_serialize( + _param = self._delete_agent_overlay_serialize( organisation=organisation, agent_id=agent_id, _request_auth=_request_auth, @@ -722,7 +726,7 @@ def delete_ai_agent( ) _response_types_map: Dict[str, Optional[str]] = { - '200': "DeleteAIAgent200Response", + '200': "DeleteAgentOverlay200Response", '403': None, '404': None, '500': None, @@ -739,10 +743,10 @@ def delete_ai_agent( @validate_call - def delete_ai_agent_with_http_info( + def delete_agent_overlay_with_http_info( self, organisation: Annotated[StrictStr, Field(description="The organisation ID")], - agent_id: Annotated[StrictStr, Field(description="The agent ID")], + agent_id: Annotated[StrictStr, Field(description="Global agent identifier")], _request_timeout: Union[ None, Annotated[StrictFloat, Field(gt=0)], @@ -755,14 +759,14 @@ def delete_ai_agent_with_http_info( _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> ApiResponse[DeleteAIAgent200Response]: - """Delete Agent + ) -> ApiResponse[DeleteAgentOverlay200Response]: + """Delete Agent Overlay - Permanently deletes an AI agent. This action cannot be undone. + Removes the per-organisation overlay for a global agent, reverting it to platform defaults. :param organisation: The organisation ID (required) :type organisation: str - :param agent_id: The agent ID (required) + :param agent_id: Global agent identifier (required) :type agent_id: str :param _request_timeout: timeout setting for this request. If one number provided, it will be total request @@ -786,7 +790,7 @@ def delete_ai_agent_with_http_info( :return: Returns the result object. """ # noqa: E501 - _param = self._delete_ai_agent_serialize( + _param = self._delete_agent_overlay_serialize( organisation=organisation, agent_id=agent_id, _request_auth=_request_auth, @@ -796,7 +800,7 @@ def delete_ai_agent_with_http_info( ) _response_types_map: Dict[str, Optional[str]] = { - '200': "DeleteAIAgent200Response", + '200': "DeleteAgentOverlay200Response", '403': None, '404': None, '500': None, @@ -813,10 +817,10 @@ def delete_ai_agent_with_http_info( @validate_call - def delete_ai_agent_without_preload_content( + def delete_agent_overlay_without_preload_content( self, organisation: Annotated[StrictStr, Field(description="The organisation ID")], - agent_id: Annotated[StrictStr, Field(description="The agent ID")], + agent_id: Annotated[StrictStr, Field(description="Global agent identifier")], _request_timeout: Union[ None, Annotated[StrictFloat, Field(gt=0)], @@ -830,13 +834,13 @@ def delete_ai_agent_without_preload_content( _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, ) -> RESTResponseType: - """Delete Agent + """Delete Agent Overlay - Permanently deletes an AI agent. This action cannot be undone. + Removes the per-organisation overlay for a global agent, reverting it to platform defaults. :param organisation: The organisation ID (required) :type organisation: str - :param agent_id: The agent ID (required) + :param agent_id: Global agent identifier (required) :type agent_id: str :param _request_timeout: timeout setting for this request. If one number provided, it will be total request @@ -860,7 +864,7 @@ def delete_ai_agent_without_preload_content( :return: Returns the result object. """ # noqa: E501 - _param = self._delete_ai_agent_serialize( + _param = self._delete_agent_overlay_serialize( organisation=organisation, agent_id=agent_id, _request_auth=_request_auth, @@ -870,7 +874,7 @@ def delete_ai_agent_without_preload_content( ) _response_types_map: Dict[str, Optional[str]] = { - '200': "DeleteAIAgent200Response", + '200': "DeleteAgentOverlay200Response", '403': None, '404': None, '500': None, @@ -882,7 +886,7 @@ def delete_ai_agent_without_preload_content( return response_data.response - def _delete_ai_agent_serialize( + def _delete_agent_overlay_serialize( self, organisation, agent_id, @@ -933,7 +937,7 @@ def _delete_ai_agent_serialize( return self.api_client.param_serialize( method='DELETE', - resource_path='/api/v3/organizations/{organisation}/ai/agents/{agentId}', + resource_path='/api/v3/organizations/{organisation}/ai/agents/{agentId}/overlay', path_params=_path_params, query_params=_query_params, header_params=_header_params, @@ -950,7 +954,7 @@ def _delete_ai_agent_serialize( @validate_call - def get_ai_agent( + def delete_ai_agent( self, organisation: Annotated[StrictStr, Field(description="The organisation ID")], agent_id: Annotated[StrictStr, Field(description="The agent ID")], @@ -966,10 +970,10 @@ def get_ai_agent( _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> GetAIAgent200Response: - """Get Agent Details + ) -> DeleteAIAgent200Response: + """Delete Agent - Retrieves detailed configuration for a specific AI agent. + Permanently deletes an AI agent. This action cannot be undone. :param organisation: The organisation ID (required) :type organisation: str @@ -997,7 +1001,7 @@ def get_ai_agent( :return: Returns the result object. """ # noqa: E501 - _param = self._get_ai_agent_serialize( + _param = self._delete_ai_agent_serialize( organisation=organisation, agent_id=agent_id, _request_auth=_request_auth, @@ -1007,7 +1011,7 @@ def get_ai_agent( ) _response_types_map: Dict[str, Optional[str]] = { - '200': "GetAIAgent200Response", + '200': "DeleteAIAgent200Response", '403': None, '404': None, '500': None, @@ -1024,7 +1028,7 @@ def get_ai_agent( @validate_call - def get_ai_agent_with_http_info( + def delete_ai_agent_with_http_info( self, organisation: Annotated[StrictStr, Field(description="The organisation ID")], agent_id: Annotated[StrictStr, Field(description="The agent ID")], @@ -1040,10 +1044,10 @@ def get_ai_agent_with_http_info( _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> ApiResponse[GetAIAgent200Response]: - """Get Agent Details + ) -> ApiResponse[DeleteAIAgent200Response]: + """Delete Agent - Retrieves detailed configuration for a specific AI agent. + Permanently deletes an AI agent. This action cannot be undone. :param organisation: The organisation ID (required) :type organisation: str @@ -1071,7 +1075,7 @@ def get_ai_agent_with_http_info( :return: Returns the result object. """ # noqa: E501 - _param = self._get_ai_agent_serialize( + _param = self._delete_ai_agent_serialize( organisation=organisation, agent_id=agent_id, _request_auth=_request_auth, @@ -1081,7 +1085,7 @@ def get_ai_agent_with_http_info( ) _response_types_map: Dict[str, Optional[str]] = { - '200': "GetAIAgent200Response", + '200': "DeleteAIAgent200Response", '403': None, '404': None, '500': None, @@ -1098,7 +1102,7 @@ def get_ai_agent_with_http_info( @validate_call - def get_ai_agent_without_preload_content( + def delete_ai_agent_without_preload_content( self, organisation: Annotated[StrictStr, Field(description="The organisation ID")], agent_id: Annotated[StrictStr, Field(description="The agent ID")], @@ -1115,9 +1119,9 @@ def get_ai_agent_without_preload_content( _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, ) -> RESTResponseType: - """Get Agent Details + """Delete Agent - Retrieves detailed configuration for a specific AI agent. + Permanently deletes an AI agent. This action cannot be undone. :param organisation: The organisation ID (required) :type organisation: str @@ -1145,7 +1149,7 @@ def get_ai_agent_without_preload_content( :return: Returns the result object. """ # noqa: E501 - _param = self._get_ai_agent_serialize( + _param = self._delete_ai_agent_serialize( organisation=organisation, agent_id=agent_id, _request_auth=_request_auth, @@ -1155,7 +1159,7 @@ def get_ai_agent_without_preload_content( ) _response_types_map: Dict[str, Optional[str]] = { - '200': "GetAIAgent200Response", + '200': "DeleteAIAgent200Response", '403': None, '404': None, '500': None, @@ -1167,7 +1171,7 @@ def get_ai_agent_without_preload_content( return response_data.response - def _get_ai_agent_serialize( + def _delete_ai_agent_serialize( self, organisation, agent_id, @@ -1217,7 +1221,7 @@ def _get_ai_agent_serialize( ] return self.api_client.param_serialize( - method='GET', + method='DELETE', resource_path='/api/v3/organizations/{organisation}/ai/agents/{agentId}', path_params=_path_params, query_params=_query_params, @@ -1235,10 +1239,10 @@ def _get_ai_agent_serialize( @validate_call - def list_ai_agents( + def get_agent_overlay( self, organisation: Annotated[StrictStr, Field(description="The organisation ID")], - group: Annotated[Optional[StrictStr], Field(description="Optional group filter (e.g., 'development', 'compliance')")] = None, + agent_id: Annotated[StrictStr, Field(description="Global agent identifier (e.g., 'quantgov-code')")], _request_timeout: Union[ None, Annotated[StrictFloat, Field(gt=0)], @@ -1251,15 +1255,15 @@ def list_ai_agents( _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> ListAIAgents200Response: - """List AI Agents + ) -> GetAgentOverlay200Response: + """Get Agent Overlay - Lists all AI agents for an organization. Agents are pre-configured AI assistants with specific system prompts, model settings, and tool permissions. * * **Features:** * - Filter by group (e.g., 'development', 'compliance') * - Organization-scoped * - Returns agent configurations without execution history + Returns the per-organisation overlay for a global agent, plus base agent metadata for UI context. If no overlay exists the response contains `overlay: null`. Overlays can only be created for global agents. :param organisation: The organisation ID (required) :type organisation: str - :param group: Optional group filter (e.g., 'development', 'compliance') - :type group: str + :param agent_id: Global agent identifier (e.g., 'quantgov-code') (required) + :type agent_id: str :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of @@ -1282,9 +1286,9 @@ def list_ai_agents( :return: Returns the result object. """ # noqa: E501 - _param = self._list_ai_agents_serialize( + _param = self._get_agent_overlay_serialize( organisation=organisation, - group=group, + agent_id=agent_id, _request_auth=_request_auth, _content_type=_content_type, _headers=_headers, @@ -1292,8 +1296,9 @@ def list_ai_agents( ) _response_types_map: Dict[str, Optional[str]] = { - '200': "ListAIAgents200Response", + '200': "GetAgentOverlay200Response", '403': None, + '404': None, '500': None, } response_data = self.api_client.call_api( @@ -1308,10 +1313,10 @@ def list_ai_agents( @validate_call - def list_ai_agents_with_http_info( + def get_agent_overlay_with_http_info( self, organisation: Annotated[StrictStr, Field(description="The organisation ID")], - group: Annotated[Optional[StrictStr], Field(description="Optional group filter (e.g., 'development', 'compliance')")] = None, + agent_id: Annotated[StrictStr, Field(description="Global agent identifier (e.g., 'quantgov-code')")], _request_timeout: Union[ None, Annotated[StrictFloat, Field(gt=0)], @@ -1324,15 +1329,15 @@ def list_ai_agents_with_http_info( _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> ApiResponse[ListAIAgents200Response]: - """List AI Agents + ) -> ApiResponse[GetAgentOverlay200Response]: + """Get Agent Overlay - Lists all AI agents for an organization. Agents are pre-configured AI assistants with specific system prompts, model settings, and tool permissions. * * **Features:** * - Filter by group (e.g., 'development', 'compliance') * - Organization-scoped * - Returns agent configurations without execution history + Returns the per-organisation overlay for a global agent, plus base agent metadata for UI context. If no overlay exists the response contains `overlay: null`. Overlays can only be created for global agents. :param organisation: The organisation ID (required) :type organisation: str - :param group: Optional group filter (e.g., 'development', 'compliance') - :type group: str + :param agent_id: Global agent identifier (e.g., 'quantgov-code') (required) + :type agent_id: str :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of @@ -1355,9 +1360,9 @@ def list_ai_agents_with_http_info( :return: Returns the result object. """ # noqa: E501 - _param = self._list_ai_agents_serialize( + _param = self._get_agent_overlay_serialize( organisation=organisation, - group=group, + agent_id=agent_id, _request_auth=_request_auth, _content_type=_content_type, _headers=_headers, @@ -1365,8 +1370,9 @@ def list_ai_agents_with_http_info( ) _response_types_map: Dict[str, Optional[str]] = { - '200': "ListAIAgents200Response", + '200': "GetAgentOverlay200Response", '403': None, + '404': None, '500': None, } response_data = self.api_client.call_api( @@ -1381,10 +1387,10 @@ def list_ai_agents_with_http_info( @validate_call - def list_ai_agents_without_preload_content( + def get_agent_overlay_without_preload_content( self, organisation: Annotated[StrictStr, Field(description="The organisation ID")], - group: Annotated[Optional[StrictStr], Field(description="Optional group filter (e.g., 'development', 'compliance')")] = None, + agent_id: Annotated[StrictStr, Field(description="Global agent identifier (e.g., 'quantgov-code')")], _request_timeout: Union[ None, Annotated[StrictFloat, Field(gt=0)], @@ -1398,14 +1404,14 @@ def list_ai_agents_without_preload_content( _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, ) -> RESTResponseType: - """List AI Agents + """Get Agent Overlay - Lists all AI agents for an organization. Agents are pre-configured AI assistants with specific system prompts, model settings, and tool permissions. * * **Features:** * - Filter by group (e.g., 'development', 'compliance') * - Organization-scoped * - Returns agent configurations without execution history + Returns the per-organisation overlay for a global agent, plus base agent metadata for UI context. If no overlay exists the response contains `overlay: null`. Overlays can only be created for global agents. :param organisation: The organisation ID (required) :type organisation: str - :param group: Optional group filter (e.g., 'development', 'compliance') - :type group: str + :param agent_id: Global agent identifier (e.g., 'quantgov-code') (required) + :type agent_id: str :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of @@ -1428,9 +1434,9 @@ def list_ai_agents_without_preload_content( :return: Returns the result object. """ # noqa: E501 - _param = self._list_ai_agents_serialize( + _param = self._get_agent_overlay_serialize( organisation=organisation, - group=group, + agent_id=agent_id, _request_auth=_request_auth, _content_type=_content_type, _headers=_headers, @@ -1438,8 +1444,9 @@ def list_ai_agents_without_preload_content( ) _response_types_map: Dict[str, Optional[str]] = { - '200': "ListAIAgents200Response", + '200': "GetAgentOverlay200Response", '403': None, + '404': None, '500': None, } response_data = self.api_client.call_api( @@ -1449,10 +1456,10 @@ def list_ai_agents_without_preload_content( return response_data.response - def _list_ai_agents_serialize( + def _get_agent_overlay_serialize( self, organisation, - group, + agent_id, _request_auth, _content_type, _headers, @@ -1476,11 +1483,9 @@ def _list_ai_agents_serialize( # process the path parameters if organisation is not None: _path_params['organisation'] = organisation + if agent_id is not None: + _path_params['agentId'] = agent_id # process the query parameters - if group is not None: - - _query_params.append(('group', group)) - # process the header parameters # process the form parameters # process the body parameter @@ -1502,7 +1507,7 @@ def _list_ai_agents_serialize( return self.api_client.param_serialize( method='GET', - resource_path='/api/v3/organizations/{organisation}/ai/agents', + resource_path='/api/v3/organizations/{organisation}/ai/agents/{agentId}/overlay', path_params=_path_params, query_params=_query_params, header_params=_header_params, @@ -1519,11 +1524,10 @@ def _list_ai_agents_serialize( @validate_call - def update_ai_agent( + def get_ai_agent( self, organisation: Annotated[StrictStr, Field(description="The organisation ID")], agent_id: Annotated[StrictStr, Field(description="The agent ID")], - update_ai_agent_request: UpdateAIAgentRequest, _request_timeout: Union[ None, Annotated[StrictFloat, Field(gt=0)], @@ -1536,17 +1540,15 @@ def update_ai_agent( _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> UpdateAIAgent200Response: - """Update Agent + ) -> GetAIAgent200Response: + """Get Agent Details - Updates an existing AI agent configuration. All fields except agentId, organizationId, createdAt, and createdBy can be updated. + Retrieves detailed configuration for a specific AI agent. :param organisation: The organisation ID (required) :type organisation: str :param agent_id: The agent ID (required) :type agent_id: str - :param update_ai_agent_request: (required) - :type update_ai_agent_request: UpdateAIAgentRequest :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of @@ -1569,10 +1571,9 @@ def update_ai_agent( :return: Returns the result object. """ # noqa: E501 - _param = self._update_ai_agent_serialize( + _param = self._get_ai_agent_serialize( organisation=organisation, agent_id=agent_id, - update_ai_agent_request=update_ai_agent_request, _request_auth=_request_auth, _content_type=_content_type, _headers=_headers, @@ -1580,8 +1581,7 @@ def update_ai_agent( ) _response_types_map: Dict[str, Optional[str]] = { - '200': "UpdateAIAgent200Response", - '400': None, + '200': "GetAIAgent200Response", '403': None, '404': None, '500': None, @@ -1598,11 +1598,10 @@ def update_ai_agent( @validate_call - def update_ai_agent_with_http_info( + def get_ai_agent_with_http_info( self, organisation: Annotated[StrictStr, Field(description="The organisation ID")], agent_id: Annotated[StrictStr, Field(description="The agent ID")], - update_ai_agent_request: UpdateAIAgentRequest, _request_timeout: Union[ None, Annotated[StrictFloat, Field(gt=0)], @@ -1615,17 +1614,15 @@ def update_ai_agent_with_http_info( _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> ApiResponse[UpdateAIAgent200Response]: - """Update Agent + ) -> ApiResponse[GetAIAgent200Response]: + """Get Agent Details - Updates an existing AI agent configuration. All fields except agentId, organizationId, createdAt, and createdBy can be updated. + Retrieves detailed configuration for a specific AI agent. :param organisation: The organisation ID (required) :type organisation: str :param agent_id: The agent ID (required) :type agent_id: str - :param update_ai_agent_request: (required) - :type update_ai_agent_request: UpdateAIAgentRequest :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of @@ -1648,10 +1645,9 @@ def update_ai_agent_with_http_info( :return: Returns the result object. """ # noqa: E501 - _param = self._update_ai_agent_serialize( + _param = self._get_ai_agent_serialize( organisation=organisation, agent_id=agent_id, - update_ai_agent_request=update_ai_agent_request, _request_auth=_request_auth, _content_type=_content_type, _headers=_headers, @@ -1659,8 +1655,7 @@ def update_ai_agent_with_http_info( ) _response_types_map: Dict[str, Optional[str]] = { - '200': "UpdateAIAgent200Response", - '400': None, + '200': "GetAIAgent200Response", '403': None, '404': None, '500': None, @@ -1677,11 +1672,10 @@ def update_ai_agent_with_http_info( @validate_call - def update_ai_agent_without_preload_content( + def get_ai_agent_without_preload_content( self, organisation: Annotated[StrictStr, Field(description="The organisation ID")], agent_id: Annotated[StrictStr, Field(description="The agent ID")], - update_ai_agent_request: UpdateAIAgentRequest, _request_timeout: Union[ None, Annotated[StrictFloat, Field(gt=0)], @@ -1695,16 +1689,14 @@ def update_ai_agent_without_preload_content( _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, ) -> RESTResponseType: - """Update Agent + """Get Agent Details - Updates an existing AI agent configuration. All fields except agentId, organizationId, createdAt, and createdBy can be updated. + Retrieves detailed configuration for a specific AI agent. :param organisation: The organisation ID (required) :type organisation: str :param agent_id: The agent ID (required) :type agent_id: str - :param update_ai_agent_request: (required) - :type update_ai_agent_request: UpdateAIAgentRequest :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of @@ -1727,10 +1719,9 @@ def update_ai_agent_without_preload_content( :return: Returns the result object. """ # noqa: E501 - _param = self._update_ai_agent_serialize( + _param = self._get_ai_agent_serialize( organisation=organisation, agent_id=agent_id, - update_ai_agent_request=update_ai_agent_request, _request_auth=_request_auth, _content_type=_content_type, _headers=_headers, @@ -1738,8 +1729,7 @@ def update_ai_agent_without_preload_content( ) _response_types_map: Dict[str, Optional[str]] = { - '200': "UpdateAIAgent200Response", - '400': None, + '200': "GetAIAgent200Response", '403': None, '404': None, '500': None, @@ -1751,11 +1741,10 @@ def update_ai_agent_without_preload_content( return response_data.response - def _update_ai_agent_serialize( + def _get_ai_agent_serialize( self, organisation, agent_id, - update_ai_agent_request, _request_auth, _content_type, _headers, @@ -1785,8 +1774,6 @@ def _update_ai_agent_serialize( # process the header parameters # process the form parameters # process the body parameter - if update_ai_agent_request is not None: - _body_params = update_ai_agent_request # set the HTTP header `Accept` @@ -1797,19 +1784,6 @@ def _update_ai_agent_serialize( ] ) - # set the HTTP header `Content-Type` - if _content_type: - _header_params['Content-Type'] = _content_type - else: - _default_content_type = ( - self.api_client.select_header_content_type( - [ - 'application/json' - ] - ) - ) - if _default_content_type is not None: - _header_params['Content-Type'] = _default_content_type # authentication setting _auth_settings: List[str] = [ @@ -1817,7 +1791,7 @@ def _update_ai_agent_serialize( ] return self.api_client.param_serialize( - method='PUT', + method='GET', resource_path='/api/v3/organizations/{organisation}/ai/agents/{agentId}', path_params=_path_params, query_params=_query_params, @@ -1832,3 +1806,922 @@ def _update_ai_agent_serialize( ) + + + @validate_call + def list_ai_agents( + self, + organisation: Annotated[StrictStr, Field(description="The organisation ID")], + group: Annotated[Optional[StrictStr], Field(description="Optional group filter (e.g., 'development', 'compliance')")] = None, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> ListAIAgents200Response: + """List AI Agents + + Lists all AI agents for an organization. Agents are pre-configured AI assistants with specific system prompts, model settings, and tool permissions. * * **Features:** * - Filter by group (e.g., 'development', 'compliance') * - Organization-scoped * - Returns agent configurations without execution history + + :param organisation: The organisation ID (required) + :type organisation: str + :param group: Optional group filter (e.g., 'development', 'compliance') + :type group: str + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._list_ai_agents_serialize( + organisation=organisation, + group=group, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "ListAIAgents200Response", + '403': None, + '500': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ).data + + + @validate_call + def list_ai_agents_with_http_info( + self, + organisation: Annotated[StrictStr, Field(description="The organisation ID")], + group: Annotated[Optional[StrictStr], Field(description="Optional group filter (e.g., 'development', 'compliance')")] = None, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> ApiResponse[ListAIAgents200Response]: + """List AI Agents + + Lists all AI agents for an organization. Agents are pre-configured AI assistants with specific system prompts, model settings, and tool permissions. * * **Features:** * - Filter by group (e.g., 'development', 'compliance') * - Organization-scoped * - Returns agent configurations without execution history + + :param organisation: The organisation ID (required) + :type organisation: str + :param group: Optional group filter (e.g., 'development', 'compliance') + :type group: str + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._list_ai_agents_serialize( + organisation=organisation, + group=group, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "ListAIAgents200Response", + '403': None, + '500': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ) + + + @validate_call + def list_ai_agents_without_preload_content( + self, + organisation: Annotated[StrictStr, Field(description="The organisation ID")], + group: Annotated[Optional[StrictStr], Field(description="Optional group filter (e.g., 'development', 'compliance')")] = None, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> RESTResponseType: + """List AI Agents + + Lists all AI agents for an organization. Agents are pre-configured AI assistants with specific system prompts, model settings, and tool permissions. * * **Features:** * - Filter by group (e.g., 'development', 'compliance') * - Organization-scoped * - Returns agent configurations without execution history + + :param organisation: The organisation ID (required) + :type organisation: str + :param group: Optional group filter (e.g., 'development', 'compliance') + :type group: str + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._list_ai_agents_serialize( + organisation=organisation, + group=group, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "ListAIAgents200Response", + '403': None, + '500': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _list_ai_agents_serialize( + self, + organisation, + group, + _request_auth, + _content_type, + _headers, + _host_index, + ) -> RequestSerialized: + + _host = None + + _collection_formats: Dict[str, str] = { + } + + _path_params: Dict[str, str] = {} + _query_params: List[Tuple[str, str]] = [] + _header_params: Dict[str, Optional[str]] = _headers or {} + _form_params: List[Tuple[str, str]] = [] + _files: Dict[ + str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] + ] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + if organisation is not None: + _path_params['organisation'] = organisation + # process the query parameters + if group is not None: + + _query_params.append(('group', group)) + + # process the header parameters + # process the form parameters + # process the body parameter + + + # set the HTTP header `Accept` + if 'Accept' not in _header_params: + _header_params['Accept'] = self.api_client.select_header_accept( + [ + 'application/json' + ] + ) + + + # authentication setting + _auth_settings: List[str] = [ + 'BearerAuth' + ] + + return self.api_client.param_serialize( + method='GET', + resource_path='/api/v3/organizations/{organisation}/ai/agents', + path_params=_path_params, + query_params=_query_params, + header_params=_header_params, + body=_body_params, + post_params=_form_params, + files=_files, + auth_settings=_auth_settings, + collection_formats=_collection_formats, + _host=_host, + _request_auth=_request_auth + ) + + + + + @validate_call + def update_ai_agent( + self, + organisation: Annotated[StrictStr, Field(description="The organisation ID")], + agent_id: Annotated[StrictStr, Field(description="The agent ID")], + update_ai_agent_request: UpdateAIAgentRequest, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> UpdateAIAgent200Response: + """Update Agent + + Updates an existing AI agent configuration. All fields except agentId, organizationId, createdAt, and createdBy can be updated. + + :param organisation: The organisation ID (required) + :type organisation: str + :param agent_id: The agent ID (required) + :type agent_id: str + :param update_ai_agent_request: (required) + :type update_ai_agent_request: UpdateAIAgentRequest + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._update_ai_agent_serialize( + organisation=organisation, + agent_id=agent_id, + update_ai_agent_request=update_ai_agent_request, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "UpdateAIAgent200Response", + '400': None, + '403': None, + '404': None, + '500': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ).data + + + @validate_call + def update_ai_agent_with_http_info( + self, + organisation: Annotated[StrictStr, Field(description="The organisation ID")], + agent_id: Annotated[StrictStr, Field(description="The agent ID")], + update_ai_agent_request: UpdateAIAgentRequest, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> ApiResponse[UpdateAIAgent200Response]: + """Update Agent + + Updates an existing AI agent configuration. All fields except agentId, organizationId, createdAt, and createdBy can be updated. + + :param organisation: The organisation ID (required) + :type organisation: str + :param agent_id: The agent ID (required) + :type agent_id: str + :param update_ai_agent_request: (required) + :type update_ai_agent_request: UpdateAIAgentRequest + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._update_ai_agent_serialize( + organisation=organisation, + agent_id=agent_id, + update_ai_agent_request=update_ai_agent_request, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "UpdateAIAgent200Response", + '400': None, + '403': None, + '404': None, + '500': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ) + + + @validate_call + def update_ai_agent_without_preload_content( + self, + organisation: Annotated[StrictStr, Field(description="The organisation ID")], + agent_id: Annotated[StrictStr, Field(description="The agent ID")], + update_ai_agent_request: UpdateAIAgentRequest, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> RESTResponseType: + """Update Agent + + Updates an existing AI agent configuration. All fields except agentId, organizationId, createdAt, and createdBy can be updated. + + :param organisation: The organisation ID (required) + :type organisation: str + :param agent_id: The agent ID (required) + :type agent_id: str + :param update_ai_agent_request: (required) + :type update_ai_agent_request: UpdateAIAgentRequest + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._update_ai_agent_serialize( + organisation=organisation, + agent_id=agent_id, + update_ai_agent_request=update_ai_agent_request, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "UpdateAIAgent200Response", + '400': None, + '403': None, + '404': None, + '500': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _update_ai_agent_serialize( + self, + organisation, + agent_id, + update_ai_agent_request, + _request_auth, + _content_type, + _headers, + _host_index, + ) -> RequestSerialized: + + _host = None + + _collection_formats: Dict[str, str] = { + } + + _path_params: Dict[str, str] = {} + _query_params: List[Tuple[str, str]] = [] + _header_params: Dict[str, Optional[str]] = _headers or {} + _form_params: List[Tuple[str, str]] = [] + _files: Dict[ + str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] + ] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + if organisation is not None: + _path_params['organisation'] = organisation + if agent_id is not None: + _path_params['agentId'] = agent_id + # process the query parameters + # process the header parameters + # process the form parameters + # process the body parameter + if update_ai_agent_request is not None: + _body_params = update_ai_agent_request + + + # set the HTTP header `Accept` + if 'Accept' not in _header_params: + _header_params['Accept'] = self.api_client.select_header_accept( + [ + 'application/json' + ] + ) + + # set the HTTP header `Content-Type` + if _content_type: + _header_params['Content-Type'] = _content_type + else: + _default_content_type = ( + self.api_client.select_header_content_type( + [ + 'application/json' + ] + ) + ) + if _default_content_type is not None: + _header_params['Content-Type'] = _default_content_type + + # authentication setting + _auth_settings: List[str] = [ + 'BearerAuth' + ] + + return self.api_client.param_serialize( + method='PUT', + resource_path='/api/v3/organizations/{organisation}/ai/agents/{agentId}', + path_params=_path_params, + query_params=_query_params, + header_params=_header_params, + body=_body_params, + post_params=_form_params, + files=_files, + auth_settings=_auth_settings, + collection_formats=_collection_formats, + _host=_host, + _request_auth=_request_auth + ) + + + + + @validate_call + def upsert_agent_overlay( + self, + organisation: Annotated[StrictStr, Field(description="The organisation ID")], + agent_id: Annotated[StrictStr, Field(description="Global agent identifier")], + upsert_agent_overlay_request: UpsertAgentOverlayRequest, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> UpsertAgentOverlay200Response: + """Upsert Agent Overlay + + Creates or replaces the per-organisation overlay for a global agent. PUT is full replacement — omitted optional fields are removed. Include `version` from a prior GET to enable compare-and-swap (409 on conflict). Omit for last-writer-wins. + + :param organisation: The organisation ID (required) + :type organisation: str + :param agent_id: Global agent identifier (required) + :type agent_id: str + :param upsert_agent_overlay_request: (required) + :type upsert_agent_overlay_request: UpsertAgentOverlayRequest + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._upsert_agent_overlay_serialize( + organisation=organisation, + agent_id=agent_id, + upsert_agent_overlay_request=upsert_agent_overlay_request, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "UpsertAgentOverlay200Response", + '400': None, + '403': None, + '404': None, + '409': None, + '500': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ).data + + + @validate_call + def upsert_agent_overlay_with_http_info( + self, + organisation: Annotated[StrictStr, Field(description="The organisation ID")], + agent_id: Annotated[StrictStr, Field(description="Global agent identifier")], + upsert_agent_overlay_request: UpsertAgentOverlayRequest, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> ApiResponse[UpsertAgentOverlay200Response]: + """Upsert Agent Overlay + + Creates or replaces the per-organisation overlay for a global agent. PUT is full replacement — omitted optional fields are removed. Include `version` from a prior GET to enable compare-and-swap (409 on conflict). Omit for last-writer-wins. + + :param organisation: The organisation ID (required) + :type organisation: str + :param agent_id: Global agent identifier (required) + :type agent_id: str + :param upsert_agent_overlay_request: (required) + :type upsert_agent_overlay_request: UpsertAgentOverlayRequest + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._upsert_agent_overlay_serialize( + organisation=organisation, + agent_id=agent_id, + upsert_agent_overlay_request=upsert_agent_overlay_request, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "UpsertAgentOverlay200Response", + '400': None, + '403': None, + '404': None, + '409': None, + '500': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ) + + + @validate_call + def upsert_agent_overlay_without_preload_content( + self, + organisation: Annotated[StrictStr, Field(description="The organisation ID")], + agent_id: Annotated[StrictStr, Field(description="Global agent identifier")], + upsert_agent_overlay_request: UpsertAgentOverlayRequest, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> RESTResponseType: + """Upsert Agent Overlay + + Creates or replaces the per-organisation overlay for a global agent. PUT is full replacement — omitted optional fields are removed. Include `version` from a prior GET to enable compare-and-swap (409 on conflict). Omit for last-writer-wins. + + :param organisation: The organisation ID (required) + :type organisation: str + :param agent_id: Global agent identifier (required) + :type agent_id: str + :param upsert_agent_overlay_request: (required) + :type upsert_agent_overlay_request: UpsertAgentOverlayRequest + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._upsert_agent_overlay_serialize( + organisation=organisation, + agent_id=agent_id, + upsert_agent_overlay_request=upsert_agent_overlay_request, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "UpsertAgentOverlay200Response", + '400': None, + '403': None, + '404': None, + '409': None, + '500': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _upsert_agent_overlay_serialize( + self, + organisation, + agent_id, + upsert_agent_overlay_request, + _request_auth, + _content_type, + _headers, + _host_index, + ) -> RequestSerialized: + + _host = None + + _collection_formats: Dict[str, str] = { + } + + _path_params: Dict[str, str] = {} + _query_params: List[Tuple[str, str]] = [] + _header_params: Dict[str, Optional[str]] = _headers or {} + _form_params: List[Tuple[str, str]] = [] + _files: Dict[ + str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] + ] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + if organisation is not None: + _path_params['organisation'] = organisation + if agent_id is not None: + _path_params['agentId'] = agent_id + # process the query parameters + # process the header parameters + # process the form parameters + # process the body parameter + if upsert_agent_overlay_request is not None: + _body_params = upsert_agent_overlay_request + + + # set the HTTP header `Accept` + if 'Accept' not in _header_params: + _header_params['Accept'] = self.api_client.select_header_accept( + [ + 'application/json' + ] + ) + + # set the HTTP header `Content-Type` + if _content_type: + _header_params['Content-Type'] = _content_type + else: + _default_content_type = ( + self.api_client.select_header_content_type( + [ + 'application/json' + ] + ) + ) + if _default_content_type is not None: + _header_params['Content-Type'] = _default_content_type + + # authentication setting + _auth_settings: List[str] = [ + 'BearerAuth' + ] + + return self.api_client.param_serialize( + method='PUT', + resource_path='/api/v3/organizations/{organisation}/ai/agents/{agentId}/overlay', + path_params=_path_params, + query_params=_query_params, + header_params=_header_params, + body=_body_params, + post_params=_form_params, + files=_files, + auth_settings=_auth_settings, + collection_formats=_collection_formats, + _host=_host, + _request_auth=_request_auth + ) + + diff --git a/quantcdn/api/orchestration_api.py b/quantcdn/api/ai_api.py similarity index 57% rename from quantcdn/api/orchestration_api.py rename to quantcdn/api/ai_api.py index 9e162a8f..d54e0fc3 100644 --- a/quantcdn/api/orchestration_api.py +++ b/quantcdn/api/ai_api.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. @@ -17,15 +17,15 @@ from typing_extensions import Annotated from pydantic import Field, StrictStr, field_validator +from typing import Optional from typing_extensions import Annotated -from quantcdn.models.get_ai_orchestration_status200_response import GetAIOrchestrationStatus200Response from quantcdn.api_client import ApiClient, RequestSerialized from quantcdn.api_response import ApiResponse from quantcdn.rest import RESTResponseType -class OrchestrationApi: +class AIApi: """NOTE: This class is auto generated by OpenAPI Generator Ref: https://openapi-generator.tech @@ -39,10 +39,14 @@ def __init__(self, api_client=None) -> None: @validate_call - def get_ai_orchestration_status( + def get_ai_usage_stats( self, - organisation: Annotated[StrictStr, Field(description="The organisation ID")], - orchestration_id: Annotated[str, Field(strict=True, description="Orchestration identifier for aggregated async tool executions")], + organisation: StrictStr, + month: Annotated[Optional[StrictStr], Field(description="YYYY-MM, defaults to current month")] = None, + group_by: Optional[StrictStr] = None, + include: Annotated[Optional[StrictStr], Field(description="Set to 'daily' to append a 30-day series")] = None, + user_id: Annotated[Optional[StrictStr], Field(description="Scope the daily series to a user")] = None, + token_id: Annotated[Optional[StrictStr], Field(description="Scope the daily series to a token")] = None, _request_timeout: Union[ None, Annotated[StrictFloat, Field(gt=0)], @@ -55,15 +59,23 @@ def get_ai_orchestration_status( _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> GetAIOrchestrationStatus200Response: - """Get Orchestration Status + ) -> None: + """Organisation AI usage breakdown (subscription page parity) - Retrieves the status and synthesized result of a multi-tool orchestration. * * **Orchestration Pattern:** * When the AI requests multiple async tools simultaneously, an orchestration is created * to track all tool executions and synthesize their results into a single coherent response. * * **Flow:** * 1. AI requests multiple async tools (e.g., image generation + web search) * 2. Chat API creates orchestration and returns orchestrationId * 3. Tool Orchestrator Lambda polls all async tools * 4. When all tools complete, Orchestrator synthesizes results using AI * 5. Client polls this endpoint and receives final synthesized response * * **Status Values:** * - pending: Orchestration created, tools not yet started * - polling: Orchestrator is actively polling async tools * - synthesizing: All tools complete, AI is synthesizing response * - complete: Orchestration finished, synthesizedResponse available * - failed: Orchestration failed, error available * * **Polling Recommendations:** * - Poll every 2 seconds * - Maximum poll time: 10 minutes * - Orchestrator handles tool polling internally * * **Benefits over individual polling:** * - Single poll endpoint for multiple async tools * - AI synthesizes all results into coherent response * - Answers the original user question, not just tool summaries + AI usage from the subscription page's source (cloud-api monthly-usage). Parameterized by month, groupBy (model|user|token) and optional daily series. NOTE: as of API 4.19.0 this endpoint requires the update_subscription permission + subscription:read scope (previously use_ai_services + ai:use). For per-caller spend use /ai/usage/me. - :param organisation: The organisation ID (required) + :param organisation: (required) :type organisation: str - :param orchestration_id: Orchestration identifier for aggregated async tool executions (required) - :type orchestration_id: str + :param month: YYYY-MM, defaults to current month + :type month: str + :param group_by: + :type group_by: str + :param include: Set to 'daily' to append a 30-day series + :type include: str + :param user_id: Scope the daily series to a user + :type user_id: str + :param token_id: Scope the daily series to a token + :type token_id: str :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of @@ -86,9 +98,13 @@ def get_ai_orchestration_status( :return: Returns the result object. """ # noqa: E501 - _param = self._get_ai_orchestration_status_serialize( + _param = self._get_ai_usage_stats_serialize( organisation=organisation, - orchestration_id=orchestration_id, + month=month, + group_by=group_by, + include=include, + user_id=user_id, + token_id=token_id, _request_auth=_request_auth, _content_type=_content_type, _headers=_headers, @@ -96,9 +112,9 @@ def get_ai_orchestration_status( ) _response_types_map: Dict[str, Optional[str]] = { - '200': "GetAIOrchestrationStatus200Response", - '404': "GetAIOrchestrationStatus404Response", + '200': None, '403': None, + '422': None, '500': None, } response_data = self.api_client.call_api( @@ -113,10 +129,14 @@ def get_ai_orchestration_status( @validate_call - def get_ai_orchestration_status_with_http_info( + def get_ai_usage_stats_with_http_info( self, - organisation: Annotated[StrictStr, Field(description="The organisation ID")], - orchestration_id: Annotated[str, Field(strict=True, description="Orchestration identifier for aggregated async tool executions")], + organisation: StrictStr, + month: Annotated[Optional[StrictStr], Field(description="YYYY-MM, defaults to current month")] = None, + group_by: Optional[StrictStr] = None, + include: Annotated[Optional[StrictStr], Field(description="Set to 'daily' to append a 30-day series")] = None, + user_id: Annotated[Optional[StrictStr], Field(description="Scope the daily series to a user")] = None, + token_id: Annotated[Optional[StrictStr], Field(description="Scope the daily series to a token")] = None, _request_timeout: Union[ None, Annotated[StrictFloat, Field(gt=0)], @@ -129,15 +149,23 @@ def get_ai_orchestration_status_with_http_info( _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> ApiResponse[GetAIOrchestrationStatus200Response]: - """Get Orchestration Status + ) -> ApiResponse[None]: + """Organisation AI usage breakdown (subscription page parity) - Retrieves the status and synthesized result of a multi-tool orchestration. * * **Orchestration Pattern:** * When the AI requests multiple async tools simultaneously, an orchestration is created * to track all tool executions and synthesize their results into a single coherent response. * * **Flow:** * 1. AI requests multiple async tools (e.g., image generation + web search) * 2. Chat API creates orchestration and returns orchestrationId * 3. Tool Orchestrator Lambda polls all async tools * 4. When all tools complete, Orchestrator synthesizes results using AI * 5. Client polls this endpoint and receives final synthesized response * * **Status Values:** * - pending: Orchestration created, tools not yet started * - polling: Orchestrator is actively polling async tools * - synthesizing: All tools complete, AI is synthesizing response * - complete: Orchestration finished, synthesizedResponse available * - failed: Orchestration failed, error available * * **Polling Recommendations:** * - Poll every 2 seconds * - Maximum poll time: 10 minutes * - Orchestrator handles tool polling internally * * **Benefits over individual polling:** * - Single poll endpoint for multiple async tools * - AI synthesizes all results into coherent response * - Answers the original user question, not just tool summaries + AI usage from the subscription page's source (cloud-api monthly-usage). Parameterized by month, groupBy (model|user|token) and optional daily series. NOTE: as of API 4.19.0 this endpoint requires the update_subscription permission + subscription:read scope (previously use_ai_services + ai:use). For per-caller spend use /ai/usage/me. - :param organisation: The organisation ID (required) + :param organisation: (required) :type organisation: str - :param orchestration_id: Orchestration identifier for aggregated async tool executions (required) - :type orchestration_id: str + :param month: YYYY-MM, defaults to current month + :type month: str + :param group_by: + :type group_by: str + :param include: Set to 'daily' to append a 30-day series + :type include: str + :param user_id: Scope the daily series to a user + :type user_id: str + :param token_id: Scope the daily series to a token + :type token_id: str :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of @@ -160,9 +188,13 @@ def get_ai_orchestration_status_with_http_info( :return: Returns the result object. """ # noqa: E501 - _param = self._get_ai_orchestration_status_serialize( + _param = self._get_ai_usage_stats_serialize( organisation=organisation, - orchestration_id=orchestration_id, + month=month, + group_by=group_by, + include=include, + user_id=user_id, + token_id=token_id, _request_auth=_request_auth, _content_type=_content_type, _headers=_headers, @@ -170,9 +202,9 @@ def get_ai_orchestration_status_with_http_info( ) _response_types_map: Dict[str, Optional[str]] = { - '200': "GetAIOrchestrationStatus200Response", - '404': "GetAIOrchestrationStatus404Response", + '200': None, '403': None, + '422': None, '500': None, } response_data = self.api_client.call_api( @@ -187,10 +219,14 @@ def get_ai_orchestration_status_with_http_info( @validate_call - def get_ai_orchestration_status_without_preload_content( + def get_ai_usage_stats_without_preload_content( self, - organisation: Annotated[StrictStr, Field(description="The organisation ID")], - orchestration_id: Annotated[str, Field(strict=True, description="Orchestration identifier for aggregated async tool executions")], + organisation: StrictStr, + month: Annotated[Optional[StrictStr], Field(description="YYYY-MM, defaults to current month")] = None, + group_by: Optional[StrictStr] = None, + include: Annotated[Optional[StrictStr], Field(description="Set to 'daily' to append a 30-day series")] = None, + user_id: Annotated[Optional[StrictStr], Field(description="Scope the daily series to a user")] = None, + token_id: Annotated[Optional[StrictStr], Field(description="Scope the daily series to a token")] = None, _request_timeout: Union[ None, Annotated[StrictFloat, Field(gt=0)], @@ -204,14 +240,22 @@ def get_ai_orchestration_status_without_preload_content( _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, ) -> RESTResponseType: - """Get Orchestration Status + """Organisation AI usage breakdown (subscription page parity) - Retrieves the status and synthesized result of a multi-tool orchestration. * * **Orchestration Pattern:** * When the AI requests multiple async tools simultaneously, an orchestration is created * to track all tool executions and synthesize their results into a single coherent response. * * **Flow:** * 1. AI requests multiple async tools (e.g., image generation + web search) * 2. Chat API creates orchestration and returns orchestrationId * 3. Tool Orchestrator Lambda polls all async tools * 4. When all tools complete, Orchestrator synthesizes results using AI * 5. Client polls this endpoint and receives final synthesized response * * **Status Values:** * - pending: Orchestration created, tools not yet started * - polling: Orchestrator is actively polling async tools * - synthesizing: All tools complete, AI is synthesizing response * - complete: Orchestration finished, synthesizedResponse available * - failed: Orchestration failed, error available * * **Polling Recommendations:** * - Poll every 2 seconds * - Maximum poll time: 10 minutes * - Orchestrator handles tool polling internally * * **Benefits over individual polling:** * - Single poll endpoint for multiple async tools * - AI synthesizes all results into coherent response * - Answers the original user question, not just tool summaries + AI usage from the subscription page's source (cloud-api monthly-usage). Parameterized by month, groupBy (model|user|token) and optional daily series. NOTE: as of API 4.19.0 this endpoint requires the update_subscription permission + subscription:read scope (previously use_ai_services + ai:use). For per-caller spend use /ai/usage/me. - :param organisation: The organisation ID (required) + :param organisation: (required) :type organisation: str - :param orchestration_id: Orchestration identifier for aggregated async tool executions (required) - :type orchestration_id: str + :param month: YYYY-MM, defaults to current month + :type month: str + :param group_by: + :type group_by: str + :param include: Set to 'daily' to append a 30-day series + :type include: str + :param user_id: Scope the daily series to a user + :type user_id: str + :param token_id: Scope the daily series to a token + :type token_id: str :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of @@ -234,9 +278,13 @@ def get_ai_orchestration_status_without_preload_content( :return: Returns the result object. """ # noqa: E501 - _param = self._get_ai_orchestration_status_serialize( + _param = self._get_ai_usage_stats_serialize( organisation=organisation, - orchestration_id=orchestration_id, + month=month, + group_by=group_by, + include=include, + user_id=user_id, + token_id=token_id, _request_auth=_request_auth, _content_type=_content_type, _headers=_headers, @@ -244,9 +292,9 @@ def get_ai_orchestration_status_without_preload_content( ) _response_types_map: Dict[str, Optional[str]] = { - '200': "GetAIOrchestrationStatus200Response", - '404': "GetAIOrchestrationStatus404Response", + '200': None, '403': None, + '422': None, '500': None, } response_data = self.api_client.call_api( @@ -256,10 +304,14 @@ def get_ai_orchestration_status_without_preload_content( return response_data.response - def _get_ai_orchestration_status_serialize( + def _get_ai_usage_stats_serialize( self, organisation, - orchestration_id, + month, + group_by, + include, + user_id, + token_id, _request_auth, _content_type, _headers, @@ -283,21 +335,32 @@ def _get_ai_orchestration_status_serialize( # process the path parameters if organisation is not None: _path_params['organisation'] = organisation - if orchestration_id is not None: - _path_params['orchestrationId'] = orchestration_id # process the query parameters + if month is not None: + + _query_params.append(('month', month)) + + if group_by is not None: + + _query_params.append(('groupBy', group_by)) + + if include is not None: + + _query_params.append(('include', include)) + + if user_id is not None: + + _query_params.append(('userId', user_id)) + + if token_id is not None: + + _query_params.append(('tokenId', token_id)) + # process the header parameters # process the form parameters # process the body parameter - # set the HTTP header `Accept` - if 'Accept' not in _header_params: - _header_params['Accept'] = self.api_client.select_header_accept( - [ - 'application/json' - ] - ) # authentication setting @@ -307,7 +370,7 @@ def _get_ai_orchestration_status_serialize( return self.api_client.param_serialize( method='GET', - resource_path='/api/v3/organizations/{organisation}/ai/tools/orchestrations/{orchestrationId}', + resource_path='/api/v3/organizations/{organisation}/ai/usage', path_params=_path_params, query_params=_query_params, header_params=_header_params, diff --git a/quantcdn/api/ai_custom_tools_api.py b/quantcdn/api/ai_custom_tools_api.py index 2ae11441..28d5bb5a 100644 --- a/quantcdn/api/ai_custom_tools_api.py +++ b/quantcdn/api/ai_custom_tools_api.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. @@ -21,6 +21,7 @@ from quantcdn.models.create_custom_tool201_response import CreateCustomTool201Response from quantcdn.models.create_custom_tool_request import CreateCustomToolRequest from quantcdn.models.delete_custom_tool200_response import DeleteCustomTool200Response +from quantcdn.models.get_custom_tool200_response import GetCustomTool200Response from quantcdn.models.list_custom_tools200_response import ListCustomTools200Response from quantcdn.api_client import ApiClient, RequestSerialized @@ -61,7 +62,7 @@ def create_custom_tool( ) -> CreateCustomTool201Response: """Register Custom Edge Function Tool - Registers a custom edge function as a tool that AI models can invoke. This enables customers to create their own tools backed by edge functions. * * **Edge Function Contract:** * - Edge functions must accept POST requests with JSON payload * - Expected request format: `{ 'toolName': '...', 'input': {...}, 'orgId': '...' }` * - Must return JSON response with either `result` or `error` field * * **Async Tools:** * Set `isAsync: true` for operations >5 seconds. The edge function should return `{ executionId: '...' }` and the AI will poll for completion. + Registers a custom edge function as a tool that AI models can invoke. Provide `edgeFunctionCode` (JavaScript) and the API will deploy it to the CDN, compute the edge function URL, and register the tool. * * **Edge Function Contract:** * - Edge functions must accept POST requests with JSON payload * - Expected request format: `{ 'toolName': '...', 'input': {...}, 'orgId': '...' }` * - Must return JSON response with either `result` or `error` field * * **Idempotent Updates:** * POSTing with the same `name` will update the existing tool — the edge function code is redeployed to the same UUID and the tool registration is updated. * * **Async Tools:** * Set `isAsync: true` for operations >5 seconds. The edge function should return `{ executionId: '...' }` and the AI will poll for completion. :param organisation: The organisation ID (required) :type organisation: str @@ -102,7 +103,6 @@ def create_custom_tool( '201': "CreateCustomTool201Response", '400': None, '403': None, - '409': None, '500': None, } response_data = self.api_client.call_api( @@ -136,7 +136,7 @@ def create_custom_tool_with_http_info( ) -> ApiResponse[CreateCustomTool201Response]: """Register Custom Edge Function Tool - Registers a custom edge function as a tool that AI models can invoke. This enables customers to create their own tools backed by edge functions. * * **Edge Function Contract:** * - Edge functions must accept POST requests with JSON payload * - Expected request format: `{ 'toolName': '...', 'input': {...}, 'orgId': '...' }` * - Must return JSON response with either `result` or `error` field * * **Async Tools:** * Set `isAsync: true` for operations >5 seconds. The edge function should return `{ executionId: '...' }` and the AI will poll for completion. + Registers a custom edge function as a tool that AI models can invoke. Provide `edgeFunctionCode` (JavaScript) and the API will deploy it to the CDN, compute the edge function URL, and register the tool. * * **Edge Function Contract:** * - Edge functions must accept POST requests with JSON payload * - Expected request format: `{ 'toolName': '...', 'input': {...}, 'orgId': '...' }` * - Must return JSON response with either `result` or `error` field * * **Idempotent Updates:** * POSTing with the same `name` will update the existing tool — the edge function code is redeployed to the same UUID and the tool registration is updated. * * **Async Tools:** * Set `isAsync: true` for operations >5 seconds. The edge function should return `{ executionId: '...' }` and the AI will poll for completion. :param organisation: The organisation ID (required) :type organisation: str @@ -177,7 +177,6 @@ def create_custom_tool_with_http_info( '201': "CreateCustomTool201Response", '400': None, '403': None, - '409': None, '500': None, } response_data = self.api_client.call_api( @@ -211,7 +210,7 @@ def create_custom_tool_without_preload_content( ) -> RESTResponseType: """Register Custom Edge Function Tool - Registers a custom edge function as a tool that AI models can invoke. This enables customers to create their own tools backed by edge functions. * * **Edge Function Contract:** * - Edge functions must accept POST requests with JSON payload * - Expected request format: `{ 'toolName': '...', 'input': {...}, 'orgId': '...' }` * - Must return JSON response with either `result` or `error` field * * **Async Tools:** * Set `isAsync: true` for operations >5 seconds. The edge function should return `{ executionId: '...' }` and the AI will poll for completion. + Registers a custom edge function as a tool that AI models can invoke. Provide `edgeFunctionCode` (JavaScript) and the API will deploy it to the CDN, compute the edge function URL, and register the tool. * * **Edge Function Contract:** * - Edge functions must accept POST requests with JSON payload * - Expected request format: `{ 'toolName': '...', 'input': {...}, 'orgId': '...' }` * - Must return JSON response with either `result` or `error` field * * **Idempotent Updates:** * POSTing with the same `name` will update the existing tool — the edge function code is redeployed to the same UUID and the tool registration is updated. * * **Async Tools:** * Set `isAsync: true` for operations >5 seconds. The edge function should return `{ executionId: '...' }` and the AI will poll for completion. :param organisation: The organisation ID (required) :type organisation: str @@ -252,7 +251,6 @@ def create_custom_tool_without_preload_content( '201': "CreateCustomTool201Response", '400': None, '403': None, - '409': None, '500': None, } response_data = self.api_client.call_api( @@ -362,7 +360,7 @@ def delete_custom_tool( ) -> DeleteCustomTool200Response: """Delete Custom Tool - Deletes a custom tool registration. The underlying edge function is not affected. + Deletes a custom tool registration and its deployed edge function. :param organisation: The organisation ID (required) :type organisation: str @@ -436,7 +434,7 @@ def delete_custom_tool_with_http_info( ) -> ApiResponse[DeleteCustomTool200Response]: """Delete Custom Tool - Deletes a custom tool registration. The underlying edge function is not affected. + Deletes a custom tool registration and its deployed edge function. :param organisation: The organisation ID (required) :type organisation: str @@ -510,7 +508,7 @@ def delete_custom_tool_without_preload_content( ) -> RESTResponseType: """Delete Custom Tool - Deletes a custom tool registration. The underlying edge function is not affected. + Deletes a custom tool registration and its deployed edge function. :param organisation: The organisation ID (required) :type organisation: str @@ -627,6 +625,291 @@ def _delete_custom_tool_serialize( + @validate_call + def get_custom_tool( + self, + organisation: Annotated[StrictStr, Field(description="The organisation ID")], + tool_name: Annotated[StrictStr, Field(description="The tool name to retrieve")], + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> GetCustomTool200Response: + """Get Custom Tool + + Retrieves a single registered custom tool by name. + + :param organisation: The organisation ID (required) + :type organisation: str + :param tool_name: The tool name to retrieve (required) + :type tool_name: str + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._get_custom_tool_serialize( + organisation=organisation, + tool_name=tool_name, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "GetCustomTool200Response", + '403': None, + '404': None, + '500': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ).data + + + @validate_call + def get_custom_tool_with_http_info( + self, + organisation: Annotated[StrictStr, Field(description="The organisation ID")], + tool_name: Annotated[StrictStr, Field(description="The tool name to retrieve")], + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> ApiResponse[GetCustomTool200Response]: + """Get Custom Tool + + Retrieves a single registered custom tool by name. + + :param organisation: The organisation ID (required) + :type organisation: str + :param tool_name: The tool name to retrieve (required) + :type tool_name: str + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._get_custom_tool_serialize( + organisation=organisation, + tool_name=tool_name, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "GetCustomTool200Response", + '403': None, + '404': None, + '500': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ) + + + @validate_call + def get_custom_tool_without_preload_content( + self, + organisation: Annotated[StrictStr, Field(description="The organisation ID")], + tool_name: Annotated[StrictStr, Field(description="The tool name to retrieve")], + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> RESTResponseType: + """Get Custom Tool + + Retrieves a single registered custom tool by name. + + :param organisation: The organisation ID (required) + :type organisation: str + :param tool_name: The tool name to retrieve (required) + :type tool_name: str + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._get_custom_tool_serialize( + organisation=organisation, + tool_name=tool_name, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "GetCustomTool200Response", + '403': None, + '404': None, + '500': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _get_custom_tool_serialize( + self, + organisation, + tool_name, + _request_auth, + _content_type, + _headers, + _host_index, + ) -> RequestSerialized: + + _host = None + + _collection_formats: Dict[str, str] = { + } + + _path_params: Dict[str, str] = {} + _query_params: List[Tuple[str, str]] = [] + _header_params: Dict[str, Optional[str]] = _headers or {} + _form_params: List[Tuple[str, str]] = [] + _files: Dict[ + str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] + ] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + if organisation is not None: + _path_params['organisation'] = organisation + if tool_name is not None: + _path_params['toolName'] = tool_name + # process the query parameters + # process the header parameters + # process the form parameters + # process the body parameter + + + # set the HTTP header `Accept` + if 'Accept' not in _header_params: + _header_params['Accept'] = self.api_client.select_header_accept( + [ + 'application/json' + ] + ) + + + # authentication setting + _auth_settings: List[str] = [ + 'BearerAuth' + ] + + return self.api_client.param_serialize( + method='GET', + resource_path='/api/v3/organizations/{organisation}/ai/custom-tools/{toolName}', + path_params=_path_params, + query_params=_query_params, + header_params=_header_params, + body=_body_params, + post_params=_form_params, + files=_files, + auth_settings=_auth_settings, + collection_formats=_collection_formats, + _host=_host, + _request_auth=_request_auth + ) + + + + @validate_call def list_custom_tools( self, diff --git a/quantcdn/api/ai_file_storage_api.py b/quantcdn/api/ai_file_storage_api.py index f81689e9..718ff09b 100644 --- a/quantcdn/api/ai_file_storage_api.py +++ b/quantcdn/api/ai_file_storage_api.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/api/ai_filter_policies_api.py b/quantcdn/api/ai_filter_policies_api.py new file mode 100644 index 00000000..ff339988 --- /dev/null +++ b/quantcdn/api/ai_filter_policies_api.py @@ -0,0 +1,2004 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + +import warnings +from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt +from typing import Any, Dict, List, Optional, Tuple, Union +from typing_extensions import Annotated + +from pydantic import Field, StrictStr +from typing import Any, Dict +from typing_extensions import Annotated +from quantcdn.models.create_filter_policy_request import CreateFilterPolicyRequest +from quantcdn.models.update_filter_policy_request import UpdateFilterPolicyRequest + +from quantcdn.api_client import ApiClient, RequestSerialized +from quantcdn.api_response import ApiResponse +from quantcdn.rest import RESTResponseType + + +class AIFilterPoliciesApi: + """NOTE: This class is auto generated by OpenAPI Generator + Ref: https://openapi-generator.tech + + Do not edit the class manually. + """ + + def __init__(self, api_client=None) -> None: + if api_client is None: + api_client = ApiClient.get_default() + self.api_client = api_client + + + @validate_call + def create_filter_policy( + self, + organisation: Annotated[StrictStr, Field(description="The organisation ID")], + create_filter_policy_request: CreateFilterPolicyRequest, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> object: + """Create an AI filter policy for an organisation + + + :param organisation: The organisation ID (required) + :type organisation: str + :param create_filter_policy_request: (required) + :type create_filter_policy_request: CreateFilterPolicyRequest + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._create_filter_policy_serialize( + organisation=organisation, + create_filter_policy_request=create_filter_policy_request, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '201': "object", + '422': None, + '500': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ).data + + + @validate_call + def create_filter_policy_with_http_info( + self, + organisation: Annotated[StrictStr, Field(description="The organisation ID")], + create_filter_policy_request: CreateFilterPolicyRequest, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> ApiResponse[object]: + """Create an AI filter policy for an organisation + + + :param organisation: The organisation ID (required) + :type organisation: str + :param create_filter_policy_request: (required) + :type create_filter_policy_request: CreateFilterPolicyRequest + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._create_filter_policy_serialize( + organisation=organisation, + create_filter_policy_request=create_filter_policy_request, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '201': "object", + '422': None, + '500': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ) + + + @validate_call + def create_filter_policy_without_preload_content( + self, + organisation: Annotated[StrictStr, Field(description="The organisation ID")], + create_filter_policy_request: CreateFilterPolicyRequest, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> RESTResponseType: + """Create an AI filter policy for an organisation + + + :param organisation: The organisation ID (required) + :type organisation: str + :param create_filter_policy_request: (required) + :type create_filter_policy_request: CreateFilterPolicyRequest + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._create_filter_policy_serialize( + organisation=organisation, + create_filter_policy_request=create_filter_policy_request, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '201': "object", + '422': None, + '500': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _create_filter_policy_serialize( + self, + organisation, + create_filter_policy_request, + _request_auth, + _content_type, + _headers, + _host_index, + ) -> RequestSerialized: + + _host = None + + _collection_formats: Dict[str, str] = { + } + + _path_params: Dict[str, str] = {} + _query_params: List[Tuple[str, str]] = [] + _header_params: Dict[str, Optional[str]] = _headers or {} + _form_params: List[Tuple[str, str]] = [] + _files: Dict[ + str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] + ] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + if organisation is not None: + _path_params['organisation'] = organisation + # process the query parameters + # process the header parameters + # process the form parameters + # process the body parameter + if create_filter_policy_request is not None: + _body_params = create_filter_policy_request + + + # set the HTTP header `Accept` + if 'Accept' not in _header_params: + _header_params['Accept'] = self.api_client.select_header_accept( + [ + 'application/json' + ] + ) + + # set the HTTP header `Content-Type` + if _content_type: + _header_params['Content-Type'] = _content_type + else: + _default_content_type = ( + self.api_client.select_header_content_type( + [ + 'application/json' + ] + ) + ) + if _default_content_type is not None: + _header_params['Content-Type'] = _default_content_type + + # authentication setting + _auth_settings: List[str] = [ + 'BearerAuth' + ] + + return self.api_client.param_serialize( + method='POST', + resource_path='/api/v3/organizations/{organisation}/ai/filter-policies', + path_params=_path_params, + query_params=_query_params, + header_params=_header_params, + body=_body_params, + post_params=_form_params, + files=_files, + auth_settings=_auth_settings, + collection_formats=_collection_formats, + _host=_host, + _request_auth=_request_auth + ) + + + + + @validate_call + def delete_filter_policy( + self, + organisation: StrictStr, + policy_id: StrictStr, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> object: + """Delete a specific AI filter policy + + + :param organisation: (required) + :type organisation: str + :param policy_id: (required) + :type policy_id: str + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._delete_filter_policy_serialize( + organisation=organisation, + policy_id=policy_id, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "object", + '500': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ).data + + + @validate_call + def delete_filter_policy_with_http_info( + self, + organisation: StrictStr, + policy_id: StrictStr, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> ApiResponse[object]: + """Delete a specific AI filter policy + + + :param organisation: (required) + :type organisation: str + :param policy_id: (required) + :type policy_id: str + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._delete_filter_policy_serialize( + organisation=organisation, + policy_id=policy_id, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "object", + '500': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ) + + + @validate_call + def delete_filter_policy_without_preload_content( + self, + organisation: StrictStr, + policy_id: StrictStr, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> RESTResponseType: + """Delete a specific AI filter policy + + + :param organisation: (required) + :type organisation: str + :param policy_id: (required) + :type policy_id: str + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._delete_filter_policy_serialize( + organisation=organisation, + policy_id=policy_id, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "object", + '500': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _delete_filter_policy_serialize( + self, + organisation, + policy_id, + _request_auth, + _content_type, + _headers, + _host_index, + ) -> RequestSerialized: + + _host = None + + _collection_formats: Dict[str, str] = { + } + + _path_params: Dict[str, str] = {} + _query_params: List[Tuple[str, str]] = [] + _header_params: Dict[str, Optional[str]] = _headers or {} + _form_params: List[Tuple[str, str]] = [] + _files: Dict[ + str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] + ] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + if organisation is not None: + _path_params['organisation'] = organisation + if policy_id is not None: + _path_params['policyId'] = policy_id + # process the query parameters + # process the header parameters + # process the form parameters + # process the body parameter + + + # set the HTTP header `Accept` + if 'Accept' not in _header_params: + _header_params['Accept'] = self.api_client.select_header_accept( + [ + 'application/json' + ] + ) + + + # authentication setting + _auth_settings: List[str] = [ + 'BearerAuth' + ] + + return self.api_client.param_serialize( + method='DELETE', + resource_path='/api/v3/organizations/{organisation}/ai/filter-policies/{policyId}', + path_params=_path_params, + query_params=_query_params, + header_params=_header_params, + body=_body_params, + post_params=_form_params, + files=_files, + auth_settings=_auth_settings, + collection_formats=_collection_formats, + _host=_host, + _request_auth=_request_auth + ) + + + + + @validate_call + def disable_filter_policy( + self, + organisation: StrictStr, + policy_id: StrictStr, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> object: + """Disable a specific AI filter policy + + + :param organisation: (required) + :type organisation: str + :param policy_id: (required) + :type policy_id: str + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._disable_filter_policy_serialize( + organisation=organisation, + policy_id=policy_id, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "object", + '500': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ).data + + + @validate_call + def disable_filter_policy_with_http_info( + self, + organisation: StrictStr, + policy_id: StrictStr, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> ApiResponse[object]: + """Disable a specific AI filter policy + + + :param organisation: (required) + :type organisation: str + :param policy_id: (required) + :type policy_id: str + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._disable_filter_policy_serialize( + organisation=organisation, + policy_id=policy_id, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "object", + '500': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ) + + + @validate_call + def disable_filter_policy_without_preload_content( + self, + organisation: StrictStr, + policy_id: StrictStr, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> RESTResponseType: + """Disable a specific AI filter policy + + + :param organisation: (required) + :type organisation: str + :param policy_id: (required) + :type policy_id: str + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._disable_filter_policy_serialize( + organisation=organisation, + policy_id=policy_id, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "object", + '500': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _disable_filter_policy_serialize( + self, + organisation, + policy_id, + _request_auth, + _content_type, + _headers, + _host_index, + ) -> RequestSerialized: + + _host = None + + _collection_formats: Dict[str, str] = { + } + + _path_params: Dict[str, str] = {} + _query_params: List[Tuple[str, str]] = [] + _header_params: Dict[str, Optional[str]] = _headers or {} + _form_params: List[Tuple[str, str]] = [] + _files: Dict[ + str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] + ] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + if organisation is not None: + _path_params['organisation'] = organisation + if policy_id is not None: + _path_params['policyId'] = policy_id + # process the query parameters + # process the header parameters + # process the form parameters + # process the body parameter + + + # set the HTTP header `Accept` + if 'Accept' not in _header_params: + _header_params['Accept'] = self.api_client.select_header_accept( + [ + 'application/json' + ] + ) + + + # authentication setting + _auth_settings: List[str] = [ + 'BearerAuth' + ] + + return self.api_client.param_serialize( + method='PUT', + resource_path='/api/v3/organizations/{organisation}/ai/filter-policies/{policyId}/disable', + path_params=_path_params, + query_params=_query_params, + header_params=_header_params, + body=_body_params, + post_params=_form_params, + files=_files, + auth_settings=_auth_settings, + collection_formats=_collection_formats, + _host=_host, + _request_auth=_request_auth + ) + + + + + @validate_call + def enable_filter_policy( + self, + organisation: StrictStr, + policy_id: StrictStr, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> object: + """Enable a specific AI filter policy + + + :param organisation: (required) + :type organisation: str + :param policy_id: (required) + :type policy_id: str + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._enable_filter_policy_serialize( + organisation=organisation, + policy_id=policy_id, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "object", + '500': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ).data + + + @validate_call + def enable_filter_policy_with_http_info( + self, + organisation: StrictStr, + policy_id: StrictStr, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> ApiResponse[object]: + """Enable a specific AI filter policy + + + :param organisation: (required) + :type organisation: str + :param policy_id: (required) + :type policy_id: str + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._enable_filter_policy_serialize( + organisation=organisation, + policy_id=policy_id, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "object", + '500': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ) + + + @validate_call + def enable_filter_policy_without_preload_content( + self, + organisation: StrictStr, + policy_id: StrictStr, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> RESTResponseType: + """Enable a specific AI filter policy + + + :param organisation: (required) + :type organisation: str + :param policy_id: (required) + :type policy_id: str + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._enable_filter_policy_serialize( + organisation=organisation, + policy_id=policy_id, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "object", + '500': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _enable_filter_policy_serialize( + self, + organisation, + policy_id, + _request_auth, + _content_type, + _headers, + _host_index, + ) -> RequestSerialized: + + _host = None + + _collection_formats: Dict[str, str] = { + } + + _path_params: Dict[str, str] = {} + _query_params: List[Tuple[str, str]] = [] + _header_params: Dict[str, Optional[str]] = _headers or {} + _form_params: List[Tuple[str, str]] = [] + _files: Dict[ + str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] + ] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + if organisation is not None: + _path_params['organisation'] = organisation + if policy_id is not None: + _path_params['policyId'] = policy_id + # process the query parameters + # process the header parameters + # process the form parameters + # process the body parameter + + + # set the HTTP header `Accept` + if 'Accept' not in _header_params: + _header_params['Accept'] = self.api_client.select_header_accept( + [ + 'application/json' + ] + ) + + + # authentication setting + _auth_settings: List[str] = [ + 'BearerAuth' + ] + + return self.api_client.param_serialize( + method='PUT', + resource_path='/api/v3/organizations/{organisation}/ai/filter-policies/{policyId}/enable', + path_params=_path_params, + query_params=_query_params, + header_params=_header_params, + body=_body_params, + post_params=_form_params, + files=_files, + auth_settings=_auth_settings, + collection_formats=_collection_formats, + _host=_host, + _request_auth=_request_auth + ) + + + + + @validate_call + def get_filter_policy( + self, + organisation: StrictStr, + policy_id: StrictStr, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> object: + """Get a specific AI filter policy + + + :param organisation: (required) + :type organisation: str + :param policy_id: (required) + :type policy_id: str + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._get_filter_policy_serialize( + organisation=organisation, + policy_id=policy_id, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "object", + '404': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ).data + + + @validate_call + def get_filter_policy_with_http_info( + self, + organisation: StrictStr, + policy_id: StrictStr, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> ApiResponse[object]: + """Get a specific AI filter policy + + + :param organisation: (required) + :type organisation: str + :param policy_id: (required) + :type policy_id: str + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._get_filter_policy_serialize( + organisation=organisation, + policy_id=policy_id, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "object", + '404': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ) + + + @validate_call + def get_filter_policy_without_preload_content( + self, + organisation: StrictStr, + policy_id: StrictStr, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> RESTResponseType: + """Get a specific AI filter policy + + + :param organisation: (required) + :type organisation: str + :param policy_id: (required) + :type policy_id: str + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._get_filter_policy_serialize( + organisation=organisation, + policy_id=policy_id, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "object", + '404': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _get_filter_policy_serialize( + self, + organisation, + policy_id, + _request_auth, + _content_type, + _headers, + _host_index, + ) -> RequestSerialized: + + _host = None + + _collection_formats: Dict[str, str] = { + } + + _path_params: Dict[str, str] = {} + _query_params: List[Tuple[str, str]] = [] + _header_params: Dict[str, Optional[str]] = _headers or {} + _form_params: List[Tuple[str, str]] = [] + _files: Dict[ + str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] + ] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + if organisation is not None: + _path_params['organisation'] = organisation + if policy_id is not None: + _path_params['policyId'] = policy_id + # process the query parameters + # process the header parameters + # process the form parameters + # process the body parameter + + + # set the HTTP header `Accept` + if 'Accept' not in _header_params: + _header_params['Accept'] = self.api_client.select_header_accept( + [ + 'application/json' + ] + ) + + + # authentication setting + _auth_settings: List[str] = [ + 'BearerAuth' + ] + + return self.api_client.param_serialize( + method='GET', + resource_path='/api/v3/organizations/{organisation}/ai/filter-policies/{policyId}', + path_params=_path_params, + query_params=_query_params, + header_params=_header_params, + body=_body_params, + post_params=_form_params, + files=_files, + auth_settings=_auth_settings, + collection_formats=_collection_formats, + _host=_host, + _request_auth=_request_auth + ) + + + + + @validate_call + def list_filter_policies( + self, + organisation: Annotated[StrictStr, Field(description="The organisation ID")], + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> object: + """List AI filter policies for an organisation + + + :param organisation: The organisation ID (required) + :type organisation: str + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._list_filter_policies_serialize( + organisation=organisation, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "object", + '500': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ).data + + + @validate_call + def list_filter_policies_with_http_info( + self, + organisation: Annotated[StrictStr, Field(description="The organisation ID")], + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> ApiResponse[object]: + """List AI filter policies for an organisation + + + :param organisation: The organisation ID (required) + :type organisation: str + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._list_filter_policies_serialize( + organisation=organisation, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "object", + '500': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ) + + + @validate_call + def list_filter_policies_without_preload_content( + self, + organisation: Annotated[StrictStr, Field(description="The organisation ID")], + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> RESTResponseType: + """List AI filter policies for an organisation + + + :param organisation: The organisation ID (required) + :type organisation: str + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._list_filter_policies_serialize( + organisation=organisation, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "object", + '500': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _list_filter_policies_serialize( + self, + organisation, + _request_auth, + _content_type, + _headers, + _host_index, + ) -> RequestSerialized: + + _host = None + + _collection_formats: Dict[str, str] = { + } + + _path_params: Dict[str, str] = {} + _query_params: List[Tuple[str, str]] = [] + _header_params: Dict[str, Optional[str]] = _headers or {} + _form_params: List[Tuple[str, str]] = [] + _files: Dict[ + str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] + ] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + if organisation is not None: + _path_params['organisation'] = organisation + # process the query parameters + # process the header parameters + # process the form parameters + # process the body parameter + + + # set the HTTP header `Accept` + if 'Accept' not in _header_params: + _header_params['Accept'] = self.api_client.select_header_accept( + [ + 'application/json' + ] + ) + + + # authentication setting + _auth_settings: List[str] = [ + 'BearerAuth' + ] + + return self.api_client.param_serialize( + method='GET', + resource_path='/api/v3/organizations/{organisation}/ai/filter-policies', + path_params=_path_params, + query_params=_query_params, + header_params=_header_params, + body=_body_params, + post_params=_form_params, + files=_files, + auth_settings=_auth_settings, + collection_formats=_collection_formats, + _host=_host, + _request_auth=_request_auth + ) + + + + + @validate_call + def update_filter_policy( + self, + organisation: StrictStr, + policy_id: StrictStr, + update_filter_policy_request: UpdateFilterPolicyRequest, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> object: + """Update a specific AI filter policy + + + :param organisation: (required) + :type organisation: str + :param policy_id: (required) + :type policy_id: str + :param update_filter_policy_request: (required) + :type update_filter_policy_request: UpdateFilterPolicyRequest + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._update_filter_policy_serialize( + organisation=organisation, + policy_id=policy_id, + update_filter_policy_request=update_filter_policy_request, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "object", + '422': None, + '500': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ).data + + + @validate_call + def update_filter_policy_with_http_info( + self, + organisation: StrictStr, + policy_id: StrictStr, + update_filter_policy_request: UpdateFilterPolicyRequest, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> ApiResponse[object]: + """Update a specific AI filter policy + + + :param organisation: (required) + :type organisation: str + :param policy_id: (required) + :type policy_id: str + :param update_filter_policy_request: (required) + :type update_filter_policy_request: UpdateFilterPolicyRequest + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._update_filter_policy_serialize( + organisation=organisation, + policy_id=policy_id, + update_filter_policy_request=update_filter_policy_request, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "object", + '422': None, + '500': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ) + + + @validate_call + def update_filter_policy_without_preload_content( + self, + organisation: StrictStr, + policy_id: StrictStr, + update_filter_policy_request: UpdateFilterPolicyRequest, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> RESTResponseType: + """Update a specific AI filter policy + + + :param organisation: (required) + :type organisation: str + :param policy_id: (required) + :type policy_id: str + :param update_filter_policy_request: (required) + :type update_filter_policy_request: UpdateFilterPolicyRequest + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._update_filter_policy_serialize( + organisation=organisation, + policy_id=policy_id, + update_filter_policy_request=update_filter_policy_request, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "object", + '422': None, + '500': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _update_filter_policy_serialize( + self, + organisation, + policy_id, + update_filter_policy_request, + _request_auth, + _content_type, + _headers, + _host_index, + ) -> RequestSerialized: + + _host = None + + _collection_formats: Dict[str, str] = { + } + + _path_params: Dict[str, str] = {} + _query_params: List[Tuple[str, str]] = [] + _header_params: Dict[str, Optional[str]] = _headers or {} + _form_params: List[Tuple[str, str]] = [] + _files: Dict[ + str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] + ] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + if organisation is not None: + _path_params['organisation'] = organisation + if policy_id is not None: + _path_params['policyId'] = policy_id + # process the query parameters + # process the header parameters + # process the form parameters + # process the body parameter + if update_filter_policy_request is not None: + _body_params = update_filter_policy_request + + + # set the HTTP header `Accept` + if 'Accept' not in _header_params: + _header_params['Accept'] = self.api_client.select_header_accept( + [ + 'application/json' + ] + ) + + # set the HTTP header `Content-Type` + if _content_type: + _header_params['Content-Type'] = _content_type + else: + _default_content_type = ( + self.api_client.select_header_content_type( + [ + 'application/json' + ] + ) + ) + if _default_content_type is not None: + _header_params['Content-Type'] = _default_content_type + + # authentication setting + _auth_settings: List[str] = [ + 'BearerAuth' + ] + + return self.api_client.param_serialize( + method='PUT', + resource_path='/api/v3/organizations/{organisation}/ai/filter-policies/{policyId}', + path_params=_path_params, + query_params=_query_params, + header_params=_header_params, + body=_body_params, + post_params=_form_params, + files=_files, + auth_settings=_auth_settings, + collection_formats=_collection_formats, + _host=_host, + _request_auth=_request_auth + ) + + diff --git a/quantcdn/api/ai_governance_api.py b/quantcdn/api/ai_governance_api.py new file mode 100644 index 00000000..a231ea6a --- /dev/null +++ b/quantcdn/api/ai_governance_api.py @@ -0,0 +1,855 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + +import warnings +from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt +from typing import Any, Dict, List, Optional, Tuple, Union +from typing_extensions import Annotated + +from pydantic import Field, StrictStr +from typing_extensions import Annotated +from quantcdn.models.get_governance_config200_response import GetGovernanceConfig200Response +from quantcdn.models.get_governance_spend200_response import GetGovernanceSpend200Response +from quantcdn.models.update_governance_config200_response import UpdateGovernanceConfig200Response +from quantcdn.models.update_governance_config_request import UpdateGovernanceConfigRequest + +from quantcdn.api_client import ApiClient, RequestSerialized +from quantcdn.api_response import ApiResponse +from quantcdn.rest import RESTResponseType + + +class AIGovernanceApi: + """NOTE: This class is auto generated by OpenAPI Generator + Ref: https://openapi-generator.tech + + Do not edit the class manually. + """ + + def __init__(self, api_client=None) -> None: + if api_client is None: + api_client = ApiClient.get_default() + self.api_client = api_client + + + @validate_call + def get_governance_config( + self, + organisation: Annotated[StrictStr, Field(description="The organisation ID")], + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> GetGovernanceConfig200Response: + """Get AI governance configuration for an organisation + + + :param organisation: The organisation ID (required) + :type organisation: str + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._get_governance_config_serialize( + organisation=organisation, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "GetGovernanceConfig200Response", + '500': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ).data + + + @validate_call + def get_governance_config_with_http_info( + self, + organisation: Annotated[StrictStr, Field(description="The organisation ID")], + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> ApiResponse[GetGovernanceConfig200Response]: + """Get AI governance configuration for an organisation + + + :param organisation: The organisation ID (required) + :type organisation: str + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._get_governance_config_serialize( + organisation=organisation, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "GetGovernanceConfig200Response", + '500': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ) + + + @validate_call + def get_governance_config_without_preload_content( + self, + organisation: Annotated[StrictStr, Field(description="The organisation ID")], + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> RESTResponseType: + """Get AI governance configuration for an organisation + + + :param organisation: The organisation ID (required) + :type organisation: str + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._get_governance_config_serialize( + organisation=organisation, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "GetGovernanceConfig200Response", + '500': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _get_governance_config_serialize( + self, + organisation, + _request_auth, + _content_type, + _headers, + _host_index, + ) -> RequestSerialized: + + _host = None + + _collection_formats: Dict[str, str] = { + } + + _path_params: Dict[str, str] = {} + _query_params: List[Tuple[str, str]] = [] + _header_params: Dict[str, Optional[str]] = _headers or {} + _form_params: List[Tuple[str, str]] = [] + _files: Dict[ + str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] + ] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + if organisation is not None: + _path_params['organisation'] = organisation + # process the query parameters + # process the header parameters + # process the form parameters + # process the body parameter + + + # set the HTTP header `Accept` + if 'Accept' not in _header_params: + _header_params['Accept'] = self.api_client.select_header_accept( + [ + 'application/json' + ] + ) + + + # authentication setting + _auth_settings: List[str] = [ + 'BearerAuth' + ] + + return self.api_client.param_serialize( + method='GET', + resource_path='/api/v3/organizations/{organisation}/ai/governance', + path_params=_path_params, + query_params=_query_params, + header_params=_header_params, + body=_body_params, + post_params=_form_params, + files=_files, + auth_settings=_auth_settings, + collection_formats=_collection_formats, + _host=_host, + _request_auth=_request_auth + ) + + + + + @validate_call + def get_governance_spend( + self, + organisation: Annotated[StrictStr, Field(description="The organisation ID")], + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> GetGovernanceSpend200Response: + """Get AI spend summary for an organisation + + + :param organisation: The organisation ID (required) + :type organisation: str + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._get_governance_spend_serialize( + organisation=organisation, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "GetGovernanceSpend200Response", + '500': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ).data + + + @validate_call + def get_governance_spend_with_http_info( + self, + organisation: Annotated[StrictStr, Field(description="The organisation ID")], + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> ApiResponse[GetGovernanceSpend200Response]: + """Get AI spend summary for an organisation + + + :param organisation: The organisation ID (required) + :type organisation: str + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._get_governance_spend_serialize( + organisation=organisation, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "GetGovernanceSpend200Response", + '500': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ) + + + @validate_call + def get_governance_spend_without_preload_content( + self, + organisation: Annotated[StrictStr, Field(description="The organisation ID")], + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> RESTResponseType: + """Get AI spend summary for an organisation + + + :param organisation: The organisation ID (required) + :type organisation: str + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._get_governance_spend_serialize( + organisation=organisation, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "GetGovernanceSpend200Response", + '500': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _get_governance_spend_serialize( + self, + organisation, + _request_auth, + _content_type, + _headers, + _host_index, + ) -> RequestSerialized: + + _host = None + + _collection_formats: Dict[str, str] = { + } + + _path_params: Dict[str, str] = {} + _query_params: List[Tuple[str, str]] = [] + _header_params: Dict[str, Optional[str]] = _headers or {} + _form_params: List[Tuple[str, str]] = [] + _files: Dict[ + str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] + ] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + if organisation is not None: + _path_params['organisation'] = organisation + # process the query parameters + # process the header parameters + # process the form parameters + # process the body parameter + + + # set the HTTP header `Accept` + if 'Accept' not in _header_params: + _header_params['Accept'] = self.api_client.select_header_accept( + [ + 'application/json' + ] + ) + + + # authentication setting + _auth_settings: List[str] = [ + 'BearerAuth' + ] + + return self.api_client.param_serialize( + method='GET', + resource_path='/api/v3/organizations/{organisation}/ai/governance/spend', + path_params=_path_params, + query_params=_query_params, + header_params=_header_params, + body=_body_params, + post_params=_form_params, + files=_files, + auth_settings=_auth_settings, + collection_formats=_collection_formats, + _host=_host, + _request_auth=_request_auth + ) + + + + + @validate_call + def update_governance_config( + self, + organisation: Annotated[StrictStr, Field(description="The organisation ID")], + update_governance_config_request: UpdateGovernanceConfigRequest, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> UpdateGovernanceConfig200Response: + """Update AI governance configuration for an organisation + + + :param organisation: The organisation ID (required) + :type organisation: str + :param update_governance_config_request: (required) + :type update_governance_config_request: UpdateGovernanceConfigRequest + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._update_governance_config_serialize( + organisation=organisation, + update_governance_config_request=update_governance_config_request, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "UpdateGovernanceConfig200Response", + '422': None, + '500': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ).data + + + @validate_call + def update_governance_config_with_http_info( + self, + organisation: Annotated[StrictStr, Field(description="The organisation ID")], + update_governance_config_request: UpdateGovernanceConfigRequest, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> ApiResponse[UpdateGovernanceConfig200Response]: + """Update AI governance configuration for an organisation + + + :param organisation: The organisation ID (required) + :type organisation: str + :param update_governance_config_request: (required) + :type update_governance_config_request: UpdateGovernanceConfigRequest + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._update_governance_config_serialize( + organisation=organisation, + update_governance_config_request=update_governance_config_request, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "UpdateGovernanceConfig200Response", + '422': None, + '500': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ) + + + @validate_call + def update_governance_config_without_preload_content( + self, + organisation: Annotated[StrictStr, Field(description="The organisation ID")], + update_governance_config_request: UpdateGovernanceConfigRequest, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> RESTResponseType: + """Update AI governance configuration for an organisation + + + :param organisation: The organisation ID (required) + :type organisation: str + :param update_governance_config_request: (required) + :type update_governance_config_request: UpdateGovernanceConfigRequest + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._update_governance_config_serialize( + organisation=organisation, + update_governance_config_request=update_governance_config_request, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "UpdateGovernanceConfig200Response", + '422': None, + '500': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _update_governance_config_serialize( + self, + organisation, + update_governance_config_request, + _request_auth, + _content_type, + _headers, + _host_index, + ) -> RequestSerialized: + + _host = None + + _collection_formats: Dict[str, str] = { + } + + _path_params: Dict[str, str] = {} + _query_params: List[Tuple[str, str]] = [] + _header_params: Dict[str, Optional[str]] = _headers or {} + _form_params: List[Tuple[str, str]] = [] + _files: Dict[ + str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] + ] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + if organisation is not None: + _path_params['organisation'] = organisation + # process the query parameters + # process the header parameters + # process the form parameters + # process the body parameter + if update_governance_config_request is not None: + _body_params = update_governance_config_request + + + # set the HTTP header `Accept` + if 'Accept' not in _header_params: + _header_params['Accept'] = self.api_client.select_header_accept( + [ + 'application/json' + ] + ) + + # set the HTTP header `Content-Type` + if _content_type: + _header_params['Content-Type'] = _content_type + else: + _default_content_type = ( + self.api_client.select_header_content_type( + [ + 'application/json' + ] + ) + ) + if _default_content_type is not None: + _header_params['Content-Type'] = _default_content_type + + # authentication setting + _auth_settings: List[str] = [ + 'BearerAuth' + ] + + return self.api_client.param_serialize( + method='PUT', + resource_path='/api/v3/organizations/{organisation}/ai/governance', + path_params=_path_params, + query_params=_query_params, + header_params=_header_params, + body=_body_params, + post_params=_form_params, + files=_files, + auth_settings=_auth_settings, + collection_formats=_collection_formats, + _host=_host, + _request_auth=_request_auth + ) + + diff --git a/quantcdn/api/ai_inference_api.py b/quantcdn/api/ai_inference_api.py index ff9ef81e..0faecfc2 100644 --- a/quantcdn/api/ai_inference_api.py +++ b/quantcdn/api/ai_inference_api.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/api/ai_models_api.py b/quantcdn/api/ai_models_api.py index 4d2a5e6e..599d8f80 100644 --- a/quantcdn/api/ai_models_api.py +++ b/quantcdn/api/ai_models_api.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/api/ai_orchestrations_api.py b/quantcdn/api/ai_orchestrations_api.py new file mode 100644 index 00000000..47b47e6d --- /dev/null +++ b/quantcdn/api/ai_orchestrations_api.py @@ -0,0 +1,2694 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + +import warnings +from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt +from typing import Any, Dict, List, Optional, Tuple, Union +from typing_extensions import Annotated + +from pydantic import Field, StrictStr, field_validator +from typing import Any, Dict, Optional +from typing_extensions import Annotated +from quantcdn.models.create_orchestration_request import CreateOrchestrationRequest +from quantcdn.models.list_orchestration_batches200_response import ListOrchestrationBatches200Response +from quantcdn.models.list_orchestrations200_response import ListOrchestrations200Response + +from quantcdn.api_client import ApiClient, RequestSerialized +from quantcdn.api_response import ApiResponse +from quantcdn.rest import RESTResponseType + + +class AIOrchestrationsApi: + """NOTE: This class is auto generated by OpenAPI Generator + Ref: https://openapi-generator.tech + + Do not edit the class manually. + """ + + def __init__(self, api_client=None) -> None: + if api_client is None: + api_client = ApiClient.get_default() + self.api_client = api_client + + + @validate_call + def cancel_orchestration( + self, + organisation: Annotated[StrictStr, Field(description="The organisation machine name")], + orchestration_id: Annotated[StrictStr, Field(description="Orchestration identifier")], + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> object: + """Cancel Durable Orchestration + + Cancel an orchestration permanently. Cannot be resumed. Any in-progress items will complete, but no new processing starts. + + :param organisation: The organisation machine name (required) + :type organisation: str + :param orchestration_id: Orchestration identifier (required) + :type orchestration_id: str + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._cancel_orchestration_serialize( + organisation=organisation, + orchestration_id=orchestration_id, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "object", + '400': None, + '403': None, + '404': None, + '500': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ).data + + + @validate_call + def cancel_orchestration_with_http_info( + self, + organisation: Annotated[StrictStr, Field(description="The organisation machine name")], + orchestration_id: Annotated[StrictStr, Field(description="Orchestration identifier")], + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> ApiResponse[object]: + """Cancel Durable Orchestration + + Cancel an orchestration permanently. Cannot be resumed. Any in-progress items will complete, but no new processing starts. + + :param organisation: The organisation machine name (required) + :type organisation: str + :param orchestration_id: Orchestration identifier (required) + :type orchestration_id: str + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._cancel_orchestration_serialize( + organisation=organisation, + orchestration_id=orchestration_id, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "object", + '400': None, + '403': None, + '404': None, + '500': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ) + + + @validate_call + def cancel_orchestration_without_preload_content( + self, + organisation: Annotated[StrictStr, Field(description="The organisation machine name")], + orchestration_id: Annotated[StrictStr, Field(description="Orchestration identifier")], + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> RESTResponseType: + """Cancel Durable Orchestration + + Cancel an orchestration permanently. Cannot be resumed. Any in-progress items will complete, but no new processing starts. + + :param organisation: The organisation machine name (required) + :type organisation: str + :param orchestration_id: Orchestration identifier (required) + :type orchestration_id: str + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._cancel_orchestration_serialize( + organisation=organisation, + orchestration_id=orchestration_id, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "object", + '400': None, + '403': None, + '404': None, + '500': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _cancel_orchestration_serialize( + self, + organisation, + orchestration_id, + _request_auth, + _content_type, + _headers, + _host_index, + ) -> RequestSerialized: + + _host = None + + _collection_formats: Dict[str, str] = { + } + + _path_params: Dict[str, str] = {} + _query_params: List[Tuple[str, str]] = [] + _header_params: Dict[str, Optional[str]] = _headers or {} + _form_params: List[Tuple[str, str]] = [] + _files: Dict[ + str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] + ] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + if organisation is not None: + _path_params['organisation'] = organisation + if orchestration_id is not None: + _path_params['orchestrationId'] = orchestration_id + # process the query parameters + # process the header parameters + # process the form parameters + # process the body parameter + + + # set the HTTP header `Accept` + if 'Accept' not in _header_params: + _header_params['Accept'] = self.api_client.select_header_accept( + [ + 'application/json' + ] + ) + + + # authentication setting + _auth_settings: List[str] = [ + 'BearerAuth' + ] + + return self.api_client.param_serialize( + method='POST', + resource_path='/api/v3/organizations/{organisation}/ai/orchestrations/{orchestrationId}/cancel', + path_params=_path_params, + query_params=_query_params, + header_params=_header_params, + body=_body_params, + post_params=_form_params, + files=_files, + auth_settings=_auth_settings, + collection_formats=_collection_formats, + _host=_host, + _request_auth=_request_auth + ) + + + + + @validate_call + def create_orchestration( + self, + organisation: Annotated[StrictStr, Field(description="The organisation machine name")], + create_orchestration_request: CreateOrchestrationRequest, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> object: + """Create Durable Orchestration + + Create a new durable orchestration for batch processing. * * **Input Sources:** * - `static`: Process a fixed list of items * - `task_query`: Process tasks matching a query * - `generator`: AI generates items from a prompt * * **Stop Conditions:** * - `all_complete`: Stop when all items processed * - `max_iterations`: Stop after N iterations * - `condition`: AI evaluates a prompt to decide * - `manual`: Run until manually stopped * * **Auto-start:** * By default, the orchestration starts immediately. Set `autoStart: false` to create in pending state. + + :param organisation: The organisation machine name (required) + :type organisation: str + :param create_orchestration_request: (required) + :type create_orchestration_request: CreateOrchestrationRequest + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._create_orchestration_serialize( + organisation=organisation, + create_orchestration_request=create_orchestration_request, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '201': "object", + '400': None, + '403': None, + '500': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ).data + + + @validate_call + def create_orchestration_with_http_info( + self, + organisation: Annotated[StrictStr, Field(description="The organisation machine name")], + create_orchestration_request: CreateOrchestrationRequest, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> ApiResponse[object]: + """Create Durable Orchestration + + Create a new durable orchestration for batch processing. * * **Input Sources:** * - `static`: Process a fixed list of items * - `task_query`: Process tasks matching a query * - `generator`: AI generates items from a prompt * * **Stop Conditions:** * - `all_complete`: Stop when all items processed * - `max_iterations`: Stop after N iterations * - `condition`: AI evaluates a prompt to decide * - `manual`: Run until manually stopped * * **Auto-start:** * By default, the orchestration starts immediately. Set `autoStart: false` to create in pending state. + + :param organisation: The organisation machine name (required) + :type organisation: str + :param create_orchestration_request: (required) + :type create_orchestration_request: CreateOrchestrationRequest + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._create_orchestration_serialize( + organisation=organisation, + create_orchestration_request=create_orchestration_request, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '201': "object", + '400': None, + '403': None, + '500': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ) + + + @validate_call + def create_orchestration_without_preload_content( + self, + organisation: Annotated[StrictStr, Field(description="The organisation machine name")], + create_orchestration_request: CreateOrchestrationRequest, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> RESTResponseType: + """Create Durable Orchestration + + Create a new durable orchestration for batch processing. * * **Input Sources:** * - `static`: Process a fixed list of items * - `task_query`: Process tasks matching a query * - `generator`: AI generates items from a prompt * * **Stop Conditions:** * - `all_complete`: Stop when all items processed * - `max_iterations`: Stop after N iterations * - `condition`: AI evaluates a prompt to decide * - `manual`: Run until manually stopped * * **Auto-start:** * By default, the orchestration starts immediately. Set `autoStart: false` to create in pending state. + + :param organisation: The organisation machine name (required) + :type organisation: str + :param create_orchestration_request: (required) + :type create_orchestration_request: CreateOrchestrationRequest + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._create_orchestration_serialize( + organisation=organisation, + create_orchestration_request=create_orchestration_request, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '201': "object", + '400': None, + '403': None, + '500': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _create_orchestration_serialize( + self, + organisation, + create_orchestration_request, + _request_auth, + _content_type, + _headers, + _host_index, + ) -> RequestSerialized: + + _host = None + + _collection_formats: Dict[str, str] = { + } + + _path_params: Dict[str, str] = {} + _query_params: List[Tuple[str, str]] = [] + _header_params: Dict[str, Optional[str]] = _headers or {} + _form_params: List[Tuple[str, str]] = [] + _files: Dict[ + str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] + ] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + if organisation is not None: + _path_params['organisation'] = organisation + # process the query parameters + # process the header parameters + # process the form parameters + # process the body parameter + if create_orchestration_request is not None: + _body_params = create_orchestration_request + + + # set the HTTP header `Accept` + if 'Accept' not in _header_params: + _header_params['Accept'] = self.api_client.select_header_accept( + [ + 'application/json' + ] + ) + + # set the HTTP header `Content-Type` + if _content_type: + _header_params['Content-Type'] = _content_type + else: + _default_content_type = ( + self.api_client.select_header_content_type( + [ + 'application/json' + ] + ) + ) + if _default_content_type is not None: + _header_params['Content-Type'] = _default_content_type + + # authentication setting + _auth_settings: List[str] = [ + 'BearerAuth' + ] + + return self.api_client.param_serialize( + method='POST', + resource_path='/api/v3/organizations/{organisation}/ai/orchestrations', + path_params=_path_params, + query_params=_query_params, + header_params=_header_params, + body=_body_params, + post_params=_form_params, + files=_files, + auth_settings=_auth_settings, + collection_formats=_collection_formats, + _host=_host, + _request_auth=_request_auth + ) + + + + + @validate_call + def delete_orchestration( + self, + organisation: Annotated[StrictStr, Field(description="The organisation machine name")], + orchestration_id: Annotated[StrictStr, Field(description="Orchestration identifier")], + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> None: + """Delete Durable Orchestration + + Delete an orchestration. Can only delete orchestrations in completed, failed, or cancelled status. + + :param organisation: The organisation machine name (required) + :type organisation: str + :param orchestration_id: Orchestration identifier (required) + :type orchestration_id: str + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._delete_orchestration_serialize( + organisation=organisation, + orchestration_id=orchestration_id, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '204': None, + '400': None, + '403': None, + '404': None, + '500': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ).data + + + @validate_call + def delete_orchestration_with_http_info( + self, + organisation: Annotated[StrictStr, Field(description="The organisation machine name")], + orchestration_id: Annotated[StrictStr, Field(description="Orchestration identifier")], + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> ApiResponse[None]: + """Delete Durable Orchestration + + Delete an orchestration. Can only delete orchestrations in completed, failed, or cancelled status. + + :param organisation: The organisation machine name (required) + :type organisation: str + :param orchestration_id: Orchestration identifier (required) + :type orchestration_id: str + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._delete_orchestration_serialize( + organisation=organisation, + orchestration_id=orchestration_id, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '204': None, + '400': None, + '403': None, + '404': None, + '500': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ) + + + @validate_call + def delete_orchestration_without_preload_content( + self, + organisation: Annotated[StrictStr, Field(description="The organisation machine name")], + orchestration_id: Annotated[StrictStr, Field(description="Orchestration identifier")], + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> RESTResponseType: + """Delete Durable Orchestration + + Delete an orchestration. Can only delete orchestrations in completed, failed, or cancelled status. + + :param organisation: The organisation machine name (required) + :type organisation: str + :param orchestration_id: Orchestration identifier (required) + :type orchestration_id: str + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._delete_orchestration_serialize( + organisation=organisation, + orchestration_id=orchestration_id, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '204': None, + '400': None, + '403': None, + '404': None, + '500': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _delete_orchestration_serialize( + self, + organisation, + orchestration_id, + _request_auth, + _content_type, + _headers, + _host_index, + ) -> RequestSerialized: + + _host = None + + _collection_formats: Dict[str, str] = { + } + + _path_params: Dict[str, str] = {} + _query_params: List[Tuple[str, str]] = [] + _header_params: Dict[str, Optional[str]] = _headers or {} + _form_params: List[Tuple[str, str]] = [] + _files: Dict[ + str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] + ] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + if organisation is not None: + _path_params['organisation'] = organisation + if orchestration_id is not None: + _path_params['orchestrationId'] = orchestration_id + # process the query parameters + # process the header parameters + # process the form parameters + # process the body parameter + + + + + # authentication setting + _auth_settings: List[str] = [ + 'BearerAuth' + ] + + return self.api_client.param_serialize( + method='DELETE', + resource_path='/api/v3/organizations/{organisation}/ai/orchestrations/{orchestrationId}', + path_params=_path_params, + query_params=_query_params, + header_params=_header_params, + body=_body_params, + post_params=_form_params, + files=_files, + auth_settings=_auth_settings, + collection_formats=_collection_formats, + _host=_host, + _request_auth=_request_auth + ) + + + + + @validate_call + def get_orchestration( + self, + organisation: Annotated[StrictStr, Field(description="The organisation machine name")], + orchestration_id: Annotated[StrictStr, Field(description="Orchestration identifier")], + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> object: + """Get Durable Orchestration + + Get orchestration details including status and progress. * * **Progress Tracking:** * - `total`: Total items to process * - `completed`: Successfully processed * - `failed`: Failed processing * - `pending`: Awaiting processing + + :param organisation: The organisation machine name (required) + :type organisation: str + :param orchestration_id: Orchestration identifier (required) + :type orchestration_id: str + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._get_orchestration_serialize( + organisation=organisation, + orchestration_id=orchestration_id, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "object", + '403': None, + '404': None, + '500': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ).data + + + @validate_call + def get_orchestration_with_http_info( + self, + organisation: Annotated[StrictStr, Field(description="The organisation machine name")], + orchestration_id: Annotated[StrictStr, Field(description="Orchestration identifier")], + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> ApiResponse[object]: + """Get Durable Orchestration + + Get orchestration details including status and progress. * * **Progress Tracking:** * - `total`: Total items to process * - `completed`: Successfully processed * - `failed`: Failed processing * - `pending`: Awaiting processing + + :param organisation: The organisation machine name (required) + :type organisation: str + :param orchestration_id: Orchestration identifier (required) + :type orchestration_id: str + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._get_orchestration_serialize( + organisation=organisation, + orchestration_id=orchestration_id, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "object", + '403': None, + '404': None, + '500': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ) + + + @validate_call + def get_orchestration_without_preload_content( + self, + organisation: Annotated[StrictStr, Field(description="The organisation machine name")], + orchestration_id: Annotated[StrictStr, Field(description="Orchestration identifier")], + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> RESTResponseType: + """Get Durable Orchestration + + Get orchestration details including status and progress. * * **Progress Tracking:** * - `total`: Total items to process * - `completed`: Successfully processed * - `failed`: Failed processing * - `pending`: Awaiting processing + + :param organisation: The organisation machine name (required) + :type organisation: str + :param orchestration_id: Orchestration identifier (required) + :type orchestration_id: str + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._get_orchestration_serialize( + organisation=organisation, + orchestration_id=orchestration_id, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "object", + '403': None, + '404': None, + '500': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _get_orchestration_serialize( + self, + organisation, + orchestration_id, + _request_auth, + _content_type, + _headers, + _host_index, + ) -> RequestSerialized: + + _host = None + + _collection_formats: Dict[str, str] = { + } + + _path_params: Dict[str, str] = {} + _query_params: List[Tuple[str, str]] = [] + _header_params: Dict[str, Optional[str]] = _headers or {} + _form_params: List[Tuple[str, str]] = [] + _files: Dict[ + str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] + ] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + if organisation is not None: + _path_params['organisation'] = organisation + if orchestration_id is not None: + _path_params['orchestrationId'] = orchestration_id + # process the query parameters + # process the header parameters + # process the form parameters + # process the body parameter + + + # set the HTTP header `Accept` + if 'Accept' not in _header_params: + _header_params['Accept'] = self.api_client.select_header_accept( + [ + 'application/json' + ] + ) + + + # authentication setting + _auth_settings: List[str] = [ + 'BearerAuth' + ] + + return self.api_client.param_serialize( + method='GET', + resource_path='/api/v3/organizations/{organisation}/ai/orchestrations/{orchestrationId}', + path_params=_path_params, + query_params=_query_params, + header_params=_header_params, + body=_body_params, + post_params=_form_params, + files=_files, + auth_settings=_auth_settings, + collection_formats=_collection_formats, + _host=_host, + _request_auth=_request_auth + ) + + + + + @validate_call + def list_orchestration_batches( + self, + organisation: Annotated[StrictStr, Field(description="The organisation machine name")], + orchestration_id: Annotated[StrictStr, Field(description="Orchestration identifier")], + limit: Annotated[Optional[Annotated[int, Field(le=100, strict=True, ge=1)]], Field(description="Maximum number of batches to return")] = None, + cursor: Annotated[Optional[StrictStr], Field(description="Pagination cursor from previous response")] = None, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> ListOrchestrationBatches200Response: + """List Orchestration Batches + + Get history of batches processed by this orchestration. Returns paginated batch records with status and item counts. + + :param organisation: The organisation machine name (required) + :type organisation: str + :param orchestration_id: Orchestration identifier (required) + :type orchestration_id: str + :param limit: Maximum number of batches to return + :type limit: int + :param cursor: Pagination cursor from previous response + :type cursor: str + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._list_orchestration_batches_serialize( + organisation=organisation, + orchestration_id=orchestration_id, + limit=limit, + cursor=cursor, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "ListOrchestrationBatches200Response", + '403': None, + '404': None, + '500': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ).data + + + @validate_call + def list_orchestration_batches_with_http_info( + self, + organisation: Annotated[StrictStr, Field(description="The organisation machine name")], + orchestration_id: Annotated[StrictStr, Field(description="Orchestration identifier")], + limit: Annotated[Optional[Annotated[int, Field(le=100, strict=True, ge=1)]], Field(description="Maximum number of batches to return")] = None, + cursor: Annotated[Optional[StrictStr], Field(description="Pagination cursor from previous response")] = None, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> ApiResponse[ListOrchestrationBatches200Response]: + """List Orchestration Batches + + Get history of batches processed by this orchestration. Returns paginated batch records with status and item counts. + + :param organisation: The organisation machine name (required) + :type organisation: str + :param orchestration_id: Orchestration identifier (required) + :type orchestration_id: str + :param limit: Maximum number of batches to return + :type limit: int + :param cursor: Pagination cursor from previous response + :type cursor: str + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._list_orchestration_batches_serialize( + organisation=organisation, + orchestration_id=orchestration_id, + limit=limit, + cursor=cursor, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "ListOrchestrationBatches200Response", + '403': None, + '404': None, + '500': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ) + + + @validate_call + def list_orchestration_batches_without_preload_content( + self, + organisation: Annotated[StrictStr, Field(description="The organisation machine name")], + orchestration_id: Annotated[StrictStr, Field(description="Orchestration identifier")], + limit: Annotated[Optional[Annotated[int, Field(le=100, strict=True, ge=1)]], Field(description="Maximum number of batches to return")] = None, + cursor: Annotated[Optional[StrictStr], Field(description="Pagination cursor from previous response")] = None, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> RESTResponseType: + """List Orchestration Batches + + Get history of batches processed by this orchestration. Returns paginated batch records with status and item counts. + + :param organisation: The organisation machine name (required) + :type organisation: str + :param orchestration_id: Orchestration identifier (required) + :type orchestration_id: str + :param limit: Maximum number of batches to return + :type limit: int + :param cursor: Pagination cursor from previous response + :type cursor: str + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._list_orchestration_batches_serialize( + organisation=organisation, + orchestration_id=orchestration_id, + limit=limit, + cursor=cursor, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "ListOrchestrationBatches200Response", + '403': None, + '404': None, + '500': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _list_orchestration_batches_serialize( + self, + organisation, + orchestration_id, + limit, + cursor, + _request_auth, + _content_type, + _headers, + _host_index, + ) -> RequestSerialized: + + _host = None + + _collection_formats: Dict[str, str] = { + } + + _path_params: Dict[str, str] = {} + _query_params: List[Tuple[str, str]] = [] + _header_params: Dict[str, Optional[str]] = _headers or {} + _form_params: List[Tuple[str, str]] = [] + _files: Dict[ + str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] + ] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + if organisation is not None: + _path_params['organisation'] = organisation + if orchestration_id is not None: + _path_params['orchestrationId'] = orchestration_id + # process the query parameters + if limit is not None: + + _query_params.append(('limit', limit)) + + if cursor is not None: + + _query_params.append(('cursor', cursor)) + + # process the header parameters + # process the form parameters + # process the body parameter + + + # set the HTTP header `Accept` + if 'Accept' not in _header_params: + _header_params['Accept'] = self.api_client.select_header_accept( + [ + 'application/json' + ] + ) + + + # authentication setting + _auth_settings: List[str] = [ + 'BearerAuth' + ] + + return self.api_client.param_serialize( + method='GET', + resource_path='/api/v3/organizations/{organisation}/ai/orchestrations/{orchestrationId}/batches', + path_params=_path_params, + query_params=_query_params, + header_params=_header_params, + body=_body_params, + post_params=_form_params, + files=_files, + auth_settings=_auth_settings, + collection_formats=_collection_formats, + _host=_host, + _request_auth=_request_auth + ) + + + + + @validate_call + def list_orchestrations( + self, + organisation: Annotated[StrictStr, Field(description="The organisation machine name")], + status: Annotated[Optional[StrictStr], Field(description="Filter by orchestration status")] = None, + limit: Annotated[Optional[Annotated[int, Field(le=100, strict=True, ge=1)]], Field(description="Maximum number of results")] = None, + cursor: Annotated[Optional[StrictStr], Field(description="Pagination cursor from previous response")] = None, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> ListOrchestrations200Response: + """List Durable Orchestrations + + List durable orchestrations for an organization with optional filtering. * * **Note:** This is different from `/tools/orchestrations` which handles async tool execution * polling. These durable orchestrations are for long-running batch processing loops. * * **Filter Options:** * - `status`: Filter by orchestration status * - `limit`: Max results (default 20, max 100) * - `cursor`: Pagination cursor + + :param organisation: The organisation machine name (required) + :type organisation: str + :param status: Filter by orchestration status + :type status: str + :param limit: Maximum number of results + :type limit: int + :param cursor: Pagination cursor from previous response + :type cursor: str + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._list_orchestrations_serialize( + organisation=organisation, + status=status, + limit=limit, + cursor=cursor, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "ListOrchestrations200Response", + '403': None, + '500': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ).data + + + @validate_call + def list_orchestrations_with_http_info( + self, + organisation: Annotated[StrictStr, Field(description="The organisation machine name")], + status: Annotated[Optional[StrictStr], Field(description="Filter by orchestration status")] = None, + limit: Annotated[Optional[Annotated[int, Field(le=100, strict=True, ge=1)]], Field(description="Maximum number of results")] = None, + cursor: Annotated[Optional[StrictStr], Field(description="Pagination cursor from previous response")] = None, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> ApiResponse[ListOrchestrations200Response]: + """List Durable Orchestrations + + List durable orchestrations for an organization with optional filtering. * * **Note:** This is different from `/tools/orchestrations` which handles async tool execution * polling. These durable orchestrations are for long-running batch processing loops. * * **Filter Options:** * - `status`: Filter by orchestration status * - `limit`: Max results (default 20, max 100) * - `cursor`: Pagination cursor + + :param organisation: The organisation machine name (required) + :type organisation: str + :param status: Filter by orchestration status + :type status: str + :param limit: Maximum number of results + :type limit: int + :param cursor: Pagination cursor from previous response + :type cursor: str + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._list_orchestrations_serialize( + organisation=organisation, + status=status, + limit=limit, + cursor=cursor, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "ListOrchestrations200Response", + '403': None, + '500': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ) + + + @validate_call + def list_orchestrations_without_preload_content( + self, + organisation: Annotated[StrictStr, Field(description="The organisation machine name")], + status: Annotated[Optional[StrictStr], Field(description="Filter by orchestration status")] = None, + limit: Annotated[Optional[Annotated[int, Field(le=100, strict=True, ge=1)]], Field(description="Maximum number of results")] = None, + cursor: Annotated[Optional[StrictStr], Field(description="Pagination cursor from previous response")] = None, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> RESTResponseType: + """List Durable Orchestrations + + List durable orchestrations for an organization with optional filtering. * * **Note:** This is different from `/tools/orchestrations` which handles async tool execution * polling. These durable orchestrations are for long-running batch processing loops. * * **Filter Options:** * - `status`: Filter by orchestration status * - `limit`: Max results (default 20, max 100) * - `cursor`: Pagination cursor + + :param organisation: The organisation machine name (required) + :type organisation: str + :param status: Filter by orchestration status + :type status: str + :param limit: Maximum number of results + :type limit: int + :param cursor: Pagination cursor from previous response + :type cursor: str + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._list_orchestrations_serialize( + organisation=organisation, + status=status, + limit=limit, + cursor=cursor, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "ListOrchestrations200Response", + '403': None, + '500': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _list_orchestrations_serialize( + self, + organisation, + status, + limit, + cursor, + _request_auth, + _content_type, + _headers, + _host_index, + ) -> RequestSerialized: + + _host = None + + _collection_formats: Dict[str, str] = { + } + + _path_params: Dict[str, str] = {} + _query_params: List[Tuple[str, str]] = [] + _header_params: Dict[str, Optional[str]] = _headers or {} + _form_params: List[Tuple[str, str]] = [] + _files: Dict[ + str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] + ] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + if organisation is not None: + _path_params['organisation'] = organisation + # process the query parameters + if status is not None: + + _query_params.append(('status', status)) + + if limit is not None: + + _query_params.append(('limit', limit)) + + if cursor is not None: + + _query_params.append(('cursor', cursor)) + + # process the header parameters + # process the form parameters + # process the body parameter + + + # set the HTTP header `Accept` + if 'Accept' not in _header_params: + _header_params['Accept'] = self.api_client.select_header_accept( + [ + 'application/json' + ] + ) + + + # authentication setting + _auth_settings: List[str] = [ + 'BearerAuth' + ] + + return self.api_client.param_serialize( + method='GET', + resource_path='/api/v3/organizations/{organisation}/ai/orchestrations', + path_params=_path_params, + query_params=_query_params, + header_params=_header_params, + body=_body_params, + post_params=_form_params, + files=_files, + auth_settings=_auth_settings, + collection_formats=_collection_formats, + _host=_host, + _request_auth=_request_auth + ) + + + + + @validate_call + def pause_orchestration( + self, + organisation: Annotated[StrictStr, Field(description="The organisation machine name")], + orchestration_id: Annotated[StrictStr, Field(description="Orchestration identifier")], + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> object: + """Pause Durable Orchestration + + Pause a running orchestration. The current batch will complete, but no new batches will start. Can be resumed later. + + :param organisation: The organisation machine name (required) + :type organisation: str + :param orchestration_id: Orchestration identifier (required) + :type orchestration_id: str + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._pause_orchestration_serialize( + organisation=organisation, + orchestration_id=orchestration_id, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "object", + '400': None, + '403': None, + '404': None, + '500': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ).data + + + @validate_call + def pause_orchestration_with_http_info( + self, + organisation: Annotated[StrictStr, Field(description="The organisation machine name")], + orchestration_id: Annotated[StrictStr, Field(description="Orchestration identifier")], + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> ApiResponse[object]: + """Pause Durable Orchestration + + Pause a running orchestration. The current batch will complete, but no new batches will start. Can be resumed later. + + :param organisation: The organisation machine name (required) + :type organisation: str + :param orchestration_id: Orchestration identifier (required) + :type orchestration_id: str + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._pause_orchestration_serialize( + organisation=organisation, + orchestration_id=orchestration_id, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "object", + '400': None, + '403': None, + '404': None, + '500': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ) + + + @validate_call + def pause_orchestration_without_preload_content( + self, + organisation: Annotated[StrictStr, Field(description="The organisation machine name")], + orchestration_id: Annotated[StrictStr, Field(description="Orchestration identifier")], + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> RESTResponseType: + """Pause Durable Orchestration + + Pause a running orchestration. The current batch will complete, but no new batches will start. Can be resumed later. + + :param organisation: The organisation machine name (required) + :type organisation: str + :param orchestration_id: Orchestration identifier (required) + :type orchestration_id: str + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._pause_orchestration_serialize( + organisation=organisation, + orchestration_id=orchestration_id, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "object", + '400': None, + '403': None, + '404': None, + '500': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _pause_orchestration_serialize( + self, + organisation, + orchestration_id, + _request_auth, + _content_type, + _headers, + _host_index, + ) -> RequestSerialized: + + _host = None + + _collection_formats: Dict[str, str] = { + } + + _path_params: Dict[str, str] = {} + _query_params: List[Tuple[str, str]] = [] + _header_params: Dict[str, Optional[str]] = _headers or {} + _form_params: List[Tuple[str, str]] = [] + _files: Dict[ + str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] + ] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + if organisation is not None: + _path_params['organisation'] = organisation + if orchestration_id is not None: + _path_params['orchestrationId'] = orchestration_id + # process the query parameters + # process the header parameters + # process the form parameters + # process the body parameter + + + # set the HTTP header `Accept` + if 'Accept' not in _header_params: + _header_params['Accept'] = self.api_client.select_header_accept( + [ + 'application/json' + ] + ) + + + # authentication setting + _auth_settings: List[str] = [ + 'BearerAuth' + ] + + return self.api_client.param_serialize( + method='POST', + resource_path='/api/v3/organizations/{organisation}/ai/orchestrations/{orchestrationId}/pause', + path_params=_path_params, + query_params=_query_params, + header_params=_header_params, + body=_body_params, + post_params=_form_params, + files=_files, + auth_settings=_auth_settings, + collection_formats=_collection_formats, + _host=_host, + _request_auth=_request_auth + ) + + + + + @validate_call + def resume_orchestration( + self, + organisation: Annotated[StrictStr, Field(description="The organisation machine name")], + orchestration_id: Annotated[StrictStr, Field(description="Orchestration identifier")], + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> object: + """Resume Durable Orchestration + + Resume a paused orchestration. Processing continues from where it left off. + + :param organisation: The organisation machine name (required) + :type organisation: str + :param orchestration_id: Orchestration identifier (required) + :type orchestration_id: str + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._resume_orchestration_serialize( + organisation=organisation, + orchestration_id=orchestration_id, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "object", + '400': None, + '403': None, + '404': None, + '500': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ).data + + + @validate_call + def resume_orchestration_with_http_info( + self, + organisation: Annotated[StrictStr, Field(description="The organisation machine name")], + orchestration_id: Annotated[StrictStr, Field(description="Orchestration identifier")], + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> ApiResponse[object]: + """Resume Durable Orchestration + + Resume a paused orchestration. Processing continues from where it left off. + + :param organisation: The organisation machine name (required) + :type organisation: str + :param orchestration_id: Orchestration identifier (required) + :type orchestration_id: str + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._resume_orchestration_serialize( + organisation=organisation, + orchestration_id=orchestration_id, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "object", + '400': None, + '403': None, + '404': None, + '500': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ) + + + @validate_call + def resume_orchestration_without_preload_content( + self, + organisation: Annotated[StrictStr, Field(description="The organisation machine name")], + orchestration_id: Annotated[StrictStr, Field(description="Orchestration identifier")], + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> RESTResponseType: + """Resume Durable Orchestration + + Resume a paused orchestration. Processing continues from where it left off. + + :param organisation: The organisation machine name (required) + :type organisation: str + :param orchestration_id: Orchestration identifier (required) + :type orchestration_id: str + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._resume_orchestration_serialize( + organisation=organisation, + orchestration_id=orchestration_id, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "object", + '400': None, + '403': None, + '404': None, + '500': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _resume_orchestration_serialize( + self, + organisation, + orchestration_id, + _request_auth, + _content_type, + _headers, + _host_index, + ) -> RequestSerialized: + + _host = None + + _collection_formats: Dict[str, str] = { + } + + _path_params: Dict[str, str] = {} + _query_params: List[Tuple[str, str]] = [] + _header_params: Dict[str, Optional[str]] = _headers or {} + _form_params: List[Tuple[str, str]] = [] + _files: Dict[ + str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] + ] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + if organisation is not None: + _path_params['organisation'] = organisation + if orchestration_id is not None: + _path_params['orchestrationId'] = orchestration_id + # process the query parameters + # process the header parameters + # process the form parameters + # process the body parameter + + + # set the HTTP header `Accept` + if 'Accept' not in _header_params: + _header_params['Accept'] = self.api_client.select_header_accept( + [ + 'application/json' + ] + ) + + + # authentication setting + _auth_settings: List[str] = [ + 'BearerAuth' + ] + + return self.api_client.param_serialize( + method='POST', + resource_path='/api/v3/organizations/{organisation}/ai/orchestrations/{orchestrationId}/resume', + path_params=_path_params, + query_params=_query_params, + header_params=_header_params, + body=_body_params, + post_params=_form_params, + files=_files, + auth_settings=_auth_settings, + collection_formats=_collection_formats, + _host=_host, + _request_auth=_request_auth + ) + + + + + @validate_call + def start_orchestration( + self, + organisation: Annotated[StrictStr, Field(description="The organisation machine name")], + orchestration_id: Annotated[StrictStr, Field(description="Orchestration identifier")], + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> object: + """Start Durable Orchestration + + Start a pending orchestration. Only works on orchestrations created with `autoStart: false`. + + :param organisation: The organisation machine name (required) + :type organisation: str + :param orchestration_id: Orchestration identifier (required) + :type orchestration_id: str + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._start_orchestration_serialize( + organisation=organisation, + orchestration_id=orchestration_id, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "object", + '400': None, + '403': None, + '404': None, + '500': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ).data + + + @validate_call + def start_orchestration_with_http_info( + self, + organisation: Annotated[StrictStr, Field(description="The organisation machine name")], + orchestration_id: Annotated[StrictStr, Field(description="Orchestration identifier")], + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> ApiResponse[object]: + """Start Durable Orchestration + + Start a pending orchestration. Only works on orchestrations created with `autoStart: false`. + + :param organisation: The organisation machine name (required) + :type organisation: str + :param orchestration_id: Orchestration identifier (required) + :type orchestration_id: str + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._start_orchestration_serialize( + organisation=organisation, + orchestration_id=orchestration_id, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "object", + '400': None, + '403': None, + '404': None, + '500': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ) + + + @validate_call + def start_orchestration_without_preload_content( + self, + organisation: Annotated[StrictStr, Field(description="The organisation machine name")], + orchestration_id: Annotated[StrictStr, Field(description="Orchestration identifier")], + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> RESTResponseType: + """Start Durable Orchestration + + Start a pending orchestration. Only works on orchestrations created with `autoStart: false`. + + :param organisation: The organisation machine name (required) + :type organisation: str + :param orchestration_id: Orchestration identifier (required) + :type orchestration_id: str + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._start_orchestration_serialize( + organisation=organisation, + orchestration_id=orchestration_id, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "object", + '400': None, + '403': None, + '404': None, + '500': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _start_orchestration_serialize( + self, + organisation, + orchestration_id, + _request_auth, + _content_type, + _headers, + _host_index, + ) -> RequestSerialized: + + _host = None + + _collection_formats: Dict[str, str] = { + } + + _path_params: Dict[str, str] = {} + _query_params: List[Tuple[str, str]] = [] + _header_params: Dict[str, Optional[str]] = _headers or {} + _form_params: List[Tuple[str, str]] = [] + _files: Dict[ + str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] + ] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + if organisation is not None: + _path_params['organisation'] = organisation + if orchestration_id is not None: + _path_params['orchestrationId'] = orchestration_id + # process the query parameters + # process the header parameters + # process the form parameters + # process the body parameter + + + # set the HTTP header `Accept` + if 'Accept' not in _header_params: + _header_params['Accept'] = self.api_client.select_header_accept( + [ + 'application/json' + ] + ) + + + # authentication setting + _auth_settings: List[str] = [ + 'BearerAuth' + ] + + return self.api_client.param_serialize( + method='POST', + resource_path='/api/v3/organizations/{organisation}/ai/orchestrations/{orchestrationId}/start', + path_params=_path_params, + query_params=_query_params, + header_params=_header_params, + body=_body_params, + post_params=_form_params, + files=_files, + auth_settings=_auth_settings, + collection_formats=_collection_formats, + _host=_host, + _request_auth=_request_auth + ) + + diff --git a/quantcdn/api/ai_search_api.py b/quantcdn/api/ai_search_api.py new file mode 100644 index 00000000..4e26e678 --- /dev/null +++ b/quantcdn/api/ai_search_api.py @@ -0,0 +1,4987 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + +import warnings +from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt +from typing import Any, Dict, List, Optional, Tuple, Union +from typing_extensions import Annotated + +from pydantic import Field, StrictInt, StrictStr +from typing import Optional +from typing_extensions import Annotated +from quantcdn.models.ai_search_chat_request import AiSearchChatRequest +from quantcdn.models.ai_search_delete_pages_request import AiSearchDeletePagesRequest +from quantcdn.models.ai_search_enable_request import AiSearchEnableRequest +from quantcdn.models.ai_search_ingest_pages_request import AiSearchIngestPagesRequest +from quantcdn.models.ai_search_search_request import AiSearchSearchRequest +from quantcdn.models.ai_search_trigger_crawl_request import AiSearchTriggerCrawlRequest +from quantcdn.models.ai_search_update_settings_request import AiSearchUpdateSettingsRequest + +from quantcdn.api_client import ApiClient, RequestSerialized +from quantcdn.api_response import ApiResponse +from quantcdn.rest import RESTResponseType + + +class AISearchApi: + """NOTE: This class is auto generated by OpenAPI Generator + Ref: https://openapi-generator.tech + + Do not edit the class manually. + """ + + def __init__(self, api_client=None) -> None: + if api_client is None: + api_client = ApiClient.get_default() + self.api_client = api_client + + + @validate_call + def ai_search_chat( + self, + organisation: StrictStr, + project: StrictStr, + ai_search_chat_request: AiSearchChatRequest, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> None: + """RAG chat with AI Search content + + + :param organisation: (required) + :type organisation: str + :param project: (required) + :type project: str + :param ai_search_chat_request: (required) + :type ai_search_chat_request: AiSearchChatRequest + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._ai_search_chat_serialize( + organisation=organisation, + project=project, + ai_search_chat_request=ai_search_chat_request, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ).data + + + @validate_call + def ai_search_chat_with_http_info( + self, + organisation: StrictStr, + project: StrictStr, + ai_search_chat_request: AiSearchChatRequest, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> ApiResponse[None]: + """RAG chat with AI Search content + + + :param organisation: (required) + :type organisation: str + :param project: (required) + :type project: str + :param ai_search_chat_request: (required) + :type ai_search_chat_request: AiSearchChatRequest + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._ai_search_chat_serialize( + organisation=organisation, + project=project, + ai_search_chat_request=ai_search_chat_request, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ) + + + @validate_call + def ai_search_chat_without_preload_content( + self, + organisation: StrictStr, + project: StrictStr, + ai_search_chat_request: AiSearchChatRequest, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> RESTResponseType: + """RAG chat with AI Search content + + + :param organisation: (required) + :type organisation: str + :param project: (required) + :type project: str + :param ai_search_chat_request: (required) + :type ai_search_chat_request: AiSearchChatRequest + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._ai_search_chat_serialize( + organisation=organisation, + project=project, + ai_search_chat_request=ai_search_chat_request, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _ai_search_chat_serialize( + self, + organisation, + project, + ai_search_chat_request, + _request_auth, + _content_type, + _headers, + _host_index, + ) -> RequestSerialized: + + _host = None + + _collection_formats: Dict[str, str] = { + } + + _path_params: Dict[str, str] = {} + _query_params: List[Tuple[str, str]] = [] + _header_params: Dict[str, Optional[str]] = _headers or {} + _form_params: List[Tuple[str, str]] = [] + _files: Dict[ + str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] + ] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + if organisation is not None: + _path_params['organisation'] = organisation + if project is not None: + _path_params['project'] = project + # process the query parameters + # process the header parameters + # process the form parameters + # process the body parameter + if ai_search_chat_request is not None: + _body_params = ai_search_chat_request + + + + # set the HTTP header `Content-Type` + if _content_type: + _header_params['Content-Type'] = _content_type + else: + _default_content_type = ( + self.api_client.select_header_content_type( + [ + 'application/json' + ] + ) + ) + if _default_content_type is not None: + _header_params['Content-Type'] = _default_content_type + + # authentication setting + _auth_settings: List[str] = [ + 'BearerAuth' + ] + + return self.api_client.param_serialize( + method='POST', + resource_path='/api/v3/organisations/{organisation}/projects/{project}/ai-search/chat', + path_params=_path_params, + query_params=_query_params, + header_params=_header_params, + body=_body_params, + post_params=_form_params, + files=_files, + auth_settings=_auth_settings, + collection_formats=_collection_formats, + _host=_host, + _request_auth=_request_auth + ) + + + + + @validate_call + def ai_search_delete_pages( + self, + organisation: StrictStr, + project: StrictStr, + ai_search_delete_pages_request: AiSearchDeletePagesRequest, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> None: + """Delete pages by URLs or patterns + + + :param organisation: (required) + :type organisation: str + :param project: (required) + :type project: str + :param ai_search_delete_pages_request: (required) + :type ai_search_delete_pages_request: AiSearchDeletePagesRequest + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._ai_search_delete_pages_serialize( + organisation=organisation, + project=project, + ai_search_delete_pages_request=ai_search_delete_pages_request, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ).data + + + @validate_call + def ai_search_delete_pages_with_http_info( + self, + organisation: StrictStr, + project: StrictStr, + ai_search_delete_pages_request: AiSearchDeletePagesRequest, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> ApiResponse[None]: + """Delete pages by URLs or patterns + + + :param organisation: (required) + :type organisation: str + :param project: (required) + :type project: str + :param ai_search_delete_pages_request: (required) + :type ai_search_delete_pages_request: AiSearchDeletePagesRequest + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._ai_search_delete_pages_serialize( + organisation=organisation, + project=project, + ai_search_delete_pages_request=ai_search_delete_pages_request, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ) + + + @validate_call + def ai_search_delete_pages_without_preload_content( + self, + organisation: StrictStr, + project: StrictStr, + ai_search_delete_pages_request: AiSearchDeletePagesRequest, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> RESTResponseType: + """Delete pages by URLs or patterns + + + :param organisation: (required) + :type organisation: str + :param project: (required) + :type project: str + :param ai_search_delete_pages_request: (required) + :type ai_search_delete_pages_request: AiSearchDeletePagesRequest + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._ai_search_delete_pages_serialize( + organisation=organisation, + project=project, + ai_search_delete_pages_request=ai_search_delete_pages_request, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _ai_search_delete_pages_serialize( + self, + organisation, + project, + ai_search_delete_pages_request, + _request_auth, + _content_type, + _headers, + _host_index, + ) -> RequestSerialized: + + _host = None + + _collection_formats: Dict[str, str] = { + } + + _path_params: Dict[str, str] = {} + _query_params: List[Tuple[str, str]] = [] + _header_params: Dict[str, Optional[str]] = _headers or {} + _form_params: List[Tuple[str, str]] = [] + _files: Dict[ + str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] + ] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + if organisation is not None: + _path_params['organisation'] = organisation + if project is not None: + _path_params['project'] = project + # process the query parameters + # process the header parameters + # process the form parameters + # process the body parameter + if ai_search_delete_pages_request is not None: + _body_params = ai_search_delete_pages_request + + + + # set the HTTP header `Content-Type` + if _content_type: + _header_params['Content-Type'] = _content_type + else: + _default_content_type = ( + self.api_client.select_header_content_type( + [ + 'application/json' + ] + ) + ) + if _default_content_type is not None: + _header_params['Content-Type'] = _default_content_type + + # authentication setting + _auth_settings: List[str] = [ + 'BearerAuth' + ] + + return self.api_client.param_serialize( + method='DELETE', + resource_path='/api/v3/organisations/{organisation}/projects/{project}/ai-search/pages', + path_params=_path_params, + query_params=_query_params, + header_params=_header_params, + body=_body_params, + post_params=_form_params, + files=_files, + auth_settings=_auth_settings, + collection_formats=_collection_formats, + _host=_host, + _request_auth=_request_auth + ) + + + + + @validate_call + def ai_search_disable( + self, + organisation: StrictStr, + project: StrictStr, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> None: + """Disable AI Search for a project + + + :param organisation: (required) + :type organisation: str + :param project: (required) + :type project: str + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._ai_search_disable_serialize( + organisation=organisation, + project=project, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': None, + '404': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ).data + + + @validate_call + def ai_search_disable_with_http_info( + self, + organisation: StrictStr, + project: StrictStr, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> ApiResponse[None]: + """Disable AI Search for a project + + + :param organisation: (required) + :type organisation: str + :param project: (required) + :type project: str + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._ai_search_disable_serialize( + organisation=organisation, + project=project, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': None, + '404': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ) + + + @validate_call + def ai_search_disable_without_preload_content( + self, + organisation: StrictStr, + project: StrictStr, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> RESTResponseType: + """Disable AI Search for a project + + + :param organisation: (required) + :type organisation: str + :param project: (required) + :type project: str + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._ai_search_disable_serialize( + organisation=organisation, + project=project, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': None, + '404': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _ai_search_disable_serialize( + self, + organisation, + project, + _request_auth, + _content_type, + _headers, + _host_index, + ) -> RequestSerialized: + + _host = None + + _collection_formats: Dict[str, str] = { + } + + _path_params: Dict[str, str] = {} + _query_params: List[Tuple[str, str]] = [] + _header_params: Dict[str, Optional[str]] = _headers or {} + _form_params: List[Tuple[str, str]] = [] + _files: Dict[ + str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] + ] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + if organisation is not None: + _path_params['organisation'] = organisation + if project is not None: + _path_params['project'] = project + # process the query parameters + # process the header parameters + # process the form parameters + # process the body parameter + + + + + # authentication setting + _auth_settings: List[str] = [ + 'BearerAuth' + ] + + return self.api_client.param_serialize( + method='POST', + resource_path='/api/v3/organisations/{organisation}/projects/{project}/ai-search/disable', + path_params=_path_params, + query_params=_query_params, + header_params=_header_params, + body=_body_params, + post_params=_form_params, + files=_files, + auth_settings=_auth_settings, + collection_formats=_collection_formats, + _host=_host, + _request_auth=_request_auth + ) + + + + + @validate_call + def ai_search_enable( + self, + organisation: StrictStr, + project: StrictStr, + ai_search_enable_request: Optional[AiSearchEnableRequest] = None, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> None: + """Enable AI Search for a project + + + :param organisation: (required) + :type organisation: str + :param project: (required) + :type project: str + :param ai_search_enable_request: + :type ai_search_enable_request: AiSearchEnableRequest + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._ai_search_enable_serialize( + organisation=organisation, + project=project, + ai_search_enable_request=ai_search_enable_request, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': None, + '400': None, + '409': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ).data + + + @validate_call + def ai_search_enable_with_http_info( + self, + organisation: StrictStr, + project: StrictStr, + ai_search_enable_request: Optional[AiSearchEnableRequest] = None, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> ApiResponse[None]: + """Enable AI Search for a project + + + :param organisation: (required) + :type organisation: str + :param project: (required) + :type project: str + :param ai_search_enable_request: + :type ai_search_enable_request: AiSearchEnableRequest + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._ai_search_enable_serialize( + organisation=organisation, + project=project, + ai_search_enable_request=ai_search_enable_request, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': None, + '400': None, + '409': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ) + + + @validate_call + def ai_search_enable_without_preload_content( + self, + organisation: StrictStr, + project: StrictStr, + ai_search_enable_request: Optional[AiSearchEnableRequest] = None, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> RESTResponseType: + """Enable AI Search for a project + + + :param organisation: (required) + :type organisation: str + :param project: (required) + :type project: str + :param ai_search_enable_request: + :type ai_search_enable_request: AiSearchEnableRequest + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._ai_search_enable_serialize( + organisation=organisation, + project=project, + ai_search_enable_request=ai_search_enable_request, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': None, + '400': None, + '409': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _ai_search_enable_serialize( + self, + organisation, + project, + ai_search_enable_request, + _request_auth, + _content_type, + _headers, + _host_index, + ) -> RequestSerialized: + + _host = None + + _collection_formats: Dict[str, str] = { + } + + _path_params: Dict[str, str] = {} + _query_params: List[Tuple[str, str]] = [] + _header_params: Dict[str, Optional[str]] = _headers or {} + _form_params: List[Tuple[str, str]] = [] + _files: Dict[ + str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] + ] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + if organisation is not None: + _path_params['organisation'] = organisation + if project is not None: + _path_params['project'] = project + # process the query parameters + # process the header parameters + # process the form parameters + # process the body parameter + if ai_search_enable_request is not None: + _body_params = ai_search_enable_request + + + + # set the HTTP header `Content-Type` + if _content_type: + _header_params['Content-Type'] = _content_type + else: + _default_content_type = ( + self.api_client.select_header_content_type( + [ + 'application/json' + ] + ) + ) + if _default_content_type is not None: + _header_params['Content-Type'] = _default_content_type + + # authentication setting + _auth_settings: List[str] = [ + 'BearerAuth' + ] + + return self.api_client.param_serialize( + method='POST', + resource_path='/api/v3/organisations/{organisation}/projects/{project}/ai-search/enable', + path_params=_path_params, + query_params=_query_params, + header_params=_header_params, + body=_body_params, + post_params=_form_params, + files=_files, + auth_settings=_auth_settings, + collection_formats=_collection_formats, + _host=_host, + _request_auth=_request_auth + ) + + + + + @validate_call + def ai_search_get_crawl( + self, + organisation: StrictStr, + project: StrictStr, + job_id: StrictStr, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> None: + """Get AI Search ingest job status + + + :param organisation: (required) + :type organisation: str + :param project: (required) + :type project: str + :param job_id: (required) + :type job_id: str + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._ai_search_get_crawl_serialize( + organisation=organisation, + project=project, + job_id=job_id, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ).data + + + @validate_call + def ai_search_get_crawl_with_http_info( + self, + organisation: StrictStr, + project: StrictStr, + job_id: StrictStr, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> ApiResponse[None]: + """Get AI Search ingest job status + + + :param organisation: (required) + :type organisation: str + :param project: (required) + :type project: str + :param job_id: (required) + :type job_id: str + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._ai_search_get_crawl_serialize( + organisation=organisation, + project=project, + job_id=job_id, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ) + + + @validate_call + def ai_search_get_crawl_without_preload_content( + self, + organisation: StrictStr, + project: StrictStr, + job_id: StrictStr, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> RESTResponseType: + """Get AI Search ingest job status + + + :param organisation: (required) + :type organisation: str + :param project: (required) + :type project: str + :param job_id: (required) + :type job_id: str + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._ai_search_get_crawl_serialize( + organisation=organisation, + project=project, + job_id=job_id, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _ai_search_get_crawl_serialize( + self, + organisation, + project, + job_id, + _request_auth, + _content_type, + _headers, + _host_index, + ) -> RequestSerialized: + + _host = None + + _collection_formats: Dict[str, str] = { + } + + _path_params: Dict[str, str] = {} + _query_params: List[Tuple[str, str]] = [] + _header_params: Dict[str, Optional[str]] = _headers or {} + _form_params: List[Tuple[str, str]] = [] + _files: Dict[ + str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] + ] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + if organisation is not None: + _path_params['organisation'] = organisation + if project is not None: + _path_params['project'] = project + if job_id is not None: + _path_params['jobId'] = job_id + # process the query parameters + # process the header parameters + # process the form parameters + # process the body parameter + + + + + # authentication setting + _auth_settings: List[str] = [ + 'BearerAuth' + ] + + return self.api_client.param_serialize( + method='GET', + resource_path='/api/v3/organisations/{organisation}/projects/{project}/ai-search/crawls/{jobId}', + path_params=_path_params, + query_params=_query_params, + header_params=_header_params, + body=_body_params, + post_params=_form_params, + files=_files, + auth_settings=_auth_settings, + collection_formats=_collection_formats, + _host=_host, + _request_auth=_request_auth + ) + + + + + @validate_call + def ai_search_get_crawl_pages( + self, + organisation: StrictStr, + project: StrictStr, + job_id: StrictStr, + limit: Optional[StrictInt] = None, + status_code: Optional[StrictInt] = None, + processing_status: Optional[StrictStr] = None, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> None: + """Get per-page ingest results for a crawl job + + + :param organisation: (required) + :type organisation: str + :param project: (required) + :type project: str + :param job_id: (required) + :type job_id: str + :param limit: + :type limit: int + :param status_code: + :type status_code: int + :param processing_status: + :type processing_status: str + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._ai_search_get_crawl_pages_serialize( + organisation=organisation, + project=project, + job_id=job_id, + limit=limit, + status_code=status_code, + processing_status=processing_status, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ).data + + + @validate_call + def ai_search_get_crawl_pages_with_http_info( + self, + organisation: StrictStr, + project: StrictStr, + job_id: StrictStr, + limit: Optional[StrictInt] = None, + status_code: Optional[StrictInt] = None, + processing_status: Optional[StrictStr] = None, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> ApiResponse[None]: + """Get per-page ingest results for a crawl job + + + :param organisation: (required) + :type organisation: str + :param project: (required) + :type project: str + :param job_id: (required) + :type job_id: str + :param limit: + :type limit: int + :param status_code: + :type status_code: int + :param processing_status: + :type processing_status: str + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._ai_search_get_crawl_pages_serialize( + organisation=organisation, + project=project, + job_id=job_id, + limit=limit, + status_code=status_code, + processing_status=processing_status, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ) + + + @validate_call + def ai_search_get_crawl_pages_without_preload_content( + self, + organisation: StrictStr, + project: StrictStr, + job_id: StrictStr, + limit: Optional[StrictInt] = None, + status_code: Optional[StrictInt] = None, + processing_status: Optional[StrictStr] = None, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> RESTResponseType: + """Get per-page ingest results for a crawl job + + + :param organisation: (required) + :type organisation: str + :param project: (required) + :type project: str + :param job_id: (required) + :type job_id: str + :param limit: + :type limit: int + :param status_code: + :type status_code: int + :param processing_status: + :type processing_status: str + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._ai_search_get_crawl_pages_serialize( + organisation=organisation, + project=project, + job_id=job_id, + limit=limit, + status_code=status_code, + processing_status=processing_status, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _ai_search_get_crawl_pages_serialize( + self, + organisation, + project, + job_id, + limit, + status_code, + processing_status, + _request_auth, + _content_type, + _headers, + _host_index, + ) -> RequestSerialized: + + _host = None + + _collection_formats: Dict[str, str] = { + } + + _path_params: Dict[str, str] = {} + _query_params: List[Tuple[str, str]] = [] + _header_params: Dict[str, Optional[str]] = _headers or {} + _form_params: List[Tuple[str, str]] = [] + _files: Dict[ + str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] + ] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + if organisation is not None: + _path_params['organisation'] = organisation + if project is not None: + _path_params['project'] = project + if job_id is not None: + _path_params['jobId'] = job_id + # process the query parameters + if limit is not None: + + _query_params.append(('limit', limit)) + + if status_code is not None: + + _query_params.append(('statusCode', status_code)) + + if processing_status is not None: + + _query_params.append(('processingStatus', processing_status)) + + # process the header parameters + # process the form parameters + # process the body parameter + + + + + # authentication setting + _auth_settings: List[str] = [ + 'BearerAuth' + ] + + return self.api_client.param_serialize( + method='GET', + resource_path='/api/v3/organisations/{organisation}/projects/{project}/ai-search/crawls/{jobId}/pages', + path_params=_path_params, + query_params=_query_params, + header_params=_header_params, + body=_body_params, + post_params=_form_params, + files=_files, + auth_settings=_auth_settings, + collection_formats=_collection_formats, + _host=_host, + _request_auth=_request_auth + ) + + + + + @validate_call + def ai_search_get_settings( + self, + organisation: StrictStr, + project: StrictStr, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> None: + """Get AI Search public access and rate limit settings + + + :param organisation: (required) + :type organisation: str + :param project: (required) + :type project: str + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._ai_search_get_settings_serialize( + organisation=organisation, + project=project, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ).data + + + @validate_call + def ai_search_get_settings_with_http_info( + self, + organisation: StrictStr, + project: StrictStr, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> ApiResponse[None]: + """Get AI Search public access and rate limit settings + + + :param organisation: (required) + :type organisation: str + :param project: (required) + :type project: str + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._ai_search_get_settings_serialize( + organisation=organisation, + project=project, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ) + + + @validate_call + def ai_search_get_settings_without_preload_content( + self, + organisation: StrictStr, + project: StrictStr, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> RESTResponseType: + """Get AI Search public access and rate limit settings + + + :param organisation: (required) + :type organisation: str + :param project: (required) + :type project: str + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._ai_search_get_settings_serialize( + organisation=organisation, + project=project, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _ai_search_get_settings_serialize( + self, + organisation, + project, + _request_auth, + _content_type, + _headers, + _host_index, + ) -> RequestSerialized: + + _host = None + + _collection_formats: Dict[str, str] = { + } + + _path_params: Dict[str, str] = {} + _query_params: List[Tuple[str, str]] = [] + _header_params: Dict[str, Optional[str]] = _headers or {} + _form_params: List[Tuple[str, str]] = [] + _files: Dict[ + str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] + ] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + if organisation is not None: + _path_params['organisation'] = organisation + if project is not None: + _path_params['project'] = project + # process the query parameters + # process the header parameters + # process the form parameters + # process the body parameter + + + + + # authentication setting + _auth_settings: List[str] = [ + 'BearerAuth' + ] + + return self.api_client.param_serialize( + method='GET', + resource_path='/api/v3/organisations/{organisation}/projects/{project}/ai-search/settings', + path_params=_path_params, + query_params=_query_params, + header_params=_header_params, + body=_body_params, + post_params=_form_params, + files=_files, + auth_settings=_auth_settings, + collection_formats=_collection_formats, + _host=_host, + _request_auth=_request_auth + ) + + + + + @validate_call + def ai_search_ingest_pages( + self, + organisation: StrictStr, + project: StrictStr, + ai_search_ingest_pages_request: AiSearchIngestPagesRequest, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> None: + """Ingest pages into the AI Search index + + + :param organisation: (required) + :type organisation: str + :param project: (required) + :type project: str + :param ai_search_ingest_pages_request: (required) + :type ai_search_ingest_pages_request: AiSearchIngestPagesRequest + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._ai_search_ingest_pages_serialize( + organisation=organisation, + project=project, + ai_search_ingest_pages_request=ai_search_ingest_pages_request, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': None, + '422': None, + '502': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ).data + + + @validate_call + def ai_search_ingest_pages_with_http_info( + self, + organisation: StrictStr, + project: StrictStr, + ai_search_ingest_pages_request: AiSearchIngestPagesRequest, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> ApiResponse[None]: + """Ingest pages into the AI Search index + + + :param organisation: (required) + :type organisation: str + :param project: (required) + :type project: str + :param ai_search_ingest_pages_request: (required) + :type ai_search_ingest_pages_request: AiSearchIngestPagesRequest + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._ai_search_ingest_pages_serialize( + organisation=organisation, + project=project, + ai_search_ingest_pages_request=ai_search_ingest_pages_request, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': None, + '422': None, + '502': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ) + + + @validate_call + def ai_search_ingest_pages_without_preload_content( + self, + organisation: StrictStr, + project: StrictStr, + ai_search_ingest_pages_request: AiSearchIngestPagesRequest, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> RESTResponseType: + """Ingest pages into the AI Search index + + + :param organisation: (required) + :type organisation: str + :param project: (required) + :type project: str + :param ai_search_ingest_pages_request: (required) + :type ai_search_ingest_pages_request: AiSearchIngestPagesRequest + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._ai_search_ingest_pages_serialize( + organisation=organisation, + project=project, + ai_search_ingest_pages_request=ai_search_ingest_pages_request, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': None, + '422': None, + '502': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _ai_search_ingest_pages_serialize( + self, + organisation, + project, + ai_search_ingest_pages_request, + _request_auth, + _content_type, + _headers, + _host_index, + ) -> RequestSerialized: + + _host = None + + _collection_formats: Dict[str, str] = { + } + + _path_params: Dict[str, str] = {} + _query_params: List[Tuple[str, str]] = [] + _header_params: Dict[str, Optional[str]] = _headers or {} + _form_params: List[Tuple[str, str]] = [] + _files: Dict[ + str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] + ] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + if organisation is not None: + _path_params['organisation'] = organisation + if project is not None: + _path_params['project'] = project + # process the query parameters + # process the header parameters + # process the form parameters + # process the body parameter + if ai_search_ingest_pages_request is not None: + _body_params = ai_search_ingest_pages_request + + + + # set the HTTP header `Content-Type` + if _content_type: + _header_params['Content-Type'] = _content_type + else: + _default_content_type = ( + self.api_client.select_header_content_type( + [ + 'application/json' + ] + ) + ) + if _default_content_type is not None: + _header_params['Content-Type'] = _default_content_type + + # authentication setting + _auth_settings: List[str] = [ + 'BearerAuth' + ] + + return self.api_client.param_serialize( + method='POST', + resource_path='/api/v3/organisations/{organisation}/projects/{project}/ai-search/pages', + path_params=_path_params, + query_params=_query_params, + header_params=_header_params, + body=_body_params, + post_params=_form_params, + files=_files, + auth_settings=_auth_settings, + collection_formats=_collection_formats, + _host=_host, + _request_auth=_request_auth + ) + + + + + @validate_call + def ai_search_list_crawls( + self, + organisation: StrictStr, + project: StrictStr, + limit: Optional[Annotated[int, Field(le=50, strict=True)]] = None, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> None: + """List AI Search ingest jobs + + + :param organisation: (required) + :type organisation: str + :param project: (required) + :type project: str + :param limit: + :type limit: int + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._ai_search_list_crawls_serialize( + organisation=organisation, + project=project, + limit=limit, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ).data + + + @validate_call + def ai_search_list_crawls_with_http_info( + self, + organisation: StrictStr, + project: StrictStr, + limit: Optional[Annotated[int, Field(le=50, strict=True)]] = None, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> ApiResponse[None]: + """List AI Search ingest jobs + + + :param organisation: (required) + :type organisation: str + :param project: (required) + :type project: str + :param limit: + :type limit: int + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._ai_search_list_crawls_serialize( + organisation=organisation, + project=project, + limit=limit, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ) + + + @validate_call + def ai_search_list_crawls_without_preload_content( + self, + organisation: StrictStr, + project: StrictStr, + limit: Optional[Annotated[int, Field(le=50, strict=True)]] = None, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> RESTResponseType: + """List AI Search ingest jobs + + + :param organisation: (required) + :type organisation: str + :param project: (required) + :type project: str + :param limit: + :type limit: int + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._ai_search_list_crawls_serialize( + organisation=organisation, + project=project, + limit=limit, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _ai_search_list_crawls_serialize( + self, + organisation, + project, + limit, + _request_auth, + _content_type, + _headers, + _host_index, + ) -> RequestSerialized: + + _host = None + + _collection_formats: Dict[str, str] = { + } + + _path_params: Dict[str, str] = {} + _query_params: List[Tuple[str, str]] = [] + _header_params: Dict[str, Optional[str]] = _headers or {} + _form_params: List[Tuple[str, str]] = [] + _files: Dict[ + str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] + ] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + if organisation is not None: + _path_params['organisation'] = organisation + if project is not None: + _path_params['project'] = project + # process the query parameters + if limit is not None: + + _query_params.append(('limit', limit)) + + # process the header parameters + # process the form parameters + # process the body parameter + + + + + # authentication setting + _auth_settings: List[str] = [ + 'BearerAuth' + ] + + return self.api_client.param_serialize( + method='GET', + resource_path='/api/v3/organisations/{organisation}/projects/{project}/ai-search/crawls', + path_params=_path_params, + query_params=_query_params, + header_params=_header_params, + body=_body_params, + post_params=_form_params, + files=_files, + auth_settings=_auth_settings, + collection_formats=_collection_formats, + _host=_host, + _request_auth=_request_auth + ) + + + + + @validate_call + def ai_search_list_pages( + self, + organisation: StrictStr, + project: StrictStr, + limit: Optional[Annotated[int, Field(le=200, strict=True)]] = None, + cursor: Optional[StrictStr] = None, + search: Optional[StrictStr] = None, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> None: + """List indexed pages with cursor pagination + + + :param organisation: (required) + :type organisation: str + :param project: (required) + :type project: str + :param limit: + :type limit: int + :param cursor: + :type cursor: str + :param search: + :type search: str + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._ai_search_list_pages_serialize( + organisation=organisation, + project=project, + limit=limit, + cursor=cursor, + search=search, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ).data + + + @validate_call + def ai_search_list_pages_with_http_info( + self, + organisation: StrictStr, + project: StrictStr, + limit: Optional[Annotated[int, Field(le=200, strict=True)]] = None, + cursor: Optional[StrictStr] = None, + search: Optional[StrictStr] = None, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> ApiResponse[None]: + """List indexed pages with cursor pagination + + + :param organisation: (required) + :type organisation: str + :param project: (required) + :type project: str + :param limit: + :type limit: int + :param cursor: + :type cursor: str + :param search: + :type search: str + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._ai_search_list_pages_serialize( + organisation=organisation, + project=project, + limit=limit, + cursor=cursor, + search=search, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ) + + + @validate_call + def ai_search_list_pages_without_preload_content( + self, + organisation: StrictStr, + project: StrictStr, + limit: Optional[Annotated[int, Field(le=200, strict=True)]] = None, + cursor: Optional[StrictStr] = None, + search: Optional[StrictStr] = None, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> RESTResponseType: + """List indexed pages with cursor pagination + + + :param organisation: (required) + :type organisation: str + :param project: (required) + :type project: str + :param limit: + :type limit: int + :param cursor: + :type cursor: str + :param search: + :type search: str + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._ai_search_list_pages_serialize( + organisation=organisation, + project=project, + limit=limit, + cursor=cursor, + search=search, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _ai_search_list_pages_serialize( + self, + organisation, + project, + limit, + cursor, + search, + _request_auth, + _content_type, + _headers, + _host_index, + ) -> RequestSerialized: + + _host = None + + _collection_formats: Dict[str, str] = { + } + + _path_params: Dict[str, str] = {} + _query_params: List[Tuple[str, str]] = [] + _header_params: Dict[str, Optional[str]] = _headers or {} + _form_params: List[Tuple[str, str]] = [] + _files: Dict[ + str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] + ] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + if organisation is not None: + _path_params['organisation'] = organisation + if project is not None: + _path_params['project'] = project + # process the query parameters + if limit is not None: + + _query_params.append(('limit', limit)) + + if cursor is not None: + + _query_params.append(('cursor', cursor)) + + if search is not None: + + _query_params.append(('search', search)) + + # process the header parameters + # process the form parameters + # process the body parameter + + + + + # authentication setting + _auth_settings: List[str] = [ + 'BearerAuth' + ] + + return self.api_client.param_serialize( + method='GET', + resource_path='/api/v3/organisations/{organisation}/projects/{project}/ai-search/pages', + path_params=_path_params, + query_params=_query_params, + header_params=_header_params, + body=_body_params, + post_params=_form_params, + files=_files, + auth_settings=_auth_settings, + collection_formats=_collection_formats, + _host=_host, + _request_auth=_request_auth + ) + + + + + @validate_call + def ai_search_purge_index( + self, + organisation: StrictStr, + project: StrictStr, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> None: + """Purge the entire AI Search index + + + :param organisation: (required) + :type organisation: str + :param project: (required) + :type project: str + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._ai_search_purge_index_serialize( + organisation=organisation, + project=project, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ).data + + + @validate_call + def ai_search_purge_index_with_http_info( + self, + organisation: StrictStr, + project: StrictStr, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> ApiResponse[None]: + """Purge the entire AI Search index + + + :param organisation: (required) + :type organisation: str + :param project: (required) + :type project: str + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._ai_search_purge_index_serialize( + organisation=organisation, + project=project, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ) + + + @validate_call + def ai_search_purge_index_without_preload_content( + self, + organisation: StrictStr, + project: StrictStr, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> RESTResponseType: + """Purge the entire AI Search index + + + :param organisation: (required) + :type organisation: str + :param project: (required) + :type project: str + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._ai_search_purge_index_serialize( + organisation=organisation, + project=project, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _ai_search_purge_index_serialize( + self, + organisation, + project, + _request_auth, + _content_type, + _headers, + _host_index, + ) -> RequestSerialized: + + _host = None + + _collection_formats: Dict[str, str] = { + } + + _path_params: Dict[str, str] = {} + _query_params: List[Tuple[str, str]] = [] + _header_params: Dict[str, Optional[str]] = _headers or {} + _form_params: List[Tuple[str, str]] = [] + _files: Dict[ + str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] + ] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + if organisation is not None: + _path_params['organisation'] = organisation + if project is not None: + _path_params['project'] = project + # process the query parameters + # process the header parameters + # process the form parameters + # process the body parameter + + + + + # authentication setting + _auth_settings: List[str] = [ + 'BearerAuth' + ] + + return self.api_client.param_serialize( + method='DELETE', + resource_path='/api/v3/organisations/{organisation}/projects/{project}/ai-search/index', + path_params=_path_params, + query_params=_query_params, + header_params=_header_params, + body=_body_params, + post_params=_form_params, + files=_files, + auth_settings=_auth_settings, + collection_formats=_collection_formats, + _host=_host, + _request_auth=_request_auth + ) + + + + + @validate_call + def ai_search_search( + self, + organisation: StrictStr, + project: StrictStr, + ai_search_search_request: AiSearchSearchRequest, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> None: + """Semantic search across the AI Search index + + + :param organisation: (required) + :type organisation: str + :param project: (required) + :type project: str + :param ai_search_search_request: (required) + :type ai_search_search_request: AiSearchSearchRequest + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._ai_search_search_serialize( + organisation=organisation, + project=project, + ai_search_search_request=ai_search_search_request, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ).data + + + @validate_call + def ai_search_search_with_http_info( + self, + organisation: StrictStr, + project: StrictStr, + ai_search_search_request: AiSearchSearchRequest, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> ApiResponse[None]: + """Semantic search across the AI Search index + + + :param organisation: (required) + :type organisation: str + :param project: (required) + :type project: str + :param ai_search_search_request: (required) + :type ai_search_search_request: AiSearchSearchRequest + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._ai_search_search_serialize( + organisation=organisation, + project=project, + ai_search_search_request=ai_search_search_request, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ) + + + @validate_call + def ai_search_search_without_preload_content( + self, + organisation: StrictStr, + project: StrictStr, + ai_search_search_request: AiSearchSearchRequest, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> RESTResponseType: + """Semantic search across the AI Search index + + + :param organisation: (required) + :type organisation: str + :param project: (required) + :type project: str + :param ai_search_search_request: (required) + :type ai_search_search_request: AiSearchSearchRequest + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._ai_search_search_serialize( + organisation=organisation, + project=project, + ai_search_search_request=ai_search_search_request, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _ai_search_search_serialize( + self, + organisation, + project, + ai_search_search_request, + _request_auth, + _content_type, + _headers, + _host_index, + ) -> RequestSerialized: + + _host = None + + _collection_formats: Dict[str, str] = { + } + + _path_params: Dict[str, str] = {} + _query_params: List[Tuple[str, str]] = [] + _header_params: Dict[str, Optional[str]] = _headers or {} + _form_params: List[Tuple[str, str]] = [] + _files: Dict[ + str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] + ] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + if organisation is not None: + _path_params['organisation'] = organisation + if project is not None: + _path_params['project'] = project + # process the query parameters + # process the header parameters + # process the form parameters + # process the body parameter + if ai_search_search_request is not None: + _body_params = ai_search_search_request + + + + # set the HTTP header `Content-Type` + if _content_type: + _header_params['Content-Type'] = _content_type + else: + _default_content_type = ( + self.api_client.select_header_content_type( + [ + 'application/json' + ] + ) + ) + if _default_content_type is not None: + _header_params['Content-Type'] = _default_content_type + + # authentication setting + _auth_settings: List[str] = [ + 'BearerAuth' + ] + + return self.api_client.param_serialize( + method='POST', + resource_path='/api/v3/organisations/{organisation}/projects/{project}/ai-search/search', + path_params=_path_params, + query_params=_query_params, + header_params=_header_params, + body=_body_params, + post_params=_form_params, + files=_files, + auth_settings=_auth_settings, + collection_formats=_collection_formats, + _host=_host, + _request_auth=_request_auth + ) + + + + + @validate_call + def ai_search_status( + self, + organisation: StrictStr, + project: StrictStr, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> None: + """Get AI Search status for a project + + + :param organisation: (required) + :type organisation: str + :param project: (required) + :type project: str + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._ai_search_status_serialize( + organisation=organisation, + project=project, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': None, + '401': None, + '403': None, + '404': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ).data + + + @validate_call + def ai_search_status_with_http_info( + self, + organisation: StrictStr, + project: StrictStr, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> ApiResponse[None]: + """Get AI Search status for a project + + + :param organisation: (required) + :type organisation: str + :param project: (required) + :type project: str + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._ai_search_status_serialize( + organisation=organisation, + project=project, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': None, + '401': None, + '403': None, + '404': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ) + + + @validate_call + def ai_search_status_without_preload_content( + self, + organisation: StrictStr, + project: StrictStr, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> RESTResponseType: + """Get AI Search status for a project + + + :param organisation: (required) + :type organisation: str + :param project: (required) + :type project: str + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._ai_search_status_serialize( + organisation=organisation, + project=project, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': None, + '401': None, + '403': None, + '404': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _ai_search_status_serialize( + self, + organisation, + project, + _request_auth, + _content_type, + _headers, + _host_index, + ) -> RequestSerialized: + + _host = None + + _collection_formats: Dict[str, str] = { + } + + _path_params: Dict[str, str] = {} + _query_params: List[Tuple[str, str]] = [] + _header_params: Dict[str, Optional[str]] = _headers or {} + _form_params: List[Tuple[str, str]] = [] + _files: Dict[ + str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] + ] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + if organisation is not None: + _path_params['organisation'] = organisation + if project is not None: + _path_params['project'] = project + # process the query parameters + # process the header parameters + # process the form parameters + # process the body parameter + + + + + # authentication setting + _auth_settings: List[str] = [ + 'BearerAuth' + ] + + return self.api_client.param_serialize( + method='GET', + resource_path='/api/v3/organisations/{organisation}/projects/{project}/ai-search', + path_params=_path_params, + query_params=_query_params, + header_params=_header_params, + body=_body_params, + post_params=_form_params, + files=_files, + auth_settings=_auth_settings, + collection_formats=_collection_formats, + _host=_host, + _request_auth=_request_auth + ) + + + + + @validate_call + def ai_search_top_queries( + self, + organisation: StrictStr, + project: StrictStr, + range: Optional[StrictStr] = None, + limit: Optional[Annotated[int, Field(le=100, strict=True)]] = None, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> None: + """Get the most popular AI Search queries + + + :param organisation: (required) + :type organisation: str + :param project: (required) + :type project: str + :param range: + :type range: str + :param limit: + :type limit: int + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._ai_search_top_queries_serialize( + organisation=organisation, + project=project, + range=range, + limit=limit, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ).data + + + @validate_call + def ai_search_top_queries_with_http_info( + self, + organisation: StrictStr, + project: StrictStr, + range: Optional[StrictStr] = None, + limit: Optional[Annotated[int, Field(le=100, strict=True)]] = None, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> ApiResponse[None]: + """Get the most popular AI Search queries + + + :param organisation: (required) + :type organisation: str + :param project: (required) + :type project: str + :param range: + :type range: str + :param limit: + :type limit: int + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._ai_search_top_queries_serialize( + organisation=organisation, + project=project, + range=range, + limit=limit, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ) + + + @validate_call + def ai_search_top_queries_without_preload_content( + self, + organisation: StrictStr, + project: StrictStr, + range: Optional[StrictStr] = None, + limit: Optional[Annotated[int, Field(le=100, strict=True)]] = None, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> RESTResponseType: + """Get the most popular AI Search queries + + + :param organisation: (required) + :type organisation: str + :param project: (required) + :type project: str + :param range: + :type range: str + :param limit: + :type limit: int + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._ai_search_top_queries_serialize( + organisation=organisation, + project=project, + range=range, + limit=limit, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _ai_search_top_queries_serialize( + self, + organisation, + project, + range, + limit, + _request_auth, + _content_type, + _headers, + _host_index, + ) -> RequestSerialized: + + _host = None + + _collection_formats: Dict[str, str] = { + } + + _path_params: Dict[str, str] = {} + _query_params: List[Tuple[str, str]] = [] + _header_params: Dict[str, Optional[str]] = _headers or {} + _form_params: List[Tuple[str, str]] = [] + _files: Dict[ + str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] + ] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + if organisation is not None: + _path_params['organisation'] = organisation + if project is not None: + _path_params['project'] = project + # process the query parameters + if range is not None: + + _query_params.append(('range', range)) + + if limit is not None: + + _query_params.append(('limit', limit)) + + # process the header parameters + # process the form parameters + # process the body parameter + + + + + # authentication setting + _auth_settings: List[str] = [ + 'BearerAuth' + ] + + return self.api_client.param_serialize( + method='GET', + resource_path='/api/v3/organisations/{organisation}/projects/{project}/ai-search/top-queries', + path_params=_path_params, + query_params=_query_params, + header_params=_header_params, + body=_body_params, + post_params=_form_params, + files=_files, + auth_settings=_auth_settings, + collection_formats=_collection_formats, + _host=_host, + _request_auth=_request_auth + ) + + + + + @validate_call + def ai_search_trigger_crawl( + self, + organisation: StrictStr, + project: StrictStr, + ai_search_trigger_crawl_request: AiSearchTriggerCrawlRequest, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> None: + """Trigger a crawler run that ingests into AI Search + + + :param organisation: (required) + :type organisation: str + :param project: (required) + :type project: str + :param ai_search_trigger_crawl_request: (required) + :type ai_search_trigger_crawl_request: AiSearchTriggerCrawlRequest + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._ai_search_trigger_crawl_serialize( + organisation=organisation, + project=project, + ai_search_trigger_crawl_request=ai_search_trigger_crawl_request, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ).data + + + @validate_call + def ai_search_trigger_crawl_with_http_info( + self, + organisation: StrictStr, + project: StrictStr, + ai_search_trigger_crawl_request: AiSearchTriggerCrawlRequest, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> ApiResponse[None]: + """Trigger a crawler run that ingests into AI Search + + + :param organisation: (required) + :type organisation: str + :param project: (required) + :type project: str + :param ai_search_trigger_crawl_request: (required) + :type ai_search_trigger_crawl_request: AiSearchTriggerCrawlRequest + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._ai_search_trigger_crawl_serialize( + organisation=organisation, + project=project, + ai_search_trigger_crawl_request=ai_search_trigger_crawl_request, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ) + + + @validate_call + def ai_search_trigger_crawl_without_preload_content( + self, + organisation: StrictStr, + project: StrictStr, + ai_search_trigger_crawl_request: AiSearchTriggerCrawlRequest, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> RESTResponseType: + """Trigger a crawler run that ingests into AI Search + + + :param organisation: (required) + :type organisation: str + :param project: (required) + :type project: str + :param ai_search_trigger_crawl_request: (required) + :type ai_search_trigger_crawl_request: AiSearchTriggerCrawlRequest + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._ai_search_trigger_crawl_serialize( + organisation=organisation, + project=project, + ai_search_trigger_crawl_request=ai_search_trigger_crawl_request, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _ai_search_trigger_crawl_serialize( + self, + organisation, + project, + ai_search_trigger_crawl_request, + _request_auth, + _content_type, + _headers, + _host_index, + ) -> RequestSerialized: + + _host = None + + _collection_formats: Dict[str, str] = { + } + + _path_params: Dict[str, str] = {} + _query_params: List[Tuple[str, str]] = [] + _header_params: Dict[str, Optional[str]] = _headers or {} + _form_params: List[Tuple[str, str]] = [] + _files: Dict[ + str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] + ] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + if organisation is not None: + _path_params['organisation'] = organisation + if project is not None: + _path_params['project'] = project + # process the query parameters + # process the header parameters + # process the form parameters + # process the body parameter + if ai_search_trigger_crawl_request is not None: + _body_params = ai_search_trigger_crawl_request + + + + # set the HTTP header `Content-Type` + if _content_type: + _header_params['Content-Type'] = _content_type + else: + _default_content_type = ( + self.api_client.select_header_content_type( + [ + 'application/json' + ] + ) + ) + if _default_content_type is not None: + _header_params['Content-Type'] = _default_content_type + + # authentication setting + _auth_settings: List[str] = [ + 'BearerAuth' + ] + + return self.api_client.param_serialize( + method='POST', + resource_path='/api/v3/organisations/{organisation}/projects/{project}/ai-search/crawls', + path_params=_path_params, + query_params=_query_params, + header_params=_header_params, + body=_body_params, + post_params=_form_params, + files=_files, + auth_settings=_auth_settings, + collection_formats=_collection_formats, + _host=_host, + _request_auth=_request_auth + ) + + + + + @validate_call + def ai_search_update_settings( + self, + organisation: StrictStr, + project: StrictStr, + ai_search_update_settings_request: AiSearchUpdateSettingsRequest, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> None: + """Update AI Search public access and rate limit settings + + + :param organisation: (required) + :type organisation: str + :param project: (required) + :type project: str + :param ai_search_update_settings_request: (required) + :type ai_search_update_settings_request: AiSearchUpdateSettingsRequest + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._ai_search_update_settings_serialize( + organisation=organisation, + project=project, + ai_search_update_settings_request=ai_search_update_settings_request, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ).data + + + @validate_call + def ai_search_update_settings_with_http_info( + self, + organisation: StrictStr, + project: StrictStr, + ai_search_update_settings_request: AiSearchUpdateSettingsRequest, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> ApiResponse[None]: + """Update AI Search public access and rate limit settings + + + :param organisation: (required) + :type organisation: str + :param project: (required) + :type project: str + :param ai_search_update_settings_request: (required) + :type ai_search_update_settings_request: AiSearchUpdateSettingsRequest + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._ai_search_update_settings_serialize( + organisation=organisation, + project=project, + ai_search_update_settings_request=ai_search_update_settings_request, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ) + + + @validate_call + def ai_search_update_settings_without_preload_content( + self, + organisation: StrictStr, + project: StrictStr, + ai_search_update_settings_request: AiSearchUpdateSettingsRequest, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> RESTResponseType: + """Update AI Search public access and rate limit settings + + + :param organisation: (required) + :type organisation: str + :param project: (required) + :type project: str + :param ai_search_update_settings_request: (required) + :type ai_search_update_settings_request: AiSearchUpdateSettingsRequest + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._ai_search_update_settings_serialize( + organisation=organisation, + project=project, + ai_search_update_settings_request=ai_search_update_settings_request, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _ai_search_update_settings_serialize( + self, + organisation, + project, + ai_search_update_settings_request, + _request_auth, + _content_type, + _headers, + _host_index, + ) -> RequestSerialized: + + _host = None + + _collection_formats: Dict[str, str] = { + } + + _path_params: Dict[str, str] = {} + _query_params: List[Tuple[str, str]] = [] + _header_params: Dict[str, Optional[str]] = _headers or {} + _form_params: List[Tuple[str, str]] = [] + _files: Dict[ + str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] + ] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + if organisation is not None: + _path_params['organisation'] = organisation + if project is not None: + _path_params['project'] = project + # process the query parameters + # process the header parameters + # process the form parameters + # process the body parameter + if ai_search_update_settings_request is not None: + _body_params = ai_search_update_settings_request + + + + # set the HTTP header `Content-Type` + if _content_type: + _header_params['Content-Type'] = _content_type + else: + _default_content_type = ( + self.api_client.select_header_content_type( + [ + 'application/json' + ] + ) + ) + if _default_content_type is not None: + _header_params['Content-Type'] = _default_content_type + + # authentication setting + _auth_settings: List[str] = [ + 'BearerAuth' + ] + + return self.api_client.param_serialize( + method='PUT', + resource_path='/api/v3/organisations/{organisation}/projects/{project}/ai-search/settings', + path_params=_path_params, + query_params=_query_params, + header_params=_header_params, + body=_body_params, + post_params=_form_params, + files=_files, + auth_settings=_auth_settings, + collection_formats=_collection_formats, + _host=_host, + _request_auth=_request_auth + ) + + + + + @validate_call + def ai_search_usage( + self, + organisation: StrictStr, + project: StrictStr, + range: Optional[StrictStr] = None, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> None: + """Get usage statistics for the AI Search site + + + :param organisation: (required) + :type organisation: str + :param project: (required) + :type project: str + :param range: + :type range: str + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._ai_search_usage_serialize( + organisation=organisation, + project=project, + range=range, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ).data + + + @validate_call + def ai_search_usage_with_http_info( + self, + organisation: StrictStr, + project: StrictStr, + range: Optional[StrictStr] = None, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> ApiResponse[None]: + """Get usage statistics for the AI Search site + + + :param organisation: (required) + :type organisation: str + :param project: (required) + :type project: str + :param range: + :type range: str + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._ai_search_usage_serialize( + organisation=organisation, + project=project, + range=range, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ) + + + @validate_call + def ai_search_usage_without_preload_content( + self, + organisation: StrictStr, + project: StrictStr, + range: Optional[StrictStr] = None, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> RESTResponseType: + """Get usage statistics for the AI Search site + + + :param organisation: (required) + :type organisation: str + :param project: (required) + :type project: str + :param range: + :type range: str + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._ai_search_usage_serialize( + organisation=organisation, + project=project, + range=range, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _ai_search_usage_serialize( + self, + organisation, + project, + range, + _request_auth, + _content_type, + _headers, + _host_index, + ) -> RequestSerialized: + + _host = None + + _collection_formats: Dict[str, str] = { + } + + _path_params: Dict[str, str] = {} + _query_params: List[Tuple[str, str]] = [] + _header_params: Dict[str, Optional[str]] = _headers or {} + _form_params: List[Tuple[str, str]] = [] + _files: Dict[ + str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] + ] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + if organisation is not None: + _path_params['organisation'] = organisation + if project is not None: + _path_params['project'] = project + # process the query parameters + if range is not None: + + _query_params.append(('range', range)) + + # process the header parameters + # process the form parameters + # process the body parameter + + + + + # authentication setting + _auth_settings: List[str] = [ + 'BearerAuth' + ] + + return self.api_client.param_serialize( + method='GET', + resource_path='/api/v3/organisations/{organisation}/projects/{project}/ai-search/usage', + path_params=_path_params, + query_params=_query_params, + header_params=_header_params, + body=_body_params, + post_params=_form_params, + files=_files, + auth_settings=_auth_settings, + collection_formats=_collection_formats, + _host=_host, + _request_auth=_request_auth + ) + + diff --git a/quantcdn/api/ai_sessions_api.py b/quantcdn/api/ai_sessions_api.py index 5dcbdbd0..ef1b6c77 100644 --- a/quantcdn/api/ai_sessions_api.py +++ b/quantcdn/api/ai_sessions_api.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/api/ai_skills_api.py b/quantcdn/api/ai_skills_api.py new file mode 100644 index 00000000..bc859245 --- /dev/null +++ b/quantcdn/api/ai_skills_api.py @@ -0,0 +1,3290 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + +import warnings +from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt +from typing import Any, Dict, List, Optional, Tuple, Union +from typing_extensions import Annotated + +from pydantic import Field, StrictStr +from typing import Optional +from typing_extensions import Annotated +from quantcdn.models.create_skill201_response import CreateSkill201Response +from quantcdn.models.create_skill_request import CreateSkillRequest +from quantcdn.models.delete_skill200_response import DeleteSkill200Response +from quantcdn.models.delete_skill_collection200_response import DeleteSkillCollection200Response +from quantcdn.models.get_skill200_response import GetSkill200Response +from quantcdn.models.import_skill201_response import ImportSkill201Response +from quantcdn.models.import_skill_collection201_response import ImportSkillCollection201Response +from quantcdn.models.import_skill_collection_request import ImportSkillCollectionRequest +from quantcdn.models.import_skill_request import ImportSkillRequest +from quantcdn.models.list_skill_collections200_response import ListSkillCollections200Response +from quantcdn.models.list_skills200_response import ListSkills200Response +from quantcdn.models.sync_skill_collection200_response import SyncSkillCollection200Response +from quantcdn.models.update_skill200_response import UpdateSkill200Response +from quantcdn.models.update_skill_request import UpdateSkillRequest + +from quantcdn.api_client import ApiClient, RequestSerialized +from quantcdn.api_response import ApiResponse +from quantcdn.rest import RESTResponseType + + +class AISkillsApi: + """NOTE: This class is auto generated by OpenAPI Generator + Ref: https://openapi-generator.tech + + Do not edit the class manually. + """ + + def __init__(self, api_client=None) -> None: + if api_client is None: + api_client = ApiClient.get_default() + self.api_client = api_client + + + @validate_call + def create_skill( + self, + organisation: Annotated[StrictStr, Field(description="The organisation ID")], + create_skill_request: CreateSkillRequest, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> CreateSkill201Response: + """Create Inline Skill + + Creates a new skill with inline content. Use this for custom skills * that are defined directly in your organization. * * **Trigger Conditions:** * - Natural language description of when to use the skill * - Used by AI to determine when to suggest or apply the skill * - Example: 'When the user asks about code review or security analysis' + + :param organisation: The organisation ID (required) + :type organisation: str + :param create_skill_request: (required) + :type create_skill_request: CreateSkillRequest + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._create_skill_serialize( + organisation=organisation, + create_skill_request=create_skill_request, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '201': "CreateSkill201Response", + '400': None, + '403': None, + '500': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ).data + + + @validate_call + def create_skill_with_http_info( + self, + organisation: Annotated[StrictStr, Field(description="The organisation ID")], + create_skill_request: CreateSkillRequest, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> ApiResponse[CreateSkill201Response]: + """Create Inline Skill + + Creates a new skill with inline content. Use this for custom skills * that are defined directly in your organization. * * **Trigger Conditions:** * - Natural language description of when to use the skill * - Used by AI to determine when to suggest or apply the skill * - Example: 'When the user asks about code review or security analysis' + + :param organisation: The organisation ID (required) + :type organisation: str + :param create_skill_request: (required) + :type create_skill_request: CreateSkillRequest + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._create_skill_serialize( + organisation=organisation, + create_skill_request=create_skill_request, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '201': "CreateSkill201Response", + '400': None, + '403': None, + '500': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ) + + + @validate_call + def create_skill_without_preload_content( + self, + organisation: Annotated[StrictStr, Field(description="The organisation ID")], + create_skill_request: CreateSkillRequest, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> RESTResponseType: + """Create Inline Skill + + Creates a new skill with inline content. Use this for custom skills * that are defined directly in your organization. * * **Trigger Conditions:** * - Natural language description of when to use the skill * - Used by AI to determine when to suggest or apply the skill * - Example: 'When the user asks about code review or security analysis' + + :param organisation: The organisation ID (required) + :type organisation: str + :param create_skill_request: (required) + :type create_skill_request: CreateSkillRequest + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._create_skill_serialize( + organisation=organisation, + create_skill_request=create_skill_request, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '201': "CreateSkill201Response", + '400': None, + '403': None, + '500': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _create_skill_serialize( + self, + organisation, + create_skill_request, + _request_auth, + _content_type, + _headers, + _host_index, + ) -> RequestSerialized: + + _host = None + + _collection_formats: Dict[str, str] = { + } + + _path_params: Dict[str, str] = {} + _query_params: List[Tuple[str, str]] = [] + _header_params: Dict[str, Optional[str]] = _headers or {} + _form_params: List[Tuple[str, str]] = [] + _files: Dict[ + str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] + ] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + if organisation is not None: + _path_params['organisation'] = organisation + # process the query parameters + # process the header parameters + # process the form parameters + # process the body parameter + if create_skill_request is not None: + _body_params = create_skill_request + + + # set the HTTP header `Accept` + if 'Accept' not in _header_params: + _header_params['Accept'] = self.api_client.select_header_accept( + [ + 'application/json' + ] + ) + + # set the HTTP header `Content-Type` + if _content_type: + _header_params['Content-Type'] = _content_type + else: + _default_content_type = ( + self.api_client.select_header_content_type( + [ + 'application/json' + ] + ) + ) + if _default_content_type is not None: + _header_params['Content-Type'] = _default_content_type + + # authentication setting + _auth_settings: List[str] = [ + 'BearerAuth' + ] + + return self.api_client.param_serialize( + method='POST', + resource_path='/api/v3/organizations/{organisation}/ai/skills', + path_params=_path_params, + query_params=_query_params, + header_params=_header_params, + body=_body_params, + post_params=_form_params, + files=_files, + auth_settings=_auth_settings, + collection_formats=_collection_formats, + _host=_host, + _request_auth=_request_auth + ) + + + + + @validate_call + def delete_skill( + self, + organisation: Annotated[StrictStr, Field(description="The organisation ID")], + skill_id: Annotated[StrictStr, Field(description="The skill ID")], + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> DeleteSkill200Response: + """Delete Skill + + Permanently deletes a skill. This will also remove it from any agents that have it assigned. + + :param organisation: The organisation ID (required) + :type organisation: str + :param skill_id: The skill ID (required) + :type skill_id: str + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._delete_skill_serialize( + organisation=organisation, + skill_id=skill_id, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "DeleteSkill200Response", + '403': None, + '404': None, + '500': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ).data + + + @validate_call + def delete_skill_with_http_info( + self, + organisation: Annotated[StrictStr, Field(description="The organisation ID")], + skill_id: Annotated[StrictStr, Field(description="The skill ID")], + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> ApiResponse[DeleteSkill200Response]: + """Delete Skill + + Permanently deletes a skill. This will also remove it from any agents that have it assigned. + + :param organisation: The organisation ID (required) + :type organisation: str + :param skill_id: The skill ID (required) + :type skill_id: str + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._delete_skill_serialize( + organisation=organisation, + skill_id=skill_id, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "DeleteSkill200Response", + '403': None, + '404': None, + '500': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ) + + + @validate_call + def delete_skill_without_preload_content( + self, + organisation: Annotated[StrictStr, Field(description="The organisation ID")], + skill_id: Annotated[StrictStr, Field(description="The skill ID")], + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> RESTResponseType: + """Delete Skill + + Permanently deletes a skill. This will also remove it from any agents that have it assigned. + + :param organisation: The organisation ID (required) + :type organisation: str + :param skill_id: The skill ID (required) + :type skill_id: str + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._delete_skill_serialize( + organisation=organisation, + skill_id=skill_id, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "DeleteSkill200Response", + '403': None, + '404': None, + '500': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _delete_skill_serialize( + self, + organisation, + skill_id, + _request_auth, + _content_type, + _headers, + _host_index, + ) -> RequestSerialized: + + _host = None + + _collection_formats: Dict[str, str] = { + } + + _path_params: Dict[str, str] = {} + _query_params: List[Tuple[str, str]] = [] + _header_params: Dict[str, Optional[str]] = _headers or {} + _form_params: List[Tuple[str, str]] = [] + _files: Dict[ + str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] + ] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + if organisation is not None: + _path_params['organisation'] = organisation + if skill_id is not None: + _path_params['skillId'] = skill_id + # process the query parameters + # process the header parameters + # process the form parameters + # process the body parameter + + + # set the HTTP header `Accept` + if 'Accept' not in _header_params: + _header_params['Accept'] = self.api_client.select_header_accept( + [ + 'application/json' + ] + ) + + + # authentication setting + _auth_settings: List[str] = [ + 'BearerAuth' + ] + + return self.api_client.param_serialize( + method='DELETE', + resource_path='/api/v3/organizations/{organisation}/ai/skills/{skillId}', + path_params=_path_params, + query_params=_query_params, + header_params=_header_params, + body=_body_params, + post_params=_form_params, + files=_files, + auth_settings=_auth_settings, + collection_formats=_collection_formats, + _host=_host, + _request_auth=_request_auth + ) + + + + + @validate_call + def delete_skill_collection( + self, + organisation: Annotated[StrictStr, Field(description="The organisation ID")], + namespace: Annotated[StrictStr, Field(description="Collection namespace")], + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> DeleteSkillCollection200Response: + """Delete Skill Collection + + Permanently deletes all skills in the specified namespace. + + :param organisation: The organisation ID (required) + :type organisation: str + :param namespace: Collection namespace (required) + :type namespace: str + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._delete_skill_collection_serialize( + organisation=organisation, + namespace=namespace, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "DeleteSkillCollection200Response", + '403': None, + '404': None, + '500': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ).data + + + @validate_call + def delete_skill_collection_with_http_info( + self, + organisation: Annotated[StrictStr, Field(description="The organisation ID")], + namespace: Annotated[StrictStr, Field(description="Collection namespace")], + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> ApiResponse[DeleteSkillCollection200Response]: + """Delete Skill Collection + + Permanently deletes all skills in the specified namespace. + + :param organisation: The organisation ID (required) + :type organisation: str + :param namespace: Collection namespace (required) + :type namespace: str + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._delete_skill_collection_serialize( + organisation=organisation, + namespace=namespace, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "DeleteSkillCollection200Response", + '403': None, + '404': None, + '500': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ) + + + @validate_call + def delete_skill_collection_without_preload_content( + self, + organisation: Annotated[StrictStr, Field(description="The organisation ID")], + namespace: Annotated[StrictStr, Field(description="Collection namespace")], + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> RESTResponseType: + """Delete Skill Collection + + Permanently deletes all skills in the specified namespace. + + :param organisation: The organisation ID (required) + :type organisation: str + :param namespace: Collection namespace (required) + :type namespace: str + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._delete_skill_collection_serialize( + organisation=organisation, + namespace=namespace, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "DeleteSkillCollection200Response", + '403': None, + '404': None, + '500': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _delete_skill_collection_serialize( + self, + organisation, + namespace, + _request_auth, + _content_type, + _headers, + _host_index, + ) -> RequestSerialized: + + _host = None + + _collection_formats: Dict[str, str] = { + } + + _path_params: Dict[str, str] = {} + _query_params: List[Tuple[str, str]] = [] + _header_params: Dict[str, Optional[str]] = _headers or {} + _form_params: List[Tuple[str, str]] = [] + _files: Dict[ + str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] + ] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + if organisation is not None: + _path_params['organisation'] = organisation + if namespace is not None: + _path_params['namespace'] = namespace + # process the query parameters + # process the header parameters + # process the form parameters + # process the body parameter + + + # set the HTTP header `Accept` + if 'Accept' not in _header_params: + _header_params['Accept'] = self.api_client.select_header_accept( + [ + 'application/json' + ] + ) + + + # authentication setting + _auth_settings: List[str] = [ + 'BearerAuth' + ] + + return self.api_client.param_serialize( + method='DELETE', + resource_path='/api/v3/organizations/{organisation}/ai/skills/collections/{namespace}', + path_params=_path_params, + query_params=_query_params, + header_params=_header_params, + body=_body_params, + post_params=_form_params, + files=_files, + auth_settings=_auth_settings, + collection_formats=_collection_formats, + _host=_host, + _request_auth=_request_auth + ) + + + + + @validate_call + def get_skill( + self, + organisation: Annotated[StrictStr, Field(description="The organisation ID")], + skill_id: Annotated[StrictStr, Field(description="The skill ID")], + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> GetSkill200Response: + """Get Skill Details + + Retrieves full details of a skill including its content, source information, and metadata. + + :param organisation: The organisation ID (required) + :type organisation: str + :param skill_id: The skill ID (required) + :type skill_id: str + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._get_skill_serialize( + organisation=organisation, + skill_id=skill_id, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "GetSkill200Response", + '403': None, + '404': None, + '500': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ).data + + + @validate_call + def get_skill_with_http_info( + self, + organisation: Annotated[StrictStr, Field(description="The organisation ID")], + skill_id: Annotated[StrictStr, Field(description="The skill ID")], + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> ApiResponse[GetSkill200Response]: + """Get Skill Details + + Retrieves full details of a skill including its content, source information, and metadata. + + :param organisation: The organisation ID (required) + :type organisation: str + :param skill_id: The skill ID (required) + :type skill_id: str + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._get_skill_serialize( + organisation=organisation, + skill_id=skill_id, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "GetSkill200Response", + '403': None, + '404': None, + '500': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ) + + + @validate_call + def get_skill_without_preload_content( + self, + organisation: Annotated[StrictStr, Field(description="The organisation ID")], + skill_id: Annotated[StrictStr, Field(description="The skill ID")], + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> RESTResponseType: + """Get Skill Details + + Retrieves full details of a skill including its content, source information, and metadata. + + :param organisation: The organisation ID (required) + :type organisation: str + :param skill_id: The skill ID (required) + :type skill_id: str + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._get_skill_serialize( + organisation=organisation, + skill_id=skill_id, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "GetSkill200Response", + '403': None, + '404': None, + '500': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _get_skill_serialize( + self, + organisation, + skill_id, + _request_auth, + _content_type, + _headers, + _host_index, + ) -> RequestSerialized: + + _host = None + + _collection_formats: Dict[str, str] = { + } + + _path_params: Dict[str, str] = {} + _query_params: List[Tuple[str, str]] = [] + _header_params: Dict[str, Optional[str]] = _headers or {} + _form_params: List[Tuple[str, str]] = [] + _files: Dict[ + str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] + ] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + if organisation is not None: + _path_params['organisation'] = organisation + if skill_id is not None: + _path_params['skillId'] = skill_id + # process the query parameters + # process the header parameters + # process the form parameters + # process the body parameter + + + # set the HTTP header `Accept` + if 'Accept' not in _header_params: + _header_params['Accept'] = self.api_client.select_header_accept( + [ + 'application/json' + ] + ) + + + # authentication setting + _auth_settings: List[str] = [ + 'BearerAuth' + ] + + return self.api_client.param_serialize( + method='GET', + resource_path='/api/v3/organizations/{organisation}/ai/skills/{skillId}', + path_params=_path_params, + query_params=_query_params, + header_params=_header_params, + body=_body_params, + post_params=_form_params, + files=_files, + auth_settings=_auth_settings, + collection_formats=_collection_formats, + _host=_host, + _request_auth=_request_auth + ) + + + + + @validate_call + def import_skill( + self, + organisation: Annotated[StrictStr, Field(description="The organisation ID")], + import_skill_request: ImportSkillRequest, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> ImportSkill201Response: + """Import Skill from External Source + + Imports a skill from an external source like skills.sh registry or GitHub repository. * * **Supported Sources:** * - `skills.sh`: Import from the skills.sh community registry * - `github`: Import from a GitHub repository (public or private) * * **Version Control:** * - Skills can be pinned to specific versions * - Use the sync endpoint to update to latest version + + :param organisation: The organisation ID (required) + :type organisation: str + :param import_skill_request: (required) + :type import_skill_request: ImportSkillRequest + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._import_skill_serialize( + organisation=organisation, + import_skill_request=import_skill_request, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '201': "ImportSkill201Response", + '400': None, + '403': None, + '502': None, + '500': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ).data + + + @validate_call + def import_skill_with_http_info( + self, + organisation: Annotated[StrictStr, Field(description="The organisation ID")], + import_skill_request: ImportSkillRequest, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> ApiResponse[ImportSkill201Response]: + """Import Skill from External Source + + Imports a skill from an external source like skills.sh registry or GitHub repository. * * **Supported Sources:** * - `skills.sh`: Import from the skills.sh community registry * - `github`: Import from a GitHub repository (public or private) * * **Version Control:** * - Skills can be pinned to specific versions * - Use the sync endpoint to update to latest version + + :param organisation: The organisation ID (required) + :type organisation: str + :param import_skill_request: (required) + :type import_skill_request: ImportSkillRequest + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._import_skill_serialize( + organisation=organisation, + import_skill_request=import_skill_request, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '201': "ImportSkill201Response", + '400': None, + '403': None, + '502': None, + '500': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ) + + + @validate_call + def import_skill_without_preload_content( + self, + organisation: Annotated[StrictStr, Field(description="The organisation ID")], + import_skill_request: ImportSkillRequest, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> RESTResponseType: + """Import Skill from External Source + + Imports a skill from an external source like skills.sh registry or GitHub repository. * * **Supported Sources:** * - `skills.sh`: Import from the skills.sh community registry * - `github`: Import from a GitHub repository (public or private) * * **Version Control:** * - Skills can be pinned to specific versions * - Use the sync endpoint to update to latest version + + :param organisation: The organisation ID (required) + :type organisation: str + :param import_skill_request: (required) + :type import_skill_request: ImportSkillRequest + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._import_skill_serialize( + organisation=organisation, + import_skill_request=import_skill_request, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '201': "ImportSkill201Response", + '400': None, + '403': None, + '502': None, + '500': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _import_skill_serialize( + self, + organisation, + import_skill_request, + _request_auth, + _content_type, + _headers, + _host_index, + ) -> RequestSerialized: + + _host = None + + _collection_formats: Dict[str, str] = { + } + + _path_params: Dict[str, str] = {} + _query_params: List[Tuple[str, str]] = [] + _header_params: Dict[str, Optional[str]] = _headers or {} + _form_params: List[Tuple[str, str]] = [] + _files: Dict[ + str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] + ] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + if organisation is not None: + _path_params['organisation'] = organisation + # process the query parameters + # process the header parameters + # process the form parameters + # process the body parameter + if import_skill_request is not None: + _body_params = import_skill_request + + + # set the HTTP header `Accept` + if 'Accept' not in _header_params: + _header_params['Accept'] = self.api_client.select_header_accept( + [ + 'application/json' + ] + ) + + # set the HTTP header `Content-Type` + if _content_type: + _header_params['Content-Type'] = _content_type + else: + _default_content_type = ( + self.api_client.select_header_content_type( + [ + 'application/json' + ] + ) + ) + if _default_content_type is not None: + _header_params['Content-Type'] = _default_content_type + + # authentication setting + _auth_settings: List[str] = [ + 'BearerAuth' + ] + + return self.api_client.param_serialize( + method='POST', + resource_path='/api/v3/organizations/{organisation}/ai/skills/import', + path_params=_path_params, + query_params=_query_params, + header_params=_header_params, + body=_body_params, + post_params=_form_params, + files=_files, + auth_settings=_auth_settings, + collection_formats=_collection_formats, + _host=_host, + _request_auth=_request_auth + ) + + + + + @validate_call + def import_skill_collection( + self, + organisation: Annotated[StrictStr, Field(description="The organisation ID")], + import_skill_collection_request: ImportSkillCollectionRequest, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> ImportSkillCollection201Response: + """Import Skill Collection from GitHub + + Discovers all skill directories under a given path in a GitHub repository * and imports each as a skill within the specified namespace. Each subdirectory must contain a SKILL.md file. * * **Namespace:** Used for grouping and slash-command invocation (e.g., `/superpowers:brainstorming`). * * **Idempotent:** If a skill with the same namespace + name already exists, it is updated. + + :param organisation: The organisation ID (required) + :type organisation: str + :param import_skill_collection_request: (required) + :type import_skill_collection_request: ImportSkillCollectionRequest + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._import_skill_collection_serialize( + organisation=organisation, + import_skill_collection_request=import_skill_collection_request, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '201': "ImportSkillCollection201Response", + '400': None, + '403': None, + '502': None, + '500': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ).data + + + @validate_call + def import_skill_collection_with_http_info( + self, + organisation: Annotated[StrictStr, Field(description="The organisation ID")], + import_skill_collection_request: ImportSkillCollectionRequest, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> ApiResponse[ImportSkillCollection201Response]: + """Import Skill Collection from GitHub + + Discovers all skill directories under a given path in a GitHub repository * and imports each as a skill within the specified namespace. Each subdirectory must contain a SKILL.md file. * * **Namespace:** Used for grouping and slash-command invocation (e.g., `/superpowers:brainstorming`). * * **Idempotent:** If a skill with the same namespace + name already exists, it is updated. + + :param organisation: The organisation ID (required) + :type organisation: str + :param import_skill_collection_request: (required) + :type import_skill_collection_request: ImportSkillCollectionRequest + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._import_skill_collection_serialize( + organisation=organisation, + import_skill_collection_request=import_skill_collection_request, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '201': "ImportSkillCollection201Response", + '400': None, + '403': None, + '502': None, + '500': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ) + + + @validate_call + def import_skill_collection_without_preload_content( + self, + organisation: Annotated[StrictStr, Field(description="The organisation ID")], + import_skill_collection_request: ImportSkillCollectionRequest, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> RESTResponseType: + """Import Skill Collection from GitHub + + Discovers all skill directories under a given path in a GitHub repository * and imports each as a skill within the specified namespace. Each subdirectory must contain a SKILL.md file. * * **Namespace:** Used for grouping and slash-command invocation (e.g., `/superpowers:brainstorming`). * * **Idempotent:** If a skill with the same namespace + name already exists, it is updated. + + :param organisation: The organisation ID (required) + :type organisation: str + :param import_skill_collection_request: (required) + :type import_skill_collection_request: ImportSkillCollectionRequest + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._import_skill_collection_serialize( + organisation=organisation, + import_skill_collection_request=import_skill_collection_request, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '201': "ImportSkillCollection201Response", + '400': None, + '403': None, + '502': None, + '500': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _import_skill_collection_serialize( + self, + organisation, + import_skill_collection_request, + _request_auth, + _content_type, + _headers, + _host_index, + ) -> RequestSerialized: + + _host = None + + _collection_formats: Dict[str, str] = { + } + + _path_params: Dict[str, str] = {} + _query_params: List[Tuple[str, str]] = [] + _header_params: Dict[str, Optional[str]] = _headers or {} + _form_params: List[Tuple[str, str]] = [] + _files: Dict[ + str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] + ] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + if organisation is not None: + _path_params['organisation'] = organisation + # process the query parameters + # process the header parameters + # process the form parameters + # process the body parameter + if import_skill_collection_request is not None: + _body_params = import_skill_collection_request + + + # set the HTTP header `Accept` + if 'Accept' not in _header_params: + _header_params['Accept'] = self.api_client.select_header_accept( + [ + 'application/json' + ] + ) + + # set the HTTP header `Content-Type` + if _content_type: + _header_params['Content-Type'] = _content_type + else: + _default_content_type = ( + self.api_client.select_header_content_type( + [ + 'application/json' + ] + ) + ) + if _default_content_type is not None: + _header_params['Content-Type'] = _default_content_type + + # authentication setting + _auth_settings: List[str] = [ + 'BearerAuth' + ] + + return self.api_client.param_serialize( + method='POST', + resource_path='/api/v3/organizations/{organisation}/ai/skills/import-collection', + path_params=_path_params, + query_params=_query_params, + header_params=_header_params, + body=_body_params, + post_params=_form_params, + files=_files, + auth_settings=_auth_settings, + collection_formats=_collection_formats, + _host=_host, + _request_auth=_request_auth + ) + + + + + @validate_call + def list_skill_collections( + self, + organisation: Annotated[StrictStr, Field(description="The organisation ID")], + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> ListSkillCollections200Response: + """List Skill Collections + + Lists distinct namespaces (collections) for the organization, with skill counts and skill names for each collection. + + :param organisation: The organisation ID (required) + :type organisation: str + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._list_skill_collections_serialize( + organisation=organisation, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "ListSkillCollections200Response", + '403': None, + '500': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ).data + + + @validate_call + def list_skill_collections_with_http_info( + self, + organisation: Annotated[StrictStr, Field(description="The organisation ID")], + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> ApiResponse[ListSkillCollections200Response]: + """List Skill Collections + + Lists distinct namespaces (collections) for the organization, with skill counts and skill names for each collection. + + :param organisation: The organisation ID (required) + :type organisation: str + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._list_skill_collections_serialize( + organisation=organisation, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "ListSkillCollections200Response", + '403': None, + '500': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ) + + + @validate_call + def list_skill_collections_without_preload_content( + self, + organisation: Annotated[StrictStr, Field(description="The organisation ID")], + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> RESTResponseType: + """List Skill Collections + + Lists distinct namespaces (collections) for the organization, with skill counts and skill names for each collection. + + :param organisation: The organisation ID (required) + :type organisation: str + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._list_skill_collections_serialize( + organisation=organisation, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "ListSkillCollections200Response", + '403': None, + '500': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _list_skill_collections_serialize( + self, + organisation, + _request_auth, + _content_type, + _headers, + _host_index, + ) -> RequestSerialized: + + _host = None + + _collection_formats: Dict[str, str] = { + } + + _path_params: Dict[str, str] = {} + _query_params: List[Tuple[str, str]] = [] + _header_params: Dict[str, Optional[str]] = _headers or {} + _form_params: List[Tuple[str, str]] = [] + _files: Dict[ + str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] + ] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + if organisation is not None: + _path_params['organisation'] = organisation + # process the query parameters + # process the header parameters + # process the form parameters + # process the body parameter + + + # set the HTTP header `Accept` + if 'Accept' not in _header_params: + _header_params['Accept'] = self.api_client.select_header_accept( + [ + 'application/json' + ] + ) + + + # authentication setting + _auth_settings: List[str] = [ + 'BearerAuth' + ] + + return self.api_client.param_serialize( + method='GET', + resource_path='/api/v3/organizations/{organisation}/ai/skills/collections', + path_params=_path_params, + query_params=_query_params, + header_params=_header_params, + body=_body_params, + post_params=_form_params, + files=_files, + auth_settings=_auth_settings, + collection_formats=_collection_formats, + _host=_host, + _request_auth=_request_auth + ) + + + + + @validate_call + def list_skills( + self, + organisation: Annotated[StrictStr, Field(description="The organisation ID")], + tag: Annotated[Optional[StrictStr], Field(description="Filter skills by tag")] = None, + namespace: Annotated[Optional[StrictStr], Field(description="Filter skills by collection namespace (e.g. 'superpowers')")] = None, + limit: Annotated[Optional[Annotated[int, Field(le=100, strict=True, ge=1)]], Field(description="Maximum number of skills to return")] = None, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> ListSkills200Response: + """List Organization's Skills + + Lists all skills available to the organization. Skills are reusable prompts, * workflows, or instructions that can be assigned to agents or invoked directly. * * **Skill Sources:** * - `inline`: Created directly via the API * - `skills.sh`: Imported from skills.sh registry * - `github`: Imported from a GitHub repository * - `local`: Uploaded from local file + + :param organisation: The organisation ID (required) + :type organisation: str + :param tag: Filter skills by tag + :type tag: str + :param namespace: Filter skills by collection namespace (e.g. 'superpowers') + :type namespace: str + :param limit: Maximum number of skills to return + :type limit: int + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._list_skills_serialize( + organisation=organisation, + tag=tag, + namespace=namespace, + limit=limit, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "ListSkills200Response", + '403': None, + '500': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ).data + + + @validate_call + def list_skills_with_http_info( + self, + organisation: Annotated[StrictStr, Field(description="The organisation ID")], + tag: Annotated[Optional[StrictStr], Field(description="Filter skills by tag")] = None, + namespace: Annotated[Optional[StrictStr], Field(description="Filter skills by collection namespace (e.g. 'superpowers')")] = None, + limit: Annotated[Optional[Annotated[int, Field(le=100, strict=True, ge=1)]], Field(description="Maximum number of skills to return")] = None, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> ApiResponse[ListSkills200Response]: + """List Organization's Skills + + Lists all skills available to the organization. Skills are reusable prompts, * workflows, or instructions that can be assigned to agents or invoked directly. * * **Skill Sources:** * - `inline`: Created directly via the API * - `skills.sh`: Imported from skills.sh registry * - `github`: Imported from a GitHub repository * - `local`: Uploaded from local file + + :param organisation: The organisation ID (required) + :type organisation: str + :param tag: Filter skills by tag + :type tag: str + :param namespace: Filter skills by collection namespace (e.g. 'superpowers') + :type namespace: str + :param limit: Maximum number of skills to return + :type limit: int + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._list_skills_serialize( + organisation=organisation, + tag=tag, + namespace=namespace, + limit=limit, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "ListSkills200Response", + '403': None, + '500': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ) + + + @validate_call + def list_skills_without_preload_content( + self, + organisation: Annotated[StrictStr, Field(description="The organisation ID")], + tag: Annotated[Optional[StrictStr], Field(description="Filter skills by tag")] = None, + namespace: Annotated[Optional[StrictStr], Field(description="Filter skills by collection namespace (e.g. 'superpowers')")] = None, + limit: Annotated[Optional[Annotated[int, Field(le=100, strict=True, ge=1)]], Field(description="Maximum number of skills to return")] = None, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> RESTResponseType: + """List Organization's Skills + + Lists all skills available to the organization. Skills are reusable prompts, * workflows, or instructions that can be assigned to agents or invoked directly. * * **Skill Sources:** * - `inline`: Created directly via the API * - `skills.sh`: Imported from skills.sh registry * - `github`: Imported from a GitHub repository * - `local`: Uploaded from local file + + :param organisation: The organisation ID (required) + :type organisation: str + :param tag: Filter skills by tag + :type tag: str + :param namespace: Filter skills by collection namespace (e.g. 'superpowers') + :type namespace: str + :param limit: Maximum number of skills to return + :type limit: int + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._list_skills_serialize( + organisation=organisation, + tag=tag, + namespace=namespace, + limit=limit, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "ListSkills200Response", + '403': None, + '500': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _list_skills_serialize( + self, + organisation, + tag, + namespace, + limit, + _request_auth, + _content_type, + _headers, + _host_index, + ) -> RequestSerialized: + + _host = None + + _collection_formats: Dict[str, str] = { + } + + _path_params: Dict[str, str] = {} + _query_params: List[Tuple[str, str]] = [] + _header_params: Dict[str, Optional[str]] = _headers or {} + _form_params: List[Tuple[str, str]] = [] + _files: Dict[ + str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] + ] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + if organisation is not None: + _path_params['organisation'] = organisation + # process the query parameters + if tag is not None: + + _query_params.append(('tag', tag)) + + if namespace is not None: + + _query_params.append(('namespace', namespace)) + + if limit is not None: + + _query_params.append(('limit', limit)) + + # process the header parameters + # process the form parameters + # process the body parameter + + + # set the HTTP header `Accept` + if 'Accept' not in _header_params: + _header_params['Accept'] = self.api_client.select_header_accept( + [ + 'application/json' + ] + ) + + + # authentication setting + _auth_settings: List[str] = [ + 'BearerAuth' + ] + + return self.api_client.param_serialize( + method='GET', + resource_path='/api/v3/organizations/{organisation}/ai/skills', + path_params=_path_params, + query_params=_query_params, + header_params=_header_params, + body=_body_params, + post_params=_form_params, + files=_files, + auth_settings=_auth_settings, + collection_formats=_collection_formats, + _host=_host, + _request_auth=_request_auth + ) + + + + + @validate_call + def sync_skill( + self, + organisation: Annotated[StrictStr, Field(description="The organisation ID")], + skill_id: Annotated[StrictStr, Field(description="The skill ID")], + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> ImportSkill201Response: + """Sync Skill from Source + + Re-fetches skill content from its original source. * Only applicable to skills imported from external sources (skills.sh, github). * Inline skills cannot be synced. * * **Version Behavior:** * - If version is pinned, fetches that specific version * - If no version specified, fetches latest + + :param organisation: The organisation ID (required) + :type organisation: str + :param skill_id: The skill ID (required) + :type skill_id: str + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._sync_skill_serialize( + organisation=organisation, + skill_id=skill_id, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "ImportSkill201Response", + '400': None, + '403': None, + '404': None, + '502': None, + '500': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ).data + + + @validate_call + def sync_skill_with_http_info( + self, + organisation: Annotated[StrictStr, Field(description="The organisation ID")], + skill_id: Annotated[StrictStr, Field(description="The skill ID")], + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> ApiResponse[ImportSkill201Response]: + """Sync Skill from Source + + Re-fetches skill content from its original source. * Only applicable to skills imported from external sources (skills.sh, github). * Inline skills cannot be synced. * * **Version Behavior:** * - If version is pinned, fetches that specific version * - If no version specified, fetches latest + + :param organisation: The organisation ID (required) + :type organisation: str + :param skill_id: The skill ID (required) + :type skill_id: str + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._sync_skill_serialize( + organisation=organisation, + skill_id=skill_id, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "ImportSkill201Response", + '400': None, + '403': None, + '404': None, + '502': None, + '500': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ) + + + @validate_call + def sync_skill_without_preload_content( + self, + organisation: Annotated[StrictStr, Field(description="The organisation ID")], + skill_id: Annotated[StrictStr, Field(description="The skill ID")], + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> RESTResponseType: + """Sync Skill from Source + + Re-fetches skill content from its original source. * Only applicable to skills imported from external sources (skills.sh, github). * Inline skills cannot be synced. * * **Version Behavior:** * - If version is pinned, fetches that specific version * - If no version specified, fetches latest + + :param organisation: The organisation ID (required) + :type organisation: str + :param skill_id: The skill ID (required) + :type skill_id: str + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._sync_skill_serialize( + organisation=organisation, + skill_id=skill_id, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "ImportSkill201Response", + '400': None, + '403': None, + '404': None, + '502': None, + '500': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _sync_skill_serialize( + self, + organisation, + skill_id, + _request_auth, + _content_type, + _headers, + _host_index, + ) -> RequestSerialized: + + _host = None + + _collection_formats: Dict[str, str] = { + } + + _path_params: Dict[str, str] = {} + _query_params: List[Tuple[str, str]] = [] + _header_params: Dict[str, Optional[str]] = _headers or {} + _form_params: List[Tuple[str, str]] = [] + _files: Dict[ + str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] + ] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + if organisation is not None: + _path_params['organisation'] = organisation + if skill_id is not None: + _path_params['skillId'] = skill_id + # process the query parameters + # process the header parameters + # process the form parameters + # process the body parameter + + + # set the HTTP header `Accept` + if 'Accept' not in _header_params: + _header_params['Accept'] = self.api_client.select_header_accept( + [ + 'application/json' + ] + ) + + + # authentication setting + _auth_settings: List[str] = [ + 'BearerAuth' + ] + + return self.api_client.param_serialize( + method='POST', + resource_path='/api/v3/organizations/{organisation}/ai/skills/{skillId}/sync', + path_params=_path_params, + query_params=_query_params, + header_params=_header_params, + body=_body_params, + post_params=_form_params, + files=_files, + auth_settings=_auth_settings, + collection_formats=_collection_formats, + _host=_host, + _request_auth=_request_auth + ) + + + + + @validate_call + def sync_skill_collection( + self, + organisation: Annotated[StrictStr, Field(description="The organisation ID")], + namespace: Annotated[StrictStr, Field(description="Collection namespace")], + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> SyncSkillCollection200Response: + """Sync Skill Collection + + Re-syncs all skills in a namespace from their GitHub source. Detects new * skills added to the repository and flags skills removed from the source. Does NOT auto-delete removed skills. + + :param organisation: The organisation ID (required) + :type organisation: str + :param namespace: Collection namespace (required) + :type namespace: str + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._sync_skill_collection_serialize( + organisation=organisation, + namespace=namespace, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "SyncSkillCollection200Response", + '400': None, + '403': None, + '404': None, + '502': None, + '500': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ).data + + + @validate_call + def sync_skill_collection_with_http_info( + self, + organisation: Annotated[StrictStr, Field(description="The organisation ID")], + namespace: Annotated[StrictStr, Field(description="Collection namespace")], + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> ApiResponse[SyncSkillCollection200Response]: + """Sync Skill Collection + + Re-syncs all skills in a namespace from their GitHub source. Detects new * skills added to the repository and flags skills removed from the source. Does NOT auto-delete removed skills. + + :param organisation: The organisation ID (required) + :type organisation: str + :param namespace: Collection namespace (required) + :type namespace: str + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._sync_skill_collection_serialize( + organisation=organisation, + namespace=namespace, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "SyncSkillCollection200Response", + '400': None, + '403': None, + '404': None, + '502': None, + '500': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ) + + + @validate_call + def sync_skill_collection_without_preload_content( + self, + organisation: Annotated[StrictStr, Field(description="The organisation ID")], + namespace: Annotated[StrictStr, Field(description="Collection namespace")], + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> RESTResponseType: + """Sync Skill Collection + + Re-syncs all skills in a namespace from their GitHub source. Detects new * skills added to the repository and flags skills removed from the source. Does NOT auto-delete removed skills. + + :param organisation: The organisation ID (required) + :type organisation: str + :param namespace: Collection namespace (required) + :type namespace: str + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._sync_skill_collection_serialize( + organisation=organisation, + namespace=namespace, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "SyncSkillCollection200Response", + '400': None, + '403': None, + '404': None, + '502': None, + '500': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _sync_skill_collection_serialize( + self, + organisation, + namespace, + _request_auth, + _content_type, + _headers, + _host_index, + ) -> RequestSerialized: + + _host = None + + _collection_formats: Dict[str, str] = { + } + + _path_params: Dict[str, str] = {} + _query_params: List[Tuple[str, str]] = [] + _header_params: Dict[str, Optional[str]] = _headers or {} + _form_params: List[Tuple[str, str]] = [] + _files: Dict[ + str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] + ] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + if organisation is not None: + _path_params['organisation'] = organisation + if namespace is not None: + _path_params['namespace'] = namespace + # process the query parameters + # process the header parameters + # process the form parameters + # process the body parameter + + + # set the HTTP header `Accept` + if 'Accept' not in _header_params: + _header_params['Accept'] = self.api_client.select_header_accept( + [ + 'application/json' + ] + ) + + + # authentication setting + _auth_settings: List[str] = [ + 'BearerAuth' + ] + + return self.api_client.param_serialize( + method='POST', + resource_path='/api/v3/organizations/{organisation}/ai/skills/collections/{namespace}/sync', + path_params=_path_params, + query_params=_query_params, + header_params=_header_params, + body=_body_params, + post_params=_form_params, + files=_files, + auth_settings=_auth_settings, + collection_formats=_collection_formats, + _host=_host, + _request_auth=_request_auth + ) + + + + + @validate_call + def update_skill( + self, + organisation: Annotated[StrictStr, Field(description="The organisation ID")], + skill_id: Annotated[StrictStr, Field(description="The skill ID")], + update_skill_request: UpdateSkillRequest, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> UpdateSkill200Response: + """Update Skill + + Updates an existing skill. For imported skills, this updates * local overrides (name, tags, triggerCondition) but not the source content. * Use the sync endpoint to update source content. + + :param organisation: The organisation ID (required) + :type organisation: str + :param skill_id: The skill ID (required) + :type skill_id: str + :param update_skill_request: (required) + :type update_skill_request: UpdateSkillRequest + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._update_skill_serialize( + organisation=organisation, + skill_id=skill_id, + update_skill_request=update_skill_request, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "UpdateSkill200Response", + '400': None, + '403': None, + '404': None, + '500': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ).data + + + @validate_call + def update_skill_with_http_info( + self, + organisation: Annotated[StrictStr, Field(description="The organisation ID")], + skill_id: Annotated[StrictStr, Field(description="The skill ID")], + update_skill_request: UpdateSkillRequest, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> ApiResponse[UpdateSkill200Response]: + """Update Skill + + Updates an existing skill. For imported skills, this updates * local overrides (name, tags, triggerCondition) but not the source content. * Use the sync endpoint to update source content. + + :param organisation: The organisation ID (required) + :type organisation: str + :param skill_id: The skill ID (required) + :type skill_id: str + :param update_skill_request: (required) + :type update_skill_request: UpdateSkillRequest + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._update_skill_serialize( + organisation=organisation, + skill_id=skill_id, + update_skill_request=update_skill_request, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "UpdateSkill200Response", + '400': None, + '403': None, + '404': None, + '500': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ) + + + @validate_call + def update_skill_without_preload_content( + self, + organisation: Annotated[StrictStr, Field(description="The organisation ID")], + skill_id: Annotated[StrictStr, Field(description="The skill ID")], + update_skill_request: UpdateSkillRequest, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> RESTResponseType: + """Update Skill + + Updates an existing skill. For imported skills, this updates * local overrides (name, tags, triggerCondition) but not the source content. * Use the sync endpoint to update source content. + + :param organisation: The organisation ID (required) + :type organisation: str + :param skill_id: The skill ID (required) + :type skill_id: str + :param update_skill_request: (required) + :type update_skill_request: UpdateSkillRequest + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._update_skill_serialize( + organisation=organisation, + skill_id=skill_id, + update_skill_request=update_skill_request, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "UpdateSkill200Response", + '400': None, + '403': None, + '404': None, + '500': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _update_skill_serialize( + self, + organisation, + skill_id, + update_skill_request, + _request_auth, + _content_type, + _headers, + _host_index, + ) -> RequestSerialized: + + _host = None + + _collection_formats: Dict[str, str] = { + } + + _path_params: Dict[str, str] = {} + _query_params: List[Tuple[str, str]] = [] + _header_params: Dict[str, Optional[str]] = _headers or {} + _form_params: List[Tuple[str, str]] = [] + _files: Dict[ + str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] + ] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + if organisation is not None: + _path_params['organisation'] = organisation + if skill_id is not None: + _path_params['skillId'] = skill_id + # process the query parameters + # process the header parameters + # process the form parameters + # process the body parameter + if update_skill_request is not None: + _body_params = update_skill_request + + + # set the HTTP header `Accept` + if 'Accept' not in _header_params: + _header_params['Accept'] = self.api_client.select_header_accept( + [ + 'application/json' + ] + ) + + # set the HTTP header `Content-Type` + if _content_type: + _header_params['Content-Type'] = _content_type + else: + _default_content_type = ( + self.api_client.select_header_content_type( + [ + 'application/json' + ] + ) + ) + if _default_content_type is not None: + _header_params['Content-Type'] = _default_content_type + + # authentication setting + _auth_settings: List[str] = [ + 'BearerAuth' + ] + + return self.api_client.param_serialize( + method='PUT', + resource_path='/api/v3/organizations/{organisation}/ai/skills/{skillId}', + path_params=_path_params, + query_params=_query_params, + header_params=_header_params, + body=_body_params, + post_params=_form_params, + files=_files, + auth_settings=_auth_settings, + collection_formats=_collection_formats, + _host=_host, + _request_auth=_request_auth + ) + + diff --git a/quantcdn/api/ai_slack_bots_api.py b/quantcdn/api/ai_slack_bots_api.py new file mode 100644 index 00000000..9070dd2d --- /dev/null +++ b/quantcdn/api/ai_slack_bots_api.py @@ -0,0 +1,2101 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + +import warnings +from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt +from typing import Any, Dict, List, Optional, Tuple, Union +from typing_extensions import Annotated + +from pydantic import Field, StrictStr +from typing import Optional +from typing_extensions import Annotated +from quantcdn.models.create_slack_bot201_response import CreateSlackBot201Response +from quantcdn.models.create_slack_bot_request import CreateSlackBotRequest +from quantcdn.models.delete_slack_bot200_response import DeleteSlackBot200Response +from quantcdn.models.get_slack_bot200_response import GetSlackBot200Response +from quantcdn.models.list_slack_bots200_response import ListSlackBots200Response +from quantcdn.models.search_slack_workspace_channels200_response import SearchSlackWorkspaceChannels200Response +from quantcdn.models.search_slack_workspace_users200_response import SearchSlackWorkspaceUsers200Response +from quantcdn.models.update_slack_bot_request import UpdateSlackBotRequest + +from quantcdn.api_client import ApiClient, RequestSerialized +from quantcdn.api_response import ApiResponse +from quantcdn.rest import RESTResponseType + + +class AISlackBotsApi: + """NOTE: This class is auto generated by OpenAPI Generator + Ref: https://openapi-generator.tech + + Do not edit the class manually. + """ + + def __init__(self, api_client=None) -> None: + if api_client is None: + api_client = ApiClient.get_default() + self.api_client = api_client + + + @validate_call + def create_slack_bot( + self, + organisation: Annotated[StrictStr, Field(description="The organisation ID")], + create_slack_bot_request: CreateSlackBotRequest, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> CreateSlackBot201Response: + """Create Slack Bot + + Creates a new Slack bot with inline AI agent configuration. A backing agent is created automatically — callers do not need to manage agents separately. * * **Setup Types:** * - `quant`: Quant-managed Slack app — uses shared OAuth credentials * - `byo`: Bring Your Own — customer provides their own Slack app credentials + + :param organisation: The organisation ID (required) + :type organisation: str + :param create_slack_bot_request: (required) + :type create_slack_bot_request: CreateSlackBotRequest + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._create_slack_bot_serialize( + organisation=organisation, + create_slack_bot_request=create_slack_bot_request, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '201': "CreateSlackBot201Response", + '400': None, + '403': None, + '500': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ).data + + + @validate_call + def create_slack_bot_with_http_info( + self, + organisation: Annotated[StrictStr, Field(description="The organisation ID")], + create_slack_bot_request: CreateSlackBotRequest, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> ApiResponse[CreateSlackBot201Response]: + """Create Slack Bot + + Creates a new Slack bot with inline AI agent configuration. A backing agent is created automatically — callers do not need to manage agents separately. * * **Setup Types:** * - `quant`: Quant-managed Slack app — uses shared OAuth credentials * - `byo`: Bring Your Own — customer provides their own Slack app credentials + + :param organisation: The organisation ID (required) + :type organisation: str + :param create_slack_bot_request: (required) + :type create_slack_bot_request: CreateSlackBotRequest + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._create_slack_bot_serialize( + organisation=organisation, + create_slack_bot_request=create_slack_bot_request, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '201': "CreateSlackBot201Response", + '400': None, + '403': None, + '500': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ) + + + @validate_call + def create_slack_bot_without_preload_content( + self, + organisation: Annotated[StrictStr, Field(description="The organisation ID")], + create_slack_bot_request: CreateSlackBotRequest, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> RESTResponseType: + """Create Slack Bot + + Creates a new Slack bot with inline AI agent configuration. A backing agent is created automatically — callers do not need to manage agents separately. * * **Setup Types:** * - `quant`: Quant-managed Slack app — uses shared OAuth credentials * - `byo`: Bring Your Own — customer provides their own Slack app credentials + + :param organisation: The organisation ID (required) + :type organisation: str + :param create_slack_bot_request: (required) + :type create_slack_bot_request: CreateSlackBotRequest + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._create_slack_bot_serialize( + organisation=organisation, + create_slack_bot_request=create_slack_bot_request, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '201': "CreateSlackBot201Response", + '400': None, + '403': None, + '500': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _create_slack_bot_serialize( + self, + organisation, + create_slack_bot_request, + _request_auth, + _content_type, + _headers, + _host_index, + ) -> RequestSerialized: + + _host = None + + _collection_formats: Dict[str, str] = { + } + + _path_params: Dict[str, str] = {} + _query_params: List[Tuple[str, str]] = [] + _header_params: Dict[str, Optional[str]] = _headers or {} + _form_params: List[Tuple[str, str]] = [] + _files: Dict[ + str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] + ] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + if organisation is not None: + _path_params['organisation'] = organisation + # process the query parameters + # process the header parameters + # process the form parameters + # process the body parameter + if create_slack_bot_request is not None: + _body_params = create_slack_bot_request + + + # set the HTTP header `Accept` + if 'Accept' not in _header_params: + _header_params['Accept'] = self.api_client.select_header_accept( + [ + 'application/json' + ] + ) + + # set the HTTP header `Content-Type` + if _content_type: + _header_params['Content-Type'] = _content_type + else: + _default_content_type = ( + self.api_client.select_header_content_type( + [ + 'application/json' + ] + ) + ) + if _default_content_type is not None: + _header_params['Content-Type'] = _default_content_type + + # authentication setting + _auth_settings: List[str] = [ + 'BearerAuth' + ] + + return self.api_client.param_serialize( + method='POST', + resource_path='/api/v3/organizations/{organisation}/ai/slack-bots', + path_params=_path_params, + query_params=_query_params, + header_params=_header_params, + body=_body_params, + post_params=_form_params, + files=_files, + auth_settings=_auth_settings, + collection_formats=_collection_formats, + _host=_host, + _request_auth=_request_auth + ) + + + + + @validate_call + def delete_slack_bot( + self, + organisation: Annotated[StrictStr, Field(description="The organisation ID")], + bot_id: Annotated[StrictStr, Field(description="The Slack bot ID")], + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> DeleteSlackBot200Response: + """Delete Slack Bot + + Permanently deletes a Slack bot, disconnects it from the workspace, and deletes its backing AI agent. + + :param organisation: The organisation ID (required) + :type organisation: str + :param bot_id: The Slack bot ID (required) + :type bot_id: str + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._delete_slack_bot_serialize( + organisation=organisation, + bot_id=bot_id, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "DeleteSlackBot200Response", + '403': None, + '404': None, + '500': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ).data + + + @validate_call + def delete_slack_bot_with_http_info( + self, + organisation: Annotated[StrictStr, Field(description="The organisation ID")], + bot_id: Annotated[StrictStr, Field(description="The Slack bot ID")], + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> ApiResponse[DeleteSlackBot200Response]: + """Delete Slack Bot + + Permanently deletes a Slack bot, disconnects it from the workspace, and deletes its backing AI agent. + + :param organisation: The organisation ID (required) + :type organisation: str + :param bot_id: The Slack bot ID (required) + :type bot_id: str + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._delete_slack_bot_serialize( + organisation=organisation, + bot_id=bot_id, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "DeleteSlackBot200Response", + '403': None, + '404': None, + '500': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ) + + + @validate_call + def delete_slack_bot_without_preload_content( + self, + organisation: Annotated[StrictStr, Field(description="The organisation ID")], + bot_id: Annotated[StrictStr, Field(description="The Slack bot ID")], + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> RESTResponseType: + """Delete Slack Bot + + Permanently deletes a Slack bot, disconnects it from the workspace, and deletes its backing AI agent. + + :param organisation: The organisation ID (required) + :type organisation: str + :param bot_id: The Slack bot ID (required) + :type bot_id: str + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._delete_slack_bot_serialize( + organisation=organisation, + bot_id=bot_id, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "DeleteSlackBot200Response", + '403': None, + '404': None, + '500': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _delete_slack_bot_serialize( + self, + organisation, + bot_id, + _request_auth, + _content_type, + _headers, + _host_index, + ) -> RequestSerialized: + + _host = None + + _collection_formats: Dict[str, str] = { + } + + _path_params: Dict[str, str] = {} + _query_params: List[Tuple[str, str]] = [] + _header_params: Dict[str, Optional[str]] = _headers or {} + _form_params: List[Tuple[str, str]] = [] + _files: Dict[ + str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] + ] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + if organisation is not None: + _path_params['organisation'] = organisation + if bot_id is not None: + _path_params['botId'] = bot_id + # process the query parameters + # process the header parameters + # process the form parameters + # process the body parameter + + + # set the HTTP header `Accept` + if 'Accept' not in _header_params: + _header_params['Accept'] = self.api_client.select_header_accept( + [ + 'application/json' + ] + ) + + + # authentication setting + _auth_settings: List[str] = [ + 'BearerAuth' + ] + + return self.api_client.param_serialize( + method='DELETE', + resource_path='/api/v3/organizations/{organisation}/ai/slack-bots/{botId}', + path_params=_path_params, + query_params=_query_params, + header_params=_header_params, + body=_body_params, + post_params=_form_params, + files=_files, + auth_settings=_auth_settings, + collection_formats=_collection_formats, + _host=_host, + _request_auth=_request_auth + ) + + + + + @validate_call + def get_slack_bot( + self, + organisation: Annotated[StrictStr, Field(description="The organisation ID")], + bot_id: Annotated[StrictStr, Field(description="The Slack bot ID")], + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> GetSlackBot200Response: + """Get Slack Bot + + Retrieves details for a specific Slack bot including its configuration, connection status, and flattened agent configuration. + + :param organisation: The organisation ID (required) + :type organisation: str + :param bot_id: The Slack bot ID (required) + :type bot_id: str + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._get_slack_bot_serialize( + organisation=organisation, + bot_id=bot_id, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "GetSlackBot200Response", + '403': None, + '404': None, + '500': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ).data + + + @validate_call + def get_slack_bot_with_http_info( + self, + organisation: Annotated[StrictStr, Field(description="The organisation ID")], + bot_id: Annotated[StrictStr, Field(description="The Slack bot ID")], + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> ApiResponse[GetSlackBot200Response]: + """Get Slack Bot + + Retrieves details for a specific Slack bot including its configuration, connection status, and flattened agent configuration. + + :param organisation: The organisation ID (required) + :type organisation: str + :param bot_id: The Slack bot ID (required) + :type bot_id: str + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._get_slack_bot_serialize( + organisation=organisation, + bot_id=bot_id, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "GetSlackBot200Response", + '403': None, + '404': None, + '500': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ) + + + @validate_call + def get_slack_bot_without_preload_content( + self, + organisation: Annotated[StrictStr, Field(description="The organisation ID")], + bot_id: Annotated[StrictStr, Field(description="The Slack bot ID")], + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> RESTResponseType: + """Get Slack Bot + + Retrieves details for a specific Slack bot including its configuration, connection status, and flattened agent configuration. + + :param organisation: The organisation ID (required) + :type organisation: str + :param bot_id: The Slack bot ID (required) + :type bot_id: str + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._get_slack_bot_serialize( + organisation=organisation, + bot_id=bot_id, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "GetSlackBot200Response", + '403': None, + '404': None, + '500': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _get_slack_bot_serialize( + self, + organisation, + bot_id, + _request_auth, + _content_type, + _headers, + _host_index, + ) -> RequestSerialized: + + _host = None + + _collection_formats: Dict[str, str] = { + } + + _path_params: Dict[str, str] = {} + _query_params: List[Tuple[str, str]] = [] + _header_params: Dict[str, Optional[str]] = _headers or {} + _form_params: List[Tuple[str, str]] = [] + _files: Dict[ + str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] + ] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + if organisation is not None: + _path_params['organisation'] = organisation + if bot_id is not None: + _path_params['botId'] = bot_id + # process the query parameters + # process the header parameters + # process the form parameters + # process the body parameter + + + # set the HTTP header `Accept` + if 'Accept' not in _header_params: + _header_params['Accept'] = self.api_client.select_header_accept( + [ + 'application/json' + ] + ) + + + # authentication setting + _auth_settings: List[str] = [ + 'BearerAuth' + ] + + return self.api_client.param_serialize( + method='GET', + resource_path='/api/v3/organizations/{organisation}/ai/slack-bots/{botId}', + path_params=_path_params, + query_params=_query_params, + header_params=_header_params, + body=_body_params, + post_params=_form_params, + files=_files, + auth_settings=_auth_settings, + collection_formats=_collection_formats, + _host=_host, + _request_auth=_request_auth + ) + + + + + @validate_call + def list_slack_bots( + self, + organisation: Annotated[StrictStr, Field(description="The organisation ID")], + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> ListSlackBots200Response: + """List Slack Bots + + Lists all Slack bots configured for the organization. Each bot is backed by an AI agent and can be connected to a Slack workspace. Agent configuration fields are flattened onto each bot object. + + :param organisation: The organisation ID (required) + :type organisation: str + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._list_slack_bots_serialize( + organisation=organisation, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "ListSlackBots200Response", + '403': None, + '500': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ).data + + + @validate_call + def list_slack_bots_with_http_info( + self, + organisation: Annotated[StrictStr, Field(description="The organisation ID")], + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> ApiResponse[ListSlackBots200Response]: + """List Slack Bots + + Lists all Slack bots configured for the organization. Each bot is backed by an AI agent and can be connected to a Slack workspace. Agent configuration fields are flattened onto each bot object. + + :param organisation: The organisation ID (required) + :type organisation: str + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._list_slack_bots_serialize( + organisation=organisation, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "ListSlackBots200Response", + '403': None, + '500': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ) + + + @validate_call + def list_slack_bots_without_preload_content( + self, + organisation: Annotated[StrictStr, Field(description="The organisation ID")], + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> RESTResponseType: + """List Slack Bots + + Lists all Slack bots configured for the organization. Each bot is backed by an AI agent and can be connected to a Slack workspace. Agent configuration fields are flattened onto each bot object. + + :param organisation: The organisation ID (required) + :type organisation: str + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._list_slack_bots_serialize( + organisation=organisation, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "ListSlackBots200Response", + '403': None, + '500': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _list_slack_bots_serialize( + self, + organisation, + _request_auth, + _content_type, + _headers, + _host_index, + ) -> RequestSerialized: + + _host = None + + _collection_formats: Dict[str, str] = { + } + + _path_params: Dict[str, str] = {} + _query_params: List[Tuple[str, str]] = [] + _header_params: Dict[str, Optional[str]] = _headers or {} + _form_params: List[Tuple[str, str]] = [] + _files: Dict[ + str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] + ] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + if organisation is not None: + _path_params['organisation'] = organisation + # process the query parameters + # process the header parameters + # process the form parameters + # process the body parameter + + + # set the HTTP header `Accept` + if 'Accept' not in _header_params: + _header_params['Accept'] = self.api_client.select_header_accept( + [ + 'application/json' + ] + ) + + + # authentication setting + _auth_settings: List[str] = [ + 'BearerAuth' + ] + + return self.api_client.param_serialize( + method='GET', + resource_path='/api/v3/organizations/{organisation}/ai/slack-bots', + path_params=_path_params, + query_params=_query_params, + header_params=_header_params, + body=_body_params, + post_params=_form_params, + files=_files, + auth_settings=_auth_settings, + collection_formats=_collection_formats, + _host=_host, + _request_auth=_request_auth + ) + + + + + @validate_call + def search_slack_workspace_channels( + self, + organisation: Annotated[StrictStr, Field(description="The organisation ID")], + bot_id: Annotated[StrictStr, Field(description="The Slack bot ID")], + q: Annotated[Optional[StrictStr], Field(description="Search query to filter channels by name")] = None, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> SearchSlackWorkspaceChannels200Response: + """Search Slack Workspace Channels + + Searches channels in the Slack workspace connected to this bot. Requires the bot to be connected via OAuth. + + :param organisation: The organisation ID (required) + :type organisation: str + :param bot_id: The Slack bot ID (required) + :type bot_id: str + :param q: Search query to filter channels by name + :type q: str + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._search_slack_workspace_channels_serialize( + organisation=organisation, + bot_id=bot_id, + q=q, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "SearchSlackWorkspaceChannels200Response", + '403': None, + '404': None, + '500': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ).data + + + @validate_call + def search_slack_workspace_channels_with_http_info( + self, + organisation: Annotated[StrictStr, Field(description="The organisation ID")], + bot_id: Annotated[StrictStr, Field(description="The Slack bot ID")], + q: Annotated[Optional[StrictStr], Field(description="Search query to filter channels by name")] = None, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> ApiResponse[SearchSlackWorkspaceChannels200Response]: + """Search Slack Workspace Channels + + Searches channels in the Slack workspace connected to this bot. Requires the bot to be connected via OAuth. + + :param organisation: The organisation ID (required) + :type organisation: str + :param bot_id: The Slack bot ID (required) + :type bot_id: str + :param q: Search query to filter channels by name + :type q: str + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._search_slack_workspace_channels_serialize( + organisation=organisation, + bot_id=bot_id, + q=q, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "SearchSlackWorkspaceChannels200Response", + '403': None, + '404': None, + '500': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ) + + + @validate_call + def search_slack_workspace_channels_without_preload_content( + self, + organisation: Annotated[StrictStr, Field(description="The organisation ID")], + bot_id: Annotated[StrictStr, Field(description="The Slack bot ID")], + q: Annotated[Optional[StrictStr], Field(description="Search query to filter channels by name")] = None, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> RESTResponseType: + """Search Slack Workspace Channels + + Searches channels in the Slack workspace connected to this bot. Requires the bot to be connected via OAuth. + + :param organisation: The organisation ID (required) + :type organisation: str + :param bot_id: The Slack bot ID (required) + :type bot_id: str + :param q: Search query to filter channels by name + :type q: str + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._search_slack_workspace_channels_serialize( + organisation=organisation, + bot_id=bot_id, + q=q, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "SearchSlackWorkspaceChannels200Response", + '403': None, + '404': None, + '500': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _search_slack_workspace_channels_serialize( + self, + organisation, + bot_id, + q, + _request_auth, + _content_type, + _headers, + _host_index, + ) -> RequestSerialized: + + _host = None + + _collection_formats: Dict[str, str] = { + } + + _path_params: Dict[str, str] = {} + _query_params: List[Tuple[str, str]] = [] + _header_params: Dict[str, Optional[str]] = _headers or {} + _form_params: List[Tuple[str, str]] = [] + _files: Dict[ + str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] + ] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + if organisation is not None: + _path_params['organisation'] = organisation + if bot_id is not None: + _path_params['botId'] = bot_id + # process the query parameters + if q is not None: + + _query_params.append(('q', q)) + + # process the header parameters + # process the form parameters + # process the body parameter + + + # set the HTTP header `Accept` + if 'Accept' not in _header_params: + _header_params['Accept'] = self.api_client.select_header_accept( + [ + 'application/json' + ] + ) + + + # authentication setting + _auth_settings: List[str] = [ + 'BearerAuth' + ] + + return self.api_client.param_serialize( + method='GET', + resource_path='/api/v3/organizations/{organisation}/ai/slack-bots/{botId}/workspace/channels', + path_params=_path_params, + query_params=_query_params, + header_params=_header_params, + body=_body_params, + post_params=_form_params, + files=_files, + auth_settings=_auth_settings, + collection_formats=_collection_formats, + _host=_host, + _request_auth=_request_auth + ) + + + + + @validate_call + def search_slack_workspace_users( + self, + organisation: Annotated[StrictStr, Field(description="The organisation ID")], + bot_id: Annotated[StrictStr, Field(description="The Slack bot ID")], + q: Annotated[Optional[StrictStr], Field(description="Search query to filter users by name")] = None, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> SearchSlackWorkspaceUsers200Response: + """Search Slack Workspace Users + + Searches users in the Slack workspace connected to this bot. Requires the bot to be connected via OAuth. + + :param organisation: The organisation ID (required) + :type organisation: str + :param bot_id: The Slack bot ID (required) + :type bot_id: str + :param q: Search query to filter users by name + :type q: str + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._search_slack_workspace_users_serialize( + organisation=organisation, + bot_id=bot_id, + q=q, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "SearchSlackWorkspaceUsers200Response", + '403': None, + '404': None, + '500': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ).data + + + @validate_call + def search_slack_workspace_users_with_http_info( + self, + organisation: Annotated[StrictStr, Field(description="The organisation ID")], + bot_id: Annotated[StrictStr, Field(description="The Slack bot ID")], + q: Annotated[Optional[StrictStr], Field(description="Search query to filter users by name")] = None, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> ApiResponse[SearchSlackWorkspaceUsers200Response]: + """Search Slack Workspace Users + + Searches users in the Slack workspace connected to this bot. Requires the bot to be connected via OAuth. + + :param organisation: The organisation ID (required) + :type organisation: str + :param bot_id: The Slack bot ID (required) + :type bot_id: str + :param q: Search query to filter users by name + :type q: str + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._search_slack_workspace_users_serialize( + organisation=organisation, + bot_id=bot_id, + q=q, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "SearchSlackWorkspaceUsers200Response", + '403': None, + '404': None, + '500': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ) + + + @validate_call + def search_slack_workspace_users_without_preload_content( + self, + organisation: Annotated[StrictStr, Field(description="The organisation ID")], + bot_id: Annotated[StrictStr, Field(description="The Slack bot ID")], + q: Annotated[Optional[StrictStr], Field(description="Search query to filter users by name")] = None, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> RESTResponseType: + """Search Slack Workspace Users + + Searches users in the Slack workspace connected to this bot. Requires the bot to be connected via OAuth. + + :param organisation: The organisation ID (required) + :type organisation: str + :param bot_id: The Slack bot ID (required) + :type bot_id: str + :param q: Search query to filter users by name + :type q: str + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._search_slack_workspace_users_serialize( + organisation=organisation, + bot_id=bot_id, + q=q, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "SearchSlackWorkspaceUsers200Response", + '403': None, + '404': None, + '500': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _search_slack_workspace_users_serialize( + self, + organisation, + bot_id, + q, + _request_auth, + _content_type, + _headers, + _host_index, + ) -> RequestSerialized: + + _host = None + + _collection_formats: Dict[str, str] = { + } + + _path_params: Dict[str, str] = {} + _query_params: List[Tuple[str, str]] = [] + _header_params: Dict[str, Optional[str]] = _headers or {} + _form_params: List[Tuple[str, str]] = [] + _files: Dict[ + str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] + ] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + if organisation is not None: + _path_params['organisation'] = organisation + if bot_id is not None: + _path_params['botId'] = bot_id + # process the query parameters + if q is not None: + + _query_params.append(('q', q)) + + # process the header parameters + # process the form parameters + # process the body parameter + + + # set the HTTP header `Accept` + if 'Accept' not in _header_params: + _header_params['Accept'] = self.api_client.select_header_accept( + [ + 'application/json' + ] + ) + + + # authentication setting + _auth_settings: List[str] = [ + 'BearerAuth' + ] + + return self.api_client.param_serialize( + method='GET', + resource_path='/api/v3/organizations/{organisation}/ai/slack-bots/{botId}/workspace/users', + path_params=_path_params, + query_params=_query_params, + header_params=_header_params, + body=_body_params, + post_params=_form_params, + files=_files, + auth_settings=_auth_settings, + collection_formats=_collection_formats, + _host=_host, + _request_auth=_request_auth + ) + + + + + @validate_call + def update_slack_bot( + self, + organisation: Annotated[StrictStr, Field(description="The organisation ID")], + bot_id: Annotated[StrictStr, Field(description="The Slack bot ID")], + update_slack_bot_request: UpdateSlackBotRequest, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> CreateSlackBot201Response: + """Update Slack Bot + + Updates a Slack bot's configuration and/or its backing agent. Only provided fields are updated. + + :param organisation: The organisation ID (required) + :type organisation: str + :param bot_id: The Slack bot ID (required) + :type bot_id: str + :param update_slack_bot_request: (required) + :type update_slack_bot_request: UpdateSlackBotRequest + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._update_slack_bot_serialize( + organisation=organisation, + bot_id=bot_id, + update_slack_bot_request=update_slack_bot_request, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "CreateSlackBot201Response", + '400': None, + '403': None, + '404': None, + '500': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ).data + + + @validate_call + def update_slack_bot_with_http_info( + self, + organisation: Annotated[StrictStr, Field(description="The organisation ID")], + bot_id: Annotated[StrictStr, Field(description="The Slack bot ID")], + update_slack_bot_request: UpdateSlackBotRequest, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> ApiResponse[CreateSlackBot201Response]: + """Update Slack Bot + + Updates a Slack bot's configuration and/or its backing agent. Only provided fields are updated. + + :param organisation: The organisation ID (required) + :type organisation: str + :param bot_id: The Slack bot ID (required) + :type bot_id: str + :param update_slack_bot_request: (required) + :type update_slack_bot_request: UpdateSlackBotRequest + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._update_slack_bot_serialize( + organisation=organisation, + bot_id=bot_id, + update_slack_bot_request=update_slack_bot_request, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "CreateSlackBot201Response", + '400': None, + '403': None, + '404': None, + '500': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ) + + + @validate_call + def update_slack_bot_without_preload_content( + self, + organisation: Annotated[StrictStr, Field(description="The organisation ID")], + bot_id: Annotated[StrictStr, Field(description="The Slack bot ID")], + update_slack_bot_request: UpdateSlackBotRequest, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> RESTResponseType: + """Update Slack Bot + + Updates a Slack bot's configuration and/or its backing agent. Only provided fields are updated. + + :param organisation: The organisation ID (required) + :type organisation: str + :param bot_id: The Slack bot ID (required) + :type bot_id: str + :param update_slack_bot_request: (required) + :type update_slack_bot_request: UpdateSlackBotRequest + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._update_slack_bot_serialize( + organisation=organisation, + bot_id=bot_id, + update_slack_bot_request=update_slack_bot_request, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "CreateSlackBot201Response", + '400': None, + '403': None, + '404': None, + '500': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _update_slack_bot_serialize( + self, + organisation, + bot_id, + update_slack_bot_request, + _request_auth, + _content_type, + _headers, + _host_index, + ) -> RequestSerialized: + + _host = None + + _collection_formats: Dict[str, str] = { + } + + _path_params: Dict[str, str] = {} + _query_params: List[Tuple[str, str]] = [] + _header_params: Dict[str, Optional[str]] = _headers or {} + _form_params: List[Tuple[str, str]] = [] + _files: Dict[ + str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] + ] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + if organisation is not None: + _path_params['organisation'] = organisation + if bot_id is not None: + _path_params['botId'] = bot_id + # process the query parameters + # process the header parameters + # process the form parameters + # process the body parameter + if update_slack_bot_request is not None: + _body_params = update_slack_bot_request + + + # set the HTTP header `Accept` + if 'Accept' not in _header_params: + _header_params['Accept'] = self.api_client.select_header_accept( + [ + 'application/json' + ] + ) + + # set the HTTP header `Content-Type` + if _content_type: + _header_params['Content-Type'] = _content_type + else: + _default_content_type = ( + self.api_client.select_header_content_type( + [ + 'application/json' + ] + ) + ) + if _default_content_type is not None: + _header_params['Content-Type'] = _default_content_type + + # authentication setting + _auth_settings: List[str] = [ + 'BearerAuth' + ] + + return self.api_client.param_serialize( + method='PUT', + resource_path='/api/v3/organizations/{organisation}/ai/slack-bots/{botId}', + path_params=_path_params, + query_params=_query_params, + header_params=_header_params, + body=_body_params, + post_params=_form_params, + files=_files, + auth_settings=_auth_settings, + collection_formats=_collection_formats, + _host=_host, + _request_auth=_request_auth + ) + + diff --git a/quantcdn/api/ai_task_management_api.py b/quantcdn/api/ai_task_management_api.py index e689e489..51cc540d 100644 --- a/quantcdn/api/ai_task_management_api.py +++ b/quantcdn/api/ai_task_management_api.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/api/ai_tools_api.py b/quantcdn/api/ai_tools_api.py index 547341a2..e0c2ac34 100644 --- a/quantcdn/api/ai_tools_api.py +++ b/quantcdn/api/ai_tools_api.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. @@ -61,9 +61,9 @@ def get_ai_orchestration_status( _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, ) -> GetAIOrchestrationStatus200Response: - """Get Orchestration Status + """Get Tool Orchestration Status (Async Tool Polling) - Retrieves the status and synthesized result of a multi-tool orchestration. * * **Orchestration Pattern:** * When the AI requests multiple async tools simultaneously, an orchestration is created * to track all tool executions and synthesize their results into a single coherent response. * * **Flow:** * 1. AI requests multiple async tools (e.g., image generation + web search) * 2. Chat API creates orchestration and returns orchestrationId * 3. Tool Orchestrator Lambda polls all async tools * 4. When all tools complete, Orchestrator synthesizes results using AI * 5. Client polls this endpoint and receives final synthesized response * * **Status Values:** * - pending: Orchestration created, tools not yet started * - polling: Orchestrator is actively polling async tools * - synthesizing: All tools complete, AI is synthesizing response * - complete: Orchestration finished, synthesizedResponse available * - failed: Orchestration failed, error available * * **Polling Recommendations:** * - Poll every 2 seconds * - Maximum poll time: 10 minutes * - Orchestrator handles tool polling internally * * **Benefits over individual polling:** * - Single poll endpoint for multiple async tools * - AI synthesizes all results into coherent response * - Answers the original user question, not just tool summaries + Retrieves the status and synthesized result of a multi-tool async execution orchestration. * * **Note:** This endpoint is for async tool execution polling (`/tools/orchestrations`). * For durable batch processing orchestrations, see `GET /orchestrations` endpoints. * * **Orchestration Pattern:** * When the AI requests multiple async tools simultaneously, an orchestration is created * to track all tool executions and synthesize their results into a single coherent response. * * **Flow:** * 1. AI requests multiple async tools (e.g., image generation + web search) * 2. Chat API creates orchestration and returns orchestrationId * 3. Tool Orchestrator Lambda polls all async tools * 4. When all tools complete, Orchestrator synthesizes results using AI * 5. Client polls this endpoint and receives final synthesized response * * **Status Values:** * - pending: Orchestration created, tools not yet started * - polling: Orchestrator is actively polling async tools * - synthesizing: All tools complete, AI is synthesizing response * - complete: Orchestration finished, synthesizedResponse available * - failed: Orchestration failed, error available * * **Polling Recommendations:** * - Poll every 2 seconds * - Maximum poll time: 10 minutes * - Orchestrator handles tool polling internally * * **Benefits over individual polling:** * - Single poll endpoint for multiple async tools * - AI synthesizes all results into coherent response * - Answers the original user question, not just tool summaries :param organisation: The organisation ID (required) :type organisation: str @@ -135,9 +135,9 @@ def get_ai_orchestration_status_with_http_info( _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, ) -> ApiResponse[GetAIOrchestrationStatus200Response]: - """Get Orchestration Status + """Get Tool Orchestration Status (Async Tool Polling) - Retrieves the status and synthesized result of a multi-tool orchestration. * * **Orchestration Pattern:** * When the AI requests multiple async tools simultaneously, an orchestration is created * to track all tool executions and synthesize their results into a single coherent response. * * **Flow:** * 1. AI requests multiple async tools (e.g., image generation + web search) * 2. Chat API creates orchestration and returns orchestrationId * 3. Tool Orchestrator Lambda polls all async tools * 4. When all tools complete, Orchestrator synthesizes results using AI * 5. Client polls this endpoint and receives final synthesized response * * **Status Values:** * - pending: Orchestration created, tools not yet started * - polling: Orchestrator is actively polling async tools * - synthesizing: All tools complete, AI is synthesizing response * - complete: Orchestration finished, synthesizedResponse available * - failed: Orchestration failed, error available * * **Polling Recommendations:** * - Poll every 2 seconds * - Maximum poll time: 10 minutes * - Orchestrator handles tool polling internally * * **Benefits over individual polling:** * - Single poll endpoint for multiple async tools * - AI synthesizes all results into coherent response * - Answers the original user question, not just tool summaries + Retrieves the status and synthesized result of a multi-tool async execution orchestration. * * **Note:** This endpoint is for async tool execution polling (`/tools/orchestrations`). * For durable batch processing orchestrations, see `GET /orchestrations` endpoints. * * **Orchestration Pattern:** * When the AI requests multiple async tools simultaneously, an orchestration is created * to track all tool executions and synthesize their results into a single coherent response. * * **Flow:** * 1. AI requests multiple async tools (e.g., image generation + web search) * 2. Chat API creates orchestration and returns orchestrationId * 3. Tool Orchestrator Lambda polls all async tools * 4. When all tools complete, Orchestrator synthesizes results using AI * 5. Client polls this endpoint and receives final synthesized response * * **Status Values:** * - pending: Orchestration created, tools not yet started * - polling: Orchestrator is actively polling async tools * - synthesizing: All tools complete, AI is synthesizing response * - complete: Orchestration finished, synthesizedResponse available * - failed: Orchestration failed, error available * * **Polling Recommendations:** * - Poll every 2 seconds * - Maximum poll time: 10 minutes * - Orchestrator handles tool polling internally * * **Benefits over individual polling:** * - Single poll endpoint for multiple async tools * - AI synthesizes all results into coherent response * - Answers the original user question, not just tool summaries :param organisation: The organisation ID (required) :type organisation: str @@ -209,9 +209,9 @@ def get_ai_orchestration_status_without_preload_content( _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, ) -> RESTResponseType: - """Get Orchestration Status + """Get Tool Orchestration Status (Async Tool Polling) - Retrieves the status and synthesized result of a multi-tool orchestration. * * **Orchestration Pattern:** * When the AI requests multiple async tools simultaneously, an orchestration is created * to track all tool executions and synthesize their results into a single coherent response. * * **Flow:** * 1. AI requests multiple async tools (e.g., image generation + web search) * 2. Chat API creates orchestration and returns orchestrationId * 3. Tool Orchestrator Lambda polls all async tools * 4. When all tools complete, Orchestrator synthesizes results using AI * 5. Client polls this endpoint and receives final synthesized response * * **Status Values:** * - pending: Orchestration created, tools not yet started * - polling: Orchestrator is actively polling async tools * - synthesizing: All tools complete, AI is synthesizing response * - complete: Orchestration finished, synthesizedResponse available * - failed: Orchestration failed, error available * * **Polling Recommendations:** * - Poll every 2 seconds * - Maximum poll time: 10 minutes * - Orchestrator handles tool polling internally * * **Benefits over individual polling:** * - Single poll endpoint for multiple async tools * - AI synthesizes all results into coherent response * - Answers the original user question, not just tool summaries + Retrieves the status and synthesized result of a multi-tool async execution orchestration. * * **Note:** This endpoint is for async tool execution polling (`/tools/orchestrations`). * For durable batch processing orchestrations, see `GET /orchestrations` endpoints. * * **Orchestration Pattern:** * When the AI requests multiple async tools simultaneously, an orchestration is created * to track all tool executions and synthesize their results into a single coherent response. * * **Flow:** * 1. AI requests multiple async tools (e.g., image generation + web search) * 2. Chat API creates orchestration and returns orchestrationId * 3. Tool Orchestrator Lambda polls all async tools * 4. When all tools complete, Orchestrator synthesizes results using AI * 5. Client polls this endpoint and receives final synthesized response * * **Status Values:** * - pending: Orchestration created, tools not yet started * - polling: Orchestrator is actively polling async tools * - synthesizing: All tools complete, AI is synthesizing response * - complete: Orchestration finished, synthesizedResponse available * - failed: Orchestration failed, error available * * **Polling Recommendations:** * - Poll every 2 seconds * - Maximum poll time: 10 minutes * - Orchestrator handles tool polling internally * * **Benefits over individual polling:** * - Single poll endpoint for multiple async tools * - AI synthesizes all results into coherent response * - Answers the original user question, not just tool summaries :param organisation: The organisation ID (required) :type organisation: str diff --git a/quantcdn/api/ai_monitoring_api.py b/quantcdn/api/ai_usage_api.py similarity index 85% rename from quantcdn/api/ai_monitoring_api.py rename to quantcdn/api/ai_usage_api.py index 25dd5032..a7e02c22 100644 --- a/quantcdn/api/ai_monitoring_api.py +++ b/quantcdn/api/ai_usage_api.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. @@ -17,16 +17,15 @@ from typing_extensions import Annotated from pydantic import Field, StrictStr -from typing import Optional from typing_extensions import Annotated -from quantcdn.models.get_ai_usage_stats200_response import GetAIUsageStats200Response +from quantcdn.models.get_my_usage200_response import GetMyUsage200Response from quantcdn.api_client import ApiClient, RequestSerialized from quantcdn.api_response import ApiResponse from quantcdn.rest import RESTResponseType -class AIMonitoringApi: +class AIUsageApi: """NOTE: This class is auto generated by OpenAPI Generator Ref: https://openapi-generator.tech @@ -40,10 +39,9 @@ def __init__(self, api_client=None) -> None: @validate_call - def get_ai_usage_stats( + def get_my_usage( self, organisation: Annotated[StrictStr, Field(description="The organisation ID")], - month: Annotated[Optional[StrictStr], Field(description="Month to retrieve statistics for (YYYY-MM format)")] = None, _request_timeout: Union[ None, Annotated[StrictFloat, Field(gt=0)], @@ -56,14 +54,12 @@ def get_ai_usage_stats( _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> GetAIUsageStats200Response: - """Get AI usage statistics + ) -> GetMyUsage200Response: + """Get AI usage summary for the authenticated user :param organisation: The organisation ID (required) :type organisation: str - :param month: Month to retrieve statistics for (YYYY-MM format) - :type month: str :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of @@ -86,9 +82,8 @@ def get_ai_usage_stats( :return: Returns the result object. """ # noqa: E501 - _param = self._get_ai_usage_stats_serialize( + _param = self._get_my_usage_serialize( organisation=organisation, - month=month, _request_auth=_request_auth, _content_type=_content_type, _headers=_headers, @@ -96,7 +91,8 @@ def get_ai_usage_stats( ) _response_types_map: Dict[str, Optional[str]] = { - '200': "GetAIUsageStats200Response", + '200': "GetMyUsage200Response", + '401': None, '500': None, } response_data = self.api_client.call_api( @@ -111,10 +107,9 @@ def get_ai_usage_stats( @validate_call - def get_ai_usage_stats_with_http_info( + def get_my_usage_with_http_info( self, organisation: Annotated[StrictStr, Field(description="The organisation ID")], - month: Annotated[Optional[StrictStr], Field(description="Month to retrieve statistics for (YYYY-MM format)")] = None, _request_timeout: Union[ None, Annotated[StrictFloat, Field(gt=0)], @@ -127,14 +122,12 @@ def get_ai_usage_stats_with_http_info( _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> ApiResponse[GetAIUsageStats200Response]: - """Get AI usage statistics + ) -> ApiResponse[GetMyUsage200Response]: + """Get AI usage summary for the authenticated user :param organisation: The organisation ID (required) :type organisation: str - :param month: Month to retrieve statistics for (YYYY-MM format) - :type month: str :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of @@ -157,9 +150,8 @@ def get_ai_usage_stats_with_http_info( :return: Returns the result object. """ # noqa: E501 - _param = self._get_ai_usage_stats_serialize( + _param = self._get_my_usage_serialize( organisation=organisation, - month=month, _request_auth=_request_auth, _content_type=_content_type, _headers=_headers, @@ -167,7 +159,8 @@ def get_ai_usage_stats_with_http_info( ) _response_types_map: Dict[str, Optional[str]] = { - '200': "GetAIUsageStats200Response", + '200': "GetMyUsage200Response", + '401': None, '500': None, } response_data = self.api_client.call_api( @@ -182,10 +175,9 @@ def get_ai_usage_stats_with_http_info( @validate_call - def get_ai_usage_stats_without_preload_content( + def get_my_usage_without_preload_content( self, organisation: Annotated[StrictStr, Field(description="The organisation ID")], - month: Annotated[Optional[StrictStr], Field(description="Month to retrieve statistics for (YYYY-MM format)")] = None, _request_timeout: Union[ None, Annotated[StrictFloat, Field(gt=0)], @@ -199,13 +191,11 @@ def get_ai_usage_stats_without_preload_content( _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, ) -> RESTResponseType: - """Get AI usage statistics + """Get AI usage summary for the authenticated user :param organisation: The organisation ID (required) :type organisation: str - :param month: Month to retrieve statistics for (YYYY-MM format) - :type month: str :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of @@ -228,9 +218,8 @@ def get_ai_usage_stats_without_preload_content( :return: Returns the result object. """ # noqa: E501 - _param = self._get_ai_usage_stats_serialize( + _param = self._get_my_usage_serialize( organisation=organisation, - month=month, _request_auth=_request_auth, _content_type=_content_type, _headers=_headers, @@ -238,7 +227,8 @@ def get_ai_usage_stats_without_preload_content( ) _response_types_map: Dict[str, Optional[str]] = { - '200': "GetAIUsageStats200Response", + '200': "GetMyUsage200Response", + '401': None, '500': None, } response_data = self.api_client.call_api( @@ -248,10 +238,9 @@ def get_ai_usage_stats_without_preload_content( return response_data.response - def _get_ai_usage_stats_serialize( + def _get_my_usage_serialize( self, organisation, - month, _request_auth, _content_type, _headers, @@ -276,10 +265,6 @@ def _get_ai_usage_stats_serialize( if organisation is not None: _path_params['organisation'] = organisation # process the query parameters - if month is not None: - - _query_params.append(('month', month)) - # process the header parameters # process the form parameters # process the body parameter @@ -301,7 +286,7 @@ def _get_ai_usage_stats_serialize( return self.api_client.param_serialize( method='GET', - resource_path='/api/v3/organizations/{organisation}/ai/usage', + resource_path='/api/v3/organizations/{organisation}/ai/usage/me', path_params=_path_params, query_params=_query_params, header_params=_header_params, diff --git a/quantcdn/api/ai_vector_database_api.py b/quantcdn/api/ai_vector_database_api.py index ef8c7dae..baa6a342 100644 --- a/quantcdn/api/ai_vector_database_api.py +++ b/quantcdn/api/ai_vector_database_api.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. @@ -16,11 +16,14 @@ from typing import Any, Dict, List, Optional, Tuple, Union from typing_extensions import Annotated -from pydantic import Field, StrictStr +from pydantic import Field, StrictInt, StrictStr +from typing import Optional from typing_extensions import Annotated from quantcdn.models.create_vector_collection201_response import CreateVectorCollection201Response from quantcdn.models.create_vector_collection_request import CreateVectorCollectionRequest -from quantcdn.models.delete_vector_collection200_response import DeleteVectorCollection200Response +from quantcdn.models.delete_skill_collection200_response import DeleteSkillCollection200Response +from quantcdn.models.delete_vector_documents200_response import DeleteVectorDocuments200Response +from quantcdn.models.delete_vector_documents_request import DeleteVectorDocumentsRequest from quantcdn.models.get_vector_collection200_response import GetVectorCollection200Response from quantcdn.models.list_vector_collections200_response import ListVectorCollections200Response from quantcdn.models.query_vector_collection200_response import QueryVectorCollection200Response @@ -364,7 +367,7 @@ def delete_vector_collection( _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> DeleteVectorCollection200Response: + ) -> DeleteSkillCollection200Response: """Delete Collection Deletes a vector database collection and all its documents. This action cannot be undone. @@ -405,7 +408,7 @@ def delete_vector_collection( ) _response_types_map: Dict[str, Optional[str]] = { - '200': "DeleteVectorCollection200Response", + '200': "DeleteSkillCollection200Response", '403': None, '404': None, '500': None, @@ -438,7 +441,7 @@ def delete_vector_collection_with_http_info( _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> ApiResponse[DeleteVectorCollection200Response]: + ) -> ApiResponse[DeleteSkillCollection200Response]: """Delete Collection Deletes a vector database collection and all its documents. This action cannot be undone. @@ -479,7 +482,7 @@ def delete_vector_collection_with_http_info( ) _response_types_map: Dict[str, Optional[str]] = { - '200': "DeleteVectorCollection200Response", + '200': "DeleteSkillCollection200Response", '403': None, '404': None, '500': None, @@ -553,7 +556,7 @@ def delete_vector_collection_without_preload_content( ) _response_types_map: Dict[str, Optional[str]] = { - '200': "DeleteVectorCollection200Response", + '200': "DeleteSkillCollection200Response", '403': None, '404': None, '500': None, @@ -632,6 +635,322 @@ def _delete_vector_collection_serialize( + @validate_call + def delete_vector_documents( + self, + organisation: Annotated[StrictStr, Field(description="Organisation machine name")], + collection_id: Annotated[StrictStr, Field(description="Collection UUID")], + delete_vector_documents_request: DeleteVectorDocumentsRequest, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> DeleteVectorDocuments200Response: + """Delete Documents from Collection + + Delete documents from a collection. Supports three deletion modes: * * 1. **Purge All** - Set `purgeAll: true` to delete ALL documents in the collection * * 2. **By Document IDs** - Provide `documentIds` array with specific document UUIDs * * 3. **By Metadata** - Provide `metadata` object with `field` and `values` to delete documents where the metadata field matches any of the values * * **Drupal Integration:** * When using with Drupal AI Search, use metadata deletion with: * - `field: 'drupal_entity_id'` to delete all chunks for specific entities * - `field: 'drupal_long_id'` to delete specific chunks + + :param organisation: Organisation machine name (required) + :type organisation: str + :param collection_id: Collection UUID (required) + :type collection_id: str + :param delete_vector_documents_request: (required) + :type delete_vector_documents_request: DeleteVectorDocumentsRequest + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._delete_vector_documents_serialize( + organisation=organisation, + collection_id=collection_id, + delete_vector_documents_request=delete_vector_documents_request, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "DeleteVectorDocuments200Response", + '400': None, + '403': None, + '404': None, + '500': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ).data + + + @validate_call + def delete_vector_documents_with_http_info( + self, + organisation: Annotated[StrictStr, Field(description="Organisation machine name")], + collection_id: Annotated[StrictStr, Field(description="Collection UUID")], + delete_vector_documents_request: DeleteVectorDocumentsRequest, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> ApiResponse[DeleteVectorDocuments200Response]: + """Delete Documents from Collection + + Delete documents from a collection. Supports three deletion modes: * * 1. **Purge All** - Set `purgeAll: true` to delete ALL documents in the collection * * 2. **By Document IDs** - Provide `documentIds` array with specific document UUIDs * * 3. **By Metadata** - Provide `metadata` object with `field` and `values` to delete documents where the metadata field matches any of the values * * **Drupal Integration:** * When using with Drupal AI Search, use metadata deletion with: * - `field: 'drupal_entity_id'` to delete all chunks for specific entities * - `field: 'drupal_long_id'` to delete specific chunks + + :param organisation: Organisation machine name (required) + :type organisation: str + :param collection_id: Collection UUID (required) + :type collection_id: str + :param delete_vector_documents_request: (required) + :type delete_vector_documents_request: DeleteVectorDocumentsRequest + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._delete_vector_documents_serialize( + organisation=organisation, + collection_id=collection_id, + delete_vector_documents_request=delete_vector_documents_request, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "DeleteVectorDocuments200Response", + '400': None, + '403': None, + '404': None, + '500': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ) + + + @validate_call + def delete_vector_documents_without_preload_content( + self, + organisation: Annotated[StrictStr, Field(description="Organisation machine name")], + collection_id: Annotated[StrictStr, Field(description="Collection UUID")], + delete_vector_documents_request: DeleteVectorDocumentsRequest, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> RESTResponseType: + """Delete Documents from Collection + + Delete documents from a collection. Supports three deletion modes: * * 1. **Purge All** - Set `purgeAll: true` to delete ALL documents in the collection * * 2. **By Document IDs** - Provide `documentIds` array with specific document UUIDs * * 3. **By Metadata** - Provide `metadata` object with `field` and `values` to delete documents where the metadata field matches any of the values * * **Drupal Integration:** * When using with Drupal AI Search, use metadata deletion with: * - `field: 'drupal_entity_id'` to delete all chunks for specific entities * - `field: 'drupal_long_id'` to delete specific chunks + + :param organisation: Organisation machine name (required) + :type organisation: str + :param collection_id: Collection UUID (required) + :type collection_id: str + :param delete_vector_documents_request: (required) + :type delete_vector_documents_request: DeleteVectorDocumentsRequest + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._delete_vector_documents_serialize( + organisation=organisation, + collection_id=collection_id, + delete_vector_documents_request=delete_vector_documents_request, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "DeleteVectorDocuments200Response", + '400': None, + '403': None, + '404': None, + '500': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _delete_vector_documents_serialize( + self, + organisation, + collection_id, + delete_vector_documents_request, + _request_auth, + _content_type, + _headers, + _host_index, + ) -> RequestSerialized: + + _host = None + + _collection_formats: Dict[str, str] = { + } + + _path_params: Dict[str, str] = {} + _query_params: List[Tuple[str, str]] = [] + _header_params: Dict[str, Optional[str]] = _headers or {} + _form_params: List[Tuple[str, str]] = [] + _files: Dict[ + str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] + ] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + if organisation is not None: + _path_params['organisation'] = organisation + if collection_id is not None: + _path_params['collectionId'] = collection_id + # process the query parameters + # process the header parameters + # process the form parameters + # process the body parameter + if delete_vector_documents_request is not None: + _body_params = delete_vector_documents_request + + + # set the HTTP header `Accept` + if 'Accept' not in _header_params: + _header_params['Accept'] = self.api_client.select_header_accept( + [ + 'application/json' + ] + ) + + # set the HTTP header `Content-Type` + if _content_type: + _header_params['Content-Type'] = _content_type + else: + _default_content_type = ( + self.api_client.select_header_content_type( + [ + 'application/json' + ] + ) + ) + if _default_content_type is not None: + _header_params['Content-Type'] = _default_content_type + + # authentication setting + _auth_settings: List[str] = [ + 'BearerAuth' + ] + + return self.api_client.param_serialize( + method='DELETE', + resource_path='/api/v3/organizations/{organisation}/ai/vector-db/collections/{collectionId}/documents', + path_params=_path_params, + query_params=_query_params, + header_params=_header_params, + body=_body_params, + post_params=_form_params, + files=_files, + auth_settings=_auth_settings, + collection_formats=_collection_formats, + _host=_host, + _request_auth=_request_auth + ) + + + + @validate_call def get_vector_collection( self, @@ -1184,6 +1503,335 @@ def _list_vector_collections_serialize( + @validate_call + def list_vector_documents( + self, + organisation: StrictStr, + collection_id: StrictStr, + key: Annotated[Optional[StrictStr], Field(description="Filter by document key")] = None, + limit: Optional[Annotated[int, Field(le=100, strict=True)]] = None, + offset: Optional[StrictInt] = None, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> None: + """List Documents in Collection + + Lists documents in a collection with pagination. Supports filtering by document key. + + :param organisation: (required) + :type organisation: str + :param collection_id: (required) + :type collection_id: str + :param key: Filter by document key + :type key: str + :param limit: + :type limit: int + :param offset: + :type offset: int + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._list_vector_documents_serialize( + organisation=organisation, + collection_id=collection_id, + key=key, + limit=limit, + offset=offset, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': None, + '403': None, + '404': None, + '500': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ).data + + + @validate_call + def list_vector_documents_with_http_info( + self, + organisation: StrictStr, + collection_id: StrictStr, + key: Annotated[Optional[StrictStr], Field(description="Filter by document key")] = None, + limit: Optional[Annotated[int, Field(le=100, strict=True)]] = None, + offset: Optional[StrictInt] = None, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> ApiResponse[None]: + """List Documents in Collection + + Lists documents in a collection with pagination. Supports filtering by document key. + + :param organisation: (required) + :type organisation: str + :param collection_id: (required) + :type collection_id: str + :param key: Filter by document key + :type key: str + :param limit: + :type limit: int + :param offset: + :type offset: int + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._list_vector_documents_serialize( + organisation=organisation, + collection_id=collection_id, + key=key, + limit=limit, + offset=offset, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': None, + '403': None, + '404': None, + '500': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ) + + + @validate_call + def list_vector_documents_without_preload_content( + self, + organisation: StrictStr, + collection_id: StrictStr, + key: Annotated[Optional[StrictStr], Field(description="Filter by document key")] = None, + limit: Optional[Annotated[int, Field(le=100, strict=True)]] = None, + offset: Optional[StrictInt] = None, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> RESTResponseType: + """List Documents in Collection + + Lists documents in a collection with pagination. Supports filtering by document key. + + :param organisation: (required) + :type organisation: str + :param collection_id: (required) + :type collection_id: str + :param key: Filter by document key + :type key: str + :param limit: + :type limit: int + :param offset: + :type offset: int + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._list_vector_documents_serialize( + organisation=organisation, + collection_id=collection_id, + key=key, + limit=limit, + offset=offset, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': None, + '403': None, + '404': None, + '500': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _list_vector_documents_serialize( + self, + organisation, + collection_id, + key, + limit, + offset, + _request_auth, + _content_type, + _headers, + _host_index, + ) -> RequestSerialized: + + _host = None + + _collection_formats: Dict[str, str] = { + } + + _path_params: Dict[str, str] = {} + _query_params: List[Tuple[str, str]] = [] + _header_params: Dict[str, Optional[str]] = _headers or {} + _form_params: List[Tuple[str, str]] = [] + _files: Dict[ + str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] + ] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + if organisation is not None: + _path_params['organisation'] = organisation + if collection_id is not None: + _path_params['collectionId'] = collection_id + # process the query parameters + if key is not None: + + _query_params.append(('key', key)) + + if limit is not None: + + _query_params.append(('limit', limit)) + + if offset is not None: + + _query_params.append(('offset', offset)) + + # process the header parameters + # process the form parameters + # process the body parameter + + + + + # authentication setting + _auth_settings: List[str] = [ + 'BearerAuth' + ] + + return self.api_client.param_serialize( + method='GET', + resource_path='/api/v3/organizations/{organisation}/ai/vector-db/collections/{collectionId}/documents', + path_params=_path_params, + query_params=_query_params, + header_params=_header_params, + body=_body_params, + post_params=_form_params, + files=_files, + auth_settings=_auth_settings, + collection_formats=_collection_formats, + _host=_host, + _request_auth=_request_auth + ) + + + + @validate_call def query_vector_collection( self, diff --git a/quantcdn/api/applications_api.py b/quantcdn/api/applications_api.py index 3229a677..39761631 100644 --- a/quantcdn/api/applications_api.py +++ b/quantcdn/api/applications_api.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/api/backup_management_api.py b/quantcdn/api/backup_management_api.py index 400ce571..829c8cba 100644 --- a/quantcdn/api/backup_management_api.py +++ b/quantcdn/api/backup_management_api.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/api/cdn_metrics_api.py b/quantcdn/api/cdn_metrics_api.py new file mode 100644 index 00000000..8320608b --- /dev/null +++ b/quantcdn/api/cdn_metrics_api.py @@ -0,0 +1,1041 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + +import warnings +from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt +from typing import Any, Dict, List, Optional, Tuple, Union +from typing_extensions import Annotated + +from pydantic import Field, StrictStr, field_validator +from typing import List, Optional +from typing_extensions import Annotated +from quantcdn.models.v2_metrics_response import V2MetricsResponse + +from quantcdn.api_client import ApiClient, RequestSerialized +from quantcdn.api_response import ApiResponse +from quantcdn.rest import RESTResponseType + + +class CDNMetricsApi: + """NOTE: This class is auto generated by OpenAPI Generator + Ref: https://openapi-generator.tech + + Do not edit the class manually. + """ + + def __init__(self, api_client=None) -> None: + if api_client is None: + api_client = ApiClient.get_default() + self.api_client = api_client + + + @validate_call + def get_daily_metrics( + self, + organization: Annotated[StrictStr, Field(description="Organization identifier")], + project: Annotated[StrictStr, Field(description="Project identifier")], + domain: Annotated[Optional[StrictStr], Field(description="Filter by domain ID or domain name")] = None, + metrics: Annotated[Optional[List[StrictStr]], Field(description="Metrics to return (default: hits, bytes). Use the /metrics/available endpoint to list all metrics by category.")] = None, + timestamp_format: Annotated[Optional[StrictStr], Field(description="Timestamp format in response")] = None, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> V2MetricsResponse: + """Get daily metrics + + Returns the last 30 days of daily metrics data + + :param organization: Organization identifier (required) + :type organization: str + :param project: Project identifier (required) + :type project: str + :param domain: Filter by domain ID or domain name + :type domain: str + :param metrics: Metrics to return (default: hits, bytes). Use the /metrics/available endpoint to list all metrics by category. + :type metrics: List[str] + :param timestamp_format: Timestamp format in response + :type timestamp_format: str + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._get_daily_metrics_serialize( + organization=organization, + project=project, + domain=domain, + metrics=metrics, + timestamp_format=timestamp_format, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "V2MetricsResponse", + '400': None, + '404': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ).data + + + @validate_call + def get_daily_metrics_with_http_info( + self, + organization: Annotated[StrictStr, Field(description="Organization identifier")], + project: Annotated[StrictStr, Field(description="Project identifier")], + domain: Annotated[Optional[StrictStr], Field(description="Filter by domain ID or domain name")] = None, + metrics: Annotated[Optional[List[StrictStr]], Field(description="Metrics to return (default: hits, bytes). Use the /metrics/available endpoint to list all metrics by category.")] = None, + timestamp_format: Annotated[Optional[StrictStr], Field(description="Timestamp format in response")] = None, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> ApiResponse[V2MetricsResponse]: + """Get daily metrics + + Returns the last 30 days of daily metrics data + + :param organization: Organization identifier (required) + :type organization: str + :param project: Project identifier (required) + :type project: str + :param domain: Filter by domain ID or domain name + :type domain: str + :param metrics: Metrics to return (default: hits, bytes). Use the /metrics/available endpoint to list all metrics by category. + :type metrics: List[str] + :param timestamp_format: Timestamp format in response + :type timestamp_format: str + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._get_daily_metrics_serialize( + organization=organization, + project=project, + domain=domain, + metrics=metrics, + timestamp_format=timestamp_format, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "V2MetricsResponse", + '400': None, + '404': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ) + + + @validate_call + def get_daily_metrics_without_preload_content( + self, + organization: Annotated[StrictStr, Field(description="Organization identifier")], + project: Annotated[StrictStr, Field(description="Project identifier")], + domain: Annotated[Optional[StrictStr], Field(description="Filter by domain ID or domain name")] = None, + metrics: Annotated[Optional[List[StrictStr]], Field(description="Metrics to return (default: hits, bytes). Use the /metrics/available endpoint to list all metrics by category.")] = None, + timestamp_format: Annotated[Optional[StrictStr], Field(description="Timestamp format in response")] = None, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> RESTResponseType: + """Get daily metrics + + Returns the last 30 days of daily metrics data + + :param organization: Organization identifier (required) + :type organization: str + :param project: Project identifier (required) + :type project: str + :param domain: Filter by domain ID or domain name + :type domain: str + :param metrics: Metrics to return (default: hits, bytes). Use the /metrics/available endpoint to list all metrics by category. + :type metrics: List[str] + :param timestamp_format: Timestamp format in response + :type timestamp_format: str + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._get_daily_metrics_serialize( + organization=organization, + project=project, + domain=domain, + metrics=metrics, + timestamp_format=timestamp_format, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "V2MetricsResponse", + '400': None, + '404': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _get_daily_metrics_serialize( + self, + organization, + project, + domain, + metrics, + timestamp_format, + _request_auth, + _content_type, + _headers, + _host_index, + ) -> RequestSerialized: + + _host = None + + _collection_formats: Dict[str, str] = { + 'metrics[]': 'multi', + } + + _path_params: Dict[str, str] = {} + _query_params: List[Tuple[str, str]] = [] + _header_params: Dict[str, Optional[str]] = _headers or {} + _form_params: List[Tuple[str, str]] = [] + _files: Dict[ + str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] + ] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + if organization is not None: + _path_params['organization'] = organization + if project is not None: + _path_params['project'] = project + # process the query parameters + if domain is not None: + + _query_params.append(('domain', domain)) + + if metrics is not None: + + _query_params.append(('metrics[]', metrics)) + + if timestamp_format is not None: + + _query_params.append(('timestamp_format', timestamp_format)) + + # process the header parameters + # process the form parameters + # process the body parameter + + + # set the HTTP header `Accept` + if 'Accept' not in _header_params: + _header_params['Accept'] = self.api_client.select_header_accept( + [ + 'application/json' + ] + ) + + + # authentication setting + _auth_settings: List[str] = [ + 'BearerAuth' + ] + + return self.api_client.param_serialize( + method='GET', + resource_path='/v2/organizations/{organization}/projects/{project}/metrics/daily', + path_params=_path_params, + query_params=_query_params, + header_params=_header_params, + body=_body_params, + post_params=_form_params, + files=_files, + auth_settings=_auth_settings, + collection_formats=_collection_formats, + _host=_host, + _request_auth=_request_auth + ) + + + + + @validate_call + def get_hourly_metrics( + self, + organization: Annotated[StrictStr, Field(description="Organization identifier")], + project: Annotated[StrictStr, Field(description="Project identifier")], + domain: Annotated[Optional[StrictStr], Field(description="Filter by domain ID or domain name")] = None, + metrics: Annotated[Optional[List[StrictStr]], Field(description="Metrics to return (default: hits, bytes). Use the /metrics/available endpoint to list all metrics by category.")] = None, + timestamp_format: Annotated[Optional[StrictStr], Field(description="Timestamp format in response")] = None, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> V2MetricsResponse: + """Get hourly metrics + + Returns the last hour of minute-by-minute metrics data + + :param organization: Organization identifier (required) + :type organization: str + :param project: Project identifier (required) + :type project: str + :param domain: Filter by domain ID or domain name + :type domain: str + :param metrics: Metrics to return (default: hits, bytes). Use the /metrics/available endpoint to list all metrics by category. + :type metrics: List[str] + :param timestamp_format: Timestamp format in response + :type timestamp_format: str + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._get_hourly_metrics_serialize( + organization=organization, + project=project, + domain=domain, + metrics=metrics, + timestamp_format=timestamp_format, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "V2MetricsResponse", + '400': None, + '404': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ).data + + + @validate_call + def get_hourly_metrics_with_http_info( + self, + organization: Annotated[StrictStr, Field(description="Organization identifier")], + project: Annotated[StrictStr, Field(description="Project identifier")], + domain: Annotated[Optional[StrictStr], Field(description="Filter by domain ID or domain name")] = None, + metrics: Annotated[Optional[List[StrictStr]], Field(description="Metrics to return (default: hits, bytes). Use the /metrics/available endpoint to list all metrics by category.")] = None, + timestamp_format: Annotated[Optional[StrictStr], Field(description="Timestamp format in response")] = None, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> ApiResponse[V2MetricsResponse]: + """Get hourly metrics + + Returns the last hour of minute-by-minute metrics data + + :param organization: Organization identifier (required) + :type organization: str + :param project: Project identifier (required) + :type project: str + :param domain: Filter by domain ID or domain name + :type domain: str + :param metrics: Metrics to return (default: hits, bytes). Use the /metrics/available endpoint to list all metrics by category. + :type metrics: List[str] + :param timestamp_format: Timestamp format in response + :type timestamp_format: str + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._get_hourly_metrics_serialize( + organization=organization, + project=project, + domain=domain, + metrics=metrics, + timestamp_format=timestamp_format, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "V2MetricsResponse", + '400': None, + '404': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ) + + + @validate_call + def get_hourly_metrics_without_preload_content( + self, + organization: Annotated[StrictStr, Field(description="Organization identifier")], + project: Annotated[StrictStr, Field(description="Project identifier")], + domain: Annotated[Optional[StrictStr], Field(description="Filter by domain ID or domain name")] = None, + metrics: Annotated[Optional[List[StrictStr]], Field(description="Metrics to return (default: hits, bytes). Use the /metrics/available endpoint to list all metrics by category.")] = None, + timestamp_format: Annotated[Optional[StrictStr], Field(description="Timestamp format in response")] = None, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> RESTResponseType: + """Get hourly metrics + + Returns the last hour of minute-by-minute metrics data + + :param organization: Organization identifier (required) + :type organization: str + :param project: Project identifier (required) + :type project: str + :param domain: Filter by domain ID or domain name + :type domain: str + :param metrics: Metrics to return (default: hits, bytes). Use the /metrics/available endpoint to list all metrics by category. + :type metrics: List[str] + :param timestamp_format: Timestamp format in response + :type timestamp_format: str + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._get_hourly_metrics_serialize( + organization=organization, + project=project, + domain=domain, + metrics=metrics, + timestamp_format=timestamp_format, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "V2MetricsResponse", + '400': None, + '404': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _get_hourly_metrics_serialize( + self, + organization, + project, + domain, + metrics, + timestamp_format, + _request_auth, + _content_type, + _headers, + _host_index, + ) -> RequestSerialized: + + _host = None + + _collection_formats: Dict[str, str] = { + 'metrics[]': 'multi', + } + + _path_params: Dict[str, str] = {} + _query_params: List[Tuple[str, str]] = [] + _header_params: Dict[str, Optional[str]] = _headers or {} + _form_params: List[Tuple[str, str]] = [] + _files: Dict[ + str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] + ] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + if organization is not None: + _path_params['organization'] = organization + if project is not None: + _path_params['project'] = project + # process the query parameters + if domain is not None: + + _query_params.append(('domain', domain)) + + if metrics is not None: + + _query_params.append(('metrics[]', metrics)) + + if timestamp_format is not None: + + _query_params.append(('timestamp_format', timestamp_format)) + + # process the header parameters + # process the form parameters + # process the body parameter + + + # set the HTTP header `Accept` + if 'Accept' not in _header_params: + _header_params['Accept'] = self.api_client.select_header_accept( + [ + 'application/json' + ] + ) + + + # authentication setting + _auth_settings: List[str] = [ + 'BearerAuth' + ] + + return self.api_client.param_serialize( + method='GET', + resource_path='/v2/organizations/{organization}/projects/{project}/metrics/hourly', + path_params=_path_params, + query_params=_query_params, + header_params=_header_params, + body=_body_params, + post_params=_form_params, + files=_files, + auth_settings=_auth_settings, + collection_formats=_collection_formats, + _host=_host, + _request_auth=_request_auth + ) + + + + + @validate_call + def get_monthly_metrics( + self, + organization: Annotated[StrictStr, Field(description="Organization identifier")], + project: Annotated[StrictStr, Field(description="Project identifier")], + domain: Annotated[Optional[StrictStr], Field(description="Filter by domain ID or domain name")] = None, + metrics: Annotated[Optional[List[StrictStr]], Field(description="Metrics to return (default: hits, bytes). Use the /metrics/available endpoint to list all metrics by category.")] = None, + timestamp_format: Annotated[Optional[StrictStr], Field(description="Timestamp format in response")] = None, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> V2MetricsResponse: + """Get monthly metrics + + Returns the last 12 months of monthly metrics data + + :param organization: Organization identifier (required) + :type organization: str + :param project: Project identifier (required) + :type project: str + :param domain: Filter by domain ID or domain name + :type domain: str + :param metrics: Metrics to return (default: hits, bytes). Use the /metrics/available endpoint to list all metrics by category. + :type metrics: List[str] + :param timestamp_format: Timestamp format in response + :type timestamp_format: str + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._get_monthly_metrics_serialize( + organization=organization, + project=project, + domain=domain, + metrics=metrics, + timestamp_format=timestamp_format, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "V2MetricsResponse", + '400': None, + '404': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ).data + + + @validate_call + def get_monthly_metrics_with_http_info( + self, + organization: Annotated[StrictStr, Field(description="Organization identifier")], + project: Annotated[StrictStr, Field(description="Project identifier")], + domain: Annotated[Optional[StrictStr], Field(description="Filter by domain ID or domain name")] = None, + metrics: Annotated[Optional[List[StrictStr]], Field(description="Metrics to return (default: hits, bytes). Use the /metrics/available endpoint to list all metrics by category.")] = None, + timestamp_format: Annotated[Optional[StrictStr], Field(description="Timestamp format in response")] = None, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> ApiResponse[V2MetricsResponse]: + """Get monthly metrics + + Returns the last 12 months of monthly metrics data + + :param organization: Organization identifier (required) + :type organization: str + :param project: Project identifier (required) + :type project: str + :param domain: Filter by domain ID or domain name + :type domain: str + :param metrics: Metrics to return (default: hits, bytes). Use the /metrics/available endpoint to list all metrics by category. + :type metrics: List[str] + :param timestamp_format: Timestamp format in response + :type timestamp_format: str + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._get_monthly_metrics_serialize( + organization=organization, + project=project, + domain=domain, + metrics=metrics, + timestamp_format=timestamp_format, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "V2MetricsResponse", + '400': None, + '404': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ) + + + @validate_call + def get_monthly_metrics_without_preload_content( + self, + organization: Annotated[StrictStr, Field(description="Organization identifier")], + project: Annotated[StrictStr, Field(description="Project identifier")], + domain: Annotated[Optional[StrictStr], Field(description="Filter by domain ID or domain name")] = None, + metrics: Annotated[Optional[List[StrictStr]], Field(description="Metrics to return (default: hits, bytes). Use the /metrics/available endpoint to list all metrics by category.")] = None, + timestamp_format: Annotated[Optional[StrictStr], Field(description="Timestamp format in response")] = None, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> RESTResponseType: + """Get monthly metrics + + Returns the last 12 months of monthly metrics data + + :param organization: Organization identifier (required) + :type organization: str + :param project: Project identifier (required) + :type project: str + :param domain: Filter by domain ID or domain name + :type domain: str + :param metrics: Metrics to return (default: hits, bytes). Use the /metrics/available endpoint to list all metrics by category. + :type metrics: List[str] + :param timestamp_format: Timestamp format in response + :type timestamp_format: str + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._get_monthly_metrics_serialize( + organization=organization, + project=project, + domain=domain, + metrics=metrics, + timestamp_format=timestamp_format, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "V2MetricsResponse", + '400': None, + '404': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _get_monthly_metrics_serialize( + self, + organization, + project, + domain, + metrics, + timestamp_format, + _request_auth, + _content_type, + _headers, + _host_index, + ) -> RequestSerialized: + + _host = None + + _collection_formats: Dict[str, str] = { + 'metrics[]': 'multi', + } + + _path_params: Dict[str, str] = {} + _query_params: List[Tuple[str, str]] = [] + _header_params: Dict[str, Optional[str]] = _headers or {} + _form_params: List[Tuple[str, str]] = [] + _files: Dict[ + str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] + ] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + if organization is not None: + _path_params['organization'] = organization + if project is not None: + _path_params['project'] = project + # process the query parameters + if domain is not None: + + _query_params.append(('domain', domain)) + + if metrics is not None: + + _query_params.append(('metrics[]', metrics)) + + if timestamp_format is not None: + + _query_params.append(('timestamp_format', timestamp_format)) + + # process the header parameters + # process the form parameters + # process the body parameter + + + # set the HTTP header `Accept` + if 'Accept' not in _header_params: + _header_params['Accept'] = self.api_client.select_header_accept( + [ + 'application/json' + ] + ) + + + # authentication setting + _auth_settings: List[str] = [ + 'BearerAuth' + ] + + return self.api_client.param_serialize( + method='GET', + resource_path='/v2/organizations/{organization}/projects/{project}/metrics/monthly', + path_params=_path_params, + query_params=_query_params, + header_params=_header_params, + body=_body_params, + post_params=_form_params, + files=_files, + auth_settings=_auth_settings, + collection_formats=_collection_formats, + _host=_host, + _request_auth=_request_auth + ) + + diff --git a/quantcdn/api/commands_api.py b/quantcdn/api/commands_api.py index 54ecd966..c5c55c70 100644 --- a/quantcdn/api/commands_api.py +++ b/quantcdn/api/commands_api.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/api/compose_api.py b/quantcdn/api/compose_api.py index 1508deee..a1ac15ce 100644 --- a/quantcdn/api/compose_api.py +++ b/quantcdn/api/compose_api.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/api/containers_api.py b/quantcdn/api/containers_api.py index f22b98ab..14a0cd72 100644 --- a/quantcdn/api/containers_api.py +++ b/quantcdn/api/containers_api.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/api/crawler_schedules_api.py b/quantcdn/api/crawler_schedules_api.py index e6f766bf..bc34b728 100644 --- a/quantcdn/api/crawler_schedules_api.py +++ b/quantcdn/api/crawler_schedules_api.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/api/crawlers_api.py b/quantcdn/api/crawlers_api.py index 03328107..6b902ca0 100644 --- a/quantcdn/api/crawlers_api.py +++ b/quantcdn/api/crawlers_api.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/api/cron_api.py b/quantcdn/api/cron_api.py index a497d8b8..dcc60377 100644 --- a/quantcdn/api/cron_api.py +++ b/quantcdn/api/cron_api.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/api/domains_api.py b/quantcdn/api/domains_api.py index 3f15b5dd..d41d0be1 100644 --- a/quantcdn/api/domains_api.py +++ b/quantcdn/api/domains_api.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/api/environments_api.py b/quantcdn/api/environments_api.py index 7a09d3cf..74c29d91 100644 --- a/quantcdn/api/environments_api.py +++ b/quantcdn/api/environments_api.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/api/headers_api.py b/quantcdn/api/headers_api.py index 7f481dc3..bd8c7c3a 100644 --- a/quantcdn/api/headers_api.py +++ b/quantcdn/api/headers_api.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/api/kv_api.py b/quantcdn/api/kv_api.py index 07ff1e31..3fb90080 100644 --- a/quantcdn/api/kv_api.py +++ b/quantcdn/api/kv_api.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. @@ -22,6 +22,8 @@ from quantcdn.models.kv_items_create200_response import KVItemsCreate200Response from quantcdn.models.kv_items_delete200_response import KVItemsDelete200Response from quantcdn.models.kv_items_show200_response import KVItemsShow200Response +from quantcdn.models.kv_link_to_project200_response import KVLinkToProject200Response +from quantcdn.models.kv_link_to_project_request import KVLinkToProjectRequest from quantcdn.models.v2_store import V2Store from quantcdn.models.v2_store_item_request import V2StoreItemRequest from quantcdn.models.v2_store_item_update_request import V2StoreItemUpdateRequest @@ -2295,6 +2297,334 @@ def _k_v_items_update_serialize( + @validate_call + def k_v_link_to_project( + self, + organization: Annotated[StrictStr, Field(description="Organization identifier")], + project: Annotated[StrictStr, Field(description="Source project identifier")], + store_id: Annotated[StrictStr, Field(description="KV store identifier")], + kv_link_to_project_request: KVLinkToProjectRequest, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> KVLinkToProject200Response: + """Link a KV store to another project + + Share a KV store from the source project with a target project. The store will be accessible in the target project. + + :param organization: Organization identifier (required) + :type organization: str + :param project: Source project identifier (required) + :type project: str + :param store_id: KV store identifier (required) + :type store_id: str + :param kv_link_to_project_request: (required) + :type kv_link_to_project_request: KVLinkToProjectRequest + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._k_v_link_to_project_serialize( + organization=organization, + project=project, + store_id=store_id, + kv_link_to_project_request=kv_link_to_project_request, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "KVLinkToProject200Response", + '400': "V2Error", + '404': "V2Error", + '403': "V2Error", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ).data + + + @validate_call + def k_v_link_to_project_with_http_info( + self, + organization: Annotated[StrictStr, Field(description="Organization identifier")], + project: Annotated[StrictStr, Field(description="Source project identifier")], + store_id: Annotated[StrictStr, Field(description="KV store identifier")], + kv_link_to_project_request: KVLinkToProjectRequest, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> ApiResponse[KVLinkToProject200Response]: + """Link a KV store to another project + + Share a KV store from the source project with a target project. The store will be accessible in the target project. + + :param organization: Organization identifier (required) + :type organization: str + :param project: Source project identifier (required) + :type project: str + :param store_id: KV store identifier (required) + :type store_id: str + :param kv_link_to_project_request: (required) + :type kv_link_to_project_request: KVLinkToProjectRequest + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._k_v_link_to_project_serialize( + organization=organization, + project=project, + store_id=store_id, + kv_link_to_project_request=kv_link_to_project_request, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "KVLinkToProject200Response", + '400': "V2Error", + '404': "V2Error", + '403': "V2Error", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ) + + + @validate_call + def k_v_link_to_project_without_preload_content( + self, + organization: Annotated[StrictStr, Field(description="Organization identifier")], + project: Annotated[StrictStr, Field(description="Source project identifier")], + store_id: Annotated[StrictStr, Field(description="KV store identifier")], + kv_link_to_project_request: KVLinkToProjectRequest, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> RESTResponseType: + """Link a KV store to another project + + Share a KV store from the source project with a target project. The store will be accessible in the target project. + + :param organization: Organization identifier (required) + :type organization: str + :param project: Source project identifier (required) + :type project: str + :param store_id: KV store identifier (required) + :type store_id: str + :param kv_link_to_project_request: (required) + :type kv_link_to_project_request: KVLinkToProjectRequest + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._k_v_link_to_project_serialize( + organization=organization, + project=project, + store_id=store_id, + kv_link_to_project_request=kv_link_to_project_request, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "KVLinkToProject200Response", + '400': "V2Error", + '404': "V2Error", + '403': "V2Error", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _k_v_link_to_project_serialize( + self, + organization, + project, + store_id, + kv_link_to_project_request, + _request_auth, + _content_type, + _headers, + _host_index, + ) -> RequestSerialized: + + _host = None + + _collection_formats: Dict[str, str] = { + } + + _path_params: Dict[str, str] = {} + _query_params: List[Tuple[str, str]] = [] + _header_params: Dict[str, Optional[str]] = _headers or {} + _form_params: List[Tuple[str, str]] = [] + _files: Dict[ + str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] + ] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + if organization is not None: + _path_params['organization'] = organization + if project is not None: + _path_params['project'] = project + if store_id is not None: + _path_params['store_id'] = store_id + # process the query parameters + # process the header parameters + # process the form parameters + # process the body parameter + if kv_link_to_project_request is not None: + _body_params = kv_link_to_project_request + + + # set the HTTP header `Accept` + if 'Accept' not in _header_params: + _header_params['Accept'] = self.api_client.select_header_accept( + [ + 'application/json' + ] + ) + + # set the HTTP header `Content-Type` + if _content_type: + _header_params['Content-Type'] = _content_type + else: + _default_content_type = ( + self.api_client.select_header_content_type( + [ + 'application/json' + ] + ) + ) + if _default_content_type is not None: + _header_params['Content-Type'] = _default_content_type + + # authentication setting + _auth_settings: List[str] = [ + 'BearerAuth' + ] + + return self.api_client.param_serialize( + method='POST', + resource_path='/api/v2/organizations/{organization}/projects/{project}/kv/{store_id}/link', + path_params=_path_params, + query_params=_query_params, + header_params=_header_params, + body=_body_params, + post_params=_form_params, + files=_files, + auth_settings=_auth_settings, + collection_formats=_collection_formats, + _host=_host, + _request_auth=_request_auth + ) + + + + @validate_call def k_v_list( self, @@ -2312,7 +2642,151 @@ def k_v_list( _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> List[V2Store]: + ) -> List[V2Store]: + """List key-value stores + + + :param organization: Organization identifier (required) + :type organization: str + :param project: Project identifier (required) + :type project: str + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._k_v_list_serialize( + organization=organization, + project=project, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "List[V2Store]", + '400': "V2Error", + '403': "V2Error", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ).data + + + @validate_call + def k_v_list_with_http_info( + self, + organization: Annotated[StrictStr, Field(description="Organization identifier")], + project: Annotated[StrictStr, Field(description="Project identifier")], + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> ApiResponse[List[V2Store]]: + """List key-value stores + + + :param organization: Organization identifier (required) + :type organization: str + :param project: Project identifier (required) + :type project: str + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._k_v_list_serialize( + organization=organization, + project=project, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "List[V2Store]", + '400': "V2Error", + '403': "V2Error", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ) + + + @validate_call + def k_v_list_without_preload_content( + self, + organization: Annotated[StrictStr, Field(description="Organization identifier")], + project: Annotated[StrictStr, Field(description="Project identifier")], + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> RESTResponseType: """List key-value stores @@ -2360,6 +2834,145 @@ def k_v_list( *_param, _request_timeout=_request_timeout ) + return response_data.response + + + def _k_v_list_serialize( + self, + organization, + project, + _request_auth, + _content_type, + _headers, + _host_index, + ) -> RequestSerialized: + + _host = None + + _collection_formats: Dict[str, str] = { + } + + _path_params: Dict[str, str] = {} + _query_params: List[Tuple[str, str]] = [] + _header_params: Dict[str, Optional[str]] = _headers or {} + _form_params: List[Tuple[str, str]] = [] + _files: Dict[ + str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] + ] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + if organization is not None: + _path_params['organization'] = organization + if project is not None: + _path_params['project'] = project + # process the query parameters + # process the header parameters + # process the form parameters + # process the body parameter + + + # set the HTTP header `Accept` + if 'Accept' not in _header_params: + _header_params['Accept'] = self.api_client.select_header_accept( + [ + 'application/json' + ] + ) + + + # authentication setting + _auth_settings: List[str] = [ + 'BearerAuth' + ] + + return self.api_client.param_serialize( + method='GET', + resource_path='/api/v2/organizations/{organization}/projects/{project}/kv', + path_params=_path_params, + query_params=_query_params, + header_params=_header_params, + body=_body_params, + post_params=_form_params, + files=_files, + auth_settings=_auth_settings, + collection_formats=_collection_formats, + _host=_host, + _request_auth=_request_auth + ) + + + + + @validate_call + def k_v_show( + self, + organization: Annotated[StrictStr, Field(description="Organization identifier")], + project: Annotated[StrictStr, Field(description="Project identifier")], + store_id: StrictStr, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> V2Store: + """Get a kv store + + + :param organization: Organization identifier (required) + :type organization: str + :param project: Project identifier (required) + :type project: str + :param store_id: (required) + :type store_id: str + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._k_v_show_serialize( + organization=organization, + project=project, + store_id=store_id, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "V2Store", + '404': "V2Error", + '403': "V2Error", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) response_data.read() return self.api_client.response_deserialize( response_data=response_data, @@ -2368,10 +2981,11 @@ def k_v_list( @validate_call - def k_v_list_with_http_info( + def k_v_show_with_http_info( self, organization: Annotated[StrictStr, Field(description="Organization identifier")], project: Annotated[StrictStr, Field(description="Project identifier")], + store_id: StrictStr, _request_timeout: Union[ None, Annotated[StrictFloat, Field(gt=0)], @@ -2384,14 +2998,16 @@ def k_v_list_with_http_info( _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> ApiResponse[List[V2Store]]: - """List key-value stores + ) -> ApiResponse[V2Store]: + """Get a kv store :param organization: Organization identifier (required) :type organization: str :param project: Project identifier (required) :type project: str + :param store_id: (required) + :type store_id: str :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of @@ -2414,9 +3030,10 @@ def k_v_list_with_http_info( :return: Returns the result object. """ # noqa: E501 - _param = self._k_v_list_serialize( + _param = self._k_v_show_serialize( organization=organization, project=project, + store_id=store_id, _request_auth=_request_auth, _content_type=_content_type, _headers=_headers, @@ -2424,8 +3041,8 @@ def k_v_list_with_http_info( ) _response_types_map: Dict[str, Optional[str]] = { - '200': "List[V2Store]", - '400': "V2Error", + '200': "V2Store", + '404': "V2Error", '403': "V2Error", } response_data = self.api_client.call_api( @@ -2440,10 +3057,11 @@ def k_v_list_with_http_info( @validate_call - def k_v_list_without_preload_content( + def k_v_show_without_preload_content( self, organization: Annotated[StrictStr, Field(description="Organization identifier")], project: Annotated[StrictStr, Field(description="Project identifier")], + store_id: StrictStr, _request_timeout: Union[ None, Annotated[StrictFloat, Field(gt=0)], @@ -2457,13 +3075,15 @@ def k_v_list_without_preload_content( _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, ) -> RESTResponseType: - """List key-value stores + """Get a kv store :param organization: Organization identifier (required) :type organization: str :param project: Project identifier (required) :type project: str + :param store_id: (required) + :type store_id: str :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of @@ -2486,9 +3106,10 @@ def k_v_list_without_preload_content( :return: Returns the result object. """ # noqa: E501 - _param = self._k_v_list_serialize( + _param = self._k_v_show_serialize( organization=organization, project=project, + store_id=store_id, _request_auth=_request_auth, _content_type=_content_type, _headers=_headers, @@ -2496,8 +3117,8 @@ def k_v_list_without_preload_content( ) _response_types_map: Dict[str, Optional[str]] = { - '200': "List[V2Store]", - '400': "V2Error", + '200': "V2Store", + '404': "V2Error", '403': "V2Error", } response_data = self.api_client.call_api( @@ -2507,10 +3128,11 @@ def k_v_list_without_preload_content( return response_data.response - def _k_v_list_serialize( + def _k_v_show_serialize( self, organization, project, + store_id, _request_auth, _content_type, _headers, @@ -2536,6 +3158,8 @@ def _k_v_list_serialize( _path_params['organization'] = organization if project is not None: _path_params['project'] = project + if store_id is not None: + _path_params['store_id'] = store_id # process the query parameters # process the header parameters # process the form parameters @@ -2558,7 +3182,7 @@ def _k_v_list_serialize( return self.api_client.param_serialize( method='GET', - resource_path='/api/v2/organizations/{organization}/projects/{project}/kv', + resource_path='/api/v2/organizations/{organization}/projects/{project}/kv/{store_id}', path_params=_path_params, query_params=_query_params, header_params=_header_params, @@ -2575,11 +3199,11 @@ def _k_v_list_serialize( @validate_call - def k_v_show( + def k_v_unlink_from_project( self, organization: Annotated[StrictStr, Field(description="Organization identifier")], project: Annotated[StrictStr, Field(description="Project identifier")], - store_id: StrictStr, + store_id: Annotated[StrictStr, Field(description="KV store identifier")], _request_timeout: Union[ None, Annotated[StrictFloat, Field(gt=0)], @@ -2592,15 +3216,16 @@ def k_v_show( _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> V2Store: - """Get a kv store + ) -> KVLinkToProject200Response: + """Unlink a KV store from this project + Remove access to a linked KV store from this project. The store must be linked (not owned by this project). :param organization: Organization identifier (required) :type organization: str :param project: Project identifier (required) :type project: str - :param store_id: (required) + :param store_id: KV store identifier (required) :type store_id: str :param _request_timeout: timeout setting for this request. If one number provided, it will be total request @@ -2624,7 +3249,7 @@ def k_v_show( :return: Returns the result object. """ # noqa: E501 - _param = self._k_v_show_serialize( + _param = self._k_v_unlink_from_project_serialize( organization=organization, project=project, store_id=store_id, @@ -2635,8 +3260,8 @@ def k_v_show( ) _response_types_map: Dict[str, Optional[str]] = { - '200': "V2Store", - '404': "V2Error", + '200': "KVLinkToProject200Response", + '400': "V2Error", '403': "V2Error", } response_data = self.api_client.call_api( @@ -2651,11 +3276,11 @@ def k_v_show( @validate_call - def k_v_show_with_http_info( + def k_v_unlink_from_project_with_http_info( self, organization: Annotated[StrictStr, Field(description="Organization identifier")], project: Annotated[StrictStr, Field(description="Project identifier")], - store_id: StrictStr, + store_id: Annotated[StrictStr, Field(description="KV store identifier")], _request_timeout: Union[ None, Annotated[StrictFloat, Field(gt=0)], @@ -2668,15 +3293,16 @@ def k_v_show_with_http_info( _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> ApiResponse[V2Store]: - """Get a kv store + ) -> ApiResponse[KVLinkToProject200Response]: + """Unlink a KV store from this project + Remove access to a linked KV store from this project. The store must be linked (not owned by this project). :param organization: Organization identifier (required) :type organization: str :param project: Project identifier (required) :type project: str - :param store_id: (required) + :param store_id: KV store identifier (required) :type store_id: str :param _request_timeout: timeout setting for this request. If one number provided, it will be total request @@ -2700,7 +3326,7 @@ def k_v_show_with_http_info( :return: Returns the result object. """ # noqa: E501 - _param = self._k_v_show_serialize( + _param = self._k_v_unlink_from_project_serialize( organization=organization, project=project, store_id=store_id, @@ -2711,8 +3337,8 @@ def k_v_show_with_http_info( ) _response_types_map: Dict[str, Optional[str]] = { - '200': "V2Store", - '404': "V2Error", + '200': "KVLinkToProject200Response", + '400': "V2Error", '403': "V2Error", } response_data = self.api_client.call_api( @@ -2727,11 +3353,11 @@ def k_v_show_with_http_info( @validate_call - def k_v_show_without_preload_content( + def k_v_unlink_from_project_without_preload_content( self, organization: Annotated[StrictStr, Field(description="Organization identifier")], project: Annotated[StrictStr, Field(description="Project identifier")], - store_id: StrictStr, + store_id: Annotated[StrictStr, Field(description="KV store identifier")], _request_timeout: Union[ None, Annotated[StrictFloat, Field(gt=0)], @@ -2745,14 +3371,15 @@ def k_v_show_without_preload_content( _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, ) -> RESTResponseType: - """Get a kv store + """Unlink a KV store from this project + Remove access to a linked KV store from this project. The store must be linked (not owned by this project). :param organization: Organization identifier (required) :type organization: str :param project: Project identifier (required) :type project: str - :param store_id: (required) + :param store_id: KV store identifier (required) :type store_id: str :param _request_timeout: timeout setting for this request. If one number provided, it will be total request @@ -2776,7 +3403,7 @@ def k_v_show_without_preload_content( :return: Returns the result object. """ # noqa: E501 - _param = self._k_v_show_serialize( + _param = self._k_v_unlink_from_project_serialize( organization=organization, project=project, store_id=store_id, @@ -2787,8 +3414,8 @@ def k_v_show_without_preload_content( ) _response_types_map: Dict[str, Optional[str]] = { - '200': "V2Store", - '404': "V2Error", + '200': "KVLinkToProject200Response", + '400': "V2Error", '403': "V2Error", } response_data = self.api_client.call_api( @@ -2798,7 +3425,7 @@ def k_v_show_without_preload_content( return response_data.response - def _k_v_show_serialize( + def _k_v_unlink_from_project_serialize( self, organization, project, @@ -2851,8 +3478,8 @@ def _k_v_show_serialize( ] return self.api_client.param_serialize( - method='GET', - resource_path='/api/v2/organizations/{organization}/projects/{project}/kv/{store_id}', + method='DELETE', + resource_path='/api/v2/organizations/{organization}/projects/{project}/kv/{store_id}/link', path_params=_path_params, query_params=_query_params, header_params=_header_params, diff --git a/quantcdn/api/open_ai_compatibility_api.py b/quantcdn/api/open_ai_compatibility_api.py new file mode 100644 index 00000000..82f6bd43 --- /dev/null +++ b/quantcdn/api/open_ai_compatibility_api.py @@ -0,0 +1,1121 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + +import warnings +from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt +from typing import Any, Dict, List, Optional, Tuple, Union +from typing_extensions import Annotated + +from pydantic import StrictStr +from quantcdn.models.oai_chat_completions200_response import OaiChatCompletions200Response +from quantcdn.models.oai_chat_completions_request import OaiChatCompletionsRequest +from quantcdn.models.oai_embeddings200_response import OaiEmbeddings200Response +from quantcdn.models.oai_embeddings_request import OaiEmbeddingsRequest +from quantcdn.models.oai_get_model200_response import OaiGetModel200Response +from quantcdn.models.oai_list_models200_response import OaiListModels200Response + +from quantcdn.api_client import ApiClient, RequestSerialized +from quantcdn.api_response import ApiResponse +from quantcdn.rest import RESTResponseType + + +class OpenAICompatibilityApi: + """NOTE: This class is auto generated by OpenAPI Generator + Ref: https://openapi-generator.tech + + Do not edit the class manually. + """ + + def __init__(self, api_client=None) -> None: + if api_client is None: + api_client = ApiClient.get_default() + self.api_client = api_client + + + @validate_call + def oai_chat_completions( + self, + oai_chat_completions_request: OaiChatCompletionsRequest, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> OaiChatCompletions200Response: + """Create a chat completion (OpenAI-compatible) + + Drop-in replacement for OpenAI's POST /v1/chat/completions. Point any OpenAI SDK at base_url=https:///oai/v1 and use a Quant API token (qc_...) as the api_key. Set `stream: true` to receive Server-Sent Events (chat.completion.chunk objects terminated by `data: [DONE]`); otherwise a single chat.completion object is returned. Supports tool/function calling and the standard tool_choice modes. + + :param oai_chat_completions_request: (required) + :type oai_chat_completions_request: OaiChatCompletionsRequest + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._oai_chat_completions_serialize( + oai_chat_completions_request=oai_chat_completions_request, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "OaiChatCompletions200Response", + '401': None, + '403': None, + '422': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ).data + + + @validate_call + def oai_chat_completions_with_http_info( + self, + oai_chat_completions_request: OaiChatCompletionsRequest, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> ApiResponse[OaiChatCompletions200Response]: + """Create a chat completion (OpenAI-compatible) + + Drop-in replacement for OpenAI's POST /v1/chat/completions. Point any OpenAI SDK at base_url=https:///oai/v1 and use a Quant API token (qc_...) as the api_key. Set `stream: true` to receive Server-Sent Events (chat.completion.chunk objects terminated by `data: [DONE]`); otherwise a single chat.completion object is returned. Supports tool/function calling and the standard tool_choice modes. + + :param oai_chat_completions_request: (required) + :type oai_chat_completions_request: OaiChatCompletionsRequest + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._oai_chat_completions_serialize( + oai_chat_completions_request=oai_chat_completions_request, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "OaiChatCompletions200Response", + '401': None, + '403': None, + '422': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ) + + + @validate_call + def oai_chat_completions_without_preload_content( + self, + oai_chat_completions_request: OaiChatCompletionsRequest, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> RESTResponseType: + """Create a chat completion (OpenAI-compatible) + + Drop-in replacement for OpenAI's POST /v1/chat/completions. Point any OpenAI SDK at base_url=https:///oai/v1 and use a Quant API token (qc_...) as the api_key. Set `stream: true` to receive Server-Sent Events (chat.completion.chunk objects terminated by `data: [DONE]`); otherwise a single chat.completion object is returned. Supports tool/function calling and the standard tool_choice modes. + + :param oai_chat_completions_request: (required) + :type oai_chat_completions_request: OaiChatCompletionsRequest + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._oai_chat_completions_serialize( + oai_chat_completions_request=oai_chat_completions_request, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "OaiChatCompletions200Response", + '401': None, + '403': None, + '422': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _oai_chat_completions_serialize( + self, + oai_chat_completions_request, + _request_auth, + _content_type, + _headers, + _host_index, + ) -> RequestSerialized: + + _host = None + + _collection_formats: Dict[str, str] = { + } + + _path_params: Dict[str, str] = {} + _query_params: List[Tuple[str, str]] = [] + _header_params: Dict[str, Optional[str]] = _headers or {} + _form_params: List[Tuple[str, str]] = [] + _files: Dict[ + str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] + ] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + # process the query parameters + # process the header parameters + # process the form parameters + # process the body parameter + if oai_chat_completions_request is not None: + _body_params = oai_chat_completions_request + + + # set the HTTP header `Accept` + if 'Accept' not in _header_params: + _header_params['Accept'] = self.api_client.select_header_accept( + [ + 'application/json' + ] + ) + + # set the HTTP header `Content-Type` + if _content_type: + _header_params['Content-Type'] = _content_type + else: + _default_content_type = ( + self.api_client.select_header_content_type( + [ + 'application/json' + ] + ) + ) + if _default_content_type is not None: + _header_params['Content-Type'] = _default_content_type + + # authentication setting + _auth_settings: List[str] = [ + 'BearerAuth' + ] + + return self.api_client.param_serialize( + method='POST', + resource_path='/oai/v1/chat/completions', + path_params=_path_params, + query_params=_query_params, + header_params=_header_params, + body=_body_params, + post_params=_form_params, + files=_files, + auth_settings=_auth_settings, + collection_formats=_collection_formats, + _host=_host, + _request_auth=_request_auth + ) + + + + + @validate_call + def oai_embeddings( + self, + oai_embeddings_request: OaiEmbeddingsRequest, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> OaiEmbeddings200Response: + """Create embeddings (OpenAI-compatible) + + Drop-in replacement for OpenAI's POST /v1/embeddings. Accepts a single string or an array of strings in `input` and returns a list of embedding objects. + + :param oai_embeddings_request: (required) + :type oai_embeddings_request: OaiEmbeddingsRequest + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._oai_embeddings_serialize( + oai_embeddings_request=oai_embeddings_request, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "OaiEmbeddings200Response", + '401': None, + '403': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ).data + + + @validate_call + def oai_embeddings_with_http_info( + self, + oai_embeddings_request: OaiEmbeddingsRequest, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> ApiResponse[OaiEmbeddings200Response]: + """Create embeddings (OpenAI-compatible) + + Drop-in replacement for OpenAI's POST /v1/embeddings. Accepts a single string or an array of strings in `input` and returns a list of embedding objects. + + :param oai_embeddings_request: (required) + :type oai_embeddings_request: OaiEmbeddingsRequest + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._oai_embeddings_serialize( + oai_embeddings_request=oai_embeddings_request, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "OaiEmbeddings200Response", + '401': None, + '403': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ) + + + @validate_call + def oai_embeddings_without_preload_content( + self, + oai_embeddings_request: OaiEmbeddingsRequest, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> RESTResponseType: + """Create embeddings (OpenAI-compatible) + + Drop-in replacement for OpenAI's POST /v1/embeddings. Accepts a single string or an array of strings in `input` and returns a list of embedding objects. + + :param oai_embeddings_request: (required) + :type oai_embeddings_request: OaiEmbeddingsRequest + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._oai_embeddings_serialize( + oai_embeddings_request=oai_embeddings_request, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "OaiEmbeddings200Response", + '401': None, + '403': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _oai_embeddings_serialize( + self, + oai_embeddings_request, + _request_auth, + _content_type, + _headers, + _host_index, + ) -> RequestSerialized: + + _host = None + + _collection_formats: Dict[str, str] = { + } + + _path_params: Dict[str, str] = {} + _query_params: List[Tuple[str, str]] = [] + _header_params: Dict[str, Optional[str]] = _headers or {} + _form_params: List[Tuple[str, str]] = [] + _files: Dict[ + str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] + ] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + # process the query parameters + # process the header parameters + # process the form parameters + # process the body parameter + if oai_embeddings_request is not None: + _body_params = oai_embeddings_request + + + # set the HTTP header `Accept` + if 'Accept' not in _header_params: + _header_params['Accept'] = self.api_client.select_header_accept( + [ + 'application/json' + ] + ) + + # set the HTTP header `Content-Type` + if _content_type: + _header_params['Content-Type'] = _content_type + else: + _default_content_type = ( + self.api_client.select_header_content_type( + [ + 'application/json' + ] + ) + ) + if _default_content_type is not None: + _header_params['Content-Type'] = _default_content_type + + # authentication setting + _auth_settings: List[str] = [ + 'BearerAuth' + ] + + return self.api_client.param_serialize( + method='POST', + resource_path='/oai/v1/embeddings', + path_params=_path_params, + query_params=_query_params, + header_params=_header_params, + body=_body_params, + post_params=_form_params, + files=_files, + auth_settings=_auth_settings, + collection_formats=_collection_formats, + _host=_host, + _request_auth=_request_auth + ) + + + + + @validate_call + def oai_get_model( + self, + model: StrictStr, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> OaiGetModel200Response: + """Retrieve a model (OpenAI-compatible) + + Drop-in replacement for OpenAI's GET /v1/models/{model}. + + :param model: (required) + :type model: str + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._oai_get_model_serialize( + model=model, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "OaiGetModel200Response", + '401': None, + '404': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ).data + + + @validate_call + def oai_get_model_with_http_info( + self, + model: StrictStr, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> ApiResponse[OaiGetModel200Response]: + """Retrieve a model (OpenAI-compatible) + + Drop-in replacement for OpenAI's GET /v1/models/{model}. + + :param model: (required) + :type model: str + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._oai_get_model_serialize( + model=model, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "OaiGetModel200Response", + '401': None, + '404': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ) + + + @validate_call + def oai_get_model_without_preload_content( + self, + model: StrictStr, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> RESTResponseType: + """Retrieve a model (OpenAI-compatible) + + Drop-in replacement for OpenAI's GET /v1/models/{model}. + + :param model: (required) + :type model: str + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._oai_get_model_serialize( + model=model, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "OaiGetModel200Response", + '401': None, + '404': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _oai_get_model_serialize( + self, + model, + _request_auth, + _content_type, + _headers, + _host_index, + ) -> RequestSerialized: + + _host = None + + _collection_formats: Dict[str, str] = { + } + + _path_params: Dict[str, str] = {} + _query_params: List[Tuple[str, str]] = [] + _header_params: Dict[str, Optional[str]] = _headers or {} + _form_params: List[Tuple[str, str]] = [] + _files: Dict[ + str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] + ] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + if model is not None: + _path_params['model'] = model + # process the query parameters + # process the header parameters + # process the form parameters + # process the body parameter + + + # set the HTTP header `Accept` + if 'Accept' not in _header_params: + _header_params['Accept'] = self.api_client.select_header_accept( + [ + 'application/json' + ] + ) + + + # authentication setting + _auth_settings: List[str] = [ + 'BearerAuth' + ] + + return self.api_client.param_serialize( + method='GET', + resource_path='/oai/v1/models/{model}', + path_params=_path_params, + query_params=_query_params, + header_params=_header_params, + body=_body_params, + post_params=_form_params, + files=_files, + auth_settings=_auth_settings, + collection_formats=_collection_formats, + _host=_host, + _request_auth=_request_auth + ) + + + + + @validate_call + def oai_list_models( + self, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> OaiListModels200Response: + """List available models (OpenAI-compatible) + + Drop-in replacement for OpenAI's GET /v1/models. Returns the model ids available to the organisation; pass one of these ids as `model` in chat/embeddings requests. + + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._oai_list_models_serialize( + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "OaiListModels200Response", + '401': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ).data + + + @validate_call + def oai_list_models_with_http_info( + self, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> ApiResponse[OaiListModels200Response]: + """List available models (OpenAI-compatible) + + Drop-in replacement for OpenAI's GET /v1/models. Returns the model ids available to the organisation; pass one of these ids as `model` in chat/embeddings requests. + + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._oai_list_models_serialize( + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "OaiListModels200Response", + '401': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ) + + + @validate_call + def oai_list_models_without_preload_content( + self, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> RESTResponseType: + """List available models (OpenAI-compatible) + + Drop-in replacement for OpenAI's GET /v1/models. Returns the model ids available to the organisation; pass one of these ids as `model` in chat/embeddings requests. + + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._oai_list_models_serialize( + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "OaiListModels200Response", + '401': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _oai_list_models_serialize( + self, + _request_auth, + _content_type, + _headers, + _host_index, + ) -> RequestSerialized: + + _host = None + + _collection_formats: Dict[str, str] = { + } + + _path_params: Dict[str, str] = {} + _query_params: List[Tuple[str, str]] = [] + _header_params: Dict[str, Optional[str]] = _headers or {} + _form_params: List[Tuple[str, str]] = [] + _files: Dict[ + str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] + ] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + # process the query parameters + # process the header parameters + # process the form parameters + # process the body parameter + + + # set the HTTP header `Accept` + if 'Accept' not in _header_params: + _header_params['Accept'] = self.api_client.select_header_accept( + [ + 'application/json' + ] + ) + + + # authentication setting + _auth_settings: List[str] = [ + 'BearerAuth' + ] + + return self.api_client.param_serialize( + method='GET', + resource_path='/oai/v1/models', + path_params=_path_params, + query_params=_query_params, + header_params=_header_params, + body=_body_params, + post_params=_form_params, + files=_files, + auth_settings=_auth_settings, + collection_formats=_collection_formats, + _host=_host, + _request_auth=_request_auth + ) + + diff --git a/quantcdn/api/organizations_api.py b/quantcdn/api/organizations_api.py index 7cc85113..a0892a86 100644 --- a/quantcdn/api/organizations_api.py +++ b/quantcdn/api/organizations_api.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/api/projects_api.py b/quantcdn/api/projects_api.py index ab132e35..b9bae12e 100644 --- a/quantcdn/api/projects_api.py +++ b/quantcdn/api/projects_api.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/api/purge_api.py b/quantcdn/api/purge_api.py index 320c9c3c..9219b275 100644 --- a/quantcdn/api/purge_api.py +++ b/quantcdn/api/purge_api.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/api/restore_management_api.py b/quantcdn/api/restore_management_api.py new file mode 100644 index 00000000..10640a7d --- /dev/null +++ b/quantcdn/api/restore_management_api.py @@ -0,0 +1,1022 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + +import warnings +from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt +from typing import Any, Dict, List, Optional, Tuple, Union +from typing_extensions import Annotated + +from pydantic import Field, StrictStr +from typing_extensions import Annotated +from quantcdn.models.get_restore_status200_response import GetRestoreStatus200Response +from quantcdn.models.restore_database202_response import RestoreDatabase202Response +from quantcdn.models.restore_database_request import RestoreDatabaseRequest +from quantcdn.models.restore_filesystem202_response import RestoreFilesystem202Response +from quantcdn.models.restore_filesystem_request import RestoreFilesystemRequest + +from quantcdn.api_client import ApiClient, RequestSerialized +from quantcdn.api_response import ApiResponse +from quantcdn.rest import RESTResponseType + + +class RestoreManagementApi: + """NOTE: This class is auto generated by OpenAPI Generator + Ref: https://openapi-generator.tech + + Do not edit the class manually. + """ + + def __init__(self, api_client=None) -> None: + if api_client is None: + api_client = ApiClient.get_default() + self.api_client = api_client + + + @validate_call + def get_restore_status( + self, + organisation: Annotated[StrictStr, Field(description="The organisation ID")], + application: Annotated[StrictStr, Field(description="The application ID")], + environment: Annotated[StrictStr, Field(description="The environment ID")], + restore_id: Annotated[StrictStr, Field(description="The restore operation ID")], + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> GetRestoreStatus200Response: + """Get the status of a restore operation + + Returns the current status and metadata for a restore operation. Poll this endpoint to track progress. + + :param organisation: The organisation ID (required) + :type organisation: str + :param application: The application ID (required) + :type application: str + :param environment: The environment ID (required) + :type environment: str + :param restore_id: The restore operation ID (required) + :type restore_id: str + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._get_restore_status_serialize( + organisation=organisation, + application=application, + environment=environment, + restore_id=restore_id, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "GetRestoreStatus200Response", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ).data + + + @validate_call + def get_restore_status_with_http_info( + self, + organisation: Annotated[StrictStr, Field(description="The organisation ID")], + application: Annotated[StrictStr, Field(description="The application ID")], + environment: Annotated[StrictStr, Field(description="The environment ID")], + restore_id: Annotated[StrictStr, Field(description="The restore operation ID")], + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> ApiResponse[GetRestoreStatus200Response]: + """Get the status of a restore operation + + Returns the current status and metadata for a restore operation. Poll this endpoint to track progress. + + :param organisation: The organisation ID (required) + :type organisation: str + :param application: The application ID (required) + :type application: str + :param environment: The environment ID (required) + :type environment: str + :param restore_id: The restore operation ID (required) + :type restore_id: str + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._get_restore_status_serialize( + organisation=organisation, + application=application, + environment=environment, + restore_id=restore_id, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "GetRestoreStatus200Response", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ) + + + @validate_call + def get_restore_status_without_preload_content( + self, + organisation: Annotated[StrictStr, Field(description="The organisation ID")], + application: Annotated[StrictStr, Field(description="The application ID")], + environment: Annotated[StrictStr, Field(description="The environment ID")], + restore_id: Annotated[StrictStr, Field(description="The restore operation ID")], + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> RESTResponseType: + """Get the status of a restore operation + + Returns the current status and metadata for a restore operation. Poll this endpoint to track progress. + + :param organisation: The organisation ID (required) + :type organisation: str + :param application: The application ID (required) + :type application: str + :param environment: The environment ID (required) + :type environment: str + :param restore_id: The restore operation ID (required) + :type restore_id: str + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._get_restore_status_serialize( + organisation=organisation, + application=application, + environment=environment, + restore_id=restore_id, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "GetRestoreStatus200Response", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _get_restore_status_serialize( + self, + organisation, + application, + environment, + restore_id, + _request_auth, + _content_type, + _headers, + _host_index, + ) -> RequestSerialized: + + _host = None + + _collection_formats: Dict[str, str] = { + } + + _path_params: Dict[str, str] = {} + _query_params: List[Tuple[str, str]] = [] + _header_params: Dict[str, Optional[str]] = _headers or {} + _form_params: List[Tuple[str, str]] = [] + _files: Dict[ + str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] + ] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + if organisation is not None: + _path_params['organisation'] = organisation + if application is not None: + _path_params['application'] = application + if environment is not None: + _path_params['environment'] = environment + if restore_id is not None: + _path_params['restoreId'] = restore_id + # process the query parameters + # process the header parameters + # process the form parameters + # process the body parameter + + + # set the HTTP header `Accept` + if 'Accept' not in _header_params: + _header_params['Accept'] = self.api_client.select_header_accept( + [ + 'application/json' + ] + ) + + + # authentication setting + _auth_settings: List[str] = [ + 'BearerAuth' + ] + + return self.api_client.param_serialize( + method='GET', + resource_path='/api/v3/organizations/{organisation}/applications/{application}/environments/{environment}/restores/{restoreId}', + path_params=_path_params, + query_params=_query_params, + header_params=_header_params, + body=_body_params, + post_params=_form_params, + files=_files, + auth_settings=_auth_settings, + collection_formats=_collection_formats, + _host=_host, + _request_auth=_request_auth + ) + + + + + @validate_call + def restore_database( + self, + organisation: Annotated[StrictStr, Field(description="The organisation ID")], + application: Annotated[StrictStr, Field(description="The application ID")], + environment: Annotated[StrictStr, Field(description="The TARGET environment ID to restore INTO")], + backup_id: Annotated[StrictStr, Field(description="The backup ID to restore from")], + restore_database_request: RestoreDatabaseRequest, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> RestoreDatabase202Response: + """Restore a database backup to a target environment + + Initiates an async restore of a database backup into the specified target environment. The backup may originate from a different environment of the same application (cross-env restore). Returns 202 with a restoreId for status polling. + + :param organisation: The organisation ID (required) + :type organisation: str + :param application: The application ID (required) + :type application: str + :param environment: The TARGET environment ID to restore INTO (required) + :type environment: str + :param backup_id: The backup ID to restore from (required) + :type backup_id: str + :param restore_database_request: (required) + :type restore_database_request: RestoreDatabaseRequest + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._restore_database_serialize( + organisation=organisation, + application=application, + environment=environment, + backup_id=backup_id, + restore_database_request=restore_database_request, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '202': "RestoreDatabase202Response", + '422': "PatchEnvironmentCompose400Response", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ).data + + + @validate_call + def restore_database_with_http_info( + self, + organisation: Annotated[StrictStr, Field(description="The organisation ID")], + application: Annotated[StrictStr, Field(description="The application ID")], + environment: Annotated[StrictStr, Field(description="The TARGET environment ID to restore INTO")], + backup_id: Annotated[StrictStr, Field(description="The backup ID to restore from")], + restore_database_request: RestoreDatabaseRequest, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> ApiResponse[RestoreDatabase202Response]: + """Restore a database backup to a target environment + + Initiates an async restore of a database backup into the specified target environment. The backup may originate from a different environment of the same application (cross-env restore). Returns 202 with a restoreId for status polling. + + :param organisation: The organisation ID (required) + :type organisation: str + :param application: The application ID (required) + :type application: str + :param environment: The TARGET environment ID to restore INTO (required) + :type environment: str + :param backup_id: The backup ID to restore from (required) + :type backup_id: str + :param restore_database_request: (required) + :type restore_database_request: RestoreDatabaseRequest + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._restore_database_serialize( + organisation=organisation, + application=application, + environment=environment, + backup_id=backup_id, + restore_database_request=restore_database_request, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '202': "RestoreDatabase202Response", + '422': "PatchEnvironmentCompose400Response", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ) + + + @validate_call + def restore_database_without_preload_content( + self, + organisation: Annotated[StrictStr, Field(description="The organisation ID")], + application: Annotated[StrictStr, Field(description="The application ID")], + environment: Annotated[StrictStr, Field(description="The TARGET environment ID to restore INTO")], + backup_id: Annotated[StrictStr, Field(description="The backup ID to restore from")], + restore_database_request: RestoreDatabaseRequest, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> RESTResponseType: + """Restore a database backup to a target environment + + Initiates an async restore of a database backup into the specified target environment. The backup may originate from a different environment of the same application (cross-env restore). Returns 202 with a restoreId for status polling. + + :param organisation: The organisation ID (required) + :type organisation: str + :param application: The application ID (required) + :type application: str + :param environment: The TARGET environment ID to restore INTO (required) + :type environment: str + :param backup_id: The backup ID to restore from (required) + :type backup_id: str + :param restore_database_request: (required) + :type restore_database_request: RestoreDatabaseRequest + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._restore_database_serialize( + organisation=organisation, + application=application, + environment=environment, + backup_id=backup_id, + restore_database_request=restore_database_request, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '202': "RestoreDatabase202Response", + '422': "PatchEnvironmentCompose400Response", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _restore_database_serialize( + self, + organisation, + application, + environment, + backup_id, + restore_database_request, + _request_auth, + _content_type, + _headers, + _host_index, + ) -> RequestSerialized: + + _host = None + + _collection_formats: Dict[str, str] = { + } + + _path_params: Dict[str, str] = {} + _query_params: List[Tuple[str, str]] = [] + _header_params: Dict[str, Optional[str]] = _headers or {} + _form_params: List[Tuple[str, str]] = [] + _files: Dict[ + str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] + ] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + if organisation is not None: + _path_params['organisation'] = organisation + if application is not None: + _path_params['application'] = application + if environment is not None: + _path_params['environment'] = environment + if backup_id is not None: + _path_params['backupId'] = backup_id + # process the query parameters + # process the header parameters + # process the form parameters + # process the body parameter + if restore_database_request is not None: + _body_params = restore_database_request + + + # set the HTTP header `Accept` + if 'Accept' not in _header_params: + _header_params['Accept'] = self.api_client.select_header_accept( + [ + 'application/json' + ] + ) + + # set the HTTP header `Content-Type` + if _content_type: + _header_params['Content-Type'] = _content_type + else: + _default_content_type = ( + self.api_client.select_header_content_type( + [ + 'application/json' + ] + ) + ) + if _default_content_type is not None: + _header_params['Content-Type'] = _default_content_type + + # authentication setting + _auth_settings: List[str] = [ + 'BearerAuth' + ] + + return self.api_client.param_serialize( + method='POST', + resource_path='/api/v3/organizations/{organisation}/applications/{application}/environments/{environment}/backups/{backupId}/restore-database', + path_params=_path_params, + query_params=_query_params, + header_params=_header_params, + body=_body_params, + post_params=_form_params, + files=_files, + auth_settings=_auth_settings, + collection_formats=_collection_formats, + _host=_host, + _request_auth=_request_auth + ) + + + + + @validate_call + def restore_filesystem( + self, + organisation: Annotated[StrictStr, Field(description="The organisation ID")], + application: Annotated[StrictStr, Field(description="The application ID")], + environment: Annotated[StrictStr, Field(description="The TARGET environment ID to restore INTO")], + backup_id: Annotated[StrictStr, Field(description="The backup ID to restore from")], + restore_filesystem_request: RestoreFilesystemRequest, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> RestoreFilesystem202Response: + """Restore a filesystem backup to a target environment + + Initiates an async restore of a filesystem backup into the specified target environment. The backup may originate from a different environment of the same application (cross-env restore). Returns 202 with a restoreId for status polling. + + :param organisation: The organisation ID (required) + :type organisation: str + :param application: The application ID (required) + :type application: str + :param environment: The TARGET environment ID to restore INTO (required) + :type environment: str + :param backup_id: The backup ID to restore from (required) + :type backup_id: str + :param restore_filesystem_request: (required) + :type restore_filesystem_request: RestoreFilesystemRequest + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._restore_filesystem_serialize( + organisation=organisation, + application=application, + environment=environment, + backup_id=backup_id, + restore_filesystem_request=restore_filesystem_request, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '202': "RestoreFilesystem202Response", + '422': "PatchEnvironmentCompose400Response", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ).data + + + @validate_call + def restore_filesystem_with_http_info( + self, + organisation: Annotated[StrictStr, Field(description="The organisation ID")], + application: Annotated[StrictStr, Field(description="The application ID")], + environment: Annotated[StrictStr, Field(description="The TARGET environment ID to restore INTO")], + backup_id: Annotated[StrictStr, Field(description="The backup ID to restore from")], + restore_filesystem_request: RestoreFilesystemRequest, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> ApiResponse[RestoreFilesystem202Response]: + """Restore a filesystem backup to a target environment + + Initiates an async restore of a filesystem backup into the specified target environment. The backup may originate from a different environment of the same application (cross-env restore). Returns 202 with a restoreId for status polling. + + :param organisation: The organisation ID (required) + :type organisation: str + :param application: The application ID (required) + :type application: str + :param environment: The TARGET environment ID to restore INTO (required) + :type environment: str + :param backup_id: The backup ID to restore from (required) + :type backup_id: str + :param restore_filesystem_request: (required) + :type restore_filesystem_request: RestoreFilesystemRequest + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._restore_filesystem_serialize( + organisation=organisation, + application=application, + environment=environment, + backup_id=backup_id, + restore_filesystem_request=restore_filesystem_request, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '202': "RestoreFilesystem202Response", + '422': "PatchEnvironmentCompose400Response", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ) + + + @validate_call + def restore_filesystem_without_preload_content( + self, + organisation: Annotated[StrictStr, Field(description="The organisation ID")], + application: Annotated[StrictStr, Field(description="The application ID")], + environment: Annotated[StrictStr, Field(description="The TARGET environment ID to restore INTO")], + backup_id: Annotated[StrictStr, Field(description="The backup ID to restore from")], + restore_filesystem_request: RestoreFilesystemRequest, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> RESTResponseType: + """Restore a filesystem backup to a target environment + + Initiates an async restore of a filesystem backup into the specified target environment. The backup may originate from a different environment of the same application (cross-env restore). Returns 202 with a restoreId for status polling. + + :param organisation: The organisation ID (required) + :type organisation: str + :param application: The application ID (required) + :type application: str + :param environment: The TARGET environment ID to restore INTO (required) + :type environment: str + :param backup_id: The backup ID to restore from (required) + :type backup_id: str + :param restore_filesystem_request: (required) + :type restore_filesystem_request: RestoreFilesystemRequest + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._restore_filesystem_serialize( + organisation=organisation, + application=application, + environment=environment, + backup_id=backup_id, + restore_filesystem_request=restore_filesystem_request, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '202': "RestoreFilesystem202Response", + '422': "PatchEnvironmentCompose400Response", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _restore_filesystem_serialize( + self, + organisation, + application, + environment, + backup_id, + restore_filesystem_request, + _request_auth, + _content_type, + _headers, + _host_index, + ) -> RequestSerialized: + + _host = None + + _collection_formats: Dict[str, str] = { + } + + _path_params: Dict[str, str] = {} + _query_params: List[Tuple[str, str]] = [] + _header_params: Dict[str, Optional[str]] = _headers or {} + _form_params: List[Tuple[str, str]] = [] + _files: Dict[ + str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] + ] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + if organisation is not None: + _path_params['organisation'] = organisation + if application is not None: + _path_params['application'] = application + if environment is not None: + _path_params['environment'] = environment + if backup_id is not None: + _path_params['backupId'] = backup_id + # process the query parameters + # process the header parameters + # process the form parameters + # process the body parameter + if restore_filesystem_request is not None: + _body_params = restore_filesystem_request + + + # set the HTTP header `Accept` + if 'Accept' not in _header_params: + _header_params['Accept'] = self.api_client.select_header_accept( + [ + 'application/json' + ] + ) + + # set the HTTP header `Content-Type` + if _content_type: + _header_params['Content-Type'] = _content_type + else: + _default_content_type = ( + self.api_client.select_header_content_type( + [ + 'application/json' + ] + ) + ) + if _default_content_type is not None: + _header_params['Content-Type'] = _default_content_type + + # authentication setting + _auth_settings: List[str] = [ + 'BearerAuth' + ] + + return self.api_client.param_serialize( + method='POST', + resource_path='/api/v3/organizations/{organisation}/applications/{application}/environments/{environment}/backups/{backupId}/restore-filesystem', + path_params=_path_params, + query_params=_query_params, + header_params=_header_params, + body=_body_params, + post_params=_form_params, + files=_files, + auth_settings=_auth_settings, + collection_formats=_collection_formats, + _host=_host, + _request_auth=_request_auth + ) + + diff --git a/quantcdn/api/rules_api.py b/quantcdn/api/rules_api.py index a4813956..9b6a31c5 100644 --- a/quantcdn/api/rules_api.py +++ b/quantcdn/api/rules_api.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/api/scaling_policy_api.py b/quantcdn/api/scaling_policy_api.py index b0da9ccd..6180f8a9 100644 --- a/quantcdn/api/scaling_policy_api.py +++ b/quantcdn/api/scaling_policy_api.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. @@ -16,9 +16,12 @@ from typing import Any, Dict, List, Optional, Tuple, Union from typing_extensions import Annotated -from pydantic import Field, StrictStr +from pydantic import Field, StrictStr, field_validator +from typing import Optional from typing_extensions import Annotated -from quantcdn.models.scaling_policy import ScalingPolicy +from quantcdn.models.get_scaling_policy_response import GetScalingPolicyResponse +from quantcdn.models.scaling_policy_list_response import ScalingPolicyListResponse +from quantcdn.models.set_scaling_policy_request import SetScalingPolicyRequest from quantcdn.api_client import ApiClient, RequestSerialized from quantcdn.api_response import ApiResponse @@ -41,10 +44,11 @@ def __init__(self, api_client=None) -> None: @validate_call def delete_scaling_policy( self, - organisation: Annotated[StrictStr, Field(description="The organisation ID")], - application: Annotated[StrictStr, Field(description="The application ID")], - environment: Annotated[StrictStr, Field(description="The environment ID")], - policy_name: Annotated[StrictStr, Field(description="The policy name")], + organisation: StrictStr, + application: StrictStr, + environment: StrictStr, + metric: Annotated[Optional[StrictStr], Field(description="Optional. Delete by metric type.")] = None, + policy_name: Annotated[Optional[StrictStr], Field(description="Optional. Delete by exact policy name.")] = None, _request_timeout: Union[ None, Annotated[StrictFloat, Field(gt=0)], @@ -58,16 +62,19 @@ def delete_scaling_policy( _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, ) -> None: - """Delete the scaling policy for an environment + """Delete Scaling Policy + Deletes a specific scaling policy for the environment. Specify the metric type or policy name to delete a single policy. If neither is provided, all policies will be deleted. - :param organisation: The organisation ID (required) + :param organisation: (required) :type organisation: str - :param application: The application ID (required) + :param application: (required) :type application: str - :param environment: The environment ID (required) + :param environment: (required) :type environment: str - :param policy_name: The policy name (required) + :param metric: Optional. Delete by metric type. + :type metric: str + :param policy_name: Optional. Delete by exact policy name. :type policy_name: str :param _request_timeout: timeout setting for this request. If one number provided, it will be total request @@ -95,6 +102,7 @@ def delete_scaling_policy( organisation=organisation, application=application, environment=environment, + metric=metric, policy_name=policy_name, _request_auth=_request_auth, _content_type=_content_type, @@ -119,10 +127,11 @@ def delete_scaling_policy( @validate_call def delete_scaling_policy_with_http_info( self, - organisation: Annotated[StrictStr, Field(description="The organisation ID")], - application: Annotated[StrictStr, Field(description="The application ID")], - environment: Annotated[StrictStr, Field(description="The environment ID")], - policy_name: Annotated[StrictStr, Field(description="The policy name")], + organisation: StrictStr, + application: StrictStr, + environment: StrictStr, + metric: Annotated[Optional[StrictStr], Field(description="Optional. Delete by metric type.")] = None, + policy_name: Annotated[Optional[StrictStr], Field(description="Optional. Delete by exact policy name.")] = None, _request_timeout: Union[ None, Annotated[StrictFloat, Field(gt=0)], @@ -136,16 +145,19 @@ def delete_scaling_policy_with_http_info( _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, ) -> ApiResponse[None]: - """Delete the scaling policy for an environment + """Delete Scaling Policy + Deletes a specific scaling policy for the environment. Specify the metric type or policy name to delete a single policy. If neither is provided, all policies will be deleted. - :param organisation: The organisation ID (required) + :param organisation: (required) :type organisation: str - :param application: The application ID (required) + :param application: (required) :type application: str - :param environment: The environment ID (required) + :param environment: (required) :type environment: str - :param policy_name: The policy name (required) + :param metric: Optional. Delete by metric type. + :type metric: str + :param policy_name: Optional. Delete by exact policy name. :type policy_name: str :param _request_timeout: timeout setting for this request. If one number provided, it will be total request @@ -173,6 +185,7 @@ def delete_scaling_policy_with_http_info( organisation=organisation, application=application, environment=environment, + metric=metric, policy_name=policy_name, _request_auth=_request_auth, _content_type=_content_type, @@ -197,10 +210,11 @@ def delete_scaling_policy_with_http_info( @validate_call def delete_scaling_policy_without_preload_content( self, - organisation: Annotated[StrictStr, Field(description="The organisation ID")], - application: Annotated[StrictStr, Field(description="The application ID")], - environment: Annotated[StrictStr, Field(description="The environment ID")], - policy_name: Annotated[StrictStr, Field(description="The policy name")], + organisation: StrictStr, + application: StrictStr, + environment: StrictStr, + metric: Annotated[Optional[StrictStr], Field(description="Optional. Delete by metric type.")] = None, + policy_name: Annotated[Optional[StrictStr], Field(description="Optional. Delete by exact policy name.")] = None, _request_timeout: Union[ None, Annotated[StrictFloat, Field(gt=0)], @@ -214,16 +228,19 @@ def delete_scaling_policy_without_preload_content( _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, ) -> RESTResponseType: - """Delete the scaling policy for an environment + """Delete Scaling Policy + Deletes a specific scaling policy for the environment. Specify the metric type or policy name to delete a single policy. If neither is provided, all policies will be deleted. - :param organisation: The organisation ID (required) + :param organisation: (required) :type organisation: str - :param application: The application ID (required) + :param application: (required) :type application: str - :param environment: The environment ID (required) + :param environment: (required) :type environment: str - :param policy_name: The policy name (required) + :param metric: Optional. Delete by metric type. + :type metric: str + :param policy_name: Optional. Delete by exact policy name. :type policy_name: str :param _request_timeout: timeout setting for this request. If one number provided, it will be total request @@ -251,6 +268,7 @@ def delete_scaling_policy_without_preload_content( organisation=organisation, application=application, environment=environment, + metric=metric, policy_name=policy_name, _request_auth=_request_auth, _content_type=_content_type, @@ -273,6 +291,7 @@ def _delete_scaling_policy_serialize( organisation, application, environment, + metric, policy_name, _request_auth, _content_type, @@ -301,9 +320,15 @@ def _delete_scaling_policy_serialize( _path_params['application'] = application if environment is not None: _path_params['environment'] = environment - if policy_name is not None: - _path_params['policyName'] = policy_name # process the query parameters + if metric is not None: + + _query_params.append(('metric', metric)) + + if policy_name is not None: + + _query_params.append(('policyName', policy_name)) + # process the header parameters # process the form parameters # process the body parameter @@ -318,7 +343,7 @@ def _delete_scaling_policy_serialize( return self.api_client.param_serialize( method='DELETE', - resource_path='/api/v3/organizations/{organisation}/applications/{application}/environments/{environment}/scaling-policies/{policyName}', + resource_path='/api/v3/organizations/{organisation}/applications/{application}/environments/{environment}/scaling-policies', path_params=_path_params, query_params=_query_params, header_params=_header_params, @@ -335,11 +360,13 @@ def _delete_scaling_policy_serialize( @validate_call - def get_scaling_policies( + def list_scaling_policies( self, - organisation: Annotated[StrictStr, Field(description="The organisation ID")], - application: Annotated[StrictStr, Field(description="The application ID")], - environment: Annotated[StrictStr, Field(description="The environment ID")], + organisation: StrictStr, + application: StrictStr, + environment: StrictStr, + metric: Annotated[Optional[StrictStr], Field(description="Optional. Filter policies by metric type.")] = None, + policy_name: Annotated[Optional[StrictStr], Field(description="Optional. Filter policies by exact policy name.")] = None, _request_timeout: Union[ None, Annotated[StrictFloat, Field(gt=0)], @@ -352,16 +379,21 @@ def get_scaling_policies( _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> None: - """Get the scaling policies for an environment + ) -> ScalingPolicyListResponse: + """List Scaling Policies + Retrieves all active target tracking scaling policies for the environment. Returns an array of policies, each with its metric, target value, cooldowns, and resource label (if applicable). - :param organisation: The organisation ID (required) + :param organisation: (required) :type organisation: str - :param application: The application ID (required) + :param application: (required) :type application: str - :param environment: The environment ID (required) + :param environment: (required) :type environment: str + :param metric: Optional. Filter policies by metric type. + :type metric: str + :param policy_name: Optional. Filter policies by exact policy name. + :type policy_name: str :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of @@ -384,10 +416,12 @@ def get_scaling_policies( :return: Returns the result object. """ # noqa: E501 - _param = self._get_scaling_policies_serialize( + _param = self._list_scaling_policies_serialize( organisation=organisation, application=application, environment=environment, + metric=metric, + policy_name=policy_name, _request_auth=_request_auth, _content_type=_content_type, _headers=_headers, @@ -395,7 +429,7 @@ def get_scaling_policies( ) _response_types_map: Dict[str, Optional[str]] = { - '200': None, + '200': "ScalingPolicyListResponse", } response_data = self.api_client.call_api( *_param, @@ -409,11 +443,13 @@ def get_scaling_policies( @validate_call - def get_scaling_policies_with_http_info( + def list_scaling_policies_with_http_info( self, - organisation: Annotated[StrictStr, Field(description="The organisation ID")], - application: Annotated[StrictStr, Field(description="The application ID")], - environment: Annotated[StrictStr, Field(description="The environment ID")], + organisation: StrictStr, + application: StrictStr, + environment: StrictStr, + metric: Annotated[Optional[StrictStr], Field(description="Optional. Filter policies by metric type.")] = None, + policy_name: Annotated[Optional[StrictStr], Field(description="Optional. Filter policies by exact policy name.")] = None, _request_timeout: Union[ None, Annotated[StrictFloat, Field(gt=0)], @@ -426,16 +462,21 @@ def get_scaling_policies_with_http_info( _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> ApiResponse[None]: - """Get the scaling policies for an environment + ) -> ApiResponse[ScalingPolicyListResponse]: + """List Scaling Policies + Retrieves all active target tracking scaling policies for the environment. Returns an array of policies, each with its metric, target value, cooldowns, and resource label (if applicable). - :param organisation: The organisation ID (required) + :param organisation: (required) :type organisation: str - :param application: The application ID (required) + :param application: (required) :type application: str - :param environment: The environment ID (required) + :param environment: (required) :type environment: str + :param metric: Optional. Filter policies by metric type. + :type metric: str + :param policy_name: Optional. Filter policies by exact policy name. + :type policy_name: str :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of @@ -458,10 +499,12 @@ def get_scaling_policies_with_http_info( :return: Returns the result object. """ # noqa: E501 - _param = self._get_scaling_policies_serialize( + _param = self._list_scaling_policies_serialize( organisation=organisation, application=application, environment=environment, + metric=metric, + policy_name=policy_name, _request_auth=_request_auth, _content_type=_content_type, _headers=_headers, @@ -469,7 +512,7 @@ def get_scaling_policies_with_http_info( ) _response_types_map: Dict[str, Optional[str]] = { - '200': None, + '200': "ScalingPolicyListResponse", } response_data = self.api_client.call_api( *_param, @@ -483,11 +526,13 @@ def get_scaling_policies_with_http_info( @validate_call - def get_scaling_policies_without_preload_content( + def list_scaling_policies_without_preload_content( self, - organisation: Annotated[StrictStr, Field(description="The organisation ID")], - application: Annotated[StrictStr, Field(description="The application ID")], - environment: Annotated[StrictStr, Field(description="The environment ID")], + organisation: StrictStr, + application: StrictStr, + environment: StrictStr, + metric: Annotated[Optional[StrictStr], Field(description="Optional. Filter policies by metric type.")] = None, + policy_name: Annotated[Optional[StrictStr], Field(description="Optional. Filter policies by exact policy name.")] = None, _request_timeout: Union[ None, Annotated[StrictFloat, Field(gt=0)], @@ -501,15 +546,20 @@ def get_scaling_policies_without_preload_content( _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, ) -> RESTResponseType: - """Get the scaling policies for an environment + """List Scaling Policies + Retrieves all active target tracking scaling policies for the environment. Returns an array of policies, each with its metric, target value, cooldowns, and resource label (if applicable). - :param organisation: The organisation ID (required) + :param organisation: (required) :type organisation: str - :param application: The application ID (required) + :param application: (required) :type application: str - :param environment: The environment ID (required) + :param environment: (required) :type environment: str + :param metric: Optional. Filter policies by metric type. + :type metric: str + :param policy_name: Optional. Filter policies by exact policy name. + :type policy_name: str :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of @@ -532,10 +582,12 @@ def get_scaling_policies_without_preload_content( :return: Returns the result object. """ # noqa: E501 - _param = self._get_scaling_policies_serialize( + _param = self._list_scaling_policies_serialize( organisation=organisation, application=application, environment=environment, + metric=metric, + policy_name=policy_name, _request_auth=_request_auth, _content_type=_content_type, _headers=_headers, @@ -543,7 +595,7 @@ def get_scaling_policies_without_preload_content( ) _response_types_map: Dict[str, Optional[str]] = { - '200': None, + '200': "ScalingPolicyListResponse", } response_data = self.api_client.call_api( *_param, @@ -552,11 +604,13 @@ def get_scaling_policies_without_preload_content( return response_data.response - def _get_scaling_policies_serialize( + def _list_scaling_policies_serialize( self, organisation, application, environment, + metric, + policy_name, _request_auth, _content_type, _headers, @@ -585,11 +639,26 @@ def _get_scaling_policies_serialize( if environment is not None: _path_params['environment'] = environment # process the query parameters + if metric is not None: + + _query_params.append(('metric', metric)) + + if policy_name is not None: + + _query_params.append(('policyName', policy_name)) + # process the header parameters # process the form parameters # process the body parameter + # set the HTTP header `Accept` + if 'Accept' not in _header_params: + _header_params['Accept'] = self.api_client.select_header_accept( + [ + 'application/json' + ] + ) # authentication setting @@ -616,12 +685,13 @@ def _get_scaling_policies_serialize( @validate_call - def update_scaling_policy( + def upsert_scaling_policy( self, - organisation: Annotated[StrictStr, Field(description="The organisation ID")], - application: Annotated[StrictStr, Field(description="The application ID")], - environment: Annotated[StrictStr, Field(description="The environment ID")], - scaling_policy: ScalingPolicy, + organisation: StrictStr, + application: StrictStr, + environment: StrictStr, + set_scaling_policy_request: SetScalingPolicyRequest, + policy_name: Annotated[Optional[StrictStr], Field(description="Optional. Specify a custom policy name to upsert.")] = None, _request_timeout: Union[ None, Annotated[StrictFloat, Field(gt=0)], @@ -634,18 +704,21 @@ def update_scaling_policy( _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> None: - """Update the scaling policy for an environment + ) -> GetScalingPolicyResponse: + """Upsert Scaling Policy + Creates or updates a target tracking scaling policy for the environment. Specify the metric type and target value. If a policy with the same metric or name exists, it will be updated. Optionally, provide a custom policy name via query. - :param organisation: The organisation ID (required) + :param organisation: (required) :type organisation: str - :param application: The application ID (required) + :param application: (required) :type application: str - :param environment: The environment ID (required) + :param environment: (required) :type environment: str - :param scaling_policy: (required) - :type scaling_policy: ScalingPolicy + :param set_scaling_policy_request: (required) + :type set_scaling_policy_request: SetScalingPolicyRequest + :param policy_name: Optional. Specify a custom policy name to upsert. + :type policy_name: str :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of @@ -668,11 +741,12 @@ def update_scaling_policy( :return: Returns the result object. """ # noqa: E501 - _param = self._update_scaling_policy_serialize( + _param = self._upsert_scaling_policy_serialize( organisation=organisation, application=application, environment=environment, - scaling_policy=scaling_policy, + set_scaling_policy_request=set_scaling_policy_request, + policy_name=policy_name, _request_auth=_request_auth, _content_type=_content_type, _headers=_headers, @@ -680,7 +754,7 @@ def update_scaling_policy( ) _response_types_map: Dict[str, Optional[str]] = { - '200': None, + '200': "GetScalingPolicyResponse", } response_data = self.api_client.call_api( *_param, @@ -694,12 +768,13 @@ def update_scaling_policy( @validate_call - def update_scaling_policy_with_http_info( + def upsert_scaling_policy_with_http_info( self, - organisation: Annotated[StrictStr, Field(description="The organisation ID")], - application: Annotated[StrictStr, Field(description="The application ID")], - environment: Annotated[StrictStr, Field(description="The environment ID")], - scaling_policy: ScalingPolicy, + organisation: StrictStr, + application: StrictStr, + environment: StrictStr, + set_scaling_policy_request: SetScalingPolicyRequest, + policy_name: Annotated[Optional[StrictStr], Field(description="Optional. Specify a custom policy name to upsert.")] = None, _request_timeout: Union[ None, Annotated[StrictFloat, Field(gt=0)], @@ -712,18 +787,21 @@ def update_scaling_policy_with_http_info( _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> ApiResponse[None]: - """Update the scaling policy for an environment + ) -> ApiResponse[GetScalingPolicyResponse]: + """Upsert Scaling Policy + Creates or updates a target tracking scaling policy for the environment. Specify the metric type and target value. If a policy with the same metric or name exists, it will be updated. Optionally, provide a custom policy name via query. - :param organisation: The organisation ID (required) + :param organisation: (required) :type organisation: str - :param application: The application ID (required) + :param application: (required) :type application: str - :param environment: The environment ID (required) + :param environment: (required) :type environment: str - :param scaling_policy: (required) - :type scaling_policy: ScalingPolicy + :param set_scaling_policy_request: (required) + :type set_scaling_policy_request: SetScalingPolicyRequest + :param policy_name: Optional. Specify a custom policy name to upsert. + :type policy_name: str :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of @@ -746,11 +824,12 @@ def update_scaling_policy_with_http_info( :return: Returns the result object. """ # noqa: E501 - _param = self._update_scaling_policy_serialize( + _param = self._upsert_scaling_policy_serialize( organisation=organisation, application=application, environment=environment, - scaling_policy=scaling_policy, + set_scaling_policy_request=set_scaling_policy_request, + policy_name=policy_name, _request_auth=_request_auth, _content_type=_content_type, _headers=_headers, @@ -758,7 +837,7 @@ def update_scaling_policy_with_http_info( ) _response_types_map: Dict[str, Optional[str]] = { - '200': None, + '200': "GetScalingPolicyResponse", } response_data = self.api_client.call_api( *_param, @@ -772,12 +851,13 @@ def update_scaling_policy_with_http_info( @validate_call - def update_scaling_policy_without_preload_content( + def upsert_scaling_policy_without_preload_content( self, - organisation: Annotated[StrictStr, Field(description="The organisation ID")], - application: Annotated[StrictStr, Field(description="The application ID")], - environment: Annotated[StrictStr, Field(description="The environment ID")], - scaling_policy: ScalingPolicy, + organisation: StrictStr, + application: StrictStr, + environment: StrictStr, + set_scaling_policy_request: SetScalingPolicyRequest, + policy_name: Annotated[Optional[StrictStr], Field(description="Optional. Specify a custom policy name to upsert.")] = None, _request_timeout: Union[ None, Annotated[StrictFloat, Field(gt=0)], @@ -791,17 +871,20 @@ def update_scaling_policy_without_preload_content( _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, ) -> RESTResponseType: - """Update the scaling policy for an environment + """Upsert Scaling Policy + Creates or updates a target tracking scaling policy for the environment. Specify the metric type and target value. If a policy with the same metric or name exists, it will be updated. Optionally, provide a custom policy name via query. - :param organisation: The organisation ID (required) + :param organisation: (required) :type organisation: str - :param application: The application ID (required) + :param application: (required) :type application: str - :param environment: The environment ID (required) + :param environment: (required) :type environment: str - :param scaling_policy: (required) - :type scaling_policy: ScalingPolicy + :param set_scaling_policy_request: (required) + :type set_scaling_policy_request: SetScalingPolicyRequest + :param policy_name: Optional. Specify a custom policy name to upsert. + :type policy_name: str :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of @@ -824,11 +907,12 @@ def update_scaling_policy_without_preload_content( :return: Returns the result object. """ # noqa: E501 - _param = self._update_scaling_policy_serialize( + _param = self._upsert_scaling_policy_serialize( organisation=organisation, application=application, environment=environment, - scaling_policy=scaling_policy, + set_scaling_policy_request=set_scaling_policy_request, + policy_name=policy_name, _request_auth=_request_auth, _content_type=_content_type, _headers=_headers, @@ -836,7 +920,7 @@ def update_scaling_policy_without_preload_content( ) _response_types_map: Dict[str, Optional[str]] = { - '200': None, + '200': "GetScalingPolicyResponse", } response_data = self.api_client.call_api( *_param, @@ -845,12 +929,13 @@ def update_scaling_policy_without_preload_content( return response_data.response - def _update_scaling_policy_serialize( + def _upsert_scaling_policy_serialize( self, organisation, application, environment, - scaling_policy, + set_scaling_policy_request, + policy_name, _request_auth, _content_type, _headers, @@ -879,13 +964,24 @@ def _update_scaling_policy_serialize( if environment is not None: _path_params['environment'] = environment # process the query parameters + if policy_name is not None: + + _query_params.append(('policyName', policy_name)) + # process the header parameters # process the form parameters # process the body parameter - if scaling_policy is not None: - _body_params = scaling_policy + if set_scaling_policy_request is not None: + _body_params = set_scaling_policy_request + # set the HTTP header `Accept` + if 'Accept' not in _header_params: + _header_params['Accept'] = self.api_client.select_header_accept( + [ + 'application/json' + ] + ) # set the HTTP header `Content-Type` if _content_type: diff --git a/quantcdn/api/ssh_access_api.py b/quantcdn/api/ssh_access_api.py index ceb8c824..7b01741b 100644 --- a/quantcdn/api/ssh_access_api.py +++ b/quantcdn/api/ssh_access_api.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/api/subscription_api.py b/quantcdn/api/subscription_api.py new file mode 100644 index 00000000..e16c3b83 --- /dev/null +++ b/quantcdn/api/subscription_api.py @@ -0,0 +1,315 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + +import warnings +from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt +from typing import Any, Dict, List, Optional, Tuple, Union +from typing_extensions import Annotated + +from pydantic import Field, StrictStr +from typing import Optional +from typing_extensions import Annotated + +from quantcdn.api_client import ApiClient, RequestSerialized +from quantcdn.api_response import ApiResponse +from quantcdn.rest import RESTResponseType + + +class SubscriptionApi: + """NOTE: This class is auto generated by OpenAPI Generator + Ref: https://openapi-generator.tech + + Do not edit the class manually. + """ + + def __init__(self, api_client=None) -> None: + if api_client is None: + api_client = ApiClient.get_default() + self.api_client = api_client + + + @validate_call + def get_subscription_cloud_usage( + self, + organisation: StrictStr, + month: Annotated[Optional[StrictStr], Field(description="YYYY-MM, defaults to current month")] = None, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> None: + """Cloud-app cost breakdown for the subscription page + + Per-project compute/database/storage cost breakdown with spot discount, for the requested month and the month before it. Mirrors the subscription page's Cloud Apps card. + + :param organisation: (required) + :type organisation: str + :param month: YYYY-MM, defaults to current month + :type month: str + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._get_subscription_cloud_usage_serialize( + organisation=organisation, + month=month, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': None, + '403': None, + '500': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ).data + + + @validate_call + def get_subscription_cloud_usage_with_http_info( + self, + organisation: StrictStr, + month: Annotated[Optional[StrictStr], Field(description="YYYY-MM, defaults to current month")] = None, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> ApiResponse[None]: + """Cloud-app cost breakdown for the subscription page + + Per-project compute/database/storage cost breakdown with spot discount, for the requested month and the month before it. Mirrors the subscription page's Cloud Apps card. + + :param organisation: (required) + :type organisation: str + :param month: YYYY-MM, defaults to current month + :type month: str + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._get_subscription_cloud_usage_serialize( + organisation=organisation, + month=month, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': None, + '403': None, + '500': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ) + + + @validate_call + def get_subscription_cloud_usage_without_preload_content( + self, + organisation: StrictStr, + month: Annotated[Optional[StrictStr], Field(description="YYYY-MM, defaults to current month")] = None, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> RESTResponseType: + """Cloud-app cost breakdown for the subscription page + + Per-project compute/database/storage cost breakdown with spot discount, for the requested month and the month before it. Mirrors the subscription page's Cloud Apps card. + + :param organisation: (required) + :type organisation: str + :param month: YYYY-MM, defaults to current month + :type month: str + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._get_subscription_cloud_usage_serialize( + organisation=organisation, + month=month, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': None, + '403': None, + '500': None, + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _get_subscription_cloud_usage_serialize( + self, + organisation, + month, + _request_auth, + _content_type, + _headers, + _host_index, + ) -> RequestSerialized: + + _host = None + + _collection_formats: Dict[str, str] = { + } + + _path_params: Dict[str, str] = {} + _query_params: List[Tuple[str, str]] = [] + _header_params: Dict[str, Optional[str]] = _headers or {} + _form_params: List[Tuple[str, str]] = [] + _files: Dict[ + str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] + ] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + if organisation is not None: + _path_params['organisation'] = organisation + # process the query parameters + if month is not None: + + _query_params.append(('month', month)) + + # process the header parameters + # process the form parameters + # process the body parameter + + + + + # authentication setting + _auth_settings: List[str] = [ + 'BearerAuth' + ] + + return self.api_client.param_serialize( + method='GET', + resource_path='/api/v3/organizations/{organisation}/subscription/cloud-usage', + path_params=_path_params, + query_params=_query_params, + header_params=_header_params, + body=_body_params, + post_params=_form_params, + files=_files, + auth_settings=_auth_settings, + collection_formats=_collection_formats, + _host=_host, + _request_auth=_request_auth + ) + + diff --git a/quantcdn/api/tokens_api.py b/quantcdn/api/tokens_api.py new file mode 100644 index 00000000..bb5bbc84 --- /dev/null +++ b/quantcdn/api/tokens_api.py @@ -0,0 +1,877 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + +import warnings +from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt +from typing import Any, Dict, List, Optional, Tuple, Union +from typing_extensions import Annotated + +from pydantic import Field, StrictInt, StrictStr +from typing import List +from typing_extensions import Annotated +from quantcdn.models.tokens_create201_response import TokensCreate201Response +from quantcdn.models.tokens_create_request import TokensCreateRequest +from quantcdn.models.tokens_delete200_response import TokensDelete200Response +from quantcdn.models.tokens_list200_response_inner import TokensList200ResponseInner + +from quantcdn.api_client import ApiClient, RequestSerialized +from quantcdn.api_response import ApiResponse +from quantcdn.rest import RESTResponseType + + +class TokensApi: + """NOTE: This class is auto generated by OpenAPI Generator + Ref: https://openapi-generator.tech + + Do not edit the class manually. + """ + + def __init__(self, api_client=None) -> None: + if api_client is None: + api_client = ApiClient.get_default() + self.api_client = api_client + + + @validate_call + def tokens_create( + self, + organization: Annotated[StrictStr, Field(description="Organization identifier")], + tokens_create_request: TokensCreateRequest, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> TokensCreate201Response: + """Create a new API token scoped to this organization + + + :param organization: Organization identifier (required) + :type organization: str + :param tokens_create_request: (required) + :type tokens_create_request: TokensCreateRequest + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._tokens_create_serialize( + organization=organization, + tokens_create_request=tokens_create_request, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '201': "TokensCreate201Response", + '400': "V2Error", + '403': "V2Error", + '422': "V2Error", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ).data + + + @validate_call + def tokens_create_with_http_info( + self, + organization: Annotated[StrictStr, Field(description="Organization identifier")], + tokens_create_request: TokensCreateRequest, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> ApiResponse[TokensCreate201Response]: + """Create a new API token scoped to this organization + + + :param organization: Organization identifier (required) + :type organization: str + :param tokens_create_request: (required) + :type tokens_create_request: TokensCreateRequest + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._tokens_create_serialize( + organization=organization, + tokens_create_request=tokens_create_request, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '201': "TokensCreate201Response", + '400': "V2Error", + '403': "V2Error", + '422': "V2Error", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ) + + + @validate_call + def tokens_create_without_preload_content( + self, + organization: Annotated[StrictStr, Field(description="Organization identifier")], + tokens_create_request: TokensCreateRequest, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> RESTResponseType: + """Create a new API token scoped to this organization + + + :param organization: Organization identifier (required) + :type organization: str + :param tokens_create_request: (required) + :type tokens_create_request: TokensCreateRequest + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._tokens_create_serialize( + organization=organization, + tokens_create_request=tokens_create_request, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '201': "TokensCreate201Response", + '400': "V2Error", + '403': "V2Error", + '422': "V2Error", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _tokens_create_serialize( + self, + organization, + tokens_create_request, + _request_auth, + _content_type, + _headers, + _host_index, + ) -> RequestSerialized: + + _host = None + + _collection_formats: Dict[str, str] = { + } + + _path_params: Dict[str, str] = {} + _query_params: List[Tuple[str, str]] = [] + _header_params: Dict[str, Optional[str]] = _headers or {} + _form_params: List[Tuple[str, str]] = [] + _files: Dict[ + str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] + ] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + if organization is not None: + _path_params['organization'] = organization + # process the query parameters + # process the header parameters + # process the form parameters + # process the body parameter + if tokens_create_request is not None: + _body_params = tokens_create_request + + + # set the HTTP header `Accept` + if 'Accept' not in _header_params: + _header_params['Accept'] = self.api_client.select_header_accept( + [ + 'application/json' + ] + ) + + # set the HTTP header `Content-Type` + if _content_type: + _header_params['Content-Type'] = _content_type + else: + _default_content_type = ( + self.api_client.select_header_content_type( + [ + 'application/json' + ] + ) + ) + if _default_content_type is not None: + _header_params['Content-Type'] = _default_content_type + + # authentication setting + _auth_settings: List[str] = [ + 'BearerAuth' + ] + + return self.api_client.param_serialize( + method='POST', + resource_path='/api/v2/organizations/{organization}/tokens', + path_params=_path_params, + query_params=_query_params, + header_params=_header_params, + body=_body_params, + post_params=_form_params, + files=_files, + auth_settings=_auth_settings, + collection_formats=_collection_formats, + _host=_host, + _request_auth=_request_auth + ) + + + + + @validate_call + def tokens_delete( + self, + organization: Annotated[StrictStr, Field(description="Organization identifier")], + token_id: Annotated[StrictInt, Field(description="Token ID to revoke")], + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> TokensDelete200Response: + """Revoke an API token + + + :param organization: Organization identifier (required) + :type organization: str + :param token_id: Token ID to revoke (required) + :type token_id: int + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._tokens_delete_serialize( + organization=organization, + token_id=token_id, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "TokensDelete200Response", + '403': "V2Error", + '404': "V2Error", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ).data + + + @validate_call + def tokens_delete_with_http_info( + self, + organization: Annotated[StrictStr, Field(description="Organization identifier")], + token_id: Annotated[StrictInt, Field(description="Token ID to revoke")], + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> ApiResponse[TokensDelete200Response]: + """Revoke an API token + + + :param organization: Organization identifier (required) + :type organization: str + :param token_id: Token ID to revoke (required) + :type token_id: int + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._tokens_delete_serialize( + organization=organization, + token_id=token_id, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "TokensDelete200Response", + '403': "V2Error", + '404': "V2Error", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ) + + + @validate_call + def tokens_delete_without_preload_content( + self, + organization: Annotated[StrictStr, Field(description="Organization identifier")], + token_id: Annotated[StrictInt, Field(description="Token ID to revoke")], + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> RESTResponseType: + """Revoke an API token + + + :param organization: Organization identifier (required) + :type organization: str + :param token_id: Token ID to revoke (required) + :type token_id: int + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._tokens_delete_serialize( + organization=organization, + token_id=token_id, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "TokensDelete200Response", + '403': "V2Error", + '404': "V2Error", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _tokens_delete_serialize( + self, + organization, + token_id, + _request_auth, + _content_type, + _headers, + _host_index, + ) -> RequestSerialized: + + _host = None + + _collection_formats: Dict[str, str] = { + } + + _path_params: Dict[str, str] = {} + _query_params: List[Tuple[str, str]] = [] + _header_params: Dict[str, Optional[str]] = _headers or {} + _form_params: List[Tuple[str, str]] = [] + _files: Dict[ + str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] + ] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + if organization is not None: + _path_params['organization'] = organization + if token_id is not None: + _path_params['token_id'] = token_id + # process the query parameters + # process the header parameters + # process the form parameters + # process the body parameter + + + # set the HTTP header `Accept` + if 'Accept' not in _header_params: + _header_params['Accept'] = self.api_client.select_header_accept( + [ + 'application/json' + ] + ) + + + # authentication setting + _auth_settings: List[str] = [ + 'BearerAuth' + ] + + return self.api_client.param_serialize( + method='DELETE', + resource_path='/api/v2/organizations/{organization}/tokens/{token_id}', + path_params=_path_params, + query_params=_query_params, + header_params=_header_params, + body=_body_params, + post_params=_form_params, + files=_files, + auth_settings=_auth_settings, + collection_formats=_collection_formats, + _host=_host, + _request_auth=_request_auth + ) + + + + + @validate_call + def tokens_list( + self, + organization: Annotated[StrictStr, Field(description="Organization identifier")], + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> List[TokensList200ResponseInner]: + """List API tokens scoped to this organization + + + :param organization: Organization identifier (required) + :type organization: str + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._tokens_list_serialize( + organization=organization, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "List[TokensList200ResponseInner]", + '403': "V2Error", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ).data + + + @validate_call + def tokens_list_with_http_info( + self, + organization: Annotated[StrictStr, Field(description="Organization identifier")], + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> ApiResponse[List[TokensList200ResponseInner]]: + """List API tokens scoped to this organization + + + :param organization: Organization identifier (required) + :type organization: str + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._tokens_list_serialize( + organization=organization, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "List[TokensList200ResponseInner]", + '403': "V2Error", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ) + + + @validate_call + def tokens_list_without_preload_content( + self, + organization: Annotated[StrictStr, Field(description="Organization identifier")], + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> RESTResponseType: + """List API tokens scoped to this organization + + + :param organization: Organization identifier (required) + :type organization: str + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._tokens_list_serialize( + organization=organization, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "List[TokensList200ResponseInner]", + '403': "V2Error", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _tokens_list_serialize( + self, + organization, + _request_auth, + _content_type, + _headers, + _host_index, + ) -> RequestSerialized: + + _host = None + + _collection_formats: Dict[str, str] = { + } + + _path_params: Dict[str, str] = {} + _query_params: List[Tuple[str, str]] = [] + _header_params: Dict[str, Optional[str]] = _headers or {} + _form_params: List[Tuple[str, str]] = [] + _files: Dict[ + str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] + ] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + if organization is not None: + _path_params['organization'] = organization + # process the query parameters + # process the header parameters + # process the form parameters + # process the body parameter + + + # set the HTTP header `Accept` + if 'Accept' not in _header_params: + _header_params['Accept'] = self.api_client.select_header_accept( + [ + 'application/json' + ] + ) + + + # authentication setting + _auth_settings: List[str] = [ + 'BearerAuth' + ] + + return self.api_client.param_serialize( + method='GET', + resource_path='/api/v2/organizations/{organization}/tokens', + path_params=_path_params, + query_params=_query_params, + header_params=_header_params, + body=_body_params, + post_params=_form_params, + files=_files, + auth_settings=_auth_settings, + collection_formats=_collection_formats, + _host=_host, + _request_auth=_request_auth + ) + + diff --git a/quantcdn/api/variables_api.py b/quantcdn/api/variables_api.py index 6056171f..13f9a0dc 100644 --- a/quantcdn/api/variables_api.py +++ b/quantcdn/api/variables_api.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/api/volumes_api.py b/quantcdn/api/volumes_api.py index b45c93d3..d08ae699 100644 --- a/quantcdn/api/volumes_api.py +++ b/quantcdn/api/volumes_api.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/api_client.py b/quantcdn/api_client.py index 13cae242..5e00815b 100644 --- a/quantcdn/api_client.py +++ b/quantcdn/api_client.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/configuration.py b/quantcdn/configuration.py index 1a2eb5df..d4ec0d34 100644 --- a/quantcdn/configuration.py +++ b/quantcdn/configuration.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. @@ -510,7 +510,7 @@ def to_debug_report(self) -> str: return "Python SDK Debug Report:\n"\ "OS: {env}\n"\ "Python Version: {pyversion}\n"\ - "Version of the API: 4.9.0\n"\ + "Version of the API: 4.20.0\n"\ "SDK Package Version: 1.0.0".\ format(env=sys.platform, pyversion=sys.version) diff --git a/quantcdn/exceptions.py b/quantcdn/exceptions.py index 9b78c7c3..d3bb1828 100644 --- a/quantcdn/exceptions.py +++ b/quantcdn/exceptions.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/__init__.py b/quantcdn/models/__init__.py index c4179ae5..b98d72b1 100644 --- a/quantcdn/models/__init__.py +++ b/quantcdn/models/__init__.py @@ -6,7 +6,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. @@ -14,10 +14,18 @@ # import models into model package +from quantcdn.models.ai_search_chat_request import AiSearchChatRequest +from quantcdn.models.ai_search_delete_pages_request import AiSearchDeletePagesRequest +from quantcdn.models.ai_search_enable_request import AiSearchEnableRequest +from quantcdn.models.ai_search_ingest_pages_request import AiSearchIngestPagesRequest +from quantcdn.models.ai_search_ingest_pages_request_pages_inner import AiSearchIngestPagesRequestPagesInner +from quantcdn.models.ai_search_search_request import AiSearchSearchRequest +from quantcdn.models.ai_search_trigger_crawl_request import AiSearchTriggerCrawlRequest +from quantcdn.models.ai_search_update_settings_request import AiSearchUpdateSettingsRequest from quantcdn.models.application import Application +from quantcdn.models.application_cache import ApplicationCache from quantcdn.models.application_database import ApplicationDatabase from quantcdn.models.application_deployment_information_inner import ApplicationDeploymentInformationInner -from quantcdn.models.application_environments_inner import ApplicationEnvironmentsInner from quantcdn.models.application_filesystem import ApplicationFilesystem from quantcdn.models.application_image_reference import ApplicationImageReference from quantcdn.models.bulk_set_environment_variables_request import BulkSetEnvironmentVariablesRequest @@ -31,6 +39,7 @@ from quantcdn.models.chat_inference200_response_usage import ChatInference200ResponseUsage from quantcdn.models.chat_inference202_response import ChatInference202Response from quantcdn.models.chat_inference_request import ChatInferenceRequest +from quantcdn.models.chat_inference_request_guardrails import ChatInferenceRequestGuardrails from quantcdn.models.chat_inference_request_messages_inner import ChatInferenceRequestMessagesInner from quantcdn.models.chat_inference_request_messages_inner_content import ChatInferenceRequestMessagesInnerContent from quantcdn.models.chat_inference_request_messages_inner_content_one_of_inner import ChatInferenceRequestMessagesInnerContentOneOfInner @@ -88,6 +97,16 @@ from quantcdn.models.create_environment403_response import CreateEnvironment403Response from quantcdn.models.create_environment_request import CreateEnvironmentRequest from quantcdn.models.create_environment_request_environment_inner import CreateEnvironmentRequestEnvironmentInner +from quantcdn.models.create_filter_policy_request import CreateFilterPolicyRequest +from quantcdn.models.create_filter_policy_request_rules_inner import CreateFilterPolicyRequestRulesInner +from quantcdn.models.create_filter_policy_request_rules_inner_match import CreateFilterPolicyRequestRulesInnerMatch +from quantcdn.models.create_orchestration_request import CreateOrchestrationRequest +from quantcdn.models.create_orchestration_request_input_source import CreateOrchestrationRequestInputSource +from quantcdn.models.create_orchestration_request_stop_condition import CreateOrchestrationRequestStopCondition +from quantcdn.models.create_skill201_response import CreateSkill201Response +from quantcdn.models.create_skill_request import CreateSkillRequest +from quantcdn.models.create_slack_bot201_response import CreateSlackBot201Response +from quantcdn.models.create_slack_bot_request import CreateSlackBotRequest from quantcdn.models.create_task201_response import CreateTask201Response from quantcdn.models.create_task_request import CreateTaskRequest from quantcdn.models.create_vector_collection201_response import CreateVectorCollection201Response @@ -98,12 +117,18 @@ from quantcdn.models.cron_run import CronRun from quantcdn.models.delete_ai_agent200_response import DeleteAIAgent200Response from quantcdn.models.delete_ai_session200_response import DeleteAISession200Response +from quantcdn.models.delete_agent_overlay200_response import DeleteAgentOverlay200Response from quantcdn.models.delete_backup200_response import DeleteBackup200Response from quantcdn.models.delete_custom_tool200_response import DeleteCustomTool200Response from quantcdn.models.delete_file200_response import DeleteFile200Response +from quantcdn.models.delete_skill200_response import DeleteSkill200Response +from quantcdn.models.delete_skill_collection200_response import DeleteSkillCollection200Response +from quantcdn.models.delete_slack_bot200_response import DeleteSlackBot200Response from quantcdn.models.delete_task200_response import DeleteTask200Response from quantcdn.models.delete_task409_response import DeleteTask409Response -from quantcdn.models.delete_vector_collection200_response import DeleteVectorCollection200Response +from quantcdn.models.delete_vector_documents200_response import DeleteVectorDocuments200Response +from quantcdn.models.delete_vector_documents_request import DeleteVectorDocumentsRequest +from quantcdn.models.delete_vector_documents_request_metadata import DeleteVectorDocumentsRequestMetadata from quantcdn.models.download_backup200_response import DownloadBackup200Response from quantcdn.models.embeddings200_response import Embeddings200Response from quantcdn.models.embeddings200_response_embeddings import Embeddings200ResponseEmbeddings @@ -128,8 +153,11 @@ from quantcdn.models.get_ai_tool_execution_status200_response import GetAIToolExecutionStatus200Response from quantcdn.models.get_ai_tool_execution_status200_response_result import GetAIToolExecutionStatus200ResponseResult from quantcdn.models.get_ai_tool_execution_status404_response import GetAIToolExecutionStatus404Response -from quantcdn.models.get_ai_usage_stats200_response import GetAIUsageStats200Response -from quantcdn.models.get_ai_usage_stats200_response_by_model_value import GetAIUsageStats200ResponseByModelValue +from quantcdn.models.get_agent_overlay200_response import GetAgentOverlay200Response +from quantcdn.models.get_agent_overlay200_response_base import GetAgentOverlay200ResponseBase +from quantcdn.models.get_agent_overlay200_response_overlay import GetAgentOverlay200ResponseOverlay +from quantcdn.models.get_custom_tool200_response import GetCustomTool200Response +from quantcdn.models.get_custom_tool200_response_tool import GetCustomTool200ResponseTool from quantcdn.models.get_dependency_graph200_response import GetDependencyGraph200Response from quantcdn.models.get_durable_execution_status200_response import GetDurableExecutionStatus200Response from quantcdn.models.get_durable_execution_status200_response_error import GetDurableExecutionStatus200ResponseError @@ -141,6 +169,28 @@ from quantcdn.models.get_environment_logs200_response import GetEnvironmentLogs200Response from quantcdn.models.get_environment_logs200_response_log_events_inner import GetEnvironmentLogs200ResponseLogEventsInner from quantcdn.models.get_file200_response import GetFile200Response +from quantcdn.models.get_governance_config200_response import GetGovernanceConfig200Response +from quantcdn.models.get_governance_config200_response_spend_limits import GetGovernanceConfig200ResponseSpendLimits +from quantcdn.models.get_governance_config200_response_spend_limits_interface_limits_value import GetGovernanceConfig200ResponseSpendLimitsInterfaceLimitsValue +from quantcdn.models.get_governance_config200_response_spend_limits_user_overrides_value import GetGovernanceConfig200ResponseSpendLimitsUserOverridesValue +from quantcdn.models.get_governance_spend200_response import GetGovernanceSpend200Response +from quantcdn.models.get_governance_spend200_response_budget import GetGovernanceSpend200ResponseBudget +from quantcdn.models.get_governance_spend200_response_daily_budget import GetGovernanceSpend200ResponseDailyBudget +from quantcdn.models.get_governance_spend200_response_org_total import GetGovernanceSpend200ResponseOrgTotal +from quantcdn.models.get_governance_spend200_response_today_total import GetGovernanceSpend200ResponseTodayTotal +from quantcdn.models.get_governance_spend200_response_user_total import GetGovernanceSpend200ResponseUserTotal +from quantcdn.models.get_my_usage200_response import GetMyUsage200Response +from quantcdn.models.get_my_usage200_response_daily import GetMyUsage200ResponseDaily +from quantcdn.models.get_my_usage200_response_monthly import GetMyUsage200ResponseMonthly +from quantcdn.models.get_my_usage200_response_quota import GetMyUsage200ResponseQuota +from quantcdn.models.get_my_usage200_response_quota_daily_limit import GetMyUsage200ResponseQuotaDailyLimit +from quantcdn.models.get_my_usage200_response_quota_monthly_limit import GetMyUsage200ResponseQuotaMonthlyLimit +from quantcdn.models.get_restore_status200_response import GetRestoreStatus200Response +from quantcdn.models.get_scaling_policy_response import GetScalingPolicyResponse +from quantcdn.models.get_skill200_response import GetSkill200Response +from quantcdn.models.get_skill200_response_skill import GetSkill200ResponseSkill +from quantcdn.models.get_slack_bot200_response import GetSlackBot200Response +from quantcdn.models.get_slack_bot200_response_bot import GetSlackBot200ResponseBot from quantcdn.models.get_ssh_access_credentials200_response import GetSshAccessCredentials200Response from quantcdn.models.get_ssh_access_credentials200_response_credentials import GetSshAccessCredentials200ResponseCredentials from quantcdn.models.get_task200_response import GetTask200Response @@ -155,10 +205,18 @@ from quantcdn.models.image_generation_request_in_painting_params import ImageGenerationRequestInPaintingParams from quantcdn.models.image_generation_request_out_painting_params import ImageGenerationRequestOutPaintingParams from quantcdn.models.image_generation_request_text_to_image_params import ImageGenerationRequestTextToImageParams +from quantcdn.models.import_skill201_response import ImportSkill201Response +from quantcdn.models.import_skill_collection201_response import ImportSkillCollection201Response +from quantcdn.models.import_skill_collection_request import ImportSkillCollectionRequest +from quantcdn.models.import_skill_collection_request_source import ImportSkillCollectionRequestSource +from quantcdn.models.import_skill_request import ImportSkillRequest +from quantcdn.models.import_skill_request_source import ImportSkillRequestSource from quantcdn.models.kv_items_create200_response import KVItemsCreate200Response from quantcdn.models.kv_items_delete200_response import KVItemsDelete200Response from quantcdn.models.kv_items_show200_response import KVItemsShow200Response from quantcdn.models.kv_items_show200_response_value import KVItemsShow200ResponseValue +from quantcdn.models.kv_link_to_project200_response import KVLinkToProject200Response +from quantcdn.models.kv_link_to_project_request import KVLinkToProjectRequest from quantcdn.models.list_ai_agents200_response import ListAIAgents200Response from quantcdn.models.list_ai_agents200_response_agents_inner import ListAIAgents200ResponseAgentsInner from quantcdn.models.list_ai_models200_response import ListAIModels200Response @@ -179,10 +237,32 @@ from quantcdn.models.list_custom_tools200_response_tools_inner import ListCustomTools200ResponseToolsInner from quantcdn.models.list_files200_response import ListFiles200Response from quantcdn.models.list_files200_response_files_inner import ListFiles200ResponseFilesInner +from quantcdn.models.list_orchestration_batches200_response import ListOrchestrationBatches200Response +from quantcdn.models.list_orchestration_batches200_response_batches_inner import ListOrchestrationBatches200ResponseBatchesInner +from quantcdn.models.list_orchestrations200_response import ListOrchestrations200Response +from quantcdn.models.list_skill_collections200_response import ListSkillCollections200Response +from quantcdn.models.list_skill_collections200_response_collections_inner import ListSkillCollections200ResponseCollectionsInner +from quantcdn.models.list_skills200_response import ListSkills200Response +from quantcdn.models.list_skills200_response_skills_inner import ListSkills200ResponseSkillsInner +from quantcdn.models.list_slack_bots200_response import ListSlackBots200Response +from quantcdn.models.list_slack_bots200_response_bots_inner import ListSlackBots200ResponseBotsInner from quantcdn.models.list_tasks200_response import ListTasks200Response from quantcdn.models.list_tasks200_response_tasks_inner import ListTasks200ResponseTasksInner from quantcdn.models.list_vector_collections200_response import ListVectorCollections200Response from quantcdn.models.list_vector_collections200_response_collections_inner import ListVectorCollections200ResponseCollectionsInner +from quantcdn.models.oai_chat_completions200_response import OaiChatCompletions200Response +from quantcdn.models.oai_chat_completions200_response_choices_inner import OaiChatCompletions200ResponseChoicesInner +from quantcdn.models.oai_chat_completions200_response_choices_inner_message import OaiChatCompletions200ResponseChoicesInnerMessage +from quantcdn.models.oai_chat_completions200_response_usage import OaiChatCompletions200ResponseUsage +from quantcdn.models.oai_chat_completions_request import OaiChatCompletionsRequest +from quantcdn.models.oai_chat_completions_request_messages_inner import OaiChatCompletionsRequestMessagesInner +from quantcdn.models.oai_embeddings200_response import OaiEmbeddings200Response +from quantcdn.models.oai_embeddings200_response_data_inner import OaiEmbeddings200ResponseDataInner +from quantcdn.models.oai_embeddings200_response_usage import OaiEmbeddings200ResponseUsage +from quantcdn.models.oai_embeddings_request import OaiEmbeddingsRequest +from quantcdn.models.oai_get_model200_response import OaiGetModel200Response +from quantcdn.models.oai_list_models200_response import OaiListModels200Response +from quantcdn.models.oai_list_models200_response_data_inner import OaiListModels200ResponseDataInner from quantcdn.models.organizations_list200_response_inner import OrganizationsList200ResponseInner from quantcdn.models.patch_environment_compose202_response import PatchEnvironmentCompose202Response from quantcdn.models.patch_environment_compose202_response_spot_configuration import PatchEnvironmentCompose202ResponseSpotConfiguration @@ -195,13 +275,27 @@ from quantcdn.models.query_vector_collection200_response_results_inner import QueryVectorCollection200ResponseResultsInner from quantcdn.models.query_vector_collection_request import QueryVectorCollectionRequest from quantcdn.models.query_vector_collection_request_filter import QueryVectorCollectionRequestFilter -from quantcdn.models.scaling_policy import ScalingPolicy +from quantcdn.models.restore_database202_response import RestoreDatabase202Response +from quantcdn.models.restore_database_request import RestoreDatabaseRequest +from quantcdn.models.restore_filesystem202_response import RestoreFilesystem202Response +from quantcdn.models.restore_filesystem_request import RestoreFilesystemRequest +from quantcdn.models.scaling_policy_list_response import ScalingPolicyListResponse +from quantcdn.models.search_slack_workspace_channels200_response import SearchSlackWorkspaceChannels200Response +from quantcdn.models.search_slack_workspace_channels200_response_results_inner import SearchSlackWorkspaceChannels200ResponseResultsInner +from quantcdn.models.search_slack_workspace_users200_response import SearchSlackWorkspaceUsers200Response +from quantcdn.models.search_slack_workspace_users200_response_results_inner import SearchSlackWorkspaceUsers200ResponseResultsInner +from quantcdn.models.set_scaling_policy_request import SetScalingPolicyRequest from quantcdn.models.spot_configuration import SpotConfiguration from quantcdn.models.submit_tool_callback200_response import SubmitToolCallback200Response from quantcdn.models.submit_tool_callback_request import SubmitToolCallbackRequest from quantcdn.models.submit_tool_callback_request_tool_results_inner import SubmitToolCallbackRequestToolResultsInner from quantcdn.models.sync_operation import SyncOperation +from quantcdn.models.sync_skill_collection200_response import SyncSkillCollection200Response from quantcdn.models.sync_to_environment_request import SyncToEnvironmentRequest +from quantcdn.models.tokens_create201_response import TokensCreate201Response +from quantcdn.models.tokens_create_request import TokensCreateRequest +from quantcdn.models.tokens_delete200_response import TokensDelete200Response +from quantcdn.models.tokens_list200_response_inner import TokensList200ResponseInner from quantcdn.models.update_ai_agent200_response import UpdateAIAgent200Response from quantcdn.models.update_ai_agent_request import UpdateAIAgentRequest from quantcdn.models.update_ai_session200_response import UpdateAISession200Response @@ -211,6 +305,12 @@ from quantcdn.models.update_environment_request import UpdateEnvironmentRequest from quantcdn.models.update_environment_state_request import UpdateEnvironmentStateRequest from quantcdn.models.update_environment_variable_request import UpdateEnvironmentVariableRequest +from quantcdn.models.update_filter_policy_request import UpdateFilterPolicyRequest +from quantcdn.models.update_governance_config200_response import UpdateGovernanceConfig200Response +from quantcdn.models.update_governance_config_request import UpdateGovernanceConfigRequest +from quantcdn.models.update_skill200_response import UpdateSkill200Response +from quantcdn.models.update_skill_request import UpdateSkillRequest +from quantcdn.models.update_slack_bot_request import UpdateSlackBotRequest from quantcdn.models.update_task200_response import UpdateTask200Response from quantcdn.models.update_task_request import UpdateTaskRequest from quantcdn.models.upload_file201_response import UploadFile201Response @@ -219,6 +319,8 @@ from quantcdn.models.upload_vector_documents_request import UploadVectorDocumentsRequest from quantcdn.models.upload_vector_documents_request_documents_inner import UploadVectorDocumentsRequestDocumentsInner from quantcdn.models.upload_vector_documents_request_documents_inner_metadata import UploadVectorDocumentsRequestDocumentsInnerMetadata +from quantcdn.models.upsert_agent_overlay200_response import UpsertAgentOverlay200Response +from quantcdn.models.upsert_agent_overlay_request import UpsertAgentOverlayRequest from quantcdn.models.v1_content_item import V1ContentItem from quantcdn.models.v1_content_list_response import V1ContentListResponse from quantcdn.models.v1_content_request import V1ContentRequest @@ -274,6 +376,11 @@ from quantcdn.models.v2_domain_dns_validation_records_inner import V2DomainDnsValidationRecordsInner from quantcdn.models.v2_domain_request import V2DomainRequest from quantcdn.models.v2_error import V2Error +from quantcdn.models.v2_metric_data import V2MetricData +from quantcdn.models.v2_metric_data_point import V2MetricDataPoint +from quantcdn.models.v2_metric_data_point_timestamp import V2MetricDataPointTimestamp +from quantcdn.models.v2_metrics_meta import V2MetricsMeta +from quantcdn.models.v2_metrics_response import V2MetricsResponse from quantcdn.models.v2_organization import V2Organization from quantcdn.models.v2_organization_request import V2OrganizationRequest from quantcdn.models.v2_project import V2Project diff --git a/quantcdn/models/ai_search_chat_request.py b/quantcdn/models/ai_search_chat_request.py new file mode 100644 index 00000000..13862be8 --- /dev/null +++ b/quantcdn/models/ai_search_chat_request.py @@ -0,0 +1,94 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, Field, StrictStr +from typing import Any, ClassVar, Dict, List, Optional +from typing_extensions import Annotated +from typing import Optional, Set +from typing_extensions import Self + +class AiSearchChatRequest(BaseModel): + """ + AiSearchChatRequest + """ # noqa: E501 + message: StrictStr + session_id: Optional[StrictStr] = Field(default=None, alias="sessionId") + context_url: Optional[StrictStr] = Field(default=None, alias="contextUrl") + max_context_chunks: Optional[Annotated[int, Field(le=20, strict=True)]] = Field(default=None, alias="maxContextChunks") + __properties: ClassVar[List[str]] = ["message", "sessionId", "contextUrl", "maxContextChunks"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of AiSearchChatRequest from a JSON string""" + return cls.from_dict(json.loads(json_str)) + + def to_dict(self) -> Dict[str, Any]: + """Return the dictionary representation of the model using alias. + + This has the following differences from calling pydantic's + `self.model_dump(by_alias=True)`: + + * `None` is only added to the output dict for nullable fields that + were set at model initialization. Other fields with value `None` + are ignored. + """ + excluded_fields: Set[str] = set([ + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of AiSearchChatRequest from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "message": obj.get("message"), + "sessionId": obj.get("sessionId"), + "contextUrl": obj.get("contextUrl"), + "maxContextChunks": obj.get("maxContextChunks") + }) + return _obj + + diff --git a/quantcdn/models/ai_search_delete_pages_request.py b/quantcdn/models/ai_search_delete_pages_request.py new file mode 100644 index 00000000..6c2c0b57 --- /dev/null +++ b/quantcdn/models/ai_search_delete_pages_request.py @@ -0,0 +1,89 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, StrictStr +from typing import Any, ClassVar, Dict, List, Optional +from typing import Optional, Set +from typing_extensions import Self + +class AiSearchDeletePagesRequest(BaseModel): + """ + AiSearchDeletePagesRequest + """ # noqa: E501 + urls: Optional[List[StrictStr]] = None + patterns: Optional[List[StrictStr]] = None + __properties: ClassVar[List[str]] = ["urls", "patterns"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of AiSearchDeletePagesRequest from a JSON string""" + return cls.from_dict(json.loads(json_str)) + + def to_dict(self) -> Dict[str, Any]: + """Return the dictionary representation of the model using alias. + + This has the following differences from calling pydantic's + `self.model_dump(by_alias=True)`: + + * `None` is only added to the output dict for nullable fields that + were set at model initialization. Other fields with value `None` + are ignored. + """ + excluded_fields: Set[str] = set([ + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of AiSearchDeletePagesRequest from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "urls": obj.get("urls"), + "patterns": obj.get("patterns") + }) + return _obj + + diff --git a/quantcdn/models/ai_search_enable_request.py b/quantcdn/models/ai_search_enable_request.py new file mode 100644 index 00000000..d6eaee2d --- /dev/null +++ b/quantcdn/models/ai_search_enable_request.py @@ -0,0 +1,89 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, Field, StrictStr +from typing import Any, ClassVar, Dict, List, Optional +from typing import Optional, Set +from typing_extensions import Self + +class AiSearchEnableRequest(BaseModel): + """ + AiSearchEnableRequest + """ # noqa: E501 + base_url: Optional[StrictStr] = Field(default=None, alias="baseUrl") + crawler_config: Optional[Dict[str, Any]] = Field(default=None, alias="crawlerConfig") + __properties: ClassVar[List[str]] = ["baseUrl", "crawlerConfig"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of AiSearchEnableRequest from a JSON string""" + return cls.from_dict(json.loads(json_str)) + + def to_dict(self) -> Dict[str, Any]: + """Return the dictionary representation of the model using alias. + + This has the following differences from calling pydantic's + `self.model_dump(by_alias=True)`: + + * `None` is only added to the output dict for nullable fields that + were set at model initialization. Other fields with value `None` + are ignored. + """ + excluded_fields: Set[str] = set([ + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of AiSearchEnableRequest from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "baseUrl": obj.get("baseUrl"), + "crawlerConfig": obj.get("crawlerConfig") + }) + return _obj + + diff --git a/quantcdn/models/get_ai_usage_stats200_response.py b/quantcdn/models/ai_search_ingest_pages_request.py similarity index 58% rename from quantcdn/models/get_ai_usage_stats200_response.py rename to quantcdn/models/ai_search_ingest_pages_request.py index c9cbaffa..beb21ccd 100644 --- a/quantcdn/models/get_ai_usage_stats200_response.py +++ b/quantcdn/models/ai_search_ingest_pages_request.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. @@ -17,20 +17,19 @@ import re # noqa: F401 import json -from pydantic import BaseModel, ConfigDict, Field, StrictInt +from pydantic import BaseModel, ConfigDict, Field, StrictStr from typing import Any, ClassVar, Dict, List, Optional -from quantcdn.models.get_ai_usage_stats200_response_by_model_value import GetAIUsageStats200ResponseByModelValue +from quantcdn.models.ai_search_ingest_pages_request_pages_inner import AiSearchIngestPagesRequestPagesInner from typing import Optional, Set from typing_extensions import Self -class GetAIUsageStats200Response(BaseModel): +class AiSearchIngestPagesRequest(BaseModel): """ - GetAIUsageStats200Response + AiSearchIngestPagesRequest """ # noqa: E501 - total_requests: Optional[StrictInt] = Field(default=None, description="Total number of API requests") - total_tokens: Optional[StrictInt] = Field(default=None, description="Total tokens consumed across all requests") - by_model: Optional[Dict[str, GetAIUsageStats200ResponseByModelValue]] = Field(default=None, description="Usage breakdown by model ID") - __properties: ClassVar[List[str]] = ["total_requests", "total_tokens", "by_model"] + job_id: Optional[StrictStr] = Field(default=None, alias="jobId") + pages: List[AiSearchIngestPagesRequestPagesInner] + __properties: ClassVar[List[str]] = ["jobId", "pages"] model_config = ConfigDict( populate_by_name=True, @@ -50,7 +49,7 @@ def to_json(self) -> str: @classmethod def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of GetAIUsageStats200Response from a JSON string""" + """Create an instance of AiSearchIngestPagesRequest from a JSON string""" return cls.from_dict(json.loads(json_str)) def to_dict(self) -> Dict[str, Any]: @@ -71,18 +70,18 @@ def to_dict(self) -> Dict[str, Any]: exclude=excluded_fields, exclude_none=True, ) - # override the default output from pydantic by calling `to_dict()` of each value in by_model (dict) - _field_dict = {} - if self.by_model: - for _key_by_model in self.by_model: - if self.by_model[_key_by_model]: - _field_dict[_key_by_model] = self.by_model[_key_by_model].to_dict() - _dict['by_model'] = _field_dict + # override the default output from pydantic by calling `to_dict()` of each item in pages (list) + _items = [] + if self.pages: + for _item_pages in self.pages: + if _item_pages: + _items.append(_item_pages.to_dict()) + _dict['pages'] = _items return _dict @classmethod def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of GetAIUsageStats200Response from a dict""" + """Create an instance of AiSearchIngestPagesRequest from a dict""" if obj is None: return None @@ -90,14 +89,8 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: return cls.model_validate(obj) _obj = cls.model_validate({ - "total_requests": obj.get("total_requests"), - "total_tokens": obj.get("total_tokens"), - "by_model": dict( - (_k, GetAIUsageStats200ResponseByModelValue.from_dict(_v)) - for _k, _v in obj["by_model"].items() - ) - if obj.get("by_model") is not None - else None + "jobId": obj.get("jobId"), + "pages": [AiSearchIngestPagesRequestPagesInner.from_dict(_item) for _item in obj["pages"]] if obj.get("pages") is not None else None }) return _obj diff --git a/quantcdn/models/ai_search_ingest_pages_request_pages_inner.py b/quantcdn/models/ai_search_ingest_pages_request_pages_inner.py new file mode 100644 index 00000000..44d37fdf --- /dev/null +++ b/quantcdn/models/ai_search_ingest_pages_request_pages_inner.py @@ -0,0 +1,103 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr +from typing import Any, ClassVar, Dict, List, Optional +from typing import Optional, Set +from typing_extensions import Self + +class AiSearchIngestPagesRequestPagesInner(BaseModel): + """ + AiSearchIngestPagesRequestPagesInner + """ # noqa: E501 + url: StrictStr + title: StrictStr + content: StrictStr + content_type: Optional[StrictStr] = Field(default=None, alias="contentType") + fetched_at: Optional[StrictStr] = Field(default=None, alias="fetchedAt") + pre_processed: Optional[StrictBool] = Field(default=None, alias="preProcessed") + summary: Optional[StrictStr] = None + tags: Optional[List[StrictStr]] = None + topics: Optional[List[StrictStr]] = None + __properties: ClassVar[List[str]] = ["url", "title", "content", "contentType", "fetchedAt", "preProcessed", "summary", "tags", "topics"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of AiSearchIngestPagesRequestPagesInner from a JSON string""" + return cls.from_dict(json.loads(json_str)) + + def to_dict(self) -> Dict[str, Any]: + """Return the dictionary representation of the model using alias. + + This has the following differences from calling pydantic's + `self.model_dump(by_alias=True)`: + + * `None` is only added to the output dict for nullable fields that + were set at model initialization. Other fields with value `None` + are ignored. + """ + excluded_fields: Set[str] = set([ + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of AiSearchIngestPagesRequestPagesInner from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "url": obj.get("url"), + "title": obj.get("title"), + "content": obj.get("content"), + "contentType": obj.get("contentType"), + "fetchedAt": obj.get("fetchedAt"), + "preProcessed": obj.get("preProcessed"), + "summary": obj.get("summary"), + "tags": obj.get("tags"), + "topics": obj.get("topics") + }) + return _obj + + diff --git a/quantcdn/models/ai_search_search_request.py b/quantcdn/models/ai_search_search_request.py new file mode 100644 index 00000000..41088187 --- /dev/null +++ b/quantcdn/models/ai_search_search_request.py @@ -0,0 +1,92 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt, StrictStr +from typing import Any, ClassVar, Dict, List, Optional, Union +from typing_extensions import Annotated +from typing import Optional, Set +from typing_extensions import Self + +class AiSearchSearchRequest(BaseModel): + """ + AiSearchSearchRequest + """ # noqa: E501 + query: StrictStr + limit: Optional[Annotated[int, Field(le=50, strict=True)]] = None + min_score: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, alias="minScore") + __properties: ClassVar[List[str]] = ["query", "limit", "minScore"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of AiSearchSearchRequest from a JSON string""" + return cls.from_dict(json.loads(json_str)) + + def to_dict(self) -> Dict[str, Any]: + """Return the dictionary representation of the model using alias. + + This has the following differences from calling pydantic's + `self.model_dump(by_alias=True)`: + + * `None` is only added to the output dict for nullable fields that + were set at model initialization. Other fields with value `None` + are ignored. + """ + excluded_fields: Set[str] = set([ + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of AiSearchSearchRequest from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "query": obj.get("query"), + "limit": obj.get("limit"), + "minScore": obj.get("minScore") + }) + return _obj + + diff --git a/quantcdn/models/ai_search_trigger_crawl_request.py b/quantcdn/models/ai_search_trigger_crawl_request.py new file mode 100644 index 00000000..077fc3ca --- /dev/null +++ b/quantcdn/models/ai_search_trigger_crawl_request.py @@ -0,0 +1,87 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, StrictStr +from typing import Any, ClassVar, Dict, List +from typing import Optional, Set +from typing_extensions import Self + +class AiSearchTriggerCrawlRequest(BaseModel): + """ + AiSearchTriggerCrawlRequest + """ # noqa: E501 + crawler_uuid: StrictStr + __properties: ClassVar[List[str]] = ["crawler_uuid"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of AiSearchTriggerCrawlRequest from a JSON string""" + return cls.from_dict(json.loads(json_str)) + + def to_dict(self) -> Dict[str, Any]: + """Return the dictionary representation of the model using alias. + + This has the following differences from calling pydantic's + `self.model_dump(by_alias=True)`: + + * `None` is only added to the output dict for nullable fields that + were set at model initialization. Other fields with value `None` + are ignored. + """ + excluded_fields: Set[str] = set([ + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of AiSearchTriggerCrawlRequest from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "crawler_uuid": obj.get("crawler_uuid") + }) + return _obj + + diff --git a/quantcdn/models/ai_search_update_settings_request.py b/quantcdn/models/ai_search_update_settings_request.py new file mode 100644 index 00000000..a5d66854 --- /dev/null +++ b/quantcdn/models/ai_search_update_settings_request.py @@ -0,0 +1,89 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, Field +from typing import Any, ClassVar, Dict, List, Optional +from typing import Optional, Set +from typing_extensions import Self + +class AiSearchUpdateSettingsRequest(BaseModel): + """ + AiSearchUpdateSettingsRequest + """ # noqa: E501 + public_access: Optional[Dict[str, Any]] = Field(default=None, alias="publicAccess") + rate_limits: Optional[Dict[str, Any]] = Field(default=None, alias="rateLimits") + __properties: ClassVar[List[str]] = ["publicAccess", "rateLimits"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of AiSearchUpdateSettingsRequest from a JSON string""" + return cls.from_dict(json.loads(json_str)) + + def to_dict(self) -> Dict[str, Any]: + """Return the dictionary representation of the model using alias. + + This has the following differences from calling pydantic's + `self.model_dump(by_alias=True)`: + + * `None` is only added to the output dict for nullable fields that + were set at model initialization. Other fields with value `None` + are ignored. + """ + excluded_fields: Set[str] = set([ + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of AiSearchUpdateSettingsRequest from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "publicAccess": obj.get("publicAccess"), + "rateLimits": obj.get("rateLimits") + }) + return _obj + + diff --git a/quantcdn/models/application.py b/quantcdn/models/application.py index ddb9fc63..d5474621 100644 --- a/quantcdn/models/application.py +++ b/quantcdn/models/application.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. @@ -19,9 +19,9 @@ from pydantic import BaseModel, ConfigDict, Field, StrictInt, StrictStr from typing import Any, ClassVar, Dict, List, Optional +from quantcdn.models.application_cache import ApplicationCache from quantcdn.models.application_database import ApplicationDatabase from quantcdn.models.application_deployment_information_inner import ApplicationDeploymentInformationInner -from quantcdn.models.application_environments_inner import ApplicationEnvironmentsInner from quantcdn.models.application_filesystem import ApplicationFilesystem from quantcdn.models.application_image_reference import ApplicationImageReference from quantcdn.models.compose import Compose @@ -36,6 +36,7 @@ class Application(BaseModel): organisation: StrictStr = Field(description="Organisation machine name") database: Optional[ApplicationDatabase] = None filesystem: Optional[ApplicationFilesystem] = None + cache: Optional[ApplicationCache] = None compose_definition: Optional[Compose] = Field(default=None, alias="composeDefinition") status: Optional[StrictStr] = Field(default=None, description="Application status") deployment_information: Optional[List[ApplicationDeploymentInformationInner]] = Field(default=None, description="Deployment history", alias="deploymentInformation") @@ -45,8 +46,8 @@ class Application(BaseModel): max_capacity: Optional[StrictInt] = Field(default=None, description="Maximum task count for auto-scaling", alias="maxCapacity") desired_count: Optional[StrictInt] = Field(default=None, description="Desired task count", alias="desiredCount") running_count: Optional[StrictInt] = Field(default=None, description="Currently running task count", alias="runningCount") - environments: Optional[List[ApplicationEnvironmentsInner]] = Field(default=None, description="List of environments") - __properties: ClassVar[List[str]] = ["appName", "organisation", "database", "filesystem", "composeDefinition", "status", "deploymentInformation", "imageReference", "containerNames", "minCapacity", "maxCapacity", "desiredCount", "runningCount", "environments"] + environment_names: Optional[List[StrictStr]] = Field(default=None, description="List of environment names (read-only)", alias="environmentNames") + __properties: ClassVar[List[str]] = ["appName", "organisation", "database", "filesystem", "cache", "composeDefinition", "status", "deploymentInformation", "imageReference", "containerNames", "minCapacity", "maxCapacity", "desiredCount", "runningCount", "environmentNames"] model_config = ConfigDict( populate_by_name=True, @@ -78,8 +79,16 @@ def to_dict(self) -> Dict[str, Any]: * `None` is only added to the output dict for nullable fields that were set at model initialization. Other fields with value `None` are ignored. + * OpenAPI `readOnly` fields are excluded. + * OpenAPI `readOnly` fields are excluded. + * OpenAPI `readOnly` fields are excluded. + * OpenAPI `readOnly` fields are excluded. """ excluded_fields: Set[str] = set([ + "status", + "deployment_information", + "container_names", + "environment_names", ]) _dict = self.model_dump( @@ -93,6 +102,9 @@ def to_dict(self) -> Dict[str, Any]: # override the default output from pydantic by calling `to_dict()` of filesystem if self.filesystem: _dict['filesystem'] = self.filesystem.to_dict() + # override the default output from pydantic by calling `to_dict()` of cache + if self.cache: + _dict['cache'] = self.cache.to_dict() # override the default output from pydantic by calling `to_dict()` of compose_definition if self.compose_definition: _dict['composeDefinition'] = self.compose_definition.to_dict() @@ -106,13 +118,6 @@ def to_dict(self) -> Dict[str, Any]: # override the default output from pydantic by calling `to_dict()` of image_reference if self.image_reference: _dict['imageReference'] = self.image_reference.to_dict() - # override the default output from pydantic by calling `to_dict()` of each item in environments (list) - _items = [] - if self.environments: - for _item_environments in self.environments: - if _item_environments: - _items.append(_item_environments.to_dict()) - _dict['environments'] = _items # set to None if database (nullable) is None # and model_fields_set contains the field if self.database is None and "database" in self.model_fields_set: @@ -123,6 +128,11 @@ def to_dict(self) -> Dict[str, Any]: if self.filesystem is None and "filesystem" in self.model_fields_set: _dict['filesystem'] = None + # set to None if cache (nullable) is None + # and model_fields_set contains the field + if self.cache is None and "cache" in self.model_fields_set: + _dict['cache'] = None + # set to None if status (nullable) is None # and model_fields_set contains the field if self.status is None and "status" in self.model_fields_set: @@ -163,10 +173,10 @@ def to_dict(self) -> Dict[str, Any]: if self.running_count is None and "running_count" in self.model_fields_set: _dict['runningCount'] = None - # set to None if environments (nullable) is None + # set to None if environment_names (nullable) is None # and model_fields_set contains the field - if self.environments is None and "environments" in self.model_fields_set: - _dict['environments'] = None + if self.environment_names is None and "environment_names" in self.model_fields_set: + _dict['environmentNames'] = None return _dict @@ -184,6 +194,7 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: "organisation": obj.get("organisation"), "database": ApplicationDatabase.from_dict(obj["database"]) if obj.get("database") is not None else None, "filesystem": ApplicationFilesystem.from_dict(obj["filesystem"]) if obj.get("filesystem") is not None else None, + "cache": ApplicationCache.from_dict(obj["cache"]) if obj.get("cache") is not None else None, "composeDefinition": Compose.from_dict(obj["composeDefinition"]) if obj.get("composeDefinition") is not None else None, "status": obj.get("status"), "deploymentInformation": [ApplicationDeploymentInformationInner.from_dict(_item) for _item in obj["deploymentInformation"]] if obj.get("deploymentInformation") is not None else None, @@ -193,7 +204,7 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: "maxCapacity": obj.get("maxCapacity"), "desiredCount": obj.get("desiredCount"), "runningCount": obj.get("runningCount"), - "environments": [ApplicationEnvironmentsInner.from_dict(_item) for _item in obj["environments"]] if obj.get("environments") is not None else None + "environmentNames": obj.get("environmentNames") }) return _obj diff --git a/quantcdn/models/application_cache.py b/quantcdn/models/application_cache.py new file mode 100644 index 00000000..4616a418 --- /dev/null +++ b/quantcdn/models/application_cache.py @@ -0,0 +1,106 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, Field, StrictInt, StrictStr +from typing import Any, ClassVar, Dict, List, Optional +from typing import Optional, Set +from typing_extensions import Self + +class ApplicationCache(BaseModel): + """ + Managed Valkey cache configuration + """ # noqa: E501 + cache_endpoint: Optional[StrictStr] = Field(default=None, description="Cache cluster endpoint", alias="cacheEndpoint") + cache_identifier: Optional[StrictStr] = Field(default=None, description="Cache cluster identifier", alias="cacheIdentifier") + data_storage_max_gb: Optional[StrictInt] = Field(default=None, description="Maximum cache storage in GB", alias="dataStorageMaxGb") + __properties: ClassVar[List[str]] = ["cacheEndpoint", "cacheIdentifier", "dataStorageMaxGb"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of ApplicationCache from a JSON string""" + return cls.from_dict(json.loads(json_str)) + + def to_dict(self) -> Dict[str, Any]: + """Return the dictionary representation of the model using alias. + + This has the following differences from calling pydantic's + `self.model_dump(by_alias=True)`: + + * `None` is only added to the output dict for nullable fields that + were set at model initialization. Other fields with value `None` + are ignored. + """ + excluded_fields: Set[str] = set([ + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + # set to None if cache_endpoint (nullable) is None + # and model_fields_set contains the field + if self.cache_endpoint is None and "cache_endpoint" in self.model_fields_set: + _dict['cacheEndpoint'] = None + + # set to None if cache_identifier (nullable) is None + # and model_fields_set contains the field + if self.cache_identifier is None and "cache_identifier" in self.model_fields_set: + _dict['cacheIdentifier'] = None + + # set to None if data_storage_max_gb (nullable) is None + # and model_fields_set contains the field + if self.data_storage_max_gb is None and "data_storage_max_gb" in self.model_fields_set: + _dict['dataStorageMaxGb'] = None + + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of ApplicationCache from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "cacheEndpoint": obj.get("cacheEndpoint"), + "cacheIdentifier": obj.get("cacheIdentifier"), + "dataStorageMaxGb": obj.get("dataStorageMaxGb") + }) + return _obj + + diff --git a/quantcdn/models/application_database.py b/quantcdn/models/application_database.py index 00db1869..3ac0e4d4 100644 --- a/quantcdn/models/application_database.py +++ b/quantcdn/models/application_database.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/application_deployment_information_inner.py b/quantcdn/models/application_deployment_information_inner.py index cc2b196d..3ae98d9a 100644 --- a/quantcdn/models/application_deployment_information_inner.py +++ b/quantcdn/models/application_deployment_information_inner.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/application_filesystem.py b/quantcdn/models/application_filesystem.py index 12e386b6..bedea532 100644 --- a/quantcdn/models/application_filesystem.py +++ b/quantcdn/models/application_filesystem.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/application_image_reference.py b/quantcdn/models/application_image_reference.py index 876a9a29..566d3357 100644 --- a/quantcdn/models/application_image_reference.py +++ b/quantcdn/models/application_image_reference.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/bulk_set_environment_variables_request.py b/quantcdn/models/bulk_set_environment_variables_request.py index 6475570c..e13f6344 100644 --- a/quantcdn/models/bulk_set_environment_variables_request.py +++ b/quantcdn/models/bulk_set_environment_variables_request.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/bulk_set_environment_variables_request_environment_inner.py b/quantcdn/models/bulk_set_environment_variables_request_environment_inner.py index 8e5dd36e..46c82e6a 100644 --- a/quantcdn/models/bulk_set_environment_variables_request_environment_inner.py +++ b/quantcdn/models/bulk_set_environment_variables_request_environment_inner.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/chat_inference200_response.py b/quantcdn/models/chat_inference200_response.py index 1560e914..55f12de1 100644 --- a/quantcdn/models/chat_inference200_response.py +++ b/quantcdn/models/chat_inference200_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/chat_inference200_response_response.py b/quantcdn/models/chat_inference200_response_response.py index 8a0170aa..23cf2f1a 100644 --- a/quantcdn/models/chat_inference200_response_response.py +++ b/quantcdn/models/chat_inference200_response_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/chat_inference200_response_response_tool_use.py b/quantcdn/models/chat_inference200_response_response_tool_use.py index 1af39dc6..8396d052 100644 --- a/quantcdn/models/chat_inference200_response_response_tool_use.py +++ b/quantcdn/models/chat_inference200_response_response_tool_use.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/chat_inference200_response_response_tool_use_one_of.py b/quantcdn/models/chat_inference200_response_response_tool_use_one_of.py index bc7d1a66..0c215504 100644 --- a/quantcdn/models/chat_inference200_response_response_tool_use_one_of.py +++ b/quantcdn/models/chat_inference200_response_response_tool_use_one_of.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/chat_inference200_response_response_tool_use_one_of1_inner.py b/quantcdn/models/chat_inference200_response_response_tool_use_one_of1_inner.py index c8b6d395..dbdc175e 100644 --- a/quantcdn/models/chat_inference200_response_response_tool_use_one_of1_inner.py +++ b/quantcdn/models/chat_inference200_response_response_tool_use_one_of1_inner.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/chat_inference200_response_response_tool_use_one_of_result.py b/quantcdn/models/chat_inference200_response_response_tool_use_one_of_result.py index 3b765a04..ccaf0783 100644 --- a/quantcdn/models/chat_inference200_response_response_tool_use_one_of_result.py +++ b/quantcdn/models/chat_inference200_response_response_tool_use_one_of_result.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/chat_inference200_response_usage.py b/quantcdn/models/chat_inference200_response_usage.py index bd22513a..b7b9ac68 100644 --- a/quantcdn/models/chat_inference200_response_usage.py +++ b/quantcdn/models/chat_inference200_response_usage.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. @@ -17,19 +17,20 @@ import re # noqa: F401 import json -from pydantic import BaseModel, ConfigDict, Field, StrictInt -from typing import Any, ClassVar, Dict, List, Optional +from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt +from typing import Any, ClassVar, Dict, List, Optional, Union from typing import Optional, Set from typing_extensions import Self class ChatInference200ResponseUsage(BaseModel): """ - Token usage information + Token usage and cost for this inference call """ # noqa: E501 input_tokens: Optional[StrictInt] = Field(default=None, description="Number of input tokens", alias="inputTokens") output_tokens: Optional[StrictInt] = Field(default=None, description="Number of output tokens", alias="outputTokens") total_tokens: Optional[StrictInt] = Field(default=None, description="Total tokens consumed", alias="totalTokens") - __properties: ClassVar[List[str]] = ["inputTokens", "outputTokens", "totalTokens"] + cost_cents: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="Cost of this inference call in US cents", alias="costCents") + __properties: ClassVar[List[str]] = ["inputTokens", "outputTokens", "totalTokens", "costCents"] model_config = ConfigDict( populate_by_name=True, @@ -84,7 +85,8 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: _obj = cls.model_validate({ "inputTokens": obj.get("inputTokens"), "outputTokens": obj.get("outputTokens"), - "totalTokens": obj.get("totalTokens") + "totalTokens": obj.get("totalTokens"), + "costCents": obj.get("costCents") }) return _obj diff --git a/quantcdn/models/chat_inference202_response.py b/quantcdn/models/chat_inference202_response.py index 461b23af..a3ad06f1 100644 --- a/quantcdn/models/chat_inference202_response.py +++ b/quantcdn/models/chat_inference202_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/chat_inference_request.py b/quantcdn/models/chat_inference_request.py index a59e6332..7a640f29 100644 --- a/quantcdn/models/chat_inference_request.py +++ b/quantcdn/models/chat_inference_request.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. @@ -20,6 +20,7 @@ from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr from typing import Any, ClassVar, Dict, List, Optional, Union from typing_extensions import Annotated +from quantcdn.models.chat_inference_request_guardrails import ChatInferenceRequestGuardrails from quantcdn.models.chat_inference_request_messages_inner import ChatInferenceRequestMessagesInner from quantcdn.models.chat_inference_request_response_format import ChatInferenceRequestResponseFormat from quantcdn.models.chat_inference_request_tool_config import ChatInferenceRequestToolConfig @@ -42,7 +43,10 @@ class ChatInferenceRequest(BaseModel): tool_config: Optional[ChatInferenceRequestToolConfig] = Field(default=None, alias="toolConfig") session_id: Optional[StrictStr] = Field(default=None, description="Optional session ID for conversation continuity. Omit to use stateless mode, include to continue an existing session.", alias="sessionId") var_async: Optional[StrictBool] = Field(default=False, description="Enable async/durable execution mode. When true, returns 202 with pollUrl instead of waiting for completion. Use for long-running inference, client-executed tools, or operations >30 seconds.", alias="async") - __properties: ClassVar[List[str]] = ["messages", "modelId", "temperature", "maxTokens", "topP", "stream", "systemPrompt", "stopSequences", "responseFormat", "toolConfig", "sessionId", "async"] + allowed_tools: Optional[List[StrictStr]] = Field(default=None, description="Top-level convenience alias for toolConfig.allowedTools. Whitelists which tools can be auto-executed.", alias="allowedTools") + guardrails: Optional[ChatInferenceRequestGuardrails] = None + long_context: Optional[StrictBool] = Field(default=False, description="Enable 1M context window support regardless of token estimation. Use when sending large payloads (>200K tokens).", alias="longContext") + __properties: ClassVar[List[str]] = ["messages", "modelId", "temperature", "maxTokens", "topP", "stream", "systemPrompt", "stopSequences", "responseFormat", "toolConfig", "sessionId", "async", "allowedTools", "guardrails", "longContext"] model_config = ConfigDict( populate_by_name=True, @@ -96,6 +100,9 @@ def to_dict(self) -> Dict[str, Any]: # override the default output from pydantic by calling `to_dict()` of tool_config if self.tool_config: _dict['toolConfig'] = self.tool_config.to_dict() + # override the default output from pydantic by calling `to_dict()` of guardrails + if self.guardrails: + _dict['guardrails'] = self.guardrails.to_dict() return _dict @classmethod @@ -119,7 +126,10 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: "responseFormat": ChatInferenceRequestResponseFormat.from_dict(obj["responseFormat"]) if obj.get("responseFormat") is not None else None, "toolConfig": ChatInferenceRequestToolConfig.from_dict(obj["toolConfig"]) if obj.get("toolConfig") is not None else None, "sessionId": obj.get("sessionId"), - "async": obj.get("async") if obj.get("async") is not None else False + "async": obj.get("async") if obj.get("async") is not None else False, + "allowedTools": obj.get("allowedTools"), + "guardrails": ChatInferenceRequestGuardrails.from_dict(obj["guardrails"]) if obj.get("guardrails") is not None else None, + "longContext": obj.get("longContext") if obj.get("longContext") is not None else False }) return _obj diff --git a/quantcdn/models/chat_inference_request_guardrails.py b/quantcdn/models/chat_inference_request_guardrails.py new file mode 100644 index 00000000..a3ead518 --- /dev/null +++ b/quantcdn/models/chat_inference_request_guardrails.py @@ -0,0 +1,101 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator +from typing import Any, ClassVar, Dict, List, Optional +from typing import Optional, Set +from typing_extensions import Self + +class ChatInferenceRequestGuardrails(BaseModel): + """ + AWS Bedrock guardrails configuration for content filtering and safety. + """ # noqa: E501 + guardrail_identifier: Optional[StrictStr] = Field(default=None, description="Guardrail identifier from AWS Bedrock", alias="guardrailIdentifier") + guardrail_version: Optional[StrictStr] = Field(default=None, description="Guardrail version", alias="guardrailVersion") + trace: Optional[StrictStr] = Field(default=None, description="Enable guardrail trace output") + __properties: ClassVar[List[str]] = ["guardrailIdentifier", "guardrailVersion", "trace"] + + @field_validator('trace') + def trace_validate_enum(cls, value): + """Validates the enum""" + if value is None: + return value + + if value not in set(['enabled', 'disabled']): + raise ValueError("must be one of enum values ('enabled', 'disabled')") + return value + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of ChatInferenceRequestGuardrails from a JSON string""" + return cls.from_dict(json.loads(json_str)) + + def to_dict(self) -> Dict[str, Any]: + """Return the dictionary representation of the model using alias. + + This has the following differences from calling pydantic's + `self.model_dump(by_alias=True)`: + + * `None` is only added to the output dict for nullable fields that + were set at model initialization. Other fields with value `None` + are ignored. + """ + excluded_fields: Set[str] = set([ + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of ChatInferenceRequestGuardrails from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "guardrailIdentifier": obj.get("guardrailIdentifier"), + "guardrailVersion": obj.get("guardrailVersion"), + "trace": obj.get("trace") + }) + return _obj + + diff --git a/quantcdn/models/chat_inference_request_messages_inner.py b/quantcdn/models/chat_inference_request_messages_inner.py index 816d56fe..5013596c 100644 --- a/quantcdn/models/chat_inference_request_messages_inner.py +++ b/quantcdn/models/chat_inference_request_messages_inner.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/chat_inference_request_messages_inner_content.py b/quantcdn/models/chat_inference_request_messages_inner_content.py index 64967f13..b740cacb 100644 --- a/quantcdn/models/chat_inference_request_messages_inner_content.py +++ b/quantcdn/models/chat_inference_request_messages_inner_content.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/chat_inference_request_messages_inner_content_one_of_inner.py b/quantcdn/models/chat_inference_request_messages_inner_content_one_of_inner.py index 0b57d3c4..804b85b4 100644 --- a/quantcdn/models/chat_inference_request_messages_inner_content_one_of_inner.py +++ b/quantcdn/models/chat_inference_request_messages_inner_content_one_of_inner.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/chat_inference_request_messages_inner_content_one_of_inner_one_of.py b/quantcdn/models/chat_inference_request_messages_inner_content_one_of_inner_one_of.py index 992a46ec..6b96f02f 100644 --- a/quantcdn/models/chat_inference_request_messages_inner_content_one_of_inner_one_of.py +++ b/quantcdn/models/chat_inference_request_messages_inner_content_one_of_inner_one_of.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/chat_inference_request_messages_inner_content_one_of_inner_one_of1.py b/quantcdn/models/chat_inference_request_messages_inner_content_one_of_inner_one_of1.py index 0277155f..78bbd35a 100644 --- a/quantcdn/models/chat_inference_request_messages_inner_content_one_of_inner_one_of1.py +++ b/quantcdn/models/chat_inference_request_messages_inner_content_one_of_inner_one_of1.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/chat_inference_request_messages_inner_content_one_of_inner_one_of1_image.py b/quantcdn/models/chat_inference_request_messages_inner_content_one_of_inner_one_of1_image.py index 6b092d86..9c6c9cc0 100644 --- a/quantcdn/models/chat_inference_request_messages_inner_content_one_of_inner_one_of1_image.py +++ b/quantcdn/models/chat_inference_request_messages_inner_content_one_of_inner_one_of1_image.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/chat_inference_request_messages_inner_content_one_of_inner_one_of1_image_source.py b/quantcdn/models/chat_inference_request_messages_inner_content_one_of_inner_one_of1_image_source.py index 585aee04..836ddacf 100644 --- a/quantcdn/models/chat_inference_request_messages_inner_content_one_of_inner_one_of1_image_source.py +++ b/quantcdn/models/chat_inference_request_messages_inner_content_one_of_inner_one_of1_image_source.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/chat_inference_request_messages_inner_content_one_of_inner_one_of2.py b/quantcdn/models/chat_inference_request_messages_inner_content_one_of_inner_one_of2.py index d5660058..89b501d5 100644 --- a/quantcdn/models/chat_inference_request_messages_inner_content_one_of_inner_one_of2.py +++ b/quantcdn/models/chat_inference_request_messages_inner_content_one_of_inner_one_of2.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/chat_inference_request_messages_inner_content_one_of_inner_one_of2_video.py b/quantcdn/models/chat_inference_request_messages_inner_content_one_of_inner_one_of2_video.py index 51475b30..754cd1df 100644 --- a/quantcdn/models/chat_inference_request_messages_inner_content_one_of_inner_one_of2_video.py +++ b/quantcdn/models/chat_inference_request_messages_inner_content_one_of_inner_one_of2_video.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/chat_inference_request_messages_inner_content_one_of_inner_one_of2_video_source.py b/quantcdn/models/chat_inference_request_messages_inner_content_one_of_inner_one_of2_video_source.py index 32454fb4..2d930b22 100644 --- a/quantcdn/models/chat_inference_request_messages_inner_content_one_of_inner_one_of2_video_source.py +++ b/quantcdn/models/chat_inference_request_messages_inner_content_one_of_inner_one_of2_video_source.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/chat_inference_request_messages_inner_content_one_of_inner_one_of3.py b/quantcdn/models/chat_inference_request_messages_inner_content_one_of_inner_one_of3.py index b9ef7626..d405758f 100644 --- a/quantcdn/models/chat_inference_request_messages_inner_content_one_of_inner_one_of3.py +++ b/quantcdn/models/chat_inference_request_messages_inner_content_one_of_inner_one_of3.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/chat_inference_request_messages_inner_content_one_of_inner_one_of3_document.py b/quantcdn/models/chat_inference_request_messages_inner_content_one_of_inner_one_of3_document.py index 740e44f5..dff95808 100644 --- a/quantcdn/models/chat_inference_request_messages_inner_content_one_of_inner_one_of3_document.py +++ b/quantcdn/models/chat_inference_request_messages_inner_content_one_of_inner_one_of3_document.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/chat_inference_request_messages_inner_content_one_of_inner_one_of3_document_source.py b/quantcdn/models/chat_inference_request_messages_inner_content_one_of_inner_one_of3_document_source.py index c4af379d..8bf9fd42 100644 --- a/quantcdn/models/chat_inference_request_messages_inner_content_one_of_inner_one_of3_document_source.py +++ b/quantcdn/models/chat_inference_request_messages_inner_content_one_of_inner_one_of3_document_source.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/chat_inference_request_response_format.py b/quantcdn/models/chat_inference_request_response_format.py index b4bdcb8e..485062a2 100644 --- a/quantcdn/models/chat_inference_request_response_format.py +++ b/quantcdn/models/chat_inference_request_response_format.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/chat_inference_request_tool_config.py b/quantcdn/models/chat_inference_request_tool_config.py index f661c281..19250cd8 100644 --- a/quantcdn/models/chat_inference_request_tool_config.py +++ b/quantcdn/models/chat_inference_request_tool_config.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/chat_inference_request_tool_config_tools_inner.py b/quantcdn/models/chat_inference_request_tool_config_tools_inner.py index bbec911a..a24d892d 100644 --- a/quantcdn/models/chat_inference_request_tool_config_tools_inner.py +++ b/quantcdn/models/chat_inference_request_tool_config_tools_inner.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/chat_inference_request_tool_config_tools_inner_tool_spec.py b/quantcdn/models/chat_inference_request_tool_config_tools_inner_tool_spec.py index b9c0b470..bd93d252 100644 --- a/quantcdn/models/chat_inference_request_tool_config_tools_inner_tool_spec.py +++ b/quantcdn/models/chat_inference_request_tool_config_tools_inner_tool_spec.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/chat_inference_request_tool_config_tools_inner_tool_spec_input_schema.py b/quantcdn/models/chat_inference_request_tool_config_tools_inner_tool_spec_input_schema.py index d94ef857..35f8d7a9 100644 --- a/quantcdn/models/chat_inference_request_tool_config_tools_inner_tool_spec_input_schema.py +++ b/quantcdn/models/chat_inference_request_tool_config_tools_inner_tool_spec_input_schema.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/chat_inference_stream_request.py b/quantcdn/models/chat_inference_stream_request.py index aed07cd3..9b9ded64 100644 --- a/quantcdn/models/chat_inference_stream_request.py +++ b/quantcdn/models/chat_inference_stream_request.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. @@ -20,6 +20,7 @@ from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr from typing import Any, ClassVar, Dict, List, Optional, Union from typing_extensions import Annotated +from quantcdn.models.chat_inference_request_guardrails import ChatInferenceRequestGuardrails from quantcdn.models.chat_inference_request_response_format import ChatInferenceRequestResponseFormat from quantcdn.models.chat_inference_request_tool_config import ChatInferenceRequestToolConfig from quantcdn.models.chat_inference_stream_request_messages_inner import ChatInferenceStreamRequestMessagesInner @@ -41,7 +42,10 @@ class ChatInferenceStreamRequest(BaseModel): tool_config: Optional[ChatInferenceRequestToolConfig] = Field(default=None, alias="toolConfig") session_id: Optional[StrictStr] = Field(default=None, description="Optional session ID for conversation continuity. Omit to use stateless mode, include to continue an existing session.", alias="sessionId") var_async: Optional[StrictBool] = Field(default=False, description="Enable async/durable execution mode. When true, returns 202 with pollUrl instead of streaming. Use for long-running inference, client-executed tools, or operations >30 seconds.", alias="async") - __properties: ClassVar[List[str]] = ["messages", "modelId", "temperature", "maxTokens", "topP", "systemPrompt", "stopSequences", "responseFormat", "toolConfig", "sessionId", "async"] + allowed_tools: Optional[List[StrictStr]] = Field(default=None, description="Top-level convenience alias for toolConfig.allowedTools. Whitelists which tools can be auto-executed.", alias="allowedTools") + guardrails: Optional[ChatInferenceRequestGuardrails] = None + long_context: Optional[StrictBool] = Field(default=False, description="Enable 1M context window support regardless of token estimation. Use when sending large payloads (>200K tokens).", alias="longContext") + __properties: ClassVar[List[str]] = ["messages", "modelId", "temperature", "maxTokens", "topP", "systemPrompt", "stopSequences", "responseFormat", "toolConfig", "sessionId", "async", "allowedTools", "guardrails", "longContext"] model_config = ConfigDict( populate_by_name=True, @@ -95,6 +99,9 @@ def to_dict(self) -> Dict[str, Any]: # override the default output from pydantic by calling `to_dict()` of tool_config if self.tool_config: _dict['toolConfig'] = self.tool_config.to_dict() + # override the default output from pydantic by calling `to_dict()` of guardrails + if self.guardrails: + _dict['guardrails'] = self.guardrails.to_dict() return _dict @classmethod @@ -117,7 +124,10 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: "responseFormat": ChatInferenceRequestResponseFormat.from_dict(obj["responseFormat"]) if obj.get("responseFormat") is not None else None, "toolConfig": ChatInferenceRequestToolConfig.from_dict(obj["toolConfig"]) if obj.get("toolConfig") is not None else None, "sessionId": obj.get("sessionId"), - "async": obj.get("async") if obj.get("async") is not None else False + "async": obj.get("async") if obj.get("async") is not None else False, + "allowedTools": obj.get("allowedTools"), + "guardrails": ChatInferenceRequestGuardrails.from_dict(obj["guardrails"]) if obj.get("guardrails") is not None else None, + "longContext": obj.get("longContext") if obj.get("longContext") is not None else False }) return _obj diff --git a/quantcdn/models/chat_inference_stream_request_messages_inner.py b/quantcdn/models/chat_inference_stream_request_messages_inner.py index 0a24001f..421c7ded 100644 --- a/quantcdn/models/chat_inference_stream_request_messages_inner.py +++ b/quantcdn/models/chat_inference_stream_request_messages_inner.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/chat_inference_stream_request_messages_inner_content.py b/quantcdn/models/chat_inference_stream_request_messages_inner_content.py index 018faed2..562ea6fc 100644 --- a/quantcdn/models/chat_inference_stream_request_messages_inner_content.py +++ b/quantcdn/models/chat_inference_stream_request_messages_inner_content.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/chat_with_ai_agent200_response.py b/quantcdn/models/chat_with_ai_agent200_response.py index c1245cbf..8deeb26a 100644 --- a/quantcdn/models/chat_with_ai_agent200_response.py +++ b/quantcdn/models/chat_with_ai_agent200_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/chat_with_ai_agent200_response_response.py b/quantcdn/models/chat_with_ai_agent200_response_response.py index 701946f2..d7f857b6 100644 --- a/quantcdn/models/chat_with_ai_agent200_response_response.py +++ b/quantcdn/models/chat_with_ai_agent200_response_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/chat_with_ai_agent200_response_response_usage.py b/quantcdn/models/chat_with_ai_agent200_response_response_usage.py index 1cbef57b..b7cc1be0 100644 --- a/quantcdn/models/chat_with_ai_agent200_response_response_usage.py +++ b/quantcdn/models/chat_with_ai_agent200_response_response_usage.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. @@ -17,8 +17,8 @@ import re # noqa: F401 import json -from pydantic import BaseModel, ConfigDict, Field, StrictInt -from typing import Any, ClassVar, Dict, List, Optional +from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt +from typing import Any, ClassVar, Dict, List, Optional, Union from typing import Optional, Set from typing_extensions import Self @@ -28,7 +28,9 @@ class ChatWithAIAgent200ResponseResponseUsage(BaseModel): """ # noqa: E501 input_tokens: Optional[StrictInt] = Field(default=None, alias="inputTokens") output_tokens: Optional[StrictInt] = Field(default=None, alias="outputTokens") - __properties: ClassVar[List[str]] = ["inputTokens", "outputTokens"] + total_tokens: Optional[StrictInt] = Field(default=None, alias="totalTokens") + cost_cents: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="Cost of this inference call in US cents", alias="costCents") + __properties: ClassVar[List[str]] = ["inputTokens", "outputTokens", "totalTokens", "costCents"] model_config = ConfigDict( populate_by_name=True, @@ -82,7 +84,9 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: _obj = cls.model_validate({ "inputTokens": obj.get("inputTokens"), - "outputTokens": obj.get("outputTokens") + "outputTokens": obj.get("outputTokens"), + "totalTokens": obj.get("totalTokens"), + "costCents": obj.get("costCents") }) return _obj diff --git a/quantcdn/models/chat_with_ai_agent202_response.py b/quantcdn/models/chat_with_ai_agent202_response.py index e5430ac2..7252d6ce 100644 --- a/quantcdn/models/chat_with_ai_agent202_response.py +++ b/quantcdn/models/chat_with_ai_agent202_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/chat_with_ai_agent_request.py b/quantcdn/models/chat_with_ai_agent_request.py index 51a7e715..3334884d 100644 --- a/quantcdn/models/chat_with_ai_agent_request.py +++ b/quantcdn/models/chat_with_ai_agent_request.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. @@ -19,6 +19,7 @@ from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr from typing import Any, ClassVar, Dict, List, Optional +from typing_extensions import Annotated from typing import Optional, Set from typing_extensions import Self @@ -32,7 +33,10 @@ class ChatWithAIAgentRequest(BaseModel): stream: Optional[StrictBool] = Field(default=False, description="Whether to stream the response (SSE)") var_async: Optional[StrictBool] = Field(default=False, description="Enable async/durable execution mode. When true, returns 202 with pollUrl. Use for long-running agent tasks.", alias="async") system: Optional[StrictStr] = Field(default=None, description="Optional additional system prompt (appended to agent's configured prompt)") - __properties: ClassVar[List[str]] = ["message", "sessionId", "userId", "stream", "async", "system"] + long_context: Optional[StrictBool] = Field(default=False, description="Per-request override to force 1M context window routing", alias="longContext") + max_tool_iterations: Optional[Annotated[int, Field(le=1000, strict=True, ge=1)]] = Field(default=None, description="Maximum tool auto-execution iterations for this request", alias="maxToolIterations") + allowed_collections: Optional[List[StrictStr]] = Field(default=None, description="Per-request override for vector DB collections the agent can query", alias="allowedCollections") + __properties: ClassVar[List[str]] = ["message", "sessionId", "userId", "stream", "async", "system", "longContext", "maxToolIterations", "allowedCollections"] model_config = ConfigDict( populate_by_name=True, @@ -90,7 +94,10 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: "userId": obj.get("userId"), "stream": obj.get("stream") if obj.get("stream") is not None else False, "async": obj.get("async") if obj.get("async") is not None else False, - "system": obj.get("system") + "system": obj.get("system"), + "longContext": obj.get("longContext") if obj.get("longContext") is not None else False, + "maxToolIterations": obj.get("maxToolIterations"), + "allowedCollections": obj.get("allowedCollections") }) return _obj diff --git a/quantcdn/models/command.py b/quantcdn/models/command.py index e64c646e..793f454b 100644 --- a/quantcdn/models/command.py +++ b/quantcdn/models/command.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/compose.py b/quantcdn/models/compose.py index e763c073..1f0ae518 100644 --- a/quantcdn/models/compose.py +++ b/quantcdn/models/compose.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. @@ -19,6 +19,7 @@ from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictInt, StrictStr from typing import Any, ClassVar, Dict, List, Optional +from typing_extensions import Annotated from quantcdn.models.container import Container from quantcdn.models.spot_configuration import SpotConfiguration from typing import Optional, Set @@ -34,10 +35,12 @@ class Compose(BaseModel): task_memory: Optional[StrictInt] = Field(default=None, description="Task-level memory in MB", alias="taskMemory") min_capacity: Optional[StrictInt] = Field(default=None, description="Minimum number of instances", alias="minCapacity") max_capacity: Optional[StrictInt] = Field(default=None, description="Maximum number of instances", alias="maxCapacity") + single_task_only: Optional[StrictBool] = Field(default=None, description="Optional. Forces single-task mode for data-safe applications (max one running task). When true: capacity is locked to 1. When false: explicitly allows scaling. When omitted: the platform auto-detects stateful containers and enables single-task mode if found.", alias="singleTaskOnly") + startup_grace_period_seconds: Optional[Annotated[int, Field(le=3600, strict=True, ge=0)]] = Field(default=120, description="Optional. Seconds the load balancer waits after a task starts before an unhealthy health check can replace it (applied as the ECS service's healthCheckGracePeriodSeconds when a load balancer is attached). Raise for apps that are slow to boot, e.g. run migrations on startup. Tasks that become healthy sooner still enter service immediately. Defaults to 120 when omitted.", alias="startupGracePeriodSeconds") spot_configuration: Optional[SpotConfiguration] = Field(default=None, alias="spotConfiguration") enable_cross_env_networking: Optional[StrictBool] = Field(default=False, description="Optional. Enable cross-environment networking within the same application. When false (default): Uses shared security group for complete isolation (most secure). When true: Uses app-specific security group to enable communication between environments of the same application (e.g., staging can connect to production database). Note: If enableCrossAppNetworking is true, this setting is overridden.", alias="enableCrossEnvNetworking") enable_cross_app_networking: Optional[StrictBool] = Field(default=False, description="Optional. Enable cross-application networking within the same organization. When false (default): Uses shared/app-specific security group based on enableCrossEnvNetworking. When true: Uses org-specific security group to enable container-to-container communication with ALL applications in the same organization via service discovery (microservices architecture). This setting takes priority over enableCrossEnvNetworking.", alias="enableCrossAppNetworking") - __properties: ClassVar[List[str]] = ["containers", "architecture", "taskCpu", "taskMemory", "minCapacity", "maxCapacity", "spotConfiguration", "enableCrossEnvNetworking", "enableCrossAppNetworking"] + __properties: ClassVar[List[str]] = ["containers", "architecture", "taskCpu", "taskMemory", "minCapacity", "maxCapacity", "singleTaskOnly", "startupGracePeriodSeconds", "spotConfiguration", "enableCrossEnvNetworking", "enableCrossAppNetworking"] model_config = ConfigDict( populate_by_name=True, @@ -88,6 +91,16 @@ def to_dict(self) -> Dict[str, Any]: # override the default output from pydantic by calling `to_dict()` of spot_configuration if self.spot_configuration: _dict['spotConfiguration'] = self.spot_configuration.to_dict() + # set to None if single_task_only (nullable) is None + # and model_fields_set contains the field + if self.single_task_only is None and "single_task_only" in self.model_fields_set: + _dict['singleTaskOnly'] = None + + # set to None if startup_grace_period_seconds (nullable) is None + # and model_fields_set contains the field + if self.startup_grace_period_seconds is None and "startup_grace_period_seconds" in self.model_fields_set: + _dict['startupGracePeriodSeconds'] = None + # set to None if enable_cross_env_networking (nullable) is None # and model_fields_set contains the field if self.enable_cross_env_networking is None and "enable_cross_env_networking" in self.model_fields_set: @@ -116,6 +129,8 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: "taskMemory": obj.get("taskMemory"), "minCapacity": obj.get("minCapacity"), "maxCapacity": obj.get("maxCapacity"), + "singleTaskOnly": obj.get("singleTaskOnly"), + "startupGracePeriodSeconds": obj.get("startupGracePeriodSeconds") if obj.get("startupGracePeriodSeconds") is not None else 120, "spotConfiguration": SpotConfiguration.from_dict(obj["spotConfiguration"]) if obj.get("spotConfiguration") is not None else None, "enableCrossEnvNetworking": obj.get("enableCrossEnvNetworking") if obj.get("enableCrossEnvNetworking") is not None else False, "enableCrossAppNetworking": obj.get("enableCrossAppNetworking") if obj.get("enableCrossAppNetworking") is not None else False diff --git a/quantcdn/models/container.py b/quantcdn/models/container.py index 858504ac..565cfffb 100644 --- a/quantcdn/models/container.py +++ b/quantcdn/models/container.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/container_depends_on_inner.py b/quantcdn/models/container_depends_on_inner.py index afa2bf41..982b93dc 100644 --- a/quantcdn/models/container_depends_on_inner.py +++ b/quantcdn/models/container_depends_on_inner.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/container_environment_inner.py b/quantcdn/models/container_environment_inner.py index f21d4bf0..fe9a8ced 100644 --- a/quantcdn/models/container_environment_inner.py +++ b/quantcdn/models/container_environment_inner.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/container_health_check.py b/quantcdn/models/container_health_check.py index 64ba8caa..e855f69a 100644 --- a/quantcdn/models/container_health_check.py +++ b/quantcdn/models/container_health_check.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/container_image_reference.py b/quantcdn/models/container_image_reference.py index d947034b..8053069d 100644 --- a/quantcdn/models/container_image_reference.py +++ b/quantcdn/models/container_image_reference.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/container_mount_points_inner.py b/quantcdn/models/container_mount_points_inner.py index f7786c83..ec74b6cd 100644 --- a/quantcdn/models/container_mount_points_inner.py +++ b/quantcdn/models/container_mount_points_inner.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/container_origin_protection_config.py b/quantcdn/models/container_origin_protection_config.py index c48b9f18..2dc072ee 100644 --- a/quantcdn/models/container_origin_protection_config.py +++ b/quantcdn/models/container_origin_protection_config.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. @@ -28,7 +28,8 @@ class ContainerOriginProtectionConfig(BaseModel): """ # noqa: E501 enabled: Optional[StrictBool] = Field(default=True, description="Whether origin protection is enabled. Defaults to true if this config object is provided.") ip_allow: Optional[List[StrictStr]] = Field(default=None, description="List of IP addresses or CIDR ranges that can bypass origin protection for direct access (e.g., VPN IPs)", alias="ipAllow") - __properties: ClassVar[List[str]] = ["enabled", "ipAllow"] + redirect_host: Optional[StrictStr] = Field(default=None, description="Optional bare host (e.g. www.example.com). When set, requests denied by origin protection are 302-redirected to https:// with path and query preserved, instead of receiving a 403. Allowed IPs and valid-header (CDN) traffic are unaffected.", alias="redirectHost") + __properties: ClassVar[List[str]] = ["enabled", "ipAllow", "redirectHost"] model_config = ConfigDict( populate_by_name=True, @@ -74,6 +75,11 @@ def to_dict(self) -> Dict[str, Any]: if self.ip_allow is None and "ip_allow" in self.model_fields_set: _dict['ipAllow'] = None + # set to None if redirect_host (nullable) is None + # and model_fields_set contains the field + if self.redirect_host is None and "redirect_host" in self.model_fields_set: + _dict['redirectHost'] = None + return _dict @classmethod @@ -87,7 +93,8 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: _obj = cls.model_validate({ "enabled": obj.get("enabled") if obj.get("enabled") is not None else True, - "ipAllow": obj.get("ipAllow") + "ipAllow": obj.get("ipAllow"), + "redirectHost": obj.get("redirectHost") }) return _obj diff --git a/quantcdn/models/container_secrets_inner.py b/quantcdn/models/container_secrets_inner.py index a6e74d24..9c46c64b 100644 --- a/quantcdn/models/container_secrets_inner.py +++ b/quantcdn/models/container_secrets_inner.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/crawlers_run200_response.py b/quantcdn/models/crawlers_run200_response.py index 1e5b6ce0..1ff66ec6 100644 --- a/quantcdn/models/crawlers_run200_response.py +++ b/quantcdn/models/crawlers_run200_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/crawlers_run_request.py b/quantcdn/models/crawlers_run_request.py index fa8d7971..658e9728 100644 --- a/quantcdn/models/crawlers_run_request.py +++ b/quantcdn/models/crawlers_run_request.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/create_ai_agent201_response.py b/quantcdn/models/create_ai_agent201_response.py index bdccd8df..79b0000b 100644 --- a/quantcdn/models/create_ai_agent201_response.py +++ b/quantcdn/models/create_ai_agent201_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/create_ai_agent_request.py b/quantcdn/models/create_ai_agent_request.py index 192558ec..544f7036 100644 --- a/quantcdn/models/create_ai_agent_request.py +++ b/quantcdn/models/create_ai_agent_request.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. @@ -17,7 +17,7 @@ import re # noqa: F401 import json -from pydantic import BaseModel, ConfigDict, Field, StrictStr +from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr, field_validator from typing import Any, ClassVar, Dict, List, Optional, Union from typing_extensions import Annotated from typing import Optional, Set @@ -36,8 +36,22 @@ class CreateAIAgentRequest(BaseModel): max_tokens: Optional[Annotated[int, Field(le=200000, strict=True, ge=1)]] = Field(default=None, alias="maxTokens") allowed_tools: Optional[List[StrictStr]] = Field(default=None, alias="allowedTools") allowed_collections: Optional[List[StrictStr]] = Field(default=None, alias="allowedCollections") + assigned_skills: Optional[List[StrictStr]] = Field(default=None, description="Skill IDs to assign to this agent", alias="assignedSkills") created_by: Optional[StrictStr] = Field(default=None, description="User identifier who created the agent", alias="createdBy") - __properties: ClassVar[List[str]] = ["name", "description", "group", "systemPrompt", "temperature", "modelId", "maxTokens", "allowedTools", "allowedCollections", "createdBy"] + long_context: Optional[StrictBool] = Field(default=None, description="Enable 1M context window support", alias="longContext") + guardrail_preset: Optional[StrictStr] = Field(default=None, description="Guardrail preset name", alias="guardrailPreset") + filter_policies: Optional[List[StrictStr]] = Field(default=None, description="Filter policy IDs to apply to this agent's inference requests", alias="filterPolicies") + __properties: ClassVar[List[str]] = ["name", "description", "group", "systemPrompt", "temperature", "modelId", "maxTokens", "allowedTools", "allowedCollections", "assignedSkills", "createdBy", "longContext", "guardrailPreset", "filterPolicies"] + + @field_validator('guardrail_preset') + def guardrail_preset_validate_enum(cls, value): + """Validates the enum""" + if value is None: + return value + + if value not in set(['official', 'official-sensitive', 'protected']): + raise ValueError("must be one of enum values ('official', 'official-sensitive', 'protected')") + return value model_config = ConfigDict( populate_by_name=True, @@ -78,6 +92,11 @@ def to_dict(self) -> Dict[str, Any]: exclude=excluded_fields, exclude_none=True, ) + # set to None if guardrail_preset (nullable) is None + # and model_fields_set contains the field + if self.guardrail_preset is None and "guardrail_preset" in self.model_fields_set: + _dict['guardrailPreset'] = None + return _dict @classmethod @@ -99,7 +118,11 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: "maxTokens": obj.get("maxTokens"), "allowedTools": obj.get("allowedTools"), "allowedCollections": obj.get("allowedCollections"), - "createdBy": obj.get("createdBy") + "assignedSkills": obj.get("assignedSkills"), + "createdBy": obj.get("createdBy"), + "longContext": obj.get("longContext"), + "guardrailPreset": obj.get("guardrailPreset"), + "filterPolicies": obj.get("filterPolicies") }) return _obj diff --git a/quantcdn/models/create_ai_session201_response.py b/quantcdn/models/create_ai_session201_response.py index ad0abb9f..0930dd6e 100644 --- a/quantcdn/models/create_ai_session201_response.py +++ b/quantcdn/models/create_ai_session201_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/create_ai_session_request.py b/quantcdn/models/create_ai_session_request.py index af7f9dfd..9d3b8c1a 100644 --- a/quantcdn/models/create_ai_session_request.py +++ b/quantcdn/models/create_ai_session_request.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/create_ai_session_request_initial_messages_inner.py b/quantcdn/models/create_ai_session_request_initial_messages_inner.py index 67ad738f..18e4819e 100644 --- a/quantcdn/models/create_ai_session_request_initial_messages_inner.py +++ b/quantcdn/models/create_ai_session_request_initial_messages_inner.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/create_application403_response.py b/quantcdn/models/create_application403_response.py index 1c0f2c89..936f4307 100644 --- a/quantcdn/models/create_application403_response.py +++ b/quantcdn/models/create_application403_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/create_application_request.py b/quantcdn/models/create_application_request.py index e872b538..a1ef12ce 100644 --- a/quantcdn/models/create_application_request.py +++ b/quantcdn/models/create_application_request.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/create_application_request_database.py b/quantcdn/models/create_application_request_database.py index 56b6f8eb..3842121b 100644 --- a/quantcdn/models/create_application_request_database.py +++ b/quantcdn/models/create_application_request_database.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/create_application_request_environment_inner.py b/quantcdn/models/create_application_request_environment_inner.py index d22bce60..b26767cc 100644 --- a/quantcdn/models/create_application_request_environment_inner.py +++ b/quantcdn/models/create_application_request_environment_inner.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/create_application_request_filesystem.py b/quantcdn/models/create_application_request_filesystem.py index a21c6346..f8af5e03 100644 --- a/quantcdn/models/create_application_request_filesystem.py +++ b/quantcdn/models/create_application_request_filesystem.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/create_backup202_response.py b/quantcdn/models/create_backup202_response.py index e41e8849..4ea6e071 100644 --- a/quantcdn/models/create_backup202_response.py +++ b/quantcdn/models/create_backup202_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/create_backup_request.py b/quantcdn/models/create_backup_request.py index 30269cb3..c9e8a1a9 100644 --- a/quantcdn/models/create_backup_request.py +++ b/quantcdn/models/create_backup_request.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/create_command_request.py b/quantcdn/models/create_command_request.py index 32a4b9da..c93c3a03 100644 --- a/quantcdn/models/create_command_request.py +++ b/quantcdn/models/create_command_request.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/create_cron_job_request.py b/quantcdn/models/create_cron_job_request.py index 7ad1bec2..4f18795d 100644 --- a/quantcdn/models/create_cron_job_request.py +++ b/quantcdn/models/create_cron_job_request.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/create_custom_tool201_response.py b/quantcdn/models/create_custom_tool201_response.py index b9457bc9..5f73c8f4 100644 --- a/quantcdn/models/create_custom_tool201_response.py +++ b/quantcdn/models/create_custom_tool201_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. @@ -17,7 +17,7 @@ import re # noqa: F401 import json -from pydantic import BaseModel, ConfigDict, StrictBool, StrictStr +from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr from typing import Any, ClassVar, Dict, List, Optional from typing import Optional, Set from typing_extensions import Self @@ -28,8 +28,11 @@ class CreateCustomTool201Response(BaseModel): """ # noqa: E501 success: Optional[StrictBool] = None tool: Optional[Dict[str, Any]] = None + edge_function_url: Optional[StrictStr] = Field(default=None, description="Computed edge function URL (read-only)", alias="edgeFunctionUrl") + edge_function_code: Optional[StrictStr] = Field(default=None, description="The deployed edge function code", alias="edgeFunctionCode") + is_update: Optional[StrictBool] = Field(default=None, description="Whether this was an update to an existing tool", alias="isUpdate") message: Optional[StrictStr] = None - __properties: ClassVar[List[str]] = ["success", "tool", "message"] + __properties: ClassVar[List[str]] = ["success", "tool", "edgeFunctionUrl", "edgeFunctionCode", "isUpdate", "message"] model_config = ConfigDict( populate_by_name=True, @@ -84,6 +87,9 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: _obj = cls.model_validate({ "success": obj.get("success"), "tool": obj.get("tool"), + "edgeFunctionUrl": obj.get("edgeFunctionUrl"), + "edgeFunctionCode": obj.get("edgeFunctionCode"), + "isUpdate": obj.get("isUpdate"), "message": obj.get("message") }) return _obj diff --git a/quantcdn/models/create_custom_tool_request.py b/quantcdn/models/create_custom_tool_request.py index 276ea8b4..ab86fe7e 100644 --- a/quantcdn/models/create_custom_tool_request.py +++ b/quantcdn/models/create_custom_tool_request.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. @@ -17,7 +17,7 @@ import re # noqa: F401 import json -from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr +from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr, field_validator from typing import Any, ClassVar, Dict, List, Optional from typing_extensions import Annotated from typing import Optional, Set @@ -29,11 +29,25 @@ class CreateCustomToolRequest(BaseModel): """ # noqa: E501 name: StrictStr = Field(description="Unique tool name (alphanumeric and underscores only)") description: StrictStr = Field(description="Human-readable description of what the tool does") - edge_function_url: StrictStr = Field(description="HTTPS URL of the edge function", alias="edgeFunctionUrl") - input_schema: Dict[str, Any] = Field(description="JSON Schema defining the tool's input parameters", alias="inputSchema") + edge_function_code: StrictStr = Field(description="JavaScript source code for the edge function", alias="edgeFunctionCode") + input_schema: StrictStr = Field(description="JSON-encoded JSON Schema object defining the tool's input parameters", alias="inputSchema") is_async: Optional[StrictBool] = Field(default=False, description="Whether this tool runs asynchronously (>5 seconds)", alias="isAsync") timeout_seconds: Optional[Annotated[int, Field(le=300, strict=True, ge=5)]] = Field(default=30, description="Tool execution timeout", alias="timeoutSeconds") - __properties: ClassVar[List[str]] = ["name", "description", "edgeFunctionUrl", "inputSchema", "isAsync", "timeoutSeconds"] + output_schema: Optional[StrictStr] = Field(default=None, description="JSON-encoded JSON Schema object defining the tool's output structure", alias="outputSchema") + output_schema_description: Optional[StrictStr] = Field(default=None, description="Human-readable description of the tool's output", alias="outputSchemaDescription") + category: Optional[Annotated[str, Field(strict=True, max_length=100)]] = Field(default=None, description="Category to group related tools") + response_mode: Optional[StrictStr] = Field(default=None, description="How the tool response is handled: llm (passed back to model) or direct (returned to user)", alias="responseMode") + __properties: ClassVar[List[str]] = ["name", "description", "edgeFunctionCode", "inputSchema", "isAsync", "timeoutSeconds", "outputSchema", "outputSchemaDescription", "category", "responseMode"] + + @field_validator('response_mode') + def response_mode_validate_enum(cls, value): + """Validates the enum""" + if value is None: + return value + + if value not in set(['llm', 'direct']): + raise ValueError("must be one of enum values ('llm', 'direct')") + return value model_config = ConfigDict( populate_by_name=True, @@ -74,6 +88,26 @@ def to_dict(self) -> Dict[str, Any]: exclude=excluded_fields, exclude_none=True, ) + # set to None if output_schema (nullable) is None + # and model_fields_set contains the field + if self.output_schema is None and "output_schema" in self.model_fields_set: + _dict['outputSchema'] = None + + # set to None if output_schema_description (nullable) is None + # and model_fields_set contains the field + if self.output_schema_description is None and "output_schema_description" in self.model_fields_set: + _dict['outputSchemaDescription'] = None + + # set to None if category (nullable) is None + # and model_fields_set contains the field + if self.category is None and "category" in self.model_fields_set: + _dict['category'] = None + + # set to None if response_mode (nullable) is None + # and model_fields_set contains the field + if self.response_mode is None and "response_mode" in self.model_fields_set: + _dict['responseMode'] = None + return _dict @classmethod @@ -88,10 +122,14 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: _obj = cls.model_validate({ "name": obj.get("name"), "description": obj.get("description"), - "edgeFunctionUrl": obj.get("edgeFunctionUrl"), + "edgeFunctionCode": obj.get("edgeFunctionCode"), "inputSchema": obj.get("inputSchema"), "isAsync": obj.get("isAsync") if obj.get("isAsync") is not None else False, - "timeoutSeconds": obj.get("timeoutSeconds") if obj.get("timeoutSeconds") is not None else 30 + "timeoutSeconds": obj.get("timeoutSeconds") if obj.get("timeoutSeconds") is not None else 30, + "outputSchema": obj.get("outputSchema"), + "outputSchemaDescription": obj.get("outputSchemaDescription"), + "category": obj.get("category"), + "responseMode": obj.get("responseMode") }) return _obj diff --git a/quantcdn/models/create_environment403_response.py b/quantcdn/models/create_environment403_response.py index 9f0884fe..1e172042 100644 --- a/quantcdn/models/create_environment403_response.py +++ b/quantcdn/models/create_environment403_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/create_environment_request.py b/quantcdn/models/create_environment_request.py index e7bce86c..29c7ee27 100644 --- a/quantcdn/models/create_environment_request.py +++ b/quantcdn/models/create_environment_request.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. @@ -33,13 +33,15 @@ class CreateEnvironmentRequest(BaseModel): env_name: StrictStr = Field(description="Environment name (e.g., 'staging', 'development')", alias="envName") min_capacity: Optional[StrictInt] = Field(default=None, description="Minimum number of instances", alias="minCapacity") max_capacity: Optional[StrictInt] = Field(default=None, description="Maximum number of instances", alias="maxCapacity") + single_task_only: Optional[StrictBool] = Field(default=None, description="Optional. Forces single-task mode (max one running task). When omitted, the platform auto-detects stateful containers.", alias="singleTaskOnly") + startup_grace_period_seconds: Optional[Annotated[int, Field(le=3600, strict=True, ge=0)]] = Field(default=120, description="Optional. Seconds the load balancer waits after a task starts before an unhealthy health check can replace it. If not set, the value from composeDefinition (or default 120) is used.", alias="startupGracePeriodSeconds") clone_configuration_from: Optional[StrictStr] = Field(default=None, description="Clone configuration from an existing environment", alias="cloneConfigurationFrom") compose_definition: Optional[Compose] = Field(default=None, alias="composeDefinition") image_suffix: Optional[Annotated[str, Field(strict=True)]] = Field(default=None, description="Optional image tag suffix for cloning", alias="imageSuffix") spot_configuration: Optional[SpotConfiguration] = Field(default=None, alias="spotConfiguration") environment: Optional[List[CreateEnvironmentRequestEnvironmentInner]] = Field(default=None, description="Environment variables to inject") merge_environment: Optional[StrictBool] = Field(default=None, description="Whether to merge environment variables with cloned ones (true) or replace them (false). Default: false", alias="mergeEnvironment") - __properties: ClassVar[List[str]] = ["envName", "minCapacity", "maxCapacity", "cloneConfigurationFrom", "composeDefinition", "imageSuffix", "spotConfiguration", "environment", "mergeEnvironment"] + __properties: ClassVar[List[str]] = ["envName", "minCapacity", "maxCapacity", "singleTaskOnly", "startupGracePeriodSeconds", "cloneConfigurationFrom", "composeDefinition", "imageSuffix", "spotConfiguration", "environment", "mergeEnvironment"] @field_validator('image_suffix') def image_suffix_validate_regular_expression(cls, value): @@ -103,6 +105,16 @@ def to_dict(self) -> Dict[str, Any]: if _item_environment: _items.append(_item_environment.to_dict()) _dict['environment'] = _items + # set to None if single_task_only (nullable) is None + # and model_fields_set contains the field + if self.single_task_only is None and "single_task_only" in self.model_fields_set: + _dict['singleTaskOnly'] = None + + # set to None if startup_grace_period_seconds (nullable) is None + # and model_fields_set contains the field + if self.startup_grace_period_seconds is None and "startup_grace_period_seconds" in self.model_fields_set: + _dict['startupGracePeriodSeconds'] = None + return _dict @classmethod @@ -118,6 +130,8 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: "envName": obj.get("envName"), "minCapacity": obj.get("minCapacity"), "maxCapacity": obj.get("maxCapacity"), + "singleTaskOnly": obj.get("singleTaskOnly"), + "startupGracePeriodSeconds": obj.get("startupGracePeriodSeconds") if obj.get("startupGracePeriodSeconds") is not None else 120, "cloneConfigurationFrom": obj.get("cloneConfigurationFrom"), "composeDefinition": Compose.from_dict(obj["composeDefinition"]) if obj.get("composeDefinition") is not None else None, "imageSuffix": obj.get("imageSuffix"), diff --git a/quantcdn/models/create_environment_request_environment_inner.py b/quantcdn/models/create_environment_request_environment_inner.py index 5e2553b9..23a2df51 100644 --- a/quantcdn/models/create_environment_request_environment_inner.py +++ b/quantcdn/models/create_environment_request_environment_inner.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/create_filter_policy_request.py b/quantcdn/models/create_filter_policy_request.py new file mode 100644 index 00000000..605a139d --- /dev/null +++ b/quantcdn/models/create_filter_policy_request.py @@ -0,0 +1,107 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, Field, StrictBool +from typing import Any, ClassVar, Dict, List, Optional +from typing_extensions import Annotated +from quantcdn.models.create_filter_policy_request_rules_inner import CreateFilterPolicyRequestRulesInner +from typing import Optional, Set +from typing_extensions import Self + +class CreateFilterPolicyRequest(BaseModel): + """ + CreateFilterPolicyRequest + """ # noqa: E501 + name: Annotated[str, Field(strict=True, max_length=255)] + description: Optional[Annotated[str, Field(strict=True, max_length=1000)]] = None + enabled: Optional[StrictBool] = None + rules: Annotated[List[CreateFilterPolicyRequestRulesInner], Field(min_length=1, max_length=100)] + __properties: ClassVar[List[str]] = ["name", "description", "enabled", "rules"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of CreateFilterPolicyRequest from a JSON string""" + return cls.from_dict(json.loads(json_str)) + + def to_dict(self) -> Dict[str, Any]: + """Return the dictionary representation of the model using alias. + + This has the following differences from calling pydantic's + `self.model_dump(by_alias=True)`: + + * `None` is only added to the output dict for nullable fields that + were set at model initialization. Other fields with value `None` + are ignored. + """ + excluded_fields: Set[str] = set([ + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + # override the default output from pydantic by calling `to_dict()` of each item in rules (list) + _items = [] + if self.rules: + for _item_rules in self.rules: + if _item_rules: + _items.append(_item_rules.to_dict()) + _dict['rules'] = _items + # set to None if description (nullable) is None + # and model_fields_set contains the field + if self.description is None and "description" in self.model_fields_set: + _dict['description'] = None + + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of CreateFilterPolicyRequest from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "name": obj.get("name"), + "description": obj.get("description"), + "enabled": obj.get("enabled"), + "rules": [CreateFilterPolicyRequestRulesInner.from_dict(_item) for _item in obj["rules"]] if obj.get("rules") is not None else None + }) + return _obj + + diff --git a/quantcdn/models/create_filter_policy_request_rules_inner.py b/quantcdn/models/create_filter_policy_request_rules_inner.py new file mode 100644 index 00000000..f9de94b5 --- /dev/null +++ b/quantcdn/models/create_filter_policy_request_rules_inner.py @@ -0,0 +1,117 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator +from typing import Any, ClassVar, Dict, List, Optional +from quantcdn.models.create_filter_policy_request_rules_inner_match import CreateFilterPolicyRequestRulesInnerMatch +from typing import Optional, Set +from typing_extensions import Self + +class CreateFilterPolicyRequestRulesInner(BaseModel): + """ + CreateFilterPolicyRequestRulesInner + """ # noqa: E501 + name: Optional[StrictStr] = None + match: Optional[CreateFilterPolicyRequestRulesInnerMatch] = None + action: Optional[StrictStr] = None + apply_to: Optional[StrictStr] = Field(default=None, alias="applyTo") + __properties: ClassVar[List[str]] = ["name", "match", "action", "applyTo"] + + @field_validator('action') + def action_validate_enum(cls, value): + """Validates the enum""" + if value is None: + return value + + if value not in set(['BLOCK', 'REDACT']): + raise ValueError("must be one of enum values ('BLOCK', 'REDACT')") + return value + + @field_validator('apply_to') + def apply_to_validate_enum(cls, value): + """Validates the enum""" + if value is None: + return value + + if value not in set(['input', 'output', 'both']): + raise ValueError("must be one of enum values ('input', 'output', 'both')") + return value + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of CreateFilterPolicyRequestRulesInner from a JSON string""" + return cls.from_dict(json.loads(json_str)) + + def to_dict(self) -> Dict[str, Any]: + """Return the dictionary representation of the model using alias. + + This has the following differences from calling pydantic's + `self.model_dump(by_alias=True)`: + + * `None` is only added to the output dict for nullable fields that + were set at model initialization. Other fields with value `None` + are ignored. + """ + excluded_fields: Set[str] = set([ + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + # override the default output from pydantic by calling `to_dict()` of match + if self.match: + _dict['match'] = self.match.to_dict() + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of CreateFilterPolicyRequestRulesInner from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "name": obj.get("name"), + "match": CreateFilterPolicyRequestRulesInnerMatch.from_dict(obj["match"]) if obj.get("match") is not None else None, + "action": obj.get("action"), + "applyTo": obj.get("applyTo") + }) + return _obj + + diff --git a/quantcdn/models/create_filter_policy_request_rules_inner_match.py b/quantcdn/models/create_filter_policy_request_rules_inner_match.py new file mode 100644 index 00000000..1dc28404 --- /dev/null +++ b/quantcdn/models/create_filter_policy_request_rules_inner_match.py @@ -0,0 +1,102 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator +from typing import Any, ClassVar, Dict, List, Optional +from typing_extensions import Annotated +from typing import Optional, Set +from typing_extensions import Self + +class CreateFilterPolicyRequestRulesInnerMatch(BaseModel): + """ + Match criteria + """ # noqa: E501 + type: Optional[StrictStr] = None + values: Optional[List[Annotated[str, Field(strict=True, max_length=100)]]] = Field(default=None, description="Required when type=word") + pattern: Optional[Annotated[str, Field(strict=True, max_length=500)]] = Field(default=None, description="Required when type=regex") + __properties: ClassVar[List[str]] = ["type", "values", "pattern"] + + @field_validator('type') + def type_validate_enum(cls, value): + """Validates the enum""" + if value is None: + return value + + if value not in set(['word', 'regex']): + raise ValueError("must be one of enum values ('word', 'regex')") + return value + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of CreateFilterPolicyRequestRulesInnerMatch from a JSON string""" + return cls.from_dict(json.loads(json_str)) + + def to_dict(self) -> Dict[str, Any]: + """Return the dictionary representation of the model using alias. + + This has the following differences from calling pydantic's + `self.model_dump(by_alias=True)`: + + * `None` is only added to the output dict for nullable fields that + were set at model initialization. Other fields with value `None` + are ignored. + """ + excluded_fields: Set[str] = set([ + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of CreateFilterPolicyRequestRulesInnerMatch from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "type": obj.get("type"), + "values": obj.get("values"), + "pattern": obj.get("pattern") + }) + return _obj + + diff --git a/quantcdn/models/create_orchestration_request.py b/quantcdn/models/create_orchestration_request.py new file mode 100644 index 00000000..e62ff32b --- /dev/null +++ b/quantcdn/models/create_orchestration_request.py @@ -0,0 +1,143 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr +from typing import Any, ClassVar, Dict, List, Optional +from typing_extensions import Annotated +from quantcdn.models.create_orchestration_request_input_source import CreateOrchestrationRequestInputSource +from quantcdn.models.create_orchestration_request_stop_condition import CreateOrchestrationRequestStopCondition +from typing import Optional, Set +from typing_extensions import Self + +class CreateOrchestrationRequest(BaseModel): + """ + CreateOrchestrationRequest + """ # noqa: E501 + name: StrictStr = Field(description="Orchestration name") + description: Optional[StrictStr] = Field(default=None, description="Optional description") + agent_id: Optional[StrictStr] = Field(default=None, description="Agent to process items", alias="agentId") + tool_id: Optional[StrictStr] = Field(default=None, description="Tool to execute for items", alias="toolId") + workflow_id: Optional[StrictStr] = Field(default=None, description="Workflow to run for items", alias="workflowId") + input_source: CreateOrchestrationRequestInputSource = Field(alias="inputSource") + batch_size: Optional[Annotated[int, Field(le=100, strict=True, ge=1)]] = Field(default=10, description="Items per batch", alias="batchSize") + concurrency: Optional[Annotated[int, Field(le=10, strict=True, ge=1)]] = Field(default=1, description="Concurrent items within a batch") + stop_condition: Optional[CreateOrchestrationRequestStopCondition] = Field(default=None, alias="stopCondition") + assigned_skills: Optional[List[StrictStr]] = Field(default=None, description="Skill IDs to assign", alias="assignedSkills") + context: Optional[Dict[str, Any]] = Field(default=None, description="Optional context merged into each item before processing (e.g. shared credentials or endpoints)") + auto_start: Optional[StrictBool] = Field(default=True, description="Whether to start immediately", alias="autoStart") + __properties: ClassVar[List[str]] = ["name", "description", "agentId", "toolId", "workflowId", "inputSource", "batchSize", "concurrency", "stopCondition", "assignedSkills", "context", "autoStart"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of CreateOrchestrationRequest from a JSON string""" + return cls.from_dict(json.loads(json_str)) + + def to_dict(self) -> Dict[str, Any]: + """Return the dictionary representation of the model using alias. + + This has the following differences from calling pydantic's + `self.model_dump(by_alias=True)`: + + * `None` is only added to the output dict for nullable fields that + were set at model initialization. Other fields with value `None` + are ignored. + """ + excluded_fields: Set[str] = set([ + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + # override the default output from pydantic by calling `to_dict()` of input_source + if self.input_source: + _dict['inputSource'] = self.input_source.to_dict() + # override the default output from pydantic by calling `to_dict()` of stop_condition + if self.stop_condition: + _dict['stopCondition'] = self.stop_condition.to_dict() + # set to None if description (nullable) is None + # and model_fields_set contains the field + if self.description is None and "description" in self.model_fields_set: + _dict['description'] = None + + # set to None if agent_id (nullable) is None + # and model_fields_set contains the field + if self.agent_id is None and "agent_id" in self.model_fields_set: + _dict['agentId'] = None + + # set to None if tool_id (nullable) is None + # and model_fields_set contains the field + if self.tool_id is None and "tool_id" in self.model_fields_set: + _dict['toolId'] = None + + # set to None if workflow_id (nullable) is None + # and model_fields_set contains the field + if self.workflow_id is None and "workflow_id" in self.model_fields_set: + _dict['workflowId'] = None + + # set to None if context (nullable) is None + # and model_fields_set contains the field + if self.context is None and "context" in self.model_fields_set: + _dict['context'] = None + + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of CreateOrchestrationRequest from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "name": obj.get("name"), + "description": obj.get("description"), + "agentId": obj.get("agentId"), + "toolId": obj.get("toolId"), + "workflowId": obj.get("workflowId"), + "inputSource": CreateOrchestrationRequestInputSource.from_dict(obj["inputSource"]) if obj.get("inputSource") is not None else None, + "batchSize": obj.get("batchSize") if obj.get("batchSize") is not None else 10, + "concurrency": obj.get("concurrency") if obj.get("concurrency") is not None else 1, + "stopCondition": CreateOrchestrationRequestStopCondition.from_dict(obj["stopCondition"]) if obj.get("stopCondition") is not None else None, + "assignedSkills": obj.get("assignedSkills"), + "context": obj.get("context"), + "autoStart": obj.get("autoStart") if obj.get("autoStart") is not None else True + }) + return _obj + + diff --git a/quantcdn/models/create_orchestration_request_input_source.py b/quantcdn/models/create_orchestration_request_input_source.py new file mode 100644 index 00000000..31448aff --- /dev/null +++ b/quantcdn/models/create_orchestration_request_input_source.py @@ -0,0 +1,100 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator +from typing import Any, ClassVar, Dict, List, Optional +from typing import Optional, Set +from typing_extensions import Self + +class CreateOrchestrationRequestInputSource(BaseModel): + """ + CreateOrchestrationRequestInputSource + """ # noqa: E501 + type: StrictStr = Field(description="Input source type (api type not yet supported)") + items: Optional[List[Dict[str, Any]]] = Field(default=None, description="Static items (for type=static)") + task_query: Optional[Dict[str, Any]] = Field(default=None, description="Task query filters (for type=task_query)", alias="taskQuery") + generator_prompt: Optional[StrictStr] = Field(default=None, description="AI prompt (for type=generator)", alias="generatorPrompt") + __properties: ClassVar[List[str]] = ["type", "items", "taskQuery", "generatorPrompt"] + + @field_validator('type') + def type_validate_enum(cls, value): + """Validates the enum""" + if value not in set(['static', 'task_query', 'generator']): + raise ValueError("must be one of enum values ('static', 'task_query', 'generator')") + return value + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of CreateOrchestrationRequestInputSource from a JSON string""" + return cls.from_dict(json.loads(json_str)) + + def to_dict(self) -> Dict[str, Any]: + """Return the dictionary representation of the model using alias. + + This has the following differences from calling pydantic's + `self.model_dump(by_alias=True)`: + + * `None` is only added to the output dict for nullable fields that + were set at model initialization. Other fields with value `None` + are ignored. + """ + excluded_fields: Set[str] = set([ + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of CreateOrchestrationRequestInputSource from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "type": obj.get("type"), + "items": obj.get("items"), + "taskQuery": obj.get("taskQuery"), + "generatorPrompt": obj.get("generatorPrompt") + }) + return _obj + + diff --git a/quantcdn/models/create_orchestration_request_stop_condition.py b/quantcdn/models/create_orchestration_request_stop_condition.py new file mode 100644 index 00000000..fb0c92c5 --- /dev/null +++ b/quantcdn/models/create_orchestration_request_stop_condition.py @@ -0,0 +1,102 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator +from typing import Any, ClassVar, Dict, List, Optional +from typing_extensions import Annotated +from typing import Optional, Set +from typing_extensions import Self + +class CreateOrchestrationRequestStopCondition(BaseModel): + """ + CreateOrchestrationRequestStopCondition + """ # noqa: E501 + type: Optional[StrictStr] = 'all_complete' + max_iterations: Optional[Annotated[int, Field(strict=True, ge=1)]] = Field(default=None, description="Max iterations (for type=max_iterations)", alias="maxIterations") + condition_prompt: Optional[StrictStr] = Field(default=None, description="AI prompt to evaluate stop (for type=condition)", alias="conditionPrompt") + __properties: ClassVar[List[str]] = ["type", "maxIterations", "conditionPrompt"] + + @field_validator('type') + def type_validate_enum(cls, value): + """Validates the enum""" + if value is None: + return value + + if value not in set(['all_complete', 'max_iterations', 'condition', 'manual']): + raise ValueError("must be one of enum values ('all_complete', 'max_iterations', 'condition', 'manual')") + return value + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of CreateOrchestrationRequestStopCondition from a JSON string""" + return cls.from_dict(json.loads(json_str)) + + def to_dict(self) -> Dict[str, Any]: + """Return the dictionary representation of the model using alias. + + This has the following differences from calling pydantic's + `self.model_dump(by_alias=True)`: + + * `None` is only added to the output dict for nullable fields that + were set at model initialization. Other fields with value `None` + are ignored. + """ + excluded_fields: Set[str] = set([ + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of CreateOrchestrationRequestStopCondition from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "type": obj.get("type") if obj.get("type") is not None else 'all_complete', + "maxIterations": obj.get("maxIterations"), + "conditionPrompt": obj.get("conditionPrompt") + }) + return _obj + + diff --git a/quantcdn/models/create_skill201_response.py b/quantcdn/models/create_skill201_response.py new file mode 100644 index 00000000..6325c28a --- /dev/null +++ b/quantcdn/models/create_skill201_response.py @@ -0,0 +1,91 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, StrictBool, StrictStr +from typing import Any, ClassVar, Dict, List, Optional +from typing import Optional, Set +from typing_extensions import Self + +class CreateSkill201Response(BaseModel): + """ + CreateSkill201Response + """ # noqa: E501 + success: Optional[StrictBool] = None + skill: Optional[Dict[str, Any]] = None + message: Optional[StrictStr] = None + __properties: ClassVar[List[str]] = ["success", "skill", "message"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of CreateSkill201Response from a JSON string""" + return cls.from_dict(json.loads(json_str)) + + def to_dict(self) -> Dict[str, Any]: + """Return the dictionary representation of the model using alias. + + This has the following differences from calling pydantic's + `self.model_dump(by_alias=True)`: + + * `None` is only added to the output dict for nullable fields that + were set at model initialization. Other fields with value `None` + are ignored. + """ + excluded_fields: Set[str] = set([ + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of CreateSkill201Response from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "success": obj.get("success"), + "skill": obj.get("skill"), + "message": obj.get("message") + }) + return _obj + + diff --git a/quantcdn/models/create_skill_request.py b/quantcdn/models/create_skill_request.py new file mode 100644 index 00000000..da138688 --- /dev/null +++ b/quantcdn/models/create_skill_request.py @@ -0,0 +1,107 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr +from typing import Any, ClassVar, Dict, List, Optional +from typing import Optional, Set +from typing_extensions import Self + +class CreateSkillRequest(BaseModel): + """ + CreateSkillRequest + """ # noqa: E501 + name: StrictStr + description: Optional[StrictStr] = None + content: StrictStr + trigger_condition: StrictStr = Field(alias="triggerCondition") + tags: Optional[List[StrictStr]] = None + required_tools: Optional[List[StrictStr]] = Field(default=None, alias="requiredTools") + namespace: Optional[StrictStr] = None + files: Optional[Dict[str, Any]] = None + disable_model_invocation: Optional[StrictBool] = Field(default=None, alias="disableModelInvocation") + allowed_tools: Optional[List[StrictStr]] = Field(default=None, alias="allowedTools") + installed_by: Optional[StrictStr] = Field(default=None, alias="installedBy") + __properties: ClassVar[List[str]] = ["name", "description", "content", "triggerCondition", "tags", "requiredTools", "namespace", "files", "disableModelInvocation", "allowedTools", "installedBy"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of CreateSkillRequest from a JSON string""" + return cls.from_dict(json.loads(json_str)) + + def to_dict(self) -> Dict[str, Any]: + """Return the dictionary representation of the model using alias. + + This has the following differences from calling pydantic's + `self.model_dump(by_alias=True)`: + + * `None` is only added to the output dict for nullable fields that + were set at model initialization. Other fields with value `None` + are ignored. + """ + excluded_fields: Set[str] = set([ + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of CreateSkillRequest from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "name": obj.get("name"), + "description": obj.get("description"), + "content": obj.get("content"), + "triggerCondition": obj.get("triggerCondition"), + "tags": obj.get("tags"), + "requiredTools": obj.get("requiredTools"), + "namespace": obj.get("namespace"), + "files": obj.get("files"), + "disableModelInvocation": obj.get("disableModelInvocation"), + "allowedTools": obj.get("allowedTools"), + "installedBy": obj.get("installedBy") + }) + return _obj + + diff --git a/quantcdn/models/create_slack_bot201_response.py b/quantcdn/models/create_slack_bot201_response.py new file mode 100644 index 00000000..80b16e62 --- /dev/null +++ b/quantcdn/models/create_slack_bot201_response.py @@ -0,0 +1,87 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict +from typing import Any, ClassVar, Dict, List, Optional +from typing import Optional, Set +from typing_extensions import Self + +class CreateSlackBot201Response(BaseModel): + """ + CreateSlackBot201Response + """ # noqa: E501 + bot: Optional[Dict[str, Any]] = None + __properties: ClassVar[List[str]] = ["bot"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of CreateSlackBot201Response from a JSON string""" + return cls.from_dict(json.loads(json_str)) + + def to_dict(self) -> Dict[str, Any]: + """Return the dictionary representation of the model using alias. + + This has the following differences from calling pydantic's + `self.model_dump(by_alias=True)`: + + * `None` is only added to the output dict for nullable fields that + were set at model initialization. Other fields with value `None` + are ignored. + """ + excluded_fields: Set[str] = set([ + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of CreateSlackBot201Response from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "bot": obj.get("bot") + }) + return _obj + + diff --git a/quantcdn/models/create_slack_bot_request.py b/quantcdn/models/create_slack_bot_request.py new file mode 100644 index 00000000..e22e6e81 --- /dev/null +++ b/quantcdn/models/create_slack_bot_request.py @@ -0,0 +1,137 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr, field_validator +from typing import Any, ClassVar, Dict, List, Optional, Union +from typing_extensions import Annotated +from typing import Optional, Set +from typing_extensions import Self + +class CreateSlackBotRequest(BaseModel): + """ + CreateSlackBotRequest + """ # noqa: E501 + name: StrictStr = Field(description="Display name for the bot") + setup_type: StrictStr = Field(description="Whether to use Quant-managed or customer-provided Slack app", alias="setupType") + system_prompt: StrictStr = Field(description="System prompt for the backing AI agent", alias="systemPrompt") + model_id: StrictStr = Field(description="AI model identifier", alias="modelId") + temperature: Optional[Union[Annotated[float, Field(le=2, strict=True, ge=0)], Annotated[int, Field(le=2, strict=True, ge=0)]]] = Field(default=None, description="Sampling temperature") + max_tokens: Optional[Annotated[int, Field(strict=True, ge=1)]] = Field(default=None, description="Maximum response tokens", alias="maxTokens") + allowed_tools: Optional[List[StrictStr]] = Field(default=None, description="Tools the agent may use", alias="allowedTools") + assigned_skills: Optional[List[StrictStr]] = Field(default=None, description="Skills assigned to the agent", alias="assignedSkills") + allowed_collections: Optional[List[StrictStr]] = Field(default=None, description="Vector DB collections the agent may query", alias="allowedCollections") + allowed_sub_agents: Optional[List[StrictStr]] = Field(default=None, description="Sub-agents the agent may call", alias="allowedSubAgents") + guardrail_preset: Optional[StrictStr] = Field(default=None, description="Guardrail preset name", alias="guardrailPreset") + filter_policies: Optional[List[StrictStr]] = Field(default=None, description="Content filter policies", alias="filterPolicies") + long_context: Optional[StrictBool] = Field(default=None, description="Enable long context mode", alias="longContext") + session_ttl_days: Optional[Annotated[int, Field(le=90, strict=True, ge=1)]] = Field(default=None, description="Session TTL in days", alias="sessionTtlDays") + allowed_channels: Optional[List[StrictStr]] = Field(default=None, description="Slack channel IDs the bot may respond in", alias="allowedChannels") + allowed_users: Optional[List[StrictStr]] = Field(default=None, description="Slack user IDs allowed to interact with the bot", alias="allowedUsers") + denied_users: Optional[List[StrictStr]] = Field(default=None, description="Slack user IDs denied from interacting with the bot", alias="deniedUsers") + allow_guests: Optional[StrictBool] = Field(default=None, description="Whether guest users may interact with the bot", alias="allowGuests") + home_tab_content: Optional[StrictStr] = Field(default=None, description="Content shown on the bot's Home tab in Slack", alias="homeTabContent") + agent_access_control: Optional[Dict[str, Any]] = Field(default=None, description="Agent-level access control settings", alias="agentAccessControl") + keywords_enabled: Optional[StrictBool] = Field(default=None, description="Whether keyword triggers are enabled", alias="keywordsEnabled") + keywords: Optional[List[StrictStr]] = Field(default=None, description="Keywords that trigger the bot") + __properties: ClassVar[List[str]] = ["name", "setupType", "systemPrompt", "modelId", "temperature", "maxTokens", "allowedTools", "assignedSkills", "allowedCollections", "allowedSubAgents", "guardrailPreset", "filterPolicies", "longContext", "sessionTtlDays", "allowedChannels", "allowedUsers", "deniedUsers", "allowGuests", "homeTabContent", "agentAccessControl", "keywordsEnabled", "keywords"] + + @field_validator('setup_type') + def setup_type_validate_enum(cls, value): + """Validates the enum""" + if value not in set(['quant', 'byo']): + raise ValueError("must be one of enum values ('quant', 'byo')") + return value + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of CreateSlackBotRequest from a JSON string""" + return cls.from_dict(json.loads(json_str)) + + def to_dict(self) -> Dict[str, Any]: + """Return the dictionary representation of the model using alias. + + This has the following differences from calling pydantic's + `self.model_dump(by_alias=True)`: + + * `None` is only added to the output dict for nullable fields that + were set at model initialization. Other fields with value `None` + are ignored. + """ + excluded_fields: Set[str] = set([ + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of CreateSlackBotRequest from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "name": obj.get("name"), + "setupType": obj.get("setupType"), + "systemPrompt": obj.get("systemPrompt"), + "modelId": obj.get("modelId"), + "temperature": obj.get("temperature"), + "maxTokens": obj.get("maxTokens"), + "allowedTools": obj.get("allowedTools"), + "assignedSkills": obj.get("assignedSkills"), + "allowedCollections": obj.get("allowedCollections"), + "allowedSubAgents": obj.get("allowedSubAgents"), + "guardrailPreset": obj.get("guardrailPreset"), + "filterPolicies": obj.get("filterPolicies"), + "longContext": obj.get("longContext"), + "sessionTtlDays": obj.get("sessionTtlDays"), + "allowedChannels": obj.get("allowedChannels"), + "allowedUsers": obj.get("allowedUsers"), + "deniedUsers": obj.get("deniedUsers"), + "allowGuests": obj.get("allowGuests"), + "homeTabContent": obj.get("homeTabContent"), + "agentAccessControl": obj.get("agentAccessControl"), + "keywordsEnabled": obj.get("keywordsEnabled"), + "keywords": obj.get("keywords") + }) + return _obj + + diff --git a/quantcdn/models/create_task201_response.py b/quantcdn/models/create_task201_response.py index 0a6e1058..0b8dc8d2 100644 --- a/quantcdn/models/create_task201_response.py +++ b/quantcdn/models/create_task201_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/create_task_request.py b/quantcdn/models/create_task_request.py index 06b69f0d..bf6e9c7d 100644 --- a/quantcdn/models/create_task_request.py +++ b/quantcdn/models/create_task_request.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/create_vector_collection201_response.py b/quantcdn/models/create_vector_collection201_response.py index 4b1e1933..981a4300 100644 --- a/quantcdn/models/create_vector_collection201_response.py +++ b/quantcdn/models/create_vector_collection201_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/create_vector_collection201_response_collection.py b/quantcdn/models/create_vector_collection201_response_collection.py index 700e7f57..0a6437ec 100644 --- a/quantcdn/models/create_vector_collection201_response_collection.py +++ b/quantcdn/models/create_vector_collection201_response_collection.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/create_vector_collection_request.py b/quantcdn/models/create_vector_collection_request.py index d8aecce7..41848895 100644 --- a/quantcdn/models/create_vector_collection_request.py +++ b/quantcdn/models/create_vector_collection_request.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. @@ -28,7 +28,7 @@ class CreateVectorCollectionRequest(BaseModel): """ # noqa: E501 name: StrictStr = Field(description="Collection name (used for reference)") description: Optional[StrictStr] = None - embedding_model: Optional[StrictStr] = Field(default=None, description="Embedding model to use (default: amazon.titan-embed-text-v2:0)", alias="embeddingModel") + embedding_model: StrictStr = Field(description="Embedding model to use. Supported: amazon.titan-embed-text-v2:0, cohere.embed-english-v3, cohere.embed-multilingual-v3", alias="embeddingModel") dimensions: Optional[StrictInt] = Field(default=None, description="Embedding dimensions (default: 1024)") __properties: ClassVar[List[str]] = ["name", "description", "embeddingModel", "dimensions"] diff --git a/quantcdn/models/create_volume_request.py b/quantcdn/models/create_volume_request.py index bea22f37..3bc5f5b5 100644 --- a/quantcdn/models/create_volume_request.py +++ b/quantcdn/models/create_volume_request.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/cron.py b/quantcdn/models/cron.py index cd55d1ae..55222452 100644 --- a/quantcdn/models/cron.py +++ b/quantcdn/models/cron.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. @@ -17,7 +17,7 @@ import re # noqa: F401 import json -from pydantic import BaseModel, ConfigDict, StrictStr +from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr from typing import Any, ClassVar, Dict, List, Optional from typing import Optional, Set from typing_extensions import Self @@ -27,9 +27,12 @@ class Cron(BaseModel): Cron """ # noqa: E501 name: Optional[StrictStr] = None - schedule: Optional[StrictStr] = None - command: Optional[StrictStr] = None - __properties: ClassVar[List[str]] = ["name", "schedule", "command"] + description: Optional[StrictStr] = None + schedule_expression: Optional[StrictStr] = Field(default=None, alias="scheduleExpression") + command: Optional[List[StrictStr]] = None + target_container_name: Optional[StrictStr] = Field(default=None, alias="targetContainerName") + is_enabled: Optional[StrictBool] = Field(default=None, alias="isEnabled") + __properties: ClassVar[List[str]] = ["name", "description", "scheduleExpression", "command", "targetContainerName", "isEnabled"] model_config = ConfigDict( populate_by_name=True, @@ -70,6 +73,16 @@ def to_dict(self) -> Dict[str, Any]: exclude=excluded_fields, exclude_none=True, ) + # set to None if description (nullable) is None + # and model_fields_set contains the field + if self.description is None and "description" in self.model_fields_set: + _dict['description'] = None + + # set to None if target_container_name (nullable) is None + # and model_fields_set contains the field + if self.target_container_name is None and "target_container_name" in self.model_fields_set: + _dict['targetContainerName'] = None + return _dict @classmethod @@ -83,8 +96,11 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: _obj = cls.model_validate({ "name": obj.get("name"), - "schedule": obj.get("schedule"), - "command": obj.get("command") + "description": obj.get("description"), + "scheduleExpression": obj.get("scheduleExpression"), + "command": obj.get("command"), + "targetContainerName": obj.get("targetContainerName"), + "isEnabled": obj.get("isEnabled") }) return _obj diff --git a/quantcdn/models/cron_run.py b/quantcdn/models/cron_run.py index 5d3eda63..1df26ba8 100644 --- a/quantcdn/models/cron_run.py +++ b/quantcdn/models/cron_run.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/delete_vector_collection200_response.py b/quantcdn/models/delete_agent_overlay200_response.py similarity index 88% rename from quantcdn/models/delete_vector_collection200_response.py rename to quantcdn/models/delete_agent_overlay200_response.py index b4c544b6..4fdbb287 100644 --- a/quantcdn/models/delete_vector_collection200_response.py +++ b/quantcdn/models/delete_agent_overlay200_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. @@ -22,9 +22,9 @@ from typing import Optional, Set from typing_extensions import Self -class DeleteVectorCollection200Response(BaseModel): +class DeleteAgentOverlay200Response(BaseModel): """ - DeleteVectorCollection200Response + DeleteAgentOverlay200Response """ # noqa: E501 success: Optional[StrictBool] = None message: Optional[StrictStr] = None @@ -48,7 +48,7 @@ def to_json(self) -> str: @classmethod def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of DeleteVectorCollection200Response from a JSON string""" + """Create an instance of DeleteAgentOverlay200Response from a JSON string""" return cls.from_dict(json.loads(json_str)) def to_dict(self) -> Dict[str, Any]: @@ -73,7 +73,7 @@ def to_dict(self) -> Dict[str, Any]: @classmethod def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of DeleteVectorCollection200Response from a dict""" + """Create an instance of DeleteAgentOverlay200Response from a dict""" if obj is None: return None diff --git a/quantcdn/models/delete_ai_agent200_response.py b/quantcdn/models/delete_ai_agent200_response.py index fb60fc8c..457980d4 100644 --- a/quantcdn/models/delete_ai_agent200_response.py +++ b/quantcdn/models/delete_ai_agent200_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/delete_ai_session200_response.py b/quantcdn/models/delete_ai_session200_response.py index 448649c2..5b59549a 100644 --- a/quantcdn/models/delete_ai_session200_response.py +++ b/quantcdn/models/delete_ai_session200_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/delete_backup200_response.py b/quantcdn/models/delete_backup200_response.py index 9c88192c..ad054d3c 100644 --- a/quantcdn/models/delete_backup200_response.py +++ b/quantcdn/models/delete_backup200_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/delete_custom_tool200_response.py b/quantcdn/models/delete_custom_tool200_response.py index 879fc357..2e0a39aa 100644 --- a/quantcdn/models/delete_custom_tool200_response.py +++ b/quantcdn/models/delete_custom_tool200_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/delete_file200_response.py b/quantcdn/models/delete_file200_response.py index f683ea62..54ac4c3d 100644 --- a/quantcdn/models/delete_file200_response.py +++ b/quantcdn/models/delete_file200_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/delete_skill200_response.py b/quantcdn/models/delete_skill200_response.py new file mode 100644 index 00000000..86fc14a1 --- /dev/null +++ b/quantcdn/models/delete_skill200_response.py @@ -0,0 +1,89 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, StrictBool, StrictStr +from typing import Any, ClassVar, Dict, List, Optional +from typing import Optional, Set +from typing_extensions import Self + +class DeleteSkill200Response(BaseModel): + """ + DeleteSkill200Response + """ # noqa: E501 + success: Optional[StrictBool] = None + message: Optional[StrictStr] = None + __properties: ClassVar[List[str]] = ["success", "message"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of DeleteSkill200Response from a JSON string""" + return cls.from_dict(json.loads(json_str)) + + def to_dict(self) -> Dict[str, Any]: + """Return the dictionary representation of the model using alias. + + This has the following differences from calling pydantic's + `self.model_dump(by_alias=True)`: + + * `None` is only added to the output dict for nullable fields that + were set at model initialization. Other fields with value `None` + are ignored. + """ + excluded_fields: Set[str] = set([ + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of DeleteSkill200Response from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "success": obj.get("success"), + "message": obj.get("message") + }) + return _obj + + diff --git a/quantcdn/models/delete_skill_collection200_response.py b/quantcdn/models/delete_skill_collection200_response.py new file mode 100644 index 00000000..70f81012 --- /dev/null +++ b/quantcdn/models/delete_skill_collection200_response.py @@ -0,0 +1,89 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, StrictBool, StrictStr +from typing import Any, ClassVar, Dict, List, Optional +from typing import Optional, Set +from typing_extensions import Self + +class DeleteSkillCollection200Response(BaseModel): + """ + DeleteSkillCollection200Response + """ # noqa: E501 + success: Optional[StrictBool] = None + message: Optional[StrictStr] = None + __properties: ClassVar[List[str]] = ["success", "message"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of DeleteSkillCollection200Response from a JSON string""" + return cls.from_dict(json.loads(json_str)) + + def to_dict(self) -> Dict[str, Any]: + """Return the dictionary representation of the model using alias. + + This has the following differences from calling pydantic's + `self.model_dump(by_alias=True)`: + + * `None` is only added to the output dict for nullable fields that + were set at model initialization. Other fields with value `None` + are ignored. + """ + excluded_fields: Set[str] = set([ + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of DeleteSkillCollection200Response from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "success": obj.get("success"), + "message": obj.get("message") + }) + return _obj + + diff --git a/quantcdn/models/delete_slack_bot200_response.py b/quantcdn/models/delete_slack_bot200_response.py new file mode 100644 index 00000000..a42b1412 --- /dev/null +++ b/quantcdn/models/delete_slack_bot200_response.py @@ -0,0 +1,89 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, StrictBool, StrictStr +from typing import Any, ClassVar, Dict, List, Optional +from typing import Optional, Set +from typing_extensions import Self + +class DeleteSlackBot200Response(BaseModel): + """ + DeleteSlackBot200Response + """ # noqa: E501 + success: Optional[StrictBool] = None + message: Optional[StrictStr] = None + __properties: ClassVar[List[str]] = ["success", "message"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of DeleteSlackBot200Response from a JSON string""" + return cls.from_dict(json.loads(json_str)) + + def to_dict(self) -> Dict[str, Any]: + """Return the dictionary representation of the model using alias. + + This has the following differences from calling pydantic's + `self.model_dump(by_alias=True)`: + + * `None` is only added to the output dict for nullable fields that + were set at model initialization. Other fields with value `None` + are ignored. + """ + excluded_fields: Set[str] = set([ + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of DeleteSlackBot200Response from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "success": obj.get("success"), + "message": obj.get("message") + }) + return _obj + + diff --git a/quantcdn/models/delete_task200_response.py b/quantcdn/models/delete_task200_response.py index 06ba1c8f..5dd63f3b 100644 --- a/quantcdn/models/delete_task200_response.py +++ b/quantcdn/models/delete_task200_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/delete_task409_response.py b/quantcdn/models/delete_task409_response.py index 2615cd02..7fb6f50f 100644 --- a/quantcdn/models/delete_task409_response.py +++ b/quantcdn/models/delete_task409_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/delete_vector_documents200_response.py b/quantcdn/models/delete_vector_documents200_response.py new file mode 100644 index 00000000..dde1c4f6 --- /dev/null +++ b/quantcdn/models/delete_vector_documents200_response.py @@ -0,0 +1,91 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, Field, StrictInt, StrictStr +from typing import Any, ClassVar, Dict, List, Optional +from typing import Optional, Set +from typing_extensions import Self + +class DeleteVectorDocuments200Response(BaseModel): + """ + DeleteVectorDocuments200Response + """ # noqa: E501 + message: Optional[StrictStr] = None + collection_id: Optional[StrictStr] = Field(default=None, alias="collectionId") + deleted_count: Optional[StrictInt] = Field(default=None, alias="deletedCount") + __properties: ClassVar[List[str]] = ["message", "collectionId", "deletedCount"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of DeleteVectorDocuments200Response from a JSON string""" + return cls.from_dict(json.loads(json_str)) + + def to_dict(self) -> Dict[str, Any]: + """Return the dictionary representation of the model using alias. + + This has the following differences from calling pydantic's + `self.model_dump(by_alias=True)`: + + * `None` is only added to the output dict for nullable fields that + were set at model initialization. Other fields with value `None` + are ignored. + """ + excluded_fields: Set[str] = set([ + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of DeleteVectorDocuments200Response from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "message": obj.get("message"), + "collectionId": obj.get("collectionId"), + "deletedCount": obj.get("deletedCount") + }) + return _obj + + diff --git a/quantcdn/models/delete_vector_documents_request.py b/quantcdn/models/delete_vector_documents_request.py new file mode 100644 index 00000000..aaaad810 --- /dev/null +++ b/quantcdn/models/delete_vector_documents_request.py @@ -0,0 +1,98 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr +from typing import Any, ClassVar, Dict, List, Optional +from typing_extensions import Annotated +from quantcdn.models.delete_vector_documents_request_metadata import DeleteVectorDocumentsRequestMetadata +from typing import Optional, Set +from typing_extensions import Self + +class DeleteVectorDocumentsRequest(BaseModel): + """ + DeleteVectorDocumentsRequest + """ # noqa: E501 + purge_all: Optional[StrictBool] = Field(default=None, description="Delete ALL documents in collection", alias="purgeAll") + document_ids: Optional[List[StrictStr]] = Field(default=None, description="Delete specific documents by UUID", alias="documentIds") + keys: Optional[List[Annotated[str, Field(strict=True, max_length=512)]]] = Field(default=None, description="Delete documents by key") + metadata: Optional[DeleteVectorDocumentsRequestMetadata] = None + __properties: ClassVar[List[str]] = ["purgeAll", "documentIds", "keys", "metadata"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of DeleteVectorDocumentsRequest from a JSON string""" + return cls.from_dict(json.loads(json_str)) + + def to_dict(self) -> Dict[str, Any]: + """Return the dictionary representation of the model using alias. + + This has the following differences from calling pydantic's + `self.model_dump(by_alias=True)`: + + * `None` is only added to the output dict for nullable fields that + were set at model initialization. Other fields with value `None` + are ignored. + """ + excluded_fields: Set[str] = set([ + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + # override the default output from pydantic by calling `to_dict()` of metadata + if self.metadata: + _dict['metadata'] = self.metadata.to_dict() + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of DeleteVectorDocumentsRequest from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "purgeAll": obj.get("purgeAll"), + "documentIds": obj.get("documentIds"), + "keys": obj.get("keys"), + "metadata": DeleteVectorDocumentsRequestMetadata.from_dict(obj["metadata"]) if obj.get("metadata") is not None else None + }) + return _obj + + diff --git a/quantcdn/models/delete_vector_documents_request_metadata.py b/quantcdn/models/delete_vector_documents_request_metadata.py new file mode 100644 index 00000000..87773890 --- /dev/null +++ b/quantcdn/models/delete_vector_documents_request_metadata.py @@ -0,0 +1,89 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, Field, StrictStr +from typing import Any, ClassVar, Dict, List, Optional +from typing import Optional, Set +from typing_extensions import Self + +class DeleteVectorDocumentsRequestMetadata(BaseModel): + """ + DeleteVectorDocumentsRequestMetadata + """ # noqa: E501 + var_field: Optional[StrictStr] = Field(default=None, description="Metadata field name (e.g., 'drupal_entity_id')", alias="field") + values: Optional[List[StrictStr]] = Field(default=None, description="Values to match (OR logic)") + __properties: ClassVar[List[str]] = ["field", "values"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of DeleteVectorDocumentsRequestMetadata from a JSON string""" + return cls.from_dict(json.loads(json_str)) + + def to_dict(self) -> Dict[str, Any]: + """Return the dictionary representation of the model using alias. + + This has the following differences from calling pydantic's + `self.model_dump(by_alias=True)`: + + * `None` is only added to the output dict for nullable fields that + were set at model initialization. Other fields with value `None` + are ignored. + """ + excluded_fields: Set[str] = set([ + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of DeleteVectorDocumentsRequestMetadata from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "field": obj.get("field"), + "values": obj.get("values") + }) + return _obj + + diff --git a/quantcdn/models/download_backup200_response.py b/quantcdn/models/download_backup200_response.py index 41b55cdc..402715eb 100644 --- a/quantcdn/models/download_backup200_response.py +++ b/quantcdn/models/download_backup200_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/embeddings200_response.py b/quantcdn/models/embeddings200_response.py index 22a2216e..695506b4 100644 --- a/quantcdn/models/embeddings200_response.py +++ b/quantcdn/models/embeddings200_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/embeddings200_response_embeddings.py b/quantcdn/models/embeddings200_response_embeddings.py index 05c1a5d1..c89ec0bb 100644 --- a/quantcdn/models/embeddings200_response_embeddings.py +++ b/quantcdn/models/embeddings200_response_embeddings.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/embeddings200_response_usage.py b/quantcdn/models/embeddings200_response_usage.py index 289a71bb..d0c6dc10 100644 --- a/quantcdn/models/embeddings200_response_usage.py +++ b/quantcdn/models/embeddings200_response_usage.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/embeddings_request.py b/quantcdn/models/embeddings_request.py index ba5c782e..8d7f9ce3 100644 --- a/quantcdn/models/embeddings_request.py +++ b/quantcdn/models/embeddings_request.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/embeddings_request_input.py b/quantcdn/models/embeddings_request_input.py index 21ae3fd9..f26dfab7 100644 --- a/quantcdn/models/embeddings_request_input.py +++ b/quantcdn/models/embeddings_request_input.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/environment.py b/quantcdn/models/environment.py index b089de1f..a074014f 100644 --- a/quantcdn/models/environment.py +++ b/quantcdn/models/environment.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/environment_response.py b/quantcdn/models/environment_response.py index 60cf9876..f61cb743 100644 --- a/quantcdn/models/environment_response.py +++ b/quantcdn/models/environment_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. @@ -36,22 +36,22 @@ class EnvironmentResponse(BaseModel): min_capacity: Optional[StrictInt] = Field(default=None, description="Minimum capacity for autoscaling", alias="minCapacity") max_capacity: Optional[StrictInt] = Field(default=None, description="Maximum capacity for autoscaling", alias="maxCapacity") public_ip_address: Optional[StrictStr] = Field(default=None, description="Public IP address for SSH access", alias="publicIpAddress") - deployment_status: Optional[StrictStr] = Field(default=None, description="Current deployment status. FAILED indicates the most recent deployment did not complete successfully.", alias="deploymentStatus") - deployment_failure_type: Optional[StrictStr] = Field(default=None, description="Type of deployment failure when deploymentStatus is FAILED (e.g., 'ECS_DEPLOYMENT_CIRCUIT_BREAKER', 'IMAGE_PULL_ERROR')", alias="deploymentFailureType") - deployment_failure_reason: Optional[StrictStr] = Field(default=None, description="Human-readable explanation of why the deployment failed. Contains details such as wrong image architecture, missing image, or container startup errors.", alias="deploymentFailureReason") + deployment_status: Optional[StrictStr] = Field(default=None, description="Current deployment status", alias="deploymentStatus") + deployment_failure_type: Optional[StrictStr] = Field(default=None, description="Type of deployment failure", alias="deploymentFailureType") + deployment_failure_reason: Optional[StrictStr] = Field(default=None, description="Reason for deployment failure", alias="deploymentFailureReason") task_definition: Optional[Dict[str, Any]] = Field(default=None, description="ECS task definition details", alias="taskDefinition") service: Optional[Dict[str, Any]] = Field(default=None, description="ECS service details") load_balancer: Optional[Dict[str, Any]] = Field(default=None, description="Load balancer configuration", alias="loadBalancer") security_group: Optional[Dict[str, Any]] = Field(default=None, description="Security group configuration", alias="securityGroup") subnet: Optional[Dict[str, Any]] = Field(default=None, description="Subnet configuration") vpc: Optional[Dict[str, Any]] = Field(default=None, description="VPC configuration") - containers: Optional[List[Dict[str, Any]]] = Field(default=None, description="Container configurations") + container_names: Optional[List[StrictStr]] = Field(default=None, description="Container name list", alias="containerNames") volumes: Optional[List[Volume]] = Field(default=None, description="Persistent storage volumes") cron: Optional[List[Cron]] = Field(default=None, description="Scheduled cron jobs") alb_routing: Optional[Dict[str, Any]] = Field(default=None, description="ALB routing configuration", alias="albRouting") created_at: Optional[datetime] = Field(default=None, description="Creation timestamp", alias="createdAt") updated_at: Optional[datetime] = Field(default=None, description="Last update timestamp", alias="updatedAt") - __properties: ClassVar[List[str]] = ["envName", "status", "runningCount", "desiredCount", "minCapacity", "maxCapacity", "publicIpAddress", "deploymentStatus", "deploymentFailureType", "deploymentFailureReason", "taskDefinition", "service", "loadBalancer", "securityGroup", "subnet", "vpc", "containers", "volumes", "cron", "albRouting", "createdAt", "updatedAt"] + __properties: ClassVar[List[str]] = ["envName", "status", "runningCount", "desiredCount", "minCapacity", "maxCapacity", "publicIpAddress", "deploymentStatus", "deploymentFailureType", "deploymentFailureReason", "taskDefinition", "service", "loadBalancer", "securityGroup", "subnet", "vpc", "containerNames", "volumes", "cron", "albRouting", "createdAt", "updatedAt"] @field_validator('deployment_status') def deployment_status_validate_enum(cls, value): @@ -93,8 +93,46 @@ def to_dict(self) -> Dict[str, Any]: * `None` is only added to the output dict for nullable fields that were set at model initialization. Other fields with value `None` are ignored. + * OpenAPI `readOnly` fields are excluded. + * OpenAPI `readOnly` fields are excluded. + * OpenAPI `readOnly` fields are excluded. + * OpenAPI `readOnly` fields are excluded. + * OpenAPI `readOnly` fields are excluded. + * OpenAPI `readOnly` fields are excluded. + * OpenAPI `readOnly` fields are excluded. + * OpenAPI `readOnly` fields are excluded. + * OpenAPI `readOnly` fields are excluded. + * OpenAPI `readOnly` fields are excluded. + * OpenAPI `readOnly` fields are excluded. + * OpenAPI `readOnly` fields are excluded. + * OpenAPI `readOnly` fields are excluded. + * OpenAPI `readOnly` fields are excluded. + * OpenAPI `readOnly` fields are excluded. + * OpenAPI `readOnly` fields are excluded. + * OpenAPI `readOnly` fields are excluded. + * OpenAPI `readOnly` fields are excluded. + * OpenAPI `readOnly` fields are excluded. """ excluded_fields: Set[str] = set([ + "status", + "running_count", + "desired_count", + "public_ip_address", + "deployment_status", + "deployment_failure_type", + "deployment_failure_reason", + "task_definition", + "service", + "load_balancer", + "security_group", + "subnet", + "vpc", + "container_names", + "volumes", + "cron", + "alb_routing", + "created_at", + "updated_at", ]) _dict = self.model_dump( @@ -159,7 +197,7 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: "securityGroup": obj.get("securityGroup"), "subnet": obj.get("subnet"), "vpc": obj.get("vpc"), - "containers": obj.get("containers"), + "containerNames": obj.get("containerNames"), "volumes": [Volume.from_dict(_item) for _item in obj["volumes"]] if obj.get("volumes") is not None else None, "cron": [Cron.from_dict(_item) for _item in obj["cron"]] if obj.get("cron") is not None else None, "albRouting": obj.get("albRouting"), diff --git a/quantcdn/models/environment_summary.py b/quantcdn/models/environment_summary.py index 20df4293..25b99eb6 100644 --- a/quantcdn/models/environment_summary.py +++ b/quantcdn/models/environment_summary.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/extend_ai_session200_response.py b/quantcdn/models/extend_ai_session200_response.py index a1bd2b8b..8d624a16 100644 --- a/quantcdn/models/extend_ai_session200_response.py +++ b/quantcdn/models/extend_ai_session200_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/extend_ai_session_request.py b/quantcdn/models/extend_ai_session_request.py index eea1bb33..a26f50e0 100644 --- a/quantcdn/models/extend_ai_session_request.py +++ b/quantcdn/models/extend_ai_session_request.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/get_agent_overlay200_response.py b/quantcdn/models/get_agent_overlay200_response.py new file mode 100644 index 00000000..725686dc --- /dev/null +++ b/quantcdn/models/get_agent_overlay200_response.py @@ -0,0 +1,102 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict +from typing import Any, ClassVar, Dict, List, Optional +from quantcdn.models.get_agent_overlay200_response_base import GetAgentOverlay200ResponseBase +from quantcdn.models.get_agent_overlay200_response_overlay import GetAgentOverlay200ResponseOverlay +from typing import Optional, Set +from typing_extensions import Self + +class GetAgentOverlay200Response(BaseModel): + """ + GetAgentOverlay200Response + """ # noqa: E501 + overlay: Optional[GetAgentOverlay200ResponseOverlay] = None + base: Optional[GetAgentOverlay200ResponseBase] = None + __properties: ClassVar[List[str]] = ["overlay", "base"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of GetAgentOverlay200Response from a JSON string""" + return cls.from_dict(json.loads(json_str)) + + def to_dict(self) -> Dict[str, Any]: + """Return the dictionary representation of the model using alias. + + This has the following differences from calling pydantic's + `self.model_dump(by_alias=True)`: + + * `None` is only added to the output dict for nullable fields that + were set at model initialization. Other fields with value `None` + are ignored. + """ + excluded_fields: Set[str] = set([ + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + # override the default output from pydantic by calling `to_dict()` of overlay + if self.overlay: + _dict['overlay'] = self.overlay.to_dict() + # override the default output from pydantic by calling `to_dict()` of base + if self.base: + _dict['base'] = self.base.to_dict() + # set to None if overlay (nullable) is None + # and model_fields_set contains the field + if self.overlay is None and "overlay" in self.model_fields_set: + _dict['overlay'] = None + + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of GetAgentOverlay200Response from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "overlay": GetAgentOverlay200ResponseOverlay.from_dict(obj["overlay"]) if obj.get("overlay") is not None else None, + "base": GetAgentOverlay200ResponseBase.from_dict(obj["base"]) if obj.get("base") is not None else None + }) + return _obj + + diff --git a/quantcdn/models/get_agent_overlay200_response_base.py b/quantcdn/models/get_agent_overlay200_response_base.py new file mode 100644 index 00000000..1177103c --- /dev/null +++ b/quantcdn/models/get_agent_overlay200_response_base.py @@ -0,0 +1,95 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, Field, StrictStr +from typing import Any, ClassVar, Dict, List, Optional +from typing import Optional, Set +from typing_extensions import Self + +class GetAgentOverlay200ResponseBase(BaseModel): + """ + Base global agent metadata + """ # noqa: E501 + agent_id: Optional[StrictStr] = Field(default=None, alias="agentId") + name: Optional[StrictStr] = None + model_id: Optional[StrictStr] = Field(default=None, alias="modelId") + allowed_tools: Optional[List[StrictStr]] = Field(default=None, alias="allowedTools") + assigned_skill_ids: Optional[List[StrictStr]] = Field(default=None, alias="assignedSkillIds") + __properties: ClassVar[List[str]] = ["agentId", "name", "modelId", "allowedTools", "assignedSkillIds"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of GetAgentOverlay200ResponseBase from a JSON string""" + return cls.from_dict(json.loads(json_str)) + + def to_dict(self) -> Dict[str, Any]: + """Return the dictionary representation of the model using alias. + + This has the following differences from calling pydantic's + `self.model_dump(by_alias=True)`: + + * `None` is only added to the output dict for nullable fields that + were set at model initialization. Other fields with value `None` + are ignored. + """ + excluded_fields: Set[str] = set([ + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of GetAgentOverlay200ResponseBase from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "agentId": obj.get("agentId"), + "name": obj.get("name"), + "modelId": obj.get("modelId"), + "allowedTools": obj.get("allowedTools"), + "assignedSkillIds": obj.get("assignedSkillIds") + }) + return _obj + + diff --git a/quantcdn/models/get_agent_overlay200_response_overlay.py b/quantcdn/models/get_agent_overlay200_response_overlay.py new file mode 100644 index 00000000..7e061f8d --- /dev/null +++ b/quantcdn/models/get_agent_overlay200_response_overlay.py @@ -0,0 +1,107 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt, StrictStr +from typing import Any, ClassVar, Dict, List, Optional, Union +from typing import Optional, Set +from typing_extensions import Self + +class GetAgentOverlay200ResponseOverlay(BaseModel): + """ + GetAgentOverlay200ResponseOverlay + """ # noqa: E501 + model_id: Optional[StrictStr] = Field(default=None, alias="modelId") + temperature: Optional[Union[StrictFloat, StrictInt]] = None + max_tokens: Optional[StrictInt] = Field(default=None, alias="maxTokens") + disabled_skills: Optional[List[StrictStr]] = Field(default=None, alias="disabledSkills") + additional_skills: Optional[List[StrictStr]] = Field(default=None, alias="additionalSkills") + additional_tools: Optional[List[StrictStr]] = Field(default=None, alias="additionalTools") + disabled_tools: Optional[List[StrictStr]] = Field(default=None, alias="disabledTools") + system_prompt_append: Optional[StrictStr] = Field(default=None, alias="systemPromptAppend") + allowed_collections: Optional[List[StrictStr]] = Field(default=None, alias="allowedCollections") + guardrail_preset: Optional[StrictStr] = Field(default=None, alias="guardrailPreset") + version: Optional[StrictInt] = None + __properties: ClassVar[List[str]] = ["modelId", "temperature", "maxTokens", "disabledSkills", "additionalSkills", "additionalTools", "disabledTools", "systemPromptAppend", "allowedCollections", "guardrailPreset", "version"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of GetAgentOverlay200ResponseOverlay from a JSON string""" + return cls.from_dict(json.loads(json_str)) + + def to_dict(self) -> Dict[str, Any]: + """Return the dictionary representation of the model using alias. + + This has the following differences from calling pydantic's + `self.model_dump(by_alias=True)`: + + * `None` is only added to the output dict for nullable fields that + were set at model initialization. Other fields with value `None` + are ignored. + """ + excluded_fields: Set[str] = set([ + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of GetAgentOverlay200ResponseOverlay from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "modelId": obj.get("modelId"), + "temperature": obj.get("temperature"), + "maxTokens": obj.get("maxTokens"), + "disabledSkills": obj.get("disabledSkills"), + "additionalSkills": obj.get("additionalSkills"), + "additionalTools": obj.get("additionalTools"), + "disabledTools": obj.get("disabledTools"), + "systemPromptAppend": obj.get("systemPromptAppend"), + "allowedCollections": obj.get("allowedCollections"), + "guardrailPreset": obj.get("guardrailPreset"), + "version": obj.get("version") + }) + return _obj + + diff --git a/quantcdn/models/get_ai_agent200_response.py b/quantcdn/models/get_ai_agent200_response.py index f74ddf3b..12a30727 100644 --- a/quantcdn/models/get_ai_agent200_response.py +++ b/quantcdn/models/get_ai_agent200_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/get_ai_agent200_response_agent.py b/quantcdn/models/get_ai_agent200_response_agent.py index 95dd1abe..d587cc4d 100644 --- a/quantcdn/models/get_ai_agent200_response_agent.py +++ b/quantcdn/models/get_ai_agent200_response_agent.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. @@ -18,7 +18,7 @@ import json from datetime import datetime -from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt, StrictStr +from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictFloat, StrictInt, StrictStr from typing import Any, ClassVar, Dict, List, Optional, Union from typing import Optional, Set from typing_extensions import Self @@ -37,10 +37,15 @@ class GetAIAgent200ResponseAgent(BaseModel): max_tokens: Optional[StrictInt] = Field(default=None, alias="maxTokens") allowed_tools: Optional[List[StrictStr]] = Field(default=None, alias="allowedTools") allowed_collections: Optional[List[StrictStr]] = Field(default=None, alias="allowedCollections") + assigned_skills: Optional[List[StrictStr]] = Field(default=None, alias="assignedSkills") + long_context: Optional[StrictBool] = Field(default=None, description="Whether 1M context window is enabled", alias="longContext") + guardrail_preset: Optional[StrictStr] = Field(default=None, description="Guardrail preset name", alias="guardrailPreset") + is_global: Optional[StrictBool] = Field(default=None, description="Whether this is a platform-managed global agent", alias="isGlobal") + has_overlay: Optional[StrictBool] = Field(default=None, description="Whether the requesting org has a per-org overlay for this global agent", alias="hasOverlay") created_by: Optional[StrictStr] = Field(default=None, alias="createdBy") created_at: Optional[datetime] = Field(default=None, alias="createdAt") updated_at: Optional[datetime] = Field(default=None, alias="updatedAt") - __properties: ClassVar[List[str]] = ["agentId", "name", "description", "group", "systemPrompt", "modelId", "temperature", "maxTokens", "allowedTools", "allowedCollections", "createdBy", "createdAt", "updatedAt"] + __properties: ClassVar[List[str]] = ["agentId", "name", "description", "group", "systemPrompt", "modelId", "temperature", "maxTokens", "allowedTools", "allowedCollections", "assignedSkills", "longContext", "guardrailPreset", "isGlobal", "hasOverlay", "createdBy", "createdAt", "updatedAt"] model_config = ConfigDict( populate_by_name=True, @@ -103,6 +108,11 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: "maxTokens": obj.get("maxTokens"), "allowedTools": obj.get("allowedTools"), "allowedCollections": obj.get("allowedCollections"), + "assignedSkills": obj.get("assignedSkills"), + "longContext": obj.get("longContext"), + "guardrailPreset": obj.get("guardrailPreset"), + "isGlobal": obj.get("isGlobal"), + "hasOverlay": obj.get("hasOverlay"), "createdBy": obj.get("createdBy"), "createdAt": obj.get("createdAt"), "updatedAt": obj.get("updatedAt") diff --git a/quantcdn/models/get_ai_model200_response.py b/quantcdn/models/get_ai_model200_response.py index 36719140..84f52244 100644 --- a/quantcdn/models/get_ai_model200_response.py +++ b/quantcdn/models/get_ai_model200_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/get_ai_model200_response_capabilities.py b/quantcdn/models/get_ai_model200_response_capabilities.py index 6d60125e..c9e520b2 100644 --- a/quantcdn/models/get_ai_model200_response_capabilities.py +++ b/quantcdn/models/get_ai_model200_response_capabilities.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/get_ai_model200_response_pricing.py b/quantcdn/models/get_ai_model200_response_pricing.py index a1c6a2d6..f083bb7e 100644 --- a/quantcdn/models/get_ai_model200_response_pricing.py +++ b/quantcdn/models/get_ai_model200_response_pricing.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/get_ai_model404_response.py b/quantcdn/models/get_ai_model404_response.py index bcc747cf..d3dcd085 100644 --- a/quantcdn/models/get_ai_model404_response.py +++ b/quantcdn/models/get_ai_model404_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/get_ai_orchestration_status200_response.py b/quantcdn/models/get_ai_orchestration_status200_response.py index ae49d567..01ca5654 100644 --- a/quantcdn/models/get_ai_orchestration_status200_response.py +++ b/quantcdn/models/get_ai_orchestration_status200_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. @@ -32,18 +32,19 @@ class GetAIOrchestrationStatus200Response(BaseModel): status: StrictStr = Field(description="Current orchestration status") tool_count: StrictInt = Field(description="Total number of async tools in this orchestration", alias="toolCount") completed_tools: Optional[StrictInt] = Field(default=None, description="Number of tools that have completed", alias="completedTools") - synthesized_response: Optional[StrictStr] = Field(default=None, description="AI-synthesized response combining all tool results (only present when status=complete)", alias="synthesizedResponse") + result: Optional[StrictStr] = Field(default=None, description="AI-synthesized response combining all tool results (only present when status=complete)") tools: Optional[List[GetAIOrchestrationStatus200ResponseToolsInner]] = Field(default=None, description="Status of individual tool executions") error: Optional[StrictStr] = Field(default=None, description="Error message (only present when status=failed)") created_at: datetime = Field(description="When orchestration was created", alias="createdAt") completed_at: Optional[datetime] = Field(default=None, description="When orchestration completed (if status in complete or failed)", alias="completedAt") - __properties: ClassVar[List[str]] = ["orchestrationId", "status", "toolCount", "completedTools", "synthesizedResponse", "tools", "error", "createdAt", "completedAt"] + duration: Optional[StrictInt] = Field(default=None, description="Seconds from creation to completion (present only once completed)") + __properties: ClassVar[List[str]] = ["orchestrationId", "status", "toolCount", "completedTools", "result", "tools", "error", "createdAt", "completedAt", "duration"] @field_validator('status') def status_validate_enum(cls, value): """Validates the enum""" - if value not in set(['pending', 'polling', 'synthesizing', 'complete', 'failed']): - raise ValueError("must be one of enum values ('pending', 'polling', 'synthesizing', 'complete', 'failed')") + if value not in set(['pending', 'waiting_tools', 'synthesizing', 'complete', 'failed']): + raise ValueError("must be one of enum values ('pending', 'waiting_tools', 'synthesizing', 'complete', 'failed')") return value model_config = ConfigDict( @@ -108,11 +109,12 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: "status": obj.get("status"), "toolCount": obj.get("toolCount"), "completedTools": obj.get("completedTools"), - "synthesizedResponse": obj.get("synthesizedResponse"), + "result": obj.get("result"), "tools": [GetAIOrchestrationStatus200ResponseToolsInner.from_dict(_item) for _item in obj["tools"]] if obj.get("tools") is not None else None, "error": obj.get("error"), "createdAt": obj.get("createdAt"), - "completedAt": obj.get("completedAt") + "completedAt": obj.get("completedAt"), + "duration": obj.get("duration") }) return _obj diff --git a/quantcdn/models/get_ai_orchestration_status200_response_tools_inner.py b/quantcdn/models/get_ai_orchestration_status200_response_tools_inner.py index ff6a83d7..e002d8fe 100644 --- a/quantcdn/models/get_ai_orchestration_status200_response_tools_inner.py +++ b/quantcdn/models/get_ai_orchestration_status200_response_tools_inner.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/get_ai_orchestration_status404_response.py b/quantcdn/models/get_ai_orchestration_status404_response.py index 2e66e015..c0a5db96 100644 --- a/quantcdn/models/get_ai_orchestration_status404_response.py +++ b/quantcdn/models/get_ai_orchestration_status404_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/get_ai_session200_response.py b/quantcdn/models/get_ai_session200_response.py index cdb722a2..8c6fad6d 100644 --- a/quantcdn/models/get_ai_session200_response.py +++ b/quantcdn/models/get_ai_session200_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/get_ai_tool_execution_status200_response.py b/quantcdn/models/get_ai_tool_execution_status200_response.py index d8d598ac..3d37a089 100644 --- a/quantcdn/models/get_ai_tool_execution_status200_response.py +++ b/quantcdn/models/get_ai_tool_execution_status200_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/get_ai_tool_execution_status200_response_result.py b/quantcdn/models/get_ai_tool_execution_status200_response_result.py index b8c742e2..3599e0cb 100644 --- a/quantcdn/models/get_ai_tool_execution_status200_response_result.py +++ b/quantcdn/models/get_ai_tool_execution_status200_response_result.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/get_ai_tool_execution_status404_response.py b/quantcdn/models/get_ai_tool_execution_status404_response.py index 138fc1d9..a73e87e6 100644 --- a/quantcdn/models/get_ai_tool_execution_status404_response.py +++ b/quantcdn/models/get_ai_tool_execution_status404_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/get_custom_tool200_response.py b/quantcdn/models/get_custom_tool200_response.py new file mode 100644 index 00000000..50fb0517 --- /dev/null +++ b/quantcdn/models/get_custom_tool200_response.py @@ -0,0 +1,91 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict +from typing import Any, ClassVar, Dict, List, Optional +from quantcdn.models.get_custom_tool200_response_tool import GetCustomTool200ResponseTool +from typing import Optional, Set +from typing_extensions import Self + +class GetCustomTool200Response(BaseModel): + """ + GetCustomTool200Response + """ # noqa: E501 + tool: Optional[GetCustomTool200ResponseTool] = None + __properties: ClassVar[List[str]] = ["tool"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of GetCustomTool200Response from a JSON string""" + return cls.from_dict(json.loads(json_str)) + + def to_dict(self) -> Dict[str, Any]: + """Return the dictionary representation of the model using alias. + + This has the following differences from calling pydantic's + `self.model_dump(by_alias=True)`: + + * `None` is only added to the output dict for nullable fields that + were set at model initialization. Other fields with value `None` + are ignored. + """ + excluded_fields: Set[str] = set([ + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + # override the default output from pydantic by calling `to_dict()` of tool + if self.tool: + _dict['tool'] = self.tool.to_dict() + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of GetCustomTool200Response from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "tool": GetCustomTool200ResponseTool.from_dict(obj["tool"]) if obj.get("tool") is not None else None + }) + return _obj + + diff --git a/quantcdn/models/get_custom_tool200_response_tool.py b/quantcdn/models/get_custom_tool200_response_tool.py new file mode 100644 index 00000000..72db0c79 --- /dev/null +++ b/quantcdn/models/get_custom_tool200_response_tool.py @@ -0,0 +1,138 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from datetime import datetime +from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr, field_validator +from typing import Any, ClassVar, Dict, List, Optional +from typing import Optional, Set +from typing_extensions import Self + +class GetCustomTool200ResponseTool(BaseModel): + """ + GetCustomTool200ResponseTool + """ # noqa: E501 + name: Optional[StrictStr] = None + description: Optional[StrictStr] = None + edge_function_url: Optional[StrictStr] = Field(default=None, alias="edgeFunctionUrl") + edge_function_code: Optional[StrictStr] = Field(default=None, description="The deployed edge function source code", alias="edgeFunctionCode") + is_async: Optional[StrictBool] = Field(default=None, alias="isAsync") + input_schema: Optional[StrictStr] = Field(default=None, alias="inputSchema") + output_schema: Optional[StrictStr] = Field(default=None, alias="outputSchema") + output_schema_description: Optional[StrictStr] = Field(default=None, alias="outputSchemaDescription") + category: Optional[StrictStr] = None + response_mode: Optional[StrictStr] = Field(default=None, alias="responseMode") + created_at: Optional[datetime] = Field(default=None, alias="createdAt") + __properties: ClassVar[List[str]] = ["name", "description", "edgeFunctionUrl", "edgeFunctionCode", "isAsync", "inputSchema", "outputSchema", "outputSchemaDescription", "category", "responseMode", "createdAt"] + + @field_validator('response_mode') + def response_mode_validate_enum(cls, value): + """Validates the enum""" + if value is None: + return value + + if value not in set(['llm', 'direct']): + raise ValueError("must be one of enum values ('llm', 'direct')") + return value + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of GetCustomTool200ResponseTool from a JSON string""" + return cls.from_dict(json.loads(json_str)) + + def to_dict(self) -> Dict[str, Any]: + """Return the dictionary representation of the model using alias. + + This has the following differences from calling pydantic's + `self.model_dump(by_alias=True)`: + + * `None` is only added to the output dict for nullable fields that + were set at model initialization. Other fields with value `None` + are ignored. + """ + excluded_fields: Set[str] = set([ + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + # set to None if output_schema (nullable) is None + # and model_fields_set contains the field + if self.output_schema is None and "output_schema" in self.model_fields_set: + _dict['outputSchema'] = None + + # set to None if output_schema_description (nullable) is None + # and model_fields_set contains the field + if self.output_schema_description is None and "output_schema_description" in self.model_fields_set: + _dict['outputSchemaDescription'] = None + + # set to None if category (nullable) is None + # and model_fields_set contains the field + if self.category is None and "category" in self.model_fields_set: + _dict['category'] = None + + # set to None if response_mode (nullable) is None + # and model_fields_set contains the field + if self.response_mode is None and "response_mode" in self.model_fields_set: + _dict['responseMode'] = None + + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of GetCustomTool200ResponseTool from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "name": obj.get("name"), + "description": obj.get("description"), + "edgeFunctionUrl": obj.get("edgeFunctionUrl"), + "edgeFunctionCode": obj.get("edgeFunctionCode"), + "isAsync": obj.get("isAsync"), + "inputSchema": obj.get("inputSchema"), + "outputSchema": obj.get("outputSchema"), + "outputSchemaDescription": obj.get("outputSchemaDescription"), + "category": obj.get("category"), + "responseMode": obj.get("responseMode"), + "createdAt": obj.get("createdAt") + }) + return _obj + + diff --git a/quantcdn/models/get_dependency_graph200_response.py b/quantcdn/models/get_dependency_graph200_response.py index e7353f6e..112f2682 100644 --- a/quantcdn/models/get_dependency_graph200_response.py +++ b/quantcdn/models/get_dependency_graph200_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/get_durable_execution_status200_response.py b/quantcdn/models/get_durable_execution_status200_response.py index 444b32f3..f3384013 100644 --- a/quantcdn/models/get_durable_execution_status200_response.py +++ b/quantcdn/models/get_durable_execution_status200_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/get_durable_execution_status200_response_error.py b/quantcdn/models/get_durable_execution_status200_response_error.py index 9c23434e..dad0efbe 100644 --- a/quantcdn/models/get_durable_execution_status200_response_error.py +++ b/quantcdn/models/get_durable_execution_status200_response_error.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/get_durable_execution_status200_response_pending_tools_inner.py b/quantcdn/models/get_durable_execution_status200_response_pending_tools_inner.py index 239ce91d..f3e1f873 100644 --- a/quantcdn/models/get_durable_execution_status200_response_pending_tools_inner.py +++ b/quantcdn/models/get_durable_execution_status200_response_pending_tools_inner.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/get_durable_execution_status200_response_result.py b/quantcdn/models/get_durable_execution_status200_response_result.py index eb0e1648..c0b3864c 100644 --- a/quantcdn/models/get_durable_execution_status200_response_result.py +++ b/quantcdn/models/get_durable_execution_status200_response_result.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/get_durable_execution_status200_response_result_response.py b/quantcdn/models/get_durable_execution_status200_response_result_response.py index 40090b53..e0966979 100644 --- a/quantcdn/models/get_durable_execution_status200_response_result_response.py +++ b/quantcdn/models/get_durable_execution_status200_response_result_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/get_durable_execution_status200_response_result_usage.py b/quantcdn/models/get_durable_execution_status200_response_result_usage.py index d154aefd..858512a4 100644 --- a/quantcdn/models/get_durable_execution_status200_response_result_usage.py +++ b/quantcdn/models/get_durable_execution_status200_response_result_usage.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. @@ -17,19 +17,20 @@ import re # noqa: F401 import json -from pydantic import BaseModel, ConfigDict, Field, StrictInt -from typing import Any, ClassVar, Dict, List, Optional +from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt +from typing import Any, ClassVar, Dict, List, Optional, Union from typing import Optional, Set from typing_extensions import Self class GetDurableExecutionStatus200ResponseResultUsage(BaseModel): """ - GetDurableExecutionStatus200ResponseResultUsage + Token usage and cost for the final synthesis turn """ # noqa: E501 input_tokens: Optional[StrictInt] = Field(default=None, alias="inputTokens") output_tokens: Optional[StrictInt] = Field(default=None, alias="outputTokens") total_tokens: Optional[StrictInt] = Field(default=None, alias="totalTokens") - __properties: ClassVar[List[str]] = ["inputTokens", "outputTokens", "totalTokens"] + cost_cents: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="Cost of the final synthesis turn in US cents", alias="costCents") + __properties: ClassVar[List[str]] = ["inputTokens", "outputTokens", "totalTokens", "costCents"] model_config = ConfigDict( populate_by_name=True, @@ -84,7 +85,8 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: _obj = cls.model_validate({ "inputTokens": obj.get("inputTokens"), "outputTokens": obj.get("outputTokens"), - "totalTokens": obj.get("totalTokens") + "totalTokens": obj.get("totalTokens"), + "costCents": obj.get("costCents") }) return _obj diff --git a/quantcdn/models/get_ecr_login_credentials200_response.py b/quantcdn/models/get_ecr_login_credentials200_response.py index fb725ce8..948c86f3 100644 --- a/quantcdn/models/get_ecr_login_credentials200_response.py +++ b/quantcdn/models/get_ecr_login_credentials200_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/get_environment_logs200_response.py b/quantcdn/models/get_environment_logs200_response.py index 83bf0849..6c7176b4 100644 --- a/quantcdn/models/get_environment_logs200_response.py +++ b/quantcdn/models/get_environment_logs200_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/get_environment_logs200_response_log_events_inner.py b/quantcdn/models/get_environment_logs200_response_log_events_inner.py index 93f786ae..fc3a6eb6 100644 --- a/quantcdn/models/get_environment_logs200_response_log_events_inner.py +++ b/quantcdn/models/get_environment_logs200_response_log_events_inner.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/get_file200_response.py b/quantcdn/models/get_file200_response.py index b6889725..7c2cdd39 100644 --- a/quantcdn/models/get_file200_response.py +++ b/quantcdn/models/get_file200_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/get_governance_config200_response.py b/quantcdn/models/get_governance_config200_response.py new file mode 100644 index 00000000..6240296a --- /dev/null +++ b/quantcdn/models/get_governance_config200_response.py @@ -0,0 +1,120 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictInt, StrictStr, field_validator +from typing import Any, ClassVar, Dict, List, Optional +from quantcdn.models.get_governance_config200_response_spend_limits import GetGovernanceConfig200ResponseSpendLimits +from typing import Optional, Set +from typing_extensions import Self + +class GetGovernanceConfig200Response(BaseModel): + """ + GetGovernanceConfig200Response + """ # noqa: E501 + org_id: Optional[StrictStr] = Field(default=None, alias="orgId") + ai_enabled: Optional[StrictBool] = Field(default=None, alias="aiEnabled") + model_policy: Optional[StrictStr] = Field(default=None, alias="modelPolicy") + model_list: Optional[List[StrictStr]] = Field(default=None, alias="modelList") + mandatory_guardrail_preset: Optional[StrictStr] = Field(default=None, alias="mandatoryGuardrailPreset") + mandatory_filter_policies: Optional[List[StrictStr]] = Field(default=None, alias="mandatoryFilterPolicies") + spend_limits: Optional[GetGovernanceConfig200ResponseSpendLimits] = Field(default=None, alias="spendLimits") + version: Optional[StrictInt] = None + __properties: ClassVar[List[str]] = ["orgId", "aiEnabled", "modelPolicy", "modelList", "mandatoryGuardrailPreset", "mandatoryFilterPolicies", "spendLimits", "version"] + + @field_validator('model_policy') + def model_policy_validate_enum(cls, value): + """Validates the enum""" + if value is None: + return value + + if value not in set(['unrestricted', 'allowlist', 'blocklist']): + raise ValueError("must be one of enum values ('unrestricted', 'allowlist', 'blocklist')") + return value + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of GetGovernanceConfig200Response from a JSON string""" + return cls.from_dict(json.loads(json_str)) + + def to_dict(self) -> Dict[str, Any]: + """Return the dictionary representation of the model using alias. + + This has the following differences from calling pydantic's + `self.model_dump(by_alias=True)`: + + * `None` is only added to the output dict for nullable fields that + were set at model initialization. Other fields with value `None` + are ignored. + """ + excluded_fields: Set[str] = set([ + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + # override the default output from pydantic by calling `to_dict()` of spend_limits + if self.spend_limits: + _dict['spendLimits'] = self.spend_limits.to_dict() + # set to None if mandatory_guardrail_preset (nullable) is None + # and model_fields_set contains the field + if self.mandatory_guardrail_preset is None and "mandatory_guardrail_preset" in self.model_fields_set: + _dict['mandatoryGuardrailPreset'] = None + + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of GetGovernanceConfig200Response from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "orgId": obj.get("orgId"), + "aiEnabled": obj.get("aiEnabled"), + "modelPolicy": obj.get("modelPolicy"), + "modelList": obj.get("modelList"), + "mandatoryGuardrailPreset": obj.get("mandatoryGuardrailPreset"), + "mandatoryFilterPolicies": obj.get("mandatoryFilterPolicies"), + "spendLimits": GetGovernanceConfig200ResponseSpendLimits.from_dict(obj["spendLimits"]) if obj.get("spendLimits") is not None else None, + "version": obj.get("version") + }) + return _obj + + diff --git a/quantcdn/models/get_governance_config200_response_spend_limits.py b/quantcdn/models/get_governance_config200_response_spend_limits.py new file mode 100644 index 00000000..5c085881 --- /dev/null +++ b/quantcdn/models/get_governance_config200_response_spend_limits.py @@ -0,0 +1,178 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, Field, StrictInt +from typing import Any, ClassVar, Dict, List, Optional +from quantcdn.models.get_governance_config200_response_spend_limits_interface_limits_value import GetGovernanceConfig200ResponseSpendLimitsInterfaceLimitsValue +from quantcdn.models.get_governance_config200_response_spend_limits_user_overrides_value import GetGovernanceConfig200ResponseSpendLimitsUserOverridesValue +from typing import Optional, Set +from typing_extensions import Self + +class GetGovernanceConfig200ResponseSpendLimits(BaseModel): + """ + GetGovernanceConfig200ResponseSpendLimits + """ # noqa: E501 + monthly_budget_cents: Optional[StrictInt] = Field(default=None, alias="monthlyBudgetCents") + daily_budget_cents: Optional[StrictInt] = Field(default=None, alias="dailyBudgetCents") + per_user_monthly_budget_cents: Optional[StrictInt] = Field(default=None, alias="perUserMonthlyBudgetCents") + per_user_daily_budget_cents: Optional[StrictInt] = Field(default=None, alias="perUserDailyBudgetCents") + warning_threshold_percent: Optional[StrictInt] = Field(default=None, alias="warningThresholdPercent") + interface_limits: Optional[Dict[str, GetGovernanceConfig200ResponseSpendLimitsInterfaceLimitsValue]] = Field(default=None, description="Aggregate spend caps per interface label (slack, autonomous, api-gateway, streaming, websocket). Keys are interface labels.", alias="interfaceLimits") + user_overrides: Optional[Dict[str, GetGovernanceConfig200ResponseSpendLimitsUserOverridesValue]] = Field(default=None, description="Per-user budget overrides keyed by userId (numeric portal id, slack-, or system:code-agent). Replaces the flat per-user budget for that user; unlimited=true exempts them.", alias="userOverrides") + per_token_monthly_budget_cents: Optional[StrictInt] = Field(default=None, description="Flat monthly cap in cents applied to every API token without a named override", alias="perTokenMonthlyBudgetCents") + per_token_daily_budget_cents: Optional[StrictInt] = Field(default=None, description="Flat daily cap in cents applied to every API token without a named override", alias="perTokenDailyBudgetCents") + token_overrides: Optional[Dict[str, GetGovernanceConfig200ResponseSpendLimitsUserOverridesValue]] = Field(default=None, description="Per-token budget overrides keyed by API token id. Replaces the flat per-token budget for that token; unlimited=true exempts it.", alias="tokenOverrides") + __properties: ClassVar[List[str]] = ["monthlyBudgetCents", "dailyBudgetCents", "perUserMonthlyBudgetCents", "perUserDailyBudgetCents", "warningThresholdPercent", "interfaceLimits", "userOverrides", "perTokenMonthlyBudgetCents", "perTokenDailyBudgetCents", "tokenOverrides"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of GetGovernanceConfig200ResponseSpendLimits from a JSON string""" + return cls.from_dict(json.loads(json_str)) + + def to_dict(self) -> Dict[str, Any]: + """Return the dictionary representation of the model using alias. + + This has the following differences from calling pydantic's + `self.model_dump(by_alias=True)`: + + * `None` is only added to the output dict for nullable fields that + were set at model initialization. Other fields with value `None` + are ignored. + """ + excluded_fields: Set[str] = set([ + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + # override the default output from pydantic by calling `to_dict()` of each value in interface_limits (dict) + _field_dict = {} + if self.interface_limits: + for _key_interface_limits in self.interface_limits: + if self.interface_limits[_key_interface_limits]: + _field_dict[_key_interface_limits] = self.interface_limits[_key_interface_limits].to_dict() + _dict['interfaceLimits'] = _field_dict + # override the default output from pydantic by calling `to_dict()` of each value in user_overrides (dict) + _field_dict = {} + if self.user_overrides: + for _key_user_overrides in self.user_overrides: + if self.user_overrides[_key_user_overrides]: + _field_dict[_key_user_overrides] = self.user_overrides[_key_user_overrides].to_dict() + _dict['userOverrides'] = _field_dict + # override the default output from pydantic by calling `to_dict()` of each value in token_overrides (dict) + _field_dict = {} + if self.token_overrides: + for _key_token_overrides in self.token_overrides: + if self.token_overrides[_key_token_overrides]: + _field_dict[_key_token_overrides] = self.token_overrides[_key_token_overrides].to_dict() + _dict['tokenOverrides'] = _field_dict + # set to None if monthly_budget_cents (nullable) is None + # and model_fields_set contains the field + if self.monthly_budget_cents is None and "monthly_budget_cents" in self.model_fields_set: + _dict['monthlyBudgetCents'] = None + + # set to None if daily_budget_cents (nullable) is None + # and model_fields_set contains the field + if self.daily_budget_cents is None and "daily_budget_cents" in self.model_fields_set: + _dict['dailyBudgetCents'] = None + + # set to None if per_user_monthly_budget_cents (nullable) is None + # and model_fields_set contains the field + if self.per_user_monthly_budget_cents is None and "per_user_monthly_budget_cents" in self.model_fields_set: + _dict['perUserMonthlyBudgetCents'] = None + + # set to None if per_user_daily_budget_cents (nullable) is None + # and model_fields_set contains the field + if self.per_user_daily_budget_cents is None and "per_user_daily_budget_cents" in self.model_fields_set: + _dict['perUserDailyBudgetCents'] = None + + # set to None if warning_threshold_percent (nullable) is None + # and model_fields_set contains the field + if self.warning_threshold_percent is None and "warning_threshold_percent" in self.model_fields_set: + _dict['warningThresholdPercent'] = None + + # set to None if per_token_monthly_budget_cents (nullable) is None + # and model_fields_set contains the field + if self.per_token_monthly_budget_cents is None and "per_token_monthly_budget_cents" in self.model_fields_set: + _dict['perTokenMonthlyBudgetCents'] = None + + # set to None if per_token_daily_budget_cents (nullable) is None + # and model_fields_set contains the field + if self.per_token_daily_budget_cents is None and "per_token_daily_budget_cents" in self.model_fields_set: + _dict['perTokenDailyBudgetCents'] = None + + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of GetGovernanceConfig200ResponseSpendLimits from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "monthlyBudgetCents": obj.get("monthlyBudgetCents"), + "dailyBudgetCents": obj.get("dailyBudgetCents"), + "perUserMonthlyBudgetCents": obj.get("perUserMonthlyBudgetCents"), + "perUserDailyBudgetCents": obj.get("perUserDailyBudgetCents"), + "warningThresholdPercent": obj.get("warningThresholdPercent"), + "interfaceLimits": dict( + (_k, GetGovernanceConfig200ResponseSpendLimitsInterfaceLimitsValue.from_dict(_v)) + for _k, _v in obj["interfaceLimits"].items() + ) + if obj.get("interfaceLimits") is not None + else None, + "userOverrides": dict( + (_k, GetGovernanceConfig200ResponseSpendLimitsUserOverridesValue.from_dict(_v)) + for _k, _v in obj["userOverrides"].items() + ) + if obj.get("userOverrides") is not None + else None, + "perTokenMonthlyBudgetCents": obj.get("perTokenMonthlyBudgetCents"), + "perTokenDailyBudgetCents": obj.get("perTokenDailyBudgetCents"), + "tokenOverrides": dict( + (_k, GetGovernanceConfig200ResponseSpendLimitsUserOverridesValue.from_dict(_v)) + for _k, _v in obj["tokenOverrides"].items() + ) + if obj.get("tokenOverrides") is not None + else None + }) + return _obj + + diff --git a/quantcdn/models/get_governance_config200_response_spend_limits_interface_limits_value.py b/quantcdn/models/get_governance_config200_response_spend_limits_interface_limits_value.py new file mode 100644 index 00000000..5cd9b859 --- /dev/null +++ b/quantcdn/models/get_governance_config200_response_spend_limits_interface_limits_value.py @@ -0,0 +1,99 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, Field, StrictInt +from typing import Any, ClassVar, Dict, List, Optional +from typing import Optional, Set +from typing_extensions import Self + +class GetGovernanceConfig200ResponseSpendLimitsInterfaceLimitsValue(BaseModel): + """ + GetGovernanceConfig200ResponseSpendLimitsInterfaceLimitsValue + """ # noqa: E501 + daily_cents: Optional[StrictInt] = Field(default=None, alias="dailyCents") + monthly_cents: Optional[StrictInt] = Field(default=None, alias="monthlyCents") + __properties: ClassVar[List[str]] = ["dailyCents", "monthlyCents"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of GetGovernanceConfig200ResponseSpendLimitsInterfaceLimitsValue from a JSON string""" + return cls.from_dict(json.loads(json_str)) + + def to_dict(self) -> Dict[str, Any]: + """Return the dictionary representation of the model using alias. + + This has the following differences from calling pydantic's + `self.model_dump(by_alias=True)`: + + * `None` is only added to the output dict for nullable fields that + were set at model initialization. Other fields with value `None` + are ignored. + """ + excluded_fields: Set[str] = set([ + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + # set to None if daily_cents (nullable) is None + # and model_fields_set contains the field + if self.daily_cents is None and "daily_cents" in self.model_fields_set: + _dict['dailyCents'] = None + + # set to None if monthly_cents (nullable) is None + # and model_fields_set contains the field + if self.monthly_cents is None and "monthly_cents" in self.model_fields_set: + _dict['monthlyCents'] = None + + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of GetGovernanceConfig200ResponseSpendLimitsInterfaceLimitsValue from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "dailyCents": obj.get("dailyCents"), + "monthlyCents": obj.get("monthlyCents") + }) + return _obj + + diff --git a/quantcdn/models/get_governance_config200_response_spend_limits_user_overrides_value.py b/quantcdn/models/get_governance_config200_response_spend_limits_user_overrides_value.py new file mode 100644 index 00000000..59115f80 --- /dev/null +++ b/quantcdn/models/get_governance_config200_response_spend_limits_user_overrides_value.py @@ -0,0 +1,106 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictInt +from typing import Any, ClassVar, Dict, List, Optional +from typing import Optional, Set +from typing_extensions import Self + +class GetGovernanceConfig200ResponseSpendLimitsUserOverridesValue(BaseModel): + """ + GetGovernanceConfig200ResponseSpendLimitsUserOverridesValue + """ # noqa: E501 + daily_cents: Optional[StrictInt] = Field(default=None, alias="dailyCents") + monthly_cents: Optional[StrictInt] = Field(default=None, alias="monthlyCents") + unlimited: Optional[StrictBool] = None + __properties: ClassVar[List[str]] = ["dailyCents", "monthlyCents", "unlimited"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of GetGovernanceConfig200ResponseSpendLimitsUserOverridesValue from a JSON string""" + return cls.from_dict(json.loads(json_str)) + + def to_dict(self) -> Dict[str, Any]: + """Return the dictionary representation of the model using alias. + + This has the following differences from calling pydantic's + `self.model_dump(by_alias=True)`: + + * `None` is only added to the output dict for nullable fields that + were set at model initialization. Other fields with value `None` + are ignored. + """ + excluded_fields: Set[str] = set([ + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + # set to None if daily_cents (nullable) is None + # and model_fields_set contains the field + if self.daily_cents is None and "daily_cents" in self.model_fields_set: + _dict['dailyCents'] = None + + # set to None if monthly_cents (nullable) is None + # and model_fields_set contains the field + if self.monthly_cents is None and "monthly_cents" in self.model_fields_set: + _dict['monthlyCents'] = None + + # set to None if unlimited (nullable) is None + # and model_fields_set contains the field + if self.unlimited is None and "unlimited" in self.model_fields_set: + _dict['unlimited'] = None + + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of GetGovernanceConfig200ResponseSpendLimitsUserOverridesValue from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "dailyCents": obj.get("dailyCents"), + "monthlyCents": obj.get("monthlyCents"), + "unlimited": obj.get("unlimited") + }) + return _obj + + diff --git a/quantcdn/models/get_governance_spend200_response.py b/quantcdn/models/get_governance_spend200_response.py new file mode 100644 index 00000000..feed83e2 --- /dev/null +++ b/quantcdn/models/get_governance_spend200_response.py @@ -0,0 +1,130 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, Field +from typing import Any, ClassVar, Dict, List, Optional +from quantcdn.models.get_governance_spend200_response_budget import GetGovernanceSpend200ResponseBudget +from quantcdn.models.get_governance_spend200_response_daily_budget import GetGovernanceSpend200ResponseDailyBudget +from quantcdn.models.get_governance_spend200_response_org_total import GetGovernanceSpend200ResponseOrgTotal +from quantcdn.models.get_governance_spend200_response_today_total import GetGovernanceSpend200ResponseTodayTotal +from quantcdn.models.get_governance_spend200_response_user_total import GetGovernanceSpend200ResponseUserTotal +from typing import Optional, Set +from typing_extensions import Self + +class GetGovernanceSpend200Response(BaseModel): + """ + GetGovernanceSpend200Response + """ # noqa: E501 + org_total: Optional[GetGovernanceSpend200ResponseOrgTotal] = Field(default=None, alias="orgTotal") + today_total: Optional[GetGovernanceSpend200ResponseTodayTotal] = Field(default=None, alias="todayTotal") + budget: Optional[GetGovernanceSpend200ResponseBudget] = None + daily_budget: Optional[GetGovernanceSpend200ResponseDailyBudget] = Field(default=None, alias="dailyBudget") + user_total: Optional[GetGovernanceSpend200ResponseUserTotal] = Field(default=None, alias="userTotal") + __properties: ClassVar[List[str]] = ["orgTotal", "todayTotal", "budget", "dailyBudget", "userTotal"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of GetGovernanceSpend200Response from a JSON string""" + return cls.from_dict(json.loads(json_str)) + + def to_dict(self) -> Dict[str, Any]: + """Return the dictionary representation of the model using alias. + + This has the following differences from calling pydantic's + `self.model_dump(by_alias=True)`: + + * `None` is only added to the output dict for nullable fields that + were set at model initialization. Other fields with value `None` + are ignored. + """ + excluded_fields: Set[str] = set([ + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + # override the default output from pydantic by calling `to_dict()` of org_total + if self.org_total: + _dict['orgTotal'] = self.org_total.to_dict() + # override the default output from pydantic by calling `to_dict()` of today_total + if self.today_total: + _dict['todayTotal'] = self.today_total.to_dict() + # override the default output from pydantic by calling `to_dict()` of budget + if self.budget: + _dict['budget'] = self.budget.to_dict() + # override the default output from pydantic by calling `to_dict()` of daily_budget + if self.daily_budget: + _dict['dailyBudget'] = self.daily_budget.to_dict() + # override the default output from pydantic by calling `to_dict()` of user_total + if self.user_total: + _dict['userTotal'] = self.user_total.to_dict() + # set to None if budget (nullable) is None + # and model_fields_set contains the field + if self.budget is None and "budget" in self.model_fields_set: + _dict['budget'] = None + + # set to None if daily_budget (nullable) is None + # and model_fields_set contains the field + if self.daily_budget is None and "daily_budget" in self.model_fields_set: + _dict['dailyBudget'] = None + + # set to None if user_total (nullable) is None + # and model_fields_set contains the field + if self.user_total is None and "user_total" in self.model_fields_set: + _dict['userTotal'] = None + + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of GetGovernanceSpend200Response from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "orgTotal": GetGovernanceSpend200ResponseOrgTotal.from_dict(obj["orgTotal"]) if obj.get("orgTotal") is not None else None, + "todayTotal": GetGovernanceSpend200ResponseTodayTotal.from_dict(obj["todayTotal"]) if obj.get("todayTotal") is not None else None, + "budget": GetGovernanceSpend200ResponseBudget.from_dict(obj["budget"]) if obj.get("budget") is not None else None, + "dailyBudget": GetGovernanceSpend200ResponseDailyBudget.from_dict(obj["dailyBudget"]) if obj.get("dailyBudget") is not None else None, + "userTotal": GetGovernanceSpend200ResponseUserTotal.from_dict(obj["userTotal"]) if obj.get("userTotal") is not None else None + }) + return _obj + + diff --git a/quantcdn/models/get_governance_spend200_response_budget.py b/quantcdn/models/get_governance_spend200_response_budget.py new file mode 100644 index 00000000..28fb099f --- /dev/null +++ b/quantcdn/models/get_governance_spend200_response_budget.py @@ -0,0 +1,91 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt +from typing import Any, ClassVar, Dict, List, Optional, Union +from typing import Optional, Set +from typing_extensions import Self + +class GetGovernanceSpend200ResponseBudget(BaseModel): + """ + GetGovernanceSpend200ResponseBudget + """ # noqa: E501 + monthly_budget_cents: Optional[StrictInt] = Field(default=None, alias="monthlyBudgetCents") + used_percent: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, alias="usedPercent") + remaining_cents: Optional[StrictInt] = Field(default=None, alias="remainingCents") + __properties: ClassVar[List[str]] = ["monthlyBudgetCents", "usedPercent", "remainingCents"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of GetGovernanceSpend200ResponseBudget from a JSON string""" + return cls.from_dict(json.loads(json_str)) + + def to_dict(self) -> Dict[str, Any]: + """Return the dictionary representation of the model using alias. + + This has the following differences from calling pydantic's + `self.model_dump(by_alias=True)`: + + * `None` is only added to the output dict for nullable fields that + were set at model initialization. Other fields with value `None` + are ignored. + """ + excluded_fields: Set[str] = set([ + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of GetGovernanceSpend200ResponseBudget from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "monthlyBudgetCents": obj.get("monthlyBudgetCents"), + "usedPercent": obj.get("usedPercent"), + "remainingCents": obj.get("remainingCents") + }) + return _obj + + diff --git a/quantcdn/models/get_governance_spend200_response_daily_budget.py b/quantcdn/models/get_governance_spend200_response_daily_budget.py new file mode 100644 index 00000000..0e1be6e2 --- /dev/null +++ b/quantcdn/models/get_governance_spend200_response_daily_budget.py @@ -0,0 +1,91 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt +from typing import Any, ClassVar, Dict, List, Optional, Union +from typing import Optional, Set +from typing_extensions import Self + +class GetGovernanceSpend200ResponseDailyBudget(BaseModel): + """ + GetGovernanceSpend200ResponseDailyBudget + """ # noqa: E501 + daily_budget_cents: Optional[StrictInt] = Field(default=None, alias="dailyBudgetCents") + used_percent: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, alias="usedPercent") + remaining_cents: Optional[StrictInt] = Field(default=None, alias="remainingCents") + __properties: ClassVar[List[str]] = ["dailyBudgetCents", "usedPercent", "remainingCents"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of GetGovernanceSpend200ResponseDailyBudget from a JSON string""" + return cls.from_dict(json.loads(json_str)) + + def to_dict(self) -> Dict[str, Any]: + """Return the dictionary representation of the model using alias. + + This has the following differences from calling pydantic's + `self.model_dump(by_alias=True)`: + + * `None` is only added to the output dict for nullable fields that + were set at model initialization. Other fields with value `None` + are ignored. + """ + excluded_fields: Set[str] = set([ + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of GetGovernanceSpend200ResponseDailyBudget from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "dailyBudgetCents": obj.get("dailyBudgetCents"), + "usedPercent": obj.get("usedPercent"), + "remainingCents": obj.get("remainingCents") + }) + return _obj + + diff --git a/quantcdn/models/get_governance_spend200_response_org_total.py b/quantcdn/models/get_governance_spend200_response_org_total.py new file mode 100644 index 00000000..6f835daf --- /dev/null +++ b/quantcdn/models/get_governance_spend200_response_org_total.py @@ -0,0 +1,89 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, Field, StrictInt +from typing import Any, ClassVar, Dict, List, Optional +from typing import Optional, Set +from typing_extensions import Self + +class GetGovernanceSpend200ResponseOrgTotal(BaseModel): + """ + GetGovernanceSpend200ResponseOrgTotal + """ # noqa: E501 + spend_cents: Optional[StrictInt] = Field(default=None, description="Total org spend in US cents", alias="spendCents") + request_count: Optional[StrictInt] = Field(default=None, alias="requestCount") + __properties: ClassVar[List[str]] = ["spendCents", "requestCount"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of GetGovernanceSpend200ResponseOrgTotal from a JSON string""" + return cls.from_dict(json.loads(json_str)) + + def to_dict(self) -> Dict[str, Any]: + """Return the dictionary representation of the model using alias. + + This has the following differences from calling pydantic's + `self.model_dump(by_alias=True)`: + + * `None` is only added to the output dict for nullable fields that + were set at model initialization. Other fields with value `None` + are ignored. + """ + excluded_fields: Set[str] = set([ + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of GetGovernanceSpend200ResponseOrgTotal from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "spendCents": obj.get("spendCents"), + "requestCount": obj.get("requestCount") + }) + return _obj + + diff --git a/quantcdn/models/get_governance_spend200_response_today_total.py b/quantcdn/models/get_governance_spend200_response_today_total.py new file mode 100644 index 00000000..af6345aa --- /dev/null +++ b/quantcdn/models/get_governance_spend200_response_today_total.py @@ -0,0 +1,89 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, Field, StrictInt +from typing import Any, ClassVar, Dict, List, Optional +from typing import Optional, Set +from typing_extensions import Self + +class GetGovernanceSpend200ResponseTodayTotal(BaseModel): + """ + GetGovernanceSpend200ResponseTodayTotal + """ # noqa: E501 + spend_cents: Optional[StrictInt] = Field(default=None, description="Org spend today in US cents", alias="spendCents") + request_count: Optional[StrictInt] = Field(default=None, alias="requestCount") + __properties: ClassVar[List[str]] = ["spendCents", "requestCount"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of GetGovernanceSpend200ResponseTodayTotal from a JSON string""" + return cls.from_dict(json.loads(json_str)) + + def to_dict(self) -> Dict[str, Any]: + """Return the dictionary representation of the model using alias. + + This has the following differences from calling pydantic's + `self.model_dump(by_alias=True)`: + + * `None` is only added to the output dict for nullable fields that + were set at model initialization. Other fields with value `None` + are ignored. + """ + excluded_fields: Set[str] = set([ + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of GetGovernanceSpend200ResponseTodayTotal from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "spendCents": obj.get("spendCents"), + "requestCount": obj.get("requestCount") + }) + return _obj + + diff --git a/quantcdn/models/get_governance_spend200_response_user_total.py b/quantcdn/models/get_governance_spend200_response_user_total.py new file mode 100644 index 00000000..0cc331b4 --- /dev/null +++ b/quantcdn/models/get_governance_spend200_response_user_total.py @@ -0,0 +1,89 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, Field, StrictInt +from typing import Any, ClassVar, Dict, List, Optional +from typing import Optional, Set +from typing_extensions import Self + +class GetGovernanceSpend200ResponseUserTotal(BaseModel): + """ + GetGovernanceSpend200ResponseUserTotal + """ # noqa: E501 + monthly_spend_cents: Optional[StrictInt] = Field(default=None, alias="monthlySpendCents") + daily_spend_cents: Optional[StrictInt] = Field(default=None, alias="dailySpendCents") + __properties: ClassVar[List[str]] = ["monthlySpendCents", "dailySpendCents"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of GetGovernanceSpend200ResponseUserTotal from a JSON string""" + return cls.from_dict(json.loads(json_str)) + + def to_dict(self) -> Dict[str, Any]: + """Return the dictionary representation of the model using alias. + + This has the following differences from calling pydantic's + `self.model_dump(by_alias=True)`: + + * `None` is only added to the output dict for nullable fields that + were set at model initialization. Other fields with value `None` + are ignored. + """ + excluded_fields: Set[str] = set([ + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of GetGovernanceSpend200ResponseUserTotal from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "monthlySpendCents": obj.get("monthlySpendCents"), + "dailySpendCents": obj.get("dailySpendCents") + }) + return _obj + + diff --git a/quantcdn/models/get_my_usage200_response.py b/quantcdn/models/get_my_usage200_response.py new file mode 100644 index 00000000..6c57e9ec --- /dev/null +++ b/quantcdn/models/get_my_usage200_response.py @@ -0,0 +1,112 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, Field, StrictStr +from typing import Any, ClassVar, Dict, List, Optional +from quantcdn.models.get_my_usage200_response_daily import GetMyUsage200ResponseDaily +from quantcdn.models.get_my_usage200_response_monthly import GetMyUsage200ResponseMonthly +from quantcdn.models.get_my_usage200_response_quota import GetMyUsage200ResponseQuota +from typing import Optional, Set +from typing_extensions import Self + +class GetMyUsage200Response(BaseModel): + """ + GetMyUsage200Response + """ # noqa: E501 + user_id: Optional[StrictStr] = Field(default=None, alias="userId") + current_month: Optional[StrictStr] = Field(default=None, alias="currentMonth") + monthly: Optional[GetMyUsage200ResponseMonthly] = None + daily: Optional[GetMyUsage200ResponseDaily] = None + quota: Optional[GetMyUsage200ResponseQuota] = None + __properties: ClassVar[List[str]] = ["userId", "currentMonth", "monthly", "daily", "quota"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of GetMyUsage200Response from a JSON string""" + return cls.from_dict(json.loads(json_str)) + + def to_dict(self) -> Dict[str, Any]: + """Return the dictionary representation of the model using alias. + + This has the following differences from calling pydantic's + `self.model_dump(by_alias=True)`: + + * `None` is only added to the output dict for nullable fields that + were set at model initialization. Other fields with value `None` + are ignored. + """ + excluded_fields: Set[str] = set([ + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + # override the default output from pydantic by calling `to_dict()` of monthly + if self.monthly: + _dict['monthly'] = self.monthly.to_dict() + # override the default output from pydantic by calling `to_dict()` of daily + if self.daily: + _dict['daily'] = self.daily.to_dict() + # override the default output from pydantic by calling `to_dict()` of quota + if self.quota: + _dict['quota'] = self.quota.to_dict() + # set to None if quota (nullable) is None + # and model_fields_set contains the field + if self.quota is None and "quota" in self.model_fields_set: + _dict['quota'] = None + + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of GetMyUsage200Response from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "userId": obj.get("userId"), + "currentMonth": obj.get("currentMonth"), + "monthly": GetMyUsage200ResponseMonthly.from_dict(obj["monthly"]) if obj.get("monthly") is not None else None, + "daily": GetMyUsage200ResponseDaily.from_dict(obj["daily"]) if obj.get("daily") is not None else None, + "quota": GetMyUsage200ResponseQuota.from_dict(obj["quota"]) if obj.get("quota") is not None else None + }) + return _obj + + diff --git a/quantcdn/models/get_ai_usage_stats200_response_by_model_value.py b/quantcdn/models/get_my_usage200_response_daily.py similarity index 75% rename from quantcdn/models/get_ai_usage_stats200_response_by_model_value.py rename to quantcdn/models/get_my_usage200_response_daily.py index e8b8ba38..bd86a586 100644 --- a/quantcdn/models/get_ai_usage_stats200_response_by_model_value.py +++ b/quantcdn/models/get_my_usage200_response_daily.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. @@ -22,13 +22,12 @@ from typing import Optional, Set from typing_extensions import Self -class GetAIUsageStats200ResponseByModelValue(BaseModel): +class GetMyUsage200ResponseDaily(BaseModel): """ - GetAIUsageStats200ResponseByModelValue + GetMyUsage200ResponseDaily """ # noqa: E501 - requests: Optional[StrictInt] = Field(default=None, description="Number of requests for this model") - tokens: Optional[StrictInt] = Field(default=None, description="Total tokens for this model") - __properties: ClassVar[List[str]] = ["requests", "tokens"] + spend_cents: Optional[StrictInt] = Field(default=None, alias="spendCents") + __properties: ClassVar[List[str]] = ["spendCents"] model_config = ConfigDict( populate_by_name=True, @@ -48,7 +47,7 @@ def to_json(self) -> str: @classmethod def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of GetAIUsageStats200ResponseByModelValue from a JSON string""" + """Create an instance of GetMyUsage200ResponseDaily from a JSON string""" return cls.from_dict(json.loads(json_str)) def to_dict(self) -> Dict[str, Any]: @@ -73,7 +72,7 @@ def to_dict(self) -> Dict[str, Any]: @classmethod def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of GetAIUsageStats200ResponseByModelValue from a dict""" + """Create an instance of GetMyUsage200ResponseDaily from a dict""" if obj is None: return None @@ -81,8 +80,7 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: return cls.model_validate(obj) _obj = cls.model_validate({ - "requests": obj.get("requests"), - "tokens": obj.get("tokens") + "spendCents": obj.get("spendCents") }) return _obj diff --git a/quantcdn/models/get_my_usage200_response_monthly.py b/quantcdn/models/get_my_usage200_response_monthly.py new file mode 100644 index 00000000..0ff93592 --- /dev/null +++ b/quantcdn/models/get_my_usage200_response_monthly.py @@ -0,0 +1,89 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, Field, StrictInt +from typing import Any, ClassVar, Dict, List, Optional +from typing import Optional, Set +from typing_extensions import Self + +class GetMyUsage200ResponseMonthly(BaseModel): + """ + GetMyUsage200ResponseMonthly + """ # noqa: E501 + spend_cents: Optional[StrictInt] = Field(default=None, alias="spendCents") + request_count: Optional[StrictInt] = Field(default=None, alias="requestCount") + __properties: ClassVar[List[str]] = ["spendCents", "requestCount"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of GetMyUsage200ResponseMonthly from a JSON string""" + return cls.from_dict(json.loads(json_str)) + + def to_dict(self) -> Dict[str, Any]: + """Return the dictionary representation of the model using alias. + + This has the following differences from calling pydantic's + `self.model_dump(by_alias=True)`: + + * `None` is only added to the output dict for nullable fields that + were set at model initialization. Other fields with value `None` + are ignored. + """ + excluded_fields: Set[str] = set([ + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of GetMyUsage200ResponseMonthly from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "spendCents": obj.get("spendCents"), + "requestCount": obj.get("requestCount") + }) + return _obj + + diff --git a/quantcdn/models/get_my_usage200_response_quota.py b/quantcdn/models/get_my_usage200_response_quota.py new file mode 100644 index 00000000..701bd34f --- /dev/null +++ b/quantcdn/models/get_my_usage200_response_quota.py @@ -0,0 +1,107 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, Field +from typing import Any, ClassVar, Dict, List, Optional +from quantcdn.models.get_my_usage200_response_quota_daily_limit import GetMyUsage200ResponseQuotaDailyLimit +from quantcdn.models.get_my_usage200_response_quota_monthly_limit import GetMyUsage200ResponseQuotaMonthlyLimit +from typing import Optional, Set +from typing_extensions import Self + +class GetMyUsage200ResponseQuota(BaseModel): + """ + GetMyUsage200ResponseQuota + """ # noqa: E501 + monthly_limit: Optional[GetMyUsage200ResponseQuotaMonthlyLimit] = Field(default=None, alias="monthlyLimit") + daily_limit: Optional[GetMyUsage200ResponseQuotaDailyLimit] = Field(default=None, alias="dailyLimit") + __properties: ClassVar[List[str]] = ["monthlyLimit", "dailyLimit"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of GetMyUsage200ResponseQuota from a JSON string""" + return cls.from_dict(json.loads(json_str)) + + def to_dict(self) -> Dict[str, Any]: + """Return the dictionary representation of the model using alias. + + This has the following differences from calling pydantic's + `self.model_dump(by_alias=True)`: + + * `None` is only added to the output dict for nullable fields that + were set at model initialization. Other fields with value `None` + are ignored. + """ + excluded_fields: Set[str] = set([ + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + # override the default output from pydantic by calling `to_dict()` of monthly_limit + if self.monthly_limit: + _dict['monthlyLimit'] = self.monthly_limit.to_dict() + # override the default output from pydantic by calling `to_dict()` of daily_limit + if self.daily_limit: + _dict['dailyLimit'] = self.daily_limit.to_dict() + # set to None if monthly_limit (nullable) is None + # and model_fields_set contains the field + if self.monthly_limit is None and "monthly_limit" in self.model_fields_set: + _dict['monthlyLimit'] = None + + # set to None if daily_limit (nullable) is None + # and model_fields_set contains the field + if self.daily_limit is None and "daily_limit" in self.model_fields_set: + _dict['dailyLimit'] = None + + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of GetMyUsage200ResponseQuota from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "monthlyLimit": GetMyUsage200ResponseQuotaMonthlyLimit.from_dict(obj["monthlyLimit"]) if obj.get("monthlyLimit") is not None else None, + "dailyLimit": GetMyUsage200ResponseQuotaDailyLimit.from_dict(obj["dailyLimit"]) if obj.get("dailyLimit") is not None else None + }) + return _obj + + diff --git a/quantcdn/models/get_my_usage200_response_quota_daily_limit.py b/quantcdn/models/get_my_usage200_response_quota_daily_limit.py new file mode 100644 index 00000000..6ac3678a --- /dev/null +++ b/quantcdn/models/get_my_usage200_response_quota_daily_limit.py @@ -0,0 +1,94 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from datetime import datetime +from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt +from typing import Any, ClassVar, Dict, List, Optional, Union +from typing import Optional, Set +from typing_extensions import Self + +class GetMyUsage200ResponseQuotaDailyLimit(BaseModel): + """ + Per-user daily spend cap (object form, present when an org-level perUserDailyBudget is configured) + """ # noqa: E501 + limit_cents: Optional[StrictInt] = Field(default=None, description="The configured daily cap in US cents", alias="limitCents") + used_percent: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="Percentage of the cap consumed today (0–100+)", alias="usedPercent") + remaining_cents: Optional[StrictInt] = Field(default=None, description="Cents remaining before the cap is hit; can be negative if overspent", alias="remainingCents") + resets_at: Optional[datetime] = Field(default=None, description="UTC timestamp when the daily counter resets (always next UTC midnight)", alias="resetsAt") + __properties: ClassVar[List[str]] = ["limitCents", "usedPercent", "remainingCents", "resetsAt"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of GetMyUsage200ResponseQuotaDailyLimit from a JSON string""" + return cls.from_dict(json.loads(json_str)) + + def to_dict(self) -> Dict[str, Any]: + """Return the dictionary representation of the model using alias. + + This has the following differences from calling pydantic's + `self.model_dump(by_alias=True)`: + + * `None` is only added to the output dict for nullable fields that + were set at model initialization. Other fields with value `None` + are ignored. + """ + excluded_fields: Set[str] = set([ + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of GetMyUsage200ResponseQuotaDailyLimit from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "limitCents": obj.get("limitCents"), + "usedPercent": obj.get("usedPercent"), + "remainingCents": obj.get("remainingCents"), + "resetsAt": obj.get("resetsAt") + }) + return _obj + + diff --git a/quantcdn/models/get_my_usage200_response_quota_monthly_limit.py b/quantcdn/models/get_my_usage200_response_quota_monthly_limit.py new file mode 100644 index 00000000..1048e509 --- /dev/null +++ b/quantcdn/models/get_my_usage200_response_quota_monthly_limit.py @@ -0,0 +1,91 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt +from typing import Any, ClassVar, Dict, List, Optional, Union +from typing import Optional, Set +from typing_extensions import Self + +class GetMyUsage200ResponseQuotaMonthlyLimit(BaseModel): + """ + Per-user monthly spend cap (object form, present when an org-level perUserMonthlyBudget is configured) + """ # noqa: E501 + limit_cents: Optional[StrictInt] = Field(default=None, description="The configured monthly cap in US cents", alias="limitCents") + used_percent: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="Percentage of the cap consumed this month (0–100+)", alias="usedPercent") + remaining_cents: Optional[StrictInt] = Field(default=None, description="Cents remaining before the cap is hit; can be negative if overspent", alias="remainingCents") + __properties: ClassVar[List[str]] = ["limitCents", "usedPercent", "remainingCents"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of GetMyUsage200ResponseQuotaMonthlyLimit from a JSON string""" + return cls.from_dict(json.loads(json_str)) + + def to_dict(self) -> Dict[str, Any]: + """Return the dictionary representation of the model using alias. + + This has the following differences from calling pydantic's + `self.model_dump(by_alias=True)`: + + * `None` is only added to the output dict for nullable fields that + were set at model initialization. Other fields with value `None` + are ignored. + """ + excluded_fields: Set[str] = set([ + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of GetMyUsage200ResponseQuotaMonthlyLimit from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "limitCents": obj.get("limitCents"), + "usedPercent": obj.get("usedPercent"), + "remainingCents": obj.get("remainingCents") + }) + return _obj + + diff --git a/quantcdn/models/get_restore_status200_response.py b/quantcdn/models/get_restore_status200_response.py new file mode 100644 index 00000000..f154bd63 --- /dev/null +++ b/quantcdn/models/get_restore_status200_response.py @@ -0,0 +1,138 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from datetime import datetime +from pydantic import BaseModel, ConfigDict, Field, StrictInt, StrictStr, field_validator +from typing import Any, ClassVar, Dict, List, Optional +from typing import Optional, Set +from typing_extensions import Self + +class GetRestoreStatus200Response(BaseModel): + """ + GetRestoreStatus200Response + """ # noqa: E501 + restore_id: Optional[StrictStr] = Field(default=None, alias="restoreId") + org_name: Optional[StrictStr] = Field(default=None, alias="orgName") + app_name: Optional[StrictStr] = Field(default=None, alias="appName") + env_name: Optional[StrictStr] = Field(default=None, alias="envName") + backup_id: Optional[StrictStr] = Field(default=None, alias="backupId") + status: Optional[StrictStr] = None + started_at: Optional[datetime] = Field(default=None, alias="startedAt") + completed_at: Optional[datetime] = Field(default=None, alias="completedAt") + error_message: Optional[StrictStr] = Field(default=None, alias="errorMessage") + task_arn: Optional[StrictStr] = Field(default=None, alias="taskArn") + ttl: Optional[StrictInt] = None + __properties: ClassVar[List[str]] = ["restoreId", "orgName", "appName", "envName", "backupId", "status", "startedAt", "completedAt", "errorMessage", "taskArn", "ttl"] + + @field_validator('status') + def status_validate_enum(cls, value): + """Validates the enum""" + if value is None: + return value + + if value not in set(['pending', 'in_progress', 'completed', 'failed']): + raise ValueError("must be one of enum values ('pending', 'in_progress', 'completed', 'failed')") + return value + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of GetRestoreStatus200Response from a JSON string""" + return cls.from_dict(json.loads(json_str)) + + def to_dict(self) -> Dict[str, Any]: + """Return the dictionary representation of the model using alias. + + This has the following differences from calling pydantic's + `self.model_dump(by_alias=True)`: + + * `None` is only added to the output dict for nullable fields that + were set at model initialization. Other fields with value `None` + are ignored. + """ + excluded_fields: Set[str] = set([ + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + # set to None if completed_at (nullable) is None + # and model_fields_set contains the field + if self.completed_at is None and "completed_at" in self.model_fields_set: + _dict['completedAt'] = None + + # set to None if error_message (nullable) is None + # and model_fields_set contains the field + if self.error_message is None and "error_message" in self.model_fields_set: + _dict['errorMessage'] = None + + # set to None if task_arn (nullable) is None + # and model_fields_set contains the field + if self.task_arn is None and "task_arn" in self.model_fields_set: + _dict['taskArn'] = None + + # set to None if ttl (nullable) is None + # and model_fields_set contains the field + if self.ttl is None and "ttl" in self.model_fields_set: + _dict['ttl'] = None + + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of GetRestoreStatus200Response from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "restoreId": obj.get("restoreId"), + "orgName": obj.get("orgName"), + "appName": obj.get("appName"), + "envName": obj.get("envName"), + "backupId": obj.get("backupId"), + "status": obj.get("status"), + "startedAt": obj.get("startedAt"), + "completedAt": obj.get("completedAt"), + "errorMessage": obj.get("errorMessage"), + "taskArn": obj.get("taskArn"), + "ttl": obj.get("ttl") + }) + return _obj + + diff --git a/quantcdn/models/get_scaling_policy_response.py b/quantcdn/models/get_scaling_policy_response.py new file mode 100644 index 00000000..26d92c0b --- /dev/null +++ b/quantcdn/models/get_scaling_policy_response.py @@ -0,0 +1,112 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt, StrictStr, field_validator +from typing import Any, ClassVar, Dict, List, Optional, Union +from typing import Optional, Set +from typing_extensions import Self + +class GetScalingPolicyResponse(BaseModel): + """ + GetScalingPolicyResponse + """ # noqa: E501 + metric: Optional[StrictStr] = None + target_value: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, alias="targetValue") + scale_in_cooldown_seconds: Optional[StrictInt] = Field(default=None, alias="scaleInCooldownSeconds") + scale_out_cooldown_seconds: Optional[StrictInt] = Field(default=None, alias="scaleOutCooldownSeconds") + policy_name: Optional[StrictStr] = Field(default=None, description="Name of the underlying Application Auto Scaling policy.", alias="policyName") + resource_label: Optional[StrictStr] = Field(default=None, description="ALB ResourceLabel for RPS policies (target group identifier).", alias="resourceLabel") + __properties: ClassVar[List[str]] = ["metric", "targetValue", "scaleInCooldownSeconds", "scaleOutCooldownSeconds", "policyName", "resourceLabel"] + + @field_validator('metric') + def metric_validate_enum(cls, value): + """Validates the enum""" + if value is None: + return value + + if value not in set(['CPUUtilization', 'MemoryUtilization', 'RPS']): + raise ValueError("must be one of enum values ('CPUUtilization', 'MemoryUtilization', 'RPS')") + return value + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of GetScalingPolicyResponse from a JSON string""" + return cls.from_dict(json.loads(json_str)) + + def to_dict(self) -> Dict[str, Any]: + """Return the dictionary representation of the model using alias. + + This has the following differences from calling pydantic's + `self.model_dump(by_alias=True)`: + + * `None` is only added to the output dict for nullable fields that + were set at model initialization. Other fields with value `None` + are ignored. + """ + excluded_fields: Set[str] = set([ + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + # set to None if resource_label (nullable) is None + # and model_fields_set contains the field + if self.resource_label is None and "resource_label" in self.model_fields_set: + _dict['resourceLabel'] = None + + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of GetScalingPolicyResponse from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "metric": obj.get("metric"), + "targetValue": obj.get("targetValue"), + "scaleInCooldownSeconds": obj.get("scaleInCooldownSeconds"), + "scaleOutCooldownSeconds": obj.get("scaleOutCooldownSeconds"), + "policyName": obj.get("policyName"), + "resourceLabel": obj.get("resourceLabel") + }) + return _obj + + diff --git a/quantcdn/models/get_skill200_response.py b/quantcdn/models/get_skill200_response.py new file mode 100644 index 00000000..fcc906a3 --- /dev/null +++ b/quantcdn/models/get_skill200_response.py @@ -0,0 +1,91 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict +from typing import Any, ClassVar, Dict, List, Optional +from quantcdn.models.get_skill200_response_skill import GetSkill200ResponseSkill +from typing import Optional, Set +from typing_extensions import Self + +class GetSkill200Response(BaseModel): + """ + GetSkill200Response + """ # noqa: E501 + skill: Optional[GetSkill200ResponseSkill] = None + __properties: ClassVar[List[str]] = ["skill"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of GetSkill200Response from a JSON string""" + return cls.from_dict(json.loads(json_str)) + + def to_dict(self) -> Dict[str, Any]: + """Return the dictionary representation of the model using alias. + + This has the following differences from calling pydantic's + `self.model_dump(by_alias=True)`: + + * `None` is only added to the output dict for nullable fields that + were set at model initialization. Other fields with value `None` + are ignored. + """ + excluded_fields: Set[str] = set([ + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + # override the default output from pydantic by calling `to_dict()` of skill + if self.skill: + _dict['skill'] = self.skill.to_dict() + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of GetSkill200Response from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "skill": GetSkill200ResponseSkill.from_dict(obj["skill"]) if obj.get("skill") is not None else None + }) + return _obj + + diff --git a/quantcdn/models/get_skill200_response_skill.py b/quantcdn/models/get_skill200_response_skill.py new file mode 100644 index 00000000..16c05644 --- /dev/null +++ b/quantcdn/models/get_skill200_response_skill.py @@ -0,0 +1,114 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from datetime import datetime +from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr +from typing import Any, ClassVar, Dict, List, Optional +from typing import Optional, Set +from typing_extensions import Self + +class GetSkill200ResponseSkill(BaseModel): + """ + GetSkill200ResponseSkill + """ # noqa: E501 + skill_id: Optional[StrictStr] = Field(default=None, alias="skillId") + name: Optional[StrictStr] = None + description: Optional[StrictStr] = None + content: Optional[StrictStr] = None + trigger_condition: Optional[StrictStr] = Field(default=None, alias="triggerCondition") + tags: Optional[List[StrictStr]] = None + source: Optional[Dict[str, Any]] = None + required_tools: Optional[List[StrictStr]] = Field(default=None, alias="requiredTools") + files: Optional[Dict[str, Any]] = None + namespace: Optional[StrictStr] = None + disable_model_invocation: Optional[StrictBool] = Field(default=None, alias="disableModelInvocation") + allowed_tools: Optional[List[StrictStr]] = Field(default=None, alias="allowedTools") + installed_at: Optional[datetime] = Field(default=None, alias="installedAt") + updated_at: Optional[datetime] = Field(default=None, alias="updatedAt") + __properties: ClassVar[List[str]] = ["skillId", "name", "description", "content", "triggerCondition", "tags", "source", "requiredTools", "files", "namespace", "disableModelInvocation", "allowedTools", "installedAt", "updatedAt"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of GetSkill200ResponseSkill from a JSON string""" + return cls.from_dict(json.loads(json_str)) + + def to_dict(self) -> Dict[str, Any]: + """Return the dictionary representation of the model using alias. + + This has the following differences from calling pydantic's + `self.model_dump(by_alias=True)`: + + * `None` is only added to the output dict for nullable fields that + were set at model initialization. Other fields with value `None` + are ignored. + """ + excluded_fields: Set[str] = set([ + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of GetSkill200ResponseSkill from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "skillId": obj.get("skillId"), + "name": obj.get("name"), + "description": obj.get("description"), + "content": obj.get("content"), + "triggerCondition": obj.get("triggerCondition"), + "tags": obj.get("tags"), + "source": obj.get("source"), + "requiredTools": obj.get("requiredTools"), + "files": obj.get("files"), + "namespace": obj.get("namespace"), + "disableModelInvocation": obj.get("disableModelInvocation"), + "allowedTools": obj.get("allowedTools"), + "installedAt": obj.get("installedAt"), + "updatedAt": obj.get("updatedAt") + }) + return _obj + + diff --git a/quantcdn/models/get_slack_bot200_response.py b/quantcdn/models/get_slack_bot200_response.py new file mode 100644 index 00000000..5d0304ac --- /dev/null +++ b/quantcdn/models/get_slack_bot200_response.py @@ -0,0 +1,91 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict +from typing import Any, ClassVar, Dict, List, Optional +from quantcdn.models.get_slack_bot200_response_bot import GetSlackBot200ResponseBot +from typing import Optional, Set +from typing_extensions import Self + +class GetSlackBot200Response(BaseModel): + """ + GetSlackBot200Response + """ # noqa: E501 + bot: Optional[GetSlackBot200ResponseBot] = None + __properties: ClassVar[List[str]] = ["bot"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of GetSlackBot200Response from a JSON string""" + return cls.from_dict(json.loads(json_str)) + + def to_dict(self) -> Dict[str, Any]: + """Return the dictionary representation of the model using alias. + + This has the following differences from calling pydantic's + `self.model_dump(by_alias=True)`: + + * `None` is only added to the output dict for nullable fields that + were set at model initialization. Other fields with value `None` + are ignored. + """ + excluded_fields: Set[str] = set([ + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + # override the default output from pydantic by calling `to_dict()` of bot + if self.bot: + _dict['bot'] = self.bot.to_dict() + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of GetSlackBot200Response from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "bot": GetSlackBot200ResponseBot.from_dict(obj["bot"]) if obj.get("bot") is not None else None + }) + return _obj + + diff --git a/quantcdn/models/get_slack_bot200_response_bot.py b/quantcdn/models/get_slack_bot200_response_bot.py new file mode 100644 index 00000000..0e8720e2 --- /dev/null +++ b/quantcdn/models/get_slack_bot200_response_bot.py @@ -0,0 +1,160 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from datetime import datetime +from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictFloat, StrictInt, StrictStr, field_validator +from typing import Any, ClassVar, Dict, List, Optional, Union +from typing import Optional, Set +from typing_extensions import Self + +class GetSlackBot200ResponseBot(BaseModel): + """ + GetSlackBot200ResponseBot + """ # noqa: E501 + bot_id: Optional[StrictStr] = Field(default=None, alias="botId") + name: Optional[StrictStr] = None + setup_type: Optional[StrictStr] = Field(default=None, alias="setupType") + status: Optional[StrictStr] = None + connected: Optional[StrictBool] = None + system_prompt: Optional[StrictStr] = Field(default=None, alias="systemPrompt") + model_id: Optional[StrictStr] = Field(default=None, alias="modelId") + temperature: Optional[Union[StrictFloat, StrictInt]] = None + max_tokens: Optional[StrictInt] = Field(default=None, alias="maxTokens") + allowed_tools: Optional[List[StrictStr]] = Field(default=None, alias="allowedTools") + assigned_skills: Optional[List[StrictStr]] = Field(default=None, alias="assignedSkills") + allowed_collections: Optional[List[StrictStr]] = Field(default=None, alias="allowedCollections") + allowed_sub_agents: Optional[List[StrictStr]] = Field(default=None, alias="allowedSubAgents") + guardrail_preset: Optional[StrictStr] = Field(default=None, alias="guardrailPreset") + filter_policies: Optional[List[StrictStr]] = Field(default=None, alias="filterPolicies") + long_context: Optional[StrictBool] = Field(default=None, alias="longContext") + session_ttl_days: Optional[StrictInt] = Field(default=None, alias="sessionTtlDays") + allowed_channels: Optional[List[StrictStr]] = Field(default=None, alias="allowedChannels") + allowed_users: Optional[List[StrictStr]] = Field(default=None, alias="allowedUsers") + denied_users: Optional[List[StrictStr]] = Field(default=None, alias="deniedUsers") + allow_guests: Optional[StrictBool] = Field(default=None, alias="allowGuests") + home_tab_content: Optional[StrictStr] = Field(default=None, alias="homeTabContent") + agent_access_control: Optional[Dict[str, Any]] = Field(default=None, alias="agentAccessControl") + keywords_enabled: Optional[StrictBool] = Field(default=None, alias="keywordsEnabled") + keywords: Optional[List[StrictStr]] = None + created_at: Optional[datetime] = Field(default=None, alias="createdAt") + updated_at: Optional[datetime] = Field(default=None, alias="updatedAt") + __properties: ClassVar[List[str]] = ["botId", "name", "setupType", "status", "connected", "systemPrompt", "modelId", "temperature", "maxTokens", "allowedTools", "assignedSkills", "allowedCollections", "allowedSubAgents", "guardrailPreset", "filterPolicies", "longContext", "sessionTtlDays", "allowedChannels", "allowedUsers", "deniedUsers", "allowGuests", "homeTabContent", "agentAccessControl", "keywordsEnabled", "keywords", "createdAt", "updatedAt"] + + @field_validator('setup_type') + def setup_type_validate_enum(cls, value): + """Validates the enum""" + if value is None: + return value + + if value not in set(['quant', 'byo']): + raise ValueError("must be one of enum values ('quant', 'byo')") + return value + + @field_validator('status') + def status_validate_enum(cls, value): + """Validates the enum""" + if value is None: + return value + + if value not in set(['active', 'inactive']): + raise ValueError("must be one of enum values ('active', 'inactive')") + return value + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of GetSlackBot200ResponseBot from a JSON string""" + return cls.from_dict(json.loads(json_str)) + + def to_dict(self) -> Dict[str, Any]: + """Return the dictionary representation of the model using alias. + + This has the following differences from calling pydantic's + `self.model_dump(by_alias=True)`: + + * `None` is only added to the output dict for nullable fields that + were set at model initialization. Other fields with value `None` + are ignored. + """ + excluded_fields: Set[str] = set([ + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of GetSlackBot200ResponseBot from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "botId": obj.get("botId"), + "name": obj.get("name"), + "setupType": obj.get("setupType"), + "status": obj.get("status"), + "connected": obj.get("connected"), + "systemPrompt": obj.get("systemPrompt"), + "modelId": obj.get("modelId"), + "temperature": obj.get("temperature"), + "maxTokens": obj.get("maxTokens"), + "allowedTools": obj.get("allowedTools"), + "assignedSkills": obj.get("assignedSkills"), + "allowedCollections": obj.get("allowedCollections"), + "allowedSubAgents": obj.get("allowedSubAgents"), + "guardrailPreset": obj.get("guardrailPreset"), + "filterPolicies": obj.get("filterPolicies"), + "longContext": obj.get("longContext"), + "sessionTtlDays": obj.get("sessionTtlDays"), + "allowedChannels": obj.get("allowedChannels"), + "allowedUsers": obj.get("allowedUsers"), + "deniedUsers": obj.get("deniedUsers"), + "allowGuests": obj.get("allowGuests"), + "homeTabContent": obj.get("homeTabContent"), + "agentAccessControl": obj.get("agentAccessControl"), + "keywordsEnabled": obj.get("keywordsEnabled"), + "keywords": obj.get("keywords"), + "createdAt": obj.get("createdAt"), + "updatedAt": obj.get("updatedAt") + }) + return _obj + + diff --git a/quantcdn/models/get_ssh_access_credentials200_response.py b/quantcdn/models/get_ssh_access_credentials200_response.py index 5d017613..320daa2e 100644 --- a/quantcdn/models/get_ssh_access_credentials200_response.py +++ b/quantcdn/models/get_ssh_access_credentials200_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/get_ssh_access_credentials200_response_credentials.py b/quantcdn/models/get_ssh_access_credentials200_response_credentials.py index 35318a2e..3ac45878 100644 --- a/quantcdn/models/get_ssh_access_credentials200_response_credentials.py +++ b/quantcdn/models/get_ssh_access_credentials200_response_credentials.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/get_task200_response.py b/quantcdn/models/get_task200_response.py index a9778ef1..90581f64 100644 --- a/quantcdn/models/get_task200_response.py +++ b/quantcdn/models/get_task200_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/get_vector_collection200_response.py b/quantcdn/models/get_vector_collection200_response.py index 4f4208e6..6c0ad140 100644 --- a/quantcdn/models/get_vector_collection200_response.py +++ b/quantcdn/models/get_vector_collection200_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/get_vector_collection200_response_collection.py b/quantcdn/models/get_vector_collection200_response_collection.py index a41cf4a3..df9ac73a 100644 --- a/quantcdn/models/get_vector_collection200_response_collection.py +++ b/quantcdn/models/get_vector_collection200_response_collection.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/image_generation200_response.py b/quantcdn/models/image_generation200_response.py index 2d07da60..87856a9f 100644 --- a/quantcdn/models/image_generation200_response.py +++ b/quantcdn/models/image_generation200_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/image_generation_request.py b/quantcdn/models/image_generation_request.py index bac37b42..22deabcd 100644 --- a/quantcdn/models/image_generation_request.py +++ b/quantcdn/models/image_generation_request.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/image_generation_request_background_removal_params.py b/quantcdn/models/image_generation_request_background_removal_params.py index d326ad9a..aacb81f8 100644 --- a/quantcdn/models/image_generation_request_background_removal_params.py +++ b/quantcdn/models/image_generation_request_background_removal_params.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/image_generation_request_color_guided_generation_params.py b/quantcdn/models/image_generation_request_color_guided_generation_params.py index 9ed8125f..68f29d36 100644 --- a/quantcdn/models/image_generation_request_color_guided_generation_params.py +++ b/quantcdn/models/image_generation_request_color_guided_generation_params.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/image_generation_request_image_generation_config.py b/quantcdn/models/image_generation_request_image_generation_config.py index f231ae25..aa07fe80 100644 --- a/quantcdn/models/image_generation_request_image_generation_config.py +++ b/quantcdn/models/image_generation_request_image_generation_config.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/image_generation_request_image_variation_params.py b/quantcdn/models/image_generation_request_image_variation_params.py index 30d8a0c3..255acfb5 100644 --- a/quantcdn/models/image_generation_request_image_variation_params.py +++ b/quantcdn/models/image_generation_request_image_variation_params.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/image_generation_request_in_painting_params.py b/quantcdn/models/image_generation_request_in_painting_params.py index 0270da6f..0782fe22 100644 --- a/quantcdn/models/image_generation_request_in_painting_params.py +++ b/quantcdn/models/image_generation_request_in_painting_params.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/image_generation_request_out_painting_params.py b/quantcdn/models/image_generation_request_out_painting_params.py index 447b3976..d8a9e0ec 100644 --- a/quantcdn/models/image_generation_request_out_painting_params.py +++ b/quantcdn/models/image_generation_request_out_painting_params.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/image_generation_request_text_to_image_params.py b/quantcdn/models/image_generation_request_text_to_image_params.py index 63e0b0a9..f3de3991 100644 --- a/quantcdn/models/image_generation_request_text_to_image_params.py +++ b/quantcdn/models/image_generation_request_text_to_image_params.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/import_skill201_response.py b/quantcdn/models/import_skill201_response.py new file mode 100644 index 00000000..aa6cefd4 --- /dev/null +++ b/quantcdn/models/import_skill201_response.py @@ -0,0 +1,89 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, StrictStr +from typing import Any, ClassVar, Dict, List, Optional +from typing import Optional, Set +from typing_extensions import Self + +class ImportSkill201Response(BaseModel): + """ + ImportSkill201Response + """ # noqa: E501 + skill: Optional[Dict[str, Any]] = None + message: Optional[StrictStr] = None + __properties: ClassVar[List[str]] = ["skill", "message"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of ImportSkill201Response from a JSON string""" + return cls.from_dict(json.loads(json_str)) + + def to_dict(self) -> Dict[str, Any]: + """Return the dictionary representation of the model using alias. + + This has the following differences from calling pydantic's + `self.model_dump(by_alias=True)`: + + * `None` is only added to the output dict for nullable fields that + were set at model initialization. Other fields with value `None` + are ignored. + """ + excluded_fields: Set[str] = set([ + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of ImportSkill201Response from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "skill": obj.get("skill"), + "message": obj.get("message") + }) + return _obj + + diff --git a/quantcdn/models/import_skill_collection201_response.py b/quantcdn/models/import_skill_collection201_response.py new file mode 100644 index 00000000..b3fb902b --- /dev/null +++ b/quantcdn/models/import_skill_collection201_response.py @@ -0,0 +1,95 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, StrictInt, StrictStr +from typing import Any, ClassVar, Dict, List, Optional +from typing import Optional, Set +from typing_extensions import Self + +class ImportSkillCollection201Response(BaseModel): + """ + ImportSkillCollection201Response + """ # noqa: E501 + namespace: Optional[StrictStr] = None + imported: Optional[StrictInt] = None + failed: Optional[StrictInt] = None + skills: Optional[List[Dict[str, Any]]] = None + errors: Optional[List[Dict[str, Any]]] = None + __properties: ClassVar[List[str]] = ["namespace", "imported", "failed", "skills", "errors"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of ImportSkillCollection201Response from a JSON string""" + return cls.from_dict(json.loads(json_str)) + + def to_dict(self) -> Dict[str, Any]: + """Return the dictionary representation of the model using alias. + + This has the following differences from calling pydantic's + `self.model_dump(by_alias=True)`: + + * `None` is only added to the output dict for nullable fields that + were set at model initialization. Other fields with value `None` + are ignored. + """ + excluded_fields: Set[str] = set([ + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of ImportSkillCollection201Response from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "namespace": obj.get("namespace"), + "imported": obj.get("imported"), + "failed": obj.get("failed"), + "skills": obj.get("skills"), + "errors": obj.get("errors") + }) + return _obj + + diff --git a/quantcdn/models/import_skill_collection_request.py b/quantcdn/models/import_skill_collection_request.py new file mode 100644 index 00000000..fe0ea293 --- /dev/null +++ b/quantcdn/models/import_skill_collection_request.py @@ -0,0 +1,105 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator +from typing import Any, ClassVar, Dict, List, Optional +from typing_extensions import Annotated +from quantcdn.models.import_skill_collection_request_source import ImportSkillCollectionRequestSource +from typing import Optional, Set +from typing_extensions import Self + +class ImportSkillCollectionRequest(BaseModel): + """ + ImportSkillCollectionRequest + """ # noqa: E501 + namespace: Annotated[str, Field(strict=True)] + source: ImportSkillCollectionRequestSource + tags: Optional[List[StrictStr]] = None + installed_by: Optional[StrictStr] = Field(default=None, alias="installedBy") + __properties: ClassVar[List[str]] = ["namespace", "source", "tags", "installedBy"] + + @field_validator('namespace') + def namespace_validate_regular_expression(cls, value): + """Validates the regular expression""" + if not re.match(r"^[a-z0-9][a-z0-9-]{0,62}[a-z0-9]$", value): + raise ValueError(r"must validate the regular expression /^[a-z0-9][a-z0-9-]{0,62}[a-z0-9]$/") + return value + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of ImportSkillCollectionRequest from a JSON string""" + return cls.from_dict(json.loads(json_str)) + + def to_dict(self) -> Dict[str, Any]: + """Return the dictionary representation of the model using alias. + + This has the following differences from calling pydantic's + `self.model_dump(by_alias=True)`: + + * `None` is only added to the output dict for nullable fields that + were set at model initialization. Other fields with value `None` + are ignored. + """ + excluded_fields: Set[str] = set([ + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + # override the default output from pydantic by calling `to_dict()` of source + if self.source: + _dict['source'] = self.source.to_dict() + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of ImportSkillCollectionRequest from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "namespace": obj.get("namespace"), + "source": ImportSkillCollectionRequestSource.from_dict(obj["source"]) if obj.get("source") is not None else None, + "tags": obj.get("tags"), + "installedBy": obj.get("installedBy") + }) + return _obj + + diff --git a/quantcdn/models/import_skill_collection_request_source.py b/quantcdn/models/import_skill_collection_request_source.py new file mode 100644 index 00000000..8b4133ac --- /dev/null +++ b/quantcdn/models/import_skill_collection_request_source.py @@ -0,0 +1,100 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, StrictStr, field_validator +from typing import Any, ClassVar, Dict, List, Optional +from typing import Optional, Set +from typing_extensions import Self + +class ImportSkillCollectionRequestSource(BaseModel): + """ + ImportSkillCollectionRequestSource + """ # noqa: E501 + type: StrictStr + repo: StrictStr + path: Optional[StrictStr] = None + version: Optional[StrictStr] = None + __properties: ClassVar[List[str]] = ["type", "repo", "path", "version"] + + @field_validator('type') + def type_validate_enum(cls, value): + """Validates the enum""" + if value not in set(['github']): + raise ValueError("must be one of enum values ('github')") + return value + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of ImportSkillCollectionRequestSource from a JSON string""" + return cls.from_dict(json.loads(json_str)) + + def to_dict(self) -> Dict[str, Any]: + """Return the dictionary representation of the model using alias. + + This has the following differences from calling pydantic's + `self.model_dump(by_alias=True)`: + + * `None` is only added to the output dict for nullable fields that + were set at model initialization. Other fields with value `None` + are ignored. + """ + excluded_fields: Set[str] = set([ + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of ImportSkillCollectionRequestSource from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "type": obj.get("type"), + "repo": obj.get("repo"), + "path": obj.get("path"), + "version": obj.get("version") + }) + return _obj + + diff --git a/quantcdn/models/import_skill_request.py b/quantcdn/models/import_skill_request.py new file mode 100644 index 00000000..def872cb --- /dev/null +++ b/quantcdn/models/import_skill_request.py @@ -0,0 +1,107 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr +from typing import Any, ClassVar, Dict, List, Optional +from quantcdn.models.import_skill_request_source import ImportSkillRequestSource +from typing import Optional, Set +from typing_extensions import Self + +class ImportSkillRequest(BaseModel): + """ + ImportSkillRequest + """ # noqa: E501 + source: ImportSkillRequestSource + name: Optional[StrictStr] = None + description: Optional[StrictStr] = None + tags: Optional[List[StrictStr]] = None + trigger_condition: Optional[StrictStr] = Field(default=None, alias="triggerCondition") + required_tools: Optional[List[StrictStr]] = Field(default=None, alias="requiredTools") + disable_model_invocation: Optional[StrictBool] = Field(default=None, alias="disableModelInvocation") + allowed_tools: Optional[List[StrictStr]] = Field(default=None, alias="allowedTools") + installed_by: Optional[StrictStr] = Field(default=None, alias="installedBy") + __properties: ClassVar[List[str]] = ["source", "name", "description", "tags", "triggerCondition", "requiredTools", "disableModelInvocation", "allowedTools", "installedBy"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of ImportSkillRequest from a JSON string""" + return cls.from_dict(json.loads(json_str)) + + def to_dict(self) -> Dict[str, Any]: + """Return the dictionary representation of the model using alias. + + This has the following differences from calling pydantic's + `self.model_dump(by_alias=True)`: + + * `None` is only added to the output dict for nullable fields that + were set at model initialization. Other fields with value `None` + are ignored. + """ + excluded_fields: Set[str] = set([ + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + # override the default output from pydantic by calling `to_dict()` of source + if self.source: + _dict['source'] = self.source.to_dict() + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of ImportSkillRequest from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "source": ImportSkillRequestSource.from_dict(obj["source"]) if obj.get("source") is not None else None, + "name": obj.get("name"), + "description": obj.get("description"), + "tags": obj.get("tags"), + "triggerCondition": obj.get("triggerCondition"), + "requiredTools": obj.get("requiredTools"), + "disableModelInvocation": obj.get("disableModelInvocation"), + "allowedTools": obj.get("allowedTools"), + "installedBy": obj.get("installedBy") + }) + return _obj + + diff --git a/quantcdn/models/import_skill_request_source.py b/quantcdn/models/import_skill_request_source.py new file mode 100644 index 00000000..7460120a --- /dev/null +++ b/quantcdn/models/import_skill_request_source.py @@ -0,0 +1,102 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, StrictStr, field_validator +from typing import Any, ClassVar, Dict, List, Optional +from typing import Optional, Set +from typing_extensions import Self + +class ImportSkillRequestSource(BaseModel): + """ + ImportSkillRequestSource + """ # noqa: E501 + type: StrictStr + url: Optional[StrictStr] = None + repo: Optional[StrictStr] = None + path: Optional[StrictStr] = None + version: Optional[StrictStr] = None + __properties: ClassVar[List[str]] = ["type", "url", "repo", "path", "version"] + + @field_validator('type') + def type_validate_enum(cls, value): + """Validates the enum""" + if value not in set(['skills.sh', 'github']): + raise ValueError("must be one of enum values ('skills.sh', 'github')") + return value + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of ImportSkillRequestSource from a JSON string""" + return cls.from_dict(json.loads(json_str)) + + def to_dict(self) -> Dict[str, Any]: + """Return the dictionary representation of the model using alias. + + This has the following differences from calling pydantic's + `self.model_dump(by_alias=True)`: + + * `None` is only added to the output dict for nullable fields that + were set at model initialization. Other fields with value `None` + are ignored. + """ + excluded_fields: Set[str] = set([ + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of ImportSkillRequestSource from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "type": obj.get("type"), + "url": obj.get("url"), + "repo": obj.get("repo"), + "path": obj.get("path"), + "version": obj.get("version") + }) + return _obj + + diff --git a/quantcdn/models/kv_items_create200_response.py b/quantcdn/models/kv_items_create200_response.py index 0e9ba83e..8da96a40 100644 --- a/quantcdn/models/kv_items_create200_response.py +++ b/quantcdn/models/kv_items_create200_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/kv_items_delete200_response.py b/quantcdn/models/kv_items_delete200_response.py index b07850cb..4d9a10fd 100644 --- a/quantcdn/models/kv_items_delete200_response.py +++ b/quantcdn/models/kv_items_delete200_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/kv_items_show200_response.py b/quantcdn/models/kv_items_show200_response.py index 8e706c0c..0bbcbe8e 100644 --- a/quantcdn/models/kv_items_show200_response.py +++ b/quantcdn/models/kv_items_show200_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/kv_items_show200_response_value.py b/quantcdn/models/kv_items_show200_response_value.py index 91b6099f..03267c5f 100644 --- a/quantcdn/models/kv_items_show200_response_value.py +++ b/quantcdn/models/kv_items_show200_response_value.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/kv_link_to_project200_response.py b/quantcdn/models/kv_link_to_project200_response.py new file mode 100644 index 00000000..170fba4c --- /dev/null +++ b/quantcdn/models/kv_link_to_project200_response.py @@ -0,0 +1,89 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, StrictBool, StrictStr +from typing import Any, ClassVar, Dict, List, Optional +from typing import Optional, Set +from typing_extensions import Self + +class KVLinkToProject200Response(BaseModel): + """ + KVLinkToProject200Response + """ # noqa: E501 + success: Optional[StrictBool] = None + message: Optional[StrictStr] = None + __properties: ClassVar[List[str]] = ["success", "message"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of KVLinkToProject200Response from a JSON string""" + return cls.from_dict(json.loads(json_str)) + + def to_dict(self) -> Dict[str, Any]: + """Return the dictionary representation of the model using alias. + + This has the following differences from calling pydantic's + `self.model_dump(by_alias=True)`: + + * `None` is only added to the output dict for nullable fields that + were set at model initialization. Other fields with value `None` + are ignored. + """ + excluded_fields: Set[str] = set([ + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of KVLinkToProject200Response from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "success": obj.get("success"), + "message": obj.get("message") + }) + return _obj + + diff --git a/quantcdn/models/kv_link_to_project_request.py b/quantcdn/models/kv_link_to_project_request.py new file mode 100644 index 00000000..dfc4e148 --- /dev/null +++ b/quantcdn/models/kv_link_to_project_request.py @@ -0,0 +1,87 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, Field, StrictInt +from typing import Any, ClassVar, Dict, List +from typing import Optional, Set +from typing_extensions import Self + +class KVLinkToProjectRequest(BaseModel): + """ + KVLinkToProjectRequest + """ # noqa: E501 + project_id: StrictInt = Field(description="Target project ID to link to") + __properties: ClassVar[List[str]] = ["project_id"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of KVLinkToProjectRequest from a JSON string""" + return cls.from_dict(json.loads(json_str)) + + def to_dict(self) -> Dict[str, Any]: + """Return the dictionary representation of the model using alias. + + This has the following differences from calling pydantic's + `self.model_dump(by_alias=True)`: + + * `None` is only added to the output dict for nullable fields that + were set at model initialization. Other fields with value `None` + are ignored. + """ + excluded_fields: Set[str] = set([ + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of KVLinkToProjectRequest from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "project_id": obj.get("project_id") + }) + return _obj + + diff --git a/quantcdn/models/list_ai_agents200_response.py b/quantcdn/models/list_ai_agents200_response.py index 60037c10..aeda1282 100644 --- a/quantcdn/models/list_ai_agents200_response.py +++ b/quantcdn/models/list_ai_agents200_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/list_ai_agents200_response_agents_inner.py b/quantcdn/models/list_ai_agents200_response_agents_inner.py index e2a2442a..b88b3352 100644 --- a/quantcdn/models/list_ai_agents200_response_agents_inner.py +++ b/quantcdn/models/list_ai_agents200_response_agents_inner.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. @@ -18,7 +18,7 @@ import json from datetime import datetime -from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt, StrictStr +from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictFloat, StrictInt, StrictStr from typing import Any, ClassVar, Dict, List, Optional, Union from typing import Optional, Set from typing_extensions import Self @@ -35,9 +35,14 @@ class ListAIAgents200ResponseAgentsInner(BaseModel): temperature: Optional[Union[StrictFloat, StrictInt]] = None max_tokens: Optional[StrictInt] = Field(default=None, alias="maxTokens") allowed_tools: Optional[List[StrictStr]] = Field(default=None, alias="allowedTools") + assigned_skills: Optional[List[StrictStr]] = Field(default=None, alias="assignedSkills") + long_context: Optional[StrictBool] = Field(default=None, alias="longContext") + guardrail_preset: Optional[StrictStr] = Field(default=None, alias="guardrailPreset") + is_global: Optional[StrictBool] = Field(default=None, alias="isGlobal") + has_overlay: Optional[StrictBool] = Field(default=None, alias="hasOverlay") created_at: Optional[datetime] = Field(default=None, alias="createdAt") updated_at: Optional[datetime] = Field(default=None, alias="updatedAt") - __properties: ClassVar[List[str]] = ["agentId", "name", "description", "group", "modelId", "temperature", "maxTokens", "allowedTools", "createdAt", "updatedAt"] + __properties: ClassVar[List[str]] = ["agentId", "name", "description", "group", "modelId", "temperature", "maxTokens", "allowedTools", "assignedSkills", "longContext", "guardrailPreset", "isGlobal", "hasOverlay", "createdAt", "updatedAt"] model_config = ConfigDict( populate_by_name=True, @@ -98,6 +103,11 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: "temperature": obj.get("temperature"), "maxTokens": obj.get("maxTokens"), "allowedTools": obj.get("allowedTools"), + "assignedSkills": obj.get("assignedSkills"), + "longContext": obj.get("longContext"), + "guardrailPreset": obj.get("guardrailPreset"), + "isGlobal": obj.get("isGlobal"), + "hasOverlay": obj.get("hasOverlay"), "createdAt": obj.get("createdAt"), "updatedAt": obj.get("updatedAt") }) diff --git a/quantcdn/models/list_ai_models200_response.py b/quantcdn/models/list_ai_models200_response.py index 325343a9..ac301e3d 100644 --- a/quantcdn/models/list_ai_models200_response.py +++ b/quantcdn/models/list_ai_models200_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/list_ai_models200_response_models_inner.py b/quantcdn/models/list_ai_models200_response_models_inner.py index 6e5afaa8..ae94a75c 100644 --- a/quantcdn/models/list_ai_models200_response_models_inner.py +++ b/quantcdn/models/list_ai_models200_response_models_inner.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/list_ai_models200_response_models_inner_capabilities.py b/quantcdn/models/list_ai_models200_response_models_inner_capabilities.py index baad9ed3..b88737bf 100644 --- a/quantcdn/models/list_ai_models200_response_models_inner_capabilities.py +++ b/quantcdn/models/list_ai_models200_response_models_inner_capabilities.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/list_ai_sessions200_response_inner.py b/quantcdn/models/list_ai_sessions200_response_inner.py index 07647eaf..f8a09d74 100644 --- a/quantcdn/models/list_ai_sessions200_response_inner.py +++ b/quantcdn/models/list_ai_sessions200_response_inner.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/list_ai_tool_executions200_response.py b/quantcdn/models/list_ai_tool_executions200_response.py index b4950a14..9b78e3cf 100644 --- a/quantcdn/models/list_ai_tool_executions200_response.py +++ b/quantcdn/models/list_ai_tool_executions200_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/list_ai_tool_executions200_response_executions_inner.py b/quantcdn/models/list_ai_tool_executions200_response_executions_inner.py index 71feea47..a7c03211 100644 --- a/quantcdn/models/list_ai_tool_executions200_response_executions_inner.py +++ b/quantcdn/models/list_ai_tool_executions200_response_executions_inner.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/list_ai_tool_names200_response.py b/quantcdn/models/list_ai_tool_names200_response.py index 65138b7f..2c304fae 100644 --- a/quantcdn/models/list_ai_tool_names200_response.py +++ b/quantcdn/models/list_ai_tool_names200_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/list_ai_tools200_response.py b/quantcdn/models/list_ai_tools200_response.py index e47189ed..deadcee4 100644 --- a/quantcdn/models/list_ai_tools200_response.py +++ b/quantcdn/models/list_ai_tools200_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/list_ai_tools200_response_tools_inner.py b/quantcdn/models/list_ai_tools200_response_tools_inner.py index 4354b332..ccf15d50 100644 --- a/quantcdn/models/list_ai_tools200_response_tools_inner.py +++ b/quantcdn/models/list_ai_tools200_response_tools_inner.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/list_ai_tools200_response_tools_inner_tool_spec.py b/quantcdn/models/list_ai_tools200_response_tools_inner_tool_spec.py index 18ec90ed..68c3796a 100644 --- a/quantcdn/models/list_ai_tools200_response_tools_inner_tool_spec.py +++ b/quantcdn/models/list_ai_tools200_response_tools_inner_tool_spec.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/list_ai_tools200_response_tools_inner_tool_spec_input_schema.py b/quantcdn/models/list_ai_tools200_response_tools_inner_tool_spec_input_schema.py index 553280da..c2f789ac 100644 --- a/quantcdn/models/list_ai_tools200_response_tools_inner_tool_spec_input_schema.py +++ b/quantcdn/models/list_ai_tools200_response_tools_inner_tool_spec_input_schema.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/list_backups200_response.py b/quantcdn/models/list_backups200_response.py index d1b40bab..b1771363 100644 --- a/quantcdn/models/list_backups200_response.py +++ b/quantcdn/models/list_backups200_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/list_backups200_response_backups_inner.py b/quantcdn/models/list_backups200_response_backups_inner.py index d6569628..75dc4f5f 100644 --- a/quantcdn/models/list_backups200_response_backups_inner.py +++ b/quantcdn/models/list_backups200_response_backups_inner.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/list_backups422_response.py b/quantcdn/models/list_backups422_response.py index 7c2062d5..6fc5970b 100644 --- a/quantcdn/models/list_backups422_response.py +++ b/quantcdn/models/list_backups422_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/list_custom_tools200_response.py b/quantcdn/models/list_custom_tools200_response.py index c849136f..84555c2a 100644 --- a/quantcdn/models/list_custom_tools200_response.py +++ b/quantcdn/models/list_custom_tools200_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/list_custom_tools200_response_tools_inner.py b/quantcdn/models/list_custom_tools200_response_tools_inner.py index 821acef8..f975342a 100644 --- a/quantcdn/models/list_custom_tools200_response_tools_inner.py +++ b/quantcdn/models/list_custom_tools200_response_tools_inner.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. @@ -31,7 +31,7 @@ class ListCustomTools200ResponseToolsInner(BaseModel): description: Optional[StrictStr] = None edge_function_url: Optional[StrictStr] = Field(default=None, alias="edgeFunctionUrl") is_async: Optional[StrictBool] = Field(default=None, alias="isAsync") - input_schema: Optional[Dict[str, Any]] = Field(default=None, alias="inputSchema") + input_schema: Optional[StrictStr] = Field(default=None, alias="inputSchema") created_at: Optional[datetime] = Field(default=None, alias="createdAt") __properties: ClassVar[List[str]] = ["name", "description", "edgeFunctionUrl", "isAsync", "inputSchema", "createdAt"] diff --git a/quantcdn/models/list_files200_response.py b/quantcdn/models/list_files200_response.py index 43ae918c..329be10e 100644 --- a/quantcdn/models/list_files200_response.py +++ b/quantcdn/models/list_files200_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/list_files200_response_files_inner.py b/quantcdn/models/list_files200_response_files_inner.py index 26ad5719..e7bac7d9 100644 --- a/quantcdn/models/list_files200_response_files_inner.py +++ b/quantcdn/models/list_files200_response_files_inner.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/list_orchestration_batches200_response.py b/quantcdn/models/list_orchestration_batches200_response.py new file mode 100644 index 00000000..54c34725 --- /dev/null +++ b/quantcdn/models/list_orchestration_batches200_response.py @@ -0,0 +1,102 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, Field, StrictStr +from typing import Any, ClassVar, Dict, List, Optional +from quantcdn.models.list_orchestration_batches200_response_batches_inner import ListOrchestrationBatches200ResponseBatchesInner +from typing import Optional, Set +from typing_extensions import Self + +class ListOrchestrationBatches200Response(BaseModel): + """ + ListOrchestrationBatches200Response + """ # noqa: E501 + batches: Optional[List[ListOrchestrationBatches200ResponseBatchesInner]] = None + next_cursor: Optional[StrictStr] = Field(default=None, alias="nextCursor") + __properties: ClassVar[List[str]] = ["batches", "nextCursor"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of ListOrchestrationBatches200Response from a JSON string""" + return cls.from_dict(json.loads(json_str)) + + def to_dict(self) -> Dict[str, Any]: + """Return the dictionary representation of the model using alias. + + This has the following differences from calling pydantic's + `self.model_dump(by_alias=True)`: + + * `None` is only added to the output dict for nullable fields that + were set at model initialization. Other fields with value `None` + are ignored. + """ + excluded_fields: Set[str] = set([ + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + # override the default output from pydantic by calling `to_dict()` of each item in batches (list) + _items = [] + if self.batches: + for _item_batches in self.batches: + if _item_batches: + _items.append(_item_batches.to_dict()) + _dict['batches'] = _items + # set to None if next_cursor (nullable) is None + # and model_fields_set contains the field + if self.next_cursor is None and "next_cursor" in self.model_fields_set: + _dict['nextCursor'] = None + + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of ListOrchestrationBatches200Response from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "batches": [ListOrchestrationBatches200ResponseBatchesInner.from_dict(_item) for _item in obj["batches"]] if obj.get("batches") is not None else None, + "nextCursor": obj.get("nextCursor") + }) + return _obj + + diff --git a/quantcdn/models/list_orchestration_batches200_response_batches_inner.py b/quantcdn/models/list_orchestration_batches200_response_batches_inner.py new file mode 100644 index 00000000..b2eaadfa --- /dev/null +++ b/quantcdn/models/list_orchestration_batches200_response_batches_inner.py @@ -0,0 +1,121 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from datetime import datetime +from pydantic import BaseModel, ConfigDict, Field, StrictInt, StrictStr, field_validator +from typing import Any, ClassVar, Dict, List, Optional +from typing import Optional, Set +from typing_extensions import Self + +class ListOrchestrationBatches200ResponseBatchesInner(BaseModel): + """ + ListOrchestrationBatches200ResponseBatchesInner + """ # noqa: E501 + batch_id: Optional[StrictStr] = Field(default=None, alias="batchId") + orchestration_id: Optional[StrictStr] = Field(default=None, alias="orchestrationId") + iteration: Optional[StrictInt] = None + item_count: Optional[StrictInt] = Field(default=None, alias="itemCount") + completed_count: Optional[StrictInt] = Field(default=None, alias="completedCount") + failed_count: Optional[StrictInt] = Field(default=None, alias="failedCount") + status: Optional[StrictStr] = None + started_at: Optional[datetime] = Field(default=None, alias="startedAt") + completed_at: Optional[datetime] = Field(default=None, alias="completedAt") + error: Optional[StrictStr] = None + __properties: ClassVar[List[str]] = ["batchId", "orchestrationId", "iteration", "itemCount", "completedCount", "failedCount", "status", "startedAt", "completedAt", "error"] + + @field_validator('status') + def status_validate_enum(cls, value): + """Validates the enum""" + if value is None: + return value + + if value not in set(['pending', 'running', 'completed', 'failed']): + raise ValueError("must be one of enum values ('pending', 'running', 'completed', 'failed')") + return value + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of ListOrchestrationBatches200ResponseBatchesInner from a JSON string""" + return cls.from_dict(json.loads(json_str)) + + def to_dict(self) -> Dict[str, Any]: + """Return the dictionary representation of the model using alias. + + This has the following differences from calling pydantic's + `self.model_dump(by_alias=True)`: + + * `None` is only added to the output dict for nullable fields that + were set at model initialization. Other fields with value `None` + are ignored. + """ + excluded_fields: Set[str] = set([ + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + # set to None if error (nullable) is None + # and model_fields_set contains the field + if self.error is None and "error" in self.model_fields_set: + _dict['error'] = None + + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of ListOrchestrationBatches200ResponseBatchesInner from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "batchId": obj.get("batchId"), + "orchestrationId": obj.get("orchestrationId"), + "iteration": obj.get("iteration"), + "itemCount": obj.get("itemCount"), + "completedCount": obj.get("completedCount"), + "failedCount": obj.get("failedCount"), + "status": obj.get("status"), + "startedAt": obj.get("startedAt"), + "completedAt": obj.get("completedAt"), + "error": obj.get("error") + }) + return _obj + + diff --git a/quantcdn/models/list_orchestrations200_response.py b/quantcdn/models/list_orchestrations200_response.py new file mode 100644 index 00000000..f79b7210 --- /dev/null +++ b/quantcdn/models/list_orchestrations200_response.py @@ -0,0 +1,94 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, Field, StrictStr +from typing import Any, ClassVar, Dict, List, Optional +from typing import Optional, Set +from typing_extensions import Self + +class ListOrchestrations200Response(BaseModel): + """ + ListOrchestrations200Response + """ # noqa: E501 + orchestrations: Optional[List[Dict[str, Any]]] = None + next_cursor: Optional[StrictStr] = Field(default=None, alias="nextCursor") + __properties: ClassVar[List[str]] = ["orchestrations", "nextCursor"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of ListOrchestrations200Response from a JSON string""" + return cls.from_dict(json.loads(json_str)) + + def to_dict(self) -> Dict[str, Any]: + """Return the dictionary representation of the model using alias. + + This has the following differences from calling pydantic's + `self.model_dump(by_alias=True)`: + + * `None` is only added to the output dict for nullable fields that + were set at model initialization. Other fields with value `None` + are ignored. + """ + excluded_fields: Set[str] = set([ + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + # set to None if next_cursor (nullable) is None + # and model_fields_set contains the field + if self.next_cursor is None and "next_cursor" in self.model_fields_set: + _dict['nextCursor'] = None + + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of ListOrchestrations200Response from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "orchestrations": obj.get("orchestrations"), + "nextCursor": obj.get("nextCursor") + }) + return _obj + + diff --git a/quantcdn/models/list_skill_collections200_response.py b/quantcdn/models/list_skill_collections200_response.py new file mode 100644 index 00000000..0dcad414 --- /dev/null +++ b/quantcdn/models/list_skill_collections200_response.py @@ -0,0 +1,95 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict +from typing import Any, ClassVar, Dict, List, Optional +from quantcdn.models.list_skill_collections200_response_collections_inner import ListSkillCollections200ResponseCollectionsInner +from typing import Optional, Set +from typing_extensions import Self + +class ListSkillCollections200Response(BaseModel): + """ + ListSkillCollections200Response + """ # noqa: E501 + collections: Optional[List[ListSkillCollections200ResponseCollectionsInner]] = None + __properties: ClassVar[List[str]] = ["collections"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of ListSkillCollections200Response from a JSON string""" + return cls.from_dict(json.loads(json_str)) + + def to_dict(self) -> Dict[str, Any]: + """Return the dictionary representation of the model using alias. + + This has the following differences from calling pydantic's + `self.model_dump(by_alias=True)`: + + * `None` is only added to the output dict for nullable fields that + were set at model initialization. Other fields with value `None` + are ignored. + """ + excluded_fields: Set[str] = set([ + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + # override the default output from pydantic by calling `to_dict()` of each item in collections (list) + _items = [] + if self.collections: + for _item_collections in self.collections: + if _item_collections: + _items.append(_item_collections.to_dict()) + _dict['collections'] = _items + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of ListSkillCollections200Response from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "collections": [ListSkillCollections200ResponseCollectionsInner.from_dict(_item) for _item in obj["collections"]] if obj.get("collections") is not None else None + }) + return _obj + + diff --git a/quantcdn/models/list_skill_collections200_response_collections_inner.py b/quantcdn/models/list_skill_collections200_response_collections_inner.py new file mode 100644 index 00000000..d44a2b99 --- /dev/null +++ b/quantcdn/models/list_skill_collections200_response_collections_inner.py @@ -0,0 +1,91 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, StrictInt, StrictStr +from typing import Any, ClassVar, Dict, List, Optional +from typing import Optional, Set +from typing_extensions import Self + +class ListSkillCollections200ResponseCollectionsInner(BaseModel): + """ + ListSkillCollections200ResponseCollectionsInner + """ # noqa: E501 + namespace: Optional[StrictStr] = None + count: Optional[StrictInt] = None + skills: Optional[List[StrictStr]] = None + __properties: ClassVar[List[str]] = ["namespace", "count", "skills"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of ListSkillCollections200ResponseCollectionsInner from a JSON string""" + return cls.from_dict(json.loads(json_str)) + + def to_dict(self) -> Dict[str, Any]: + """Return the dictionary representation of the model using alias. + + This has the following differences from calling pydantic's + `self.model_dump(by_alias=True)`: + + * `None` is only added to the output dict for nullable fields that + were set at model initialization. Other fields with value `None` + are ignored. + """ + excluded_fields: Set[str] = set([ + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of ListSkillCollections200ResponseCollectionsInner from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "namespace": obj.get("namespace"), + "count": obj.get("count"), + "skills": obj.get("skills") + }) + return _obj + + diff --git a/quantcdn/models/list_skills200_response.py b/quantcdn/models/list_skills200_response.py new file mode 100644 index 00000000..d2a31e20 --- /dev/null +++ b/quantcdn/models/list_skills200_response.py @@ -0,0 +1,97 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, StrictInt +from typing import Any, ClassVar, Dict, List, Optional +from quantcdn.models.list_skills200_response_skills_inner import ListSkills200ResponseSkillsInner +from typing import Optional, Set +from typing_extensions import Self + +class ListSkills200Response(BaseModel): + """ + ListSkills200Response + """ # noqa: E501 + skills: Optional[List[ListSkills200ResponseSkillsInner]] = None + count: Optional[StrictInt] = None + __properties: ClassVar[List[str]] = ["skills", "count"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of ListSkills200Response from a JSON string""" + return cls.from_dict(json.loads(json_str)) + + def to_dict(self) -> Dict[str, Any]: + """Return the dictionary representation of the model using alias. + + This has the following differences from calling pydantic's + `self.model_dump(by_alias=True)`: + + * `None` is only added to the output dict for nullable fields that + were set at model initialization. Other fields with value `None` + are ignored. + """ + excluded_fields: Set[str] = set([ + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + # override the default output from pydantic by calling `to_dict()` of each item in skills (list) + _items = [] + if self.skills: + for _item_skills in self.skills: + if _item_skills: + _items.append(_item_skills.to_dict()) + _dict['skills'] = _items + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of ListSkills200Response from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "skills": [ListSkills200ResponseSkillsInner.from_dict(_item) for _item in obj["skills"]] if obj.get("skills") is not None else None, + "count": obj.get("count") + }) + return _obj + + diff --git a/quantcdn/models/list_skills200_response_skills_inner.py b/quantcdn/models/list_skills200_response_skills_inner.py new file mode 100644 index 00000000..fd4b82bd --- /dev/null +++ b/quantcdn/models/list_skills200_response_skills_inner.py @@ -0,0 +1,104 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from datetime import datetime +from pydantic import BaseModel, ConfigDict, Field, StrictStr +from typing import Any, ClassVar, Dict, List, Optional +from typing import Optional, Set +from typing_extensions import Self + +class ListSkills200ResponseSkillsInner(BaseModel): + """ + ListSkills200ResponseSkillsInner + """ # noqa: E501 + skill_id: Optional[StrictStr] = Field(default=None, alias="skillId") + name: Optional[StrictStr] = None + description: Optional[StrictStr] = None + tags: Optional[List[StrictStr]] = None + source: Optional[Dict[str, Any]] = None + trigger_condition: Optional[StrictStr] = Field(default=None, alias="triggerCondition") + namespace: Optional[StrictStr] = None + installed_at: Optional[datetime] = Field(default=None, alias="installedAt") + updated_at: Optional[datetime] = Field(default=None, alias="updatedAt") + __properties: ClassVar[List[str]] = ["skillId", "name", "description", "tags", "source", "triggerCondition", "namespace", "installedAt", "updatedAt"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of ListSkills200ResponseSkillsInner from a JSON string""" + return cls.from_dict(json.loads(json_str)) + + def to_dict(self) -> Dict[str, Any]: + """Return the dictionary representation of the model using alias. + + This has the following differences from calling pydantic's + `self.model_dump(by_alias=True)`: + + * `None` is only added to the output dict for nullable fields that + were set at model initialization. Other fields with value `None` + are ignored. + """ + excluded_fields: Set[str] = set([ + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of ListSkills200ResponseSkillsInner from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "skillId": obj.get("skillId"), + "name": obj.get("name"), + "description": obj.get("description"), + "tags": obj.get("tags"), + "source": obj.get("source"), + "triggerCondition": obj.get("triggerCondition"), + "namespace": obj.get("namespace"), + "installedAt": obj.get("installedAt"), + "updatedAt": obj.get("updatedAt") + }) + return _obj + + diff --git a/quantcdn/models/list_slack_bots200_response.py b/quantcdn/models/list_slack_bots200_response.py new file mode 100644 index 00000000..e3deebfc --- /dev/null +++ b/quantcdn/models/list_slack_bots200_response.py @@ -0,0 +1,95 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict +from typing import Any, ClassVar, Dict, List, Optional +from quantcdn.models.list_slack_bots200_response_bots_inner import ListSlackBots200ResponseBotsInner +from typing import Optional, Set +from typing_extensions import Self + +class ListSlackBots200Response(BaseModel): + """ + ListSlackBots200Response + """ # noqa: E501 + bots: Optional[List[ListSlackBots200ResponseBotsInner]] = None + __properties: ClassVar[List[str]] = ["bots"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of ListSlackBots200Response from a JSON string""" + return cls.from_dict(json.loads(json_str)) + + def to_dict(self) -> Dict[str, Any]: + """Return the dictionary representation of the model using alias. + + This has the following differences from calling pydantic's + `self.model_dump(by_alias=True)`: + + * `None` is only added to the output dict for nullable fields that + were set at model initialization. Other fields with value `None` + are ignored. + """ + excluded_fields: Set[str] = set([ + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + # override the default output from pydantic by calling `to_dict()` of each item in bots (list) + _items = [] + if self.bots: + for _item_bots in self.bots: + if _item_bots: + _items.append(_item_bots.to_dict()) + _dict['bots'] = _items + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of ListSlackBots200Response from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "bots": [ListSlackBots200ResponseBotsInner.from_dict(_item) for _item in obj["bots"]] if obj.get("bots") is not None else None + }) + return _obj + + diff --git a/quantcdn/models/list_slack_bots200_response_bots_inner.py b/quantcdn/models/list_slack_bots200_response_bots_inner.py new file mode 100644 index 00000000..a9d2f40a --- /dev/null +++ b/quantcdn/models/list_slack_bots200_response_bots_inner.py @@ -0,0 +1,144 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from datetime import datetime +from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictFloat, StrictInt, StrictStr, field_validator +from typing import Any, ClassVar, Dict, List, Optional, Union +from typing import Optional, Set +from typing_extensions import Self + +class ListSlackBots200ResponseBotsInner(BaseModel): + """ + ListSlackBots200ResponseBotsInner + """ # noqa: E501 + bot_id: Optional[StrictStr] = Field(default=None, alias="botId") + name: Optional[StrictStr] = None + setup_type: Optional[StrictStr] = Field(default=None, alias="setupType") + status: Optional[StrictStr] = None + connected: Optional[StrictBool] = None + system_prompt: Optional[StrictStr] = Field(default=None, alias="systemPrompt") + model_id: Optional[StrictStr] = Field(default=None, alias="modelId") + temperature: Optional[Union[StrictFloat, StrictInt]] = None + max_tokens: Optional[StrictInt] = Field(default=None, alias="maxTokens") + allowed_tools: Optional[List[StrictStr]] = Field(default=None, alias="allowedTools") + assigned_skills: Optional[List[StrictStr]] = Field(default=None, alias="assignedSkills") + allowed_collections: Optional[List[StrictStr]] = Field(default=None, alias="allowedCollections") + allowed_sub_agents: Optional[List[StrictStr]] = Field(default=None, alias="allowedSubAgents") + guardrail_preset: Optional[StrictStr] = Field(default=None, alias="guardrailPreset") + filter_policies: Optional[List[StrictStr]] = Field(default=None, alias="filterPolicies") + long_context: Optional[StrictBool] = Field(default=None, alias="longContext") + session_ttl_days: Optional[StrictInt] = Field(default=None, alias="sessionTtlDays") + keywords_enabled: Optional[StrictBool] = Field(default=None, alias="keywordsEnabled") + created_at: Optional[datetime] = Field(default=None, alias="createdAt") + __properties: ClassVar[List[str]] = ["botId", "name", "setupType", "status", "connected", "systemPrompt", "modelId", "temperature", "maxTokens", "allowedTools", "assignedSkills", "allowedCollections", "allowedSubAgents", "guardrailPreset", "filterPolicies", "longContext", "sessionTtlDays", "keywordsEnabled", "createdAt"] + + @field_validator('setup_type') + def setup_type_validate_enum(cls, value): + """Validates the enum""" + if value is None: + return value + + if value not in set(['quant', 'byo']): + raise ValueError("must be one of enum values ('quant', 'byo')") + return value + + @field_validator('status') + def status_validate_enum(cls, value): + """Validates the enum""" + if value is None: + return value + + if value not in set(['active', 'inactive']): + raise ValueError("must be one of enum values ('active', 'inactive')") + return value + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of ListSlackBots200ResponseBotsInner from a JSON string""" + return cls.from_dict(json.loads(json_str)) + + def to_dict(self) -> Dict[str, Any]: + """Return the dictionary representation of the model using alias. + + This has the following differences from calling pydantic's + `self.model_dump(by_alias=True)`: + + * `None` is only added to the output dict for nullable fields that + were set at model initialization. Other fields with value `None` + are ignored. + """ + excluded_fields: Set[str] = set([ + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of ListSlackBots200ResponseBotsInner from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "botId": obj.get("botId"), + "name": obj.get("name"), + "setupType": obj.get("setupType"), + "status": obj.get("status"), + "connected": obj.get("connected"), + "systemPrompt": obj.get("systemPrompt"), + "modelId": obj.get("modelId"), + "temperature": obj.get("temperature"), + "maxTokens": obj.get("maxTokens"), + "allowedTools": obj.get("allowedTools"), + "assignedSkills": obj.get("assignedSkills"), + "allowedCollections": obj.get("allowedCollections"), + "allowedSubAgents": obj.get("allowedSubAgents"), + "guardrailPreset": obj.get("guardrailPreset"), + "filterPolicies": obj.get("filterPolicies"), + "longContext": obj.get("longContext"), + "sessionTtlDays": obj.get("sessionTtlDays"), + "keywordsEnabled": obj.get("keywordsEnabled"), + "createdAt": obj.get("createdAt") + }) + return _obj + + diff --git a/quantcdn/models/list_tasks200_response.py b/quantcdn/models/list_tasks200_response.py index adbd5bd5..53e6ef23 100644 --- a/quantcdn/models/list_tasks200_response.py +++ b/quantcdn/models/list_tasks200_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/list_tasks200_response_tasks_inner.py b/quantcdn/models/list_tasks200_response_tasks_inner.py index 1d15599c..769b1dcc 100644 --- a/quantcdn/models/list_tasks200_response_tasks_inner.py +++ b/quantcdn/models/list_tasks200_response_tasks_inner.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/list_vector_collections200_response.py b/quantcdn/models/list_vector_collections200_response.py index 85b0d23f..756c5b8b 100644 --- a/quantcdn/models/list_vector_collections200_response.py +++ b/quantcdn/models/list_vector_collections200_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/list_vector_collections200_response_collections_inner.py b/quantcdn/models/list_vector_collections200_response_collections_inner.py index f761ce2f..4d4104c6 100644 --- a/quantcdn/models/list_vector_collections200_response_collections_inner.py +++ b/quantcdn/models/list_vector_collections200_response_collections_inner.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/oai_chat_completions200_response.py b/quantcdn/models/oai_chat_completions200_response.py new file mode 100644 index 00000000..acfe2d6e --- /dev/null +++ b/quantcdn/models/oai_chat_completions200_response.py @@ -0,0 +1,109 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, StrictInt, StrictStr +from typing import Any, ClassVar, Dict, List, Optional +from quantcdn.models.oai_chat_completions200_response_choices_inner import OaiChatCompletions200ResponseChoicesInner +from quantcdn.models.oai_chat_completions200_response_usage import OaiChatCompletions200ResponseUsage +from typing import Optional, Set +from typing_extensions import Self + +class OaiChatCompletions200Response(BaseModel): + """ + OaiChatCompletions200Response + """ # noqa: E501 + id: Optional[StrictStr] = None + object: Optional[StrictStr] = None + created: Optional[StrictInt] = None + model: Optional[StrictStr] = None + choices: Optional[List[OaiChatCompletions200ResponseChoicesInner]] = None + usage: Optional[OaiChatCompletions200ResponseUsage] = None + __properties: ClassVar[List[str]] = ["id", "object", "created", "model", "choices", "usage"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of OaiChatCompletions200Response from a JSON string""" + return cls.from_dict(json.loads(json_str)) + + def to_dict(self) -> Dict[str, Any]: + """Return the dictionary representation of the model using alias. + + This has the following differences from calling pydantic's + `self.model_dump(by_alias=True)`: + + * `None` is only added to the output dict for nullable fields that + were set at model initialization. Other fields with value `None` + are ignored. + """ + excluded_fields: Set[str] = set([ + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + # override the default output from pydantic by calling `to_dict()` of each item in choices (list) + _items = [] + if self.choices: + for _item_choices in self.choices: + if _item_choices: + _items.append(_item_choices.to_dict()) + _dict['choices'] = _items + # override the default output from pydantic by calling `to_dict()` of usage + if self.usage: + _dict['usage'] = self.usage.to_dict() + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of OaiChatCompletions200Response from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "id": obj.get("id"), + "object": obj.get("object"), + "created": obj.get("created"), + "model": obj.get("model"), + "choices": [OaiChatCompletions200ResponseChoicesInner.from_dict(_item) for _item in obj["choices"]] if obj.get("choices") is not None else None, + "usage": OaiChatCompletions200ResponseUsage.from_dict(obj["usage"]) if obj.get("usage") is not None else None + }) + return _obj + + diff --git a/quantcdn/models/oai_chat_completions200_response_choices_inner.py b/quantcdn/models/oai_chat_completions200_response_choices_inner.py new file mode 100644 index 00000000..901dc4f3 --- /dev/null +++ b/quantcdn/models/oai_chat_completions200_response_choices_inner.py @@ -0,0 +1,105 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, StrictInt, StrictStr, field_validator +from typing import Any, ClassVar, Dict, List, Optional +from quantcdn.models.oai_chat_completions200_response_choices_inner_message import OaiChatCompletions200ResponseChoicesInnerMessage +from typing import Optional, Set +from typing_extensions import Self + +class OaiChatCompletions200ResponseChoicesInner(BaseModel): + """ + OaiChatCompletions200ResponseChoicesInner + """ # noqa: E501 + index: Optional[StrictInt] = None + message: Optional[OaiChatCompletions200ResponseChoicesInnerMessage] = None + finish_reason: Optional[StrictStr] = None + __properties: ClassVar[List[str]] = ["index", "message", "finish_reason"] + + @field_validator('finish_reason') + def finish_reason_validate_enum(cls, value): + """Validates the enum""" + if value is None: + return value + + if value not in set(['stop', 'tool_calls', 'length']): + raise ValueError("must be one of enum values ('stop', 'tool_calls', 'length')") + return value + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of OaiChatCompletions200ResponseChoicesInner from a JSON string""" + return cls.from_dict(json.loads(json_str)) + + def to_dict(self) -> Dict[str, Any]: + """Return the dictionary representation of the model using alias. + + This has the following differences from calling pydantic's + `self.model_dump(by_alias=True)`: + + * `None` is only added to the output dict for nullable fields that + were set at model initialization. Other fields with value `None` + are ignored. + """ + excluded_fields: Set[str] = set([ + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + # override the default output from pydantic by calling `to_dict()` of message + if self.message: + _dict['message'] = self.message.to_dict() + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of OaiChatCompletions200ResponseChoicesInner from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "index": obj.get("index"), + "message": OaiChatCompletions200ResponseChoicesInnerMessage.from_dict(obj["message"]) if obj.get("message") is not None else None, + "finish_reason": obj.get("finish_reason") + }) + return _obj + + diff --git a/quantcdn/models/oai_chat_completions200_response_choices_inner_message.py b/quantcdn/models/oai_chat_completions200_response_choices_inner_message.py new file mode 100644 index 00000000..ab83175b --- /dev/null +++ b/quantcdn/models/oai_chat_completions200_response_choices_inner_message.py @@ -0,0 +1,96 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, StrictStr +from typing import Any, ClassVar, Dict, List, Optional +from typing import Optional, Set +from typing_extensions import Self + +class OaiChatCompletions200ResponseChoicesInnerMessage(BaseModel): + """ + OaiChatCompletions200ResponseChoicesInnerMessage + """ # noqa: E501 + role: Optional[StrictStr] = None + content: Optional[StrictStr] = None + tool_calls: Optional[List[Dict[str, Any]]] = None + __properties: ClassVar[List[str]] = ["role", "content", "tool_calls"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of OaiChatCompletions200ResponseChoicesInnerMessage from a JSON string""" + return cls.from_dict(json.loads(json_str)) + + def to_dict(self) -> Dict[str, Any]: + """Return the dictionary representation of the model using alias. + + This has the following differences from calling pydantic's + `self.model_dump(by_alias=True)`: + + * `None` is only added to the output dict for nullable fields that + were set at model initialization. Other fields with value `None` + are ignored. + """ + excluded_fields: Set[str] = set([ + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + # set to None if content (nullable) is None + # and model_fields_set contains the field + if self.content is None and "content" in self.model_fields_set: + _dict['content'] = None + + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of OaiChatCompletions200ResponseChoicesInnerMessage from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "role": obj.get("role"), + "content": obj.get("content"), + "tool_calls": obj.get("tool_calls") + }) + return _obj + + diff --git a/quantcdn/models/oai_chat_completions200_response_usage.py b/quantcdn/models/oai_chat_completions200_response_usage.py new file mode 100644 index 00000000..7e9e8ade --- /dev/null +++ b/quantcdn/models/oai_chat_completions200_response_usage.py @@ -0,0 +1,91 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, StrictInt +from typing import Any, ClassVar, Dict, List, Optional +from typing import Optional, Set +from typing_extensions import Self + +class OaiChatCompletions200ResponseUsage(BaseModel): + """ + OaiChatCompletions200ResponseUsage + """ # noqa: E501 + prompt_tokens: Optional[StrictInt] = None + completion_tokens: Optional[StrictInt] = None + total_tokens: Optional[StrictInt] = None + __properties: ClassVar[List[str]] = ["prompt_tokens", "completion_tokens", "total_tokens"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of OaiChatCompletions200ResponseUsage from a JSON string""" + return cls.from_dict(json.loads(json_str)) + + def to_dict(self) -> Dict[str, Any]: + """Return the dictionary representation of the model using alias. + + This has the following differences from calling pydantic's + `self.model_dump(by_alias=True)`: + + * `None` is only added to the output dict for nullable fields that + were set at model initialization. Other fields with value `None` + are ignored. + """ + excluded_fields: Set[str] = set([ + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of OaiChatCompletions200ResponseUsage from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "prompt_tokens": obj.get("prompt_tokens"), + "completion_tokens": obj.get("completion_tokens"), + "total_tokens": obj.get("total_tokens") + }) + return _obj + + diff --git a/quantcdn/models/oai_chat_completions_request.py b/quantcdn/models/oai_chat_completions_request.py new file mode 100644 index 00000000..9361987e --- /dev/null +++ b/quantcdn/models/oai_chat_completions_request.py @@ -0,0 +1,116 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictFloat, StrictInt, StrictStr +from typing import Any, ClassVar, Dict, List, Optional, Union +from quantcdn.models.oai_chat_completions_request_messages_inner import OaiChatCompletionsRequestMessagesInner +from typing import Optional, Set +from typing_extensions import Self + +class OaiChatCompletionsRequest(BaseModel): + """ + OaiChatCompletionsRequest + """ # noqa: E501 + model: StrictStr = Field(description="A model id from GET /oai/v1/models") + messages: List[OaiChatCompletionsRequestMessagesInner] + stream: Optional[StrictBool] = Field(default=False, description="Stream the response as SSE chat.completion.chunk events") + max_tokens: Optional[StrictInt] = None + temperature: Optional[Union[StrictFloat, StrictInt]] = None + top_p: Optional[Union[StrictFloat, StrictInt]] = None + tools: Optional[List[Dict[str, Any]]] = Field(default=None, description="OpenAI function tool definitions") + tool_choice: Optional[Any] = Field(default=None, description="auto | none | required | {type:function, function:{name}}") + stream_options: Optional[Dict[str, Any]] = Field(default=None, description="{include_usage: true} to emit a final usage chunk when streaming") + __properties: ClassVar[List[str]] = ["model", "messages", "stream", "max_tokens", "temperature", "top_p", "tools", "tool_choice", "stream_options"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of OaiChatCompletionsRequest from a JSON string""" + return cls.from_dict(json.loads(json_str)) + + def to_dict(self) -> Dict[str, Any]: + """Return the dictionary representation of the model using alias. + + This has the following differences from calling pydantic's + `self.model_dump(by_alias=True)`: + + * `None` is only added to the output dict for nullable fields that + were set at model initialization. Other fields with value `None` + are ignored. + """ + excluded_fields: Set[str] = set([ + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + # override the default output from pydantic by calling `to_dict()` of each item in messages (list) + _items = [] + if self.messages: + for _item_messages in self.messages: + if _item_messages: + _items.append(_item_messages.to_dict()) + _dict['messages'] = _items + # set to None if tool_choice (nullable) is None + # and model_fields_set contains the field + if self.tool_choice is None and "tool_choice" in self.model_fields_set: + _dict['tool_choice'] = None + + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of OaiChatCompletionsRequest from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "model": obj.get("model"), + "messages": [OaiChatCompletionsRequestMessagesInner.from_dict(_item) for _item in obj["messages"]] if obj.get("messages") is not None else None, + "stream": obj.get("stream") if obj.get("stream") is not None else False, + "max_tokens": obj.get("max_tokens"), + "temperature": obj.get("temperature"), + "top_p": obj.get("top_p"), + "tools": obj.get("tools"), + "tool_choice": obj.get("tool_choice"), + "stream_options": obj.get("stream_options") + }) + return _obj + + diff --git a/quantcdn/models/oai_chat_completions_request_messages_inner.py b/quantcdn/models/oai_chat_completions_request_messages_inner.py new file mode 100644 index 00000000..c553bc64 --- /dev/null +++ b/quantcdn/models/oai_chat_completions_request_messages_inner.py @@ -0,0 +1,99 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, StrictStr, field_validator +from typing import Any, ClassVar, Dict, List, Optional +from typing import Optional, Set +from typing_extensions import Self + +class OaiChatCompletionsRequestMessagesInner(BaseModel): + """ + OaiChatCompletionsRequestMessagesInner + """ # noqa: E501 + role: Optional[StrictStr] = None + content: Optional[StrictStr] = None + __properties: ClassVar[List[str]] = ["role", "content"] + + @field_validator('role') + def role_validate_enum(cls, value): + """Validates the enum""" + if value is None: + return value + + if value not in set(['system', 'user', 'assistant', 'tool']): + raise ValueError("must be one of enum values ('system', 'user', 'assistant', 'tool')") + return value + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of OaiChatCompletionsRequestMessagesInner from a JSON string""" + return cls.from_dict(json.loads(json_str)) + + def to_dict(self) -> Dict[str, Any]: + """Return the dictionary representation of the model using alias. + + This has the following differences from calling pydantic's + `self.model_dump(by_alias=True)`: + + * `None` is only added to the output dict for nullable fields that + were set at model initialization. Other fields with value `None` + are ignored. + """ + excluded_fields: Set[str] = set([ + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of OaiChatCompletionsRequestMessagesInner from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "role": obj.get("role"), + "content": obj.get("content") + }) + return _obj + + diff --git a/quantcdn/models/oai_embeddings200_response.py b/quantcdn/models/oai_embeddings200_response.py new file mode 100644 index 00000000..d8deea67 --- /dev/null +++ b/quantcdn/models/oai_embeddings200_response.py @@ -0,0 +1,105 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, StrictStr +from typing import Any, ClassVar, Dict, List, Optional +from quantcdn.models.oai_embeddings200_response_data_inner import OaiEmbeddings200ResponseDataInner +from quantcdn.models.oai_embeddings200_response_usage import OaiEmbeddings200ResponseUsage +from typing import Optional, Set +from typing_extensions import Self + +class OaiEmbeddings200Response(BaseModel): + """ + OaiEmbeddings200Response + """ # noqa: E501 + object: Optional[StrictStr] = None + data: Optional[List[OaiEmbeddings200ResponseDataInner]] = None + model: Optional[StrictStr] = None + usage: Optional[OaiEmbeddings200ResponseUsage] = None + __properties: ClassVar[List[str]] = ["object", "data", "model", "usage"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of OaiEmbeddings200Response from a JSON string""" + return cls.from_dict(json.loads(json_str)) + + def to_dict(self) -> Dict[str, Any]: + """Return the dictionary representation of the model using alias. + + This has the following differences from calling pydantic's + `self.model_dump(by_alias=True)`: + + * `None` is only added to the output dict for nullable fields that + were set at model initialization. Other fields with value `None` + are ignored. + """ + excluded_fields: Set[str] = set([ + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + # override the default output from pydantic by calling `to_dict()` of each item in data (list) + _items = [] + if self.data: + for _item_data in self.data: + if _item_data: + _items.append(_item_data.to_dict()) + _dict['data'] = _items + # override the default output from pydantic by calling `to_dict()` of usage + if self.usage: + _dict['usage'] = self.usage.to_dict() + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of OaiEmbeddings200Response from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "object": obj.get("object"), + "data": [OaiEmbeddings200ResponseDataInner.from_dict(_item) for _item in obj["data"]] if obj.get("data") is not None else None, + "model": obj.get("model"), + "usage": OaiEmbeddings200ResponseUsage.from_dict(obj["usage"]) if obj.get("usage") is not None else None + }) + return _obj + + diff --git a/quantcdn/models/oai_embeddings200_response_data_inner.py b/quantcdn/models/oai_embeddings200_response_data_inner.py new file mode 100644 index 00000000..8273ae8e --- /dev/null +++ b/quantcdn/models/oai_embeddings200_response_data_inner.py @@ -0,0 +1,91 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, StrictFloat, StrictInt, StrictStr +from typing import Any, ClassVar, Dict, List, Optional, Union +from typing import Optional, Set +from typing_extensions import Self + +class OaiEmbeddings200ResponseDataInner(BaseModel): + """ + OaiEmbeddings200ResponseDataInner + """ # noqa: E501 + object: Optional[StrictStr] = None + index: Optional[StrictInt] = None + embedding: Optional[List[Union[StrictFloat, StrictInt]]] = None + __properties: ClassVar[List[str]] = ["object", "index", "embedding"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of OaiEmbeddings200ResponseDataInner from a JSON string""" + return cls.from_dict(json.loads(json_str)) + + def to_dict(self) -> Dict[str, Any]: + """Return the dictionary representation of the model using alias. + + This has the following differences from calling pydantic's + `self.model_dump(by_alias=True)`: + + * `None` is only added to the output dict for nullable fields that + were set at model initialization. Other fields with value `None` + are ignored. + """ + excluded_fields: Set[str] = set([ + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of OaiEmbeddings200ResponseDataInner from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "object": obj.get("object"), + "index": obj.get("index"), + "embedding": obj.get("embedding") + }) + return _obj + + diff --git a/quantcdn/models/oai_embeddings200_response_usage.py b/quantcdn/models/oai_embeddings200_response_usage.py new file mode 100644 index 00000000..1093b7ab --- /dev/null +++ b/quantcdn/models/oai_embeddings200_response_usage.py @@ -0,0 +1,89 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, StrictInt +from typing import Any, ClassVar, Dict, List, Optional +from typing import Optional, Set +from typing_extensions import Self + +class OaiEmbeddings200ResponseUsage(BaseModel): + """ + OaiEmbeddings200ResponseUsage + """ # noqa: E501 + prompt_tokens: Optional[StrictInt] = None + total_tokens: Optional[StrictInt] = None + __properties: ClassVar[List[str]] = ["prompt_tokens", "total_tokens"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of OaiEmbeddings200ResponseUsage from a JSON string""" + return cls.from_dict(json.loads(json_str)) + + def to_dict(self) -> Dict[str, Any]: + """Return the dictionary representation of the model using alias. + + This has the following differences from calling pydantic's + `self.model_dump(by_alias=True)`: + + * `None` is only added to the output dict for nullable fields that + were set at model initialization. Other fields with value `None` + are ignored. + """ + excluded_fields: Set[str] = set([ + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of OaiEmbeddings200ResponseUsage from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "prompt_tokens": obj.get("prompt_tokens"), + "total_tokens": obj.get("total_tokens") + }) + return _obj + + diff --git a/quantcdn/models/oai_embeddings_request.py b/quantcdn/models/oai_embeddings_request.py new file mode 100644 index 00000000..6337bde9 --- /dev/null +++ b/quantcdn/models/oai_embeddings_request.py @@ -0,0 +1,94 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, Field, StrictStr +from typing import Any, ClassVar, Dict, List, Optional +from typing import Optional, Set +from typing_extensions import Self + +class OaiEmbeddingsRequest(BaseModel): + """ + OaiEmbeddingsRequest + """ # noqa: E501 + model: StrictStr + input: Optional[Any] = Field(description="A string or array of strings to embed") + __properties: ClassVar[List[str]] = ["model", "input"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of OaiEmbeddingsRequest from a JSON string""" + return cls.from_dict(json.loads(json_str)) + + def to_dict(self) -> Dict[str, Any]: + """Return the dictionary representation of the model using alias. + + This has the following differences from calling pydantic's + `self.model_dump(by_alias=True)`: + + * `None` is only added to the output dict for nullable fields that + were set at model initialization. Other fields with value `None` + are ignored. + """ + excluded_fields: Set[str] = set([ + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + # set to None if input (nullable) is None + # and model_fields_set contains the field + if self.input is None and "input" in self.model_fields_set: + _dict['input'] = None + + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of OaiEmbeddingsRequest from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "model": obj.get("model"), + "input": obj.get("input") + }) + return _obj + + diff --git a/quantcdn/models/oai_get_model200_response.py b/quantcdn/models/oai_get_model200_response.py new file mode 100644 index 00000000..f0a56b26 --- /dev/null +++ b/quantcdn/models/oai_get_model200_response.py @@ -0,0 +1,93 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, StrictInt, StrictStr +from typing import Any, ClassVar, Dict, List, Optional +from typing import Optional, Set +from typing_extensions import Self + +class OaiGetModel200Response(BaseModel): + """ + OaiGetModel200Response + """ # noqa: E501 + id: Optional[StrictStr] = None + object: Optional[StrictStr] = None + created: Optional[StrictInt] = None + owned_by: Optional[StrictStr] = None + __properties: ClassVar[List[str]] = ["id", "object", "created", "owned_by"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of OaiGetModel200Response from a JSON string""" + return cls.from_dict(json.loads(json_str)) + + def to_dict(self) -> Dict[str, Any]: + """Return the dictionary representation of the model using alias. + + This has the following differences from calling pydantic's + `self.model_dump(by_alias=True)`: + + * `None` is only added to the output dict for nullable fields that + were set at model initialization. Other fields with value `None` + are ignored. + """ + excluded_fields: Set[str] = set([ + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of OaiGetModel200Response from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "id": obj.get("id"), + "object": obj.get("object"), + "created": obj.get("created"), + "owned_by": obj.get("owned_by") + }) + return _obj + + diff --git a/quantcdn/models/oai_list_models200_response.py b/quantcdn/models/oai_list_models200_response.py new file mode 100644 index 00000000..16bb4834 --- /dev/null +++ b/quantcdn/models/oai_list_models200_response.py @@ -0,0 +1,97 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, StrictStr +from typing import Any, ClassVar, Dict, List, Optional +from quantcdn.models.oai_list_models200_response_data_inner import OaiListModels200ResponseDataInner +from typing import Optional, Set +from typing_extensions import Self + +class OaiListModels200Response(BaseModel): + """ + OaiListModels200Response + """ # noqa: E501 + object: Optional[StrictStr] = None + data: Optional[List[OaiListModels200ResponseDataInner]] = None + __properties: ClassVar[List[str]] = ["object", "data"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of OaiListModels200Response from a JSON string""" + return cls.from_dict(json.loads(json_str)) + + def to_dict(self) -> Dict[str, Any]: + """Return the dictionary representation of the model using alias. + + This has the following differences from calling pydantic's + `self.model_dump(by_alias=True)`: + + * `None` is only added to the output dict for nullable fields that + were set at model initialization. Other fields with value `None` + are ignored. + """ + excluded_fields: Set[str] = set([ + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + # override the default output from pydantic by calling `to_dict()` of each item in data (list) + _items = [] + if self.data: + for _item_data in self.data: + if _item_data: + _items.append(_item_data.to_dict()) + _dict['data'] = _items + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of OaiListModels200Response from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "object": obj.get("object"), + "data": [OaiListModels200ResponseDataInner.from_dict(_item) for _item in obj["data"]] if obj.get("data") is not None else None + }) + return _obj + + diff --git a/quantcdn/models/oai_list_models200_response_data_inner.py b/quantcdn/models/oai_list_models200_response_data_inner.py new file mode 100644 index 00000000..47002442 --- /dev/null +++ b/quantcdn/models/oai_list_models200_response_data_inner.py @@ -0,0 +1,93 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, StrictInt, StrictStr +from typing import Any, ClassVar, Dict, List, Optional +from typing import Optional, Set +from typing_extensions import Self + +class OaiListModels200ResponseDataInner(BaseModel): + """ + OaiListModels200ResponseDataInner + """ # noqa: E501 + id: Optional[StrictStr] = None + object: Optional[StrictStr] = None + created: Optional[StrictInt] = None + owned_by: Optional[StrictStr] = None + __properties: ClassVar[List[str]] = ["id", "object", "created", "owned_by"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of OaiListModels200ResponseDataInner from a JSON string""" + return cls.from_dict(json.loads(json_str)) + + def to_dict(self) -> Dict[str, Any]: + """Return the dictionary representation of the model using alias. + + This has the following differences from calling pydantic's + `self.model_dump(by_alias=True)`: + + * `None` is only added to the output dict for nullable fields that + were set at model initialization. Other fields with value `None` + are ignored. + """ + excluded_fields: Set[str] = set([ + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of OaiListModels200ResponseDataInner from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "id": obj.get("id"), + "object": obj.get("object"), + "created": obj.get("created"), + "owned_by": obj.get("owned_by") + }) + return _obj + + diff --git a/quantcdn/models/organizations_list200_response_inner.py b/quantcdn/models/organizations_list200_response_inner.py index 6239bd9c..e053f46d 100644 --- a/quantcdn/models/organizations_list200_response_inner.py +++ b/quantcdn/models/organizations_list200_response_inner.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/patch_environment_compose202_response.py b/quantcdn/models/patch_environment_compose202_response.py index fc8a9a8b..60d38923 100644 --- a/quantcdn/models/patch_environment_compose202_response.py +++ b/quantcdn/models/patch_environment_compose202_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/patch_environment_compose202_response_spot_configuration.py b/quantcdn/models/patch_environment_compose202_response_spot_configuration.py index 794ef006..66dd73ee 100644 --- a/quantcdn/models/patch_environment_compose202_response_spot_configuration.py +++ b/quantcdn/models/patch_environment_compose202_response_spot_configuration.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/patch_environment_compose400_response.py b/quantcdn/models/patch_environment_compose400_response.py index 1ced7a4a..1c90ac55 100644 --- a/quantcdn/models/patch_environment_compose400_response.py +++ b/quantcdn/models/patch_environment_compose400_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/patch_environment_compose_request.py b/quantcdn/models/patch_environment_compose_request.py index 50d80a17..16c570d6 100644 --- a/quantcdn/models/patch_environment_compose_request.py +++ b/quantcdn/models/patch_environment_compose_request.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. @@ -33,11 +33,13 @@ class PatchEnvironmentComposeRequest(BaseModel): task_memory: Optional[StrictStr] = Field(default=None, alias="taskMemory") min_capacity: Optional[Annotated[int, Field(strict=True, ge=0)]] = Field(default=None, alias="minCapacity") max_capacity: Optional[Annotated[int, Field(strict=True, ge=1)]] = Field(default=None, alias="maxCapacity") + single_task_only: Optional[StrictBool] = Field(default=None, description="Forces single-task mode (max one running task). Omitted = auto-detect from stateful containers.", alias="singleTaskOnly") + startup_grace_period_seconds: Optional[Annotated[int, Field(le=3600, strict=True, ge=0)]] = Field(default=None, description="Seconds the load balancer waits after a task starts before an unhealthy health check can replace it. Default 120.", alias="startupGracePeriodSeconds") containers: Optional[List[Dict[str, Any]]] = None spot_configuration: Optional[PatchEnvironmentComposeRequestSpotConfiguration] = Field(default=None, alias="spotConfiguration") enable_cross_env_networking: Optional[StrictBool] = Field(default=None, alias="enableCrossEnvNetworking") enable_cross_app_networking: Optional[StrictBool] = Field(default=None, alias="enableCrossAppNetworking") - __properties: ClassVar[List[str]] = ["architecture", "taskCpu", "taskMemory", "minCapacity", "maxCapacity", "containers", "spotConfiguration", "enableCrossEnvNetworking", "enableCrossAppNetworking"] + __properties: ClassVar[List[str]] = ["architecture", "taskCpu", "taskMemory", "minCapacity", "maxCapacity", "singleTaskOnly", "startupGracePeriodSeconds", "containers", "spotConfiguration", "enableCrossEnvNetworking", "enableCrossAppNetworking"] model_config = ConfigDict( populate_by_name=True, @@ -106,6 +108,16 @@ def to_dict(self) -> Dict[str, Any]: if self.max_capacity is None and "max_capacity" in self.model_fields_set: _dict['maxCapacity'] = None + # set to None if single_task_only (nullable) is None + # and model_fields_set contains the field + if self.single_task_only is None and "single_task_only" in self.model_fields_set: + _dict['singleTaskOnly'] = None + + # set to None if startup_grace_period_seconds (nullable) is None + # and model_fields_set contains the field + if self.startup_grace_period_seconds is None and "startup_grace_period_seconds" in self.model_fields_set: + _dict['startupGracePeriodSeconds'] = None + # set to None if containers (nullable) is None # and model_fields_set contains the field if self.containers is None and "containers" in self.model_fields_set: @@ -143,6 +155,8 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: "taskMemory": obj.get("taskMemory"), "minCapacity": obj.get("minCapacity"), "maxCapacity": obj.get("maxCapacity"), + "singleTaskOnly": obj.get("singleTaskOnly"), + "startupGracePeriodSeconds": obj.get("startupGracePeriodSeconds"), "containers": obj.get("containers"), "spotConfiguration": PatchEnvironmentComposeRequestSpotConfiguration.from_dict(obj["spotConfiguration"]) if obj.get("spotConfiguration") is not None else None, "enableCrossEnvNetworking": obj.get("enableCrossEnvNetworking"), diff --git a/quantcdn/models/patch_environment_compose_request_spot_configuration.py b/quantcdn/models/patch_environment_compose_request_spot_configuration.py index 2e41e25e..b31a142e 100644 --- a/quantcdn/models/patch_environment_compose_request_spot_configuration.py +++ b/quantcdn/models/patch_environment_compose_request_spot_configuration.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/purge_create_request.py b/quantcdn/models/purge_create_request.py index 17dea8d1..2134c4fb 100644 --- a/quantcdn/models/purge_create_request.py +++ b/quantcdn/models/purge_create_request.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/query_vector_collection200_response.py b/quantcdn/models/query_vector_collection200_response.py index 275a9bba..c4c700dc 100644 --- a/quantcdn/models/query_vector_collection200_response.py +++ b/quantcdn/models/query_vector_collection200_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/query_vector_collection200_response_pagination.py b/quantcdn/models/query_vector_collection200_response_pagination.py index 4b3ff69b..f1882f85 100644 --- a/quantcdn/models/query_vector_collection200_response_pagination.py +++ b/quantcdn/models/query_vector_collection200_response_pagination.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/query_vector_collection200_response_results_inner.py b/quantcdn/models/query_vector_collection200_response_results_inner.py index 54fed025..13e6bad2 100644 --- a/quantcdn/models/query_vector_collection200_response_results_inner.py +++ b/quantcdn/models/query_vector_collection200_response_results_inner.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/query_vector_collection_request.py b/quantcdn/models/query_vector_collection_request.py index 370c600a..d7708385 100644 --- a/quantcdn/models/query_vector_collection_request.py +++ b/quantcdn/models/query_vector_collection_request.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/query_vector_collection_request_filter.py b/quantcdn/models/query_vector_collection_request_filter.py index cde3431b..6932a375 100644 --- a/quantcdn/models/query_vector_collection_request_filter.py +++ b/quantcdn/models/query_vector_collection_request_filter.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/restore_database202_response.py b/quantcdn/models/restore_database202_response.py new file mode 100644 index 00000000..5f9aef19 --- /dev/null +++ b/quantcdn/models/restore_database202_response.py @@ -0,0 +1,91 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, Field, StrictStr +from typing import Any, ClassVar, Dict, List, Optional +from typing import Optional, Set +from typing_extensions import Self + +class RestoreDatabase202Response(BaseModel): + """ + RestoreDatabase202Response + """ # noqa: E501 + restore_id: Optional[StrictStr] = Field(default=None, alias="restoreId") + status: Optional[StrictStr] = None + message: Optional[StrictStr] = None + __properties: ClassVar[List[str]] = ["restoreId", "status", "message"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of RestoreDatabase202Response from a JSON string""" + return cls.from_dict(json.loads(json_str)) + + def to_dict(self) -> Dict[str, Any]: + """Return the dictionary representation of the model using alias. + + This has the following differences from calling pydantic's + `self.model_dump(by_alias=True)`: + + * `None` is only added to the output dict for nullable fields that + were set at model initialization. Other fields with value `None` + are ignored. + """ + excluded_fields: Set[str] = set([ + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of RestoreDatabase202Response from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "restoreId": obj.get("restoreId"), + "status": obj.get("status"), + "message": obj.get("message") + }) + return _obj + + diff --git a/quantcdn/models/restore_database_request.py b/quantcdn/models/restore_database_request.py new file mode 100644 index 00000000..f2060ee8 --- /dev/null +++ b/quantcdn/models/restore_database_request.py @@ -0,0 +1,89 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr +from typing import Any, ClassVar, Dict, List +from typing import Optional, Set +from typing_extensions import Self + +class RestoreDatabaseRequest(BaseModel): + """ + RestoreDatabaseRequest + """ # noqa: E501 + backup_id: StrictStr = Field(description="The backup ID to restore (must match path param)", alias="backupId") + acknowledge_dataloss: StrictBool = Field(description="Must be true to confirm existing data will be overwritten", alias="acknowledgeDataloss") + __properties: ClassVar[List[str]] = ["backupId", "acknowledgeDataloss"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of RestoreDatabaseRequest from a JSON string""" + return cls.from_dict(json.loads(json_str)) + + def to_dict(self) -> Dict[str, Any]: + """Return the dictionary representation of the model using alias. + + This has the following differences from calling pydantic's + `self.model_dump(by_alias=True)`: + + * `None` is only added to the output dict for nullable fields that + were set at model initialization. Other fields with value `None` + are ignored. + """ + excluded_fields: Set[str] = set([ + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of RestoreDatabaseRequest from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "backupId": obj.get("backupId"), + "acknowledgeDataloss": obj.get("acknowledgeDataloss") + }) + return _obj + + diff --git a/quantcdn/models/application_environments_inner.py b/quantcdn/models/restore_filesystem202_response.py similarity index 68% rename from quantcdn/models/application_environments_inner.py rename to quantcdn/models/restore_filesystem202_response.py index 62187a30..c8f4faf2 100644 --- a/quantcdn/models/application_environments_inner.py +++ b/quantcdn/models/restore_filesystem202_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. @@ -17,20 +17,19 @@ import re # noqa: F401 import json -from pydantic import BaseModel, ConfigDict, Field, StrictInt, StrictStr +from pydantic import BaseModel, ConfigDict, Field, StrictStr from typing import Any, ClassVar, Dict, List, Optional from typing import Optional, Set from typing_extensions import Self -class ApplicationEnvironmentsInner(BaseModel): +class RestoreFilesystem202Response(BaseModel): """ - ApplicationEnvironmentsInner + RestoreFilesystem202Response """ # noqa: E501 - env_name: Optional[StrictStr] = Field(default=None, description="Environment name", alias="envName") - status: Optional[StrictStr] = Field(default=None, description="Environment status") - running_count: Optional[StrictInt] = Field(default=None, description="Running task count", alias="runningCount") - desired_count: Optional[StrictInt] = Field(default=None, description="Desired task count", alias="desiredCount") - __properties: ClassVar[List[str]] = ["envName", "status", "runningCount", "desiredCount"] + restore_id: Optional[StrictStr] = Field(default=None, alias="restoreId") + status: Optional[StrictStr] = None + message: Optional[StrictStr] = None + __properties: ClassVar[List[str]] = ["restoreId", "status", "message"] model_config = ConfigDict( populate_by_name=True, @@ -50,7 +49,7 @@ def to_json(self) -> str: @classmethod def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of ApplicationEnvironmentsInner from a JSON string""" + """Create an instance of RestoreFilesystem202Response from a JSON string""" return cls.from_dict(json.loads(json_str)) def to_dict(self) -> Dict[str, Any]: @@ -75,7 +74,7 @@ def to_dict(self) -> Dict[str, Any]: @classmethod def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of ApplicationEnvironmentsInner from a dict""" + """Create an instance of RestoreFilesystem202Response from a dict""" if obj is None: return None @@ -83,10 +82,9 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: return cls.model_validate(obj) _obj = cls.model_validate({ - "envName": obj.get("envName"), + "restoreId": obj.get("restoreId"), "status": obj.get("status"), - "runningCount": obj.get("runningCount"), - "desiredCount": obj.get("desiredCount") + "message": obj.get("message") }) return _obj diff --git a/quantcdn/models/restore_filesystem_request.py b/quantcdn/models/restore_filesystem_request.py new file mode 100644 index 00000000..01206aef --- /dev/null +++ b/quantcdn/models/restore_filesystem_request.py @@ -0,0 +1,89 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr +from typing import Any, ClassVar, Dict, List +from typing import Optional, Set +from typing_extensions import Self + +class RestoreFilesystemRequest(BaseModel): + """ + RestoreFilesystemRequest + """ # noqa: E501 + backup_id: StrictStr = Field(description="The backup ID to restore (must match path param)", alias="backupId") + acknowledge_dataloss: StrictBool = Field(description="Must be true. tar extraction overwrites same-named files in the target EFS in place; pre-existing files not in the archive are preserved.", alias="acknowledgeDataloss") + __properties: ClassVar[List[str]] = ["backupId", "acknowledgeDataloss"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of RestoreFilesystemRequest from a JSON string""" + return cls.from_dict(json.loads(json_str)) + + def to_dict(self) -> Dict[str, Any]: + """Return the dictionary representation of the model using alias. + + This has the following differences from calling pydantic's + `self.model_dump(by_alias=True)`: + + * `None` is only added to the output dict for nullable fields that + were set at model initialization. Other fields with value `None` + are ignored. + """ + excluded_fields: Set[str] = set([ + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of RestoreFilesystemRequest from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "backupId": obj.get("backupId"), + "acknowledgeDataloss": obj.get("acknowledgeDataloss") + }) + return _obj + + diff --git a/quantcdn/models/scaling_policy_list_response.py b/quantcdn/models/scaling_policy_list_response.py new file mode 100644 index 00000000..30c852dc --- /dev/null +++ b/quantcdn/models/scaling_policy_list_response.py @@ -0,0 +1,95 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict +from typing import Any, ClassVar, Dict, List, Optional +from quantcdn.models.get_scaling_policy_response import GetScalingPolicyResponse +from typing import Optional, Set +from typing_extensions import Self + +class ScalingPolicyListResponse(BaseModel): + """ + ScalingPolicyListResponse + """ # noqa: E501 + policies: Optional[List[GetScalingPolicyResponse]] = None + __properties: ClassVar[List[str]] = ["policies"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of ScalingPolicyListResponse from a JSON string""" + return cls.from_dict(json.loads(json_str)) + + def to_dict(self) -> Dict[str, Any]: + """Return the dictionary representation of the model using alias. + + This has the following differences from calling pydantic's + `self.model_dump(by_alias=True)`: + + * `None` is only added to the output dict for nullable fields that + were set at model initialization. Other fields with value `None` + are ignored. + """ + excluded_fields: Set[str] = set([ + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + # override the default output from pydantic by calling `to_dict()` of each item in policies (list) + _items = [] + if self.policies: + for _item_policies in self.policies: + if _item_policies: + _items.append(_item_policies.to_dict()) + _dict['policies'] = _items + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of ScalingPolicyListResponse from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "policies": [GetScalingPolicyResponse.from_dict(_item) for _item in obj["policies"]] if obj.get("policies") is not None else None + }) + return _obj + + diff --git a/quantcdn/models/search_slack_workspace_channels200_response.py b/quantcdn/models/search_slack_workspace_channels200_response.py new file mode 100644 index 00000000..bbec6c94 --- /dev/null +++ b/quantcdn/models/search_slack_workspace_channels200_response.py @@ -0,0 +1,95 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict +from typing import Any, ClassVar, Dict, List, Optional +from quantcdn.models.search_slack_workspace_channels200_response_results_inner import SearchSlackWorkspaceChannels200ResponseResultsInner +from typing import Optional, Set +from typing_extensions import Self + +class SearchSlackWorkspaceChannels200Response(BaseModel): + """ + SearchSlackWorkspaceChannels200Response + """ # noqa: E501 + results: Optional[List[SearchSlackWorkspaceChannels200ResponseResultsInner]] = None + __properties: ClassVar[List[str]] = ["results"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of SearchSlackWorkspaceChannels200Response from a JSON string""" + return cls.from_dict(json.loads(json_str)) + + def to_dict(self) -> Dict[str, Any]: + """Return the dictionary representation of the model using alias. + + This has the following differences from calling pydantic's + `self.model_dump(by_alias=True)`: + + * `None` is only added to the output dict for nullable fields that + were set at model initialization. Other fields with value `None` + are ignored. + """ + excluded_fields: Set[str] = set([ + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + # override the default output from pydantic by calling `to_dict()` of each item in results (list) + _items = [] + if self.results: + for _item_results in self.results: + if _item_results: + _items.append(_item_results.to_dict()) + _dict['results'] = _items + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of SearchSlackWorkspaceChannels200Response from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "results": [SearchSlackWorkspaceChannels200ResponseResultsInner.from_dict(_item) for _item in obj["results"]] if obj.get("results") is not None else None + }) + return _obj + + diff --git a/quantcdn/models/search_slack_workspace_channels200_response_results_inner.py b/quantcdn/models/search_slack_workspace_channels200_response_results_inner.py new file mode 100644 index 00000000..149acc8f --- /dev/null +++ b/quantcdn/models/search_slack_workspace_channels200_response_results_inner.py @@ -0,0 +1,89 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, StrictStr +from typing import Any, ClassVar, Dict, List, Optional +from typing import Optional, Set +from typing_extensions import Self + +class SearchSlackWorkspaceChannels200ResponseResultsInner(BaseModel): + """ + SearchSlackWorkspaceChannels200ResponseResultsInner + """ # noqa: E501 + id: Optional[StrictStr] = None + name: Optional[StrictStr] = None + __properties: ClassVar[List[str]] = ["id", "name"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of SearchSlackWorkspaceChannels200ResponseResultsInner from a JSON string""" + return cls.from_dict(json.loads(json_str)) + + def to_dict(self) -> Dict[str, Any]: + """Return the dictionary representation of the model using alias. + + This has the following differences from calling pydantic's + `self.model_dump(by_alias=True)`: + + * `None` is only added to the output dict for nullable fields that + were set at model initialization. Other fields with value `None` + are ignored. + """ + excluded_fields: Set[str] = set([ + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of SearchSlackWorkspaceChannels200ResponseResultsInner from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "id": obj.get("id"), + "name": obj.get("name") + }) + return _obj + + diff --git a/quantcdn/models/search_slack_workspace_users200_response.py b/quantcdn/models/search_slack_workspace_users200_response.py new file mode 100644 index 00000000..6e5b2d92 --- /dev/null +++ b/quantcdn/models/search_slack_workspace_users200_response.py @@ -0,0 +1,95 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict +from typing import Any, ClassVar, Dict, List, Optional +from quantcdn.models.search_slack_workspace_users200_response_results_inner import SearchSlackWorkspaceUsers200ResponseResultsInner +from typing import Optional, Set +from typing_extensions import Self + +class SearchSlackWorkspaceUsers200Response(BaseModel): + """ + SearchSlackWorkspaceUsers200Response + """ # noqa: E501 + results: Optional[List[SearchSlackWorkspaceUsers200ResponseResultsInner]] = None + __properties: ClassVar[List[str]] = ["results"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of SearchSlackWorkspaceUsers200Response from a JSON string""" + return cls.from_dict(json.loads(json_str)) + + def to_dict(self) -> Dict[str, Any]: + """Return the dictionary representation of the model using alias. + + This has the following differences from calling pydantic's + `self.model_dump(by_alias=True)`: + + * `None` is only added to the output dict for nullable fields that + were set at model initialization. Other fields with value `None` + are ignored. + """ + excluded_fields: Set[str] = set([ + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + # override the default output from pydantic by calling `to_dict()` of each item in results (list) + _items = [] + if self.results: + for _item_results in self.results: + if _item_results: + _items.append(_item_results.to_dict()) + _dict['results'] = _items + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of SearchSlackWorkspaceUsers200Response from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "results": [SearchSlackWorkspaceUsers200ResponseResultsInner.from_dict(_item) for _item in obj["results"]] if obj.get("results") is not None else None + }) + return _obj + + diff --git a/quantcdn/models/search_slack_workspace_users200_response_results_inner.py b/quantcdn/models/search_slack_workspace_users200_response_results_inner.py new file mode 100644 index 00000000..5dab18f5 --- /dev/null +++ b/quantcdn/models/search_slack_workspace_users200_response_results_inner.py @@ -0,0 +1,91 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, StrictStr +from typing import Any, ClassVar, Dict, List, Optional +from typing import Optional, Set +from typing_extensions import Self + +class SearchSlackWorkspaceUsers200ResponseResultsInner(BaseModel): + """ + SearchSlackWorkspaceUsers200ResponseResultsInner + """ # noqa: E501 + id: Optional[StrictStr] = None + name: Optional[StrictStr] = None + real_name: Optional[StrictStr] = None + __properties: ClassVar[List[str]] = ["id", "name", "real_name"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of SearchSlackWorkspaceUsers200ResponseResultsInner from a JSON string""" + return cls.from_dict(json.loads(json_str)) + + def to_dict(self) -> Dict[str, Any]: + """Return the dictionary representation of the model using alias. + + This has the following differences from calling pydantic's + `self.model_dump(by_alias=True)`: + + * `None` is only added to the output dict for nullable fields that + were set at model initialization. Other fields with value `None` + are ignored. + """ + excluded_fields: Set[str] = set([ + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of SearchSlackWorkspaceUsers200ResponseResultsInner from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "id": obj.get("id"), + "name": obj.get("name"), + "real_name": obj.get("real_name") + }) + return _obj + + diff --git a/quantcdn/models/scaling_policy.py b/quantcdn/models/set_scaling_policy_request.py similarity index 77% rename from quantcdn/models/scaling_policy.py rename to quantcdn/models/set_scaling_policy_request.py index 9cedec3f..c91ca8c3 100644 --- a/quantcdn/models/scaling_policy.py +++ b/quantcdn/models/set_scaling_policy_request.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. @@ -22,22 +22,19 @@ from typing import Optional, Set from typing_extensions import Self -class ScalingPolicy(BaseModel): +class SetScalingPolicyRequest(BaseModel): """ - ScalingPolicy + SetScalingPolicyRequest """ # noqa: E501 - metric: Optional[StrictStr] = None - target_value: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, alias="targetValue") - scale_in_cooldown_seconds: Optional[StrictInt] = Field(default=None, alias="scaleInCooldownSeconds") - scale_out_cooldown_seconds: Optional[StrictInt] = Field(default=None, alias="scaleOutCooldownSeconds") + metric: StrictStr = Field(description="Metric to track for scaling.") + target_value: Union[StrictFloat, StrictInt] = Field(description="Target value. Percentage for CPU/Memory; req/sec per task for RPS.", alias="targetValue") + scale_in_cooldown_seconds: Optional[StrictInt] = Field(default=300, description="Cooldown (seconds) before another scale-in can start.", alias="scaleInCooldownSeconds") + scale_out_cooldown_seconds: Optional[StrictInt] = Field(default=60, description="Cooldown (seconds) before another scale-out can start.", alias="scaleOutCooldownSeconds") __properties: ClassVar[List[str]] = ["metric", "targetValue", "scaleInCooldownSeconds", "scaleOutCooldownSeconds"] @field_validator('metric') def metric_validate_enum(cls, value): """Validates the enum""" - if value is None: - return value - if value not in set(['CPUUtilization', 'MemoryUtilization', 'RPS']): raise ValueError("must be one of enum values ('CPUUtilization', 'MemoryUtilization', 'RPS')") return value @@ -60,7 +57,7 @@ def to_json(self) -> str: @classmethod def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of ScalingPolicy from a JSON string""" + """Create an instance of SetScalingPolicyRequest from a JSON string""" return cls.from_dict(json.loads(json_str)) def to_dict(self) -> Dict[str, Any]: @@ -85,7 +82,7 @@ def to_dict(self) -> Dict[str, Any]: @classmethod def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of ScalingPolicy from a dict""" + """Create an instance of SetScalingPolicyRequest from a dict""" if obj is None: return None @@ -95,8 +92,8 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: _obj = cls.model_validate({ "metric": obj.get("metric"), "targetValue": obj.get("targetValue"), - "scaleInCooldownSeconds": obj.get("scaleInCooldownSeconds"), - "scaleOutCooldownSeconds": obj.get("scaleOutCooldownSeconds") + "scaleInCooldownSeconds": obj.get("scaleInCooldownSeconds") if obj.get("scaleInCooldownSeconds") is not None else 300, + "scaleOutCooldownSeconds": obj.get("scaleOutCooldownSeconds") if obj.get("scaleOutCooldownSeconds") is not None else 60 }) return _obj diff --git a/quantcdn/models/spot_configuration.py b/quantcdn/models/spot_configuration.py index 79a04eaf..e613b828 100644 --- a/quantcdn/models/spot_configuration.py +++ b/quantcdn/models/spot_configuration.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/submit_tool_callback200_response.py b/quantcdn/models/submit_tool_callback200_response.py index 07a89697..be262d9e 100644 --- a/quantcdn/models/submit_tool_callback200_response.py +++ b/quantcdn/models/submit_tool_callback200_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/submit_tool_callback_request.py b/quantcdn/models/submit_tool_callback_request.py index 4f04beb9..ca5d6530 100644 --- a/quantcdn/models/submit_tool_callback_request.py +++ b/quantcdn/models/submit_tool_callback_request.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/submit_tool_callback_request_tool_results_inner.py b/quantcdn/models/submit_tool_callback_request_tool_results_inner.py index ac5ccaf2..ec92e8e7 100644 --- a/quantcdn/models/submit_tool_callback_request_tool_results_inner.py +++ b/quantcdn/models/submit_tool_callback_request_tool_results_inner.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/sync_operation.py b/quantcdn/models/sync_operation.py index 95282ffa..ceb9f7ed 100644 --- a/quantcdn/models/sync_operation.py +++ b/quantcdn/models/sync_operation.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/sync_skill_collection200_response.py b/quantcdn/models/sync_skill_collection200_response.py new file mode 100644 index 00000000..b6b0e45c --- /dev/null +++ b/quantcdn/models/sync_skill_collection200_response.py @@ -0,0 +1,97 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, Field, StrictInt, StrictStr +from typing import Any, ClassVar, Dict, List, Optional +from typing import Optional, Set +from typing_extensions import Self + +class SyncSkillCollection200Response(BaseModel): + """ + SyncSkillCollection200Response + """ # noqa: E501 + namespace: Optional[StrictStr] = None + synced: Optional[StrictInt] = None + created: Optional[StrictInt] = None + failed: Optional[StrictInt] = None + removed_from_source: Optional[List[StrictStr]] = Field(default=None, alias="removedFromSource") + skills: Optional[List[Dict[str, Any]]] = None + __properties: ClassVar[List[str]] = ["namespace", "synced", "created", "failed", "removedFromSource", "skills"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of SyncSkillCollection200Response from a JSON string""" + return cls.from_dict(json.loads(json_str)) + + def to_dict(self) -> Dict[str, Any]: + """Return the dictionary representation of the model using alias. + + This has the following differences from calling pydantic's + `self.model_dump(by_alias=True)`: + + * `None` is only added to the output dict for nullable fields that + were set at model initialization. Other fields with value `None` + are ignored. + """ + excluded_fields: Set[str] = set([ + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of SyncSkillCollection200Response from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "namespace": obj.get("namespace"), + "synced": obj.get("synced"), + "created": obj.get("created"), + "failed": obj.get("failed"), + "removedFromSource": obj.get("removedFromSource"), + "skills": obj.get("skills") + }) + return _obj + + diff --git a/quantcdn/models/sync_to_environment_request.py b/quantcdn/models/sync_to_environment_request.py index 053b5390..742eb79a 100644 --- a/quantcdn/models/sync_to_environment_request.py +++ b/quantcdn/models/sync_to_environment_request.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/tokens_create201_response.py b/quantcdn/models/tokens_create201_response.py new file mode 100644 index 00000000..73b6c9bb --- /dev/null +++ b/quantcdn/models/tokens_create201_response.py @@ -0,0 +1,122 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from datetime import datetime +from pydantic import BaseModel, ConfigDict, Field, StrictInt, StrictStr +from typing import Any, ClassVar, Dict, List, Optional +from typing import Optional, Set +from typing_extensions import Self + +class TokensCreate201Response(BaseModel): + """ + TokensCreate201Response + """ # noqa: E501 + token: Optional[StrictStr] = Field(default=None, description="The plain text token (shown once)") + id: Optional[StrictInt] = Field(default=None, description="Token ID") + name: Optional[StrictStr] = None + scopes: Optional[List[StrictStr]] = None + projects: Optional[List[StrictInt]] = None + preset: Optional[StrictStr] = None + expires_at: Optional[datetime] = None + created_at: Optional[datetime] = None + __properties: ClassVar[List[str]] = ["token", "id", "name", "scopes", "projects", "preset", "expires_at", "created_at"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of TokensCreate201Response from a JSON string""" + return cls.from_dict(json.loads(json_str)) + + def to_dict(self) -> Dict[str, Any]: + """Return the dictionary representation of the model using alias. + + This has the following differences from calling pydantic's + `self.model_dump(by_alias=True)`: + + * `None` is only added to the output dict for nullable fields that + were set at model initialization. Other fields with value `None` + are ignored. + """ + excluded_fields: Set[str] = set([ + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + # set to None if scopes (nullable) is None + # and model_fields_set contains the field + if self.scopes is None and "scopes" in self.model_fields_set: + _dict['scopes'] = None + + # set to None if projects (nullable) is None + # and model_fields_set contains the field + if self.projects is None and "projects" in self.model_fields_set: + _dict['projects'] = None + + # set to None if preset (nullable) is None + # and model_fields_set contains the field + if self.preset is None and "preset" in self.model_fields_set: + _dict['preset'] = None + + # set to None if expires_at (nullable) is None + # and model_fields_set contains the field + if self.expires_at is None and "expires_at" in self.model_fields_set: + _dict['expires_at'] = None + + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of TokensCreate201Response from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "token": obj.get("token"), + "id": obj.get("id"), + "name": obj.get("name"), + "scopes": obj.get("scopes"), + "projects": obj.get("projects"), + "preset": obj.get("preset"), + "expires_at": obj.get("expires_at"), + "created_at": obj.get("created_at") + }) + return _obj + + diff --git a/quantcdn/models/tokens_create_request.py b/quantcdn/models/tokens_create_request.py new file mode 100644 index 00000000..b7077aa0 --- /dev/null +++ b/quantcdn/models/tokens_create_request.py @@ -0,0 +1,125 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, Field, StrictInt, StrictStr, field_validator +from typing import Any, ClassVar, Dict, List, Optional +from typing import Optional, Set +from typing_extensions import Self + +class TokensCreateRequest(BaseModel): + """ + TokensCreateRequest + """ # noqa: E501 + name: StrictStr = Field(description="Name for the token") + preset: Optional[StrictStr] = Field(default=None, description="Preset scope bundle") + scopes: Optional[List[StrictStr]] = Field(default=None, description="Individual scopes (mutually exclusive with preset)") + projects: Optional[List[StrictInt]] = Field(default=None, description="Project IDs to restrict this token to") + expires_in: Optional[StrictStr] = Field(default=None, description="Token expiration period") + __properties: ClassVar[List[str]] = ["name", "preset", "scopes", "projects", "expires_in"] + + @field_validator('expires_in') + def expires_in_validate_enum(cls, value): + """Validates the enum""" + if value is None: + return value + + if value not in set(['30d', '90d', '365d', 'never']): + raise ValueError("must be one of enum values ('30d', '90d', '365d', 'never')") + return value + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of TokensCreateRequest from a JSON string""" + return cls.from_dict(json.loads(json_str)) + + def to_dict(self) -> Dict[str, Any]: + """Return the dictionary representation of the model using alias. + + This has the following differences from calling pydantic's + `self.model_dump(by_alias=True)`: + + * `None` is only added to the output dict for nullable fields that + were set at model initialization. Other fields with value `None` + are ignored. + """ + excluded_fields: Set[str] = set([ + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + # set to None if preset (nullable) is None + # and model_fields_set contains the field + if self.preset is None and "preset" in self.model_fields_set: + _dict['preset'] = None + + # set to None if scopes (nullable) is None + # and model_fields_set contains the field + if self.scopes is None and "scopes" in self.model_fields_set: + _dict['scopes'] = None + + # set to None if projects (nullable) is None + # and model_fields_set contains the field + if self.projects is None and "projects" in self.model_fields_set: + _dict['projects'] = None + + # set to None if expires_in (nullable) is None + # and model_fields_set contains the field + if self.expires_in is None and "expires_in" in self.model_fields_set: + _dict['expires_in'] = None + + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of TokensCreateRequest from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "name": obj.get("name"), + "preset": obj.get("preset"), + "scopes": obj.get("scopes"), + "projects": obj.get("projects"), + "expires_in": obj.get("expires_in") + }) + return _obj + + diff --git a/quantcdn/models/tokens_delete200_response.py b/quantcdn/models/tokens_delete200_response.py new file mode 100644 index 00000000..2f07d2cb --- /dev/null +++ b/quantcdn/models/tokens_delete200_response.py @@ -0,0 +1,87 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, StrictStr +from typing import Any, ClassVar, Dict, List, Optional +from typing import Optional, Set +from typing_extensions import Self + +class TokensDelete200Response(BaseModel): + """ + TokensDelete200Response + """ # noqa: E501 + message: Optional[StrictStr] = None + __properties: ClassVar[List[str]] = ["message"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of TokensDelete200Response from a JSON string""" + return cls.from_dict(json.loads(json_str)) + + def to_dict(self) -> Dict[str, Any]: + """Return the dictionary representation of the model using alias. + + This has the following differences from calling pydantic's + `self.model_dump(by_alias=True)`: + + * `None` is only added to the output dict for nullable fields that + were set at model initialization. Other fields with value `None` + are ignored. + """ + excluded_fields: Set[str] = set([ + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of TokensDelete200Response from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "message": obj.get("message") + }) + return _obj + + diff --git a/quantcdn/models/tokens_list200_response_inner.py b/quantcdn/models/tokens_list200_response_inner.py new file mode 100644 index 00000000..b9f541bc --- /dev/null +++ b/quantcdn/models/tokens_list200_response_inner.py @@ -0,0 +1,99 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from datetime import datetime +from pydantic import BaseModel, ConfigDict, StrictInt, StrictStr +from typing import Any, ClassVar, Dict, List, Optional +from typing import Optional, Set +from typing_extensions import Self + +class TokensList200ResponseInner(BaseModel): + """ + TokensList200ResponseInner + """ # noqa: E501 + id: Optional[StrictInt] = None + name: Optional[StrictStr] = None + last_used: Optional[datetime] = None + created_at: Optional[datetime] = None + __properties: ClassVar[List[str]] = ["id", "name", "last_used", "created_at"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of TokensList200ResponseInner from a JSON string""" + return cls.from_dict(json.loads(json_str)) + + def to_dict(self) -> Dict[str, Any]: + """Return the dictionary representation of the model using alias. + + This has the following differences from calling pydantic's + `self.model_dump(by_alias=True)`: + + * `None` is only added to the output dict for nullable fields that + were set at model initialization. Other fields with value `None` + are ignored. + """ + excluded_fields: Set[str] = set([ + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + # set to None if last_used (nullable) is None + # and model_fields_set contains the field + if self.last_used is None and "last_used" in self.model_fields_set: + _dict['last_used'] = None + + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of TokensList200ResponseInner from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "id": obj.get("id"), + "name": obj.get("name"), + "last_used": obj.get("last_used"), + "created_at": obj.get("created_at") + }) + return _obj + + diff --git a/quantcdn/models/update_ai_agent200_response.py b/quantcdn/models/update_ai_agent200_response.py index c386dc46..fbc0883c 100644 --- a/quantcdn/models/update_ai_agent200_response.py +++ b/quantcdn/models/update_ai_agent200_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/update_ai_agent_request.py b/quantcdn/models/update_ai_agent_request.py index 6c33ac57..56bae4cf 100644 --- a/quantcdn/models/update_ai_agent_request.py +++ b/quantcdn/models/update_ai_agent_request.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. @@ -17,7 +17,7 @@ import re # noqa: F401 import json -from pydantic import BaseModel, ConfigDict, Field, StrictStr +from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr, field_validator from typing import Any, ClassVar, Dict, List, Optional, Union from typing_extensions import Annotated from typing import Optional, Set @@ -36,7 +36,21 @@ class UpdateAIAgentRequest(BaseModel): max_tokens: Optional[Annotated[int, Field(le=200000, strict=True, ge=1)]] = Field(default=None, alias="maxTokens") allowed_tools: Optional[List[StrictStr]] = Field(default=None, alias="allowedTools") allowed_collections: Optional[List[StrictStr]] = Field(default=None, alias="allowedCollections") - __properties: ClassVar[List[str]] = ["name", "description", "group", "systemPrompt", "temperature", "modelId", "maxTokens", "allowedTools", "allowedCollections"] + assigned_skills: Optional[List[StrictStr]] = Field(default=None, description="Skill IDs to assign to this agent", alias="assignedSkills") + long_context: Optional[StrictBool] = Field(default=None, description="Enable 1M context window support", alias="longContext") + guardrail_preset: Optional[StrictStr] = Field(default=None, description="Guardrail preset name", alias="guardrailPreset") + filter_policies: Optional[List[StrictStr]] = Field(default=None, description="Filter policy IDs to apply to this agent's inference requests", alias="filterPolicies") + __properties: ClassVar[List[str]] = ["name", "description", "group", "systemPrompt", "temperature", "modelId", "maxTokens", "allowedTools", "allowedCollections", "assignedSkills", "longContext", "guardrailPreset", "filterPolicies"] + + @field_validator('guardrail_preset') + def guardrail_preset_validate_enum(cls, value): + """Validates the enum""" + if value is None: + return value + + if value not in set(['official', 'official-sensitive', 'protected']): + raise ValueError("must be one of enum values ('official', 'official-sensitive', 'protected')") + return value model_config = ConfigDict( populate_by_name=True, @@ -77,6 +91,11 @@ def to_dict(self) -> Dict[str, Any]: exclude=excluded_fields, exclude_none=True, ) + # set to None if guardrail_preset (nullable) is None + # and model_fields_set contains the field + if self.guardrail_preset is None and "guardrail_preset" in self.model_fields_set: + _dict['guardrailPreset'] = None + return _dict @classmethod @@ -97,7 +116,11 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: "modelId": obj.get("modelId"), "maxTokens": obj.get("maxTokens"), "allowedTools": obj.get("allowedTools"), - "allowedCollections": obj.get("allowedCollections") + "allowedCollections": obj.get("allowedCollections"), + "assignedSkills": obj.get("assignedSkills"), + "longContext": obj.get("longContext"), + "guardrailPreset": obj.get("guardrailPreset"), + "filterPolicies": obj.get("filterPolicies") }) return _obj diff --git a/quantcdn/models/update_ai_session200_response.py b/quantcdn/models/update_ai_session200_response.py index 52c30ffe..a44cc504 100644 --- a/quantcdn/models/update_ai_session200_response.py +++ b/quantcdn/models/update_ai_session200_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/update_ai_session_request.py b/quantcdn/models/update_ai_session_request.py index 80617e03..e83248a4 100644 --- a/quantcdn/models/update_ai_session_request.py +++ b/quantcdn/models/update_ai_session_request.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/update_ai_session_request_new_messages_inner.py b/quantcdn/models/update_ai_session_request_new_messages_inner.py index b66a53e8..42aec255 100644 --- a/quantcdn/models/update_ai_session_request_new_messages_inner.py +++ b/quantcdn/models/update_ai_session_request_new_messages_inner.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/update_cron_job_request.py b/quantcdn/models/update_cron_job_request.py index 63665fac..c3c97179 100644 --- a/quantcdn/models/update_cron_job_request.py +++ b/quantcdn/models/update_cron_job_request.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/update_environment_request.py b/quantcdn/models/update_environment_request.py index 2c075879..efc1cfed 100644 --- a/quantcdn/models/update_environment_request.py +++ b/quantcdn/models/update_environment_request.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/update_environment_state_request.py b/quantcdn/models/update_environment_state_request.py index f29a5d71..03f94e26 100644 --- a/quantcdn/models/update_environment_state_request.py +++ b/quantcdn/models/update_environment_state_request.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/update_environment_variable_request.py b/quantcdn/models/update_environment_variable_request.py index f36e5567..64c4ac77 100644 --- a/quantcdn/models/update_environment_variable_request.py +++ b/quantcdn/models/update_environment_variable_request.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/update_filter_policy_request.py b/quantcdn/models/update_filter_policy_request.py new file mode 100644 index 00000000..afb77ffd --- /dev/null +++ b/quantcdn/models/update_filter_policy_request.py @@ -0,0 +1,107 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, Field, StrictBool +from typing import Any, ClassVar, Dict, List, Optional +from typing_extensions import Annotated +from quantcdn.models.create_filter_policy_request_rules_inner import CreateFilterPolicyRequestRulesInner +from typing import Optional, Set +from typing_extensions import Self + +class UpdateFilterPolicyRequest(BaseModel): + """ + UpdateFilterPolicyRequest + """ # noqa: E501 + name: Optional[Annotated[str, Field(strict=True, max_length=255)]] = None + description: Optional[Annotated[str, Field(strict=True, max_length=1000)]] = None + enabled: Optional[StrictBool] = None + rules: Optional[Annotated[List[CreateFilterPolicyRequestRulesInner], Field(min_length=1, max_length=100)]] = None + __properties: ClassVar[List[str]] = ["name", "description", "enabled", "rules"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of UpdateFilterPolicyRequest from a JSON string""" + return cls.from_dict(json.loads(json_str)) + + def to_dict(self) -> Dict[str, Any]: + """Return the dictionary representation of the model using alias. + + This has the following differences from calling pydantic's + `self.model_dump(by_alias=True)`: + + * `None` is only added to the output dict for nullable fields that + were set at model initialization. Other fields with value `None` + are ignored. + """ + excluded_fields: Set[str] = set([ + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + # override the default output from pydantic by calling `to_dict()` of each item in rules (list) + _items = [] + if self.rules: + for _item_rules in self.rules: + if _item_rules: + _items.append(_item_rules.to_dict()) + _dict['rules'] = _items + # set to None if description (nullable) is None + # and model_fields_set contains the field + if self.description is None and "description" in self.model_fields_set: + _dict['description'] = None + + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of UpdateFilterPolicyRequest from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "name": obj.get("name"), + "description": obj.get("description"), + "enabled": obj.get("enabled"), + "rules": [CreateFilterPolicyRequestRulesInner.from_dict(_item) for _item in obj["rules"]] if obj.get("rules") is not None else None + }) + return _obj + + diff --git a/quantcdn/models/update_governance_config200_response.py b/quantcdn/models/update_governance_config200_response.py new file mode 100644 index 00000000..f00b27f5 --- /dev/null +++ b/quantcdn/models/update_governance_config200_response.py @@ -0,0 +1,89 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, StrictBool +from typing import Any, ClassVar, Dict, List, Optional +from typing import Optional, Set +from typing_extensions import Self + +class UpdateGovernanceConfig200Response(BaseModel): + """ + UpdateGovernanceConfig200Response + """ # noqa: E501 + success: Optional[StrictBool] = None + config: Optional[Dict[str, Any]] = None + __properties: ClassVar[List[str]] = ["success", "config"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of UpdateGovernanceConfig200Response from a JSON string""" + return cls.from_dict(json.loads(json_str)) + + def to_dict(self) -> Dict[str, Any]: + """Return the dictionary representation of the model using alias. + + This has the following differences from calling pydantic's + `self.model_dump(by_alias=True)`: + + * `None` is only added to the output dict for nullable fields that + were set at model initialization. Other fields with value `None` + are ignored. + """ + excluded_fields: Set[str] = set([ + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of UpdateGovernanceConfig200Response from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "success": obj.get("success"), + "config": obj.get("config") + }) + return _obj + + diff --git a/quantcdn/models/update_governance_config_request.py b/quantcdn/models/update_governance_config_request.py new file mode 100644 index 00000000..4409b352 --- /dev/null +++ b/quantcdn/models/update_governance_config_request.py @@ -0,0 +1,125 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictInt, StrictStr, field_validator +from typing import Any, ClassVar, Dict, List, Optional +from quantcdn.models.get_governance_config200_response_spend_limits import GetGovernanceConfig200ResponseSpendLimits +from typing import Optional, Set +from typing_extensions import Self + +class UpdateGovernanceConfigRequest(BaseModel): + """ + UpdateGovernanceConfigRequest + """ # noqa: E501 + ai_enabled: StrictBool = Field(alias="aiEnabled") + model_policy: StrictStr = Field(alias="modelPolicy") + model_list: Optional[List[StrictStr]] = Field(default=None, alias="modelList") + mandatory_guardrail_preset: Optional[StrictStr] = Field(default=None, alias="mandatoryGuardrailPreset") + mandatory_filter_policies: Optional[List[StrictStr]] = Field(default=None, alias="mandatoryFilterPolicies") + spend_limits: Optional[GetGovernanceConfig200ResponseSpendLimits] = Field(default=None, alias="spendLimits") + version: Optional[StrictInt] = None + __properties: ClassVar[List[str]] = ["aiEnabled", "modelPolicy", "modelList", "mandatoryGuardrailPreset", "mandatoryFilterPolicies", "spendLimits", "version"] + + @field_validator('model_policy') + def model_policy_validate_enum(cls, value): + """Validates the enum""" + if value not in set(['unrestricted', 'allowlist', 'blocklist']): + raise ValueError("must be one of enum values ('unrestricted', 'allowlist', 'blocklist')") + return value + + @field_validator('mandatory_guardrail_preset') + def mandatory_guardrail_preset_validate_enum(cls, value): + """Validates the enum""" + if value is None: + return value + + if value not in set(['official', 'official-sensitive', 'protected']): + raise ValueError("must be one of enum values ('official', 'official-sensitive', 'protected')") + return value + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of UpdateGovernanceConfigRequest from a JSON string""" + return cls.from_dict(json.loads(json_str)) + + def to_dict(self) -> Dict[str, Any]: + """Return the dictionary representation of the model using alias. + + This has the following differences from calling pydantic's + `self.model_dump(by_alias=True)`: + + * `None` is only added to the output dict for nullable fields that + were set at model initialization. Other fields with value `None` + are ignored. + """ + excluded_fields: Set[str] = set([ + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + # override the default output from pydantic by calling `to_dict()` of spend_limits + if self.spend_limits: + _dict['spendLimits'] = self.spend_limits.to_dict() + # set to None if mandatory_guardrail_preset (nullable) is None + # and model_fields_set contains the field + if self.mandatory_guardrail_preset is None and "mandatory_guardrail_preset" in self.model_fields_set: + _dict['mandatoryGuardrailPreset'] = None + + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of UpdateGovernanceConfigRequest from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "aiEnabled": obj.get("aiEnabled"), + "modelPolicy": obj.get("modelPolicy"), + "modelList": obj.get("modelList"), + "mandatoryGuardrailPreset": obj.get("mandatoryGuardrailPreset"), + "mandatoryFilterPolicies": obj.get("mandatoryFilterPolicies"), + "spendLimits": GetGovernanceConfig200ResponseSpendLimits.from_dict(obj["spendLimits"]) if obj.get("spendLimits") is not None else None, + "version": obj.get("version") + }) + return _obj + + diff --git a/quantcdn/models/update_skill200_response.py b/quantcdn/models/update_skill200_response.py new file mode 100644 index 00000000..f39b29b0 --- /dev/null +++ b/quantcdn/models/update_skill200_response.py @@ -0,0 +1,91 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, StrictBool, StrictStr +from typing import Any, ClassVar, Dict, List, Optional +from typing import Optional, Set +from typing_extensions import Self + +class UpdateSkill200Response(BaseModel): + """ + UpdateSkill200Response + """ # noqa: E501 + success: Optional[StrictBool] = None + skill: Optional[Dict[str, Any]] = None + message: Optional[StrictStr] = None + __properties: ClassVar[List[str]] = ["success", "skill", "message"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of UpdateSkill200Response from a JSON string""" + return cls.from_dict(json.loads(json_str)) + + def to_dict(self) -> Dict[str, Any]: + """Return the dictionary representation of the model using alias. + + This has the following differences from calling pydantic's + `self.model_dump(by_alias=True)`: + + * `None` is only added to the output dict for nullable fields that + were set at model initialization. Other fields with value `None` + are ignored. + """ + excluded_fields: Set[str] = set([ + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of UpdateSkill200Response from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "success": obj.get("success"), + "skill": obj.get("skill"), + "message": obj.get("message") + }) + return _obj + + diff --git a/quantcdn/models/update_skill_request.py b/quantcdn/models/update_skill_request.py new file mode 100644 index 00000000..8e67d57f --- /dev/null +++ b/quantcdn/models/update_skill_request.py @@ -0,0 +1,107 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr +from typing import Any, ClassVar, Dict, List, Optional +from typing import Optional, Set +from typing_extensions import Self + +class UpdateSkillRequest(BaseModel): + """ + UpdateSkillRequest + """ # noqa: E501 + name: Optional[StrictStr] = None + description: Optional[StrictStr] = None + content: Optional[StrictStr] = None + trigger_condition: Optional[StrictStr] = Field(default=None, alias="triggerCondition") + tags: Optional[List[StrictStr]] = None + required_tools: Optional[List[StrictStr]] = Field(default=None, alias="requiredTools") + source: Optional[Dict[str, Any]] = None + files: Optional[Dict[str, Any]] = None + disable_model_invocation: Optional[StrictBool] = Field(default=None, alias="disableModelInvocation") + allowed_tools: Optional[List[StrictStr]] = Field(default=None, alias="allowedTools") + namespace: Optional[StrictStr] = None + __properties: ClassVar[List[str]] = ["name", "description", "content", "triggerCondition", "tags", "requiredTools", "source", "files", "disableModelInvocation", "allowedTools", "namespace"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of UpdateSkillRequest from a JSON string""" + return cls.from_dict(json.loads(json_str)) + + def to_dict(self) -> Dict[str, Any]: + """Return the dictionary representation of the model using alias. + + This has the following differences from calling pydantic's + `self.model_dump(by_alias=True)`: + + * `None` is only added to the output dict for nullable fields that + were set at model initialization. Other fields with value `None` + are ignored. + """ + excluded_fields: Set[str] = set([ + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of UpdateSkillRequest from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "name": obj.get("name"), + "description": obj.get("description"), + "content": obj.get("content"), + "triggerCondition": obj.get("triggerCondition"), + "tags": obj.get("tags"), + "requiredTools": obj.get("requiredTools"), + "source": obj.get("source"), + "files": obj.get("files"), + "disableModelInvocation": obj.get("disableModelInvocation"), + "allowedTools": obj.get("allowedTools"), + "namespace": obj.get("namespace") + }) + return _obj + + diff --git a/quantcdn/models/update_slack_bot_request.py b/quantcdn/models/update_slack_bot_request.py new file mode 100644 index 00000000..fdf5a35d --- /dev/null +++ b/quantcdn/models/update_slack_bot_request.py @@ -0,0 +1,140 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr, field_validator +from typing import Any, ClassVar, Dict, List, Optional, Union +from typing_extensions import Annotated +from typing import Optional, Set +from typing_extensions import Self + +class UpdateSlackBotRequest(BaseModel): + """ + UpdateSlackBotRequest + """ # noqa: E501 + name: Optional[StrictStr] = Field(default=None, description="Display name for the bot") + status: Optional[StrictStr] = Field(default=None, description="Enable or disable the bot") + system_prompt: Optional[StrictStr] = Field(default=None, description="System prompt for the backing AI agent", alias="systemPrompt") + model_id: Optional[StrictStr] = Field(default=None, description="AI model identifier", alias="modelId") + temperature: Optional[Union[Annotated[float, Field(le=2, strict=True, ge=0)], Annotated[int, Field(le=2, strict=True, ge=0)]]] = Field(default=None, description="Sampling temperature") + max_tokens: Optional[Annotated[int, Field(strict=True, ge=1)]] = Field(default=None, description="Maximum response tokens", alias="maxTokens") + allowed_tools: Optional[List[StrictStr]] = Field(default=None, description="Tools the agent may use", alias="allowedTools") + assigned_skills: Optional[List[StrictStr]] = Field(default=None, description="Skills assigned to the agent", alias="assignedSkills") + allowed_collections: Optional[List[StrictStr]] = Field(default=None, description="Vector DB collections the agent may query", alias="allowedCollections") + allowed_sub_agents: Optional[List[StrictStr]] = Field(default=None, description="Sub-agents the agent may call", alias="allowedSubAgents") + guardrail_preset: Optional[StrictStr] = Field(default=None, description="Guardrail preset name", alias="guardrailPreset") + filter_policies: Optional[List[StrictStr]] = Field(default=None, description="Content filter policies", alias="filterPolicies") + long_context: Optional[StrictBool] = Field(default=None, description="Enable long context mode", alias="longContext") + session_ttl_days: Optional[Annotated[int, Field(le=90, strict=True, ge=1)]] = Field(default=None, description="Session TTL in days", alias="sessionTtlDays") + allowed_channels: Optional[List[StrictStr]] = Field(default=None, description="Slack channel IDs the bot may respond in", alias="allowedChannels") + allowed_users: Optional[List[StrictStr]] = Field(default=None, description="Slack user IDs allowed to interact with the bot", alias="allowedUsers") + denied_users: Optional[List[StrictStr]] = Field(default=None, description="Slack user IDs denied from interacting with the bot", alias="deniedUsers") + allow_guests: Optional[StrictBool] = Field(default=None, description="Whether guest users may interact with the bot", alias="allowGuests") + home_tab_content: Optional[StrictStr] = Field(default=None, description="Content shown on the bot's Home tab in Slack", alias="homeTabContent") + agent_access_control: Optional[Dict[str, Any]] = Field(default=None, description="Agent-level access control settings", alias="agentAccessControl") + keywords_enabled: Optional[StrictBool] = Field(default=None, description="Whether keyword triggers are enabled", alias="keywordsEnabled") + keywords: Optional[List[StrictStr]] = Field(default=None, description="Keywords that trigger the bot") + __properties: ClassVar[List[str]] = ["name", "status", "systemPrompt", "modelId", "temperature", "maxTokens", "allowedTools", "assignedSkills", "allowedCollections", "allowedSubAgents", "guardrailPreset", "filterPolicies", "longContext", "sessionTtlDays", "allowedChannels", "allowedUsers", "deniedUsers", "allowGuests", "homeTabContent", "agentAccessControl", "keywordsEnabled", "keywords"] + + @field_validator('status') + def status_validate_enum(cls, value): + """Validates the enum""" + if value is None: + return value + + if value not in set(['active', 'inactive']): + raise ValueError("must be one of enum values ('active', 'inactive')") + return value + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of UpdateSlackBotRequest from a JSON string""" + return cls.from_dict(json.loads(json_str)) + + def to_dict(self) -> Dict[str, Any]: + """Return the dictionary representation of the model using alias. + + This has the following differences from calling pydantic's + `self.model_dump(by_alias=True)`: + + * `None` is only added to the output dict for nullable fields that + were set at model initialization. Other fields with value `None` + are ignored. + """ + excluded_fields: Set[str] = set([ + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of UpdateSlackBotRequest from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "name": obj.get("name"), + "status": obj.get("status"), + "systemPrompt": obj.get("systemPrompt"), + "modelId": obj.get("modelId"), + "temperature": obj.get("temperature"), + "maxTokens": obj.get("maxTokens"), + "allowedTools": obj.get("allowedTools"), + "assignedSkills": obj.get("assignedSkills"), + "allowedCollections": obj.get("allowedCollections"), + "allowedSubAgents": obj.get("allowedSubAgents"), + "guardrailPreset": obj.get("guardrailPreset"), + "filterPolicies": obj.get("filterPolicies"), + "longContext": obj.get("longContext"), + "sessionTtlDays": obj.get("sessionTtlDays"), + "allowedChannels": obj.get("allowedChannels"), + "allowedUsers": obj.get("allowedUsers"), + "deniedUsers": obj.get("deniedUsers"), + "allowGuests": obj.get("allowGuests"), + "homeTabContent": obj.get("homeTabContent"), + "agentAccessControl": obj.get("agentAccessControl"), + "keywordsEnabled": obj.get("keywordsEnabled"), + "keywords": obj.get("keywords") + }) + return _obj + + diff --git a/quantcdn/models/update_task200_response.py b/quantcdn/models/update_task200_response.py index 218f84af..f211d811 100644 --- a/quantcdn/models/update_task200_response.py +++ b/quantcdn/models/update_task200_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/update_task_request.py b/quantcdn/models/update_task_request.py index 8aebe472..efbd7c11 100644 --- a/quantcdn/models/update_task_request.py +++ b/quantcdn/models/update_task_request.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/upload_file201_response.py b/quantcdn/models/upload_file201_response.py index afa2d0f4..39d4959b 100644 --- a/quantcdn/models/upload_file201_response.py +++ b/quantcdn/models/upload_file201_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/upload_file_request.py b/quantcdn/models/upload_file_request.py index b57e6af2..1cdc43af 100644 --- a/quantcdn/models/upload_file_request.py +++ b/quantcdn/models/upload_file_request.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/upload_vector_documents200_response.py b/quantcdn/models/upload_vector_documents200_response.py index 8a235d05..cec383ae 100644 --- a/quantcdn/models/upload_vector_documents200_response.py +++ b/quantcdn/models/upload_vector_documents200_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/upload_vector_documents_request.py b/quantcdn/models/upload_vector_documents_request.py index 876d6bf0..eafaf146 100644 --- a/quantcdn/models/upload_vector_documents_request.py +++ b/quantcdn/models/upload_vector_documents_request.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/upload_vector_documents_request_documents_inner.py b/quantcdn/models/upload_vector_documents_request_documents_inner.py index a7ecf496..0aaef09a 100644 --- a/quantcdn/models/upload_vector_documents_request_documents_inner.py +++ b/quantcdn/models/upload_vector_documents_request_documents_inner.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. @@ -19,6 +19,7 @@ from pydantic import BaseModel, ConfigDict, Field, StrictStr from typing import Any, ClassVar, Dict, List, Optional +from typing_extensions import Annotated from quantcdn.models.upload_vector_documents_request_documents_inner_metadata import UploadVectorDocumentsRequestDocumentsInnerMetadata from typing import Optional, Set from typing_extensions import Self @@ -28,8 +29,9 @@ class UploadVectorDocumentsRequestDocumentsInner(BaseModel): UploadVectorDocumentsRequestDocumentsInner """ # noqa: E501 content: StrictStr = Field(description="Document text content") + key: Optional[Annotated[str, Field(strict=True, max_length=512)]] = Field(default=None, description="Stable document key for upsert") metadata: Optional[UploadVectorDocumentsRequestDocumentsInnerMetadata] = None - __properties: ClassVar[List[str]] = ["content", "metadata"] + __properties: ClassVar[List[str]] = ["content", "key", "metadata"] model_config = ConfigDict( populate_by_name=True, @@ -86,6 +88,7 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: _obj = cls.model_validate({ "content": obj.get("content"), + "key": obj.get("key"), "metadata": UploadVectorDocumentsRequestDocumentsInnerMetadata.from_dict(obj["metadata"]) if obj.get("metadata") is not None else None }) return _obj diff --git a/quantcdn/models/upload_vector_documents_request_documents_inner_metadata.py b/quantcdn/models/upload_vector_documents_request_documents_inner_metadata.py index 6509c387..c21d5b67 100644 --- a/quantcdn/models/upload_vector_documents_request_documents_inner_metadata.py +++ b/quantcdn/models/upload_vector_documents_request_documents_inner_metadata.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/upsert_agent_overlay200_response.py b/quantcdn/models/upsert_agent_overlay200_response.py new file mode 100644 index 00000000..db2cadd0 --- /dev/null +++ b/quantcdn/models/upsert_agent_overlay200_response.py @@ -0,0 +1,87 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict +from typing import Any, ClassVar, Dict, List, Optional +from typing import Optional, Set +from typing_extensions import Self + +class UpsertAgentOverlay200Response(BaseModel): + """ + UpsertAgentOverlay200Response + """ # noqa: E501 + overlay: Optional[Dict[str, Any]] = None + __properties: ClassVar[List[str]] = ["overlay"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of UpsertAgentOverlay200Response from a JSON string""" + return cls.from_dict(json.loads(json_str)) + + def to_dict(self) -> Dict[str, Any]: + """Return the dictionary representation of the model using alias. + + This has the following differences from calling pydantic's + `self.model_dump(by_alias=True)`: + + * `None` is only added to the output dict for nullable fields that + were set at model initialization. Other fields with value `None` + are ignored. + """ + excluded_fields: Set[str] = set([ + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of UpsertAgentOverlay200Response from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "overlay": obj.get("overlay") + }) + return _obj + + diff --git a/quantcdn/models/upsert_agent_overlay_request.py b/quantcdn/models/upsert_agent_overlay_request.py new file mode 100644 index 00000000..0e72ac57 --- /dev/null +++ b/quantcdn/models/upsert_agent_overlay_request.py @@ -0,0 +1,123 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, Field, StrictInt, StrictStr, field_validator +from typing import Any, ClassVar, Dict, List, Optional, Union +from typing_extensions import Annotated +from typing import Optional, Set +from typing_extensions import Self + +class UpsertAgentOverlayRequest(BaseModel): + """ + UpsertAgentOverlayRequest + """ # noqa: E501 + model_id: Optional[StrictStr] = Field(default=None, description="Override the base agent's model", alias="modelId") + temperature: Optional[Union[Annotated[float, Field(le=1, strict=True, ge=0)], Annotated[int, Field(le=1, strict=True, ge=0)]]] = Field(default=None, description="Override temperature") + max_tokens: Optional[Annotated[int, Field(strict=True, ge=1)]] = Field(default=None, description="Override max tokens", alias="maxTokens") + disabled_skills: Optional[List[StrictStr]] = Field(default=None, description="Global skill IDs to exclude", alias="disabledSkills") + additional_skills: Optional[List[StrictStr]] = Field(default=None, description="Org-owned skill IDs to add", alias="additionalSkills") + additional_tools: Optional[List[StrictStr]] = Field(default=None, description="Tool names to add", alias="additionalTools") + disabled_tools: Optional[List[StrictStr]] = Field(default=None, description="Tool names to remove", alias="disabledTools") + system_prompt_append: Optional[StrictStr] = Field(default=None, description="Text appended to base system prompt", alias="systemPromptAppend") + allowed_collections: Optional[List[StrictStr]] = Field(default=None, description="Vector DB collections", alias="allowedCollections") + guardrail_preset: Optional[StrictStr] = Field(default=None, description="Guardrail preset", alias="guardrailPreset") + version: Optional[StrictInt] = Field(default=None, description="Current version for optimistic concurrency") + __properties: ClassVar[List[str]] = ["modelId", "temperature", "maxTokens", "disabledSkills", "additionalSkills", "additionalTools", "disabledTools", "systemPromptAppend", "allowedCollections", "guardrailPreset", "version"] + + @field_validator('guardrail_preset') + def guardrail_preset_validate_enum(cls, value): + """Validates the enum""" + if value is None: + return value + + if value not in set(['official', 'official-sensitive', 'protected']): + raise ValueError("must be one of enum values ('official', 'official-sensitive', 'protected')") + return value + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of UpsertAgentOverlayRequest from a JSON string""" + return cls.from_dict(json.loads(json_str)) + + def to_dict(self) -> Dict[str, Any]: + """Return the dictionary representation of the model using alias. + + This has the following differences from calling pydantic's + `self.model_dump(by_alias=True)`: + + * `None` is only added to the output dict for nullable fields that + were set at model initialization. Other fields with value `None` + are ignored. + """ + excluded_fields: Set[str] = set([ + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + # set to None if guardrail_preset (nullable) is None + # and model_fields_set contains the field + if self.guardrail_preset is None and "guardrail_preset" in self.model_fields_set: + _dict['guardrailPreset'] = None + + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of UpsertAgentOverlayRequest from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "modelId": obj.get("modelId"), + "temperature": obj.get("temperature"), + "maxTokens": obj.get("maxTokens"), + "disabledSkills": obj.get("disabledSkills"), + "additionalSkills": obj.get("additionalSkills"), + "additionalTools": obj.get("additionalTools"), + "disabledTools": obj.get("disabledTools"), + "systemPromptAppend": obj.get("systemPromptAppend"), + "allowedCollections": obj.get("allowedCollections"), + "guardrailPreset": obj.get("guardrailPreset"), + "version": obj.get("version") + }) + return _obj + + diff --git a/quantcdn/models/v1_content_item.py b/quantcdn/models/v1_content_item.py index 69744aba..402d819a 100644 --- a/quantcdn/models/v1_content_item.py +++ b/quantcdn/models/v1_content_item.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/v1_content_list_response.py b/quantcdn/models/v1_content_list_response.py index 5a38b959..8a6a27b1 100644 --- a/quantcdn/models/v1_content_list_response.py +++ b/quantcdn/models/v1_content_list_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/v1_content_request.py b/quantcdn/models/v1_content_request.py index ec8e187f..7155e14a 100644 --- a/quantcdn/models/v1_content_request.py +++ b/quantcdn/models/v1_content_request.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/v1_delete_response.py b/quantcdn/models/v1_delete_response.py index 8395fe62..0506c470 100644 --- a/quantcdn/models/v1_delete_response.py +++ b/quantcdn/models/v1_delete_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/v1_error.py b/quantcdn/models/v1_error.py index f77e6c07..98329edc 100644 --- a/quantcdn/models/v1_error.py +++ b/quantcdn/models/v1_error.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/v1_form_submission_item.py b/quantcdn/models/v1_form_submission_item.py index 7166fc73..a8620e0b 100644 --- a/quantcdn/models/v1_form_submission_item.py +++ b/quantcdn/models/v1_form_submission_item.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/v1_form_submission_list_response.py b/quantcdn/models/v1_form_submission_list_response.py index 54d73eed..c5704266 100644 --- a/quantcdn/models/v1_form_submission_list_response.py +++ b/quantcdn/models/v1_form_submission_list_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/v1_get_metric_series_response.py b/quantcdn/models/v1_get_metric_series_response.py index b9b125c0..00b0dfeb 100644 --- a/quantcdn/models/v1_get_metric_series_response.py +++ b/quantcdn/models/v1_get_metric_series_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/v1_get_metric_series_response_data.py b/quantcdn/models/v1_get_metric_series_response_data.py index 15e52a4a..0fb3a729 100644 --- a/quantcdn/models/v1_get_metric_series_response_data.py +++ b/quantcdn/models/v1_get_metric_series_response_data.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/v1_get_metrics_response.py b/quantcdn/models/v1_get_metrics_response.py index ee14b7a4..1893612f 100644 --- a/quantcdn/models/v1_get_metrics_response.py +++ b/quantcdn/models/v1_get_metrics_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/v1_get_metrics_response_data.py b/quantcdn/models/v1_get_metrics_response_data.py index b519c297..b64dcbf8 100644 --- a/quantcdn/models/v1_get_metrics_response_data.py +++ b/quantcdn/models/v1_get_metrics_response_data.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/v1_global_meta_response.py b/quantcdn/models/v1_global_meta_response.py index 6ec78ece..afc2415f 100644 --- a/quantcdn/models/v1_global_meta_response.py +++ b/quantcdn/models/v1_global_meta_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/v1_global_meta_response_global_meta.py b/quantcdn/models/v1_global_meta_response_global_meta.py index 4e1c20c0..c1dca022 100644 --- a/quantcdn/models/v1_global_meta_response_global_meta.py +++ b/quantcdn/models/v1_global_meta_response_global_meta.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/v1_info.py b/quantcdn/models/v1_info.py index d778476d..800f5deb 100644 --- a/quantcdn/models/v1_info.py +++ b/quantcdn/models/v1_info.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/v1_meta.py b/quantcdn/models/v1_meta.py index 52dfcfa4..c93be828 100644 --- a/quantcdn/models/v1_meta.py +++ b/quantcdn/models/v1_meta.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/v1_metric_day_stats.py b/quantcdn/models/v1_metric_day_stats.py index 130c8a1a..27ed1dfc 100644 --- a/quantcdn/models/v1_metric_day_stats.py +++ b/quantcdn/models/v1_metric_day_stats.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/v1_metric_minute_stats.py b/quantcdn/models/v1_metric_minute_stats.py index c416f892..d1a91f78 100644 --- a/quantcdn/models/v1_metric_minute_stats.py +++ b/quantcdn/models/v1_metric_minute_stats.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/v1_metric_month_stats.py b/quantcdn/models/v1_metric_month_stats.py index 06d89ffe..1ed50ef5 100644 --- a/quantcdn/models/v1_metric_month_stats.py +++ b/quantcdn/models/v1_metric_month_stats.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/v1_ping_response.py b/quantcdn/models/v1_ping_response.py index ee94889b..dfd5ca89 100644 --- a/quantcdn/models/v1_ping_response.py +++ b/quantcdn/models/v1_ping_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/v1_proxy_item.py b/quantcdn/models/v1_proxy_item.py index c8074e38..e69bc39d 100644 --- a/quantcdn/models/v1_proxy_item.py +++ b/quantcdn/models/v1_proxy_item.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/v1_proxy_list_response.py b/quantcdn/models/v1_proxy_list_response.py index 6f4c0821..d16c9c1b 100644 --- a/quantcdn/models/v1_proxy_list_response.py +++ b/quantcdn/models/v1_proxy_list_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/v1_redirect_item.py b/quantcdn/models/v1_redirect_item.py index 52d89b04..c8eab20d 100644 --- a/quantcdn/models/v1_redirect_item.py +++ b/quantcdn/models/v1_redirect_item.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/v1_redirect_list_response.py b/quantcdn/models/v1_redirect_list_response.py index c36ec659..b79436bf 100644 --- a/quantcdn/models/v1_redirect_list_response.py +++ b/quantcdn/models/v1_redirect_list_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/v1_redirect_request.py b/quantcdn/models/v1_redirect_request.py index 656057f0..c73ee36d 100644 --- a/quantcdn/models/v1_redirect_request.py +++ b/quantcdn/models/v1_redirect_request.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/v1_redirect_response.py b/quantcdn/models/v1_redirect_response.py index 8797aa29..4b60bd7c 100644 --- a/quantcdn/models/v1_redirect_response.py +++ b/quantcdn/models/v1_redirect_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/v1_revision.py b/quantcdn/models/v1_revision.py index 77e849e3..ce8e2c93 100644 --- a/quantcdn/models/v1_revision.py +++ b/quantcdn/models/v1_revision.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/v1_revisions_response.py b/quantcdn/models/v1_revisions_response.py index 3930e668..9fdfeeee 100644 --- a/quantcdn/models/v1_revisions_response.py +++ b/quantcdn/models/v1_revisions_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/v1_search_hit.py b/quantcdn/models/v1_search_hit.py index 1454861b..42dd7a79 100644 --- a/quantcdn/models/v1_search_hit.py +++ b/quantcdn/models/v1_search_hit.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/v1_search_items_response.py b/quantcdn/models/v1_search_items_response.py index 1faa40c3..df1df82d 100644 --- a/quantcdn/models/v1_search_items_response.py +++ b/quantcdn/models/v1_search_items_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/v1_search_mutation_response.py b/quantcdn/models/v1_search_mutation_response.py index 623485cd..8d377ab3 100644 --- a/quantcdn/models/v1_search_mutation_response.py +++ b/quantcdn/models/v1_search_mutation_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/v1_search_record.py b/quantcdn/models/v1_search_record.py index 9d708f95..2c8844d7 100644 --- a/quantcdn/models/v1_search_record.py +++ b/quantcdn/models/v1_search_record.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/v1_search_response.py b/quantcdn/models/v1_search_response.py index 0e6d2593..33204551 100644 --- a/quantcdn/models/v1_search_response.py +++ b/quantcdn/models/v1_search_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/v1_series_point_day.py b/quantcdn/models/v1_series_point_day.py index 2365afbb..1670cf76 100644 --- a/quantcdn/models/v1_series_point_day.py +++ b/quantcdn/models/v1_series_point_day.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/v1_series_point_month.py b/quantcdn/models/v1_series_point_month.py index 7014c121..c369c806 100644 --- a/quantcdn/models/v1_series_point_month.py +++ b/quantcdn/models/v1_series_point_month.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/v1_transition.py b/quantcdn/models/v1_transition.py index 1d29543b..ffa43b1b 100644 --- a/quantcdn/models/v1_transition.py +++ b/quantcdn/models/v1_transition.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/v1_upload_response.py b/quantcdn/models/v1_upload_response.py index 80e0e7d4..6728ab1a 100644 --- a/quantcdn/models/v1_upload_response.py +++ b/quantcdn/models/v1_upload_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/v1_url_meta_request.py b/quantcdn/models/v1_url_meta_request.py index aaa39ede..bb8e848a 100644 --- a/quantcdn/models/v1_url_meta_request.py +++ b/quantcdn/models/v1_url_meta_request.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/v1_url_meta_response.py b/quantcdn/models/v1_url_meta_response.py index 9333c40c..dda0af01 100644 --- a/quantcdn/models/v1_url_meta_response.py +++ b/quantcdn/models/v1_url_meta_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/v1_waf_log_item.py b/quantcdn/models/v1_waf_log_item.py index 1f8fa39e..35de8611 100644 --- a/quantcdn/models/v1_waf_log_item.py +++ b/quantcdn/models/v1_waf_log_item.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/v1_waf_log_list_response.py b/quantcdn/models/v1_waf_log_list_response.py index c30c798e..d14ab597 100644 --- a/quantcdn/models/v1_waf_log_list_response.py +++ b/quantcdn/models/v1_waf_log_list_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/v2_crawler.py b/quantcdn/models/v2_crawler.py index f9c10ac4..0eaf6ba3 100644 --- a/quantcdn/models/v2_crawler.py +++ b/quantcdn/models/v2_crawler.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/v2_crawler_assets.py b/quantcdn/models/v2_crawler_assets.py index 1dcf8c3b..13bce721 100644 --- a/quantcdn/models/v2_crawler_assets.py +++ b/quantcdn/models/v2_crawler_assets.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/v2_crawler_assets_network_intercept.py b/quantcdn/models/v2_crawler_assets_network_intercept.py index 39fc803e..35bc1ef6 100644 --- a/quantcdn/models/v2_crawler_assets_network_intercept.py +++ b/quantcdn/models/v2_crawler_assets_network_intercept.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/v2_crawler_assets_parser.py b/quantcdn/models/v2_crawler_assets_parser.py index e2cf8a4f..f2dbb172 100644 --- a/quantcdn/models/v2_crawler_assets_parser.py +++ b/quantcdn/models/v2_crawler_assets_parser.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/v2_crawler_request.py b/quantcdn/models/v2_crawler_request.py index 9eddb4e3..d2ac9c3d 100644 --- a/quantcdn/models/v2_crawler_request.py +++ b/quantcdn/models/v2_crawler_request.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/v2_crawler_run.py b/quantcdn/models/v2_crawler_run.py index 8aea434b..d2bfa897 100644 --- a/quantcdn/models/v2_crawler_run.py +++ b/quantcdn/models/v2_crawler_run.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/v2_crawler_schedule.py b/quantcdn/models/v2_crawler_schedule.py index 99e73085..62ea1c2f 100644 --- a/quantcdn/models/v2_crawler_schedule.py +++ b/quantcdn/models/v2_crawler_schedule.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. @@ -33,7 +33,7 @@ class V2CrawlerSchedule(BaseModel): crawler_uuid: Optional[StrictStr] = Field(default=None, description="Crawler UUID") project_id: StrictInt = Field(description="Project ID") crawler_last_run_id: StrictInt = Field(description="Last run ID") - schedule_cron_string: StrictStr = Field(description="Cron schedule string") + schedule_cron_string: StrictStr = Field(description="Standard Unix cron expression with 5 space-separated fields: minute, hour, day-of-month, month, day-of-week. Example: 0 2 * * * runs daily at 2 AM.") created_at: Optional[datetime] = Field(default=None, description="Creation timestamp") updated_at: Optional[datetime] = Field(default=None, description="Last update timestamp") __properties: ClassVar[List[str]] = ["id", "name", "crawler_config_id", "crawler_uuid", "project_id", "crawler_last_run_id", "schedule_cron_string", "created_at", "updated_at"] diff --git a/quantcdn/models/v2_crawler_schedule_request.py b/quantcdn/models/v2_crawler_schedule_request.py index cb991315..22e4c17b 100644 --- a/quantcdn/models/v2_crawler_schedule_request.py +++ b/quantcdn/models/v2_crawler_schedule_request.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. @@ -18,7 +18,7 @@ import json from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List +from typing import Any, ClassVar, Dict, List, Optional from typing import Optional, Set from typing_extensions import Self @@ -26,8 +26,8 @@ class V2CrawlerScheduleRequest(BaseModel): """ V2CrawlerScheduleRequest """ # noqa: E501 - name: StrictStr = Field(description="Schedule name") - schedule_cron_string: StrictStr = Field(description="Cron schedule string") + name: Optional[StrictStr] = Field(default=None, description="Schedule name. If not provided, defaults to 'Schedule {crawler_name}'.") + schedule_cron_string: StrictStr = Field(description="Standard Unix cron expression with 5 space-separated fields: minute, hour, day-of-month, month, day-of-week. Example: 0 2 * * * for daily at 2 AM.") __properties: ClassVar[List[str]] = ["name", "schedule_cron_string"] model_config = ConfigDict( diff --git a/quantcdn/models/v2_crawler_sitemap_inner.py b/quantcdn/models/v2_crawler_sitemap_inner.py index 93b798d0..9e5388cd 100644 --- a/quantcdn/models/v2_crawler_sitemap_inner.py +++ b/quantcdn/models/v2_crawler_sitemap_inner.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/v2_custom_header_request.py b/quantcdn/models/v2_custom_header_request.py index 233e71fd..567c406d 100644 --- a/quantcdn/models/v2_custom_header_request.py +++ b/quantcdn/models/v2_custom_header_request.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/v2_domain.py b/quantcdn/models/v2_domain.py index d8e6f894..708d2dab 100644 --- a/quantcdn/models/v2_domain.py +++ b/quantcdn/models/v2_domain.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/v2_domain_dns_go_live_records_inner.py b/quantcdn/models/v2_domain_dns_go_live_records_inner.py index c3c1fdd6..1c652a72 100644 --- a/quantcdn/models/v2_domain_dns_go_live_records_inner.py +++ b/quantcdn/models/v2_domain_dns_go_live_records_inner.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/v2_domain_dns_validation_records_inner.py b/quantcdn/models/v2_domain_dns_validation_records_inner.py index 870540cd..7b800144 100644 --- a/quantcdn/models/v2_domain_dns_validation_records_inner.py +++ b/quantcdn/models/v2_domain_dns_validation_records_inner.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/v2_domain_request.py b/quantcdn/models/v2_domain_request.py index 2337b63d..edb66ef4 100644 --- a/quantcdn/models/v2_domain_request.py +++ b/quantcdn/models/v2_domain_request.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/v2_error.py b/quantcdn/models/v2_error.py index 261ddc4f..5065c583 100644 --- a/quantcdn/models/v2_error.py +++ b/quantcdn/models/v2_error.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/v2_metric_data.py b/quantcdn/models/v2_metric_data.py new file mode 100644 index 00000000..0fd257b7 --- /dev/null +++ b/quantcdn/models/v2_metric_data.py @@ -0,0 +1,101 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt +from typing import Any, ClassVar, Dict, List, Union +from quantcdn.models.v2_metric_data_point import V2MetricDataPoint +from typing import Optional, Set +from typing_extensions import Self + +class V2MetricData(BaseModel): + """ + V2MetricData + """ # noqa: E501 + series: List[V2MetricDataPoint] = Field(description="Time series data points") + period_total: Union[StrictFloat, StrictInt] = Field(description="Total value for the period") + all_time_total: Union[StrictFloat, StrictInt] = Field(description="All-time total value") + period_average: Union[StrictFloat, StrictInt] = Field(description="Average value per time unit in the period") + __properties: ClassVar[List[str]] = ["series", "period_total", "all_time_total", "period_average"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of V2MetricData from a JSON string""" + return cls.from_dict(json.loads(json_str)) + + def to_dict(self) -> Dict[str, Any]: + """Return the dictionary representation of the model using alias. + + This has the following differences from calling pydantic's + `self.model_dump(by_alias=True)`: + + * `None` is only added to the output dict for nullable fields that + were set at model initialization. Other fields with value `None` + are ignored. + """ + excluded_fields: Set[str] = set([ + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + # override the default output from pydantic by calling `to_dict()` of each item in series (list) + _items = [] + if self.series: + for _item_series in self.series: + if _item_series: + _items.append(_item_series.to_dict()) + _dict['series'] = _items + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of V2MetricData from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "series": [V2MetricDataPoint.from_dict(_item) for _item in obj["series"]] if obj.get("series") is not None else None, + "period_total": obj.get("period_total"), + "all_time_total": obj.get("all_time_total"), + "period_average": obj.get("period_average") + }) + return _obj + + diff --git a/quantcdn/models/v2_metric_data_point.py b/quantcdn/models/v2_metric_data_point.py new file mode 100644 index 00000000..968bc1dc --- /dev/null +++ b/quantcdn/models/v2_metric_data_point.py @@ -0,0 +1,93 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt +from typing import Any, ClassVar, Dict, List, Union +from quantcdn.models.v2_metric_data_point_timestamp import V2MetricDataPointTimestamp +from typing import Optional, Set +from typing_extensions import Self + +class V2MetricDataPoint(BaseModel): + """ + V2MetricDataPoint + """ # noqa: E501 + timestamp: V2MetricDataPointTimestamp + value: Union[StrictFloat, StrictInt] = Field(description="Metric value at this timestamp") + __properties: ClassVar[List[str]] = ["timestamp", "value"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of V2MetricDataPoint from a JSON string""" + return cls.from_dict(json.loads(json_str)) + + def to_dict(self) -> Dict[str, Any]: + """Return the dictionary representation of the model using alias. + + This has the following differences from calling pydantic's + `self.model_dump(by_alias=True)`: + + * `None` is only added to the output dict for nullable fields that + were set at model initialization. Other fields with value `None` + are ignored. + """ + excluded_fields: Set[str] = set([ + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + # override the default output from pydantic by calling `to_dict()` of timestamp + if self.timestamp: + _dict['timestamp'] = self.timestamp.to_dict() + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of V2MetricDataPoint from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "timestamp": V2MetricDataPointTimestamp.from_dict(obj["timestamp"]) if obj.get("timestamp") is not None else None, + "value": obj.get("value") + }) + return _obj + + diff --git a/quantcdn/models/v2_metric_data_point_timestamp.py b/quantcdn/models/v2_metric_data_point_timestamp.py new file mode 100644 index 00000000..ea67792d --- /dev/null +++ b/quantcdn/models/v2_metric_data_point_timestamp.py @@ -0,0 +1,144 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import json +import pprint +from datetime import datetime +from pydantic import BaseModel, ConfigDict, Field, StrictInt, StrictStr, ValidationError, field_validator +from typing import Any, List, Optional +from pydantic import StrictStr, Field +from typing import Union, List, Set, Optional, Dict +from typing_extensions import Literal, Self + +V2METRICDATAPOINTTIMESTAMP_ONE_OF_SCHEMAS = ["datetime", "int"] + +class V2MetricDataPointTimestamp(BaseModel): + """ + Timestamp for this data point (format depends on timestamp_format parameter) + """ + # data type: datetime + oneof_schema_1_validator: Optional[datetime] = Field(default=None, description="ISO8601 timestamp") + # data type: int + oneof_schema_2_validator: Optional[StrictInt] = Field(default=None, description="Unix timestamp") + actual_instance: Optional[Union[datetime, int]] = None + one_of_schemas: Set[str] = { "datetime", "int" } + + model_config = ConfigDict( + validate_assignment=True, + protected_namespaces=(), + ) + + + def __init__(self, *args, **kwargs) -> None: + if args: + if len(args) > 1: + raise ValueError("If a position argument is used, only 1 is allowed to set `actual_instance`") + if kwargs: + raise ValueError("If a position argument is used, keyword arguments cannot be used.") + super().__init__(actual_instance=args[0]) + else: + super().__init__(**kwargs) + + @field_validator('actual_instance') + def actual_instance_must_validate_oneof(cls, v): + instance = V2MetricDataPointTimestamp.model_construct() + error_messages = [] + match = 0 + # validate data type: datetime + try: + instance.oneof_schema_1_validator = v + match += 1 + except (ValidationError, ValueError) as e: + error_messages.append(str(e)) + # validate data type: int + try: + instance.oneof_schema_2_validator = v + match += 1 + except (ValidationError, ValueError) as e: + error_messages.append(str(e)) + if match > 1: + # more than 1 match + raise ValueError("Multiple matches found when setting `actual_instance` in V2MetricDataPointTimestamp with oneOf schemas: datetime, int. Details: " + ", ".join(error_messages)) + elif match == 0: + # no match + raise ValueError("No match found when setting `actual_instance` in V2MetricDataPointTimestamp with oneOf schemas: datetime, int. Details: " + ", ".join(error_messages)) + else: + return v + + @classmethod + def from_dict(cls, obj: Union[str, Dict[str, Any]]) -> Self: + return cls.from_json(json.dumps(obj)) + + @classmethod + def from_json(cls, json_str: str) -> Self: + """Returns the object represented by the json string""" + instance = cls.model_construct() + error_messages = [] + match = 0 + + # deserialize data into datetime + try: + # validation + instance.oneof_schema_1_validator = json.loads(json_str) + # assign value to actual_instance + instance.actual_instance = instance.oneof_schema_1_validator + match += 1 + except (ValidationError, ValueError) as e: + error_messages.append(str(e)) + # deserialize data into int + try: + # validation + instance.oneof_schema_2_validator = json.loads(json_str) + # assign value to actual_instance + instance.actual_instance = instance.oneof_schema_2_validator + match += 1 + except (ValidationError, ValueError) as e: + error_messages.append(str(e)) + + if match > 1: + # more than 1 match + raise ValueError("Multiple matches found when deserializing the JSON string into V2MetricDataPointTimestamp with oneOf schemas: datetime, int. Details: " + ", ".join(error_messages)) + elif match == 0: + # no match + raise ValueError("No match found when deserializing the JSON string into V2MetricDataPointTimestamp with oneOf schemas: datetime, int. Details: " + ", ".join(error_messages)) + else: + return instance + + def to_json(self) -> str: + """Returns the JSON representation of the actual instance""" + if self.actual_instance is None: + return "null" + + if hasattr(self.actual_instance, "to_json") and callable(self.actual_instance.to_json): + return self.actual_instance.to_json() + else: + return json.dumps(self.actual_instance) + + def to_dict(self) -> Optional[Union[Dict[str, Any], datetime, int]]: + """Returns the dict representation of the actual instance""" + if self.actual_instance is None: + return None + + if hasattr(self.actual_instance, "to_dict") and callable(self.actual_instance.to_dict): + return self.actual_instance.to_dict() + else: + # primitive type + return self.actual_instance + + def to_str(self) -> str: + """Returns the string representation of the actual instance""" + return pprint.pformat(self.model_dump()) + + diff --git a/quantcdn/models/v2_metrics_meta.py b/quantcdn/models/v2_metrics_meta.py new file mode 100644 index 00000000..4945cfc7 --- /dev/null +++ b/quantcdn/models/v2_metrics_meta.py @@ -0,0 +1,116 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator +from typing import Any, ClassVar, Dict, List, Optional +from typing import Optional, Set +from typing_extensions import Self + +class V2MetricsMeta(BaseModel): + """ + V2MetricsMeta + """ # noqa: E501 + period: StrictStr = Field(description="The period type for this data") + granularity: StrictStr = Field(description="The granularity of data points") + start_time: StrictStr = Field(description="Start time of the data range (ISO8601 or Unix timestamp based on timestamp_format parameter)") + end_time: StrictStr = Field(description="End time of the data range (ISO8601 or Unix timestamp based on timestamp_format parameter)") + metrics: List[StrictStr] = Field(description="List of metrics included in the response") + domain: Optional[StrictStr] = Field(default=None, description="Domain filter applied (if any)") + __properties: ClassVar[List[str]] = ["period", "granularity", "start_time", "end_time", "metrics", "domain"] + + @field_validator('period') + def period_validate_enum(cls, value): + """Validates the enum""" + if value not in set(['hourly', 'daily', 'monthly']): + raise ValueError("must be one of enum values ('hourly', 'daily', 'monthly')") + return value + + @field_validator('granularity') + def granularity_validate_enum(cls, value): + """Validates the enum""" + if value not in set(['minute', 'day', 'month']): + raise ValueError("must be one of enum values ('minute', 'day', 'month')") + return value + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of V2MetricsMeta from a JSON string""" + return cls.from_dict(json.loads(json_str)) + + def to_dict(self) -> Dict[str, Any]: + """Return the dictionary representation of the model using alias. + + This has the following differences from calling pydantic's + `self.model_dump(by_alias=True)`: + + * `None` is only added to the output dict for nullable fields that + were set at model initialization. Other fields with value `None` + are ignored. + """ + excluded_fields: Set[str] = set([ + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + # set to None if domain (nullable) is None + # and model_fields_set contains the field + if self.domain is None and "domain" in self.model_fields_set: + _dict['domain'] = None + + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of V2MetricsMeta from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "period": obj.get("period"), + "granularity": obj.get("granularity"), + "start_time": obj.get("start_time"), + "end_time": obj.get("end_time"), + "metrics": obj.get("metrics"), + "domain": obj.get("domain") + }) + return _obj + + diff --git a/quantcdn/models/v2_metrics_response.py b/quantcdn/models/v2_metrics_response.py new file mode 100644 index 00000000..37cc2c39 --- /dev/null +++ b/quantcdn/models/v2_metrics_response.py @@ -0,0 +1,106 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, Field +from typing import Any, ClassVar, Dict, List +from quantcdn.models.v2_metric_data import V2MetricData +from quantcdn.models.v2_metrics_meta import V2MetricsMeta +from typing import Optional, Set +from typing_extensions import Self + +class V2MetricsResponse(BaseModel): + """ + V2MetricsResponse + """ # noqa: E501 + meta: V2MetricsMeta + data: Dict[str, V2MetricData] = Field(description="Metrics data keyed by metric name") + __properties: ClassVar[List[str]] = ["meta", "data"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of V2MetricsResponse from a JSON string""" + return cls.from_dict(json.loads(json_str)) + + def to_dict(self) -> Dict[str, Any]: + """Return the dictionary representation of the model using alias. + + This has the following differences from calling pydantic's + `self.model_dump(by_alias=True)`: + + * `None` is only added to the output dict for nullable fields that + were set at model initialization. Other fields with value `None` + are ignored. + """ + excluded_fields: Set[str] = set([ + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + # override the default output from pydantic by calling `to_dict()` of meta + if self.meta: + _dict['meta'] = self.meta.to_dict() + # override the default output from pydantic by calling `to_dict()` of each value in data (dict) + _field_dict = {} + if self.data: + for _key_data in self.data: + if self.data[_key_data]: + _field_dict[_key_data] = self.data[_key_data].to_dict() + _dict['data'] = _field_dict + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of V2MetricsResponse from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "meta": V2MetricsMeta.from_dict(obj["meta"]) if obj.get("meta") is not None else None, + "data": dict( + (_k, V2MetricData.from_dict(_v)) + for _k, _v in obj["data"].items() + ) + if obj.get("data") is not None + else None + }) + return _obj + + diff --git a/quantcdn/models/v2_organization.py b/quantcdn/models/v2_organization.py index a10455aa..db6a6599 100644 --- a/quantcdn/models/v2_organization.py +++ b/quantcdn/models/v2_organization.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/v2_organization_request.py b/quantcdn/models/v2_organization_request.py index b559cbac..1bd0ef19 100644 --- a/quantcdn/models/v2_organization_request.py +++ b/quantcdn/models/v2_organization_request.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/v2_project.py b/quantcdn/models/v2_project.py index f0b36fd5..8aca8fd7 100644 --- a/quantcdn/models/v2_project.py +++ b/quantcdn/models/v2_project.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/v2_project_request.py b/quantcdn/models/v2_project_request.py index 54b1bc9e..cc600177 100644 --- a/quantcdn/models/v2_project_request.py +++ b/quantcdn/models/v2_project_request.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/v2_rule.py b/quantcdn/models/v2_rule.py index da59caf6..7bce7bf6 100644 --- a/quantcdn/models/v2_rule.py +++ b/quantcdn/models/v2_rule.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. @@ -40,11 +40,14 @@ class V2Rule(BaseModel): ip: Optional[StrictStr] = Field(default=None, description="IP address") ip_is: Optional[List[StrictStr]] = Field(default=None, description="Allowed IP addresses") ip_is_not: Optional[List[StrictStr]] = Field(default=None, description="Excluded IP addresses") + asn: Optional[StrictStr] = Field(default=None, description="ASN filter type (asn_is, asn_is_not, any)") + asn_is: Optional[List[StrictStr]] = Field(default=None, description="Allowed AS numbers") + asn_is_not: Optional[List[StrictStr]] = Field(default=None, description="Excluded AS numbers") country: Optional[StrictStr] = Field(default=None, description="Country code") country_is: Optional[List[StrictStr]] = Field(default=None, description="Allowed countries") country_is_not: Optional[List[StrictStr]] = Field(default=None, description="Excluded countries") action: StrictStr = Field(description="Rule action") - __properties: ClassVar[List[str]] = ["name", "uuid", "rule_id", "weight", "url", "domain", "disabled", "only_with_cookie", "method", "method_is", "method_is_not", "ip", "ip_is", "ip_is_not", "country", "country_is", "country_is_not", "action"] + __properties: ClassVar[List[str]] = ["name", "uuid", "rule_id", "weight", "url", "domain", "disabled", "only_with_cookie", "method", "method_is", "method_is_not", "ip", "ip_is", "ip_is_not", "asn", "asn_is", "asn_is_not", "country", "country_is", "country_is_not", "action"] model_config = ConfigDict( populate_by_name=True, @@ -111,6 +114,9 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: "ip": obj.get("ip"), "ip_is": obj.get("ip_is"), "ip_is_not": obj.get("ip_is_not"), + "asn": obj.get("asn"), + "asn_is": obj.get("asn_is"), + "asn_is_not": obj.get("asn_is_not"), "country": obj.get("country"), "country_is": obj.get("country_is"), "country_is_not": obj.get("country_is_not"), diff --git a/quantcdn/models/v2_rule_auth.py b/quantcdn/models/v2_rule_auth.py index c3a8e583..65a819b4 100644 --- a/quantcdn/models/v2_rule_auth.py +++ b/quantcdn/models/v2_rule_auth.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. @@ -41,12 +41,15 @@ class V2RuleAuth(BaseModel): ip: Optional[StrictStr] = Field(default=None, description="IP address") ip_is: Optional[List[StrictStr]] = Field(default=None, description="Allowed IP addresses") ip_is_not: Optional[List[StrictStr]] = Field(default=None, description="Excluded IP addresses") + asn: Optional[StrictStr] = Field(default=None, description="ASN filter type (asn_is, asn_is_not, any)") + asn_is: Optional[List[StrictStr]] = Field(default=None, description="Allowed AS numbers") + asn_is_not: Optional[List[StrictStr]] = Field(default=None, description="Excluded AS numbers") country: Optional[StrictStr] = Field(default=None, description="Country code") country_is: Optional[List[StrictStr]] = Field(default=None, description="Allowed countries") country_is_not: Optional[List[StrictStr]] = Field(default=None, description="Excluded countries") action: StrictStr = Field(description="Rule action") action_config: V2RuleAuthAction - __properties: ClassVar[List[str]] = ["name", "uuid", "rule_id", "weight", "url", "domain", "disabled", "only_with_cookie", "method", "method_is", "method_is_not", "ip", "ip_is", "ip_is_not", "country", "country_is", "country_is_not", "action", "action_config"] + __properties: ClassVar[List[str]] = ["name", "uuid", "rule_id", "weight", "url", "domain", "disabled", "only_with_cookie", "method", "method_is", "method_is_not", "ip", "ip_is", "ip_is_not", "asn", "asn_is", "asn_is_not", "country", "country_is", "country_is_not", "action", "action_config"] model_config = ConfigDict( populate_by_name=True, @@ -116,6 +119,9 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: "ip": obj.get("ip"), "ip_is": obj.get("ip_is"), "ip_is_not": obj.get("ip_is_not"), + "asn": obj.get("asn"), + "asn_is": obj.get("asn_is"), + "asn_is_not": obj.get("asn_is_not"), "country": obj.get("country"), "country_is": obj.get("country_is"), "country_is_not": obj.get("country_is_not"), diff --git a/quantcdn/models/v2_rule_auth_action.py b/quantcdn/models/v2_rule_auth_action.py index d20aa286..b14334f9 100644 --- a/quantcdn/models/v2_rule_auth_action.py +++ b/quantcdn/models/v2_rule_auth_action.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/v2_rule_auth_request.py b/quantcdn/models/v2_rule_auth_request.py index 9930d9b7..a585dc3e 100644 --- a/quantcdn/models/v2_rule_auth_request.py +++ b/quantcdn/models/v2_rule_auth_request.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. @@ -41,9 +41,12 @@ class V2RuleAuthRequest(BaseModel): ip: Optional[StrictStr] = Field(default=None, description="IP filter type (ip_is, ip_is_not, any)") ip_is: Optional[List[StrictStr]] = Field(default=None, description="Allowed IP addresses") ip_is_not: Optional[List[StrictStr]] = Field(default=None, description="Excluded IP addresses") + asn: Optional[StrictStr] = Field(default=None, description="ASN filter type (asn_is, asn_is_not, any)") + asn_is: Optional[List[StrictStr]] = Field(default=None, description="Allowed AS numbers") + asn_is_not: Optional[List[StrictStr]] = Field(default=None, description="Excluded AS numbers") auth_user: StrictStr = Field(description="Authentication username") auth_pass: StrictStr = Field(description="Authentication password") - __properties: ClassVar[List[str]] = ["domain", "name", "uuid", "weight", "disabled", "url", "country", "country_is", "country_is_not", "method", "method_is", "method_is_not", "ip", "ip_is", "ip_is_not", "auth_user", "auth_pass"] + __properties: ClassVar[List[str]] = ["domain", "name", "uuid", "weight", "disabled", "url", "country", "country_is", "country_is_not", "method", "method_is", "method_is_not", "ip", "ip_is", "ip_is_not", "asn", "asn_is", "asn_is_not", "auth_user", "auth_pass"] model_config = ConfigDict( populate_by_name=True, @@ -111,6 +114,9 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: "ip": obj.get("ip"), "ip_is": obj.get("ip_is"), "ip_is_not": obj.get("ip_is_not"), + "asn": obj.get("asn"), + "asn_is": obj.get("asn_is"), + "asn_is_not": obj.get("asn_is_not"), "auth_user": obj.get("auth_user"), "auth_pass": obj.get("auth_pass") }) diff --git a/quantcdn/models/v2_rule_bot_challenge.py b/quantcdn/models/v2_rule_bot_challenge.py index b3828eca..a66d44e3 100644 --- a/quantcdn/models/v2_rule_bot_challenge.py +++ b/quantcdn/models/v2_rule_bot_challenge.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. @@ -41,12 +41,15 @@ class V2RuleBotChallenge(BaseModel): ip: Optional[StrictStr] = Field(default=None, description="IP address") ip_is: Optional[List[StrictStr]] = Field(default=None, description="Allowed IP addresses") ip_is_not: Optional[List[StrictStr]] = Field(default=None, description="Excluded IP addresses") + asn: Optional[StrictStr] = Field(default=None, description="ASN filter type (asn_is, asn_is_not, any)") + asn_is: Optional[List[StrictStr]] = Field(default=None, description="Allowed AS numbers") + asn_is_not: Optional[List[StrictStr]] = Field(default=None, description="Excluded AS numbers") country: Optional[StrictStr] = Field(default=None, description="Country code") country_is: Optional[List[StrictStr]] = Field(default=None, description="Allowed countries") country_is_not: Optional[List[StrictStr]] = Field(default=None, description="Excluded countries") action: StrictStr = Field(description="Rule action") action_config: V2RuleBotChallengeAction - __properties: ClassVar[List[str]] = ["name", "uuid", "rule_id", "weight", "url", "domain", "disabled", "only_with_cookie", "method", "method_is", "method_is_not", "ip", "ip_is", "ip_is_not", "country", "country_is", "country_is_not", "action", "action_config"] + __properties: ClassVar[List[str]] = ["name", "uuid", "rule_id", "weight", "url", "domain", "disabled", "only_with_cookie", "method", "method_is", "method_is_not", "ip", "ip_is", "ip_is_not", "asn", "asn_is", "asn_is_not", "country", "country_is", "country_is_not", "action", "action_config"] model_config = ConfigDict( populate_by_name=True, @@ -116,6 +119,9 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: "ip": obj.get("ip"), "ip_is": obj.get("ip_is"), "ip_is_not": obj.get("ip_is_not"), + "asn": obj.get("asn"), + "asn_is": obj.get("asn_is"), + "asn_is_not": obj.get("asn_is_not"), "country": obj.get("country"), "country_is": obj.get("country_is"), "country_is_not": obj.get("country_is_not"), diff --git a/quantcdn/models/v2_rule_bot_challenge_action.py b/quantcdn/models/v2_rule_bot_challenge_action.py index 403d0fd3..3f58fe61 100644 --- a/quantcdn/models/v2_rule_bot_challenge_action.py +++ b/quantcdn/models/v2_rule_bot_challenge_action.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/v2_rule_bot_challenge_request.py b/quantcdn/models/v2_rule_bot_challenge_request.py index d40e59ba..b081c91f 100644 --- a/quantcdn/models/v2_rule_bot_challenge_request.py +++ b/quantcdn/models/v2_rule_bot_challenge_request.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. @@ -41,10 +41,13 @@ class V2RuleBotChallengeRequest(BaseModel): ip: Optional[StrictStr] = Field(default=None, description="IP filter type (ip_is, ip_is_not, any)") ip_is: Optional[List[StrictStr]] = Field(default=None, description="Allowed IP addresses") ip_is_not: Optional[List[StrictStr]] = Field(default=None, description="Excluded IP addresses") + asn: Optional[StrictStr] = Field(default=None, description="ASN filter type (asn_is, asn_is_not, any)") + asn_is: Optional[List[StrictStr]] = Field(default=None, description="Allowed AS numbers") + asn_is_not: Optional[List[StrictStr]] = Field(default=None, description="Excluded AS numbers") robot_challenge_type: StrictStr = Field(description="Challenge type (invisible or checkbox)") robot_challenge_verification_ttl: Optional[StrictInt] = Field(default=10800, description="Verification TTL in seconds") robot_challenge_challenge_ttl: Optional[StrictInt] = Field(default=30, description="Challenge TTL in seconds") - __properties: ClassVar[List[str]] = ["domain", "name", "uuid", "weight", "disabled", "url", "country", "country_is", "country_is_not", "method", "method_is", "method_is_not", "ip", "ip_is", "ip_is_not", "robot_challenge_type", "robot_challenge_verification_ttl", "robot_challenge_challenge_ttl"] + __properties: ClassVar[List[str]] = ["domain", "name", "uuid", "weight", "disabled", "url", "country", "country_is", "country_is_not", "method", "method_is", "method_is_not", "ip", "ip_is", "ip_is_not", "asn", "asn_is", "asn_is_not", "robot_challenge_type", "robot_challenge_verification_ttl", "robot_challenge_challenge_ttl"] model_config = ConfigDict( populate_by_name=True, @@ -112,6 +115,9 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: "ip": obj.get("ip"), "ip_is": obj.get("ip_is"), "ip_is_not": obj.get("ip_is_not"), + "asn": obj.get("asn"), + "asn_is": obj.get("asn_is"), + "asn_is_not": obj.get("asn_is_not"), "robot_challenge_type": obj.get("robot_challenge_type"), "robot_challenge_verification_ttl": obj.get("robot_challenge_verification_ttl") if obj.get("robot_challenge_verification_ttl") is not None else 10800, "robot_challenge_challenge_ttl": obj.get("robot_challenge_challenge_ttl") if obj.get("robot_challenge_challenge_ttl") is not None else 30 diff --git a/quantcdn/models/v2_rule_content_filter.py b/quantcdn/models/v2_rule_content_filter.py index b98d17a1..26f57ae2 100644 --- a/quantcdn/models/v2_rule_content_filter.py +++ b/quantcdn/models/v2_rule_content_filter.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. @@ -41,12 +41,15 @@ class V2RuleContentFilter(BaseModel): ip: Optional[StrictStr] = Field(default=None, description="IP address") ip_is: Optional[List[StrictStr]] = Field(default=None, description="Allowed IP addresses") ip_is_not: Optional[List[StrictStr]] = Field(default=None, description="Excluded IP addresses") + asn: Optional[StrictStr] = Field(default=None, description="ASN filter type (asn_is, asn_is_not, any)") + asn_is: Optional[List[StrictStr]] = Field(default=None, description="Allowed AS numbers") + asn_is_not: Optional[List[StrictStr]] = Field(default=None, description="Excluded AS numbers") country: Optional[StrictStr] = Field(default=None, description="Country code") country_is: Optional[List[StrictStr]] = Field(default=None, description="Allowed countries") country_is_not: Optional[List[StrictStr]] = Field(default=None, description="Excluded countries") action: StrictStr = Field(description="Rule action") action_config: V2RuleContentFilterAction - __properties: ClassVar[List[str]] = ["name", "uuid", "rule_id", "weight", "url", "domain", "disabled", "only_with_cookie", "method", "method_is", "method_is_not", "ip", "ip_is", "ip_is_not", "country", "country_is", "country_is_not", "action", "action_config"] + __properties: ClassVar[List[str]] = ["name", "uuid", "rule_id", "weight", "url", "domain", "disabled", "only_with_cookie", "method", "method_is", "method_is_not", "ip", "ip_is", "ip_is_not", "asn", "asn_is", "asn_is_not", "country", "country_is", "country_is_not", "action", "action_config"] model_config = ConfigDict( populate_by_name=True, @@ -116,6 +119,9 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: "ip": obj.get("ip"), "ip_is": obj.get("ip_is"), "ip_is_not": obj.get("ip_is_not"), + "asn": obj.get("asn"), + "asn_is": obj.get("asn_is"), + "asn_is_not": obj.get("asn_is_not"), "country": obj.get("country"), "country_is": obj.get("country_is"), "country_is_not": obj.get("country_is_not"), diff --git a/quantcdn/models/v2_rule_content_filter_action.py b/quantcdn/models/v2_rule_content_filter_action.py index 763ce883..ee44e73a 100644 --- a/quantcdn/models/v2_rule_content_filter_action.py +++ b/quantcdn/models/v2_rule_content_filter_action.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/v2_rule_content_filter_request.py b/quantcdn/models/v2_rule_content_filter_request.py index 48fc0817..593088cd 100644 --- a/quantcdn/models/v2_rule_content_filter_request.py +++ b/quantcdn/models/v2_rule_content_filter_request.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. @@ -41,8 +41,11 @@ class V2RuleContentFilterRequest(BaseModel): ip: Optional[StrictStr] = Field(default=None, description="IP filter type (ip_is, ip_is_not, any)") ip_is: Optional[List[StrictStr]] = Field(default=None, description="Allowed IP addresses") ip_is_not: Optional[List[StrictStr]] = Field(default=None, description="Excluded IP addresses") + asn: Optional[StrictStr] = Field(default=None, description="ASN filter type (asn_is, asn_is_not, any)") + asn_is: Optional[List[StrictStr]] = Field(default=None, description="Allowed AS numbers") + asn_is_not: Optional[List[StrictStr]] = Field(default=None, description="Excluded AS numbers") fn_uuid: StrictStr = Field(description="Function UUID") - __properties: ClassVar[List[str]] = ["domain", "name", "uuid", "weight", "disabled", "url", "country", "country_is", "country_is_not", "method", "method_is", "method_is_not", "ip", "ip_is", "ip_is_not", "fn_uuid"] + __properties: ClassVar[List[str]] = ["domain", "name", "uuid", "weight", "disabled", "url", "country", "country_is", "country_is_not", "method", "method_is", "method_is_not", "ip", "ip_is", "ip_is_not", "asn", "asn_is", "asn_is_not", "fn_uuid"] model_config = ConfigDict( populate_by_name=True, @@ -110,6 +113,9 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: "ip": obj.get("ip"), "ip_is": obj.get("ip_is"), "ip_is_not": obj.get("ip_is_not"), + "asn": obj.get("asn"), + "asn_is": obj.get("asn_is"), + "asn_is_not": obj.get("asn_is_not"), "fn_uuid": obj.get("fn_uuid") }) return _obj diff --git a/quantcdn/models/v2_rule_custom_response.py b/quantcdn/models/v2_rule_custom_response.py index c00bbf62..1f0c4f86 100644 --- a/quantcdn/models/v2_rule_custom_response.py +++ b/quantcdn/models/v2_rule_custom_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. @@ -41,12 +41,15 @@ class V2RuleCustomResponse(BaseModel): ip: Optional[StrictStr] = Field(default=None, description="IP address") ip_is: Optional[List[StrictStr]] = Field(default=None, description="Allowed IP addresses") ip_is_not: Optional[List[StrictStr]] = Field(default=None, description="Excluded IP addresses") + asn: Optional[StrictStr] = Field(default=None, description="ASN filter type (asn_is, asn_is_not, any)") + asn_is: Optional[List[StrictStr]] = Field(default=None, description="Allowed AS numbers") + asn_is_not: Optional[List[StrictStr]] = Field(default=None, description="Excluded AS numbers") country: Optional[StrictStr] = Field(default=None, description="Country code") country_is: Optional[List[StrictStr]] = Field(default=None, description="Allowed countries") country_is_not: Optional[List[StrictStr]] = Field(default=None, description="Excluded countries") action: StrictStr = Field(description="Rule action") action_config: Optional[V2RuleCustomResponseAction] = None - __properties: ClassVar[List[str]] = ["name", "uuid", "rule_id", "weight", "url", "domain", "disabled", "only_with_cookie", "method", "method_is", "method_is_not", "ip", "ip_is", "ip_is_not", "country", "country_is", "country_is_not", "action", "action_config"] + __properties: ClassVar[List[str]] = ["name", "uuid", "rule_id", "weight", "url", "domain", "disabled", "only_with_cookie", "method", "method_is", "method_is_not", "ip", "ip_is", "ip_is_not", "asn", "asn_is", "asn_is_not", "country", "country_is", "country_is_not", "action", "action_config"] model_config = ConfigDict( populate_by_name=True, @@ -116,6 +119,9 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: "ip": obj.get("ip"), "ip_is": obj.get("ip_is"), "ip_is_not": obj.get("ip_is_not"), + "asn": obj.get("asn"), + "asn_is": obj.get("asn_is"), + "asn_is_not": obj.get("asn_is_not"), "country": obj.get("country"), "country_is": obj.get("country_is"), "country_is_not": obj.get("country_is_not"), diff --git a/quantcdn/models/v2_rule_custom_response_action.py b/quantcdn/models/v2_rule_custom_response_action.py index 52b43521..b7038189 100644 --- a/quantcdn/models/v2_rule_custom_response_action.py +++ b/quantcdn/models/v2_rule_custom_response_action.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/v2_rule_custom_response_request.py b/quantcdn/models/v2_rule_custom_response_request.py index ec64eb13..f543ef89 100644 --- a/quantcdn/models/v2_rule_custom_response_request.py +++ b/quantcdn/models/v2_rule_custom_response_request.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. @@ -41,11 +41,14 @@ class V2RuleCustomResponseRequest(BaseModel): ip: Optional[StrictStr] = Field(default=None, description="IP filter type (ip_is, ip_is_not, any)") ip_is: Optional[List[StrictStr]] = Field(default=None, description="Allowed IP addresses") ip_is_not: Optional[List[StrictStr]] = Field(default=None, description="Excluded IP addresses") + asn: Optional[StrictStr] = Field(default=None, description="ASN filter type (asn_is, asn_is_not, any)") + asn_is: Optional[List[StrictStr]] = Field(default=None, description="Allowed AS numbers") + asn_is_not: Optional[List[StrictStr]] = Field(default=None, description="Excluded AS numbers") custom_response_body: StrictStr = Field(description="Custom response body content") custom_response_status_code: Optional[StrictInt] = Field(default=200, description="HTTP status code for custom response") status_code: Optional[StrictInt] = Field(default=None, description="Legacy field for status code (deprecated)") body: Optional[StrictStr] = Field(default=None, description="Legacy field for response body (deprecated)") - __properties: ClassVar[List[str]] = ["domain", "name", "uuid", "weight", "disabled", "url", "country", "country_is", "country_is_not", "method", "method_is", "method_is_not", "ip", "ip_is", "ip_is_not", "custom_response_body", "custom_response_status_code", "status_code", "body"] + __properties: ClassVar[List[str]] = ["domain", "name", "uuid", "weight", "disabled", "url", "country", "country_is", "country_is_not", "method", "method_is", "method_is_not", "ip", "ip_is", "ip_is_not", "asn", "asn_is", "asn_is_not", "custom_response_body", "custom_response_status_code", "status_code", "body"] model_config = ConfigDict( populate_by_name=True, @@ -113,6 +116,9 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: "ip": obj.get("ip"), "ip_is": obj.get("ip_is"), "ip_is_not": obj.get("ip_is_not"), + "asn": obj.get("asn"), + "asn_is": obj.get("asn_is"), + "asn_is_not": obj.get("asn_is_not"), "custom_response_body": obj.get("custom_response_body"), "custom_response_status_code": obj.get("custom_response_status_code") if obj.get("custom_response_status_code") is not None else 200, "status_code": obj.get("status_code"), diff --git a/quantcdn/models/v2_rule_function.py b/quantcdn/models/v2_rule_function.py index 1d79e2f2..0164cfda 100644 --- a/quantcdn/models/v2_rule_function.py +++ b/quantcdn/models/v2_rule_function.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. @@ -41,12 +41,15 @@ class V2RuleFunction(BaseModel): ip: Optional[StrictStr] = Field(default=None, description="IP address") ip_is: Optional[List[StrictStr]] = Field(default=None, description="Allowed IP addresses") ip_is_not: Optional[List[StrictStr]] = Field(default=None, description="Excluded IP addresses") + asn: Optional[StrictStr] = Field(default=None, description="ASN filter type (asn_is, asn_is_not, any)") + asn_is: Optional[List[StrictStr]] = Field(default=None, description="Allowed AS numbers") + asn_is_not: Optional[List[StrictStr]] = Field(default=None, description="Excluded AS numbers") country: Optional[StrictStr] = Field(default=None, description="Country code") country_is: Optional[List[StrictStr]] = Field(default=None, description="Allowed countries") country_is_not: Optional[List[StrictStr]] = Field(default=None, description="Excluded countries") action: StrictStr = Field(description="Rule action") action_config: V2RuleFunctionAction - __properties: ClassVar[List[str]] = ["name", "uuid", "rule_id", "weight", "url", "domain", "disabled", "only_with_cookie", "method", "method_is", "method_is_not", "ip", "ip_is", "ip_is_not", "country", "country_is", "country_is_not", "action", "action_config"] + __properties: ClassVar[List[str]] = ["name", "uuid", "rule_id", "weight", "url", "domain", "disabled", "only_with_cookie", "method", "method_is", "method_is_not", "ip", "ip_is", "ip_is_not", "asn", "asn_is", "asn_is_not", "country", "country_is", "country_is_not", "action", "action_config"] model_config = ConfigDict( populate_by_name=True, @@ -116,6 +119,9 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: "ip": obj.get("ip"), "ip_is": obj.get("ip_is"), "ip_is_not": obj.get("ip_is_not"), + "asn": obj.get("asn"), + "asn_is": obj.get("asn_is"), + "asn_is_not": obj.get("asn_is_not"), "country": obj.get("country"), "country_is": obj.get("country_is"), "country_is_not": obj.get("country_is_not"), diff --git a/quantcdn/models/v2_rule_function_action.py b/quantcdn/models/v2_rule_function_action.py index 4ffbd587..81e278ca 100644 --- a/quantcdn/models/v2_rule_function_action.py +++ b/quantcdn/models/v2_rule_function_action.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/v2_rule_function_request.py b/quantcdn/models/v2_rule_function_request.py index 531cabfc..78a8319b 100644 --- a/quantcdn/models/v2_rule_function_request.py +++ b/quantcdn/models/v2_rule_function_request.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. @@ -41,8 +41,11 @@ class V2RuleFunctionRequest(BaseModel): ip: Optional[StrictStr] = Field(default=None, description="IP filter type (ip_is, ip_is_not, any)") ip_is: Optional[List[StrictStr]] = Field(default=None, description="Allowed IP addresses") ip_is_not: Optional[List[StrictStr]] = Field(default=None, description="Excluded IP addresses") + asn: Optional[StrictStr] = Field(default=None, description="ASN filter type (asn_is, asn_is_not, any)") + asn_is: Optional[List[StrictStr]] = Field(default=None, description="Allowed AS numbers") + asn_is_not: Optional[List[StrictStr]] = Field(default=None, description="Excluded AS numbers") fn_uuid: StrictStr = Field(description="Function UUID") - __properties: ClassVar[List[str]] = ["domain", "name", "uuid", "weight", "disabled", "url", "country", "country_is", "country_is_not", "method", "method_is", "method_is_not", "ip", "ip_is", "ip_is_not", "fn_uuid"] + __properties: ClassVar[List[str]] = ["domain", "name", "uuid", "weight", "disabled", "url", "country", "country_is", "country_is_not", "method", "method_is", "method_is_not", "ip", "ip_is", "ip_is_not", "asn", "asn_is", "asn_is_not", "fn_uuid"] model_config = ConfigDict( populate_by_name=True, @@ -110,6 +113,9 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: "ip": obj.get("ip"), "ip_is": obj.get("ip_is"), "ip_is_not": obj.get("ip_is_not"), + "asn": obj.get("asn"), + "asn_is": obj.get("asn_is"), + "asn_is_not": obj.get("asn_is_not"), "fn_uuid": obj.get("fn_uuid") }) return _obj diff --git a/quantcdn/models/v2_rule_header.py b/quantcdn/models/v2_rule_header.py index 61235524..06d23d52 100644 --- a/quantcdn/models/v2_rule_header.py +++ b/quantcdn/models/v2_rule_header.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. @@ -41,12 +41,15 @@ class V2RuleHeader(BaseModel): ip: Optional[StrictStr] = Field(default=None, description="IP address") ip_is: Optional[List[StrictStr]] = Field(default=None, description="Allowed IP addresses") ip_is_not: Optional[List[StrictStr]] = Field(default=None, description="Excluded IP addresses") + asn: Optional[StrictStr] = Field(default=None, description="ASN filter type (asn_is, asn_is_not, any)") + asn_is: Optional[List[StrictStr]] = Field(default=None, description="Allowed AS numbers") + asn_is_not: Optional[List[StrictStr]] = Field(default=None, description="Excluded AS numbers") country: Optional[StrictStr] = Field(default=None, description="Country code") country_is: Optional[List[StrictStr]] = Field(default=None, description="Allowed countries") country_is_not: Optional[List[StrictStr]] = Field(default=None, description="Excluded countries") action: StrictStr = Field(description="Rule action") action_config: V2RuleHeaderAction - __properties: ClassVar[List[str]] = ["name", "uuid", "rule_id", "weight", "url", "domain", "disabled", "only_with_cookie", "method", "method_is", "method_is_not", "ip", "ip_is", "ip_is_not", "country", "country_is", "country_is_not", "action", "action_config"] + __properties: ClassVar[List[str]] = ["name", "uuid", "rule_id", "weight", "url", "domain", "disabled", "only_with_cookie", "method", "method_is", "method_is_not", "ip", "ip_is", "ip_is_not", "asn", "asn_is", "asn_is_not", "country", "country_is", "country_is_not", "action", "action_config"] model_config = ConfigDict( populate_by_name=True, @@ -116,6 +119,9 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: "ip": obj.get("ip"), "ip_is": obj.get("ip_is"), "ip_is_not": obj.get("ip_is_not"), + "asn": obj.get("asn"), + "asn_is": obj.get("asn_is"), + "asn_is_not": obj.get("asn_is_not"), "country": obj.get("country"), "country_is": obj.get("country_is"), "country_is_not": obj.get("country_is_not"), diff --git a/quantcdn/models/v2_rule_header_action.py b/quantcdn/models/v2_rule_header_action.py index 9fbf4ef7..0cb608b9 100644 --- a/quantcdn/models/v2_rule_header_action.py +++ b/quantcdn/models/v2_rule_header_action.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/v2_rule_header_request.py b/quantcdn/models/v2_rule_header_request.py index 1422f003..279e11d6 100644 --- a/quantcdn/models/v2_rule_header_request.py +++ b/quantcdn/models/v2_rule_header_request.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. @@ -41,8 +41,11 @@ class V2RuleHeaderRequest(BaseModel): ip: Optional[StrictStr] = Field(default=None, description="IP filter type (ip_is, ip_is_not, any)") ip_is: Optional[List[StrictStr]] = Field(default=None, description="Allowed IP addresses") ip_is_not: Optional[List[StrictStr]] = Field(default=None, description="Excluded IP addresses") + asn: Optional[StrictStr] = Field(default=None, description="ASN filter type (asn_is, asn_is_not, any)") + asn_is: Optional[List[StrictStr]] = Field(default=None, description="Allowed AS numbers") + asn_is_not: Optional[List[StrictStr]] = Field(default=None, description="Excluded AS numbers") headers: Dict[str, StrictStr] = Field(description="Headers to set") - __properties: ClassVar[List[str]] = ["domain", "name", "uuid", "weight", "disabled", "url", "country", "country_is", "country_is_not", "method", "method_is", "method_is_not", "ip", "ip_is", "ip_is_not", "headers"] + __properties: ClassVar[List[str]] = ["domain", "name", "uuid", "weight", "disabled", "url", "country", "country_is", "country_is_not", "method", "method_is", "method_is_not", "ip", "ip_is", "ip_is_not", "asn", "asn_is", "asn_is_not", "headers"] model_config = ConfigDict( populate_by_name=True, @@ -110,6 +113,9 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: "ip": obj.get("ip"), "ip_is": obj.get("ip_is"), "ip_is_not": obj.get("ip_is_not"), + "asn": obj.get("asn"), + "asn_is": obj.get("asn_is"), + "asn_is_not": obj.get("asn_is_not"), "headers": obj.get("headers") }) return _obj diff --git a/quantcdn/models/v2_rule_proxy.py b/quantcdn/models/v2_rule_proxy.py index 2cb9dbc9..3a7834f1 100644 --- a/quantcdn/models/v2_rule_proxy.py +++ b/quantcdn/models/v2_rule_proxy.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. @@ -41,12 +41,15 @@ class V2RuleProxy(BaseModel): ip: Optional[StrictStr] = Field(default=None, description="IP address") ip_is: Optional[List[StrictStr]] = Field(default=None, description="Allowed IP addresses") ip_is_not: Optional[List[StrictStr]] = Field(default=None, description="Excluded IP addresses") + asn: Optional[StrictStr] = Field(default=None, description="ASN filter type (asn_is, asn_is_not, any)") + asn_is: Optional[List[StrictStr]] = Field(default=None, description="Allowed AS numbers") + asn_is_not: Optional[List[StrictStr]] = Field(default=None, description="Excluded AS numbers") country: Optional[StrictStr] = Field(default=None, description="Country code") country_is: Optional[List[StrictStr]] = Field(default=None, description="Allowed countries") country_is_not: Optional[List[StrictStr]] = Field(default=None, description="Excluded countries") action: StrictStr = Field(description="Rule action") action_config: V2RuleProxyAction - __properties: ClassVar[List[str]] = ["name", "uuid", "rule_id", "weight", "url", "domain", "disabled", "only_with_cookie", "method", "method_is", "method_is_not", "ip", "ip_is", "ip_is_not", "country", "country_is", "country_is_not", "action", "action_config"] + __properties: ClassVar[List[str]] = ["name", "uuid", "rule_id", "weight", "url", "domain", "disabled", "only_with_cookie", "method", "method_is", "method_is_not", "ip", "ip_is", "ip_is_not", "asn", "asn_is", "asn_is_not", "country", "country_is", "country_is_not", "action", "action_config"] model_config = ConfigDict( populate_by_name=True, @@ -116,6 +119,9 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: "ip": obj.get("ip"), "ip_is": obj.get("ip_is"), "ip_is_not": obj.get("ip_is_not"), + "asn": obj.get("asn"), + "asn_is": obj.get("asn_is"), + "asn_is_not": obj.get("asn_is_not"), "country": obj.get("country"), "country_is": obj.get("country_is"), "country_is_not": obj.get("country_is_not"), diff --git a/quantcdn/models/v2_rule_proxy_action.py b/quantcdn/models/v2_rule_proxy_action.py index f3782f34..004d7778 100644 --- a/quantcdn/models/v2_rule_proxy_action.py +++ b/quantcdn/models/v2_rule_proxy_action.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/v2_rule_proxy_action_notify_config.py b/quantcdn/models/v2_rule_proxy_action_notify_config.py index 8f1b87a3..690ca9fd 100644 --- a/quantcdn/models/v2_rule_proxy_action_notify_config.py +++ b/quantcdn/models/v2_rule_proxy_action_notify_config.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/v2_rule_proxy_action_quant_cloud_selection.py b/quantcdn/models/v2_rule_proxy_action_quant_cloud_selection.py index 7cc2a57b..ef1badb1 100644 --- a/quantcdn/models/v2_rule_proxy_action_quant_cloud_selection.py +++ b/quantcdn/models/v2_rule_proxy_action_quant_cloud_selection.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/v2_rule_proxy_request.py b/quantcdn/models/v2_rule_proxy_request.py index 309c4881..a69c69fb 100644 --- a/quantcdn/models/v2_rule_proxy_request.py +++ b/quantcdn/models/v2_rule_proxy_request.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. @@ -42,6 +42,9 @@ class V2RuleProxyRequest(BaseModel): ip: Optional[StrictStr] = Field(default=None, description="IP filter type (ip_is, ip_is_not, any)") ip_is: Optional[List[StrictStr]] = Field(default=None, description="Allowed IP addresses") ip_is_not: Optional[List[StrictStr]] = Field(default=None, description="Excluded IP addresses") + asn: Optional[StrictStr] = Field(default=None, description="ASN filter type (asn_is, asn_is_not, any)") + asn_is: Optional[List[StrictStr]] = Field(default=None, description="Allowed AS numbers") + asn_is_not: Optional[List[StrictStr]] = Field(default=None, description="Excluded AS numbers") to: StrictStr = Field(description="Target URL to proxy to") host: Optional[StrictStr] = Field(default=None, description="Host header override") auth_user: Optional[StrictStr] = Field(default='', description="Basic auth username") @@ -67,7 +70,7 @@ class V2RuleProxyRequest(BaseModel): application_port: Optional[StrictInt] = Field(default=None, description="Quant Cloud application port (required when application_proxy is true)") static_error_page: Optional[StrictStr] = Field(default=None, description="Static error page content (HTML) to serve on origin errors") static_error_page_status_codes: Optional[List[StrictStr]] = Field(default=None, description="Origin status codes that trigger static error page") - __properties: ClassVar[List[str]] = ["domain", "name", "uuid", "weight", "disabled", "url", "country", "country_is", "country_is_not", "method", "method_is", "method_is_not", "ip", "ip_is", "ip_is_not", "to", "host", "auth_user", "auth_pass", "disable_ssl_verify", "cache_lifetime", "only_proxy_404", "inject_headers", "proxy_strip_headers", "proxy_strip_request_headers", "origin_timeout", "failover_mode", "failover_origin_ttfb", "failover_origin_status_codes", "failover_lifetime", "proxy_alert_enabled", "waf_enabled", "waf_config", "application_proxy", "application_name", "application_environment", "application_container", "application_port", "static_error_page", "static_error_page_status_codes"] + __properties: ClassVar[List[str]] = ["domain", "name", "uuid", "weight", "disabled", "url", "country", "country_is", "country_is_not", "method", "method_is", "method_is_not", "ip", "ip_is", "ip_is_not", "asn", "asn_is", "asn_is_not", "to", "host", "auth_user", "auth_pass", "disable_ssl_verify", "cache_lifetime", "only_proxy_404", "inject_headers", "proxy_strip_headers", "proxy_strip_request_headers", "origin_timeout", "failover_mode", "failover_origin_ttfb", "failover_origin_status_codes", "failover_lifetime", "proxy_alert_enabled", "waf_enabled", "waf_config", "application_proxy", "application_name", "application_environment", "application_container", "application_port", "static_error_page", "static_error_page_status_codes"] model_config = ConfigDict( populate_by_name=True, @@ -158,6 +161,9 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: "ip": obj.get("ip"), "ip_is": obj.get("ip_is"), "ip_is_not": obj.get("ip_is_not"), + "asn": obj.get("asn"), + "asn_is": obj.get("asn_is"), + "asn_is_not": obj.get("asn_is_not"), "to": obj.get("to"), "host": obj.get("host"), "auth_user": obj.get("auth_user") if obj.get("auth_user") is not None else '', diff --git a/quantcdn/models/v2_rule_redirect.py b/quantcdn/models/v2_rule_redirect.py index 49834882..20f6d4be 100644 --- a/quantcdn/models/v2_rule_redirect.py +++ b/quantcdn/models/v2_rule_redirect.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. @@ -41,12 +41,15 @@ class V2RuleRedirect(BaseModel): ip: Optional[StrictStr] = Field(default=None, description="IP address") ip_is: Optional[List[StrictStr]] = Field(default=None, description="Allowed IP addresses") ip_is_not: Optional[List[StrictStr]] = Field(default=None, description="Excluded IP addresses") + asn: Optional[StrictStr] = Field(default=None, description="ASN filter type (asn_is, asn_is_not, any)") + asn_is: Optional[List[StrictStr]] = Field(default=None, description="Allowed AS numbers") + asn_is_not: Optional[List[StrictStr]] = Field(default=None, description="Excluded AS numbers") country: Optional[StrictStr] = Field(default=None, description="Country code") country_is: Optional[List[StrictStr]] = Field(default=None, description="Allowed countries") country_is_not: Optional[List[StrictStr]] = Field(default=None, description="Excluded countries") action: StrictStr = Field(description="Rule action") action_config: Optional[V2RuleRedirectAction] = None - __properties: ClassVar[List[str]] = ["name", "uuid", "rule_id", "weight", "url", "domain", "disabled", "only_with_cookie", "method", "method_is", "method_is_not", "ip", "ip_is", "ip_is_not", "country", "country_is", "country_is_not", "action", "action_config"] + __properties: ClassVar[List[str]] = ["name", "uuid", "rule_id", "weight", "url", "domain", "disabled", "only_with_cookie", "method", "method_is", "method_is_not", "ip", "ip_is", "ip_is_not", "asn", "asn_is", "asn_is_not", "country", "country_is", "country_is_not", "action", "action_config"] model_config = ConfigDict( populate_by_name=True, @@ -116,6 +119,9 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: "ip": obj.get("ip"), "ip_is": obj.get("ip_is"), "ip_is_not": obj.get("ip_is_not"), + "asn": obj.get("asn"), + "asn_is": obj.get("asn_is"), + "asn_is_not": obj.get("asn_is_not"), "country": obj.get("country"), "country_is": obj.get("country_is"), "country_is_not": obj.get("country_is_not"), diff --git a/quantcdn/models/v2_rule_redirect_action.py b/quantcdn/models/v2_rule_redirect_action.py index b17a02f3..4f81fa9c 100644 --- a/quantcdn/models/v2_rule_redirect_action.py +++ b/quantcdn/models/v2_rule_redirect_action.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/v2_rule_redirect_request.py b/quantcdn/models/v2_rule_redirect_request.py index 4d2a70e4..5b07e359 100644 --- a/quantcdn/models/v2_rule_redirect_request.py +++ b/quantcdn/models/v2_rule_redirect_request.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. @@ -41,9 +41,12 @@ class V2RuleRedirectRequest(BaseModel): ip: Optional[StrictStr] = Field(default=None, description="IP filter type (ip_is, ip_is_not, any)") ip_is: Optional[List[StrictStr]] = Field(default=None, description="Allowed IP addresses") ip_is_not: Optional[List[StrictStr]] = Field(default=None, description="Excluded IP addresses") + asn: Optional[StrictStr] = Field(default=None, description="ASN filter type (asn_is, asn_is_not, any)") + asn_is: Optional[List[StrictStr]] = Field(default=None, description="Allowed AS numbers") + asn_is_not: Optional[List[StrictStr]] = Field(default=None, description="Excluded AS numbers") redirect_to: StrictStr = Field(description="Redirect destination URL") redirect_code: Optional[StrictStr] = Field(default='301', description="HTTP status code for redirect") - __properties: ClassVar[List[str]] = ["domain", "name", "uuid", "weight", "disabled", "url", "country", "country_is", "country_is_not", "method", "method_is", "method_is_not", "ip", "ip_is", "ip_is_not", "redirect_to", "redirect_code"] + __properties: ClassVar[List[str]] = ["domain", "name", "uuid", "weight", "disabled", "url", "country", "country_is", "country_is_not", "method", "method_is", "method_is_not", "ip", "ip_is", "ip_is_not", "asn", "asn_is", "asn_is_not", "redirect_to", "redirect_code"] model_config = ConfigDict( populate_by_name=True, @@ -111,6 +114,9 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: "ip": obj.get("ip"), "ip_is": obj.get("ip_is"), "ip_is_not": obj.get("ip_is_not"), + "asn": obj.get("asn"), + "asn_is": obj.get("asn_is"), + "asn_is_not": obj.get("asn_is_not"), "redirect_to": obj.get("redirect_to"), "redirect_code": obj.get("redirect_code") if obj.get("redirect_code") is not None else '301' }) diff --git a/quantcdn/models/v2_rule_request.py b/quantcdn/models/v2_rule_request.py index b1a51fb0..7394181c 100644 --- a/quantcdn/models/v2_rule_request.py +++ b/quantcdn/models/v2_rule_request.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. @@ -41,7 +41,10 @@ class V2RuleRequest(BaseModel): ip: Optional[StrictStr] = Field(default=None, description="IP filter type (ip_is, ip_is_not, any)") ip_is: Optional[List[StrictStr]] = Field(default=None, description="Allowed IP addresses") ip_is_not: Optional[List[StrictStr]] = Field(default=None, description="Excluded IP addresses") - __properties: ClassVar[List[str]] = ["domain", "name", "uuid", "weight", "disabled", "url", "country", "country_is", "country_is_not", "method", "method_is", "method_is_not", "ip", "ip_is", "ip_is_not"] + asn: Optional[StrictStr] = Field(default=None, description="ASN filter type (asn_is, asn_is_not, any)") + asn_is: Optional[List[StrictStr]] = Field(default=None, description="Allowed AS numbers") + asn_is_not: Optional[List[StrictStr]] = Field(default=None, description="Excluded AS numbers") + __properties: ClassVar[List[str]] = ["domain", "name", "uuid", "weight", "disabled", "url", "country", "country_is", "country_is_not", "method", "method_is", "method_is_not", "ip", "ip_is", "ip_is_not", "asn", "asn_is", "asn_is_not"] model_config = ConfigDict( populate_by_name=True, @@ -108,7 +111,10 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: "method_is_not": obj.get("method_is_not"), "ip": obj.get("ip"), "ip_is": obj.get("ip_is"), - "ip_is_not": obj.get("ip_is_not") + "ip_is_not": obj.get("ip_is_not"), + "asn": obj.get("asn"), + "asn_is": obj.get("asn_is"), + "asn_is_not": obj.get("asn_is_not") }) return _obj diff --git a/quantcdn/models/v2_rule_serve_static.py b/quantcdn/models/v2_rule_serve_static.py index 487f4fe2..e5b18957 100644 --- a/quantcdn/models/v2_rule_serve_static.py +++ b/quantcdn/models/v2_rule_serve_static.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. @@ -41,12 +41,15 @@ class V2RuleServeStatic(BaseModel): ip: Optional[StrictStr] = Field(default=None, description="IP address") ip_is: Optional[List[StrictStr]] = Field(default=None, description="Allowed IP addresses") ip_is_not: Optional[List[StrictStr]] = Field(default=None, description="Excluded IP addresses") + asn: Optional[StrictStr] = Field(default=None, description="ASN filter type (asn_is, asn_is_not, any)") + asn_is: Optional[List[StrictStr]] = Field(default=None, description="Allowed AS numbers") + asn_is_not: Optional[List[StrictStr]] = Field(default=None, description="Excluded AS numbers") country: Optional[StrictStr] = Field(default=None, description="Country code") country_is: Optional[List[StrictStr]] = Field(default=None, description="Allowed countries") country_is_not: Optional[List[StrictStr]] = Field(default=None, description="Excluded countries") action: StrictStr = Field(description="Rule action") action_config: V2RuleServeStaticAction - __properties: ClassVar[List[str]] = ["name", "uuid", "rule_id", "weight", "url", "domain", "disabled", "only_with_cookie", "method", "method_is", "method_is_not", "ip", "ip_is", "ip_is_not", "country", "country_is", "country_is_not", "action", "action_config"] + __properties: ClassVar[List[str]] = ["name", "uuid", "rule_id", "weight", "url", "domain", "disabled", "only_with_cookie", "method", "method_is", "method_is_not", "ip", "ip_is", "ip_is_not", "asn", "asn_is", "asn_is_not", "country", "country_is", "country_is_not", "action", "action_config"] model_config = ConfigDict( populate_by_name=True, @@ -116,6 +119,9 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: "ip": obj.get("ip"), "ip_is": obj.get("ip_is"), "ip_is_not": obj.get("ip_is_not"), + "asn": obj.get("asn"), + "asn_is": obj.get("asn_is"), + "asn_is_not": obj.get("asn_is_not"), "country": obj.get("country"), "country_is": obj.get("country_is"), "country_is_not": obj.get("country_is_not"), diff --git a/quantcdn/models/v2_rule_serve_static_action.py b/quantcdn/models/v2_rule_serve_static_action.py index c9943ee7..66a6f8a5 100644 --- a/quantcdn/models/v2_rule_serve_static_action.py +++ b/quantcdn/models/v2_rule_serve_static_action.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/v2_rule_serve_static_request.py b/quantcdn/models/v2_rule_serve_static_request.py index 39f22d09..a6d4a4dc 100644 --- a/quantcdn/models/v2_rule_serve_static_request.py +++ b/quantcdn/models/v2_rule_serve_static_request.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. @@ -41,8 +41,11 @@ class V2RuleServeStaticRequest(BaseModel): ip: Optional[StrictStr] = Field(default=None, description="IP filter type (ip_is, ip_is_not, any)") ip_is: Optional[List[StrictStr]] = Field(default=None, description="Allowed IP addresses") ip_is_not: Optional[List[StrictStr]] = Field(default=None, description="Excluded IP addresses") + asn: Optional[StrictStr] = Field(default=None, description="ASN filter type (asn_is, asn_is_not, any)") + asn_is: Optional[List[StrictStr]] = Field(default=None, description="Allowed AS numbers") + asn_is_not: Optional[List[StrictStr]] = Field(default=None, description="Excluded AS numbers") static_file_path: StrictStr = Field(description="Path to the static file to serve") - __properties: ClassVar[List[str]] = ["domain", "name", "uuid", "weight", "disabled", "url", "country", "country_is", "country_is_not", "method", "method_is", "method_is_not", "ip", "ip_is", "ip_is_not", "static_file_path"] + __properties: ClassVar[List[str]] = ["domain", "name", "uuid", "weight", "disabled", "url", "country", "country_is", "country_is_not", "method", "method_is", "method_is_not", "ip", "ip_is", "ip_is_not", "asn", "asn_is", "asn_is_not", "static_file_path"] model_config = ConfigDict( populate_by_name=True, @@ -110,6 +113,9 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: "ip": obj.get("ip"), "ip_is": obj.get("ip_is"), "ip_is_not": obj.get("ip_is_not"), + "asn": obj.get("asn"), + "asn_is": obj.get("asn_is"), + "asn_is_not": obj.get("asn_is_not"), "static_file_path": obj.get("static_file_path") }) return _obj diff --git a/quantcdn/models/v2_secret_store.py b/quantcdn/models/v2_secret_store.py index 73e40562..e187fb8c 100644 --- a/quantcdn/models/v2_secret_store.py +++ b/quantcdn/models/v2_secret_store.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/v2_secret_store_request.py b/quantcdn/models/v2_secret_store_request.py index 28581394..87b9e60b 100644 --- a/quantcdn/models/v2_secret_store_request.py +++ b/quantcdn/models/v2_secret_store_request.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/v2_store.py b/quantcdn/models/v2_store.py index 9e1b7cd6..5c2bea4b 100644 --- a/quantcdn/models/v2_store.py +++ b/quantcdn/models/v2_store.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/v2_store_item.py b/quantcdn/models/v2_store_item.py index ddac216d..9ad3b73a 100644 --- a/quantcdn/models/v2_store_item.py +++ b/quantcdn/models/v2_store_item.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/v2_store_item_request.py b/quantcdn/models/v2_store_item_request.py index b4445e0d..7b65035d 100644 --- a/quantcdn/models/v2_store_item_request.py +++ b/quantcdn/models/v2_store_item_request.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/v2_store_item_update_request.py b/quantcdn/models/v2_store_item_update_request.py index d8f780eb..91ceae11 100644 --- a/quantcdn/models/v2_store_item_update_request.py +++ b/quantcdn/models/v2_store_item_update_request.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/v2_store_items_list_response.py b/quantcdn/models/v2_store_items_list_response.py index 808270bc..7323eb6f 100644 --- a/quantcdn/models/v2_store_items_list_response.py +++ b/quantcdn/models/v2_store_items_list_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/v2_store_request.py b/quantcdn/models/v2_store_request.py index 5fc5ce95..43730a81 100644 --- a/quantcdn/models/v2_store_request.py +++ b/quantcdn/models/v2_store_request.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/validate_compose200_response.py b/quantcdn/models/validate_compose200_response.py index 165ee3eb..55a8636a 100644 --- a/quantcdn/models/validate_compose200_response.py +++ b/quantcdn/models/validate_compose200_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/validate_compose422_response.py b/quantcdn/models/validate_compose422_response.py index 254ca7fb..030b73a8 100644 --- a/quantcdn/models/validate_compose422_response.py +++ b/quantcdn/models/validate_compose422_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/validate_compose_request.py b/quantcdn/models/validate_compose_request.py index 6fdd3bc5..1db5fe03 100644 --- a/quantcdn/models/validate_compose_request.py +++ b/quantcdn/models/validate_compose_request.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/variable.py b/quantcdn/models/variable.py index 313d250e..0c67e07d 100644 --- a/quantcdn/models/variable.py +++ b/quantcdn/models/variable.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/volume.py b/quantcdn/models/volume.py index c8f6f2ba..68b4b449 100644 --- a/quantcdn/models/volume.py +++ b/quantcdn/models/volume.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/waf_config.py b/quantcdn/models/waf_config.py index d67d39d2..05f72ded 100644 --- a/quantcdn/models/waf_config.py +++ b/quantcdn/models/waf_config.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/waf_config_block_lists.py b/quantcdn/models/waf_config_block_lists.py index 84f23615..f18d9dd8 100644 --- a/quantcdn/models/waf_config_block_lists.py +++ b/quantcdn/models/waf_config_block_lists.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/waf_config_httpbl.py b/quantcdn/models/waf_config_httpbl.py index d3fed9bd..1795498a 100644 --- a/quantcdn/models/waf_config_httpbl.py +++ b/quantcdn/models/waf_config_httpbl.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/models/waf_config_thresholds_inner.py b/quantcdn/models/waf_config_thresholds_inner.py index 2cb69292..3c61b04a 100644 --- a/quantcdn/models/waf_config_thresholds_inner.py +++ b/quantcdn/models/waf_config_thresholds_inner.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/quantcdn/rest.py b/quantcdn/rest.py index 9269c3dd..32c7ccf3 100644 --- a/quantcdn/rest.py +++ b/quantcdn/rest.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/setup.py b/setup.py index 5e8461b2..c1dc9e58 100644 --- a/setup.py +++ b/setup.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. @@ -21,7 +21,7 @@ # prerequisite: setuptools # http://pypi.python.org/pypi/setuptools NAME = "quantcdn-client" -VERSION = "4.9.0" +VERSION = "4.20.0" PYTHON_REQUIRES = ">= 3.9" REQUIRES = [ "urllib3 >= 2.1.0, < 3.0.0", diff --git a/test/test_ai_agents_api.py b/test/test_ai_agents_api.py index 32c0d6ab..421ebc7b 100644 --- a/test/test_ai_agents_api.py +++ b/test/test_ai_agents_api.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. @@ -40,6 +40,13 @@ def test_create_ai_agent(self) -> None: """ pass + def test_delete_agent_overlay(self) -> None: + """Test case for delete_agent_overlay + + Delete Agent Overlay + """ + pass + def test_delete_ai_agent(self) -> None: """Test case for delete_ai_agent @@ -47,6 +54,13 @@ def test_delete_ai_agent(self) -> None: """ pass + def test_get_agent_overlay(self) -> None: + """Test case for get_agent_overlay + + Get Agent Overlay + """ + pass + def test_get_ai_agent(self) -> None: """Test case for get_ai_agent @@ -68,6 +82,13 @@ def test_update_ai_agent(self) -> None: """ pass + def test_upsert_agent_overlay(self) -> None: + """Test case for upsert_agent_overlay + + Upsert Agent Overlay + """ + pass + if __name__ == '__main__': unittest.main() diff --git a/test/test_ai_monitoring_api.py b/test/test_ai_api.py similarity index 65% rename from test/test_ai_monitoring_api.py rename to test/test_ai_api.py index d5895901..b7d1ae07 100644 --- a/test/test_ai_monitoring_api.py +++ b/test/test_ai_api.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. @@ -14,14 +14,14 @@ import unittest -from quantcdn.api.ai_monitoring_api import AIMonitoringApi +from quantcdn.api.ai_api import AIApi -class TestAIMonitoringApi(unittest.TestCase): - """AIMonitoringApi unit test stubs""" +class TestAIApi(unittest.TestCase): + """AIApi unit test stubs""" def setUp(self) -> None: - self.api = AIMonitoringApi() + self.api = AIApi() def tearDown(self) -> None: pass @@ -29,7 +29,7 @@ def tearDown(self) -> None: def test_get_ai_usage_stats(self) -> None: """Test case for get_ai_usage_stats - Get AI usage statistics + Organisation AI usage breakdown (subscription page parity) """ pass diff --git a/test/test_ai_custom_tools_api.py b/test/test_ai_custom_tools_api.py index ccc184ad..fa06329a 100644 --- a/test/test_ai_custom_tools_api.py +++ b/test/test_ai_custom_tools_api.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. @@ -40,6 +40,13 @@ def test_delete_custom_tool(self) -> None: """ pass + def test_get_custom_tool(self) -> None: + """Test case for get_custom_tool + + Get Custom Tool + """ + pass + def test_list_custom_tools(self) -> None: """Test case for list_custom_tools diff --git a/test/test_ai_file_storage_api.py b/test/test_ai_file_storage_api.py index ca714edd..5f771059 100644 --- a/test/test_ai_file_storage_api.py +++ b/test/test_ai_file_storage_api.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_ai_filter_policies_api.py b/test/test_ai_filter_policies_api.py new file mode 100644 index 00000000..4c34b8b5 --- /dev/null +++ b/test/test_ai_filter_policies_api.py @@ -0,0 +1,80 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +import unittest + +from quantcdn.api.ai_filter_policies_api import AIFilterPoliciesApi + + +class TestAIFilterPoliciesApi(unittest.TestCase): + """AIFilterPoliciesApi unit test stubs""" + + def setUp(self) -> None: + self.api = AIFilterPoliciesApi() + + def tearDown(self) -> None: + pass + + def test_create_filter_policy(self) -> None: + """Test case for create_filter_policy + + Create an AI filter policy for an organisation + """ + pass + + def test_delete_filter_policy(self) -> None: + """Test case for delete_filter_policy + + Delete a specific AI filter policy + """ + pass + + def test_disable_filter_policy(self) -> None: + """Test case for disable_filter_policy + + Disable a specific AI filter policy + """ + pass + + def test_enable_filter_policy(self) -> None: + """Test case for enable_filter_policy + + Enable a specific AI filter policy + """ + pass + + def test_get_filter_policy(self) -> None: + """Test case for get_filter_policy + + Get a specific AI filter policy + """ + pass + + def test_list_filter_policies(self) -> None: + """Test case for list_filter_policies + + List AI filter policies for an organisation + """ + pass + + def test_update_filter_policy(self) -> None: + """Test case for update_filter_policy + + Update a specific AI filter policy + """ + pass + + +if __name__ == '__main__': + unittest.main() diff --git a/test/test_ai_governance_api.py b/test/test_ai_governance_api.py new file mode 100644 index 00000000..52a9ab2d --- /dev/null +++ b/test/test_ai_governance_api.py @@ -0,0 +1,52 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +import unittest + +from quantcdn.api.ai_governance_api import AIGovernanceApi + + +class TestAIGovernanceApi(unittest.TestCase): + """AIGovernanceApi unit test stubs""" + + def setUp(self) -> None: + self.api = AIGovernanceApi() + + def tearDown(self) -> None: + pass + + def test_get_governance_config(self) -> None: + """Test case for get_governance_config + + Get AI governance configuration for an organisation + """ + pass + + def test_get_governance_spend(self) -> None: + """Test case for get_governance_spend + + Get AI spend summary for an organisation + """ + pass + + def test_update_governance_config(self) -> None: + """Test case for update_governance_config + + Update AI governance configuration for an organisation + """ + pass + + +if __name__ == '__main__': + unittest.main() diff --git a/test/test_ai_inference_api.py b/test/test_ai_inference_api.py index 941fd744..4dbae82b 100644 --- a/test/test_ai_inference_api.py +++ b/test/test_ai_inference_api.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_ai_models_api.py b/test/test_ai_models_api.py index 9ca78922..35ff388e 100644 --- a/test/test_ai_models_api.py +++ b/test/test_ai_models_api.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_ai_orchestrations_api.py b/test/test_ai_orchestrations_api.py new file mode 100644 index 00000000..283928e1 --- /dev/null +++ b/test/test_ai_orchestrations_api.py @@ -0,0 +1,94 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +import unittest + +from quantcdn.api.ai_orchestrations_api import AIOrchestrationsApi + + +class TestAIOrchestrationsApi(unittest.TestCase): + """AIOrchestrationsApi unit test stubs""" + + def setUp(self) -> None: + self.api = AIOrchestrationsApi() + + def tearDown(self) -> None: + pass + + def test_cancel_orchestration(self) -> None: + """Test case for cancel_orchestration + + Cancel Durable Orchestration + """ + pass + + def test_create_orchestration(self) -> None: + """Test case for create_orchestration + + Create Durable Orchestration + """ + pass + + def test_delete_orchestration(self) -> None: + """Test case for delete_orchestration + + Delete Durable Orchestration + """ + pass + + def test_get_orchestration(self) -> None: + """Test case for get_orchestration + + Get Durable Orchestration + """ + pass + + def test_list_orchestration_batches(self) -> None: + """Test case for list_orchestration_batches + + List Orchestration Batches + """ + pass + + def test_list_orchestrations(self) -> None: + """Test case for list_orchestrations + + List Durable Orchestrations + """ + pass + + def test_pause_orchestration(self) -> None: + """Test case for pause_orchestration + + Pause Durable Orchestration + """ + pass + + def test_resume_orchestration(self) -> None: + """Test case for resume_orchestration + + Resume Durable Orchestration + """ + pass + + def test_start_orchestration(self) -> None: + """Test case for start_orchestration + + Start Durable Orchestration + """ + pass + + +if __name__ == '__main__': + unittest.main() diff --git a/test/test_ai_search_api.py b/test/test_ai_search_api.py new file mode 100644 index 00000000..b37370b4 --- /dev/null +++ b/test/test_ai_search_api.py @@ -0,0 +1,150 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +import unittest + +from quantcdn.api.ai_search_api import AISearchApi + + +class TestAISearchApi(unittest.TestCase): + """AISearchApi unit test stubs""" + + def setUp(self) -> None: + self.api = AISearchApi() + + def tearDown(self) -> None: + pass + + def test_ai_search_chat(self) -> None: + """Test case for ai_search_chat + + RAG chat with AI Search content + """ + pass + + def test_ai_search_delete_pages(self) -> None: + """Test case for ai_search_delete_pages + + Delete pages by URLs or patterns + """ + pass + + def test_ai_search_disable(self) -> None: + """Test case for ai_search_disable + + Disable AI Search for a project + """ + pass + + def test_ai_search_enable(self) -> None: + """Test case for ai_search_enable + + Enable AI Search for a project + """ + pass + + def test_ai_search_get_crawl(self) -> None: + """Test case for ai_search_get_crawl + + Get AI Search ingest job status + """ + pass + + def test_ai_search_get_crawl_pages(self) -> None: + """Test case for ai_search_get_crawl_pages + + Get per-page ingest results for a crawl job + """ + pass + + def test_ai_search_get_settings(self) -> None: + """Test case for ai_search_get_settings + + Get AI Search public access and rate limit settings + """ + pass + + def test_ai_search_ingest_pages(self) -> None: + """Test case for ai_search_ingest_pages + + Ingest pages into the AI Search index + """ + pass + + def test_ai_search_list_crawls(self) -> None: + """Test case for ai_search_list_crawls + + List AI Search ingest jobs + """ + pass + + def test_ai_search_list_pages(self) -> None: + """Test case for ai_search_list_pages + + List indexed pages with cursor pagination + """ + pass + + def test_ai_search_purge_index(self) -> None: + """Test case for ai_search_purge_index + + Purge the entire AI Search index + """ + pass + + def test_ai_search_search(self) -> None: + """Test case for ai_search_search + + Semantic search across the AI Search index + """ + pass + + def test_ai_search_status(self) -> None: + """Test case for ai_search_status + + Get AI Search status for a project + """ + pass + + def test_ai_search_top_queries(self) -> None: + """Test case for ai_search_top_queries + + Get the most popular AI Search queries + """ + pass + + def test_ai_search_trigger_crawl(self) -> None: + """Test case for ai_search_trigger_crawl + + Trigger a crawler run that ingests into AI Search + """ + pass + + def test_ai_search_update_settings(self) -> None: + """Test case for ai_search_update_settings + + Update AI Search public access and rate limit settings + """ + pass + + def test_ai_search_usage(self) -> None: + """Test case for ai_search_usage + + Get usage statistics for the AI Search site + """ + pass + + +if __name__ == '__main__': + unittest.main() diff --git a/test/test_ai_search_chat_request.py b/test/test_ai_search_chat_request.py new file mode 100644 index 00000000..163d9f31 --- /dev/null +++ b/test/test_ai_search_chat_request.py @@ -0,0 +1,55 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +import unittest + +from quantcdn.models.ai_search_chat_request import AiSearchChatRequest + +class TestAiSearchChatRequest(unittest.TestCase): + """AiSearchChatRequest unit test stubs""" + + def setUp(self): + pass + + def tearDown(self): + pass + + def make_instance(self, include_optional) -> AiSearchChatRequest: + """Test AiSearchChatRequest + include_optional is a boolean, when False only required + params are included, when True both required and + optional params are included """ + # uncomment below to create an instance of `AiSearchChatRequest` + """ + model = AiSearchChatRequest() + if include_optional: + return AiSearchChatRequest( + message = '', + session_id = '', + context_url = '', + max_context_chunks = 56 + ) + else: + return AiSearchChatRequest( + message = '', + ) + """ + + def testAiSearchChatRequest(self): + """Test AiSearchChatRequest""" + # inst_req_only = self.make_instance(include_optional=False) + # inst_req_and_optional = self.make_instance(include_optional=True) + +if __name__ == '__main__': + unittest.main() diff --git a/test/test_ai_search_delete_pages_request.py b/test/test_ai_search_delete_pages_request.py new file mode 100644 index 00000000..231521b5 --- /dev/null +++ b/test/test_ai_search_delete_pages_request.py @@ -0,0 +1,56 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +import unittest + +from quantcdn.models.ai_search_delete_pages_request import AiSearchDeletePagesRequest + +class TestAiSearchDeletePagesRequest(unittest.TestCase): + """AiSearchDeletePagesRequest unit test stubs""" + + def setUp(self): + pass + + def tearDown(self): + pass + + def make_instance(self, include_optional) -> AiSearchDeletePagesRequest: + """Test AiSearchDeletePagesRequest + include_optional is a boolean, when False only required + params are included, when True both required and + optional params are included """ + # uncomment below to create an instance of `AiSearchDeletePagesRequest` + """ + model = AiSearchDeletePagesRequest() + if include_optional: + return AiSearchDeletePagesRequest( + urls = [ + '' + ], + patterns = [ + '' + ] + ) + else: + return AiSearchDeletePagesRequest( + ) + """ + + def testAiSearchDeletePagesRequest(self): + """Test AiSearchDeletePagesRequest""" + # inst_req_only = self.make_instance(include_optional=False) + # inst_req_and_optional = self.make_instance(include_optional=True) + +if __name__ == '__main__': + unittest.main() diff --git a/test/test_ai_search_enable_request.py b/test/test_ai_search_enable_request.py new file mode 100644 index 00000000..1072ba9f --- /dev/null +++ b/test/test_ai_search_enable_request.py @@ -0,0 +1,52 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +import unittest + +from quantcdn.models.ai_search_enable_request import AiSearchEnableRequest + +class TestAiSearchEnableRequest(unittest.TestCase): + """AiSearchEnableRequest unit test stubs""" + + def setUp(self): + pass + + def tearDown(self): + pass + + def make_instance(self, include_optional) -> AiSearchEnableRequest: + """Test AiSearchEnableRequest + include_optional is a boolean, when False only required + params are included, when True both required and + optional params are included """ + # uncomment below to create an instance of `AiSearchEnableRequest` + """ + model = AiSearchEnableRequest() + if include_optional: + return AiSearchEnableRequest( + base_url = '', + crawler_config = None + ) + else: + return AiSearchEnableRequest( + ) + """ + + def testAiSearchEnableRequest(self): + """Test AiSearchEnableRequest""" + # inst_req_only = self.make_instance(include_optional=False) + # inst_req_and_optional = self.make_instance(include_optional=True) + +if __name__ == '__main__': + unittest.main() diff --git a/test/test_ai_search_ingest_pages_request.py b/test/test_ai_search_ingest_pages_request.py new file mode 100644 index 00000000..01e88c77 --- /dev/null +++ b/test/test_ai_search_ingest_pages_request.py @@ -0,0 +1,83 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +import unittest + +from quantcdn.models.ai_search_ingest_pages_request import AiSearchIngestPagesRequest + +class TestAiSearchIngestPagesRequest(unittest.TestCase): + """AiSearchIngestPagesRequest unit test stubs""" + + def setUp(self): + pass + + def tearDown(self): + pass + + def make_instance(self, include_optional) -> AiSearchIngestPagesRequest: + """Test AiSearchIngestPagesRequest + include_optional is a boolean, when False only required + params are included, when True both required and + optional params are included """ + # uncomment below to create an instance of `AiSearchIngestPagesRequest` + """ + model = AiSearchIngestPagesRequest() + if include_optional: + return AiSearchIngestPagesRequest( + job_id = '', + pages = [ + quantcdn.models.ai_search_ingest_pages_request_pages_inner.AiSearch_ingestPages_request_pages_inner( + url = '', + title = '', + content = '', + content_type = '', + fetched_at = '', + pre_processed = True, + summary = '', + tags = [ + '' + ], + topics = [ + '' + ], ) + ] + ) + else: + return AiSearchIngestPagesRequest( + pages = [ + quantcdn.models.ai_search_ingest_pages_request_pages_inner.AiSearch_ingestPages_request_pages_inner( + url = '', + title = '', + content = '', + content_type = '', + fetched_at = '', + pre_processed = True, + summary = '', + tags = [ + '' + ], + topics = [ + '' + ], ) + ], + ) + """ + + def testAiSearchIngestPagesRequest(self): + """Test AiSearchIngestPagesRequest""" + # inst_req_only = self.make_instance(include_optional=False) + # inst_req_and_optional = self.make_instance(include_optional=True) + +if __name__ == '__main__': + unittest.main() diff --git a/test/test_ai_search_ingest_pages_request_pages_inner.py b/test/test_ai_search_ingest_pages_request_pages_inner.py new file mode 100644 index 00000000..317c2798 --- /dev/null +++ b/test/test_ai_search_ingest_pages_request_pages_inner.py @@ -0,0 +1,66 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +import unittest + +from quantcdn.models.ai_search_ingest_pages_request_pages_inner import AiSearchIngestPagesRequestPagesInner + +class TestAiSearchIngestPagesRequestPagesInner(unittest.TestCase): + """AiSearchIngestPagesRequestPagesInner unit test stubs""" + + def setUp(self): + pass + + def tearDown(self): + pass + + def make_instance(self, include_optional) -> AiSearchIngestPagesRequestPagesInner: + """Test AiSearchIngestPagesRequestPagesInner + include_optional is a boolean, when False only required + params are included, when True both required and + optional params are included """ + # uncomment below to create an instance of `AiSearchIngestPagesRequestPagesInner` + """ + model = AiSearchIngestPagesRequestPagesInner() + if include_optional: + return AiSearchIngestPagesRequestPagesInner( + url = '', + title = '', + content = '', + content_type = '', + fetched_at = '', + pre_processed = True, + summary = '', + tags = [ + '' + ], + topics = [ + '' + ] + ) + else: + return AiSearchIngestPagesRequestPagesInner( + url = '', + title = '', + content = '', + ) + """ + + def testAiSearchIngestPagesRequestPagesInner(self): + """Test AiSearchIngestPagesRequestPagesInner""" + # inst_req_only = self.make_instance(include_optional=False) + # inst_req_and_optional = self.make_instance(include_optional=True) + +if __name__ == '__main__': + unittest.main() diff --git a/test/test_ai_search_search_request.py b/test/test_ai_search_search_request.py new file mode 100644 index 00000000..59606500 --- /dev/null +++ b/test/test_ai_search_search_request.py @@ -0,0 +1,54 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +import unittest + +from quantcdn.models.ai_search_search_request import AiSearchSearchRequest + +class TestAiSearchSearchRequest(unittest.TestCase): + """AiSearchSearchRequest unit test stubs""" + + def setUp(self): + pass + + def tearDown(self): + pass + + def make_instance(self, include_optional) -> AiSearchSearchRequest: + """Test AiSearchSearchRequest + include_optional is a boolean, when False only required + params are included, when True both required and + optional params are included """ + # uncomment below to create an instance of `AiSearchSearchRequest` + """ + model = AiSearchSearchRequest() + if include_optional: + return AiSearchSearchRequest( + query = '', + limit = 56, + min_score = 1.337 + ) + else: + return AiSearchSearchRequest( + query = '', + ) + """ + + def testAiSearchSearchRequest(self): + """Test AiSearchSearchRequest""" + # inst_req_only = self.make_instance(include_optional=False) + # inst_req_and_optional = self.make_instance(include_optional=True) + +if __name__ == '__main__': + unittest.main() diff --git a/test/test_ai_search_trigger_crawl_request.py b/test/test_ai_search_trigger_crawl_request.py new file mode 100644 index 00000000..a25045ce --- /dev/null +++ b/test/test_ai_search_trigger_crawl_request.py @@ -0,0 +1,52 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +import unittest + +from quantcdn.models.ai_search_trigger_crawl_request import AiSearchTriggerCrawlRequest + +class TestAiSearchTriggerCrawlRequest(unittest.TestCase): + """AiSearchTriggerCrawlRequest unit test stubs""" + + def setUp(self): + pass + + def tearDown(self): + pass + + def make_instance(self, include_optional) -> AiSearchTriggerCrawlRequest: + """Test AiSearchTriggerCrawlRequest + include_optional is a boolean, when False only required + params are included, when True both required and + optional params are included """ + # uncomment below to create an instance of `AiSearchTriggerCrawlRequest` + """ + model = AiSearchTriggerCrawlRequest() + if include_optional: + return AiSearchTriggerCrawlRequest( + crawler_uuid = '' + ) + else: + return AiSearchTriggerCrawlRequest( + crawler_uuid = '', + ) + """ + + def testAiSearchTriggerCrawlRequest(self): + """Test AiSearchTriggerCrawlRequest""" + # inst_req_only = self.make_instance(include_optional=False) + # inst_req_and_optional = self.make_instance(include_optional=True) + +if __name__ == '__main__': + unittest.main() diff --git a/test/test_ai_search_update_settings_request.py b/test/test_ai_search_update_settings_request.py new file mode 100644 index 00000000..76d1a998 --- /dev/null +++ b/test/test_ai_search_update_settings_request.py @@ -0,0 +1,52 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +import unittest + +from quantcdn.models.ai_search_update_settings_request import AiSearchUpdateSettingsRequest + +class TestAiSearchUpdateSettingsRequest(unittest.TestCase): + """AiSearchUpdateSettingsRequest unit test stubs""" + + def setUp(self): + pass + + def tearDown(self): + pass + + def make_instance(self, include_optional) -> AiSearchUpdateSettingsRequest: + """Test AiSearchUpdateSettingsRequest + include_optional is a boolean, when False only required + params are included, when True both required and + optional params are included """ + # uncomment below to create an instance of `AiSearchUpdateSettingsRequest` + """ + model = AiSearchUpdateSettingsRequest() + if include_optional: + return AiSearchUpdateSettingsRequest( + public_access = None, + rate_limits = None + ) + else: + return AiSearchUpdateSettingsRequest( + ) + """ + + def testAiSearchUpdateSettingsRequest(self): + """Test AiSearchUpdateSettingsRequest""" + # inst_req_only = self.make_instance(include_optional=False) + # inst_req_and_optional = self.make_instance(include_optional=True) + +if __name__ == '__main__': + unittest.main() diff --git a/test/test_ai_sessions_api.py b/test/test_ai_sessions_api.py index 4e888e6a..31c77466 100644 --- a/test/test_ai_sessions_api.py +++ b/test/test_ai_sessions_api.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_ai_skills_api.py b/test/test_ai_skills_api.py new file mode 100644 index 00000000..d42b4534 --- /dev/null +++ b/test/test_ai_skills_api.py @@ -0,0 +1,108 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +import unittest + +from quantcdn.api.ai_skills_api import AISkillsApi + + +class TestAISkillsApi(unittest.TestCase): + """AISkillsApi unit test stubs""" + + def setUp(self) -> None: + self.api = AISkillsApi() + + def tearDown(self) -> None: + pass + + def test_create_skill(self) -> None: + """Test case for create_skill + + Create Inline Skill + """ + pass + + def test_delete_skill(self) -> None: + """Test case for delete_skill + + Delete Skill + """ + pass + + def test_delete_skill_collection(self) -> None: + """Test case for delete_skill_collection + + Delete Skill Collection + """ + pass + + def test_get_skill(self) -> None: + """Test case for get_skill + + Get Skill Details + """ + pass + + def test_import_skill(self) -> None: + """Test case for import_skill + + Import Skill from External Source + """ + pass + + def test_import_skill_collection(self) -> None: + """Test case for import_skill_collection + + Import Skill Collection from GitHub + """ + pass + + def test_list_skill_collections(self) -> None: + """Test case for list_skill_collections + + List Skill Collections + """ + pass + + def test_list_skills(self) -> None: + """Test case for list_skills + + List Organization's Skills + """ + pass + + def test_sync_skill(self) -> None: + """Test case for sync_skill + + Sync Skill from Source + """ + pass + + def test_sync_skill_collection(self) -> None: + """Test case for sync_skill_collection + + Sync Skill Collection + """ + pass + + def test_update_skill(self) -> None: + """Test case for update_skill + + Update Skill + """ + pass + + +if __name__ == '__main__': + unittest.main() diff --git a/test/test_ai_slack_bots_api.py b/test/test_ai_slack_bots_api.py new file mode 100644 index 00000000..bf587c82 --- /dev/null +++ b/test/test_ai_slack_bots_api.py @@ -0,0 +1,80 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +import unittest + +from quantcdn.api.ai_slack_bots_api import AISlackBotsApi + + +class TestAISlackBotsApi(unittest.TestCase): + """AISlackBotsApi unit test stubs""" + + def setUp(self) -> None: + self.api = AISlackBotsApi() + + def tearDown(self) -> None: + pass + + def test_create_slack_bot(self) -> None: + """Test case for create_slack_bot + + Create Slack Bot + """ + pass + + def test_delete_slack_bot(self) -> None: + """Test case for delete_slack_bot + + Delete Slack Bot + """ + pass + + def test_get_slack_bot(self) -> None: + """Test case for get_slack_bot + + Get Slack Bot + """ + pass + + def test_list_slack_bots(self) -> None: + """Test case for list_slack_bots + + List Slack Bots + """ + pass + + def test_search_slack_workspace_channels(self) -> None: + """Test case for search_slack_workspace_channels + + Search Slack Workspace Channels + """ + pass + + def test_search_slack_workspace_users(self) -> None: + """Test case for search_slack_workspace_users + + Search Slack Workspace Users + """ + pass + + def test_update_slack_bot(self) -> None: + """Test case for update_slack_bot + + Update Slack Bot + """ + pass + + +if __name__ == '__main__': + unittest.main() diff --git a/test/test_ai_task_management_api.py b/test/test_ai_task_management_api.py index 0402fb11..b36c5ba2 100644 --- a/test/test_ai_task_management_api.py +++ b/test/test_ai_task_management_api.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_ai_tools_api.py b/test/test_ai_tools_api.py index 7cae8020..6e5c87c6 100644 --- a/test/test_ai_tools_api.py +++ b/test/test_ai_tools_api.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. @@ -29,7 +29,7 @@ def tearDown(self) -> None: def test_get_ai_orchestration_status(self) -> None: """Test case for get_ai_orchestration_status - Get Orchestration Status + Get Tool Orchestration Status (Async Tool Polling) """ pass diff --git a/test/test_orchestration_api.py b/test/test_ai_usage_api.py similarity index 51% rename from test/test_orchestration_api.py rename to test/test_ai_usage_api.py index 9f2c5ba5..c6572c0d 100644 --- a/test/test_orchestration_api.py +++ b/test/test_ai_usage_api.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. @@ -14,22 +14,22 @@ import unittest -from quantcdn.api.orchestration_api import OrchestrationApi +from quantcdn.api.ai_usage_api import AIUsageApi -class TestOrchestrationApi(unittest.TestCase): - """OrchestrationApi unit test stubs""" +class TestAIUsageApi(unittest.TestCase): + """AIUsageApi unit test stubs""" def setUp(self) -> None: - self.api = OrchestrationApi() + self.api = AIUsageApi() def tearDown(self) -> None: pass - def test_get_ai_orchestration_status(self) -> None: - """Test case for get_ai_orchestration_status + def test_get_my_usage(self) -> None: + """Test case for get_my_usage - Get Orchestration Status + Get AI usage summary for the authenticated user """ pass diff --git a/test/test_ai_vector_database_api.py b/test/test_ai_vector_database_api.py index ca10ff62..58f3be55 100644 --- a/test/test_ai_vector_database_api.py +++ b/test/test_ai_vector_database_api.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. @@ -40,6 +40,13 @@ def test_delete_vector_collection(self) -> None: """ pass + def test_delete_vector_documents(self) -> None: + """Test case for delete_vector_documents + + Delete Documents from Collection + """ + pass + def test_get_vector_collection(self) -> None: """Test case for get_vector_collection @@ -54,6 +61,13 @@ def test_list_vector_collections(self) -> None: """ pass + def test_list_vector_documents(self) -> None: + """Test case for list_vector_documents + + List Documents in Collection + """ + pass + def test_query_vector_collection(self) -> None: """Test case for query_vector_collection diff --git a/test/test_application.py b/test/test_application.py index 0d6e55a3..42bda912 100644 --- a/test/test_application.py +++ b/test/test_application.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. @@ -45,6 +45,10 @@ def make_instance(self, include_optional) -> Application: filesystem = quantcdn.models.application_filesystem.Application_filesystem( filesystem_id = '', mount_path = '', ), + cache = quantcdn.models.application_cache.Application_cache( + cache_endpoint = '', + cache_identifier = '', + data_storage_max_gb = 56, ), compose_definition = quantcdn.models.compose.Compose( containers = [ quantcdn.models.container.Container( @@ -102,13 +106,16 @@ def make_instance(self, include_optional) -> Application: enabled = True, ip_allow = [ '' - ], ), ) + ], + redirect_host = '', ), ) ], architecture = '', task_cpu = 56, task_memory = 56, min_capacity = 56, max_capacity = 56, + single_task_only = True, + startup_grace_period_seconds = 0, spot_configuration = quantcdn.models.spot_configuration.SpotConfiguration( strategy = 'spot-only', ), enable_cross_env_networking = True, @@ -132,12 +139,8 @@ def make_instance(self, include_optional) -> Application: max_capacity = 56, desired_count = 56, running_count = 56, - environments = [ - quantcdn.models.application_environments_inner.Application_environments_inner( - env_name = '', - status = '', - running_count = 56, - desired_count = 56, ) + environment_names = [ + '' ] ) else: diff --git a/test/test_application_cache.py b/test/test_application_cache.py new file mode 100644 index 00000000..ca439707 --- /dev/null +++ b/test/test_application_cache.py @@ -0,0 +1,53 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +import unittest + +from quantcdn.models.application_cache import ApplicationCache + +class TestApplicationCache(unittest.TestCase): + """ApplicationCache unit test stubs""" + + def setUp(self): + pass + + def tearDown(self): + pass + + def make_instance(self, include_optional) -> ApplicationCache: + """Test ApplicationCache + include_optional is a boolean, when False only required + params are included, when True both required and + optional params are included """ + # uncomment below to create an instance of `ApplicationCache` + """ + model = ApplicationCache() + if include_optional: + return ApplicationCache( + cache_endpoint = '', + cache_identifier = '', + data_storage_max_gb = 56 + ) + else: + return ApplicationCache( + ) + """ + + def testApplicationCache(self): + """Test ApplicationCache""" + # inst_req_only = self.make_instance(include_optional=False) + # inst_req_and_optional = self.make_instance(include_optional=True) + +if __name__ == '__main__': + unittest.main() diff --git a/test/test_application_database.py b/test/test_application_database.py index 60d5873e..f7f4203c 100644 --- a/test/test_application_database.py +++ b/test/test_application_database.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_application_deployment_information_inner.py b/test/test_application_deployment_information_inner.py index 70862aa0..0eaaa8a1 100644 --- a/test/test_application_deployment_information_inner.py +++ b/test/test_application_deployment_information_inner.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_application_environments_inner.py b/test/test_application_environments_inner.py deleted file mode 100644 index 0cb50a83..00000000 --- a/test/test_application_environments_inner.py +++ /dev/null @@ -1,54 +0,0 @@ -# coding: utf-8 - -""" - QuantCDN API - - Unified API for QuantCDN Admin and QuantCloud Platform services - - The version of the OpenAPI document: 4.9.0 - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from quantcdn.models.application_environments_inner import ApplicationEnvironmentsInner - -class TestApplicationEnvironmentsInner(unittest.TestCase): - """ApplicationEnvironmentsInner unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> ApplicationEnvironmentsInner: - """Test ApplicationEnvironmentsInner - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included """ - # uncomment below to create an instance of `ApplicationEnvironmentsInner` - """ - model = ApplicationEnvironmentsInner() - if include_optional: - return ApplicationEnvironmentsInner( - env_name = '', - status = '', - running_count = 56, - desired_count = 56 - ) - else: - return ApplicationEnvironmentsInner( - ) - """ - - def testApplicationEnvironmentsInner(self): - """Test ApplicationEnvironmentsInner""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - -if __name__ == '__main__': - unittest.main() diff --git a/test/test_application_filesystem.py b/test/test_application_filesystem.py index 74ee292b..b4014239 100644 --- a/test/test_application_filesystem.py +++ b/test/test_application_filesystem.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_application_image_reference.py b/test/test_application_image_reference.py index 6309ed5d..4e40fb5e 100644 --- a/test/test_application_image_reference.py +++ b/test/test_application_image_reference.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_applications_api.py b/test/test_applications_api.py index 1ee18a92..2f2723ee 100644 --- a/test/test_applications_api.py +++ b/test/test_applications_api.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_backup_management_api.py b/test/test_backup_management_api.py index c0d7a924..b0e06850 100644 --- a/test/test_backup_management_api.py +++ b/test/test_backup_management_api.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_bulk_set_environment_variables_request.py b/test/test_bulk_set_environment_variables_request.py index 7adeebd4..0e02145b 100644 --- a/test/test_bulk_set_environment_variables_request.py +++ b/test/test_bulk_set_environment_variables_request.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_bulk_set_environment_variables_request_environment_inner.py b/test/test_bulk_set_environment_variables_request_environment_inner.py index afbf444e..4599abda 100644 --- a/test/test_bulk_set_environment_variables_request_environment_inner.py +++ b/test/test_bulk_set_environment_variables_request_environment_inner.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_cdn_metrics_api.py b/test/test_cdn_metrics_api.py new file mode 100644 index 00000000..45fb99d5 --- /dev/null +++ b/test/test_cdn_metrics_api.py @@ -0,0 +1,52 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +import unittest + +from quantcdn.api.cdn_metrics_api import CDNMetricsApi + + +class TestCDNMetricsApi(unittest.TestCase): + """CDNMetricsApi unit test stubs""" + + def setUp(self) -> None: + self.api = CDNMetricsApi() + + def tearDown(self) -> None: + pass + + def test_get_daily_metrics(self) -> None: + """Test case for get_daily_metrics + + Get daily metrics + """ + pass + + def test_get_hourly_metrics(self) -> None: + """Test case for get_hourly_metrics + + Get hourly metrics + """ + pass + + def test_get_monthly_metrics(self) -> None: + """Test case for get_monthly_metrics + + Get monthly metrics + """ + pass + + +if __name__ == '__main__': + unittest.main() diff --git a/test/test_chat_inference200_response.py b/test/test_chat_inference200_response.py index 1eff6082..4f18a04d 100644 --- a/test/test_chat_inference200_response.py +++ b/test/test_chat_inference200_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. @@ -45,7 +45,8 @@ def make_instance(self, include_optional) -> ChatInference200Response: usage = quantcdn.models.chat_inference_200_response_usage.chatInference_200_response_usage( input_tokens = 25, output_tokens = 150, - total_tokens = 175, ) + total_tokens = 175, + cost_cents = 0.42, ) ) else: return ChatInference200Response( diff --git a/test/test_chat_inference200_response_response.py b/test/test_chat_inference200_response_response.py index 14f627a8..7103cd6b 100644 --- a/test/test_chat_inference200_response_response.py +++ b/test/test_chat_inference200_response_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_chat_inference200_response_response_tool_use.py b/test/test_chat_inference200_response_response_tool_use.py index 39b66525..f5425bd5 100644 --- a/test/test_chat_inference200_response_response_tool_use.py +++ b/test/test_chat_inference200_response_response_tool_use.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_chat_inference200_response_response_tool_use_one_of.py b/test/test_chat_inference200_response_response_tool_use_one_of.py index 7996fd6a..8e952772 100644 --- a/test/test_chat_inference200_response_response_tool_use_one_of.py +++ b/test/test_chat_inference200_response_response_tool_use_one_of.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_chat_inference200_response_response_tool_use_one_of1_inner.py b/test/test_chat_inference200_response_response_tool_use_one_of1_inner.py index 1e496968..6d21aca9 100644 --- a/test/test_chat_inference200_response_response_tool_use_one_of1_inner.py +++ b/test/test_chat_inference200_response_response_tool_use_one_of1_inner.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_chat_inference200_response_response_tool_use_one_of_result.py b/test/test_chat_inference200_response_response_tool_use_one_of_result.py index f25cb3d9..6c6543a7 100644 --- a/test/test_chat_inference200_response_response_tool_use_one_of_result.py +++ b/test/test_chat_inference200_response_response_tool_use_one_of_result.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_chat_inference200_response_usage.py b/test/test_chat_inference200_response_usage.py index 92a6ce4d..4ca06dcf 100644 --- a/test/test_chat_inference200_response_usage.py +++ b/test/test_chat_inference200_response_usage.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. @@ -37,7 +37,8 @@ def make_instance(self, include_optional) -> ChatInference200ResponseUsage: return ChatInference200ResponseUsage( input_tokens = 25, output_tokens = 150, - total_tokens = 175 + total_tokens = 175, + cost_cents = 0.42 ) else: return ChatInference200ResponseUsage( diff --git a/test/test_chat_inference202_response.py b/test/test_chat_inference202_response.py index 3bea1ecc..1abe5f87 100644 --- a/test/test_chat_inference202_response.py +++ b/test/test_chat_inference202_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_chat_inference_request.py b/test/test_chat_inference_request.py index af5dcbcb..0691a0df 100644 --- a/test/test_chat_inference_request.py +++ b/test/test_chat_inference_request.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. @@ -66,7 +66,13 @@ def make_instance(self, include_optional) -> ChatInferenceRequest: '' ], ), session_id = '', - var_async = True + var_async = True, + allowed_tools = ["get_weather","generate_image"], + guardrails = quantcdn.models.chat_inference_request_guardrails.chatInference_request_guardrails( + guardrail_identifier = '', + guardrail_version = '', + trace = 'enabled', ), + long_context = True ) else: return ChatInferenceRequest( diff --git a/test/test_chat_inference_request_guardrails.py b/test/test_chat_inference_request_guardrails.py new file mode 100644 index 00000000..60308b16 --- /dev/null +++ b/test/test_chat_inference_request_guardrails.py @@ -0,0 +1,53 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +import unittest + +from quantcdn.models.chat_inference_request_guardrails import ChatInferenceRequestGuardrails + +class TestChatInferenceRequestGuardrails(unittest.TestCase): + """ChatInferenceRequestGuardrails unit test stubs""" + + def setUp(self): + pass + + def tearDown(self): + pass + + def make_instance(self, include_optional) -> ChatInferenceRequestGuardrails: + """Test ChatInferenceRequestGuardrails + include_optional is a boolean, when False only required + params are included, when True both required and + optional params are included """ + # uncomment below to create an instance of `ChatInferenceRequestGuardrails` + """ + model = ChatInferenceRequestGuardrails() + if include_optional: + return ChatInferenceRequestGuardrails( + guardrail_identifier = '', + guardrail_version = '', + trace = 'enabled' + ) + else: + return ChatInferenceRequestGuardrails( + ) + """ + + def testChatInferenceRequestGuardrails(self): + """Test ChatInferenceRequestGuardrails""" + # inst_req_only = self.make_instance(include_optional=False) + # inst_req_and_optional = self.make_instance(include_optional=True) + +if __name__ == '__main__': + unittest.main() diff --git a/test/test_chat_inference_request_messages_inner.py b/test/test_chat_inference_request_messages_inner.py index 7fc04d9a..768f907b 100644 --- a/test/test_chat_inference_request_messages_inner.py +++ b/test/test_chat_inference_request_messages_inner.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_chat_inference_request_messages_inner_content.py b/test/test_chat_inference_request_messages_inner_content.py index 1eeee407..6cf52fb6 100644 --- a/test/test_chat_inference_request_messages_inner_content.py +++ b/test/test_chat_inference_request_messages_inner_content.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_chat_inference_request_messages_inner_content_one_of_inner.py b/test/test_chat_inference_request_messages_inner_content_one_of_inner.py index 14d36e43..0cdf083d 100644 --- a/test/test_chat_inference_request_messages_inner_content_one_of_inner.py +++ b/test/test_chat_inference_request_messages_inner_content_one_of_inner.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_chat_inference_request_messages_inner_content_one_of_inner_one_of.py b/test/test_chat_inference_request_messages_inner_content_one_of_inner_one_of.py index 5bc64414..06330377 100644 --- a/test/test_chat_inference_request_messages_inner_content_one_of_inner_one_of.py +++ b/test/test_chat_inference_request_messages_inner_content_one_of_inner_one_of.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_chat_inference_request_messages_inner_content_one_of_inner_one_of1.py b/test/test_chat_inference_request_messages_inner_content_one_of_inner_one_of1.py index deec9cf2..37668c6e 100644 --- a/test/test_chat_inference_request_messages_inner_content_one_of_inner_one_of1.py +++ b/test/test_chat_inference_request_messages_inner_content_one_of_inner_one_of1.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_chat_inference_request_messages_inner_content_one_of_inner_one_of1_image.py b/test/test_chat_inference_request_messages_inner_content_one_of_inner_one_of1_image.py index 1bba4d3f..be941f0d 100644 --- a/test/test_chat_inference_request_messages_inner_content_one_of_inner_one_of1_image.py +++ b/test/test_chat_inference_request_messages_inner_content_one_of_inner_one_of1_image.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_chat_inference_request_messages_inner_content_one_of_inner_one_of1_image_source.py b/test/test_chat_inference_request_messages_inner_content_one_of_inner_one_of1_image_source.py index 78babc52..f4a3e700 100644 --- a/test/test_chat_inference_request_messages_inner_content_one_of_inner_one_of1_image_source.py +++ b/test/test_chat_inference_request_messages_inner_content_one_of_inner_one_of1_image_source.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_chat_inference_request_messages_inner_content_one_of_inner_one_of2.py b/test/test_chat_inference_request_messages_inner_content_one_of_inner_one_of2.py index 2d6cc947..e293e7cc 100644 --- a/test/test_chat_inference_request_messages_inner_content_one_of_inner_one_of2.py +++ b/test/test_chat_inference_request_messages_inner_content_one_of_inner_one_of2.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_chat_inference_request_messages_inner_content_one_of_inner_one_of2_video.py b/test/test_chat_inference_request_messages_inner_content_one_of_inner_one_of2_video.py index 8f37d1b9..847f8681 100644 --- a/test/test_chat_inference_request_messages_inner_content_one_of_inner_one_of2_video.py +++ b/test/test_chat_inference_request_messages_inner_content_one_of_inner_one_of2_video.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_chat_inference_request_messages_inner_content_one_of_inner_one_of2_video_source.py b/test/test_chat_inference_request_messages_inner_content_one_of_inner_one_of2_video_source.py index 1a6bac4f..28a24d17 100644 --- a/test/test_chat_inference_request_messages_inner_content_one_of_inner_one_of2_video_source.py +++ b/test/test_chat_inference_request_messages_inner_content_one_of_inner_one_of2_video_source.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_chat_inference_request_messages_inner_content_one_of_inner_one_of3.py b/test/test_chat_inference_request_messages_inner_content_one_of_inner_one_of3.py index b02c9d71..2727d99c 100644 --- a/test/test_chat_inference_request_messages_inner_content_one_of_inner_one_of3.py +++ b/test/test_chat_inference_request_messages_inner_content_one_of_inner_one_of3.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_chat_inference_request_messages_inner_content_one_of_inner_one_of3_document.py b/test/test_chat_inference_request_messages_inner_content_one_of_inner_one_of3_document.py index 0f3c5f62..a6550deb 100644 --- a/test/test_chat_inference_request_messages_inner_content_one_of_inner_one_of3_document.py +++ b/test/test_chat_inference_request_messages_inner_content_one_of_inner_one_of3_document.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_chat_inference_request_messages_inner_content_one_of_inner_one_of3_document_source.py b/test/test_chat_inference_request_messages_inner_content_one_of_inner_one_of3_document_source.py index 405e8d62..ce0a9732 100644 --- a/test/test_chat_inference_request_messages_inner_content_one_of_inner_one_of3_document_source.py +++ b/test/test_chat_inference_request_messages_inner_content_one_of_inner_one_of3_document_source.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_chat_inference_request_response_format.py b/test/test_chat_inference_request_response_format.py index 603b8d06..c4efd1bb 100644 --- a/test/test_chat_inference_request_response_format.py +++ b/test/test_chat_inference_request_response_format.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_chat_inference_request_tool_config.py b/test/test_chat_inference_request_tool_config.py index f5d13e3b..86635a60 100644 --- a/test/test_chat_inference_request_tool_config.py +++ b/test/test_chat_inference_request_tool_config.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_chat_inference_request_tool_config_tools_inner.py b/test/test_chat_inference_request_tool_config_tools_inner.py index a43b828d..0769169a 100644 --- a/test/test_chat_inference_request_tool_config_tools_inner.py +++ b/test/test_chat_inference_request_tool_config_tools_inner.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_chat_inference_request_tool_config_tools_inner_tool_spec.py b/test/test_chat_inference_request_tool_config_tools_inner_tool_spec.py index a9d4b2e0..1f596780 100644 --- a/test/test_chat_inference_request_tool_config_tools_inner_tool_spec.py +++ b/test/test_chat_inference_request_tool_config_tools_inner_tool_spec.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_chat_inference_request_tool_config_tools_inner_tool_spec_input_schema.py b/test/test_chat_inference_request_tool_config_tools_inner_tool_spec_input_schema.py index cdcd594e..548ae4c2 100644 --- a/test/test_chat_inference_request_tool_config_tools_inner_tool_spec_input_schema.py +++ b/test/test_chat_inference_request_tool_config_tools_inner_tool_spec_input_schema.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_chat_inference_stream_request.py b/test/test_chat_inference_stream_request.py index e548f590..b10e6e4c 100644 --- a/test/test_chat_inference_stream_request.py +++ b/test/test_chat_inference_stream_request.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. @@ -65,7 +65,13 @@ def make_instance(self, include_optional) -> ChatInferenceStreamRequest: '' ], ), session_id = '', - var_async = True + var_async = True, + allowed_tools = ["get_weather","generate_image"], + guardrails = quantcdn.models.chat_inference_request_guardrails.chatInference_request_guardrails( + guardrail_identifier = '', + guardrail_version = '', + trace = 'enabled', ), + long_context = True ) else: return ChatInferenceStreamRequest( diff --git a/test/test_chat_inference_stream_request_messages_inner.py b/test/test_chat_inference_stream_request_messages_inner.py index b0d58a7c..dfcc22d7 100644 --- a/test/test_chat_inference_stream_request_messages_inner.py +++ b/test/test_chat_inference_stream_request_messages_inner.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_chat_inference_stream_request_messages_inner_content.py b/test/test_chat_inference_stream_request_messages_inner_content.py index b1e717eb..221716a5 100644 --- a/test/test_chat_inference_stream_request_messages_inner_content.py +++ b/test/test_chat_inference_stream_request_messages_inner_content.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_chat_with_ai_agent200_response.py b/test/test_chat_with_ai_agent200_response.py index ab9aa261..757e809b 100644 --- a/test/test_chat_with_ai_agent200_response.py +++ b/test/test_chat_with_ai_agent200_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. @@ -41,7 +41,9 @@ def make_instance(self, include_optional) -> ChatWithAIAgent200Response: stop_reason = '', usage = quantcdn.models.chat_with_ai_agent_200_response_response_usage.chatWithAIAgent_200_response_response_usage( input_tokens = 56, - output_tokens = 56, ), + output_tokens = 56, + total_tokens = 56, + cost_cents = 1.337, ), tool_results = [ None ], ) diff --git a/test/test_chat_with_ai_agent200_response_response.py b/test/test_chat_with_ai_agent200_response_response.py index 3ede8088..e838c20a 100644 --- a/test/test_chat_with_ai_agent200_response_response.py +++ b/test/test_chat_with_ai_agent200_response_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. @@ -39,7 +39,9 @@ def make_instance(self, include_optional) -> ChatWithAIAgent200ResponseResponse: stop_reason = '', usage = quantcdn.models.chat_with_ai_agent_200_response_response_usage.chatWithAIAgent_200_response_response_usage( input_tokens = 56, - output_tokens = 56, ), + output_tokens = 56, + total_tokens = 56, + cost_cents = 1.337, ), tool_results = [ None ] diff --git a/test/test_chat_with_ai_agent200_response_response_usage.py b/test/test_chat_with_ai_agent200_response_response_usage.py index ca867d65..a23f058b 100644 --- a/test/test_chat_with_ai_agent200_response_response_usage.py +++ b/test/test_chat_with_ai_agent200_response_response_usage.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. @@ -36,7 +36,9 @@ def make_instance(self, include_optional) -> ChatWithAIAgent200ResponseResponseU if include_optional: return ChatWithAIAgent200ResponseResponseUsage( input_tokens = 56, - output_tokens = 56 + output_tokens = 56, + total_tokens = 56, + cost_cents = 1.337 ) else: return ChatWithAIAgent200ResponseResponseUsage( diff --git a/test/test_chat_with_ai_agent202_response.py b/test/test_chat_with_ai_agent202_response.py index b283fde6..66710c38 100644 --- a/test/test_chat_with_ai_agent202_response.py +++ b/test/test_chat_with_ai_agent202_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_chat_with_ai_agent_request.py b/test/test_chat_with_ai_agent_request.py index 1d4f3d02..a05be88f 100644 --- a/test/test_chat_with_ai_agent_request.py +++ b/test/test_chat_with_ai_agent_request.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. @@ -40,7 +40,12 @@ def make_instance(self, include_optional) -> ChatWithAIAgentRequest: user_id = '', stream = True, var_async = True, - system = '' + system = '', + long_context = True, + max_tool_iterations = 1, + allowed_collections = [ + '' + ] ) else: return ChatWithAIAgentRequest( diff --git a/test/test_command.py b/test/test_command.py index 977434e0..4333724c 100644 --- a/test/test_command.py +++ b/test/test_command.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_commands_api.py b/test/test_commands_api.py index c44678ce..f03d3ad4 100644 --- a/test/test_commands_api.py +++ b/test/test_commands_api.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_compose.py b/test/test_compose.py index 254737b9..808ad47c 100644 --- a/test/test_compose.py +++ b/test/test_compose.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. @@ -91,13 +91,16 @@ def make_instance(self, include_optional) -> Compose: enabled = True, ip_allow = [ '' - ], ), ) + ], + redirect_host = '', ), ) ], architecture = '', task_cpu = 56, task_memory = 56, min_capacity = 56, max_capacity = 56, + single_task_only = True, + startup_grace_period_seconds = 0, spot_configuration = quantcdn.models.spot_configuration.SpotConfiguration( strategy = 'spot-only', ), enable_cross_env_networking = True, diff --git a/test/test_compose_api.py b/test/test_compose_api.py index 271cd8aa..d9122582 100644 --- a/test/test_compose_api.py +++ b/test/test_compose_api.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_container.py b/test/test_container.py index 26ef7b3b..babacf26 100644 --- a/test/test_container.py +++ b/test/test_container.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. @@ -89,7 +89,8 @@ def make_instance(self, include_optional) -> Container: enabled = True, ip_allow = [ '' - ], ) + ], + redirect_host = '', ) ) else: return Container( diff --git a/test/test_container_depends_on_inner.py b/test/test_container_depends_on_inner.py index 82fc066b..404b0a9d 100644 --- a/test/test_container_depends_on_inner.py +++ b/test/test_container_depends_on_inner.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_container_environment_inner.py b/test/test_container_environment_inner.py index 3e42d17d..284446bc 100644 --- a/test/test_container_environment_inner.py +++ b/test/test_container_environment_inner.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_container_health_check.py b/test/test_container_health_check.py index 8b53e5ad..d768a00f 100644 --- a/test/test_container_health_check.py +++ b/test/test_container_health_check.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_container_image_reference.py b/test/test_container_image_reference.py index b9e44885..db7ffd1b 100644 --- a/test/test_container_image_reference.py +++ b/test/test_container_image_reference.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_container_mount_points_inner.py b/test/test_container_mount_points_inner.py index 1189cf7d..a41dac23 100644 --- a/test/test_container_mount_points_inner.py +++ b/test/test_container_mount_points_inner.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_container_origin_protection_config.py b/test/test_container_origin_protection_config.py index 19b4c4b9..f144e037 100644 --- a/test/test_container_origin_protection_config.py +++ b/test/test_container_origin_protection_config.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. @@ -38,7 +38,8 @@ def make_instance(self, include_optional) -> ContainerOriginProtectionConfig: enabled = True, ip_allow = [ '' - ] + ], + redirect_host = '' ) else: return ContainerOriginProtectionConfig( diff --git a/test/test_container_secrets_inner.py b/test/test_container_secrets_inner.py index d97081e6..f56002fd 100644 --- a/test/test_container_secrets_inner.py +++ b/test/test_container_secrets_inner.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_containers_api.py b/test/test_containers_api.py index 7d24ed18..14479882 100644 --- a/test/test_containers_api.py +++ b/test/test_containers_api.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_crawler_schedules_api.py b/test/test_crawler_schedules_api.py index 13351645..1ae290cc 100644 --- a/test/test_crawler_schedules_api.py +++ b/test/test_crawler_schedules_api.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_crawlers_api.py b/test/test_crawlers_api.py index 625fb898..a6218ed0 100644 --- a/test/test_crawlers_api.py +++ b/test/test_crawlers_api.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_crawlers_run200_response.py b/test/test_crawlers_run200_response.py index 71059749..349299c8 100644 --- a/test/test_crawlers_run200_response.py +++ b/test/test_crawlers_run200_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_crawlers_run_request.py b/test/test_crawlers_run_request.py index 739cecba..c47ada69 100644 --- a/test/test_crawlers_run_request.py +++ b/test/test_crawlers_run_request.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_create_ai_agent201_response.py b/test/test_create_ai_agent201_response.py index 3187c252..2b746d0b 100644 --- a/test/test_create_ai_agent201_response.py +++ b/test/test_create_ai_agent201_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_create_ai_agent_request.py b/test/test_create_ai_agent_request.py index cd55b39d..dab9d48d 100644 --- a/test/test_create_ai_agent_request.py +++ b/test/test_create_ai_agent_request.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. @@ -46,7 +46,15 @@ def make_instance(self, include_optional) -> CreateAIAgentRequest: allowed_collections = [ '' ], - created_by = '' + assigned_skills = [ + '' + ], + created_by = '', + long_context = True, + guardrail_preset = 'official', + filter_policies = [ + '' + ] ) else: return CreateAIAgentRequest( diff --git a/test/test_create_ai_session201_response.py b/test/test_create_ai_session201_response.py index d41f6a89..69c50ac4 100644 --- a/test/test_create_ai_session201_response.py +++ b/test/test_create_ai_session201_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_create_ai_session_request.py b/test/test_create_ai_session_request.py index 4c02ba88..b87dd094 100644 --- a/test/test_create_ai_session_request.py +++ b/test/test_create_ai_session_request.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_create_ai_session_request_initial_messages_inner.py b/test/test_create_ai_session_request_initial_messages_inner.py index bdd58c2b..1478d16f 100644 --- a/test/test_create_ai_session_request_initial_messages_inner.py +++ b/test/test_create_ai_session_request_initial_messages_inner.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_create_application403_response.py b/test/test_create_application403_response.py index f409086a..e911d591 100644 --- a/test/test_create_application403_response.py +++ b/test/test_create_application403_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_create_application_request.py b/test/test_create_application_request.py index e1a6d9bf..c01ac72b 100644 --- a/test/test_create_application_request.py +++ b/test/test_create_application_request.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. @@ -93,13 +93,16 @@ def make_instance(self, include_optional) -> CreateApplicationRequest: enabled = True, ip_allow = [ '' - ], ), ) + ], + redirect_host = '', ), ) ], architecture = '', task_cpu = 56, task_memory = 56, min_capacity = 56, max_capacity = 56, + single_task_only = True, + startup_grace_period_seconds = 0, spot_configuration = quantcdn.models.spot_configuration.SpotConfiguration( strategy = 'spot-only', ), enable_cross_env_networking = True, @@ -180,13 +183,16 @@ def make_instance(self, include_optional) -> CreateApplicationRequest: enabled = True, ip_allow = [ '' - ], ), ) + ], + redirect_host = '', ), ) ], architecture = '', task_cpu = 56, task_memory = 56, min_capacity = 56, max_capacity = 56, + single_task_only = True, + startup_grace_period_seconds = 0, spot_configuration = quantcdn.models.spot_configuration.SpotConfiguration( strategy = 'spot-only', ), enable_cross_env_networking = True, diff --git a/test/test_create_application_request_database.py b/test/test_create_application_request_database.py index 03cc5cad..d415c465 100644 --- a/test/test_create_application_request_database.py +++ b/test/test_create_application_request_database.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_create_application_request_environment_inner.py b/test/test_create_application_request_environment_inner.py index 322854d6..c801ba19 100644 --- a/test/test_create_application_request_environment_inner.py +++ b/test/test_create_application_request_environment_inner.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_create_application_request_filesystem.py b/test/test_create_application_request_filesystem.py index 98b66bb8..17b3bc48 100644 --- a/test/test_create_application_request_filesystem.py +++ b/test/test_create_application_request_filesystem.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_create_backup202_response.py b/test/test_create_backup202_response.py index b0ca2307..54a8272d 100644 --- a/test/test_create_backup202_response.py +++ b/test/test_create_backup202_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_create_backup_request.py b/test/test_create_backup_request.py index 7c2e24b7..4327b8e9 100644 --- a/test/test_create_backup_request.py +++ b/test/test_create_backup_request.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_create_command_request.py b/test/test_create_command_request.py index 221f2b76..0429f33e 100644 --- a/test/test_create_command_request.py +++ b/test/test_create_command_request.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_create_cron_job_request.py b/test/test_create_cron_job_request.py index 3922166f..48c74795 100644 --- a/test/test_create_cron_job_request.py +++ b/test/test_create_cron_job_request.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_create_custom_tool201_response.py b/test/test_create_custom_tool201_response.py index 9d9ed488..5828b391 100644 --- a/test/test_create_custom_tool201_response.py +++ b/test/test_create_custom_tool201_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. @@ -37,7 +37,10 @@ def make_instance(self, include_optional) -> CreateCustomTool201Response: return CreateCustomTool201Response( success = True, tool = None, - message = 'Custom tool registered successfully' + edge_function_url = 'https://preview.quantcdn.io/_quant/ai-exec/org/project/uuid', + edge_function_code = '', + is_update = True, + message = 'Custom tool deployed successfully' ) else: return CreateCustomTool201Response( diff --git a/test/test_create_custom_tool_request.py b/test/test_create_custom_tool_request.py index babba144..cf2efc05 100644 --- a/test/test_create_custom_tool_request.py +++ b/test/test_create_custom_tool_request.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. @@ -37,17 +37,21 @@ def make_instance(self, include_optional) -> CreateCustomToolRequest: return CreateCustomToolRequest( name = 'check_inventory', description = 'Check product inventory levels in warehouse', - edge_function_url = 'https://inventory-api.my-project.quant.cloud', - input_schema = None, + edge_function_code = '', + input_schema = '', is_async = True, - timeout_seconds = 5 + timeout_seconds = 5, + output_schema = '', + output_schema_description = '', + category = '', + response_mode = 'llm' ) else: return CreateCustomToolRequest( name = 'check_inventory', description = 'Check product inventory levels in warehouse', - edge_function_url = 'https://inventory-api.my-project.quant.cloud', - input_schema = None, + edge_function_code = '', + input_schema = '', ) """ diff --git a/test/test_create_environment403_response.py b/test/test_create_environment403_response.py index 94cb8915..fe9166b2 100644 --- a/test/test_create_environment403_response.py +++ b/test/test_create_environment403_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_create_environment_request.py b/test/test_create_environment_request.py index c227484a..4b81d1be 100644 --- a/test/test_create_environment_request.py +++ b/test/test_create_environment_request.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. @@ -38,6 +38,8 @@ def make_instance(self, include_optional) -> CreateEnvironmentRequest: env_name = '', min_capacity = 56, max_capacity = 56, + single_task_only = True, + startup_grace_period_seconds = 0, clone_configuration_from = '', compose_definition = quantcdn.models.compose.Compose( containers = [ @@ -96,13 +98,16 @@ def make_instance(self, include_optional) -> CreateEnvironmentRequest: enabled = True, ip_allow = [ '' - ], ), ) + ], + redirect_host = '', ), ) ], architecture = '', task_cpu = 56, task_memory = 56, min_capacity = 56, max_capacity = 56, + single_task_only = True, + startup_grace_period_seconds = 0, spot_configuration = quantcdn.models.spot_configuration.SpotConfiguration( strategy = 'spot-only', ), enable_cross_env_networking = True, diff --git a/test/test_create_environment_request_environment_inner.py b/test/test_create_environment_request_environment_inner.py index e75388f9..1763f11e 100644 --- a/test/test_create_environment_request_environment_inner.py +++ b/test/test_create_environment_request_environment_inner.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_create_filter_policy_request.py b/test/test_create_filter_policy_request.py new file mode 100644 index 00000000..8c35f282 --- /dev/null +++ b/test/test_create_filter_policy_request.py @@ -0,0 +1,78 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +import unittest + +from quantcdn.models.create_filter_policy_request import CreateFilterPolicyRequest + +class TestCreateFilterPolicyRequest(unittest.TestCase): + """CreateFilterPolicyRequest unit test stubs""" + + def setUp(self): + pass + + def tearDown(self): + pass + + def make_instance(self, include_optional) -> CreateFilterPolicyRequest: + """Test CreateFilterPolicyRequest + include_optional is a boolean, when False only required + params are included, when True both required and + optional params are included """ + # uncomment below to create an instance of `CreateFilterPolicyRequest` + """ + model = CreateFilterPolicyRequest() + if include_optional: + return CreateFilterPolicyRequest( + name = '', + description = '', + enabled = True, + rules = [ + quantcdn.models.create_filter_policy_request_rules_inner.createFilterPolicy_request_rules_inner( + name = '', + match = quantcdn.models.create_filter_policy_request_rules_inner_match.createFilterPolicy_request_rules_inner_match( + type = 'word', + values = [ + '' + ], + pattern = '', ), + action = 'BLOCK', + apply_to = 'input', ) + ] + ) + else: + return CreateFilterPolicyRequest( + name = '', + rules = [ + quantcdn.models.create_filter_policy_request_rules_inner.createFilterPolicy_request_rules_inner( + name = '', + match = quantcdn.models.create_filter_policy_request_rules_inner_match.createFilterPolicy_request_rules_inner_match( + type = 'word', + values = [ + '' + ], + pattern = '', ), + action = 'BLOCK', + apply_to = 'input', ) + ], + ) + """ + + def testCreateFilterPolicyRequest(self): + """Test CreateFilterPolicyRequest""" + # inst_req_only = self.make_instance(include_optional=False) + # inst_req_and_optional = self.make_instance(include_optional=True) + +if __name__ == '__main__': + unittest.main() diff --git a/test/test_create_filter_policy_request_rules_inner.py b/test/test_create_filter_policy_request_rules_inner.py new file mode 100644 index 00000000..61a0deaa --- /dev/null +++ b/test/test_create_filter_policy_request_rules_inner.py @@ -0,0 +1,59 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +import unittest + +from quantcdn.models.create_filter_policy_request_rules_inner import CreateFilterPolicyRequestRulesInner + +class TestCreateFilterPolicyRequestRulesInner(unittest.TestCase): + """CreateFilterPolicyRequestRulesInner unit test stubs""" + + def setUp(self): + pass + + def tearDown(self): + pass + + def make_instance(self, include_optional) -> CreateFilterPolicyRequestRulesInner: + """Test CreateFilterPolicyRequestRulesInner + include_optional is a boolean, when False only required + params are included, when True both required and + optional params are included """ + # uncomment below to create an instance of `CreateFilterPolicyRequestRulesInner` + """ + model = CreateFilterPolicyRequestRulesInner() + if include_optional: + return CreateFilterPolicyRequestRulesInner( + name = '', + match = quantcdn.models.create_filter_policy_request_rules_inner_match.createFilterPolicy_request_rules_inner_match( + type = 'word', + values = [ + '' + ], + pattern = '', ), + action = 'BLOCK', + apply_to = 'input' + ) + else: + return CreateFilterPolicyRequestRulesInner( + ) + """ + + def testCreateFilterPolicyRequestRulesInner(self): + """Test CreateFilterPolicyRequestRulesInner""" + # inst_req_only = self.make_instance(include_optional=False) + # inst_req_and_optional = self.make_instance(include_optional=True) + +if __name__ == '__main__': + unittest.main() diff --git a/test/test_create_filter_policy_request_rules_inner_match.py b/test/test_create_filter_policy_request_rules_inner_match.py new file mode 100644 index 00000000..6551239c --- /dev/null +++ b/test/test_create_filter_policy_request_rules_inner_match.py @@ -0,0 +1,55 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +import unittest + +from quantcdn.models.create_filter_policy_request_rules_inner_match import CreateFilterPolicyRequestRulesInnerMatch + +class TestCreateFilterPolicyRequestRulesInnerMatch(unittest.TestCase): + """CreateFilterPolicyRequestRulesInnerMatch unit test stubs""" + + def setUp(self): + pass + + def tearDown(self): + pass + + def make_instance(self, include_optional) -> CreateFilterPolicyRequestRulesInnerMatch: + """Test CreateFilterPolicyRequestRulesInnerMatch + include_optional is a boolean, when False only required + params are included, when True both required and + optional params are included """ + # uncomment below to create an instance of `CreateFilterPolicyRequestRulesInnerMatch` + """ + model = CreateFilterPolicyRequestRulesInnerMatch() + if include_optional: + return CreateFilterPolicyRequestRulesInnerMatch( + type = 'word', + values = [ + '' + ], + pattern = '' + ) + else: + return CreateFilterPolicyRequestRulesInnerMatch( + ) + """ + + def testCreateFilterPolicyRequestRulesInnerMatch(self): + """Test CreateFilterPolicyRequestRulesInnerMatch""" + # inst_req_only = self.make_instance(include_optional=False) + # inst_req_and_optional = self.make_instance(include_optional=True) + +if __name__ == '__main__': + unittest.main() diff --git a/test/test_create_orchestration_request.py b/test/test_create_orchestration_request.py new file mode 100644 index 00000000..37272792 --- /dev/null +++ b/test/test_create_orchestration_request.py @@ -0,0 +1,81 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +import unittest + +from quantcdn.models.create_orchestration_request import CreateOrchestrationRequest + +class TestCreateOrchestrationRequest(unittest.TestCase): + """CreateOrchestrationRequest unit test stubs""" + + def setUp(self): + pass + + def tearDown(self): + pass + + def make_instance(self, include_optional) -> CreateOrchestrationRequest: + """Test CreateOrchestrationRequest + include_optional is a boolean, when False only required + params are included, when True both required and + optional params are included """ + # uncomment below to create an instance of `CreateOrchestrationRequest` + """ + model = CreateOrchestrationRequest() + if include_optional: + return CreateOrchestrationRequest( + name = 'Process batch documents', + description = '', + agent_id = '', + tool_id = '', + workflow_id = '', + input_source = quantcdn.models.create_orchestration_request_input_source.createOrchestration_request_inputSource( + type = 'static', + items = [ + None + ], + task_query = quantcdn.models.task_query.taskQuery(), + generator_prompt = '', ), + batch_size = 1, + concurrency = 1, + stop_condition = quantcdn.models.create_orchestration_request_stop_condition.createOrchestration_request_stopCondition( + type = 'all_complete', + max_iterations = 1, + condition_prompt = '', ), + assigned_skills = [ + '' + ], + context = None, + auto_start = True + ) + else: + return CreateOrchestrationRequest( + name = 'Process batch documents', + input_source = quantcdn.models.create_orchestration_request_input_source.createOrchestration_request_inputSource( + type = 'static', + items = [ + None + ], + task_query = quantcdn.models.task_query.taskQuery(), + generator_prompt = '', ), + ) + """ + + def testCreateOrchestrationRequest(self): + """Test CreateOrchestrationRequest""" + # inst_req_only = self.make_instance(include_optional=False) + # inst_req_and_optional = self.make_instance(include_optional=True) + +if __name__ == '__main__': + unittest.main() diff --git a/test/test_create_orchestration_request_input_source.py b/test/test_create_orchestration_request_input_source.py new file mode 100644 index 00000000..4bb763d0 --- /dev/null +++ b/test/test_create_orchestration_request_input_source.py @@ -0,0 +1,57 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +import unittest + +from quantcdn.models.create_orchestration_request_input_source import CreateOrchestrationRequestInputSource + +class TestCreateOrchestrationRequestInputSource(unittest.TestCase): + """CreateOrchestrationRequestInputSource unit test stubs""" + + def setUp(self): + pass + + def tearDown(self): + pass + + def make_instance(self, include_optional) -> CreateOrchestrationRequestInputSource: + """Test CreateOrchestrationRequestInputSource + include_optional is a boolean, when False only required + params are included, when True both required and + optional params are included """ + # uncomment below to create an instance of `CreateOrchestrationRequestInputSource` + """ + model = CreateOrchestrationRequestInputSource() + if include_optional: + return CreateOrchestrationRequestInputSource( + type = 'static', + items = [ + None + ], + task_query = None, + generator_prompt = '' + ) + else: + return CreateOrchestrationRequestInputSource( + type = 'static', + ) + """ + + def testCreateOrchestrationRequestInputSource(self): + """Test CreateOrchestrationRequestInputSource""" + # inst_req_only = self.make_instance(include_optional=False) + # inst_req_and_optional = self.make_instance(include_optional=True) + +if __name__ == '__main__': + unittest.main() diff --git a/test/test_create_orchestration_request_stop_condition.py b/test/test_create_orchestration_request_stop_condition.py new file mode 100644 index 00000000..5bde72f7 --- /dev/null +++ b/test/test_create_orchestration_request_stop_condition.py @@ -0,0 +1,53 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +import unittest + +from quantcdn.models.create_orchestration_request_stop_condition import CreateOrchestrationRequestStopCondition + +class TestCreateOrchestrationRequestStopCondition(unittest.TestCase): + """CreateOrchestrationRequestStopCondition unit test stubs""" + + def setUp(self): + pass + + def tearDown(self): + pass + + def make_instance(self, include_optional) -> CreateOrchestrationRequestStopCondition: + """Test CreateOrchestrationRequestStopCondition + include_optional is a boolean, when False only required + params are included, when True both required and + optional params are included """ + # uncomment below to create an instance of `CreateOrchestrationRequestStopCondition` + """ + model = CreateOrchestrationRequestStopCondition() + if include_optional: + return CreateOrchestrationRequestStopCondition( + type = 'all_complete', + max_iterations = 1, + condition_prompt = '' + ) + else: + return CreateOrchestrationRequestStopCondition( + ) + """ + + def testCreateOrchestrationRequestStopCondition(self): + """Test CreateOrchestrationRequestStopCondition""" + # inst_req_only = self.make_instance(include_optional=False) + # inst_req_and_optional = self.make_instance(include_optional=True) + +if __name__ == '__main__': + unittest.main() diff --git a/test/test_create_skill201_response.py b/test/test_create_skill201_response.py new file mode 100644 index 00000000..ad0c1ff4 --- /dev/null +++ b/test/test_create_skill201_response.py @@ -0,0 +1,53 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +import unittest + +from quantcdn.models.create_skill201_response import CreateSkill201Response + +class TestCreateSkill201Response(unittest.TestCase): + """CreateSkill201Response unit test stubs""" + + def setUp(self): + pass + + def tearDown(self): + pass + + def make_instance(self, include_optional) -> CreateSkill201Response: + """Test CreateSkill201Response + include_optional is a boolean, when False only required + params are included, when True both required and + optional params are included """ + # uncomment below to create an instance of `CreateSkill201Response` + """ + model = CreateSkill201Response() + if include_optional: + return CreateSkill201Response( + success = True, + skill = None, + message = 'Skill created successfully' + ) + else: + return CreateSkill201Response( + ) + """ + + def testCreateSkill201Response(self): + """Test CreateSkill201Response""" + # inst_req_only = self.make_instance(include_optional=False) + # inst_req_and_optional = self.make_instance(include_optional=True) + +if __name__ == '__main__': + unittest.main() diff --git a/test/test_create_skill_request.py b/test/test_create_skill_request.py new file mode 100644 index 00000000..5930c581 --- /dev/null +++ b/test/test_create_skill_request.py @@ -0,0 +1,70 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +import unittest + +from quantcdn.models.create_skill_request import CreateSkillRequest + +class TestCreateSkillRequest(unittest.TestCase): + """CreateSkillRequest unit test stubs""" + + def setUp(self): + pass + + def tearDown(self): + pass + + def make_instance(self, include_optional) -> CreateSkillRequest: + """Test CreateSkillRequest + include_optional is a boolean, when False only required + params are included, when True both required and + optional params are included """ + # uncomment below to create an instance of `CreateSkillRequest` + """ + model = CreateSkillRequest() + if include_optional: + return CreateSkillRequest( + name = 'code-review', + description = 'Expert code review with security analysis', + content = 'You are an expert code reviewer...', + trigger_condition = 'When the user asks for code review', + tags = [ + '' + ], + required_tools = [ + '' + ], + namespace = '', + files = None, + disable_model_invocation = True, + allowed_tools = [ + '' + ], + installed_by = '' + ) + else: + return CreateSkillRequest( + name = 'code-review', + content = 'You are an expert code reviewer...', + trigger_condition = 'When the user asks for code review', + ) + """ + + def testCreateSkillRequest(self): + """Test CreateSkillRequest""" + # inst_req_only = self.make_instance(include_optional=False) + # inst_req_and_optional = self.make_instance(include_optional=True) + +if __name__ == '__main__': + unittest.main() diff --git a/test/test_create_slack_bot201_response.py b/test/test_create_slack_bot201_response.py new file mode 100644 index 00000000..9774b02e --- /dev/null +++ b/test/test_create_slack_bot201_response.py @@ -0,0 +1,51 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +import unittest + +from quantcdn.models.create_slack_bot201_response import CreateSlackBot201Response + +class TestCreateSlackBot201Response(unittest.TestCase): + """CreateSlackBot201Response unit test stubs""" + + def setUp(self): + pass + + def tearDown(self): + pass + + def make_instance(self, include_optional) -> CreateSlackBot201Response: + """Test CreateSlackBot201Response + include_optional is a boolean, when False only required + params are included, when True both required and + optional params are included """ + # uncomment below to create an instance of `CreateSlackBot201Response` + """ + model = CreateSlackBot201Response() + if include_optional: + return CreateSlackBot201Response( + bot = None + ) + else: + return CreateSlackBot201Response( + ) + """ + + def testCreateSlackBot201Response(self): + """Test CreateSlackBot201Response""" + # inst_req_only = self.make_instance(include_optional=False) + # inst_req_and_optional = self.make_instance(include_optional=True) + +if __name__ == '__main__': + unittest.main() diff --git a/test/test_create_slack_bot_request.py b/test/test_create_slack_bot_request.py new file mode 100644 index 00000000..0861636c --- /dev/null +++ b/test/test_create_slack_bot_request.py @@ -0,0 +1,94 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +import unittest + +from quantcdn.models.create_slack_bot_request import CreateSlackBotRequest + +class TestCreateSlackBotRequest(unittest.TestCase): + """CreateSlackBotRequest unit test stubs""" + + def setUp(self): + pass + + def tearDown(self): + pass + + def make_instance(self, include_optional) -> CreateSlackBotRequest: + """Test CreateSlackBotRequest + include_optional is a boolean, when False only required + params are included, when True both required and + optional params are included """ + # uncomment below to create an instance of `CreateSlackBotRequest` + """ + model = CreateSlackBotRequest() + if include_optional: + return CreateSlackBotRequest( + name = '', + setup_type = 'quant', + system_prompt = '', + model_id = '', + temperature = 0, + max_tokens = 1, + allowed_tools = [ + '' + ], + assigned_skills = [ + '' + ], + allowed_collections = [ + '' + ], + allowed_sub_agents = [ + '' + ], + guardrail_preset = '', + filter_policies = [ + '' + ], + long_context = True, + session_ttl_days = 1, + allowed_channels = [ + '' + ], + allowed_users = [ + '' + ], + denied_users = [ + '' + ], + allow_guests = True, + home_tab_content = '', + agent_access_control = None, + keywords_enabled = True, + keywords = [ + '' + ] + ) + else: + return CreateSlackBotRequest( + name = '', + setup_type = 'quant', + system_prompt = '', + model_id = '', + ) + """ + + def testCreateSlackBotRequest(self): + """Test CreateSlackBotRequest""" + # inst_req_only = self.make_instance(include_optional=False) + # inst_req_and_optional = self.make_instance(include_optional=True) + +if __name__ == '__main__': + unittest.main() diff --git a/test/test_create_task201_response.py b/test/test_create_task201_response.py index 41cf7b3e..208ada2f 100644 --- a/test/test_create_task201_response.py +++ b/test/test_create_task201_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_create_task_request.py b/test/test_create_task_request.py index d62ccc19..ba77b7ff 100644 --- a/test/test_create_task_request.py +++ b/test/test_create_task_request.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_create_vector_collection201_response.py b/test/test_create_vector_collection201_response.py index 425118cf..e53633d0 100644 --- a/test/test_create_vector_collection201_response.py +++ b/test/test_create_vector_collection201_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_create_vector_collection201_response_collection.py b/test/test_create_vector_collection201_response_collection.py index 7e55f46b..3f7343af 100644 --- a/test/test_create_vector_collection201_response_collection.py +++ b/test/test_create_vector_collection201_response_collection.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_create_vector_collection_request.py b/test/test_create_vector_collection_request.py index 3ece7cbf..1dd0e606 100644 --- a/test/test_create_vector_collection_request.py +++ b/test/test_create_vector_collection_request.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. @@ -43,6 +43,7 @@ def make_instance(self, include_optional) -> CreateVectorCollectionRequest: else: return CreateVectorCollectionRequest( name = 'product-documentation', + embedding_model = 'amazon.titan-embed-text-v2:0', ) """ diff --git a/test/test_create_volume_request.py b/test/test_create_volume_request.py index 8ca2d344..021b6424 100644 --- a/test/test_create_volume_request.py +++ b/test/test_create_volume_request.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_cron.py b/test/test_cron.py index e7e9d4bd..f829af60 100644 --- a/test/test_cron.py +++ b/test/test_cron.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. @@ -36,8 +36,13 @@ def make_instance(self, include_optional) -> Cron: if include_optional: return Cron( name = '', - schedule = '', - command = '' + description = '', + schedule_expression = '', + command = [ + '' + ], + target_container_name = '', + is_enabled = True ) else: return Cron( diff --git a/test/test_cron_api.py b/test/test_cron_api.py index e4bdc3cb..9f0f4075 100644 --- a/test/test_cron_api.py +++ b/test/test_cron_api.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_cron_run.py b/test/test_cron_run.py index 601d077e..a0dc656f 100644 --- a/test/test_cron_run.py +++ b/test/test_cron_run.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_delete_agent_overlay200_response.py b/test/test_delete_agent_overlay200_response.py new file mode 100644 index 00000000..53a19885 --- /dev/null +++ b/test/test_delete_agent_overlay200_response.py @@ -0,0 +1,52 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +import unittest + +from quantcdn.models.delete_agent_overlay200_response import DeleteAgentOverlay200Response + +class TestDeleteAgentOverlay200Response(unittest.TestCase): + """DeleteAgentOverlay200Response unit test stubs""" + + def setUp(self): + pass + + def tearDown(self): + pass + + def make_instance(self, include_optional) -> DeleteAgentOverlay200Response: + """Test DeleteAgentOverlay200Response + include_optional is a boolean, when False only required + params are included, when True both required and + optional params are included """ + # uncomment below to create an instance of `DeleteAgentOverlay200Response` + """ + model = DeleteAgentOverlay200Response() + if include_optional: + return DeleteAgentOverlay200Response( + success = True, + message = 'Agent reverted to defaults' + ) + else: + return DeleteAgentOverlay200Response( + ) + """ + + def testDeleteAgentOverlay200Response(self): + """Test DeleteAgentOverlay200Response""" + # inst_req_only = self.make_instance(include_optional=False) + # inst_req_and_optional = self.make_instance(include_optional=True) + +if __name__ == '__main__': + unittest.main() diff --git a/test/test_delete_ai_agent200_response.py b/test/test_delete_ai_agent200_response.py index e19835af..d2b9c040 100644 --- a/test/test_delete_ai_agent200_response.py +++ b/test/test_delete_ai_agent200_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_delete_ai_session200_response.py b/test/test_delete_ai_session200_response.py index ba926cc8..9d90b087 100644 --- a/test/test_delete_ai_session200_response.py +++ b/test/test_delete_ai_session200_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_delete_backup200_response.py b/test/test_delete_backup200_response.py index 0062858f..8a14aa26 100644 --- a/test/test_delete_backup200_response.py +++ b/test/test_delete_backup200_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_delete_custom_tool200_response.py b/test/test_delete_custom_tool200_response.py index f07d1a7e..1b8dd2c2 100644 --- a/test/test_delete_custom_tool200_response.py +++ b/test/test_delete_custom_tool200_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_delete_file200_response.py b/test/test_delete_file200_response.py index 6cb0cbb4..be7c1bcd 100644 --- a/test/test_delete_file200_response.py +++ b/test/test_delete_file200_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_delete_skill200_response.py b/test/test_delete_skill200_response.py new file mode 100644 index 00000000..37228fe9 --- /dev/null +++ b/test/test_delete_skill200_response.py @@ -0,0 +1,52 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +import unittest + +from quantcdn.models.delete_skill200_response import DeleteSkill200Response + +class TestDeleteSkill200Response(unittest.TestCase): + """DeleteSkill200Response unit test stubs""" + + def setUp(self): + pass + + def tearDown(self): + pass + + def make_instance(self, include_optional) -> DeleteSkill200Response: + """Test DeleteSkill200Response + include_optional is a boolean, when False only required + params are included, when True both required and + optional params are included """ + # uncomment below to create an instance of `DeleteSkill200Response` + """ + model = DeleteSkill200Response() + if include_optional: + return DeleteSkill200Response( + success = True, + message = 'Skill deleted successfully' + ) + else: + return DeleteSkill200Response( + ) + """ + + def testDeleteSkill200Response(self): + """Test DeleteSkill200Response""" + # inst_req_only = self.make_instance(include_optional=False) + # inst_req_and_optional = self.make_instance(include_optional=True) + +if __name__ == '__main__': + unittest.main() diff --git a/test/test_delete_vector_collection200_response.py b/test/test_delete_skill_collection200_response.py similarity index 53% rename from test/test_delete_vector_collection200_response.py rename to test/test_delete_skill_collection200_response.py index 65fc64c1..55dafc00 100644 --- a/test/test_delete_vector_collection200_response.py +++ b/test/test_delete_skill_collection200_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. @@ -14,10 +14,10 @@ import unittest -from quantcdn.models.delete_vector_collection200_response import DeleteVectorCollection200Response +from quantcdn.models.delete_skill_collection200_response import DeleteSkillCollection200Response -class TestDeleteVectorCollection200Response(unittest.TestCase): - """DeleteVectorCollection200Response unit test stubs""" +class TestDeleteSkillCollection200Response(unittest.TestCase): + """DeleteSkillCollection200Response unit test stubs""" def setUp(self): pass @@ -25,26 +25,26 @@ def setUp(self): def tearDown(self): pass - def make_instance(self, include_optional) -> DeleteVectorCollection200Response: - """Test DeleteVectorCollection200Response + def make_instance(self, include_optional) -> DeleteSkillCollection200Response: + """Test DeleteSkillCollection200Response include_optional is a boolean, when False only required params are included, when True both required and optional params are included """ - # uncomment below to create an instance of `DeleteVectorCollection200Response` + # uncomment below to create an instance of `DeleteSkillCollection200Response` """ - model = DeleteVectorCollection200Response() + model = DeleteSkillCollection200Response() if include_optional: - return DeleteVectorCollection200Response( + return DeleteSkillCollection200Response( success = True, message = 'Collection deleted successfully' ) else: - return DeleteVectorCollection200Response( + return DeleteSkillCollection200Response( ) """ - def testDeleteVectorCollection200Response(self): - """Test DeleteVectorCollection200Response""" + def testDeleteSkillCollection200Response(self): + """Test DeleteSkillCollection200Response""" # inst_req_only = self.make_instance(include_optional=False) # inst_req_and_optional = self.make_instance(include_optional=True) diff --git a/test/test_delete_slack_bot200_response.py b/test/test_delete_slack_bot200_response.py new file mode 100644 index 00000000..d48954ea --- /dev/null +++ b/test/test_delete_slack_bot200_response.py @@ -0,0 +1,52 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +import unittest + +from quantcdn.models.delete_slack_bot200_response import DeleteSlackBot200Response + +class TestDeleteSlackBot200Response(unittest.TestCase): + """DeleteSlackBot200Response unit test stubs""" + + def setUp(self): + pass + + def tearDown(self): + pass + + def make_instance(self, include_optional) -> DeleteSlackBot200Response: + """Test DeleteSlackBot200Response + include_optional is a boolean, when False only required + params are included, when True both required and + optional params are included """ + # uncomment below to create an instance of `DeleteSlackBot200Response` + """ + model = DeleteSlackBot200Response() + if include_optional: + return DeleteSlackBot200Response( + success = True, + message = 'Slack bot deleted successfully' + ) + else: + return DeleteSlackBot200Response( + ) + """ + + def testDeleteSlackBot200Response(self): + """Test DeleteSlackBot200Response""" + # inst_req_only = self.make_instance(include_optional=False) + # inst_req_and_optional = self.make_instance(include_optional=True) + +if __name__ == '__main__': + unittest.main() diff --git a/test/test_delete_task200_response.py b/test/test_delete_task200_response.py index 26037595..a8434e0d 100644 --- a/test/test_delete_task200_response.py +++ b/test/test_delete_task200_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_delete_task409_response.py b/test/test_delete_task409_response.py index 2a1450b5..2eb0fd76 100644 --- a/test/test_delete_task409_response.py +++ b/test/test_delete_task409_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_delete_vector_documents200_response.py b/test/test_delete_vector_documents200_response.py new file mode 100644 index 00000000..53463dc9 --- /dev/null +++ b/test/test_delete_vector_documents200_response.py @@ -0,0 +1,53 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +import unittest + +from quantcdn.models.delete_vector_documents200_response import DeleteVectorDocuments200Response + +class TestDeleteVectorDocuments200Response(unittest.TestCase): + """DeleteVectorDocuments200Response unit test stubs""" + + def setUp(self): + pass + + def tearDown(self): + pass + + def make_instance(self, include_optional) -> DeleteVectorDocuments200Response: + """Test DeleteVectorDocuments200Response + include_optional is a boolean, when False only required + params are included, when True both required and + optional params are included """ + # uncomment below to create an instance of `DeleteVectorDocuments200Response` + """ + model = DeleteVectorDocuments200Response() + if include_optional: + return DeleteVectorDocuments200Response( + message = '', + collection_id = '', + deleted_count = 56 + ) + else: + return DeleteVectorDocuments200Response( + ) + """ + + def testDeleteVectorDocuments200Response(self): + """Test DeleteVectorDocuments200Response""" + # inst_req_only = self.make_instance(include_optional=False) + # inst_req_and_optional = self.make_instance(include_optional=True) + +if __name__ == '__main__': + unittest.main() diff --git a/test/test_delete_vector_documents_request.py b/test/test_delete_vector_documents_request.py new file mode 100644 index 00000000..5bbdfb26 --- /dev/null +++ b/test/test_delete_vector_documents_request.py @@ -0,0 +1,62 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +import unittest + +from quantcdn.models.delete_vector_documents_request import DeleteVectorDocumentsRequest + +class TestDeleteVectorDocumentsRequest(unittest.TestCase): + """DeleteVectorDocumentsRequest unit test stubs""" + + def setUp(self): + pass + + def tearDown(self): + pass + + def make_instance(self, include_optional) -> DeleteVectorDocumentsRequest: + """Test DeleteVectorDocumentsRequest + include_optional is a boolean, when False only required + params are included, when True both required and + optional params are included """ + # uncomment below to create an instance of `DeleteVectorDocumentsRequest` + """ + model = DeleteVectorDocumentsRequest() + if include_optional: + return DeleteVectorDocumentsRequest( + purge_all = True, + document_ids = [ + '' + ], + keys = [ + '' + ], + metadata = quantcdn.models.delete_vector_documents_request_metadata.deleteVectorDocuments_request_metadata( + field = '', + values = [ + '' + ], ) + ) + else: + return DeleteVectorDocumentsRequest( + ) + """ + + def testDeleteVectorDocumentsRequest(self): + """Test DeleteVectorDocumentsRequest""" + # inst_req_only = self.make_instance(include_optional=False) + # inst_req_and_optional = self.make_instance(include_optional=True) + +if __name__ == '__main__': + unittest.main() diff --git a/test/test_delete_vector_documents_request_metadata.py b/test/test_delete_vector_documents_request_metadata.py new file mode 100644 index 00000000..e3c68720 --- /dev/null +++ b/test/test_delete_vector_documents_request_metadata.py @@ -0,0 +1,54 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +import unittest + +from quantcdn.models.delete_vector_documents_request_metadata import DeleteVectorDocumentsRequestMetadata + +class TestDeleteVectorDocumentsRequestMetadata(unittest.TestCase): + """DeleteVectorDocumentsRequestMetadata unit test stubs""" + + def setUp(self): + pass + + def tearDown(self): + pass + + def make_instance(self, include_optional) -> DeleteVectorDocumentsRequestMetadata: + """Test DeleteVectorDocumentsRequestMetadata + include_optional is a boolean, when False only required + params are included, when True both required and + optional params are included """ + # uncomment below to create an instance of `DeleteVectorDocumentsRequestMetadata` + """ + model = DeleteVectorDocumentsRequestMetadata() + if include_optional: + return DeleteVectorDocumentsRequestMetadata( + var_field = '', + values = [ + '' + ] + ) + else: + return DeleteVectorDocumentsRequestMetadata( + ) + """ + + def testDeleteVectorDocumentsRequestMetadata(self): + """Test DeleteVectorDocumentsRequestMetadata""" + # inst_req_only = self.make_instance(include_optional=False) + # inst_req_and_optional = self.make_instance(include_optional=True) + +if __name__ == '__main__': + unittest.main() diff --git a/test/test_domains_api.py b/test/test_domains_api.py index c971298d..ce0a3c42 100644 --- a/test/test_domains_api.py +++ b/test/test_domains_api.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_download_backup200_response.py b/test/test_download_backup200_response.py index 88bb40ae..989f3ffc 100644 --- a/test/test_download_backup200_response.py +++ b/test/test_download_backup200_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_embeddings200_response.py b/test/test_embeddings200_response.py index 99b5f129..a8e24d80 100644 --- a/test/test_embeddings200_response.py +++ b/test/test_embeddings200_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_embeddings200_response_embeddings.py b/test/test_embeddings200_response_embeddings.py index 44d405a8..f3f857da 100644 --- a/test/test_embeddings200_response_embeddings.py +++ b/test/test_embeddings200_response_embeddings.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_embeddings200_response_usage.py b/test/test_embeddings200_response_usage.py index b8de7f40..839e14ea 100644 --- a/test/test_embeddings200_response_usage.py +++ b/test/test_embeddings200_response_usage.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_embeddings_request.py b/test/test_embeddings_request.py index 510a2c4e..99d390c0 100644 --- a/test/test_embeddings_request.py +++ b/test/test_embeddings_request.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_embeddings_request_input.py b/test/test_embeddings_request_input.py index 930ae7c5..bee9815a 100644 --- a/test/test_embeddings_request_input.py +++ b/test/test_embeddings_request_input.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_environment.py b/test/test_environment.py index b780cd50..73f353cc 100644 --- a/test/test_environment.py +++ b/test/test_environment.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_environment_response.py b/test/test_environment_response.py index f4eaad93..f2f78c47 100644 --- a/test/test_environment_response.py +++ b/test/test_environment_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. @@ -43,16 +43,16 @@ def make_instance(self, include_optional) -> EnvironmentResponse: max_capacity = 5, public_ip_address = '54.123.45.67', deployment_status = 'COMPLETED', - deployment_failure_type = 'IMAGE_PULL_ERROR', - deployment_failure_reason = 'CannotPullContainerError: pull image manifest has been retried 5 times', + deployment_failure_type = '', + deployment_failure_reason = '', task_definition = None, service = None, load_balancer = None, security_group = None, subnet = None, vpc = None, - containers = [ - None + container_names = [ + '' ], volumes = [ quantcdn.models.volume.Volume( @@ -68,8 +68,13 @@ def make_instance(self, include_optional) -> EnvironmentResponse: cron = [ quantcdn.models.cron.Cron( name = '', - schedule = '', - command = '', ) + description = '', + schedule_expression = '', + command = [ + '' + ], + target_container_name = '', + is_enabled = True, ) ], alb_routing = None, created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), diff --git a/test/test_environment_summary.py b/test/test_environment_summary.py index 6be0d163..fe3fbedf 100644 --- a/test/test_environment_summary.py +++ b/test/test_environment_summary.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_environments_api.py b/test/test_environments_api.py index 3ea91b00..27c28eb9 100644 --- a/test/test_environments_api.py +++ b/test/test_environments_api.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_extend_ai_session200_response.py b/test/test_extend_ai_session200_response.py index 2520e301..0c910888 100644 --- a/test/test_extend_ai_session200_response.py +++ b/test/test_extend_ai_session200_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_extend_ai_session_request.py b/test/test_extend_ai_session_request.py index 9cb9b590..6b575d6c 100644 --- a/test/test_extend_ai_session_request.py +++ b/test/test_extend_ai_session_request.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_get_agent_overlay200_response.py b/test/test_get_agent_overlay200_response.py new file mode 100644 index 00000000..52248aba --- /dev/null +++ b/test/test_get_agent_overlay200_response.py @@ -0,0 +1,82 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +import unittest + +from quantcdn.models.get_agent_overlay200_response import GetAgentOverlay200Response + +class TestGetAgentOverlay200Response(unittest.TestCase): + """GetAgentOverlay200Response unit test stubs""" + + def setUp(self): + pass + + def tearDown(self): + pass + + def make_instance(self, include_optional) -> GetAgentOverlay200Response: + """Test GetAgentOverlay200Response + include_optional is a boolean, when False only required + params are included, when True both required and + optional params are included """ + # uncomment below to create an instance of `GetAgentOverlay200Response` + """ + model = GetAgentOverlay200Response() + if include_optional: + return GetAgentOverlay200Response( + overlay = quantcdn.models.get_agent_overlay_200_response_overlay.getAgentOverlay_200_response_overlay( + model_id = '', + temperature = 1.337, + max_tokens = 56, + disabled_skills = [ + '' + ], + additional_skills = [ + '' + ], + additional_tools = [ + '' + ], + disabled_tools = [ + '' + ], + system_prompt_append = '', + allowed_collections = [ + '' + ], + guardrail_preset = '', + version = 56, ), + base = quantcdn.models.get_agent_overlay_200_response_base.getAgentOverlay_200_response_base( + agent_id = '', + name = '', + model_id = '', + allowed_tools = [ + '' + ], + assigned_skill_ids = [ + '' + ], ) + ) + else: + return GetAgentOverlay200Response( + ) + """ + + def testGetAgentOverlay200Response(self): + """Test GetAgentOverlay200Response""" + # inst_req_only = self.make_instance(include_optional=False) + # inst_req_and_optional = self.make_instance(include_optional=True) + +if __name__ == '__main__': + unittest.main() diff --git a/test/test_get_agent_overlay200_response_base.py b/test/test_get_agent_overlay200_response_base.py new file mode 100644 index 00000000..e10f4b85 --- /dev/null +++ b/test/test_get_agent_overlay200_response_base.py @@ -0,0 +1,59 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +import unittest + +from quantcdn.models.get_agent_overlay200_response_base import GetAgentOverlay200ResponseBase + +class TestGetAgentOverlay200ResponseBase(unittest.TestCase): + """GetAgentOverlay200ResponseBase unit test stubs""" + + def setUp(self): + pass + + def tearDown(self): + pass + + def make_instance(self, include_optional) -> GetAgentOverlay200ResponseBase: + """Test GetAgentOverlay200ResponseBase + include_optional is a boolean, when False only required + params are included, when True both required and + optional params are included """ + # uncomment below to create an instance of `GetAgentOverlay200ResponseBase` + """ + model = GetAgentOverlay200ResponseBase() + if include_optional: + return GetAgentOverlay200ResponseBase( + agent_id = '', + name = '', + model_id = '', + allowed_tools = [ + '' + ], + assigned_skill_ids = [ + '' + ] + ) + else: + return GetAgentOverlay200ResponseBase( + ) + """ + + def testGetAgentOverlay200ResponseBase(self): + """Test GetAgentOverlay200ResponseBase""" + # inst_req_only = self.make_instance(include_optional=False) + # inst_req_and_optional = self.make_instance(include_optional=True) + +if __name__ == '__main__': + unittest.main() diff --git a/test/test_get_agent_overlay200_response_overlay.py b/test/test_get_agent_overlay200_response_overlay.py new file mode 100644 index 00000000..dbd23336 --- /dev/null +++ b/test/test_get_agent_overlay200_response_overlay.py @@ -0,0 +1,71 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +import unittest + +from quantcdn.models.get_agent_overlay200_response_overlay import GetAgentOverlay200ResponseOverlay + +class TestGetAgentOverlay200ResponseOverlay(unittest.TestCase): + """GetAgentOverlay200ResponseOverlay unit test stubs""" + + def setUp(self): + pass + + def tearDown(self): + pass + + def make_instance(self, include_optional) -> GetAgentOverlay200ResponseOverlay: + """Test GetAgentOverlay200ResponseOverlay + include_optional is a boolean, when False only required + params are included, when True both required and + optional params are included """ + # uncomment below to create an instance of `GetAgentOverlay200ResponseOverlay` + """ + model = GetAgentOverlay200ResponseOverlay() + if include_optional: + return GetAgentOverlay200ResponseOverlay( + model_id = '', + temperature = 1.337, + max_tokens = 56, + disabled_skills = [ + '' + ], + additional_skills = [ + '' + ], + additional_tools = [ + '' + ], + disabled_tools = [ + '' + ], + system_prompt_append = '', + allowed_collections = [ + '' + ], + guardrail_preset = '', + version = 56 + ) + else: + return GetAgentOverlay200ResponseOverlay( + ) + """ + + def testGetAgentOverlay200ResponseOverlay(self): + """Test GetAgentOverlay200ResponseOverlay""" + # inst_req_only = self.make_instance(include_optional=False) + # inst_req_and_optional = self.make_instance(include_optional=True) + +if __name__ == '__main__': + unittest.main() diff --git a/test/test_get_ai_agent200_response.py b/test/test_get_ai_agent200_response.py index 075d99aa..78cfdd7d 100644 --- a/test/test_get_ai_agent200_response.py +++ b/test/test_get_ai_agent200_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. @@ -50,6 +50,13 @@ def make_instance(self, include_optional) -> GetAIAgent200Response: allowed_collections = [ '' ], + assigned_skills = [ + '' + ], + long_context = True, + guardrail_preset = '', + is_global = True, + has_overlay = True, created_by = '', created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), ) diff --git a/test/test_get_ai_agent200_response_agent.py b/test/test_get_ai_agent200_response_agent.py index 7e42022b..f6cdea47 100644 --- a/test/test_get_ai_agent200_response_agent.py +++ b/test/test_get_ai_agent200_response_agent.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. @@ -49,6 +49,13 @@ def make_instance(self, include_optional) -> GetAIAgent200ResponseAgent: allowed_collections = [ '' ], + assigned_skills = [ + '' + ], + long_context = True, + guardrail_preset = '', + is_global = True, + has_overlay = True, created_by = '', created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f') diff --git a/test/test_get_ai_model200_response.py b/test/test_get_ai_model200_response.py index 615d8cd0..f9fd153e 100644 --- a/test/test_get_ai_model200_response.py +++ b/test/test_get_ai_model200_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_get_ai_model200_response_capabilities.py b/test/test_get_ai_model200_response_capabilities.py index 90df8111..a4112fb8 100644 --- a/test/test_get_ai_model200_response_capabilities.py +++ b/test/test_get_ai_model200_response_capabilities.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_get_ai_model200_response_pricing.py b/test/test_get_ai_model200_response_pricing.py index 20da82df..1a4532ad 100644 --- a/test/test_get_ai_model200_response_pricing.py +++ b/test/test_get_ai_model200_response_pricing.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_get_ai_model404_response.py b/test/test_get_ai_model404_response.py index 2110a3c2..f1f7116d 100644 --- a/test/test_get_ai_model404_response.py +++ b/test/test_get_ai_model404_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_get_ai_orchestration_status200_response.py b/test/test_get_ai_orchestration_status200_response.py index 27e37c69..75cbf16f 100644 --- a/test/test_get_ai_orchestration_status200_response.py +++ b/test/test_get_ai_orchestration_status200_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. @@ -39,7 +39,7 @@ def make_instance(self, include_optional) -> GetAIOrchestrationStatus200Response status = 'complete', tool_count = 2, completed_tools = 2, - synthesized_response = 'Based on the image I generated and the web research...', + result = 'Based on the image I generated and the web research...', tools = [ quantcdn.models.get_ai_orchestration_status_200_response_tools_inner.getAIOrchestrationStatus_200_response_tools_inner( execution_id = 'exec_abc123def456', @@ -50,7 +50,8 @@ def make_instance(self, include_optional) -> GetAIOrchestrationStatus200Response ], error = '', created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), - completed_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f') + completed_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), + duration = 19 ) else: return GetAIOrchestrationStatus200Response( diff --git a/test/test_get_ai_orchestration_status200_response_tools_inner.py b/test/test_get_ai_orchestration_status200_response_tools_inner.py index 3d429373..2f845465 100644 --- a/test/test_get_ai_orchestration_status200_response_tools_inner.py +++ b/test/test_get_ai_orchestration_status200_response_tools_inner.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_get_ai_orchestration_status404_response.py b/test/test_get_ai_orchestration_status404_response.py index 15756ba8..5975029c 100644 --- a/test/test_get_ai_orchestration_status404_response.py +++ b/test/test_get_ai_orchestration_status404_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_get_ai_session200_response.py b/test/test_get_ai_session200_response.py index b5ae658f..594373d1 100644 --- a/test/test_get_ai_session200_response.py +++ b/test/test_get_ai_session200_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_get_ai_tool_execution_status200_response.py b/test/test_get_ai_tool_execution_status200_response.py index 5cc39834..6b112993 100644 --- a/test/test_get_ai_tool_execution_status200_response.py +++ b/test/test_get_ai_tool_execution_status200_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_get_ai_tool_execution_status200_response_result.py b/test/test_get_ai_tool_execution_status200_response_result.py index 85444fcc..0c043002 100644 --- a/test/test_get_ai_tool_execution_status200_response_result.py +++ b/test/test_get_ai_tool_execution_status200_response_result.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_get_ai_tool_execution_status404_response.py b/test/test_get_ai_tool_execution_status404_response.py index 58010315..27256754 100644 --- a/test/test_get_ai_tool_execution_status404_response.py +++ b/test/test_get_ai_tool_execution_status404_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_get_ai_usage_stats200_response.py b/test/test_get_ai_usage_stats200_response.py deleted file mode 100644 index 1985b819..00000000 --- a/test/test_get_ai_usage_stats200_response.py +++ /dev/null @@ -1,53 +0,0 @@ -# coding: utf-8 - -""" - QuantCDN API - - Unified API for QuantCDN Admin and QuantCloud Platform services - - The version of the OpenAPI document: 4.9.0 - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from quantcdn.models.get_ai_usage_stats200_response import GetAIUsageStats200Response - -class TestGetAIUsageStats200Response(unittest.TestCase): - """GetAIUsageStats200Response unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> GetAIUsageStats200Response: - """Test GetAIUsageStats200Response - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included """ - # uncomment below to create an instance of `GetAIUsageStats200Response` - """ - model = GetAIUsageStats200Response() - if include_optional: - return GetAIUsageStats200Response( - total_requests = 150, - total_tokens = 45000, - by_model = {"amazon.nova-lite-v1:0":{"requests":100,"tokens":25000},"amazon.nova-pro-v1:0":{"requests":50,"tokens":20000}} - ) - else: - return GetAIUsageStats200Response( - ) - """ - - def testGetAIUsageStats200Response(self): - """Test GetAIUsageStats200Response""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - -if __name__ == '__main__': - unittest.main() diff --git a/test/test_get_ai_usage_stats200_response_by_model_value.py b/test/test_get_ai_usage_stats200_response_by_model_value.py deleted file mode 100644 index 8bbf1fd0..00000000 --- a/test/test_get_ai_usage_stats200_response_by_model_value.py +++ /dev/null @@ -1,52 +0,0 @@ -# coding: utf-8 - -""" - QuantCDN API - - Unified API for QuantCDN Admin and QuantCloud Platform services - - The version of the OpenAPI document: 4.9.0 - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -import unittest - -from quantcdn.models.get_ai_usage_stats200_response_by_model_value import GetAIUsageStats200ResponseByModelValue - -class TestGetAIUsageStats200ResponseByModelValue(unittest.TestCase): - """GetAIUsageStats200ResponseByModelValue unit test stubs""" - - def setUp(self): - pass - - def tearDown(self): - pass - - def make_instance(self, include_optional) -> GetAIUsageStats200ResponseByModelValue: - """Test GetAIUsageStats200ResponseByModelValue - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included """ - # uncomment below to create an instance of `GetAIUsageStats200ResponseByModelValue` - """ - model = GetAIUsageStats200ResponseByModelValue() - if include_optional: - return GetAIUsageStats200ResponseByModelValue( - requests = 56, - tokens = 56 - ) - else: - return GetAIUsageStats200ResponseByModelValue( - ) - """ - - def testGetAIUsageStats200ResponseByModelValue(self): - """Test GetAIUsageStats200ResponseByModelValue""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) - -if __name__ == '__main__': - unittest.main() diff --git a/test/test_get_custom_tool200_response.py b/test/test_get_custom_tool200_response.py new file mode 100644 index 00000000..58b0d501 --- /dev/null +++ b/test/test_get_custom_tool200_response.py @@ -0,0 +1,62 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +import unittest + +from quantcdn.models.get_custom_tool200_response import GetCustomTool200Response + +class TestGetCustomTool200Response(unittest.TestCase): + """GetCustomTool200Response unit test stubs""" + + def setUp(self): + pass + + def tearDown(self): + pass + + def make_instance(self, include_optional) -> GetCustomTool200Response: + """Test GetCustomTool200Response + include_optional is a boolean, when False only required + params are included, when True both required and + optional params are included """ + # uncomment below to create an instance of `GetCustomTool200Response` + """ + model = GetCustomTool200Response() + if include_optional: + return GetCustomTool200Response( + tool = quantcdn.models.get_custom_tool_200_response_tool.getCustomTool_200_response_tool( + name = 'check_inventory', + description = 'Check product inventory levels', + edge_function_url = 'https://preview.quantcdn.io/_quant/ai-exec/org/project/uuid', + edge_function_code = '', + is_async = False, + input_schema = '', + output_schema = '', + output_schema_description = '', + category = '', + response_mode = 'llm', + created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), ) + ) + else: + return GetCustomTool200Response( + ) + """ + + def testGetCustomTool200Response(self): + """Test GetCustomTool200Response""" + # inst_req_only = self.make_instance(include_optional=False) + # inst_req_and_optional = self.make_instance(include_optional=True) + +if __name__ == '__main__': + unittest.main() diff --git a/test/test_get_custom_tool200_response_tool.py b/test/test_get_custom_tool200_response_tool.py new file mode 100644 index 00000000..fa7f6424 --- /dev/null +++ b/test/test_get_custom_tool200_response_tool.py @@ -0,0 +1,61 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +import unittest + +from quantcdn.models.get_custom_tool200_response_tool import GetCustomTool200ResponseTool + +class TestGetCustomTool200ResponseTool(unittest.TestCase): + """GetCustomTool200ResponseTool unit test stubs""" + + def setUp(self): + pass + + def tearDown(self): + pass + + def make_instance(self, include_optional) -> GetCustomTool200ResponseTool: + """Test GetCustomTool200ResponseTool + include_optional is a boolean, when False only required + params are included, when True both required and + optional params are included """ + # uncomment below to create an instance of `GetCustomTool200ResponseTool` + """ + model = GetCustomTool200ResponseTool() + if include_optional: + return GetCustomTool200ResponseTool( + name = 'check_inventory', + description = 'Check product inventory levels', + edge_function_url = 'https://preview.quantcdn.io/_quant/ai-exec/org/project/uuid', + edge_function_code = '', + is_async = False, + input_schema = '', + output_schema = '', + output_schema_description = '', + category = '', + response_mode = 'llm', + created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f') + ) + else: + return GetCustomTool200ResponseTool( + ) + """ + + def testGetCustomTool200ResponseTool(self): + """Test GetCustomTool200ResponseTool""" + # inst_req_only = self.make_instance(include_optional=False) + # inst_req_and_optional = self.make_instance(include_optional=True) + +if __name__ == '__main__': + unittest.main() diff --git a/test/test_get_dependency_graph200_response.py b/test/test_get_dependency_graph200_response.py index c39900ce..dd3cf613 100644 --- a/test/test_get_dependency_graph200_response.py +++ b/test/test_get_dependency_graph200_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_get_durable_execution_status200_response.py b/test/test_get_durable_execution_status200_response.py index 37b8fef4..875d8d35 100644 --- a/test/test_get_durable_execution_status200_response.py +++ b/test/test_get_durable_execution_status200_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. @@ -53,7 +53,8 @@ def make_instance(self, include_optional) -> GetDurableExecutionStatus200Respons usage = quantcdn.models.get_durable_execution_status_200_response_result_usage.getDurableExecutionStatus_200_response_result_usage( input_tokens = 56, output_tokens = 56, - total_tokens = 56, ), + total_tokens = 56, + cost_cents = 1.337, ), tool_executions = [ None ], ), diff --git a/test/test_get_durable_execution_status200_response_error.py b/test/test_get_durable_execution_status200_response_error.py index 52428959..418968c4 100644 --- a/test/test_get_durable_execution_status200_response_error.py +++ b/test/test_get_durable_execution_status200_response_error.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_get_durable_execution_status200_response_pending_tools_inner.py b/test/test_get_durable_execution_status200_response_pending_tools_inner.py index 093faeb7..703cf922 100644 --- a/test/test_get_durable_execution_status200_response_pending_tools_inner.py +++ b/test/test_get_durable_execution_status200_response_pending_tools_inner.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_get_durable_execution_status200_response_result.py b/test/test_get_durable_execution_status200_response_result.py index de27299d..1c902372 100644 --- a/test/test_get_durable_execution_status200_response_result.py +++ b/test/test_get_durable_execution_status200_response_result.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. @@ -41,7 +41,8 @@ def make_instance(self, include_optional) -> GetDurableExecutionStatus200Respons usage = quantcdn.models.get_durable_execution_status_200_response_result_usage.getDurableExecutionStatus_200_response_result_usage( input_tokens = 56, output_tokens = 56, - total_tokens = 56, ), + total_tokens = 56, + cost_cents = 1.337, ), tool_executions = [ None ] diff --git a/test/test_get_durable_execution_status200_response_result_response.py b/test/test_get_durable_execution_status200_response_result_response.py index b1e34e1a..6d23a47e 100644 --- a/test/test_get_durable_execution_status200_response_result_response.py +++ b/test/test_get_durable_execution_status200_response_result_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_get_durable_execution_status200_response_result_usage.py b/test/test_get_durable_execution_status200_response_result_usage.py index 2d89f483..7c97aab0 100644 --- a/test/test_get_durable_execution_status200_response_result_usage.py +++ b/test/test_get_durable_execution_status200_response_result_usage.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. @@ -37,7 +37,8 @@ def make_instance(self, include_optional) -> GetDurableExecutionStatus200Respons return GetDurableExecutionStatus200ResponseResultUsage( input_tokens = 56, output_tokens = 56, - total_tokens = 56 + total_tokens = 56, + cost_cents = 1.337 ) else: return GetDurableExecutionStatus200ResponseResultUsage( diff --git a/test/test_get_ecr_login_credentials200_response.py b/test/test_get_ecr_login_credentials200_response.py index 248e1960..3cc1c201 100644 --- a/test/test_get_ecr_login_credentials200_response.py +++ b/test/test_get_ecr_login_credentials200_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_get_environment_logs200_response.py b/test/test_get_environment_logs200_response.py index ec6bd18d..6a84b996 100644 --- a/test/test_get_environment_logs200_response.py +++ b/test/test_get_environment_logs200_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_get_environment_logs200_response_log_events_inner.py b/test/test_get_environment_logs200_response_log_events_inner.py index 3187a8e6..87355301 100644 --- a/test/test_get_environment_logs200_response_log_events_inner.py +++ b/test/test_get_environment_logs200_response_log_events_inner.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_get_file200_response.py b/test/test_get_file200_response.py index d09cf11d..b4d80288 100644 --- a/test/test_get_file200_response.py +++ b/test/test_get_file200_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_get_governance_config200_response.py b/test/test_get_governance_config200_response.py new file mode 100644 index 00000000..5e98eff8 --- /dev/null +++ b/test/test_get_governance_config200_response.py @@ -0,0 +1,86 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +import unittest + +from quantcdn.models.get_governance_config200_response import GetGovernanceConfig200Response + +class TestGetGovernanceConfig200Response(unittest.TestCase): + """GetGovernanceConfig200Response unit test stubs""" + + def setUp(self): + pass + + def tearDown(self): + pass + + def make_instance(self, include_optional) -> GetGovernanceConfig200Response: + """Test GetGovernanceConfig200Response + include_optional is a boolean, when False only required + params are included, when True both required and + optional params are included """ + # uncomment below to create an instance of `GetGovernanceConfig200Response` + """ + model = GetGovernanceConfig200Response() + if include_optional: + return GetGovernanceConfig200Response( + org_id = '', + ai_enabled = True, + model_policy = 'unrestricted', + model_list = [ + '' + ], + mandatory_guardrail_preset = '', + mandatory_filter_policies = [ + '' + ], + spend_limits = quantcdn.models.get_governance_config_200_response_spend_limits.getGovernanceConfig_200_response_spendLimits( + monthly_budget_cents = 56, + daily_budget_cents = 56, + per_user_monthly_budget_cents = 56, + per_user_daily_budget_cents = 56, + warning_threshold_percent = 56, + interface_limits = { + 'key' : quantcdn.models.get_governance_config_200_response_spend_limits_interface_limits_value.getGovernanceConfig_200_response_spendLimits_interfaceLimits_value( + daily_cents = 56, + monthly_cents = 56, ) + }, + user_overrides = { + 'key' : quantcdn.models.get_governance_config_200_response_spend_limits_user_overrides_value.getGovernanceConfig_200_response_spendLimits_userOverrides_value( + daily_cents = 56, + monthly_cents = 56, + unlimited = True, ) + }, + per_token_monthly_budget_cents = 56, + per_token_daily_budget_cents = 56, + token_overrides = { + 'key' : quantcdn.models.get_governance_config_200_response_spend_limits_user_overrides_value.getGovernanceConfig_200_response_spendLimits_userOverrides_value( + daily_cents = 56, + monthly_cents = 56, + unlimited = True, ) + }, ), + version = 56 + ) + else: + return GetGovernanceConfig200Response( + ) + """ + + def testGetGovernanceConfig200Response(self): + """Test GetGovernanceConfig200Response""" + # inst_req_only = self.make_instance(include_optional=False) + # inst_req_and_optional = self.make_instance(include_optional=True) + +if __name__ == '__main__': + unittest.main() diff --git a/test/test_get_governance_config200_response_spend_limits.py b/test/test_get_governance_config200_response_spend_limits.py new file mode 100644 index 00000000..077ec80c --- /dev/null +++ b/test/test_get_governance_config200_response_spend_limits.py @@ -0,0 +1,74 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +import unittest + +from quantcdn.models.get_governance_config200_response_spend_limits import GetGovernanceConfig200ResponseSpendLimits + +class TestGetGovernanceConfig200ResponseSpendLimits(unittest.TestCase): + """GetGovernanceConfig200ResponseSpendLimits unit test stubs""" + + def setUp(self): + pass + + def tearDown(self): + pass + + def make_instance(self, include_optional) -> GetGovernanceConfig200ResponseSpendLimits: + """Test GetGovernanceConfig200ResponseSpendLimits + include_optional is a boolean, when False only required + params are included, when True both required and + optional params are included """ + # uncomment below to create an instance of `GetGovernanceConfig200ResponseSpendLimits` + """ + model = GetGovernanceConfig200ResponseSpendLimits() + if include_optional: + return GetGovernanceConfig200ResponseSpendLimits( + monthly_budget_cents = 56, + daily_budget_cents = 56, + per_user_monthly_budget_cents = 56, + per_user_daily_budget_cents = 56, + warning_threshold_percent = 56, + interface_limits = { + 'key' : quantcdn.models.get_governance_config_200_response_spend_limits_interface_limits_value.getGovernanceConfig_200_response_spendLimits_interfaceLimits_value( + daily_cents = 56, + monthly_cents = 56, ) + }, + user_overrides = { + 'key' : quantcdn.models.get_governance_config_200_response_spend_limits_user_overrides_value.getGovernanceConfig_200_response_spendLimits_userOverrides_value( + daily_cents = 56, + monthly_cents = 56, + unlimited = True, ) + }, + per_token_monthly_budget_cents = 56, + per_token_daily_budget_cents = 56, + token_overrides = { + 'key' : quantcdn.models.get_governance_config_200_response_spend_limits_user_overrides_value.getGovernanceConfig_200_response_spendLimits_userOverrides_value( + daily_cents = 56, + monthly_cents = 56, + unlimited = True, ) + } + ) + else: + return GetGovernanceConfig200ResponseSpendLimits( + ) + """ + + def testGetGovernanceConfig200ResponseSpendLimits(self): + """Test GetGovernanceConfig200ResponseSpendLimits""" + # inst_req_only = self.make_instance(include_optional=False) + # inst_req_and_optional = self.make_instance(include_optional=True) + +if __name__ == '__main__': + unittest.main() diff --git a/test/test_get_governance_config200_response_spend_limits_interface_limits_value.py b/test/test_get_governance_config200_response_spend_limits_interface_limits_value.py new file mode 100644 index 00000000..205eb8a7 --- /dev/null +++ b/test/test_get_governance_config200_response_spend_limits_interface_limits_value.py @@ -0,0 +1,52 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +import unittest + +from quantcdn.models.get_governance_config200_response_spend_limits_interface_limits_value import GetGovernanceConfig200ResponseSpendLimitsInterfaceLimitsValue + +class TestGetGovernanceConfig200ResponseSpendLimitsInterfaceLimitsValue(unittest.TestCase): + """GetGovernanceConfig200ResponseSpendLimitsInterfaceLimitsValue unit test stubs""" + + def setUp(self): + pass + + def tearDown(self): + pass + + def make_instance(self, include_optional) -> GetGovernanceConfig200ResponseSpendLimitsInterfaceLimitsValue: + """Test GetGovernanceConfig200ResponseSpendLimitsInterfaceLimitsValue + include_optional is a boolean, when False only required + params are included, when True both required and + optional params are included """ + # uncomment below to create an instance of `GetGovernanceConfig200ResponseSpendLimitsInterfaceLimitsValue` + """ + model = GetGovernanceConfig200ResponseSpendLimitsInterfaceLimitsValue() + if include_optional: + return GetGovernanceConfig200ResponseSpendLimitsInterfaceLimitsValue( + daily_cents = 56, + monthly_cents = 56 + ) + else: + return GetGovernanceConfig200ResponseSpendLimitsInterfaceLimitsValue( + ) + """ + + def testGetGovernanceConfig200ResponseSpendLimitsInterfaceLimitsValue(self): + """Test GetGovernanceConfig200ResponseSpendLimitsInterfaceLimitsValue""" + # inst_req_only = self.make_instance(include_optional=False) + # inst_req_and_optional = self.make_instance(include_optional=True) + +if __name__ == '__main__': + unittest.main() diff --git a/test/test_get_governance_config200_response_spend_limits_user_overrides_value.py b/test/test_get_governance_config200_response_spend_limits_user_overrides_value.py new file mode 100644 index 00000000..936d229c --- /dev/null +++ b/test/test_get_governance_config200_response_spend_limits_user_overrides_value.py @@ -0,0 +1,53 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +import unittest + +from quantcdn.models.get_governance_config200_response_spend_limits_user_overrides_value import GetGovernanceConfig200ResponseSpendLimitsUserOverridesValue + +class TestGetGovernanceConfig200ResponseSpendLimitsUserOverridesValue(unittest.TestCase): + """GetGovernanceConfig200ResponseSpendLimitsUserOverridesValue unit test stubs""" + + def setUp(self): + pass + + def tearDown(self): + pass + + def make_instance(self, include_optional) -> GetGovernanceConfig200ResponseSpendLimitsUserOverridesValue: + """Test GetGovernanceConfig200ResponseSpendLimitsUserOverridesValue + include_optional is a boolean, when False only required + params are included, when True both required and + optional params are included """ + # uncomment below to create an instance of `GetGovernanceConfig200ResponseSpendLimitsUserOverridesValue` + """ + model = GetGovernanceConfig200ResponseSpendLimitsUserOverridesValue() + if include_optional: + return GetGovernanceConfig200ResponseSpendLimitsUserOverridesValue( + daily_cents = 56, + monthly_cents = 56, + unlimited = True + ) + else: + return GetGovernanceConfig200ResponseSpendLimitsUserOverridesValue( + ) + """ + + def testGetGovernanceConfig200ResponseSpendLimitsUserOverridesValue(self): + """Test GetGovernanceConfig200ResponseSpendLimitsUserOverridesValue""" + # inst_req_only = self.make_instance(include_optional=False) + # inst_req_and_optional = self.make_instance(include_optional=True) + +if __name__ == '__main__': + unittest.main() diff --git a/test/test_get_governance_spend200_response.py b/test/test_get_governance_spend200_response.py new file mode 100644 index 00000000..2e41ddcb --- /dev/null +++ b/test/test_get_governance_spend200_response.py @@ -0,0 +1,67 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +import unittest + +from quantcdn.models.get_governance_spend200_response import GetGovernanceSpend200Response + +class TestGetGovernanceSpend200Response(unittest.TestCase): + """GetGovernanceSpend200Response unit test stubs""" + + def setUp(self): + pass + + def tearDown(self): + pass + + def make_instance(self, include_optional) -> GetGovernanceSpend200Response: + """Test GetGovernanceSpend200Response + include_optional is a boolean, when False only required + params are included, when True both required and + optional params are included """ + # uncomment below to create an instance of `GetGovernanceSpend200Response` + """ + model = GetGovernanceSpend200Response() + if include_optional: + return GetGovernanceSpend200Response( + org_total = quantcdn.models.get_governance_spend_200_response_org_total.getGovernanceSpend_200_response_orgTotal( + spend_cents = 56, + request_count = 56, ), + today_total = quantcdn.models.get_governance_spend_200_response_today_total.getGovernanceSpend_200_response_todayTotal( + spend_cents = 56, + request_count = 56, ), + budget = quantcdn.models.get_governance_spend_200_response_budget.getGovernanceSpend_200_response_budget( + monthly_budget_cents = 56, + used_percent = 1.337, + remaining_cents = 56, ), + daily_budget = quantcdn.models.get_governance_spend_200_response_daily_budget.getGovernanceSpend_200_response_dailyBudget( + daily_budget_cents = 56, + used_percent = 1.337, + remaining_cents = 56, ), + user_total = quantcdn.models.get_governance_spend_200_response_user_total.getGovernanceSpend_200_response_userTotal( + monthly_spend_cents = 56, + daily_spend_cents = 56, ) + ) + else: + return GetGovernanceSpend200Response( + ) + """ + + def testGetGovernanceSpend200Response(self): + """Test GetGovernanceSpend200Response""" + # inst_req_only = self.make_instance(include_optional=False) + # inst_req_and_optional = self.make_instance(include_optional=True) + +if __name__ == '__main__': + unittest.main() diff --git a/test/test_get_governance_spend200_response_budget.py b/test/test_get_governance_spend200_response_budget.py new file mode 100644 index 00000000..7df135ec --- /dev/null +++ b/test/test_get_governance_spend200_response_budget.py @@ -0,0 +1,53 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +import unittest + +from quantcdn.models.get_governance_spend200_response_budget import GetGovernanceSpend200ResponseBudget + +class TestGetGovernanceSpend200ResponseBudget(unittest.TestCase): + """GetGovernanceSpend200ResponseBudget unit test stubs""" + + def setUp(self): + pass + + def tearDown(self): + pass + + def make_instance(self, include_optional) -> GetGovernanceSpend200ResponseBudget: + """Test GetGovernanceSpend200ResponseBudget + include_optional is a boolean, when False only required + params are included, when True both required and + optional params are included """ + # uncomment below to create an instance of `GetGovernanceSpend200ResponseBudget` + """ + model = GetGovernanceSpend200ResponseBudget() + if include_optional: + return GetGovernanceSpend200ResponseBudget( + monthly_budget_cents = 56, + used_percent = 1.337, + remaining_cents = 56 + ) + else: + return GetGovernanceSpend200ResponseBudget( + ) + """ + + def testGetGovernanceSpend200ResponseBudget(self): + """Test GetGovernanceSpend200ResponseBudget""" + # inst_req_only = self.make_instance(include_optional=False) + # inst_req_and_optional = self.make_instance(include_optional=True) + +if __name__ == '__main__': + unittest.main() diff --git a/test/test_get_governance_spend200_response_daily_budget.py b/test/test_get_governance_spend200_response_daily_budget.py new file mode 100644 index 00000000..7e6a814e --- /dev/null +++ b/test/test_get_governance_spend200_response_daily_budget.py @@ -0,0 +1,53 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +import unittest + +from quantcdn.models.get_governance_spend200_response_daily_budget import GetGovernanceSpend200ResponseDailyBudget + +class TestGetGovernanceSpend200ResponseDailyBudget(unittest.TestCase): + """GetGovernanceSpend200ResponseDailyBudget unit test stubs""" + + def setUp(self): + pass + + def tearDown(self): + pass + + def make_instance(self, include_optional) -> GetGovernanceSpend200ResponseDailyBudget: + """Test GetGovernanceSpend200ResponseDailyBudget + include_optional is a boolean, when False only required + params are included, when True both required and + optional params are included """ + # uncomment below to create an instance of `GetGovernanceSpend200ResponseDailyBudget` + """ + model = GetGovernanceSpend200ResponseDailyBudget() + if include_optional: + return GetGovernanceSpend200ResponseDailyBudget( + daily_budget_cents = 56, + used_percent = 1.337, + remaining_cents = 56 + ) + else: + return GetGovernanceSpend200ResponseDailyBudget( + ) + """ + + def testGetGovernanceSpend200ResponseDailyBudget(self): + """Test GetGovernanceSpend200ResponseDailyBudget""" + # inst_req_only = self.make_instance(include_optional=False) + # inst_req_and_optional = self.make_instance(include_optional=True) + +if __name__ == '__main__': + unittest.main() diff --git a/test/test_get_governance_spend200_response_org_total.py b/test/test_get_governance_spend200_response_org_total.py new file mode 100644 index 00000000..90559fff --- /dev/null +++ b/test/test_get_governance_spend200_response_org_total.py @@ -0,0 +1,52 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +import unittest + +from quantcdn.models.get_governance_spend200_response_org_total import GetGovernanceSpend200ResponseOrgTotal + +class TestGetGovernanceSpend200ResponseOrgTotal(unittest.TestCase): + """GetGovernanceSpend200ResponseOrgTotal unit test stubs""" + + def setUp(self): + pass + + def tearDown(self): + pass + + def make_instance(self, include_optional) -> GetGovernanceSpend200ResponseOrgTotal: + """Test GetGovernanceSpend200ResponseOrgTotal + include_optional is a boolean, when False only required + params are included, when True both required and + optional params are included """ + # uncomment below to create an instance of `GetGovernanceSpend200ResponseOrgTotal` + """ + model = GetGovernanceSpend200ResponseOrgTotal() + if include_optional: + return GetGovernanceSpend200ResponseOrgTotal( + spend_cents = 56, + request_count = 56 + ) + else: + return GetGovernanceSpend200ResponseOrgTotal( + ) + """ + + def testGetGovernanceSpend200ResponseOrgTotal(self): + """Test GetGovernanceSpend200ResponseOrgTotal""" + # inst_req_only = self.make_instance(include_optional=False) + # inst_req_and_optional = self.make_instance(include_optional=True) + +if __name__ == '__main__': + unittest.main() diff --git a/test/test_get_governance_spend200_response_today_total.py b/test/test_get_governance_spend200_response_today_total.py new file mode 100644 index 00000000..bee4808f --- /dev/null +++ b/test/test_get_governance_spend200_response_today_total.py @@ -0,0 +1,52 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +import unittest + +from quantcdn.models.get_governance_spend200_response_today_total import GetGovernanceSpend200ResponseTodayTotal + +class TestGetGovernanceSpend200ResponseTodayTotal(unittest.TestCase): + """GetGovernanceSpend200ResponseTodayTotal unit test stubs""" + + def setUp(self): + pass + + def tearDown(self): + pass + + def make_instance(self, include_optional) -> GetGovernanceSpend200ResponseTodayTotal: + """Test GetGovernanceSpend200ResponseTodayTotal + include_optional is a boolean, when False only required + params are included, when True both required and + optional params are included """ + # uncomment below to create an instance of `GetGovernanceSpend200ResponseTodayTotal` + """ + model = GetGovernanceSpend200ResponseTodayTotal() + if include_optional: + return GetGovernanceSpend200ResponseTodayTotal( + spend_cents = 56, + request_count = 56 + ) + else: + return GetGovernanceSpend200ResponseTodayTotal( + ) + """ + + def testGetGovernanceSpend200ResponseTodayTotal(self): + """Test GetGovernanceSpend200ResponseTodayTotal""" + # inst_req_only = self.make_instance(include_optional=False) + # inst_req_and_optional = self.make_instance(include_optional=True) + +if __name__ == '__main__': + unittest.main() diff --git a/test/test_get_governance_spend200_response_user_total.py b/test/test_get_governance_spend200_response_user_total.py new file mode 100644 index 00000000..8df7ea83 --- /dev/null +++ b/test/test_get_governance_spend200_response_user_total.py @@ -0,0 +1,52 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +import unittest + +from quantcdn.models.get_governance_spend200_response_user_total import GetGovernanceSpend200ResponseUserTotal + +class TestGetGovernanceSpend200ResponseUserTotal(unittest.TestCase): + """GetGovernanceSpend200ResponseUserTotal unit test stubs""" + + def setUp(self): + pass + + def tearDown(self): + pass + + def make_instance(self, include_optional) -> GetGovernanceSpend200ResponseUserTotal: + """Test GetGovernanceSpend200ResponseUserTotal + include_optional is a boolean, when False only required + params are included, when True both required and + optional params are included """ + # uncomment below to create an instance of `GetGovernanceSpend200ResponseUserTotal` + """ + model = GetGovernanceSpend200ResponseUserTotal() + if include_optional: + return GetGovernanceSpend200ResponseUserTotal( + monthly_spend_cents = 56, + daily_spend_cents = 56 + ) + else: + return GetGovernanceSpend200ResponseUserTotal( + ) + """ + + def testGetGovernanceSpend200ResponseUserTotal(self): + """Test GetGovernanceSpend200ResponseUserTotal""" + # inst_req_only = self.make_instance(include_optional=False) + # inst_req_and_optional = self.make_instance(include_optional=True) + +if __name__ == '__main__': + unittest.main() diff --git a/test/test_get_my_usage200_response.py b/test/test_get_my_usage200_response.py new file mode 100644 index 00000000..f4846604 --- /dev/null +++ b/test/test_get_my_usage200_response.py @@ -0,0 +1,67 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +import unittest + +from quantcdn.models.get_my_usage200_response import GetMyUsage200Response + +class TestGetMyUsage200Response(unittest.TestCase): + """GetMyUsage200Response unit test stubs""" + + def setUp(self): + pass + + def tearDown(self): + pass + + def make_instance(self, include_optional) -> GetMyUsage200Response: + """Test GetMyUsage200Response + include_optional is a boolean, when False only required + params are included, when True both required and + optional params are included """ + # uncomment below to create an instance of `GetMyUsage200Response` + """ + model = GetMyUsage200Response() + if include_optional: + return GetMyUsage200Response( + user_id = '', + current_month = '2026-03', + monthly = quantcdn.models.get_my_usage_200_response_monthly.getMyUsage_200_response_monthly( + spend_cents = 56, + request_count = 56, ), + daily = quantcdn.models.get_my_usage_200_response_daily.getMyUsage_200_response_daily( + spend_cents = 56, ), + quota = quantcdn.models.get_my_usage_200_response_quota.getMyUsage_200_response_quota( + monthly_limit = quantcdn.models.get_my_usage_200_response_quota_monthly_limit.getMyUsage_200_response_quota_monthlyLimit( + limit_cents = 56, + used_percent = 1.337, + remaining_cents = 56, ), + daily_limit = quantcdn.models.get_my_usage_200_response_quota_daily_limit.getMyUsage_200_response_quota_dailyLimit( + limit_cents = 56, + used_percent = 1.337, + remaining_cents = 56, + resets_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), ), ) + ) + else: + return GetMyUsage200Response( + ) + """ + + def testGetMyUsage200Response(self): + """Test GetMyUsage200Response""" + # inst_req_only = self.make_instance(include_optional=False) + # inst_req_and_optional = self.make_instance(include_optional=True) + +if __name__ == '__main__': + unittest.main() diff --git a/test/test_get_my_usage200_response_daily.py b/test/test_get_my_usage200_response_daily.py new file mode 100644 index 00000000..f6522de9 --- /dev/null +++ b/test/test_get_my_usage200_response_daily.py @@ -0,0 +1,51 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +import unittest + +from quantcdn.models.get_my_usage200_response_daily import GetMyUsage200ResponseDaily + +class TestGetMyUsage200ResponseDaily(unittest.TestCase): + """GetMyUsage200ResponseDaily unit test stubs""" + + def setUp(self): + pass + + def tearDown(self): + pass + + def make_instance(self, include_optional) -> GetMyUsage200ResponseDaily: + """Test GetMyUsage200ResponseDaily + include_optional is a boolean, when False only required + params are included, when True both required and + optional params are included """ + # uncomment below to create an instance of `GetMyUsage200ResponseDaily` + """ + model = GetMyUsage200ResponseDaily() + if include_optional: + return GetMyUsage200ResponseDaily( + spend_cents = 56 + ) + else: + return GetMyUsage200ResponseDaily( + ) + """ + + def testGetMyUsage200ResponseDaily(self): + """Test GetMyUsage200ResponseDaily""" + # inst_req_only = self.make_instance(include_optional=False) + # inst_req_and_optional = self.make_instance(include_optional=True) + +if __name__ == '__main__': + unittest.main() diff --git a/test/test_get_my_usage200_response_monthly.py b/test/test_get_my_usage200_response_monthly.py new file mode 100644 index 00000000..6f49163b --- /dev/null +++ b/test/test_get_my_usage200_response_monthly.py @@ -0,0 +1,52 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +import unittest + +from quantcdn.models.get_my_usage200_response_monthly import GetMyUsage200ResponseMonthly + +class TestGetMyUsage200ResponseMonthly(unittest.TestCase): + """GetMyUsage200ResponseMonthly unit test stubs""" + + def setUp(self): + pass + + def tearDown(self): + pass + + def make_instance(self, include_optional) -> GetMyUsage200ResponseMonthly: + """Test GetMyUsage200ResponseMonthly + include_optional is a boolean, when False only required + params are included, when True both required and + optional params are included """ + # uncomment below to create an instance of `GetMyUsage200ResponseMonthly` + """ + model = GetMyUsage200ResponseMonthly() + if include_optional: + return GetMyUsage200ResponseMonthly( + spend_cents = 56, + request_count = 56 + ) + else: + return GetMyUsage200ResponseMonthly( + ) + """ + + def testGetMyUsage200ResponseMonthly(self): + """Test GetMyUsage200ResponseMonthly""" + # inst_req_only = self.make_instance(include_optional=False) + # inst_req_and_optional = self.make_instance(include_optional=True) + +if __name__ == '__main__': + unittest.main() diff --git a/test/test_get_my_usage200_response_quota.py b/test/test_get_my_usage200_response_quota.py new file mode 100644 index 00000000..014ef2dc --- /dev/null +++ b/test/test_get_my_usage200_response_quota.py @@ -0,0 +1,59 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +import unittest + +from quantcdn.models.get_my_usage200_response_quota import GetMyUsage200ResponseQuota + +class TestGetMyUsage200ResponseQuota(unittest.TestCase): + """GetMyUsage200ResponseQuota unit test stubs""" + + def setUp(self): + pass + + def tearDown(self): + pass + + def make_instance(self, include_optional) -> GetMyUsage200ResponseQuota: + """Test GetMyUsage200ResponseQuota + include_optional is a boolean, when False only required + params are included, when True both required and + optional params are included """ + # uncomment below to create an instance of `GetMyUsage200ResponseQuota` + """ + model = GetMyUsage200ResponseQuota() + if include_optional: + return GetMyUsage200ResponseQuota( + monthly_limit = quantcdn.models.get_my_usage_200_response_quota_monthly_limit.getMyUsage_200_response_quota_monthlyLimit( + limit_cents = 56, + used_percent = 1.337, + remaining_cents = 56, ), + daily_limit = quantcdn.models.get_my_usage_200_response_quota_daily_limit.getMyUsage_200_response_quota_dailyLimit( + limit_cents = 56, + used_percent = 1.337, + remaining_cents = 56, + resets_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), ) + ) + else: + return GetMyUsage200ResponseQuota( + ) + """ + + def testGetMyUsage200ResponseQuota(self): + """Test GetMyUsage200ResponseQuota""" + # inst_req_only = self.make_instance(include_optional=False) + # inst_req_and_optional = self.make_instance(include_optional=True) + +if __name__ == '__main__': + unittest.main() diff --git a/test/test_get_my_usage200_response_quota_daily_limit.py b/test/test_get_my_usage200_response_quota_daily_limit.py new file mode 100644 index 00000000..ab165fe6 --- /dev/null +++ b/test/test_get_my_usage200_response_quota_daily_limit.py @@ -0,0 +1,54 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +import unittest + +from quantcdn.models.get_my_usage200_response_quota_daily_limit import GetMyUsage200ResponseQuotaDailyLimit + +class TestGetMyUsage200ResponseQuotaDailyLimit(unittest.TestCase): + """GetMyUsage200ResponseQuotaDailyLimit unit test stubs""" + + def setUp(self): + pass + + def tearDown(self): + pass + + def make_instance(self, include_optional) -> GetMyUsage200ResponseQuotaDailyLimit: + """Test GetMyUsage200ResponseQuotaDailyLimit + include_optional is a boolean, when False only required + params are included, when True both required and + optional params are included """ + # uncomment below to create an instance of `GetMyUsage200ResponseQuotaDailyLimit` + """ + model = GetMyUsage200ResponseQuotaDailyLimit() + if include_optional: + return GetMyUsage200ResponseQuotaDailyLimit( + limit_cents = 56, + used_percent = 1.337, + remaining_cents = 56, + resets_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f') + ) + else: + return GetMyUsage200ResponseQuotaDailyLimit( + ) + """ + + def testGetMyUsage200ResponseQuotaDailyLimit(self): + """Test GetMyUsage200ResponseQuotaDailyLimit""" + # inst_req_only = self.make_instance(include_optional=False) + # inst_req_and_optional = self.make_instance(include_optional=True) + +if __name__ == '__main__': + unittest.main() diff --git a/test/test_get_my_usage200_response_quota_monthly_limit.py b/test/test_get_my_usage200_response_quota_monthly_limit.py new file mode 100644 index 00000000..292e26bf --- /dev/null +++ b/test/test_get_my_usage200_response_quota_monthly_limit.py @@ -0,0 +1,53 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +import unittest + +from quantcdn.models.get_my_usage200_response_quota_monthly_limit import GetMyUsage200ResponseQuotaMonthlyLimit + +class TestGetMyUsage200ResponseQuotaMonthlyLimit(unittest.TestCase): + """GetMyUsage200ResponseQuotaMonthlyLimit unit test stubs""" + + def setUp(self): + pass + + def tearDown(self): + pass + + def make_instance(self, include_optional) -> GetMyUsage200ResponseQuotaMonthlyLimit: + """Test GetMyUsage200ResponseQuotaMonthlyLimit + include_optional is a boolean, when False only required + params are included, when True both required and + optional params are included """ + # uncomment below to create an instance of `GetMyUsage200ResponseQuotaMonthlyLimit` + """ + model = GetMyUsage200ResponseQuotaMonthlyLimit() + if include_optional: + return GetMyUsage200ResponseQuotaMonthlyLimit( + limit_cents = 56, + used_percent = 1.337, + remaining_cents = 56 + ) + else: + return GetMyUsage200ResponseQuotaMonthlyLimit( + ) + """ + + def testGetMyUsage200ResponseQuotaMonthlyLimit(self): + """Test GetMyUsage200ResponseQuotaMonthlyLimit""" + # inst_req_only = self.make_instance(include_optional=False) + # inst_req_and_optional = self.make_instance(include_optional=True) + +if __name__ == '__main__': + unittest.main() diff --git a/test/test_get_restore_status200_response.py b/test/test_get_restore_status200_response.py new file mode 100644 index 00000000..c0be57c4 --- /dev/null +++ b/test/test_get_restore_status200_response.py @@ -0,0 +1,61 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +import unittest + +from quantcdn.models.get_restore_status200_response import GetRestoreStatus200Response + +class TestGetRestoreStatus200Response(unittest.TestCase): + """GetRestoreStatus200Response unit test stubs""" + + def setUp(self): + pass + + def tearDown(self): + pass + + def make_instance(self, include_optional) -> GetRestoreStatus200Response: + """Test GetRestoreStatus200Response + include_optional is a boolean, when False only required + params are included, when True both required and + optional params are included """ + # uncomment below to create an instance of `GetRestoreStatus200Response` + """ + model = GetRestoreStatus200Response() + if include_optional: + return GetRestoreStatus200Response( + restore_id = 'restore-abc123', + org_name = 'test-org', + app_name = 'test-app', + env_name = 'staging', + backup_id = 'quant-gov-dashboard-staging-2025-09-19T21-50-27-145Z', + status = 'completed', + started_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), + completed_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), + error_message = '', + task_arn = '', + ttl = 56 + ) + else: + return GetRestoreStatus200Response( + ) + """ + + def testGetRestoreStatus200Response(self): + """Test GetRestoreStatus200Response""" + # inst_req_only = self.make_instance(include_optional=False) + # inst_req_and_optional = self.make_instance(include_optional=True) + +if __name__ == '__main__': + unittest.main() diff --git a/test/test_get_scaling_policy_response.py b/test/test_get_scaling_policy_response.py new file mode 100644 index 00000000..8aea987a --- /dev/null +++ b/test/test_get_scaling_policy_response.py @@ -0,0 +1,56 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +import unittest + +from quantcdn.models.get_scaling_policy_response import GetScalingPolicyResponse + +class TestGetScalingPolicyResponse(unittest.TestCase): + """GetScalingPolicyResponse unit test stubs""" + + def setUp(self): + pass + + def tearDown(self): + pass + + def make_instance(self, include_optional) -> GetScalingPolicyResponse: + """Test GetScalingPolicyResponse + include_optional is a boolean, when False only required + params are included, when True both required and + optional params are included """ + # uncomment below to create an instance of `GetScalingPolicyResponse` + """ + model = GetScalingPolicyResponse() + if include_optional: + return GetScalingPolicyResponse( + metric = 'CPUUtilization', + target_value = 1.337, + scale_in_cooldown_seconds = 56, + scale_out_cooldown_seconds = 56, + policy_name = '', + resource_label = '' + ) + else: + return GetScalingPolicyResponse( + ) + """ + + def testGetScalingPolicyResponse(self): + """Test GetScalingPolicyResponse""" + # inst_req_only = self.make_instance(include_optional=False) + # inst_req_and_optional = self.make_instance(include_optional=True) + +if __name__ == '__main__': + unittest.main() diff --git a/test/test_get_skill200_response.py b/test/test_get_skill200_response.py new file mode 100644 index 00000000..a23a6fe0 --- /dev/null +++ b/test/test_get_skill200_response.py @@ -0,0 +1,71 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +import unittest + +from quantcdn.models.get_skill200_response import GetSkill200Response + +class TestGetSkill200Response(unittest.TestCase): + """GetSkill200Response unit test stubs""" + + def setUp(self): + pass + + def tearDown(self): + pass + + def make_instance(self, include_optional) -> GetSkill200Response: + """Test GetSkill200Response + include_optional is a boolean, when False only required + params are included, when True both required and + optional params are included """ + # uncomment below to create an instance of `GetSkill200Response` + """ + model = GetSkill200Response() + if include_optional: + return GetSkill200Response( + skill = quantcdn.models.get_skill_200_response_skill.getSkill_200_response_skill( + skill_id = '', + name = '', + description = '', + content = '', + trigger_condition = '', + tags = [ + '' + ], + source = quantcdn.models.source.source(), + required_tools = [ + '' + ], + files = quantcdn.models.files.files(), + namespace = '', + disable_model_invocation = True, + allowed_tools = [ + '' + ], + installed_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), + updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), ) + ) + else: + return GetSkill200Response( + ) + """ + + def testGetSkill200Response(self): + """Test GetSkill200Response""" + # inst_req_only = self.make_instance(include_optional=False) + # inst_req_and_optional = self.make_instance(include_optional=True) + +if __name__ == '__main__': + unittest.main() diff --git a/test/test_get_skill200_response_skill.py b/test/test_get_skill200_response_skill.py new file mode 100644 index 00000000..604a4740 --- /dev/null +++ b/test/test_get_skill200_response_skill.py @@ -0,0 +1,70 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +import unittest + +from quantcdn.models.get_skill200_response_skill import GetSkill200ResponseSkill + +class TestGetSkill200ResponseSkill(unittest.TestCase): + """GetSkill200ResponseSkill unit test stubs""" + + def setUp(self): + pass + + def tearDown(self): + pass + + def make_instance(self, include_optional) -> GetSkill200ResponseSkill: + """Test GetSkill200ResponseSkill + include_optional is a boolean, when False only required + params are included, when True both required and + optional params are included """ + # uncomment below to create an instance of `GetSkill200ResponseSkill` + """ + model = GetSkill200ResponseSkill() + if include_optional: + return GetSkill200ResponseSkill( + skill_id = '', + name = '', + description = '', + content = '', + trigger_condition = '', + tags = [ + '' + ], + source = None, + required_tools = [ + '' + ], + files = None, + namespace = '', + disable_model_invocation = True, + allowed_tools = [ + '' + ], + installed_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), + updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f') + ) + else: + return GetSkill200ResponseSkill( + ) + """ + + def testGetSkill200ResponseSkill(self): + """Test GetSkill200ResponseSkill""" + # inst_req_only = self.make_instance(include_optional=False) + # inst_req_and_optional = self.make_instance(include_optional=True) + +if __name__ == '__main__': + unittest.main() diff --git a/test/test_get_slack_bot200_response.py b/test/test_get_slack_bot200_response.py new file mode 100644 index 00000000..212d3424 --- /dev/null +++ b/test/test_get_slack_bot200_response.py @@ -0,0 +1,96 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +import unittest + +from quantcdn.models.get_slack_bot200_response import GetSlackBot200Response + +class TestGetSlackBot200Response(unittest.TestCase): + """GetSlackBot200Response unit test stubs""" + + def setUp(self): + pass + + def tearDown(self): + pass + + def make_instance(self, include_optional) -> GetSlackBot200Response: + """Test GetSlackBot200Response + include_optional is a boolean, when False only required + params are included, when True both required and + optional params are included """ + # uncomment below to create an instance of `GetSlackBot200Response` + """ + model = GetSlackBot200Response() + if include_optional: + return GetSlackBot200Response( + bot = quantcdn.models.get_slack_bot_200_response_bot.getSlackBot_200_response_bot( + bot_id = '', + name = '', + setup_type = 'quant', + status = 'active', + connected = True, + system_prompt = '', + model_id = '', + temperature = 1.337, + max_tokens = 56, + allowed_tools = [ + '' + ], + assigned_skills = [ + '' + ], + allowed_collections = [ + '' + ], + allowed_sub_agents = [ + '' + ], + guardrail_preset = '', + filter_policies = [ + '' + ], + long_context = True, + session_ttl_days = 56, + allowed_channels = [ + '' + ], + allowed_users = [ + '' + ], + denied_users = [ + '' + ], + allow_guests = True, + home_tab_content = '', + agent_access_control = quantcdn.models.agent_access_control.agentAccessControl(), + keywords_enabled = True, + keywords = [ + '' + ], + created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), + updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), ) + ) + else: + return GetSlackBot200Response( + ) + """ + + def testGetSlackBot200Response(self): + """Test GetSlackBot200Response""" + # inst_req_only = self.make_instance(include_optional=False) + # inst_req_and_optional = self.make_instance(include_optional=True) + +if __name__ == '__main__': + unittest.main() diff --git a/test/test_get_slack_bot200_response_bot.py b/test/test_get_slack_bot200_response_bot.py new file mode 100644 index 00000000..43f9289b --- /dev/null +++ b/test/test_get_slack_bot200_response_bot.py @@ -0,0 +1,95 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +import unittest + +from quantcdn.models.get_slack_bot200_response_bot import GetSlackBot200ResponseBot + +class TestGetSlackBot200ResponseBot(unittest.TestCase): + """GetSlackBot200ResponseBot unit test stubs""" + + def setUp(self): + pass + + def tearDown(self): + pass + + def make_instance(self, include_optional) -> GetSlackBot200ResponseBot: + """Test GetSlackBot200ResponseBot + include_optional is a boolean, when False only required + params are included, when True both required and + optional params are included """ + # uncomment below to create an instance of `GetSlackBot200ResponseBot` + """ + model = GetSlackBot200ResponseBot() + if include_optional: + return GetSlackBot200ResponseBot( + bot_id = '', + name = '', + setup_type = 'quant', + status = 'active', + connected = True, + system_prompt = '', + model_id = '', + temperature = 1.337, + max_tokens = 56, + allowed_tools = [ + '' + ], + assigned_skills = [ + '' + ], + allowed_collections = [ + '' + ], + allowed_sub_agents = [ + '' + ], + guardrail_preset = '', + filter_policies = [ + '' + ], + long_context = True, + session_ttl_days = 56, + allowed_channels = [ + '' + ], + allowed_users = [ + '' + ], + denied_users = [ + '' + ], + allow_guests = True, + home_tab_content = '', + agent_access_control = None, + keywords_enabled = True, + keywords = [ + '' + ], + created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), + updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f') + ) + else: + return GetSlackBot200ResponseBot( + ) + """ + + def testGetSlackBot200ResponseBot(self): + """Test GetSlackBot200ResponseBot""" + # inst_req_only = self.make_instance(include_optional=False) + # inst_req_and_optional = self.make_instance(include_optional=True) + +if __name__ == '__main__': + unittest.main() diff --git a/test/test_get_ssh_access_credentials200_response.py b/test/test_get_ssh_access_credentials200_response.py index 2fa73589..88070a60 100644 --- a/test/test_get_ssh_access_credentials200_response.py +++ b/test/test_get_ssh_access_credentials200_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_get_ssh_access_credentials200_response_credentials.py b/test/test_get_ssh_access_credentials200_response_credentials.py index 01cfa109..67c620fb 100644 --- a/test/test_get_ssh_access_credentials200_response_credentials.py +++ b/test/test_get_ssh_access_credentials200_response_credentials.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_get_task200_response.py b/test/test_get_task200_response.py index 0c676345..8fc14cca 100644 --- a/test/test_get_task200_response.py +++ b/test/test_get_task200_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_get_vector_collection200_response.py b/test/test_get_vector_collection200_response.py index 26f55f35..8c701c03 100644 --- a/test/test_get_vector_collection200_response.py +++ b/test/test_get_vector_collection200_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_get_vector_collection200_response_collection.py b/test/test_get_vector_collection200_response_collection.py index 772e4198..e831196b 100644 --- a/test/test_get_vector_collection200_response_collection.py +++ b/test/test_get_vector_collection200_response_collection.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_headers_api.py b/test/test_headers_api.py index 0d0feee1..02b33cfb 100644 --- a/test/test_headers_api.py +++ b/test/test_headers_api.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_image_generation200_response.py b/test/test_image_generation200_response.py index f3294bfa..3bbe1367 100644 --- a/test/test_image_generation200_response.py +++ b/test/test_image_generation200_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_image_generation_request.py b/test/test_image_generation_request.py index 498443c8..0d87a41a 100644 --- a/test/test_image_generation_request.py +++ b/test/test_image_generation_request.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_image_generation_request_background_removal_params.py b/test/test_image_generation_request_background_removal_params.py index b053beef..82bfcedb 100644 --- a/test/test_image_generation_request_background_removal_params.py +++ b/test/test_image_generation_request_background_removal_params.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_image_generation_request_color_guided_generation_params.py b/test/test_image_generation_request_color_guided_generation_params.py index 0a6316c0..67864c0f 100644 --- a/test/test_image_generation_request_color_guided_generation_params.py +++ b/test/test_image_generation_request_color_guided_generation_params.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_image_generation_request_image_generation_config.py b/test/test_image_generation_request_image_generation_config.py index bf4f2f9b..fdef8b38 100644 --- a/test/test_image_generation_request_image_generation_config.py +++ b/test/test_image_generation_request_image_generation_config.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_image_generation_request_image_variation_params.py b/test/test_image_generation_request_image_variation_params.py index 0b8ea429..53675c54 100644 --- a/test/test_image_generation_request_image_variation_params.py +++ b/test/test_image_generation_request_image_variation_params.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_image_generation_request_in_painting_params.py b/test/test_image_generation_request_in_painting_params.py index c91f1d61..d66a704d 100644 --- a/test/test_image_generation_request_in_painting_params.py +++ b/test/test_image_generation_request_in_painting_params.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_image_generation_request_out_painting_params.py b/test/test_image_generation_request_out_painting_params.py index 1220c7b9..1cbb0374 100644 --- a/test/test_image_generation_request_out_painting_params.py +++ b/test/test_image_generation_request_out_painting_params.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_image_generation_request_text_to_image_params.py b/test/test_image_generation_request_text_to_image_params.py index 51a5cdb6..e54c44db 100644 --- a/test/test_image_generation_request_text_to_image_params.py +++ b/test/test_image_generation_request_text_to_image_params.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_import_skill201_response.py b/test/test_import_skill201_response.py new file mode 100644 index 00000000..4d8d5bf4 --- /dev/null +++ b/test/test_import_skill201_response.py @@ -0,0 +1,52 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +import unittest + +from quantcdn.models.import_skill201_response import ImportSkill201Response + +class TestImportSkill201Response(unittest.TestCase): + """ImportSkill201Response unit test stubs""" + + def setUp(self): + pass + + def tearDown(self): + pass + + def make_instance(self, include_optional) -> ImportSkill201Response: + """Test ImportSkill201Response + include_optional is a boolean, when False only required + params are included, when True both required and + optional params are included """ + # uncomment below to create an instance of `ImportSkill201Response` + """ + model = ImportSkill201Response() + if include_optional: + return ImportSkill201Response( + skill = None, + message = '' + ) + else: + return ImportSkill201Response( + ) + """ + + def testImportSkill201Response(self): + """Test ImportSkill201Response""" + # inst_req_only = self.make_instance(include_optional=False) + # inst_req_and_optional = self.make_instance(include_optional=True) + +if __name__ == '__main__': + unittest.main() diff --git a/test/test_import_skill_collection201_response.py b/test/test_import_skill_collection201_response.py new file mode 100644 index 00000000..67923513 --- /dev/null +++ b/test/test_import_skill_collection201_response.py @@ -0,0 +1,59 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +import unittest + +from quantcdn.models.import_skill_collection201_response import ImportSkillCollection201Response + +class TestImportSkillCollection201Response(unittest.TestCase): + """ImportSkillCollection201Response unit test stubs""" + + def setUp(self): + pass + + def tearDown(self): + pass + + def make_instance(self, include_optional) -> ImportSkillCollection201Response: + """Test ImportSkillCollection201Response + include_optional is a boolean, when False only required + params are included, when True both required and + optional params are included """ + # uncomment below to create an instance of `ImportSkillCollection201Response` + """ + model = ImportSkillCollection201Response() + if include_optional: + return ImportSkillCollection201Response( + namespace = '', + imported = 56, + failed = 56, + skills = [ + None + ], + errors = [ + None + ] + ) + else: + return ImportSkillCollection201Response( + ) + """ + + def testImportSkillCollection201Response(self): + """Test ImportSkillCollection201Response""" + # inst_req_only = self.make_instance(include_optional=False) + # inst_req_and_optional = self.make_instance(include_optional=True) + +if __name__ == '__main__': + unittest.main() diff --git a/test/test_import_skill_collection_request.py b/test/test_import_skill_collection_request.py new file mode 100644 index 00000000..c59793b7 --- /dev/null +++ b/test/test_import_skill_collection_request.py @@ -0,0 +1,66 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +import unittest + +from quantcdn.models.import_skill_collection_request import ImportSkillCollectionRequest + +class TestImportSkillCollectionRequest(unittest.TestCase): + """ImportSkillCollectionRequest unit test stubs""" + + def setUp(self): + pass + + def tearDown(self): + pass + + def make_instance(self, include_optional) -> ImportSkillCollectionRequest: + """Test ImportSkillCollectionRequest + include_optional is a boolean, when False only required + params are included, when True both required and + optional params are included """ + # uncomment below to create an instance of `ImportSkillCollectionRequest` + """ + model = ImportSkillCollectionRequest() + if include_optional: + return ImportSkillCollectionRequest( + namespace = 'superpowers', + source = quantcdn.models.import_skill_collection_request_source.importSkillCollection_request_source( + type = 'github', + repo = 'obra/superpowers', + path = 'skills', + version = 'main', ), + tags = [ + '' + ], + installed_by = '' + ) + else: + return ImportSkillCollectionRequest( + namespace = 'superpowers', + source = quantcdn.models.import_skill_collection_request_source.importSkillCollection_request_source( + type = 'github', + repo = 'obra/superpowers', + path = 'skills', + version = 'main', ), + ) + """ + + def testImportSkillCollectionRequest(self): + """Test ImportSkillCollectionRequest""" + # inst_req_only = self.make_instance(include_optional=False) + # inst_req_and_optional = self.make_instance(include_optional=True) + +if __name__ == '__main__': + unittest.main() diff --git a/test/test_import_skill_collection_request_source.py b/test/test_import_skill_collection_request_source.py new file mode 100644 index 00000000..0ae44d35 --- /dev/null +++ b/test/test_import_skill_collection_request_source.py @@ -0,0 +1,56 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +import unittest + +from quantcdn.models.import_skill_collection_request_source import ImportSkillCollectionRequestSource + +class TestImportSkillCollectionRequestSource(unittest.TestCase): + """ImportSkillCollectionRequestSource unit test stubs""" + + def setUp(self): + pass + + def tearDown(self): + pass + + def make_instance(self, include_optional) -> ImportSkillCollectionRequestSource: + """Test ImportSkillCollectionRequestSource + include_optional is a boolean, when False only required + params are included, when True both required and + optional params are included """ + # uncomment below to create an instance of `ImportSkillCollectionRequestSource` + """ + model = ImportSkillCollectionRequestSource() + if include_optional: + return ImportSkillCollectionRequestSource( + type = 'github', + repo = 'obra/superpowers', + path = 'skills', + version = 'main' + ) + else: + return ImportSkillCollectionRequestSource( + type = 'github', + repo = 'obra/superpowers', + ) + """ + + def testImportSkillCollectionRequestSource(self): + """Test ImportSkillCollectionRequestSource""" + # inst_req_only = self.make_instance(include_optional=False) + # inst_req_and_optional = self.make_instance(include_optional=True) + +if __name__ == '__main__': + unittest.main() diff --git a/test/test_import_skill_request.py b/test/test_import_skill_request.py new file mode 100644 index 00000000..9c3b544c --- /dev/null +++ b/test/test_import_skill_request.py @@ -0,0 +1,76 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +import unittest + +from quantcdn.models.import_skill_request import ImportSkillRequest + +class TestImportSkillRequest(unittest.TestCase): + """ImportSkillRequest unit test stubs""" + + def setUp(self): + pass + + def tearDown(self): + pass + + def make_instance(self, include_optional) -> ImportSkillRequest: + """Test ImportSkillRequest + include_optional is a boolean, when False only required + params are included, when True both required and + optional params are included """ + # uncomment below to create an instance of `ImportSkillRequest` + """ + model = ImportSkillRequest() + if include_optional: + return ImportSkillRequest( + source = quantcdn.models.import_skill_request_source.importSkill_request_source( + type = 'skills.sh', + url = '', + repo = '', + path = '', + version = '', ), + name = '', + description = '', + tags = [ + '' + ], + trigger_condition = '', + required_tools = [ + '' + ], + disable_model_invocation = True, + allowed_tools = [ + '' + ], + installed_by = '' + ) + else: + return ImportSkillRequest( + source = quantcdn.models.import_skill_request_source.importSkill_request_source( + type = 'skills.sh', + url = '', + repo = '', + path = '', + version = '', ), + ) + """ + + def testImportSkillRequest(self): + """Test ImportSkillRequest""" + # inst_req_only = self.make_instance(include_optional=False) + # inst_req_and_optional = self.make_instance(include_optional=True) + +if __name__ == '__main__': + unittest.main() diff --git a/test/test_import_skill_request_source.py b/test/test_import_skill_request_source.py new file mode 100644 index 00000000..c8b8239a --- /dev/null +++ b/test/test_import_skill_request_source.py @@ -0,0 +1,56 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +import unittest + +from quantcdn.models.import_skill_request_source import ImportSkillRequestSource + +class TestImportSkillRequestSource(unittest.TestCase): + """ImportSkillRequestSource unit test stubs""" + + def setUp(self): + pass + + def tearDown(self): + pass + + def make_instance(self, include_optional) -> ImportSkillRequestSource: + """Test ImportSkillRequestSource + include_optional is a boolean, when False only required + params are included, when True both required and + optional params are included """ + # uncomment below to create an instance of `ImportSkillRequestSource` + """ + model = ImportSkillRequestSource() + if include_optional: + return ImportSkillRequestSource( + type = 'skills.sh', + url = '', + repo = '', + path = '', + version = '' + ) + else: + return ImportSkillRequestSource( + type = 'skills.sh', + ) + """ + + def testImportSkillRequestSource(self): + """Test ImportSkillRequestSource""" + # inst_req_only = self.make_instance(include_optional=False) + # inst_req_and_optional = self.make_instance(include_optional=True) + +if __name__ == '__main__': + unittest.main() diff --git a/test/test_kv_api.py b/test/test_kv_api.py index fecfcf85..b4b9d792 100644 --- a/test/test_kv_api.py +++ b/test/test_kv_api.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. @@ -75,6 +75,13 @@ def test_k_v_items_update(self) -> None: """ pass + def test_k_v_link_to_project(self) -> None: + """Test case for k_v_link_to_project + + Link a KV store to another project + """ + pass + def test_k_v_list(self) -> None: """Test case for k_v_list @@ -89,6 +96,13 @@ def test_k_v_show(self) -> None: """ pass + def test_k_v_unlink_from_project(self) -> None: + """Test case for k_v_unlink_from_project + + Unlink a KV store from this project + """ + pass + if __name__ == '__main__': unittest.main() diff --git a/test/test_kv_items_create200_response.py b/test/test_kv_items_create200_response.py index 3fbac1ce..e404a597 100644 --- a/test/test_kv_items_create200_response.py +++ b/test/test_kv_items_create200_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_kv_items_delete200_response.py b/test/test_kv_items_delete200_response.py index b764098d..f4046eb0 100644 --- a/test/test_kv_items_delete200_response.py +++ b/test/test_kv_items_delete200_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_kv_items_show200_response.py b/test/test_kv_items_show200_response.py index 0f607801..a6df8a9b 100644 --- a/test/test_kv_items_show200_response.py +++ b/test/test_kv_items_show200_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_kv_items_show200_response_value.py b/test/test_kv_items_show200_response_value.py index df52e083..d077da5f 100644 --- a/test/test_kv_items_show200_response_value.py +++ b/test/test_kv_items_show200_response_value.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_kv_link_to_project200_response.py b/test/test_kv_link_to_project200_response.py new file mode 100644 index 00000000..ccd4aa4f --- /dev/null +++ b/test/test_kv_link_to_project200_response.py @@ -0,0 +1,52 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +import unittest + +from quantcdn.models.kv_link_to_project200_response import KVLinkToProject200Response + +class TestKVLinkToProject200Response(unittest.TestCase): + """KVLinkToProject200Response unit test stubs""" + + def setUp(self): + pass + + def tearDown(self): + pass + + def make_instance(self, include_optional) -> KVLinkToProject200Response: + """Test KVLinkToProject200Response + include_optional is a boolean, when False only required + params are included, when True both required and + optional params are included """ + # uncomment below to create an instance of `KVLinkToProject200Response` + """ + model = KVLinkToProject200Response() + if include_optional: + return KVLinkToProject200Response( + success = True, + message = '' + ) + else: + return KVLinkToProject200Response( + ) + """ + + def testKVLinkToProject200Response(self): + """Test KVLinkToProject200Response""" + # inst_req_only = self.make_instance(include_optional=False) + # inst_req_and_optional = self.make_instance(include_optional=True) + +if __name__ == '__main__': + unittest.main() diff --git a/test/test_kv_link_to_project_request.py b/test/test_kv_link_to_project_request.py new file mode 100644 index 00000000..f3b6770e --- /dev/null +++ b/test/test_kv_link_to_project_request.py @@ -0,0 +1,52 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +import unittest + +from quantcdn.models.kv_link_to_project_request import KVLinkToProjectRequest + +class TestKVLinkToProjectRequest(unittest.TestCase): + """KVLinkToProjectRequest unit test stubs""" + + def setUp(self): + pass + + def tearDown(self): + pass + + def make_instance(self, include_optional) -> KVLinkToProjectRequest: + """Test KVLinkToProjectRequest + include_optional is a boolean, when False only required + params are included, when True both required and + optional params are included """ + # uncomment below to create an instance of `KVLinkToProjectRequest` + """ + model = KVLinkToProjectRequest() + if include_optional: + return KVLinkToProjectRequest( + project_id = 56 + ) + else: + return KVLinkToProjectRequest( + project_id = 56, + ) + """ + + def testKVLinkToProjectRequest(self): + """Test KVLinkToProjectRequest""" + # inst_req_only = self.make_instance(include_optional=False) + # inst_req_and_optional = self.make_instance(include_optional=True) + +if __name__ == '__main__': + unittest.main() diff --git a/test/test_list_ai_agents200_response.py b/test/test_list_ai_agents200_response.py index f5c97b74..7cf6413a 100644 --- a/test/test_list_ai_agents200_response.py +++ b/test/test_list_ai_agents200_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. @@ -47,6 +47,13 @@ def make_instance(self, include_optional) -> ListAIAgents200Response: allowed_tools = [ '' ], + assigned_skills = [ + '' + ], + long_context = True, + guardrail_preset = '', + is_global = True, + has_overlay = True, created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), ) ] diff --git a/test/test_list_ai_agents200_response_agents_inner.py b/test/test_list_ai_agents200_response_agents_inner.py index 45ccae59..8b756b67 100644 --- a/test/test_list_ai_agents200_response_agents_inner.py +++ b/test/test_list_ai_agents200_response_agents_inner.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. @@ -45,6 +45,13 @@ def make_instance(self, include_optional) -> ListAIAgents200ResponseAgentsInner: allowed_tools = [ '' ], + assigned_skills = [ + '' + ], + long_context = True, + guardrail_preset = '', + is_global = True, + has_overlay = True, created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f') ) diff --git a/test/test_list_ai_models200_response.py b/test/test_list_ai_models200_response.py index 7999c8b3..b740765d 100644 --- a/test/test_list_ai_models200_response.py +++ b/test/test_list_ai_models200_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_list_ai_models200_response_models_inner.py b/test/test_list_ai_models200_response_models_inner.py index 23ffdd59..fe1af2ea 100644 --- a/test/test_list_ai_models200_response_models_inner.py +++ b/test/test_list_ai_models200_response_models_inner.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_list_ai_models200_response_models_inner_capabilities.py b/test/test_list_ai_models200_response_models_inner_capabilities.py index 9f77829e..e1165b8e 100644 --- a/test/test_list_ai_models200_response_models_inner_capabilities.py +++ b/test/test_list_ai_models200_response_models_inner_capabilities.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_list_ai_sessions200_response_inner.py b/test/test_list_ai_sessions200_response_inner.py index 313ed303..faa72ca9 100644 --- a/test/test_list_ai_sessions200_response_inner.py +++ b/test/test_list_ai_sessions200_response_inner.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_list_ai_tool_executions200_response.py b/test/test_list_ai_tool_executions200_response.py index 848968e2..93c4f229 100644 --- a/test/test_list_ai_tool_executions200_response.py +++ b/test/test_list_ai_tool_executions200_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_list_ai_tool_executions200_response_executions_inner.py b/test/test_list_ai_tool_executions200_response_executions_inner.py index 03f8ef4a..b69a8a68 100644 --- a/test/test_list_ai_tool_executions200_response_executions_inner.py +++ b/test/test_list_ai_tool_executions200_response_executions_inner.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_list_ai_tool_names200_response.py b/test/test_list_ai_tool_names200_response.py index 1f501c99..348c1132 100644 --- a/test/test_list_ai_tool_names200_response.py +++ b/test/test_list_ai_tool_names200_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_list_ai_tools200_response.py b/test/test_list_ai_tools200_response.py index eaf87068..f339c299 100644 --- a/test/test_list_ai_tools200_response.py +++ b/test/test_list_ai_tools200_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_list_ai_tools200_response_tools_inner.py b/test/test_list_ai_tools200_response_tools_inner.py index 1e90114d..1b0380da 100644 --- a/test/test_list_ai_tools200_response_tools_inner.py +++ b/test/test_list_ai_tools200_response_tools_inner.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_list_ai_tools200_response_tools_inner_tool_spec.py b/test/test_list_ai_tools200_response_tools_inner_tool_spec.py index 3ef7e7a6..ee099337 100644 --- a/test/test_list_ai_tools200_response_tools_inner_tool_spec.py +++ b/test/test_list_ai_tools200_response_tools_inner_tool_spec.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_list_ai_tools200_response_tools_inner_tool_spec_input_schema.py b/test/test_list_ai_tools200_response_tools_inner_tool_spec_input_schema.py index dd8836c0..db10bed5 100644 --- a/test/test_list_ai_tools200_response_tools_inner_tool_spec_input_schema.py +++ b/test/test_list_ai_tools200_response_tools_inner_tool_spec_input_schema.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_list_backups200_response.py b/test/test_list_backups200_response.py index fd85ce15..23bb7536 100644 --- a/test/test_list_backups200_response.py +++ b/test/test_list_backups200_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_list_backups200_response_backups_inner.py b/test/test_list_backups200_response_backups_inner.py index 3d0d0fcb..3bad9e06 100644 --- a/test/test_list_backups200_response_backups_inner.py +++ b/test/test_list_backups200_response_backups_inner.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_list_backups422_response.py b/test/test_list_backups422_response.py index abb8f906..26e44b42 100644 --- a/test/test_list_backups422_response.py +++ b/test/test_list_backups422_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_list_custom_tools200_response.py b/test/test_list_custom_tools200_response.py index 0cd2c622..8abf2f38 100644 --- a/test/test_list_custom_tools200_response.py +++ b/test/test_list_custom_tools200_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. @@ -41,7 +41,7 @@ def make_instance(self, include_optional) -> ListCustomTools200Response: description = 'Check product inventory levels', edge_function_url = 'https://my-edge-function.quant.cloud', is_async = False, - input_schema = quantcdn.models.input_schema.inputSchema(), + input_schema = '', created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), ) ], count = 56 diff --git a/test/test_list_custom_tools200_response_tools_inner.py b/test/test_list_custom_tools200_response_tools_inner.py index 8c446d58..64f019ae 100644 --- a/test/test_list_custom_tools200_response_tools_inner.py +++ b/test/test_list_custom_tools200_response_tools_inner.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. @@ -39,7 +39,7 @@ def make_instance(self, include_optional) -> ListCustomTools200ResponseToolsInne description = 'Check product inventory levels', edge_function_url = 'https://my-edge-function.quant.cloud', is_async = False, - input_schema = None, + input_schema = '', created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f') ) else: diff --git a/test/test_list_files200_response.py b/test/test_list_files200_response.py index 83a961a8..7968ca68 100644 --- a/test/test_list_files200_response.py +++ b/test/test_list_files200_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_list_files200_response_files_inner.py b/test/test_list_files200_response_files_inner.py index 9db4650c..6d73ec38 100644 --- a/test/test_list_files200_response_files_inner.py +++ b/test/test_list_files200_response_files_inner.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_list_orchestration_batches200_response.py b/test/test_list_orchestration_batches200_response.py new file mode 100644 index 00000000..05d7ac13 --- /dev/null +++ b/test/test_list_orchestration_batches200_response.py @@ -0,0 +1,64 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +import unittest + +from quantcdn.models.list_orchestration_batches200_response import ListOrchestrationBatches200Response + +class TestListOrchestrationBatches200Response(unittest.TestCase): + """ListOrchestrationBatches200Response unit test stubs""" + + def setUp(self): + pass + + def tearDown(self): + pass + + def make_instance(self, include_optional) -> ListOrchestrationBatches200Response: + """Test ListOrchestrationBatches200Response + include_optional is a boolean, when False only required + params are included, when True both required and + optional params are included """ + # uncomment below to create an instance of `ListOrchestrationBatches200Response` + """ + model = ListOrchestrationBatches200Response() + if include_optional: + return ListOrchestrationBatches200Response( + batches = [ + quantcdn.models.list_orchestration_batches_200_response_batches_inner.listOrchestrationBatches_200_response_batches_inner( + batch_id = '', + orchestration_id = '', + iteration = 56, + item_count = 56, + completed_count = 56, + failed_count = 56, + status = 'pending', + started_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), + completed_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), + error = '', ) + ], + next_cursor = '' + ) + else: + return ListOrchestrationBatches200Response( + ) + """ + + def testListOrchestrationBatches200Response(self): + """Test ListOrchestrationBatches200Response""" + # inst_req_only = self.make_instance(include_optional=False) + # inst_req_and_optional = self.make_instance(include_optional=True) + +if __name__ == '__main__': + unittest.main() diff --git a/test/test_list_orchestration_batches200_response_batches_inner.py b/test/test_list_orchestration_batches200_response_batches_inner.py new file mode 100644 index 00000000..f8b4990f --- /dev/null +++ b/test/test_list_orchestration_batches200_response_batches_inner.py @@ -0,0 +1,60 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +import unittest + +from quantcdn.models.list_orchestration_batches200_response_batches_inner import ListOrchestrationBatches200ResponseBatchesInner + +class TestListOrchestrationBatches200ResponseBatchesInner(unittest.TestCase): + """ListOrchestrationBatches200ResponseBatchesInner unit test stubs""" + + def setUp(self): + pass + + def tearDown(self): + pass + + def make_instance(self, include_optional) -> ListOrchestrationBatches200ResponseBatchesInner: + """Test ListOrchestrationBatches200ResponseBatchesInner + include_optional is a boolean, when False only required + params are included, when True both required and + optional params are included """ + # uncomment below to create an instance of `ListOrchestrationBatches200ResponseBatchesInner` + """ + model = ListOrchestrationBatches200ResponseBatchesInner() + if include_optional: + return ListOrchestrationBatches200ResponseBatchesInner( + batch_id = '', + orchestration_id = '', + iteration = 56, + item_count = 56, + completed_count = 56, + failed_count = 56, + status = 'pending', + started_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), + completed_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), + error = '' + ) + else: + return ListOrchestrationBatches200ResponseBatchesInner( + ) + """ + + def testListOrchestrationBatches200ResponseBatchesInner(self): + """Test ListOrchestrationBatches200ResponseBatchesInner""" + # inst_req_only = self.make_instance(include_optional=False) + # inst_req_and_optional = self.make_instance(include_optional=True) + +if __name__ == '__main__': + unittest.main() diff --git a/test/test_list_orchestrations200_response.py b/test/test_list_orchestrations200_response.py new file mode 100644 index 00000000..d55ca8f6 --- /dev/null +++ b/test/test_list_orchestrations200_response.py @@ -0,0 +1,54 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +import unittest + +from quantcdn.models.list_orchestrations200_response import ListOrchestrations200Response + +class TestListOrchestrations200Response(unittest.TestCase): + """ListOrchestrations200Response unit test stubs""" + + def setUp(self): + pass + + def tearDown(self): + pass + + def make_instance(self, include_optional) -> ListOrchestrations200Response: + """Test ListOrchestrations200Response + include_optional is a boolean, when False only required + params are included, when True both required and + optional params are included """ + # uncomment below to create an instance of `ListOrchestrations200Response` + """ + model = ListOrchestrations200Response() + if include_optional: + return ListOrchestrations200Response( + orchestrations = [ + None + ], + next_cursor = '' + ) + else: + return ListOrchestrations200Response( + ) + """ + + def testListOrchestrations200Response(self): + """Test ListOrchestrations200Response""" + # inst_req_only = self.make_instance(include_optional=False) + # inst_req_and_optional = self.make_instance(include_optional=True) + +if __name__ == '__main__': + unittest.main() diff --git a/test/test_list_skill_collections200_response.py b/test/test_list_skill_collections200_response.py new file mode 100644 index 00000000..7035975d --- /dev/null +++ b/test/test_list_skill_collections200_response.py @@ -0,0 +1,58 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +import unittest + +from quantcdn.models.list_skill_collections200_response import ListSkillCollections200Response + +class TestListSkillCollections200Response(unittest.TestCase): + """ListSkillCollections200Response unit test stubs""" + + def setUp(self): + pass + + def tearDown(self): + pass + + def make_instance(self, include_optional) -> ListSkillCollections200Response: + """Test ListSkillCollections200Response + include_optional is a boolean, when False only required + params are included, when True both required and + optional params are included """ + # uncomment below to create an instance of `ListSkillCollections200Response` + """ + model = ListSkillCollections200Response() + if include_optional: + return ListSkillCollections200Response( + collections = [ + quantcdn.models.list_skill_collections_200_response_collections_inner.listSkillCollections_200_response_collections_inner( + namespace = 'superpowers', + count = 14, + skills = [ + '' + ], ) + ] + ) + else: + return ListSkillCollections200Response( + ) + """ + + def testListSkillCollections200Response(self): + """Test ListSkillCollections200Response""" + # inst_req_only = self.make_instance(include_optional=False) + # inst_req_and_optional = self.make_instance(include_optional=True) + +if __name__ == '__main__': + unittest.main() diff --git a/test/test_list_skill_collections200_response_collections_inner.py b/test/test_list_skill_collections200_response_collections_inner.py new file mode 100644 index 00000000..d65528cb --- /dev/null +++ b/test/test_list_skill_collections200_response_collections_inner.py @@ -0,0 +1,55 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +import unittest + +from quantcdn.models.list_skill_collections200_response_collections_inner import ListSkillCollections200ResponseCollectionsInner + +class TestListSkillCollections200ResponseCollectionsInner(unittest.TestCase): + """ListSkillCollections200ResponseCollectionsInner unit test stubs""" + + def setUp(self): + pass + + def tearDown(self): + pass + + def make_instance(self, include_optional) -> ListSkillCollections200ResponseCollectionsInner: + """Test ListSkillCollections200ResponseCollectionsInner + include_optional is a boolean, when False only required + params are included, when True both required and + optional params are included """ + # uncomment below to create an instance of `ListSkillCollections200ResponseCollectionsInner` + """ + model = ListSkillCollections200ResponseCollectionsInner() + if include_optional: + return ListSkillCollections200ResponseCollectionsInner( + namespace = 'superpowers', + count = 14, + skills = [ + '' + ] + ) + else: + return ListSkillCollections200ResponseCollectionsInner( + ) + """ + + def testListSkillCollections200ResponseCollectionsInner(self): + """Test ListSkillCollections200ResponseCollectionsInner""" + # inst_req_only = self.make_instance(include_optional=False) + # inst_req_and_optional = self.make_instance(include_optional=True) + +if __name__ == '__main__': + unittest.main() diff --git a/test/test_list_skills200_response.py b/test/test_list_skills200_response.py new file mode 100644 index 00000000..075a2760 --- /dev/null +++ b/test/test_list_skills200_response.py @@ -0,0 +1,65 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +import unittest + +from quantcdn.models.list_skills200_response import ListSkills200Response + +class TestListSkills200Response(unittest.TestCase): + """ListSkills200Response unit test stubs""" + + def setUp(self): + pass + + def tearDown(self): + pass + + def make_instance(self, include_optional) -> ListSkills200Response: + """Test ListSkills200Response + include_optional is a boolean, when False only required + params are included, when True both required and + optional params are included """ + # uncomment below to create an instance of `ListSkills200Response` + """ + model = ListSkills200Response() + if include_optional: + return ListSkills200Response( + skills = [ + quantcdn.models.list_skills_200_response_skills_inner.listSkills_200_response_skills_inner( + skill_id = '', + name = '', + description = '', + tags = [ + '' + ], + source = quantcdn.models.source.source(), + trigger_condition = '', + namespace = '', + installed_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), + updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), ) + ], + count = 56 + ) + else: + return ListSkills200Response( + ) + """ + + def testListSkills200Response(self): + """Test ListSkills200Response""" + # inst_req_only = self.make_instance(include_optional=False) + # inst_req_and_optional = self.make_instance(include_optional=True) + +if __name__ == '__main__': + unittest.main() diff --git a/test/test_list_skills200_response_skills_inner.py b/test/test_list_skills200_response_skills_inner.py new file mode 100644 index 00000000..725a4021 --- /dev/null +++ b/test/test_list_skills200_response_skills_inner.py @@ -0,0 +1,61 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +import unittest + +from quantcdn.models.list_skills200_response_skills_inner import ListSkills200ResponseSkillsInner + +class TestListSkills200ResponseSkillsInner(unittest.TestCase): + """ListSkills200ResponseSkillsInner unit test stubs""" + + def setUp(self): + pass + + def tearDown(self): + pass + + def make_instance(self, include_optional) -> ListSkills200ResponseSkillsInner: + """Test ListSkills200ResponseSkillsInner + include_optional is a boolean, when False only required + params are included, when True both required and + optional params are included """ + # uncomment below to create an instance of `ListSkills200ResponseSkillsInner` + """ + model = ListSkills200ResponseSkillsInner() + if include_optional: + return ListSkills200ResponseSkillsInner( + skill_id = '', + name = '', + description = '', + tags = [ + '' + ], + source = None, + trigger_condition = '', + namespace = '', + installed_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), + updated_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f') + ) + else: + return ListSkills200ResponseSkillsInner( + ) + """ + + def testListSkills200ResponseSkillsInner(self): + """Test ListSkills200ResponseSkillsInner""" + # inst_req_only = self.make_instance(include_optional=False) + # inst_req_and_optional = self.make_instance(include_optional=True) + +if __name__ == '__main__': + unittest.main() diff --git a/test/test_list_slack_bots200_response.py b/test/test_list_slack_bots200_response.py new file mode 100644 index 00000000..ad145694 --- /dev/null +++ b/test/test_list_slack_bots200_response.py @@ -0,0 +1,82 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +import unittest + +from quantcdn.models.list_slack_bots200_response import ListSlackBots200Response + +class TestListSlackBots200Response(unittest.TestCase): + """ListSlackBots200Response unit test stubs""" + + def setUp(self): + pass + + def tearDown(self): + pass + + def make_instance(self, include_optional) -> ListSlackBots200Response: + """Test ListSlackBots200Response + include_optional is a boolean, when False only required + params are included, when True both required and + optional params are included """ + # uncomment below to create an instance of `ListSlackBots200Response` + """ + model = ListSlackBots200Response() + if include_optional: + return ListSlackBots200Response( + bots = [ + quantcdn.models.list_slack_bots_200_response_bots_inner.listSlackBots_200_response_bots_inner( + bot_id = '', + name = '', + setup_type = 'quant', + status = 'active', + connected = True, + system_prompt = '', + model_id = '', + temperature = 1.337, + max_tokens = 56, + allowed_tools = [ + '' + ], + assigned_skills = [ + '' + ], + allowed_collections = [ + '' + ], + allowed_sub_agents = [ + '' + ], + guardrail_preset = '', + filter_policies = [ + '' + ], + long_context = True, + session_ttl_days = 56, + keywords_enabled = True, + created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), ) + ] + ) + else: + return ListSlackBots200Response( + ) + """ + + def testListSlackBots200Response(self): + """Test ListSlackBots200Response""" + # inst_req_only = self.make_instance(include_optional=False) + # inst_req_and_optional = self.make_instance(include_optional=True) + +if __name__ == '__main__': + unittest.main() diff --git a/test/test_list_slack_bots200_response_bots_inner.py b/test/test_list_slack_bots200_response_bots_inner.py new file mode 100644 index 00000000..44263520 --- /dev/null +++ b/test/test_list_slack_bots200_response_bots_inner.py @@ -0,0 +1,79 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +import unittest + +from quantcdn.models.list_slack_bots200_response_bots_inner import ListSlackBots200ResponseBotsInner + +class TestListSlackBots200ResponseBotsInner(unittest.TestCase): + """ListSlackBots200ResponseBotsInner unit test stubs""" + + def setUp(self): + pass + + def tearDown(self): + pass + + def make_instance(self, include_optional) -> ListSlackBots200ResponseBotsInner: + """Test ListSlackBots200ResponseBotsInner + include_optional is a boolean, when False only required + params are included, when True both required and + optional params are included """ + # uncomment below to create an instance of `ListSlackBots200ResponseBotsInner` + """ + model = ListSlackBots200ResponseBotsInner() + if include_optional: + return ListSlackBots200ResponseBotsInner( + bot_id = '', + name = '', + setup_type = 'quant', + status = 'active', + connected = True, + system_prompt = '', + model_id = '', + temperature = 1.337, + max_tokens = 56, + allowed_tools = [ + '' + ], + assigned_skills = [ + '' + ], + allowed_collections = [ + '' + ], + allowed_sub_agents = [ + '' + ], + guardrail_preset = '', + filter_policies = [ + '' + ], + long_context = True, + session_ttl_days = 56, + keywords_enabled = True, + created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f') + ) + else: + return ListSlackBots200ResponseBotsInner( + ) + """ + + def testListSlackBots200ResponseBotsInner(self): + """Test ListSlackBots200ResponseBotsInner""" + # inst_req_only = self.make_instance(include_optional=False) + # inst_req_and_optional = self.make_instance(include_optional=True) + +if __name__ == '__main__': + unittest.main() diff --git a/test/test_list_tasks200_response.py b/test/test_list_tasks200_response.py index f5ae3e21..97f0bcc2 100644 --- a/test/test_list_tasks200_response.py +++ b/test/test_list_tasks200_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_list_tasks200_response_tasks_inner.py b/test/test_list_tasks200_response_tasks_inner.py index e569a4f6..0e39c008 100644 --- a/test/test_list_tasks200_response_tasks_inner.py +++ b/test/test_list_tasks200_response_tasks_inner.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_list_vector_collections200_response.py b/test/test_list_vector_collections200_response.py index 53b28e4f..aa05ab34 100644 --- a/test/test_list_vector_collections200_response.py +++ b/test/test_list_vector_collections200_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_list_vector_collections200_response_collections_inner.py b/test/test_list_vector_collections200_response_collections_inner.py index 91f5bb56..c67d404b 100644 --- a/test/test_list_vector_collections200_response_collections_inner.py +++ b/test/test_list_vector_collections200_response_collections_inner.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_oai_chat_completions200_response.py b/test/test_oai_chat_completions200_response.py new file mode 100644 index 00000000..dc8bfda7 --- /dev/null +++ b/test/test_oai_chat_completions200_response.py @@ -0,0 +1,69 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +import unittest + +from quantcdn.models.oai_chat_completions200_response import OaiChatCompletions200Response + +class TestOaiChatCompletions200Response(unittest.TestCase): + """OaiChatCompletions200Response unit test stubs""" + + def setUp(self): + pass + + def tearDown(self): + pass + + def make_instance(self, include_optional) -> OaiChatCompletions200Response: + """Test OaiChatCompletions200Response + include_optional is a boolean, when False only required + params are included, when True both required and + optional params are included """ + # uncomment below to create an instance of `OaiChatCompletions200Response` + """ + model = OaiChatCompletions200Response() + if include_optional: + return OaiChatCompletions200Response( + id = 'chatcmpl-abc123', + object = 'chat.completion', + created = 56, + model = '', + choices = [ + quantcdn.models.oai_chat_completions_200_response_choices_inner.oaiChatCompletions_200_response_choices_inner( + index = 56, + message = quantcdn.models.oai_chat_completions_200_response_choices_inner_message.oaiChatCompletions_200_response_choices_inner_message( + role = '', + content = '', + tool_calls = [ + None + ], ), + finish_reason = 'stop', ) + ], + usage = quantcdn.models.oai_chat_completions_200_response_usage.oaiChatCompletions_200_response_usage( + prompt_tokens = 56, + completion_tokens = 56, + total_tokens = 56, ) + ) + else: + return OaiChatCompletions200Response( + ) + """ + + def testOaiChatCompletions200Response(self): + """Test OaiChatCompletions200Response""" + # inst_req_only = self.make_instance(include_optional=False) + # inst_req_and_optional = self.make_instance(include_optional=True) + +if __name__ == '__main__': + unittest.main() diff --git a/test/test_oai_chat_completions200_response_choices_inner.py b/test/test_oai_chat_completions200_response_choices_inner.py new file mode 100644 index 00000000..2b521193 --- /dev/null +++ b/test/test_oai_chat_completions200_response_choices_inner.py @@ -0,0 +1,58 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +import unittest + +from quantcdn.models.oai_chat_completions200_response_choices_inner import OaiChatCompletions200ResponseChoicesInner + +class TestOaiChatCompletions200ResponseChoicesInner(unittest.TestCase): + """OaiChatCompletions200ResponseChoicesInner unit test stubs""" + + def setUp(self): + pass + + def tearDown(self): + pass + + def make_instance(self, include_optional) -> OaiChatCompletions200ResponseChoicesInner: + """Test OaiChatCompletions200ResponseChoicesInner + include_optional is a boolean, when False only required + params are included, when True both required and + optional params are included """ + # uncomment below to create an instance of `OaiChatCompletions200ResponseChoicesInner` + """ + model = OaiChatCompletions200ResponseChoicesInner() + if include_optional: + return OaiChatCompletions200ResponseChoicesInner( + index = 56, + message = quantcdn.models.oai_chat_completions_200_response_choices_inner_message.oaiChatCompletions_200_response_choices_inner_message( + role = '', + content = '', + tool_calls = [ + None + ], ), + finish_reason = 'stop' + ) + else: + return OaiChatCompletions200ResponseChoicesInner( + ) + """ + + def testOaiChatCompletions200ResponseChoicesInner(self): + """Test OaiChatCompletions200ResponseChoicesInner""" + # inst_req_only = self.make_instance(include_optional=False) + # inst_req_and_optional = self.make_instance(include_optional=True) + +if __name__ == '__main__': + unittest.main() diff --git a/test/test_oai_chat_completions200_response_choices_inner_message.py b/test/test_oai_chat_completions200_response_choices_inner_message.py new file mode 100644 index 00000000..d54465c4 --- /dev/null +++ b/test/test_oai_chat_completions200_response_choices_inner_message.py @@ -0,0 +1,55 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +import unittest + +from quantcdn.models.oai_chat_completions200_response_choices_inner_message import OaiChatCompletions200ResponseChoicesInnerMessage + +class TestOaiChatCompletions200ResponseChoicesInnerMessage(unittest.TestCase): + """OaiChatCompletions200ResponseChoicesInnerMessage unit test stubs""" + + def setUp(self): + pass + + def tearDown(self): + pass + + def make_instance(self, include_optional) -> OaiChatCompletions200ResponseChoicesInnerMessage: + """Test OaiChatCompletions200ResponseChoicesInnerMessage + include_optional is a boolean, when False only required + params are included, when True both required and + optional params are included """ + # uncomment below to create an instance of `OaiChatCompletions200ResponseChoicesInnerMessage` + """ + model = OaiChatCompletions200ResponseChoicesInnerMessage() + if include_optional: + return OaiChatCompletions200ResponseChoicesInnerMessage( + role = '', + content = '', + tool_calls = [ + None + ] + ) + else: + return OaiChatCompletions200ResponseChoicesInnerMessage( + ) + """ + + def testOaiChatCompletions200ResponseChoicesInnerMessage(self): + """Test OaiChatCompletions200ResponseChoicesInnerMessage""" + # inst_req_only = self.make_instance(include_optional=False) + # inst_req_and_optional = self.make_instance(include_optional=True) + +if __name__ == '__main__': + unittest.main() diff --git a/test/test_oai_chat_completions200_response_usage.py b/test/test_oai_chat_completions200_response_usage.py new file mode 100644 index 00000000..70872549 --- /dev/null +++ b/test/test_oai_chat_completions200_response_usage.py @@ -0,0 +1,53 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +import unittest + +from quantcdn.models.oai_chat_completions200_response_usage import OaiChatCompletions200ResponseUsage + +class TestOaiChatCompletions200ResponseUsage(unittest.TestCase): + """OaiChatCompletions200ResponseUsage unit test stubs""" + + def setUp(self): + pass + + def tearDown(self): + pass + + def make_instance(self, include_optional) -> OaiChatCompletions200ResponseUsage: + """Test OaiChatCompletions200ResponseUsage + include_optional is a boolean, when False only required + params are included, when True both required and + optional params are included """ + # uncomment below to create an instance of `OaiChatCompletions200ResponseUsage` + """ + model = OaiChatCompletions200ResponseUsage() + if include_optional: + return OaiChatCompletions200ResponseUsage( + prompt_tokens = 56, + completion_tokens = 56, + total_tokens = 56 + ) + else: + return OaiChatCompletions200ResponseUsage( + ) + """ + + def testOaiChatCompletions200ResponseUsage(self): + """Test OaiChatCompletions200ResponseUsage""" + # inst_req_only = self.make_instance(include_optional=False) + # inst_req_and_optional = self.make_instance(include_optional=True) + +if __name__ == '__main__': + unittest.main() diff --git a/test/test_oai_chat_completions_request.py b/test/test_oai_chat_completions_request.py new file mode 100644 index 00000000..bcdb74be --- /dev/null +++ b/test/test_oai_chat_completions_request.py @@ -0,0 +1,71 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +import unittest + +from quantcdn.models.oai_chat_completions_request import OaiChatCompletionsRequest + +class TestOaiChatCompletionsRequest(unittest.TestCase): + """OaiChatCompletionsRequest unit test stubs""" + + def setUp(self): + pass + + def tearDown(self): + pass + + def make_instance(self, include_optional) -> OaiChatCompletionsRequest: + """Test OaiChatCompletionsRequest + include_optional is a boolean, when False only required + params are included, when True both required and + optional params are included """ + # uncomment below to create an instance of `OaiChatCompletionsRequest` + """ + model = OaiChatCompletionsRequest() + if include_optional: + return OaiChatCompletionsRequest( + model = 'anthropic.claude-sonnet-4-6', + messages = [ + quantcdn.models.oai_chat_completions_request_messages_inner.oaiChatCompletions_request_messages_inner( + role = 'system', + content = '', ) + ], + stream = True, + max_tokens = 56, + temperature = 1.337, + top_p = 1.337, + tools = [ + None + ], + tool_choice = None, + stream_options = None + ) + else: + return OaiChatCompletionsRequest( + model = 'anthropic.claude-sonnet-4-6', + messages = [ + quantcdn.models.oai_chat_completions_request_messages_inner.oaiChatCompletions_request_messages_inner( + role = 'system', + content = '', ) + ], + ) + """ + + def testOaiChatCompletionsRequest(self): + """Test OaiChatCompletionsRequest""" + # inst_req_only = self.make_instance(include_optional=False) + # inst_req_and_optional = self.make_instance(include_optional=True) + +if __name__ == '__main__': + unittest.main() diff --git a/test/test_oai_chat_completions_request_messages_inner.py b/test/test_oai_chat_completions_request_messages_inner.py new file mode 100644 index 00000000..630db2da --- /dev/null +++ b/test/test_oai_chat_completions_request_messages_inner.py @@ -0,0 +1,52 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +import unittest + +from quantcdn.models.oai_chat_completions_request_messages_inner import OaiChatCompletionsRequestMessagesInner + +class TestOaiChatCompletionsRequestMessagesInner(unittest.TestCase): + """OaiChatCompletionsRequestMessagesInner unit test stubs""" + + def setUp(self): + pass + + def tearDown(self): + pass + + def make_instance(self, include_optional) -> OaiChatCompletionsRequestMessagesInner: + """Test OaiChatCompletionsRequestMessagesInner + include_optional is a boolean, when False only required + params are included, when True both required and + optional params are included """ + # uncomment below to create an instance of `OaiChatCompletionsRequestMessagesInner` + """ + model = OaiChatCompletionsRequestMessagesInner() + if include_optional: + return OaiChatCompletionsRequestMessagesInner( + role = 'system', + content = '' + ) + else: + return OaiChatCompletionsRequestMessagesInner( + ) + """ + + def testOaiChatCompletionsRequestMessagesInner(self): + """Test OaiChatCompletionsRequestMessagesInner""" + # inst_req_only = self.make_instance(include_optional=False) + # inst_req_and_optional = self.make_instance(include_optional=True) + +if __name__ == '__main__': + unittest.main() diff --git a/test/test_oai_embeddings200_response.py b/test/test_oai_embeddings200_response.py new file mode 100644 index 00000000..2f6adf5a --- /dev/null +++ b/test/test_oai_embeddings200_response.py @@ -0,0 +1,63 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +import unittest + +from quantcdn.models.oai_embeddings200_response import OaiEmbeddings200Response + +class TestOaiEmbeddings200Response(unittest.TestCase): + """OaiEmbeddings200Response unit test stubs""" + + def setUp(self): + pass + + def tearDown(self): + pass + + def make_instance(self, include_optional) -> OaiEmbeddings200Response: + """Test OaiEmbeddings200Response + include_optional is a boolean, when False only required + params are included, when True both required and + optional params are included """ + # uncomment below to create an instance of `OaiEmbeddings200Response` + """ + model = OaiEmbeddings200Response() + if include_optional: + return OaiEmbeddings200Response( + object = 'list', + data = [ + quantcdn.models.oai_embeddings_200_response_data_inner.oaiEmbeddings_200_response_data_inner( + object = 'embedding', + index = 56, + embedding = [ + 1.337 + ], ) + ], + model = '', + usage = quantcdn.models.oai_embeddings_200_response_usage.oaiEmbeddings_200_response_usage( + prompt_tokens = 56, + total_tokens = 56, ) + ) + else: + return OaiEmbeddings200Response( + ) + """ + + def testOaiEmbeddings200Response(self): + """Test OaiEmbeddings200Response""" + # inst_req_only = self.make_instance(include_optional=False) + # inst_req_and_optional = self.make_instance(include_optional=True) + +if __name__ == '__main__': + unittest.main() diff --git a/test/test_oai_embeddings200_response_data_inner.py b/test/test_oai_embeddings200_response_data_inner.py new file mode 100644 index 00000000..81b55d06 --- /dev/null +++ b/test/test_oai_embeddings200_response_data_inner.py @@ -0,0 +1,55 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +import unittest + +from quantcdn.models.oai_embeddings200_response_data_inner import OaiEmbeddings200ResponseDataInner + +class TestOaiEmbeddings200ResponseDataInner(unittest.TestCase): + """OaiEmbeddings200ResponseDataInner unit test stubs""" + + def setUp(self): + pass + + def tearDown(self): + pass + + def make_instance(self, include_optional) -> OaiEmbeddings200ResponseDataInner: + """Test OaiEmbeddings200ResponseDataInner + include_optional is a boolean, when False only required + params are included, when True both required and + optional params are included """ + # uncomment below to create an instance of `OaiEmbeddings200ResponseDataInner` + """ + model = OaiEmbeddings200ResponseDataInner() + if include_optional: + return OaiEmbeddings200ResponseDataInner( + object = 'embedding', + index = 56, + embedding = [ + 1.337 + ] + ) + else: + return OaiEmbeddings200ResponseDataInner( + ) + """ + + def testOaiEmbeddings200ResponseDataInner(self): + """Test OaiEmbeddings200ResponseDataInner""" + # inst_req_only = self.make_instance(include_optional=False) + # inst_req_and_optional = self.make_instance(include_optional=True) + +if __name__ == '__main__': + unittest.main() diff --git a/test/test_oai_embeddings200_response_usage.py b/test/test_oai_embeddings200_response_usage.py new file mode 100644 index 00000000..55975995 --- /dev/null +++ b/test/test_oai_embeddings200_response_usage.py @@ -0,0 +1,52 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +import unittest + +from quantcdn.models.oai_embeddings200_response_usage import OaiEmbeddings200ResponseUsage + +class TestOaiEmbeddings200ResponseUsage(unittest.TestCase): + """OaiEmbeddings200ResponseUsage unit test stubs""" + + def setUp(self): + pass + + def tearDown(self): + pass + + def make_instance(self, include_optional) -> OaiEmbeddings200ResponseUsage: + """Test OaiEmbeddings200ResponseUsage + include_optional is a boolean, when False only required + params are included, when True both required and + optional params are included """ + # uncomment below to create an instance of `OaiEmbeddings200ResponseUsage` + """ + model = OaiEmbeddings200ResponseUsage() + if include_optional: + return OaiEmbeddings200ResponseUsage( + prompt_tokens = 56, + total_tokens = 56 + ) + else: + return OaiEmbeddings200ResponseUsage( + ) + """ + + def testOaiEmbeddings200ResponseUsage(self): + """Test OaiEmbeddings200ResponseUsage""" + # inst_req_only = self.make_instance(include_optional=False) + # inst_req_and_optional = self.make_instance(include_optional=True) + +if __name__ == '__main__': + unittest.main() diff --git a/test/test_oai_embeddings_request.py b/test/test_oai_embeddings_request.py new file mode 100644 index 00000000..692622d2 --- /dev/null +++ b/test/test_oai_embeddings_request.py @@ -0,0 +1,54 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +import unittest + +from quantcdn.models.oai_embeddings_request import OaiEmbeddingsRequest + +class TestOaiEmbeddingsRequest(unittest.TestCase): + """OaiEmbeddingsRequest unit test stubs""" + + def setUp(self): + pass + + def tearDown(self): + pass + + def make_instance(self, include_optional) -> OaiEmbeddingsRequest: + """Test OaiEmbeddingsRequest + include_optional is a boolean, when False only required + params are included, when True both required and + optional params are included """ + # uncomment below to create an instance of `OaiEmbeddingsRequest` + """ + model = OaiEmbeddingsRequest() + if include_optional: + return OaiEmbeddingsRequest( + model = 'amazon.titan-embed-text-v2:0', + input = None + ) + else: + return OaiEmbeddingsRequest( + model = 'amazon.titan-embed-text-v2:0', + input = None, + ) + """ + + def testOaiEmbeddingsRequest(self): + """Test OaiEmbeddingsRequest""" + # inst_req_only = self.make_instance(include_optional=False) + # inst_req_and_optional = self.make_instance(include_optional=True) + +if __name__ == '__main__': + unittest.main() diff --git a/test/test_oai_get_model200_response.py b/test/test_oai_get_model200_response.py new file mode 100644 index 00000000..9503e687 --- /dev/null +++ b/test/test_oai_get_model200_response.py @@ -0,0 +1,54 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +import unittest + +from quantcdn.models.oai_get_model200_response import OaiGetModel200Response + +class TestOaiGetModel200Response(unittest.TestCase): + """OaiGetModel200Response unit test stubs""" + + def setUp(self): + pass + + def tearDown(self): + pass + + def make_instance(self, include_optional) -> OaiGetModel200Response: + """Test OaiGetModel200Response + include_optional is a boolean, when False only required + params are included, when True both required and + optional params are included """ + # uncomment below to create an instance of `OaiGetModel200Response` + """ + model = OaiGetModel200Response() + if include_optional: + return OaiGetModel200Response( + id = '', + object = 'model', + created = 56, + owned_by = 'quant' + ) + else: + return OaiGetModel200Response( + ) + """ + + def testOaiGetModel200Response(self): + """Test OaiGetModel200Response""" + # inst_req_only = self.make_instance(include_optional=False) + # inst_req_and_optional = self.make_instance(include_optional=True) + +if __name__ == '__main__': + unittest.main() diff --git a/test/test_oai_list_models200_response.py b/test/test_oai_list_models200_response.py new file mode 100644 index 00000000..bdca0815 --- /dev/null +++ b/test/test_oai_list_models200_response.py @@ -0,0 +1,58 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +import unittest + +from quantcdn.models.oai_list_models200_response import OaiListModels200Response + +class TestOaiListModels200Response(unittest.TestCase): + """OaiListModels200Response unit test stubs""" + + def setUp(self): + pass + + def tearDown(self): + pass + + def make_instance(self, include_optional) -> OaiListModels200Response: + """Test OaiListModels200Response + include_optional is a boolean, when False only required + params are included, when True both required and + optional params are included """ + # uncomment below to create an instance of `OaiListModels200Response` + """ + model = OaiListModels200Response() + if include_optional: + return OaiListModels200Response( + object = 'list', + data = [ + quantcdn.models.oai_list_models_200_response_data_inner.oaiListModels_200_response_data_inner( + id = 'anthropic.claude-sonnet-4-6', + object = 'model', + created = 56, + owned_by = 'quant', ) + ] + ) + else: + return OaiListModels200Response( + ) + """ + + def testOaiListModels200Response(self): + """Test OaiListModels200Response""" + # inst_req_only = self.make_instance(include_optional=False) + # inst_req_and_optional = self.make_instance(include_optional=True) + +if __name__ == '__main__': + unittest.main() diff --git a/test/test_oai_list_models200_response_data_inner.py b/test/test_oai_list_models200_response_data_inner.py new file mode 100644 index 00000000..4d8f8844 --- /dev/null +++ b/test/test_oai_list_models200_response_data_inner.py @@ -0,0 +1,54 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +import unittest + +from quantcdn.models.oai_list_models200_response_data_inner import OaiListModels200ResponseDataInner + +class TestOaiListModels200ResponseDataInner(unittest.TestCase): + """OaiListModels200ResponseDataInner unit test stubs""" + + def setUp(self): + pass + + def tearDown(self): + pass + + def make_instance(self, include_optional) -> OaiListModels200ResponseDataInner: + """Test OaiListModels200ResponseDataInner + include_optional is a boolean, when False only required + params are included, when True both required and + optional params are included """ + # uncomment below to create an instance of `OaiListModels200ResponseDataInner` + """ + model = OaiListModels200ResponseDataInner() + if include_optional: + return OaiListModels200ResponseDataInner( + id = 'anthropic.claude-sonnet-4-6', + object = 'model', + created = 56, + owned_by = 'quant' + ) + else: + return OaiListModels200ResponseDataInner( + ) + """ + + def testOaiListModels200ResponseDataInner(self): + """Test OaiListModels200ResponseDataInner""" + # inst_req_only = self.make_instance(include_optional=False) + # inst_req_and_optional = self.make_instance(include_optional=True) + +if __name__ == '__main__': + unittest.main() diff --git a/test/test_open_ai_compatibility_api.py b/test/test_open_ai_compatibility_api.py new file mode 100644 index 00000000..4f4f595c --- /dev/null +++ b/test/test_open_ai_compatibility_api.py @@ -0,0 +1,59 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +import unittest + +from quantcdn.api.open_ai_compatibility_api import OpenAICompatibilityApi + + +class TestOpenAICompatibilityApi(unittest.TestCase): + """OpenAICompatibilityApi unit test stubs""" + + def setUp(self) -> None: + self.api = OpenAICompatibilityApi() + + def tearDown(self) -> None: + pass + + def test_oai_chat_completions(self) -> None: + """Test case for oai_chat_completions + + Create a chat completion (OpenAI-compatible) + """ + pass + + def test_oai_embeddings(self) -> None: + """Test case for oai_embeddings + + Create embeddings (OpenAI-compatible) + """ + pass + + def test_oai_get_model(self) -> None: + """Test case for oai_get_model + + Retrieve a model (OpenAI-compatible) + """ + pass + + def test_oai_list_models(self) -> None: + """Test case for oai_list_models + + List available models (OpenAI-compatible) + """ + pass + + +if __name__ == '__main__': + unittest.main() diff --git a/test/test_organizations_api.py b/test/test_organizations_api.py index 5375d380..c35c75d0 100644 --- a/test/test_organizations_api.py +++ b/test/test_organizations_api.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_organizations_list200_response_inner.py b/test/test_organizations_list200_response_inner.py index a7622842..5efeebee 100644 --- a/test/test_organizations_list200_response_inner.py +++ b/test/test_organizations_list200_response_inner.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_patch_environment_compose202_response.py b/test/test_patch_environment_compose202_response.py index 385976bd..37c7ec77 100644 --- a/test/test_patch_environment_compose202_response.py +++ b/test/test_patch_environment_compose202_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_patch_environment_compose202_response_spot_configuration.py b/test/test_patch_environment_compose202_response_spot_configuration.py index 6a07b32a..808dbfbd 100644 --- a/test/test_patch_environment_compose202_response_spot_configuration.py +++ b/test/test_patch_environment_compose202_response_spot_configuration.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_patch_environment_compose400_response.py b/test/test_patch_environment_compose400_response.py index bf460bc5..28d6d85f 100644 --- a/test/test_patch_environment_compose400_response.py +++ b/test/test_patch_environment_compose400_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_patch_environment_compose_request.py b/test/test_patch_environment_compose_request.py index b2ba78ba..e080a81d 100644 --- a/test/test_patch_environment_compose_request.py +++ b/test/test_patch_environment_compose_request.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. @@ -40,6 +40,8 @@ def make_instance(self, include_optional) -> PatchEnvironmentComposeRequest: task_memory = '', min_capacity = 0, max_capacity = 1, + single_task_only = True, + startup_grace_period_seconds = 0, containers = [ None ], diff --git a/test/test_patch_environment_compose_request_spot_configuration.py b/test/test_patch_environment_compose_request_spot_configuration.py index bd0eb3da..aad37bfb 100644 --- a/test/test_patch_environment_compose_request_spot_configuration.py +++ b/test/test_patch_environment_compose_request_spot_configuration.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_projects_api.py b/test/test_projects_api.py index 0fe58ed4..0bb256ba 100644 --- a/test/test_projects_api.py +++ b/test/test_projects_api.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_purge_api.py b/test/test_purge_api.py index 336fccbf..399ef9fd 100644 --- a/test/test_purge_api.py +++ b/test/test_purge_api.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_purge_create_request.py b/test/test_purge_create_request.py index f25ab803..a7ceff8f 100644 --- a/test/test_purge_create_request.py +++ b/test/test_purge_create_request.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_query_vector_collection200_response.py b/test/test_query_vector_collection200_response.py index 759ac198..4bd1a0d2 100644 --- a/test/test_query_vector_collection200_response.py +++ b/test/test_query_vector_collection200_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_query_vector_collection200_response_pagination.py b/test/test_query_vector_collection200_response_pagination.py index 53c4c937..bd012b43 100644 --- a/test/test_query_vector_collection200_response_pagination.py +++ b/test/test_query_vector_collection200_response_pagination.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_query_vector_collection200_response_results_inner.py b/test/test_query_vector_collection200_response_results_inner.py index 136ad428..fc95d069 100644 --- a/test/test_query_vector_collection200_response_results_inner.py +++ b/test/test_query_vector_collection200_response_results_inner.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_query_vector_collection_request.py b/test/test_query_vector_collection_request.py index 748d4e22..2986c585 100644 --- a/test/test_query_vector_collection_request.py +++ b/test/test_query_vector_collection_request.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_query_vector_collection_request_filter.py b/test/test_query_vector_collection_request_filter.py index 23cab6e4..fe24f24a 100644 --- a/test/test_query_vector_collection_request_filter.py +++ b/test/test_query_vector_collection_request_filter.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_restore_database202_response.py b/test/test_restore_database202_response.py new file mode 100644 index 00000000..ce741911 --- /dev/null +++ b/test/test_restore_database202_response.py @@ -0,0 +1,53 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +import unittest + +from quantcdn.models.restore_database202_response import RestoreDatabase202Response + +class TestRestoreDatabase202Response(unittest.TestCase): + """RestoreDatabase202Response unit test stubs""" + + def setUp(self): + pass + + def tearDown(self): + pass + + def make_instance(self, include_optional) -> RestoreDatabase202Response: + """Test RestoreDatabase202Response + include_optional is a boolean, when False only required + params are included, when True both required and + optional params are included """ + # uncomment below to create an instance of `RestoreDatabase202Response` + """ + model = RestoreDatabase202Response() + if include_optional: + return RestoreDatabase202Response( + restore_id = 'restore-abc123', + status = 'in_progress', + message = 'Database restore initiated' + ) + else: + return RestoreDatabase202Response( + ) + """ + + def testRestoreDatabase202Response(self): + """Test RestoreDatabase202Response""" + # inst_req_only = self.make_instance(include_optional=False) + # inst_req_and_optional = self.make_instance(include_optional=True) + +if __name__ == '__main__': + unittest.main() diff --git a/test/test_restore_database_request.py b/test/test_restore_database_request.py new file mode 100644 index 00000000..9227a1c1 --- /dev/null +++ b/test/test_restore_database_request.py @@ -0,0 +1,54 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +import unittest + +from quantcdn.models.restore_database_request import RestoreDatabaseRequest + +class TestRestoreDatabaseRequest(unittest.TestCase): + """RestoreDatabaseRequest unit test stubs""" + + def setUp(self): + pass + + def tearDown(self): + pass + + def make_instance(self, include_optional) -> RestoreDatabaseRequest: + """Test RestoreDatabaseRequest + include_optional is a boolean, when False only required + params are included, when True both required and + optional params are included """ + # uncomment below to create an instance of `RestoreDatabaseRequest` + """ + model = RestoreDatabaseRequest() + if include_optional: + return RestoreDatabaseRequest( + backup_id = '', + acknowledge_dataloss = True + ) + else: + return RestoreDatabaseRequest( + backup_id = '', + acknowledge_dataloss = True, + ) + """ + + def testRestoreDatabaseRequest(self): + """Test RestoreDatabaseRequest""" + # inst_req_only = self.make_instance(include_optional=False) + # inst_req_and_optional = self.make_instance(include_optional=True) + +if __name__ == '__main__': + unittest.main() diff --git a/test/test_restore_filesystem202_response.py b/test/test_restore_filesystem202_response.py new file mode 100644 index 00000000..e54f99fc --- /dev/null +++ b/test/test_restore_filesystem202_response.py @@ -0,0 +1,53 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +import unittest + +from quantcdn.models.restore_filesystem202_response import RestoreFilesystem202Response + +class TestRestoreFilesystem202Response(unittest.TestCase): + """RestoreFilesystem202Response unit test stubs""" + + def setUp(self): + pass + + def tearDown(self): + pass + + def make_instance(self, include_optional) -> RestoreFilesystem202Response: + """Test RestoreFilesystem202Response + include_optional is a boolean, when False only required + params are included, when True both required and + optional params are included """ + # uncomment below to create an instance of `RestoreFilesystem202Response` + """ + model = RestoreFilesystem202Response() + if include_optional: + return RestoreFilesystem202Response( + restore_id = 'restore-abc123', + status = 'in_progress', + message = 'Filesystem restore initiated' + ) + else: + return RestoreFilesystem202Response( + ) + """ + + def testRestoreFilesystem202Response(self): + """Test RestoreFilesystem202Response""" + # inst_req_only = self.make_instance(include_optional=False) + # inst_req_and_optional = self.make_instance(include_optional=True) + +if __name__ == '__main__': + unittest.main() diff --git a/test/test_restore_filesystem_request.py b/test/test_restore_filesystem_request.py new file mode 100644 index 00000000..66ce5444 --- /dev/null +++ b/test/test_restore_filesystem_request.py @@ -0,0 +1,54 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +import unittest + +from quantcdn.models.restore_filesystem_request import RestoreFilesystemRequest + +class TestRestoreFilesystemRequest(unittest.TestCase): + """RestoreFilesystemRequest unit test stubs""" + + def setUp(self): + pass + + def tearDown(self): + pass + + def make_instance(self, include_optional) -> RestoreFilesystemRequest: + """Test RestoreFilesystemRequest + include_optional is a boolean, when False only required + params are included, when True both required and + optional params are included """ + # uncomment below to create an instance of `RestoreFilesystemRequest` + """ + model = RestoreFilesystemRequest() + if include_optional: + return RestoreFilesystemRequest( + backup_id = '', + acknowledge_dataloss = True + ) + else: + return RestoreFilesystemRequest( + backup_id = '', + acknowledge_dataloss = True, + ) + """ + + def testRestoreFilesystemRequest(self): + """Test RestoreFilesystemRequest""" + # inst_req_only = self.make_instance(include_optional=False) + # inst_req_and_optional = self.make_instance(include_optional=True) + +if __name__ == '__main__': + unittest.main() diff --git a/test/test_restore_management_api.py b/test/test_restore_management_api.py new file mode 100644 index 00000000..b6b5964c --- /dev/null +++ b/test/test_restore_management_api.py @@ -0,0 +1,52 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +import unittest + +from quantcdn.api.restore_management_api import RestoreManagementApi + + +class TestRestoreManagementApi(unittest.TestCase): + """RestoreManagementApi unit test stubs""" + + def setUp(self) -> None: + self.api = RestoreManagementApi() + + def tearDown(self) -> None: + pass + + def test_get_restore_status(self) -> None: + """Test case for get_restore_status + + Get the status of a restore operation + """ + pass + + def test_restore_database(self) -> None: + """Test case for restore_database + + Restore a database backup to a target environment + """ + pass + + def test_restore_filesystem(self) -> None: + """Test case for restore_filesystem + + Restore a filesystem backup to a target environment + """ + pass + + +if __name__ == '__main__': + unittest.main() diff --git a/test/test_rules_api.py b/test/test_rules_api.py index ae59ff97..930586be 100644 --- a/test/test_rules_api.py +++ b/test/test_rules_api.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_scaling_policy_api.py b/test/test_scaling_policy_api.py index f7782c91..143e647d 100644 --- a/test/test_scaling_policy_api.py +++ b/test/test_scaling_policy_api.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. @@ -29,21 +29,21 @@ def tearDown(self) -> None: def test_delete_scaling_policy(self) -> None: """Test case for delete_scaling_policy - Delete the scaling policy for an environment + Delete Scaling Policy """ pass - def test_get_scaling_policies(self) -> None: - """Test case for get_scaling_policies + def test_list_scaling_policies(self) -> None: + """Test case for list_scaling_policies - Get the scaling policies for an environment + List Scaling Policies """ pass - def test_update_scaling_policy(self) -> None: - """Test case for update_scaling_policy + def test_upsert_scaling_policy(self) -> None: + """Test case for upsert_scaling_policy - Update the scaling policy for an environment + Upsert Scaling Policy """ pass diff --git a/test/test_scaling_policy_list_response.py b/test/test_scaling_policy_list_response.py new file mode 100644 index 00000000..a68c7f5f --- /dev/null +++ b/test/test_scaling_policy_list_response.py @@ -0,0 +1,59 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +import unittest + +from quantcdn.models.scaling_policy_list_response import ScalingPolicyListResponse + +class TestScalingPolicyListResponse(unittest.TestCase): + """ScalingPolicyListResponse unit test stubs""" + + def setUp(self): + pass + + def tearDown(self): + pass + + def make_instance(self, include_optional) -> ScalingPolicyListResponse: + """Test ScalingPolicyListResponse + include_optional is a boolean, when False only required + params are included, when True both required and + optional params are included """ + # uncomment below to create an instance of `ScalingPolicyListResponse` + """ + model = ScalingPolicyListResponse() + if include_optional: + return ScalingPolicyListResponse( + policies = [ + quantcdn.models.get_scaling_policy_response.GetScalingPolicyResponse( + metric = 'CPUUtilization', + target_value = 1.337, + scale_in_cooldown_seconds = 56, + scale_out_cooldown_seconds = 56, + policy_name = '', + resource_label = '', ) + ] + ) + else: + return ScalingPolicyListResponse( + ) + """ + + def testScalingPolicyListResponse(self): + """Test ScalingPolicyListResponse""" + # inst_req_only = self.make_instance(include_optional=False) + # inst_req_and_optional = self.make_instance(include_optional=True) + +if __name__ == '__main__': + unittest.main() diff --git a/test/test_search_slack_workspace_channels200_response.py b/test/test_search_slack_workspace_channels200_response.py new file mode 100644 index 00000000..f1de8ebf --- /dev/null +++ b/test/test_search_slack_workspace_channels200_response.py @@ -0,0 +1,55 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +import unittest + +from quantcdn.models.search_slack_workspace_channels200_response import SearchSlackWorkspaceChannels200Response + +class TestSearchSlackWorkspaceChannels200Response(unittest.TestCase): + """SearchSlackWorkspaceChannels200Response unit test stubs""" + + def setUp(self): + pass + + def tearDown(self): + pass + + def make_instance(self, include_optional) -> SearchSlackWorkspaceChannels200Response: + """Test SearchSlackWorkspaceChannels200Response + include_optional is a boolean, when False only required + params are included, when True both required and + optional params are included """ + # uncomment below to create an instance of `SearchSlackWorkspaceChannels200Response` + """ + model = SearchSlackWorkspaceChannels200Response() + if include_optional: + return SearchSlackWorkspaceChannels200Response( + results = [ + quantcdn.models.search_slack_workspace_channels_200_response_results_inner.searchSlackWorkspaceChannels_200_response_results_inner( + id = '', + name = '', ) + ] + ) + else: + return SearchSlackWorkspaceChannels200Response( + ) + """ + + def testSearchSlackWorkspaceChannels200Response(self): + """Test SearchSlackWorkspaceChannels200Response""" + # inst_req_only = self.make_instance(include_optional=False) + # inst_req_and_optional = self.make_instance(include_optional=True) + +if __name__ == '__main__': + unittest.main() diff --git a/test/test_search_slack_workspace_channels200_response_results_inner.py b/test/test_search_slack_workspace_channels200_response_results_inner.py new file mode 100644 index 00000000..267f19a2 --- /dev/null +++ b/test/test_search_slack_workspace_channels200_response_results_inner.py @@ -0,0 +1,52 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +import unittest + +from quantcdn.models.search_slack_workspace_channels200_response_results_inner import SearchSlackWorkspaceChannels200ResponseResultsInner + +class TestSearchSlackWorkspaceChannels200ResponseResultsInner(unittest.TestCase): + """SearchSlackWorkspaceChannels200ResponseResultsInner unit test stubs""" + + def setUp(self): + pass + + def tearDown(self): + pass + + def make_instance(self, include_optional) -> SearchSlackWorkspaceChannels200ResponseResultsInner: + """Test SearchSlackWorkspaceChannels200ResponseResultsInner + include_optional is a boolean, when False only required + params are included, when True both required and + optional params are included """ + # uncomment below to create an instance of `SearchSlackWorkspaceChannels200ResponseResultsInner` + """ + model = SearchSlackWorkspaceChannels200ResponseResultsInner() + if include_optional: + return SearchSlackWorkspaceChannels200ResponseResultsInner( + id = '', + name = '' + ) + else: + return SearchSlackWorkspaceChannels200ResponseResultsInner( + ) + """ + + def testSearchSlackWorkspaceChannels200ResponseResultsInner(self): + """Test SearchSlackWorkspaceChannels200ResponseResultsInner""" + # inst_req_only = self.make_instance(include_optional=False) + # inst_req_and_optional = self.make_instance(include_optional=True) + +if __name__ == '__main__': + unittest.main() diff --git a/test/test_search_slack_workspace_users200_response.py b/test/test_search_slack_workspace_users200_response.py new file mode 100644 index 00000000..6e300a77 --- /dev/null +++ b/test/test_search_slack_workspace_users200_response.py @@ -0,0 +1,56 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +import unittest + +from quantcdn.models.search_slack_workspace_users200_response import SearchSlackWorkspaceUsers200Response + +class TestSearchSlackWorkspaceUsers200Response(unittest.TestCase): + """SearchSlackWorkspaceUsers200Response unit test stubs""" + + def setUp(self): + pass + + def tearDown(self): + pass + + def make_instance(self, include_optional) -> SearchSlackWorkspaceUsers200Response: + """Test SearchSlackWorkspaceUsers200Response + include_optional is a boolean, when False only required + params are included, when True both required and + optional params are included """ + # uncomment below to create an instance of `SearchSlackWorkspaceUsers200Response` + """ + model = SearchSlackWorkspaceUsers200Response() + if include_optional: + return SearchSlackWorkspaceUsers200Response( + results = [ + quantcdn.models.search_slack_workspace_users_200_response_results_inner.searchSlackWorkspaceUsers_200_response_results_inner( + id = '', + name = '', + real_name = '', ) + ] + ) + else: + return SearchSlackWorkspaceUsers200Response( + ) + """ + + def testSearchSlackWorkspaceUsers200Response(self): + """Test SearchSlackWorkspaceUsers200Response""" + # inst_req_only = self.make_instance(include_optional=False) + # inst_req_and_optional = self.make_instance(include_optional=True) + +if __name__ == '__main__': + unittest.main() diff --git a/test/test_search_slack_workspace_users200_response_results_inner.py b/test/test_search_slack_workspace_users200_response_results_inner.py new file mode 100644 index 00000000..422a422b --- /dev/null +++ b/test/test_search_slack_workspace_users200_response_results_inner.py @@ -0,0 +1,53 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +import unittest + +from quantcdn.models.search_slack_workspace_users200_response_results_inner import SearchSlackWorkspaceUsers200ResponseResultsInner + +class TestSearchSlackWorkspaceUsers200ResponseResultsInner(unittest.TestCase): + """SearchSlackWorkspaceUsers200ResponseResultsInner unit test stubs""" + + def setUp(self): + pass + + def tearDown(self): + pass + + def make_instance(self, include_optional) -> SearchSlackWorkspaceUsers200ResponseResultsInner: + """Test SearchSlackWorkspaceUsers200ResponseResultsInner + include_optional is a boolean, when False only required + params are included, when True both required and + optional params are included """ + # uncomment below to create an instance of `SearchSlackWorkspaceUsers200ResponseResultsInner` + """ + model = SearchSlackWorkspaceUsers200ResponseResultsInner() + if include_optional: + return SearchSlackWorkspaceUsers200ResponseResultsInner( + id = '', + name = '', + real_name = '' + ) + else: + return SearchSlackWorkspaceUsers200ResponseResultsInner( + ) + """ + + def testSearchSlackWorkspaceUsers200ResponseResultsInner(self): + """Test SearchSlackWorkspaceUsers200ResponseResultsInner""" + # inst_req_only = self.make_instance(include_optional=False) + # inst_req_and_optional = self.make_instance(include_optional=True) + +if __name__ == '__main__': + unittest.main() diff --git a/test/test_scaling_policy.py b/test/test_set_scaling_policy_request.py similarity index 55% rename from test/test_scaling_policy.py rename to test/test_set_scaling_policy_request.py index a7edf138..5f639e77 100644 --- a/test/test_scaling_policy.py +++ b/test/test_set_scaling_policy_request.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. @@ -14,10 +14,10 @@ import unittest -from quantcdn.models.scaling_policy import ScalingPolicy +from quantcdn.models.set_scaling_policy_request import SetScalingPolicyRequest -class TestScalingPolicy(unittest.TestCase): - """ScalingPolicy unit test stubs""" +class TestSetScalingPolicyRequest(unittest.TestCase): + """SetScalingPolicyRequest unit test stubs""" def setUp(self): pass @@ -25,28 +25,30 @@ def setUp(self): def tearDown(self): pass - def make_instance(self, include_optional) -> ScalingPolicy: - """Test ScalingPolicy + def make_instance(self, include_optional) -> SetScalingPolicyRequest: + """Test SetScalingPolicyRequest include_optional is a boolean, when False only required params are included, when True both required and optional params are included """ - # uncomment below to create an instance of `ScalingPolicy` + # uncomment below to create an instance of `SetScalingPolicyRequest` """ - model = ScalingPolicy() + model = SetScalingPolicyRequest() if include_optional: - return ScalingPolicy( + return SetScalingPolicyRequest( metric = 'CPUUtilization', - target_value = 1.337, + target_value = 75, scale_in_cooldown_seconds = 56, scale_out_cooldown_seconds = 56 ) else: - return ScalingPolicy( + return SetScalingPolicyRequest( + metric = 'CPUUtilization', + target_value = 75, ) """ - def testScalingPolicy(self): - """Test ScalingPolicy""" + def testSetScalingPolicyRequest(self): + """Test SetScalingPolicyRequest""" # inst_req_only = self.make_instance(include_optional=False) # inst_req_and_optional = self.make_instance(include_optional=True) diff --git a/test/test_spot_configuration.py b/test/test_spot_configuration.py index 6aec5826..052aaa38 100644 --- a/test/test_spot_configuration.py +++ b/test/test_spot_configuration.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_ssh_access_api.py b/test/test_ssh_access_api.py index 92c1574f..0d7f3a1e 100644 --- a/test/test_ssh_access_api.py +++ b/test/test_ssh_access_api.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_submit_tool_callback200_response.py b/test/test_submit_tool_callback200_response.py index d1d25583..a5b3d0d1 100644 --- a/test/test_submit_tool_callback200_response.py +++ b/test/test_submit_tool_callback200_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_submit_tool_callback_request.py b/test/test_submit_tool_callback_request.py index f2827212..372ca3b5 100644 --- a/test/test_submit_tool_callback_request.py +++ b/test/test_submit_tool_callback_request.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_submit_tool_callback_request_tool_results_inner.py b/test/test_submit_tool_callback_request_tool_results_inner.py index 89d673db..16da845e 100644 --- a/test/test_submit_tool_callback_request_tool_results_inner.py +++ b/test/test_submit_tool_callback_request_tool_results_inner.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_subscription_api.py b/test/test_subscription_api.py new file mode 100644 index 00000000..cc2de200 --- /dev/null +++ b/test/test_subscription_api.py @@ -0,0 +1,38 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +import unittest + +from quantcdn.api.subscription_api import SubscriptionApi + + +class TestSubscriptionApi(unittest.TestCase): + """SubscriptionApi unit test stubs""" + + def setUp(self) -> None: + self.api = SubscriptionApi() + + def tearDown(self) -> None: + pass + + def test_get_subscription_cloud_usage(self) -> None: + """Test case for get_subscription_cloud_usage + + Cloud-app cost breakdown for the subscription page + """ + pass + + +if __name__ == '__main__': + unittest.main() diff --git a/test/test_sync_operation.py b/test/test_sync_operation.py index cac07f6c..a7fa2613 100644 --- a/test/test_sync_operation.py +++ b/test/test_sync_operation.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_sync_skill_collection200_response.py b/test/test_sync_skill_collection200_response.py new file mode 100644 index 00000000..5791211b --- /dev/null +++ b/test/test_sync_skill_collection200_response.py @@ -0,0 +1,60 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +import unittest + +from quantcdn.models.sync_skill_collection200_response import SyncSkillCollection200Response + +class TestSyncSkillCollection200Response(unittest.TestCase): + """SyncSkillCollection200Response unit test stubs""" + + def setUp(self): + pass + + def tearDown(self): + pass + + def make_instance(self, include_optional) -> SyncSkillCollection200Response: + """Test SyncSkillCollection200Response + include_optional is a boolean, when False only required + params are included, when True both required and + optional params are included """ + # uncomment below to create an instance of `SyncSkillCollection200Response` + """ + model = SyncSkillCollection200Response() + if include_optional: + return SyncSkillCollection200Response( + namespace = '', + synced = 56, + created = 56, + failed = 56, + removed_from_source = [ + '' + ], + skills = [ + None + ] + ) + else: + return SyncSkillCollection200Response( + ) + """ + + def testSyncSkillCollection200Response(self): + """Test SyncSkillCollection200Response""" + # inst_req_only = self.make_instance(include_optional=False) + # inst_req_and_optional = self.make_instance(include_optional=True) + +if __name__ == '__main__': + unittest.main() diff --git a/test/test_sync_to_environment_request.py b/test/test_sync_to_environment_request.py index 7fc1bb04..3c840b03 100644 --- a/test/test_sync_to_environment_request.py +++ b/test/test_sync_to_environment_request.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_tokens_api.py b/test/test_tokens_api.py new file mode 100644 index 00000000..75de0040 --- /dev/null +++ b/test/test_tokens_api.py @@ -0,0 +1,52 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +import unittest + +from quantcdn.api.tokens_api import TokensApi + + +class TestTokensApi(unittest.TestCase): + """TokensApi unit test stubs""" + + def setUp(self) -> None: + self.api = TokensApi() + + def tearDown(self) -> None: + pass + + def test_tokens_create(self) -> None: + """Test case for tokens_create + + Create a new API token scoped to this organization + """ + pass + + def test_tokens_delete(self) -> None: + """Test case for tokens_delete + + Revoke an API token + """ + pass + + def test_tokens_list(self) -> None: + """Test case for tokens_list + + List API tokens scoped to this organization + """ + pass + + +if __name__ == '__main__': + unittest.main() diff --git a/test/test_tokens_create201_response.py b/test/test_tokens_create201_response.py new file mode 100644 index 00000000..a0556bf5 --- /dev/null +++ b/test/test_tokens_create201_response.py @@ -0,0 +1,62 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +import unittest + +from quantcdn.models.tokens_create201_response import TokensCreate201Response + +class TestTokensCreate201Response(unittest.TestCase): + """TokensCreate201Response unit test stubs""" + + def setUp(self): + pass + + def tearDown(self): + pass + + def make_instance(self, include_optional) -> TokensCreate201Response: + """Test TokensCreate201Response + include_optional is a boolean, when False only required + params are included, when True both required and + optional params are included """ + # uncomment below to create an instance of `TokensCreate201Response` + """ + model = TokensCreate201Response() + if include_optional: + return TokensCreate201Response( + token = '', + id = 56, + name = '', + scopes = [ + '' + ], + projects = [ + 56 + ], + preset = '', + expires_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), + created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f') + ) + else: + return TokensCreate201Response( + ) + """ + + def testTokensCreate201Response(self): + """Test TokensCreate201Response""" + # inst_req_only = self.make_instance(include_optional=False) + # inst_req_and_optional = self.make_instance(include_optional=True) + +if __name__ == '__main__': + unittest.main() diff --git a/test/test_tokens_create_request.py b/test/test_tokens_create_request.py new file mode 100644 index 00000000..7afd8d2f --- /dev/null +++ b/test/test_tokens_create_request.py @@ -0,0 +1,58 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +import unittest + +from quantcdn.models.tokens_create_request import TokensCreateRequest + +class TestTokensCreateRequest(unittest.TestCase): + """TokensCreateRequest unit test stubs""" + + def setUp(self): + pass + + def tearDown(self): + pass + + def make_instance(self, include_optional) -> TokensCreateRequest: + """Test TokensCreateRequest + include_optional is a boolean, when False only required + params are included, when True both required and + optional params are included """ + # uncomment below to create an instance of `TokensCreateRequest` + """ + model = TokensCreateRequest() + if include_optional: + return TokensCreateRequest( + name = 'My CI token', + preset = 'content_management', + scopes = ["projects:read","content:write"], + projects = [ + 56 + ], + expires_in = '90d' + ) + else: + return TokensCreateRequest( + name = 'My CI token', + ) + """ + + def testTokensCreateRequest(self): + """Test TokensCreateRequest""" + # inst_req_only = self.make_instance(include_optional=False) + # inst_req_and_optional = self.make_instance(include_optional=True) + +if __name__ == '__main__': + unittest.main() diff --git a/test/test_tokens_delete200_response.py b/test/test_tokens_delete200_response.py new file mode 100644 index 00000000..9de02364 --- /dev/null +++ b/test/test_tokens_delete200_response.py @@ -0,0 +1,51 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +import unittest + +from quantcdn.models.tokens_delete200_response import TokensDelete200Response + +class TestTokensDelete200Response(unittest.TestCase): + """TokensDelete200Response unit test stubs""" + + def setUp(self): + pass + + def tearDown(self): + pass + + def make_instance(self, include_optional) -> TokensDelete200Response: + """Test TokensDelete200Response + include_optional is a boolean, when False only required + params are included, when True both required and + optional params are included """ + # uncomment below to create an instance of `TokensDelete200Response` + """ + model = TokensDelete200Response() + if include_optional: + return TokensDelete200Response( + message = 'Token revoked successfully' + ) + else: + return TokensDelete200Response( + ) + """ + + def testTokensDelete200Response(self): + """Test TokensDelete200Response""" + # inst_req_only = self.make_instance(include_optional=False) + # inst_req_and_optional = self.make_instance(include_optional=True) + +if __name__ == '__main__': + unittest.main() diff --git a/test/test_tokens_list200_response_inner.py b/test/test_tokens_list200_response_inner.py new file mode 100644 index 00000000..81ac81df --- /dev/null +++ b/test/test_tokens_list200_response_inner.py @@ -0,0 +1,54 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +import unittest + +from quantcdn.models.tokens_list200_response_inner import TokensList200ResponseInner + +class TestTokensList200ResponseInner(unittest.TestCase): + """TokensList200ResponseInner unit test stubs""" + + def setUp(self): + pass + + def tearDown(self): + pass + + def make_instance(self, include_optional) -> TokensList200ResponseInner: + """Test TokensList200ResponseInner + include_optional is a boolean, when False only required + params are included, when True both required and + optional params are included """ + # uncomment below to create an instance of `TokensList200ResponseInner` + """ + model = TokensList200ResponseInner() + if include_optional: + return TokensList200ResponseInner( + id = 42, + name = 'My deploy token', + last_used = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), + created_at = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f') + ) + else: + return TokensList200ResponseInner( + ) + """ + + def testTokensList200ResponseInner(self): + """Test TokensList200ResponseInner""" + # inst_req_only = self.make_instance(include_optional=False) + # inst_req_and_optional = self.make_instance(include_optional=True) + +if __name__ == '__main__': + unittest.main() diff --git a/test/test_update_ai_agent200_response.py b/test/test_update_ai_agent200_response.py index 534550fc..546f3f94 100644 --- a/test/test_update_ai_agent200_response.py +++ b/test/test_update_ai_agent200_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_update_ai_agent_request.py b/test/test_update_ai_agent_request.py index bbe2d8c9..365cb3e0 100644 --- a/test/test_update_ai_agent_request.py +++ b/test/test_update_ai_agent_request.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. @@ -46,6 +46,14 @@ def make_instance(self, include_optional) -> UpdateAIAgentRequest: '' ], allowed_collections = [ + '' + ], + assigned_skills = [ + '' + ], + long_context = True, + guardrail_preset = 'official', + filter_policies = [ '' ] ) diff --git a/test/test_update_ai_session200_response.py b/test/test_update_ai_session200_response.py index d40f73f7..42e20fee 100644 --- a/test/test_update_ai_session200_response.py +++ b/test/test_update_ai_session200_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_update_ai_session_request.py b/test/test_update_ai_session_request.py index f58139ee..d25f66e3 100644 --- a/test/test_update_ai_session_request.py +++ b/test/test_update_ai_session_request.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_update_ai_session_request_new_messages_inner.py b/test/test_update_ai_session_request_new_messages_inner.py index 6c669289..e5c2d7f5 100644 --- a/test/test_update_ai_session_request_new_messages_inner.py +++ b/test/test_update_ai_session_request_new_messages_inner.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_update_cron_job_request.py b/test/test_update_cron_job_request.py index 44b2420b..dd9e33c3 100644 --- a/test/test_update_cron_job_request.py +++ b/test/test_update_cron_job_request.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_update_environment_request.py b/test/test_update_environment_request.py index d9a44101..f3a1c4c7 100644 --- a/test/test_update_environment_request.py +++ b/test/test_update_environment_request.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. @@ -92,13 +92,16 @@ def make_instance(self, include_optional) -> UpdateEnvironmentRequest: enabled = True, ip_allow = [ '' - ], ), ) + ], + redirect_host = '', ), ) ], architecture = '', task_cpu = 56, task_memory = 56, min_capacity = 56, max_capacity = 56, + single_task_only = True, + startup_grace_period_seconds = 0, spot_configuration = quantcdn.models.spot_configuration.SpotConfiguration( strategy = 'spot-only', ), enable_cross_env_networking = True, @@ -165,13 +168,16 @@ def make_instance(self, include_optional) -> UpdateEnvironmentRequest: enabled = True, ip_allow = [ '' - ], ), ) + ], + redirect_host = '', ), ) ], architecture = '', task_cpu = 56, task_memory = 56, min_capacity = 56, max_capacity = 56, + single_task_only = True, + startup_grace_period_seconds = 0, spot_configuration = quantcdn.models.spot_configuration.SpotConfiguration( strategy = 'spot-only', ), enable_cross_env_networking = True, diff --git a/test/test_update_environment_state_request.py b/test/test_update_environment_state_request.py index a0f63077..2f2b3236 100644 --- a/test/test_update_environment_state_request.py +++ b/test/test_update_environment_state_request.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_update_environment_variable_request.py b/test/test_update_environment_variable_request.py index b97289ee..01b6a19e 100644 --- a/test/test_update_environment_variable_request.py +++ b/test/test_update_environment_variable_request.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_update_filter_policy_request.py b/test/test_update_filter_policy_request.py new file mode 100644 index 00000000..e0ec2f31 --- /dev/null +++ b/test/test_update_filter_policy_request.py @@ -0,0 +1,65 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +import unittest + +from quantcdn.models.update_filter_policy_request import UpdateFilterPolicyRequest + +class TestUpdateFilterPolicyRequest(unittest.TestCase): + """UpdateFilterPolicyRequest unit test stubs""" + + def setUp(self): + pass + + def tearDown(self): + pass + + def make_instance(self, include_optional) -> UpdateFilterPolicyRequest: + """Test UpdateFilterPolicyRequest + include_optional is a boolean, when False only required + params are included, when True both required and + optional params are included """ + # uncomment below to create an instance of `UpdateFilterPolicyRequest` + """ + model = UpdateFilterPolicyRequest() + if include_optional: + return UpdateFilterPolicyRequest( + name = '', + description = '', + enabled = True, + rules = [ + quantcdn.models.create_filter_policy_request_rules_inner.createFilterPolicy_request_rules_inner( + name = '', + match = quantcdn.models.create_filter_policy_request_rules_inner_match.createFilterPolicy_request_rules_inner_match( + type = 'word', + values = [ + '' + ], + pattern = '', ), + action = 'BLOCK', + apply_to = 'input', ) + ] + ) + else: + return UpdateFilterPolicyRequest( + ) + """ + + def testUpdateFilterPolicyRequest(self): + """Test UpdateFilterPolicyRequest""" + # inst_req_only = self.make_instance(include_optional=False) + # inst_req_and_optional = self.make_instance(include_optional=True) + +if __name__ == '__main__': + unittest.main() diff --git a/test/test_update_governance_config200_response.py b/test/test_update_governance_config200_response.py new file mode 100644 index 00000000..0f789f59 --- /dev/null +++ b/test/test_update_governance_config200_response.py @@ -0,0 +1,52 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +import unittest + +from quantcdn.models.update_governance_config200_response import UpdateGovernanceConfig200Response + +class TestUpdateGovernanceConfig200Response(unittest.TestCase): + """UpdateGovernanceConfig200Response unit test stubs""" + + def setUp(self): + pass + + def tearDown(self): + pass + + def make_instance(self, include_optional) -> UpdateGovernanceConfig200Response: + """Test UpdateGovernanceConfig200Response + include_optional is a boolean, when False only required + params are included, when True both required and + optional params are included """ + # uncomment below to create an instance of `UpdateGovernanceConfig200Response` + """ + model = UpdateGovernanceConfig200Response() + if include_optional: + return UpdateGovernanceConfig200Response( + success = True, + config = None + ) + else: + return UpdateGovernanceConfig200Response( + ) + """ + + def testUpdateGovernanceConfig200Response(self): + """Test UpdateGovernanceConfig200Response""" + # inst_req_only = self.make_instance(include_optional=False) + # inst_req_and_optional = self.make_instance(include_optional=True) + +if __name__ == '__main__': + unittest.main() diff --git a/test/test_update_governance_config_request.py b/test/test_update_governance_config_request.py new file mode 100644 index 00000000..8e3e72e2 --- /dev/null +++ b/test/test_update_governance_config_request.py @@ -0,0 +1,87 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +import unittest + +from quantcdn.models.update_governance_config_request import UpdateGovernanceConfigRequest + +class TestUpdateGovernanceConfigRequest(unittest.TestCase): + """UpdateGovernanceConfigRequest unit test stubs""" + + def setUp(self): + pass + + def tearDown(self): + pass + + def make_instance(self, include_optional) -> UpdateGovernanceConfigRequest: + """Test UpdateGovernanceConfigRequest + include_optional is a boolean, when False only required + params are included, when True both required and + optional params are included """ + # uncomment below to create an instance of `UpdateGovernanceConfigRequest` + """ + model = UpdateGovernanceConfigRequest() + if include_optional: + return UpdateGovernanceConfigRequest( + ai_enabled = True, + model_policy = 'unrestricted', + model_list = [ + '' + ], + mandatory_guardrail_preset = 'official', + mandatory_filter_policies = [ + '' + ], + spend_limits = quantcdn.models.get_governance_config_200_response_spend_limits.getGovernanceConfig_200_response_spendLimits( + monthly_budget_cents = 56, + daily_budget_cents = 56, + per_user_monthly_budget_cents = 56, + per_user_daily_budget_cents = 56, + warning_threshold_percent = 56, + interface_limits = { + 'key' : quantcdn.models.get_governance_config_200_response_spend_limits_interface_limits_value.getGovernanceConfig_200_response_spendLimits_interfaceLimits_value( + daily_cents = 56, + monthly_cents = 56, ) + }, + user_overrides = { + 'key' : quantcdn.models.get_governance_config_200_response_spend_limits_user_overrides_value.getGovernanceConfig_200_response_spendLimits_userOverrides_value( + daily_cents = 56, + monthly_cents = 56, + unlimited = True, ) + }, + per_token_monthly_budget_cents = 56, + per_token_daily_budget_cents = 56, + token_overrides = { + 'key' : quantcdn.models.get_governance_config_200_response_spend_limits_user_overrides_value.getGovernanceConfig_200_response_spendLimits_userOverrides_value( + daily_cents = 56, + monthly_cents = 56, + unlimited = True, ) + }, ), + version = 56 + ) + else: + return UpdateGovernanceConfigRequest( + ai_enabled = True, + model_policy = 'unrestricted', + ) + """ + + def testUpdateGovernanceConfigRequest(self): + """Test UpdateGovernanceConfigRequest""" + # inst_req_only = self.make_instance(include_optional=False) + # inst_req_and_optional = self.make_instance(include_optional=True) + +if __name__ == '__main__': + unittest.main() diff --git a/test/test_update_skill200_response.py b/test/test_update_skill200_response.py new file mode 100644 index 00000000..e58f4fc8 --- /dev/null +++ b/test/test_update_skill200_response.py @@ -0,0 +1,53 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +import unittest + +from quantcdn.models.update_skill200_response import UpdateSkill200Response + +class TestUpdateSkill200Response(unittest.TestCase): + """UpdateSkill200Response unit test stubs""" + + def setUp(self): + pass + + def tearDown(self): + pass + + def make_instance(self, include_optional) -> UpdateSkill200Response: + """Test UpdateSkill200Response + include_optional is a boolean, when False only required + params are included, when True both required and + optional params are included """ + # uncomment below to create an instance of `UpdateSkill200Response` + """ + model = UpdateSkill200Response() + if include_optional: + return UpdateSkill200Response( + success = True, + skill = None, + message = 'Skill updated successfully' + ) + else: + return UpdateSkill200Response( + ) + """ + + def testUpdateSkill200Response(self): + """Test UpdateSkill200Response""" + # inst_req_only = self.make_instance(include_optional=False) + # inst_req_and_optional = self.make_instance(include_optional=True) + +if __name__ == '__main__': + unittest.main() diff --git a/test/test_update_skill_request.py b/test/test_update_skill_request.py new file mode 100644 index 00000000..946532fe --- /dev/null +++ b/test/test_update_skill_request.py @@ -0,0 +1,67 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +import unittest + +from quantcdn.models.update_skill_request import UpdateSkillRequest + +class TestUpdateSkillRequest(unittest.TestCase): + """UpdateSkillRequest unit test stubs""" + + def setUp(self): + pass + + def tearDown(self): + pass + + def make_instance(self, include_optional) -> UpdateSkillRequest: + """Test UpdateSkillRequest + include_optional is a boolean, when False only required + params are included, when True both required and + optional params are included """ + # uncomment below to create an instance of `UpdateSkillRequest` + """ + model = UpdateSkillRequest() + if include_optional: + return UpdateSkillRequest( + name = '', + description = '', + content = '', + trigger_condition = '', + tags = [ + '' + ], + required_tools = [ + '' + ], + source = None, + files = None, + disable_model_invocation = True, + allowed_tools = [ + '' + ], + namespace = '' + ) + else: + return UpdateSkillRequest( + ) + """ + + def testUpdateSkillRequest(self): + """Test UpdateSkillRequest""" + # inst_req_only = self.make_instance(include_optional=False) + # inst_req_and_optional = self.make_instance(include_optional=True) + +if __name__ == '__main__': + unittest.main() diff --git a/test/test_update_slack_bot_request.py b/test/test_update_slack_bot_request.py new file mode 100644 index 00000000..d1d99362 --- /dev/null +++ b/test/test_update_slack_bot_request.py @@ -0,0 +1,90 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +import unittest + +from quantcdn.models.update_slack_bot_request import UpdateSlackBotRequest + +class TestUpdateSlackBotRequest(unittest.TestCase): + """UpdateSlackBotRequest unit test stubs""" + + def setUp(self): + pass + + def tearDown(self): + pass + + def make_instance(self, include_optional) -> UpdateSlackBotRequest: + """Test UpdateSlackBotRequest + include_optional is a boolean, when False only required + params are included, when True both required and + optional params are included """ + # uncomment below to create an instance of `UpdateSlackBotRequest` + """ + model = UpdateSlackBotRequest() + if include_optional: + return UpdateSlackBotRequest( + name = '', + status = 'active', + system_prompt = '', + model_id = '', + temperature = 0, + max_tokens = 1, + allowed_tools = [ + '' + ], + assigned_skills = [ + '' + ], + allowed_collections = [ + '' + ], + allowed_sub_agents = [ + '' + ], + guardrail_preset = '', + filter_policies = [ + '' + ], + long_context = True, + session_ttl_days = 1, + allowed_channels = [ + '' + ], + allowed_users = [ + '' + ], + denied_users = [ + '' + ], + allow_guests = True, + home_tab_content = '', + agent_access_control = None, + keywords_enabled = True, + keywords = [ + '' + ] + ) + else: + return UpdateSlackBotRequest( + ) + """ + + def testUpdateSlackBotRequest(self): + """Test UpdateSlackBotRequest""" + # inst_req_only = self.make_instance(include_optional=False) + # inst_req_and_optional = self.make_instance(include_optional=True) + +if __name__ == '__main__': + unittest.main() diff --git a/test/test_update_task200_response.py b/test/test_update_task200_response.py index 3230accf..80985e06 100644 --- a/test/test_update_task200_response.py +++ b/test/test_update_task200_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_update_task_request.py b/test/test_update_task_request.py index b3d29864..19da63e8 100644 --- a/test/test_update_task_request.py +++ b/test/test_update_task_request.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_upload_file201_response.py b/test/test_upload_file201_response.py index 9466a805..80bcf634 100644 --- a/test/test_upload_file201_response.py +++ b/test/test_upload_file201_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_upload_file_request.py b/test/test_upload_file_request.py index 591bb9f3..bb368b9b 100644 --- a/test/test_upload_file_request.py +++ b/test/test_upload_file_request.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_upload_vector_documents200_response.py b/test/test_upload_vector_documents200_response.py index d0876af8..61ee1873 100644 --- a/test/test_upload_vector_documents200_response.py +++ b/test/test_upload_vector_documents200_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_upload_vector_documents_request.py b/test/test_upload_vector_documents_request.py index cfd3730a..5dfb9bf9 100644 --- a/test/test_upload_vector_documents_request.py +++ b/test/test_upload_vector_documents_request.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. @@ -38,6 +38,7 @@ def make_instance(self, include_optional) -> UploadVectorDocumentsRequest: documents = [ quantcdn.models.upload_vector_documents_request_documents_inner.uploadVectorDocuments_request_documents_inner( content = '', + key = '', metadata = quantcdn.models.upload_vector_documents_request_documents_inner_metadata.uploadVectorDocuments_request_documents_inner_metadata( title = '', source_url = '', @@ -52,6 +53,7 @@ def make_instance(self, include_optional) -> UploadVectorDocumentsRequest: documents = [ quantcdn.models.upload_vector_documents_request_documents_inner.uploadVectorDocuments_request_documents_inner( content = '', + key = '', metadata = quantcdn.models.upload_vector_documents_request_documents_inner_metadata.uploadVectorDocuments_request_documents_inner_metadata( title = '', source_url = '', diff --git a/test/test_upload_vector_documents_request_documents_inner.py b/test/test_upload_vector_documents_request_documents_inner.py index 731c397b..f9f2646d 100644 --- a/test/test_upload_vector_documents_request_documents_inner.py +++ b/test/test_upload_vector_documents_request_documents_inner.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. @@ -36,6 +36,7 @@ def make_instance(self, include_optional) -> UploadVectorDocumentsRequestDocumen if include_optional: return UploadVectorDocumentsRequestDocumentsInner( content = '', + key = '', metadata = quantcdn.models.upload_vector_documents_request_documents_inner_metadata.uploadVectorDocuments_request_documents_inner_metadata( title = '', source_url = '', diff --git a/test/test_upload_vector_documents_request_documents_inner_metadata.py b/test/test_upload_vector_documents_request_documents_inner_metadata.py index 9358a410..a95a3885 100644 --- a/test/test_upload_vector_documents_request_documents_inner_metadata.py +++ b/test/test_upload_vector_documents_request_documents_inner_metadata.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_upsert_agent_overlay200_response.py b/test/test_upsert_agent_overlay200_response.py new file mode 100644 index 00000000..dbea44ce --- /dev/null +++ b/test/test_upsert_agent_overlay200_response.py @@ -0,0 +1,51 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +import unittest + +from quantcdn.models.upsert_agent_overlay200_response import UpsertAgentOverlay200Response + +class TestUpsertAgentOverlay200Response(unittest.TestCase): + """UpsertAgentOverlay200Response unit test stubs""" + + def setUp(self): + pass + + def tearDown(self): + pass + + def make_instance(self, include_optional) -> UpsertAgentOverlay200Response: + """Test UpsertAgentOverlay200Response + include_optional is a boolean, when False only required + params are included, when True both required and + optional params are included """ + # uncomment below to create an instance of `UpsertAgentOverlay200Response` + """ + model = UpsertAgentOverlay200Response() + if include_optional: + return UpsertAgentOverlay200Response( + overlay = None + ) + else: + return UpsertAgentOverlay200Response( + ) + """ + + def testUpsertAgentOverlay200Response(self): + """Test UpsertAgentOverlay200Response""" + # inst_req_only = self.make_instance(include_optional=False) + # inst_req_and_optional = self.make_instance(include_optional=True) + +if __name__ == '__main__': + unittest.main() diff --git a/test/test_upsert_agent_overlay_request.py b/test/test_upsert_agent_overlay_request.py new file mode 100644 index 00000000..a6dc4ae9 --- /dev/null +++ b/test/test_upsert_agent_overlay_request.py @@ -0,0 +1,71 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +import unittest + +from quantcdn.models.upsert_agent_overlay_request import UpsertAgentOverlayRequest + +class TestUpsertAgentOverlayRequest(unittest.TestCase): + """UpsertAgentOverlayRequest unit test stubs""" + + def setUp(self): + pass + + def tearDown(self): + pass + + def make_instance(self, include_optional) -> UpsertAgentOverlayRequest: + """Test UpsertAgentOverlayRequest + include_optional is a boolean, when False only required + params are included, when True both required and + optional params are included """ + # uncomment below to create an instance of `UpsertAgentOverlayRequest` + """ + model = UpsertAgentOverlayRequest() + if include_optional: + return UpsertAgentOverlayRequest( + model_id = '', + temperature = 0, + max_tokens = 1, + disabled_skills = [ + '' + ], + additional_skills = [ + '' + ], + additional_tools = [ + '' + ], + disabled_tools = [ + '' + ], + system_prompt_append = '', + allowed_collections = [ + '' + ], + guardrail_preset = 'official', + version = 56 + ) + else: + return UpsertAgentOverlayRequest( + ) + """ + + def testUpsertAgentOverlayRequest(self): + """Test UpsertAgentOverlayRequest""" + # inst_req_only = self.make_instance(include_optional=False) + # inst_req_and_optional = self.make_instance(include_optional=True) + +if __name__ == '__main__': + unittest.main() diff --git a/test/test_v1_content_item.py b/test/test_v1_content_item.py index 16ce6b6d..9a3c8cb7 100644 --- a/test/test_v1_content_item.py +++ b/test/test_v1_content_item.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_v1_content_list_response.py b/test/test_v1_content_list_response.py index 8c0cea0d..b9ec1c0b 100644 --- a/test/test_v1_content_list_response.py +++ b/test/test_v1_content_list_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_v1_content_request.py b/test/test_v1_content_request.py index 38af269c..61a961b4 100644 --- a/test/test_v1_content_request.py +++ b/test/test_v1_content_request.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_v1_delete_response.py b/test/test_v1_delete_response.py index 0d63de99..208159cc 100644 --- a/test/test_v1_delete_response.py +++ b/test/test_v1_delete_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_v1_error.py b/test/test_v1_error.py index 63414865..67005e7b 100644 --- a/test/test_v1_error.py +++ b/test/test_v1_error.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_v1_form_submission_item.py b/test/test_v1_form_submission_item.py index 1bd3e5b7..3ae5abe3 100644 --- a/test/test_v1_form_submission_item.py +++ b/test/test_v1_form_submission_item.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_v1_form_submission_list_response.py b/test/test_v1_form_submission_list_response.py index e7301b8b..66206207 100644 --- a/test/test_v1_form_submission_list_response.py +++ b/test/test_v1_form_submission_list_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_v1_get_metric_series_response.py b/test/test_v1_get_metric_series_response.py index 071d2d80..d40cd758 100644 --- a/test/test_v1_get_metric_series_response.py +++ b/test/test_v1_get_metric_series_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_v1_get_metric_series_response_data.py b/test/test_v1_get_metric_series_response_data.py index 3b4fc8fc..2626743d 100644 --- a/test/test_v1_get_metric_series_response_data.py +++ b/test/test_v1_get_metric_series_response_data.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_v1_get_metrics_response.py b/test/test_v1_get_metrics_response.py index 00e48807..8cc14023 100644 --- a/test/test_v1_get_metrics_response.py +++ b/test/test_v1_get_metrics_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_v1_get_metrics_response_data.py b/test/test_v1_get_metrics_response_data.py index 6868bc25..1d4f637f 100644 --- a/test/test_v1_get_metrics_response_data.py +++ b/test/test_v1_get_metrics_response_data.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_v1_global_meta_response.py b/test/test_v1_global_meta_response.py index 0d76f714..95ee0898 100644 --- a/test/test_v1_global_meta_response.py +++ b/test/test_v1_global_meta_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_v1_global_meta_response_global_meta.py b/test/test_v1_global_meta_response_global_meta.py index c2a686ad..bc4a9eee 100644 --- a/test/test_v1_global_meta_response_global_meta.py +++ b/test/test_v1_global_meta_response_global_meta.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_v1_info.py b/test/test_v1_info.py index b00e8133..98bd8ca7 100644 --- a/test/test_v1_info.py +++ b/test/test_v1_info.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_v1_meta.py b/test/test_v1_meta.py index 651d1313..c7a96296 100644 --- a/test/test_v1_meta.py +++ b/test/test_v1_meta.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_v1_metric_day_stats.py b/test/test_v1_metric_day_stats.py index abb96283..9cf21f3b 100644 --- a/test/test_v1_metric_day_stats.py +++ b/test/test_v1_metric_day_stats.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_v1_metric_minute_stats.py b/test/test_v1_metric_minute_stats.py index 18e49d53..e84e00fe 100644 --- a/test/test_v1_metric_minute_stats.py +++ b/test/test_v1_metric_minute_stats.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_v1_metric_month_stats.py b/test/test_v1_metric_month_stats.py index 78d13e0d..5a075b06 100644 --- a/test/test_v1_metric_month_stats.py +++ b/test/test_v1_metric_month_stats.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_v1_ping_response.py b/test/test_v1_ping_response.py index 95a2e9a2..383967e0 100644 --- a/test/test_v1_ping_response.py +++ b/test/test_v1_ping_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_v1_proxy_item.py b/test/test_v1_proxy_item.py index dbf09747..8e3b2140 100644 --- a/test/test_v1_proxy_item.py +++ b/test/test_v1_proxy_item.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_v1_proxy_list_response.py b/test/test_v1_proxy_list_response.py index 56f6782e..f5e25563 100644 --- a/test/test_v1_proxy_list_response.py +++ b/test/test_v1_proxy_list_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_v1_redirect_item.py b/test/test_v1_redirect_item.py index c9794b18..2fb757fc 100644 --- a/test/test_v1_redirect_item.py +++ b/test/test_v1_redirect_item.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_v1_redirect_list_response.py b/test/test_v1_redirect_list_response.py index 6651cabd..be91b698 100644 --- a/test/test_v1_redirect_list_response.py +++ b/test/test_v1_redirect_list_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_v1_redirect_request.py b/test/test_v1_redirect_request.py index b37e616e..010808cf 100644 --- a/test/test_v1_redirect_request.py +++ b/test/test_v1_redirect_request.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_v1_redirect_response.py b/test/test_v1_redirect_response.py index e5c4693f..c02f6937 100644 --- a/test/test_v1_redirect_response.py +++ b/test/test_v1_redirect_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_v1_revision.py b/test/test_v1_revision.py index ea9f310c..f94c67f1 100644 --- a/test/test_v1_revision.py +++ b/test/test_v1_revision.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_v1_revisions_response.py b/test/test_v1_revisions_response.py index e6db565d..2bf867ea 100644 --- a/test/test_v1_revisions_response.py +++ b/test/test_v1_revisions_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_v1_search_hit.py b/test/test_v1_search_hit.py index 32f45dbf..1a045b3f 100644 --- a/test/test_v1_search_hit.py +++ b/test/test_v1_search_hit.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_v1_search_items_response.py b/test/test_v1_search_items_response.py index ed4c6243..7df6b247 100644 --- a/test/test_v1_search_items_response.py +++ b/test/test_v1_search_items_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_v1_search_mutation_response.py b/test/test_v1_search_mutation_response.py index 9dd01e78..8487dca1 100644 --- a/test/test_v1_search_mutation_response.py +++ b/test/test_v1_search_mutation_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_v1_search_record.py b/test/test_v1_search_record.py index 0d98639d..06d63888 100644 --- a/test/test_v1_search_record.py +++ b/test/test_v1_search_record.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_v1_search_response.py b/test/test_v1_search_response.py index cbb436b3..f8d235ea 100644 --- a/test/test_v1_search_response.py +++ b/test/test_v1_search_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_v1_series_point_day.py b/test/test_v1_series_point_day.py index 8f3443b5..f5f7f509 100644 --- a/test/test_v1_series_point_day.py +++ b/test/test_v1_series_point_day.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_v1_series_point_month.py b/test/test_v1_series_point_month.py index 884c2d5c..3cead9f0 100644 --- a/test/test_v1_series_point_month.py +++ b/test/test_v1_series_point_month.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_v1_transition.py b/test/test_v1_transition.py index 38318bd7..454b1736 100644 --- a/test/test_v1_transition.py +++ b/test/test_v1_transition.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_v1_upload_response.py b/test/test_v1_upload_response.py index b86f9063..2fdc568b 100644 --- a/test/test_v1_upload_response.py +++ b/test/test_v1_upload_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_v1_url_meta_request.py b/test/test_v1_url_meta_request.py index b4c2d7dc..9f0bf8cc 100644 --- a/test/test_v1_url_meta_request.py +++ b/test/test_v1_url_meta_request.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_v1_url_meta_response.py b/test/test_v1_url_meta_response.py index 9a135aac..bbbe090d 100644 --- a/test/test_v1_url_meta_response.py +++ b/test/test_v1_url_meta_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_v1_waf_log_item.py b/test/test_v1_waf_log_item.py index 571953e6..af80ee5f 100644 --- a/test/test_v1_waf_log_item.py +++ b/test/test_v1_waf_log_item.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_v1_waf_log_list_response.py b/test/test_v1_waf_log_list_response.py index e66e98cb..3c374ca1 100644 --- a/test/test_v1_waf_log_list_response.py +++ b/test/test_v1_waf_log_list_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_v2_crawler.py b/test/test_v2_crawler.py index 8c5078dc..e3689164 100644 --- a/test/test_v2_crawler.py +++ b/test/test_v2_crawler.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_v2_crawler_assets.py b/test/test_v2_crawler_assets.py index 45c9b50a..c7d9688a 100644 --- a/test/test_v2_crawler_assets.py +++ b/test/test_v2_crawler_assets.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_v2_crawler_assets_network_intercept.py b/test/test_v2_crawler_assets_network_intercept.py index bad50766..ae817b91 100644 --- a/test/test_v2_crawler_assets_network_intercept.py +++ b/test/test_v2_crawler_assets_network_intercept.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_v2_crawler_assets_parser.py b/test/test_v2_crawler_assets_parser.py index 52ebfb2c..d110def9 100644 --- a/test/test_v2_crawler_assets_parser.py +++ b/test/test_v2_crawler_assets_parser.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_v2_crawler_request.py b/test/test_v2_crawler_request.py index f92299e8..826667e0 100644 --- a/test/test_v2_crawler_request.py +++ b/test/test_v2_crawler_request.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_v2_crawler_run.py b/test/test_v2_crawler_run.py index e2ae45fb..f290bd59 100644 --- a/test/test_v2_crawler_run.py +++ b/test/test_v2_crawler_run.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_v2_crawler_schedule.py b/test/test_v2_crawler_schedule.py index 92190866..e2079091 100644 --- a/test/test_v2_crawler_schedule.py +++ b/test/test_v2_crawler_schedule.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_v2_crawler_schedule_request.py b/test/test_v2_crawler_schedule_request.py index 247684c8..69dccf18 100644 --- a/test/test_v2_crawler_schedule_request.py +++ b/test/test_v2_crawler_schedule_request.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. @@ -35,12 +35,11 @@ def make_instance(self, include_optional) -> V2CrawlerScheduleRequest: model = V2CrawlerScheduleRequest() if include_optional: return V2CrawlerScheduleRequest( - name = 'Test schedule', + name = 'Daily Crawl', schedule_cron_string = '0 2 * * *' ) else: return V2CrawlerScheduleRequest( - name = 'Test schedule', schedule_cron_string = '0 2 * * *', ) """ diff --git a/test/test_v2_crawler_sitemap_inner.py b/test/test_v2_crawler_sitemap_inner.py index 95833424..2241324a 100644 --- a/test/test_v2_crawler_sitemap_inner.py +++ b/test/test_v2_crawler_sitemap_inner.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_v2_custom_header_request.py b/test/test_v2_custom_header_request.py index 9674c717..0ce9d3f3 100644 --- a/test/test_v2_custom_header_request.py +++ b/test/test_v2_custom_header_request.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_v2_domain.py b/test/test_v2_domain.py index bf5f1468..b5ee4923 100644 --- a/test/test_v2_domain.py +++ b/test/test_v2_domain.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_v2_domain_dns_go_live_records_inner.py b/test/test_v2_domain_dns_go_live_records_inner.py index a96d90de..b4e617e1 100644 --- a/test/test_v2_domain_dns_go_live_records_inner.py +++ b/test/test_v2_domain_dns_go_live_records_inner.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_v2_domain_dns_validation_records_inner.py b/test/test_v2_domain_dns_validation_records_inner.py index e6f43611..cf17529f 100644 --- a/test/test_v2_domain_dns_validation_records_inner.py +++ b/test/test_v2_domain_dns_validation_records_inner.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_v2_domain_request.py b/test/test_v2_domain_request.py index 9074b7f1..2e3b7ebf 100644 --- a/test/test_v2_domain_request.py +++ b/test/test_v2_domain_request.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_v2_error.py b/test/test_v2_error.py index 02f96492..c3be67f8 100644 --- a/test/test_v2_error.py +++ b/test/test_v2_error.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_v2_metric_data.py b/test/test_v2_metric_data.py new file mode 100644 index 00000000..9e55e8a8 --- /dev/null +++ b/test/test_v2_metric_data.py @@ -0,0 +1,66 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +import unittest + +from quantcdn.models.v2_metric_data import V2MetricData + +class TestV2MetricData(unittest.TestCase): + """V2MetricData unit test stubs""" + + def setUp(self): + pass + + def tearDown(self): + pass + + def make_instance(self, include_optional) -> V2MetricData: + """Test V2MetricData + include_optional is a boolean, when False only required + params are included, when True both required and + optional params are included """ + # uncomment below to create an instance of `V2MetricData` + """ + model = V2MetricData() + if include_optional: + return V2MetricData( + series = [ + quantcdn.models.v2_metric_data_point.V2MetricDataPoint( + timestamp = 2026-01-29T12:00:00+00:00, + value = 150, ) + ], + period_total = 8523, + all_time_total = 1284567, + period_average = 142.05 + ) + else: + return V2MetricData( + series = [ + quantcdn.models.v2_metric_data_point.V2MetricDataPoint( + timestamp = 2026-01-29T12:00:00+00:00, + value = 150, ) + ], + period_total = 8523, + all_time_total = 1284567, + period_average = 142.05, + ) + """ + + def testV2MetricData(self): + """Test V2MetricData""" + # inst_req_only = self.make_instance(include_optional=False) + # inst_req_and_optional = self.make_instance(include_optional=True) + +if __name__ == '__main__': + unittest.main() diff --git a/test/test_v2_metric_data_point.py b/test/test_v2_metric_data_point.py new file mode 100644 index 00000000..1c42610d --- /dev/null +++ b/test/test_v2_metric_data_point.py @@ -0,0 +1,54 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +import unittest + +from quantcdn.models.v2_metric_data_point import V2MetricDataPoint + +class TestV2MetricDataPoint(unittest.TestCase): + """V2MetricDataPoint unit test stubs""" + + def setUp(self): + pass + + def tearDown(self): + pass + + def make_instance(self, include_optional) -> V2MetricDataPoint: + """Test V2MetricDataPoint + include_optional is a boolean, when False only required + params are included, when True both required and + optional params are included """ + # uncomment below to create an instance of `V2MetricDataPoint` + """ + model = V2MetricDataPoint() + if include_optional: + return V2MetricDataPoint( + timestamp = 2026-01-29T12:00:00+00:00, + value = 150 + ) + else: + return V2MetricDataPoint( + timestamp = 2026-01-29T12:00:00+00:00, + value = 150, + ) + """ + + def testV2MetricDataPoint(self): + """Test V2MetricDataPoint""" + # inst_req_only = self.make_instance(include_optional=False) + # inst_req_and_optional = self.make_instance(include_optional=True) + +if __name__ == '__main__': + unittest.main() diff --git a/test/test_v2_metric_data_point_timestamp.py b/test/test_v2_metric_data_point_timestamp.py new file mode 100644 index 00000000..75b197b4 --- /dev/null +++ b/test/test_v2_metric_data_point_timestamp.py @@ -0,0 +1,50 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +import unittest + +from quantcdn.models.v2_metric_data_point_timestamp import V2MetricDataPointTimestamp + +class TestV2MetricDataPointTimestamp(unittest.TestCase): + """V2MetricDataPointTimestamp unit test stubs""" + + def setUp(self): + pass + + def tearDown(self): + pass + + def make_instance(self, include_optional) -> V2MetricDataPointTimestamp: + """Test V2MetricDataPointTimestamp + include_optional is a boolean, when False only required + params are included, when True both required and + optional params are included """ + # uncomment below to create an instance of `V2MetricDataPointTimestamp` + """ + model = V2MetricDataPointTimestamp() + if include_optional: + return V2MetricDataPointTimestamp( + ) + else: + return V2MetricDataPointTimestamp( + ) + """ + + def testV2MetricDataPointTimestamp(self): + """Test V2MetricDataPointTimestamp""" + # inst_req_only = self.make_instance(include_optional=False) + # inst_req_and_optional = self.make_instance(include_optional=True) + +if __name__ == '__main__': + unittest.main() diff --git a/test/test_v2_metrics_meta.py b/test/test_v2_metrics_meta.py new file mode 100644 index 00000000..4b9fcbac --- /dev/null +++ b/test/test_v2_metrics_meta.py @@ -0,0 +1,61 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +import unittest + +from quantcdn.models.v2_metrics_meta import V2MetricsMeta + +class TestV2MetricsMeta(unittest.TestCase): + """V2MetricsMeta unit test stubs""" + + def setUp(self): + pass + + def tearDown(self): + pass + + def make_instance(self, include_optional) -> V2MetricsMeta: + """Test V2MetricsMeta + include_optional is a boolean, when False only required + params are included, when True both required and + optional params are included """ + # uncomment below to create an instance of `V2MetricsMeta` + """ + model = V2MetricsMeta() + if include_optional: + return V2MetricsMeta( + period = 'hourly', + granularity = 'minute', + start_time = '2026-01-29T12:00:00+00:00', + end_time = '2026-01-29T13:00:00+00:00', + metrics = ["hits","bytes"], + domain = '' + ) + else: + return V2MetricsMeta( + period = 'hourly', + granularity = 'minute', + start_time = '2026-01-29T12:00:00+00:00', + end_time = '2026-01-29T13:00:00+00:00', + metrics = ["hits","bytes"], + ) + """ + + def testV2MetricsMeta(self): + """Test V2MetricsMeta""" + # inst_req_only = self.make_instance(include_optional=False) + # inst_req_and_optional = self.make_instance(include_optional=True) + +if __name__ == '__main__': + unittest.main() diff --git a/test/test_v2_metrics_response.py b/test/test_v2_metrics_response.py new file mode 100644 index 00000000..e3e4ec80 --- /dev/null +++ b/test/test_v2_metrics_response.py @@ -0,0 +1,66 @@ +# coding: utf-8 + +""" + QuantCDN API + + Unified API for QuantCDN Admin and QuantCloud Platform services + + The version of the OpenAPI document: 4.20.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +import unittest + +from quantcdn.models.v2_metrics_response import V2MetricsResponse + +class TestV2MetricsResponse(unittest.TestCase): + """V2MetricsResponse unit test stubs""" + + def setUp(self): + pass + + def tearDown(self): + pass + + def make_instance(self, include_optional) -> V2MetricsResponse: + """Test V2MetricsResponse + include_optional is a boolean, when False only required + params are included, when True both required and + optional params are included """ + # uncomment below to create an instance of `V2MetricsResponse` + """ + model = V2MetricsResponse() + if include_optional: + return V2MetricsResponse( + meta = quantcdn.models.v2_metrics_meta.V2MetricsMeta( + period = 'hourly', + granularity = 'minute', + start_time = '2026-01-29T12:00:00+00:00', + end_time = '2026-01-29T13:00:00+00:00', + metrics = ["hits","bytes"], + domain = '', ), + data = {"hits":{"series":[{"timestamp":"2026-01-29T12:00:00+00:00","value":150},{"timestamp":"2026-01-29T12:01:00+00:00","value":142}],"period_total":8523,"all_time_total":1284567,"period_average":142.05},"bytes":{"series":[{"timestamp":"2026-01-29T12:00:00+00:00","value":1520576},{"timestamp":"2026-01-29T12:01:00+00:00","value":1423456}],"period_total":91234567,"all_time_total":12845670000,"period_average":1520576.12}} + ) + else: + return V2MetricsResponse( + meta = quantcdn.models.v2_metrics_meta.V2MetricsMeta( + period = 'hourly', + granularity = 'minute', + start_time = '2026-01-29T12:00:00+00:00', + end_time = '2026-01-29T13:00:00+00:00', + metrics = ["hits","bytes"], + domain = '', ), + data = {"hits":{"series":[{"timestamp":"2026-01-29T12:00:00+00:00","value":150},{"timestamp":"2026-01-29T12:01:00+00:00","value":142}],"period_total":8523,"all_time_total":1284567,"period_average":142.05},"bytes":{"series":[{"timestamp":"2026-01-29T12:00:00+00:00","value":1520576},{"timestamp":"2026-01-29T12:01:00+00:00","value":1423456}],"period_total":91234567,"all_time_total":12845670000,"period_average":1520576.12}}, + ) + """ + + def testV2MetricsResponse(self): + """Test V2MetricsResponse""" + # inst_req_only = self.make_instance(include_optional=False) + # inst_req_and_optional = self.make_instance(include_optional=True) + +if __name__ == '__main__': + unittest.main() diff --git a/test/test_v2_organization.py b/test/test_v2_organization.py index 1ce4bc19..cb34ecea 100644 --- a/test/test_v2_organization.py +++ b/test/test_v2_organization.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_v2_organization_request.py b/test/test_v2_organization_request.py index cc49338d..8d8cfd98 100644 --- a/test/test_v2_organization_request.py +++ b/test/test_v2_organization_request.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_v2_project.py b/test/test_v2_project.py index 35556502..6e90f04d 100644 --- a/test/test_v2_project.py +++ b/test/test_v2_project.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_v2_project_request.py b/test/test_v2_project_request.py index e8d40fee..e161fa2e 100644 --- a/test/test_v2_project_request.py +++ b/test/test_v2_project_request.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_v2_rule.py b/test/test_v2_rule.py index 064c0836..aca90837 100644 --- a/test/test_v2_rule.py +++ b/test/test_v2_rule.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. @@ -49,6 +49,9 @@ def make_instance(self, include_optional) -> V2Rule: ip = '192.168.1.1', ip_is = ["192.168.1.0/24","10.0.0.1"], ip_is_not = ["172.16.0.0/12"], + asn = 'any', + asn_is = ["15169","8075"], + asn_is_not = ["13335"], country = 'US', country_is = ["US","CA","GB"], country_is_not = ["CN","RU"], diff --git a/test/test_v2_rule_auth.py b/test/test_v2_rule_auth.py index 9252944e..fbf82b53 100644 --- a/test/test_v2_rule_auth.py +++ b/test/test_v2_rule_auth.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. @@ -49,6 +49,9 @@ def make_instance(self, include_optional) -> V2RuleAuth: ip = '192.168.1.1', ip_is = [192.168.1.0/24, 10.0.0.1], ip_is_not = [172.16.0.0/12], + asn = 'any', + asn_is = [15169, 8075], + asn_is_not = [13335], country = 'US', country_is = [US, CA, GB], country_is_not = [CN, RU], diff --git a/test/test_v2_rule_auth_action.py b/test/test_v2_rule_auth_action.py index eaeb561c..9a122ad5 100644 --- a/test/test_v2_rule_auth_action.py +++ b/test/test_v2_rule_auth_action.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_v2_rule_auth_request.py b/test/test_v2_rule_auth_request.py index 16d1b80a..ff92c6aa 100644 --- a/test/test_v2_rule_auth_request.py +++ b/test/test_v2_rule_auth_request.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. @@ -50,6 +50,9 @@ def make_instance(self, include_optional) -> V2RuleAuthRequest: ip = 'ip_is', ip_is = [192.168.1.0/24, 10.0.0.1], ip_is_not = [172.16.0.0/12], + asn = 'any', + asn_is = [15169, 8075], + asn_is_not = [13335], auth_user = 'admin', auth_pass = 'secure_password123' ) diff --git a/test/test_v2_rule_bot_challenge.py b/test/test_v2_rule_bot_challenge.py index a4657972..32a67d7a 100644 --- a/test/test_v2_rule_bot_challenge.py +++ b/test/test_v2_rule_bot_challenge.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. @@ -49,6 +49,9 @@ def make_instance(self, include_optional) -> V2RuleBotChallenge: ip = '192.168.1.1', ip_is = [192.168.1.0/24, 10.0.0.1], ip_is_not = [172.16.0.0/12], + asn = 'any', + asn_is = [15169, 8075], + asn_is_not = [13335], country = 'US', country_is = [US, CA, GB], country_is_not = [CN, RU], diff --git a/test/test_v2_rule_bot_challenge_action.py b/test/test_v2_rule_bot_challenge_action.py index 4a3497ae..ddca41d6 100644 --- a/test/test_v2_rule_bot_challenge_action.py +++ b/test/test_v2_rule_bot_challenge_action.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_v2_rule_bot_challenge_request.py b/test/test_v2_rule_bot_challenge_request.py index cb785d35..a6136816 100644 --- a/test/test_v2_rule_bot_challenge_request.py +++ b/test/test_v2_rule_bot_challenge_request.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. @@ -50,6 +50,9 @@ def make_instance(self, include_optional) -> V2RuleBotChallengeRequest: ip = 'ip_is', ip_is = [192.168.1.0/24, 10.0.0.1], ip_is_not = [172.16.0.0/12], + asn = 'any', + asn_is = [15169, 8075], + asn_is_not = [13335], robot_challenge_type = 'invisible', robot_challenge_verification_ttl = 10800, robot_challenge_challenge_ttl = 30 diff --git a/test/test_v2_rule_content_filter.py b/test/test_v2_rule_content_filter.py index fbe54011..694226f7 100644 --- a/test/test_v2_rule_content_filter.py +++ b/test/test_v2_rule_content_filter.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. @@ -49,6 +49,9 @@ def make_instance(self, include_optional) -> V2RuleContentFilter: ip = '192.168.1.1', ip_is = [192.168.1.0/24, 10.0.0.1], ip_is_not = [172.16.0.0/12], + asn = 'any', + asn_is = [15169, 8075], + asn_is_not = [13335], country = 'US', country_is = [US, CA, GB], country_is_not = [CN, RU], diff --git a/test/test_v2_rule_content_filter_action.py b/test/test_v2_rule_content_filter_action.py index 5de4b448..b09ffe2e 100644 --- a/test/test_v2_rule_content_filter_action.py +++ b/test/test_v2_rule_content_filter_action.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_v2_rule_content_filter_request.py b/test/test_v2_rule_content_filter_request.py index 3d421eba..cd9d8d44 100644 --- a/test/test_v2_rule_content_filter_request.py +++ b/test/test_v2_rule_content_filter_request.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. @@ -50,6 +50,9 @@ def make_instance(self, include_optional) -> V2RuleContentFilterRequest: ip = 'ip_is', ip_is = ["192.168.1.0/24","10.0.0.1"], ip_is_not = ["172.16.0.0/12"], + asn = 'any', + asn_is = ["15169","8075"], + asn_is_not = ["13335"], fn_uuid = '8d3f4820-8536-51ef-b827-f18gc2g01bf8' ) else: diff --git a/test/test_v2_rule_custom_response.py b/test/test_v2_rule_custom_response.py index 236cea0e..7b467ee5 100644 --- a/test/test_v2_rule_custom_response.py +++ b/test/test_v2_rule_custom_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. @@ -49,6 +49,9 @@ def make_instance(self, include_optional) -> V2RuleCustomResponse: ip = '192.168.1.1', ip_is = [192.168.1.0/24, 10.0.0.1], ip_is_not = [172.16.0.0/12], + asn = 'any', + asn_is = [15169, 8075], + asn_is_not = [13335], country = 'US', country_is = [US, CA, GB], country_is_not = [CN, RU], diff --git a/test/test_v2_rule_custom_response_action.py b/test/test_v2_rule_custom_response_action.py index 8673155e..c6c93bea 100644 --- a/test/test_v2_rule_custom_response_action.py +++ b/test/test_v2_rule_custom_response_action.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_v2_rule_custom_response_request.py b/test/test_v2_rule_custom_response_request.py index 8d82e500..51703d7f 100644 --- a/test/test_v2_rule_custom_response_request.py +++ b/test/test_v2_rule_custom_response_request.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. @@ -50,6 +50,9 @@ def make_instance(self, include_optional) -> V2RuleCustomResponseRequest: ip = 'ip_is', ip_is = ["192.168.1.0/24","10.0.0.1"], ip_is_not = ["172.16.0.0/12"], + asn = 'any', + asn_is = ["15169","8075"], + asn_is_not = ["13335"], custom_response_body = 'Custom maintenance page', custom_response_status_code = 503, status_code = 503, diff --git a/test/test_v2_rule_function.py b/test/test_v2_rule_function.py index ca080775..74c2dbd4 100644 --- a/test/test_v2_rule_function.py +++ b/test/test_v2_rule_function.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. @@ -49,6 +49,9 @@ def make_instance(self, include_optional) -> V2RuleFunction: ip = '192.168.1.1', ip_is = [192.168.1.0/24, 10.0.0.1], ip_is_not = [172.16.0.0/12], + asn = 'any', + asn_is = [15169, 8075], + asn_is_not = [13335], country = 'US', country_is = [US, CA, GB], country_is_not = [CN, RU], diff --git a/test/test_v2_rule_function_action.py b/test/test_v2_rule_function_action.py index 6171a2b8..279c3735 100644 --- a/test/test_v2_rule_function_action.py +++ b/test/test_v2_rule_function_action.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_v2_rule_function_request.py b/test/test_v2_rule_function_request.py index 3549a6b6..97b0770e 100644 --- a/test/test_v2_rule_function_request.py +++ b/test/test_v2_rule_function_request.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. @@ -50,6 +50,9 @@ def make_instance(self, include_optional) -> V2RuleFunctionRequest: ip = 'ip_is', ip_is = ["192.168.1.0/24","10.0.0.1"], ip_is_not = ["172.16.0.0/12"], + asn = 'any', + asn_is = ["15169","8075"], + asn_is_not = ["13335"], fn_uuid = '7c9e6679-7425-40de-944b-e07fc1f90ae7' ) else: diff --git a/test/test_v2_rule_header.py b/test/test_v2_rule_header.py index faaa7e7c..371bcd03 100644 --- a/test/test_v2_rule_header.py +++ b/test/test_v2_rule_header.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. @@ -49,6 +49,9 @@ def make_instance(self, include_optional) -> V2RuleHeader: ip = '192.168.1.1', ip_is = [192.168.1.0/24, 10.0.0.1], ip_is_not = [172.16.0.0/12], + asn = 'any', + asn_is = [15169, 8075], + asn_is_not = [13335], country = 'US', country_is = [US, CA, GB], country_is_not = [CN, RU], diff --git a/test/test_v2_rule_header_action.py b/test/test_v2_rule_header_action.py index e44e01b0..e63668cc 100644 --- a/test/test_v2_rule_header_action.py +++ b/test/test_v2_rule_header_action.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_v2_rule_header_request.py b/test/test_v2_rule_header_request.py index 0e4dc791..6a17f386 100644 --- a/test/test_v2_rule_header_request.py +++ b/test/test_v2_rule_header_request.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. @@ -50,6 +50,9 @@ def make_instance(self, include_optional) -> V2RuleHeaderRequest: ip = 'ip_is', ip_is = [192.168.1.0/24, 10.0.0.1], ip_is_not = [172.16.0.0/12], + asn = 'any', + asn_is = [15169, 8075], + asn_is_not = [13335], headers = {"X-Custom-Header":"value","Cache-Control":"max-age=3600"} ) else: diff --git a/test/test_v2_rule_proxy.py b/test/test_v2_rule_proxy.py index 8bf70cdb..d3761d8e 100644 --- a/test/test_v2_rule_proxy.py +++ b/test/test_v2_rule_proxy.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. @@ -49,6 +49,9 @@ def make_instance(self, include_optional) -> V2RuleProxy: ip = '192.168.1.1', ip_is = [192.168.1.0/24, 10.0.0.1], ip_is_not = [172.16.0.0/12], + asn = 'any', + asn_is = [15169, 8075], + asn_is_not = [13335], country = 'US', country_is = [US, CA, GB], country_is_not = [CN, RU], diff --git a/test/test_v2_rule_proxy_action.py b/test/test_v2_rule_proxy_action.py index 362dcc2c..913268d3 100644 --- a/test/test_v2_rule_proxy_action.py +++ b/test/test_v2_rule_proxy_action.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_v2_rule_proxy_action_notify_config.py b/test/test_v2_rule_proxy_action_notify_config.py index 4c6f1958..78864b75 100644 --- a/test/test_v2_rule_proxy_action_notify_config.py +++ b/test/test_v2_rule_proxy_action_notify_config.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_v2_rule_proxy_action_quant_cloud_selection.py b/test/test_v2_rule_proxy_action_quant_cloud_selection.py index df0a4aea..448879d9 100644 --- a/test/test_v2_rule_proxy_action_quant_cloud_selection.py +++ b/test/test_v2_rule_proxy_action_quant_cloud_selection.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_v2_rule_proxy_request.py b/test/test_v2_rule_proxy_request.py index 7eb10215..5419a52c 100644 --- a/test/test_v2_rule_proxy_request.py +++ b/test/test_v2_rule_proxy_request.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. @@ -50,6 +50,9 @@ def make_instance(self, include_optional) -> V2RuleProxyRequest: ip = 'ip_is', ip_is = ["192.168.1.0/24","10.0.0.1"], ip_is_not = ["172.16.0.0/12"], + asn = 'any', + asn_is = ["15169","8075"], + asn_is_not = ["13335"], to = 'https://backend.test-domain.com', host = 'backend.test-domain.com', auth_user = '', diff --git a/test/test_v2_rule_redirect.py b/test/test_v2_rule_redirect.py index 559b1caf..abe0e84b 100644 --- a/test/test_v2_rule_redirect.py +++ b/test/test_v2_rule_redirect.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. @@ -49,6 +49,9 @@ def make_instance(self, include_optional) -> V2RuleRedirect: ip = '192.168.1.1', ip_is = [192.168.1.0/24, 10.0.0.1], ip_is_not = [172.16.0.0/12], + asn = 'any', + asn_is = [15169, 8075], + asn_is_not = [13335], country = 'US', country_is = [US, CA, GB], country_is_not = [CN, RU], diff --git a/test/test_v2_rule_redirect_action.py b/test/test_v2_rule_redirect_action.py index 7d7be7e6..8cf5a177 100644 --- a/test/test_v2_rule_redirect_action.py +++ b/test/test_v2_rule_redirect_action.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_v2_rule_redirect_request.py b/test/test_v2_rule_redirect_request.py index f2896276..04f706a1 100644 --- a/test/test_v2_rule_redirect_request.py +++ b/test/test_v2_rule_redirect_request.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. @@ -50,6 +50,9 @@ def make_instance(self, include_optional) -> V2RuleRedirectRequest: ip = 'ip_is', ip_is = ["192.168.1.0/24","10.0.0.1"], ip_is_not = ["172.16.0.0/12"], + asn = 'any', + asn_is = ["15169","8075"], + asn_is_not = ["13335"], redirect_to = 'https://test-domain.com/new-path', redirect_code = '301' ) diff --git a/test/test_v2_rule_request.py b/test/test_v2_rule_request.py index 390044d4..cff3ae01 100644 --- a/test/test_v2_rule_request.py +++ b/test/test_v2_rule_request.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. @@ -49,7 +49,10 @@ def make_instance(self, include_optional) -> V2RuleRequest: method_is_not = ["DELETE","PUT"], ip = 'ip_is', ip_is = ["192.168.1.0/24","10.0.0.1"], - ip_is_not = ["172.16.0.0/12"] + ip_is_not = ["172.16.0.0/12"], + asn = 'any', + asn_is = ["15169","8075"], + asn_is_not = ["13335"] ) else: return V2RuleRequest( diff --git a/test/test_v2_rule_serve_static.py b/test/test_v2_rule_serve_static.py index 7cbfb8f3..af6737ed 100644 --- a/test/test_v2_rule_serve_static.py +++ b/test/test_v2_rule_serve_static.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. @@ -49,6 +49,9 @@ def make_instance(self, include_optional) -> V2RuleServeStatic: ip = '192.168.1.1', ip_is = [192.168.1.0/24, 10.0.0.1], ip_is_not = [172.16.0.0/12], + asn = 'any', + asn_is = [15169, 8075], + asn_is_not = [13335], country = 'US', country_is = [US, CA, GB], country_is_not = [CN, RU], diff --git a/test/test_v2_rule_serve_static_action.py b/test/test_v2_rule_serve_static_action.py index 227efc70..b27f7a6a 100644 --- a/test/test_v2_rule_serve_static_action.py +++ b/test/test_v2_rule_serve_static_action.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_v2_rule_serve_static_request.py b/test/test_v2_rule_serve_static_request.py index 2f36a6f1..f4457d09 100644 --- a/test/test_v2_rule_serve_static_request.py +++ b/test/test_v2_rule_serve_static_request.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. @@ -50,6 +50,9 @@ def make_instance(self, include_optional) -> V2RuleServeStaticRequest: ip = 'ip_is', ip_is = [192.168.1.0/24, 10.0.0.1], ip_is_not = [172.16.0.0/12], + asn = 'any', + asn_is = [15169, 8075], + asn_is_not = [13335], static_file_path = '/index.html' ) else: diff --git a/test/test_v2_secret_store.py b/test/test_v2_secret_store.py index b58235a7..ca92ec06 100644 --- a/test/test_v2_secret_store.py +++ b/test/test_v2_secret_store.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_v2_secret_store_request.py b/test/test_v2_secret_store_request.py index f17f7ced..03cf59d2 100644 --- a/test/test_v2_secret_store_request.py +++ b/test/test_v2_secret_store_request.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_v2_store.py b/test/test_v2_store.py index 4c9a8797..e9abc256 100644 --- a/test/test_v2_store.py +++ b/test/test_v2_store.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_v2_store_item.py b/test/test_v2_store_item.py index da3445fe..d399418f 100644 --- a/test/test_v2_store_item.py +++ b/test/test_v2_store_item.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_v2_store_item_request.py b/test/test_v2_store_item_request.py index 6a681ef2..213253a6 100644 --- a/test/test_v2_store_item_request.py +++ b/test/test_v2_store_item_request.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_v2_store_item_update_request.py b/test/test_v2_store_item_update_request.py index 0610b7bb..e1a0487d 100644 --- a/test/test_v2_store_item_update_request.py +++ b/test/test_v2_store_item_update_request.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_v2_store_items_list_response.py b/test/test_v2_store_items_list_response.py index 3966ffc4..76a64138 100644 --- a/test/test_v2_store_items_list_response.py +++ b/test/test_v2_store_items_list_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_v2_store_request.py b/test/test_v2_store_request.py index 5410ffa4..9aa7df0f 100644 --- a/test/test_v2_store_request.py +++ b/test/test_v2_store_request.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_validate_compose200_response.py b/test/test_validate_compose200_response.py index 2b3c9bfe..93a53a79 100644 --- a/test/test_validate_compose200_response.py +++ b/test/test_validate_compose200_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_validate_compose422_response.py b/test/test_validate_compose422_response.py index ce824bbe..6a1d01eb 100644 --- a/test/test_validate_compose422_response.py +++ b/test/test_validate_compose422_response.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_validate_compose_request.py b/test/test_validate_compose_request.py index 4acff94d..1ab40c3e 100644 --- a/test/test_validate_compose_request.py +++ b/test/test_validate_compose_request.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_variable.py b/test/test_variable.py index eac26452..90abc83b 100644 --- a/test/test_variable.py +++ b/test/test_variable.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_variables_api.py b/test/test_variables_api.py index 032b139c..dbca9f67 100644 --- a/test/test_variables_api.py +++ b/test/test_variables_api.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_volume.py b/test/test_volume.py index a834403a..8f79631c 100644 --- a/test/test_volume.py +++ b/test/test_volume.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_volumes_api.py b/test/test_volumes_api.py index eda04370..c56ef965 100644 --- a/test/test_volumes_api.py +++ b/test/test_volumes_api.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_waf_config.py b/test/test_waf_config.py index 61f6be70..83d06a9b 100644 --- a/test/test_waf_config.py +++ b/test/test_waf_config.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_waf_config_block_lists.py b/test/test_waf_config_block_lists.py index dddc2768..6a05b03a 100644 --- a/test/test_waf_config_block_lists.py +++ b/test/test_waf_config_block_lists.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_waf_config_httpbl.py b/test/test_waf_config_httpbl.py index 7ba0b147..66279db1 100644 --- a/test/test_waf_config_httpbl.py +++ b/test/test_waf_config_httpbl.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually. diff --git a/test/test_waf_config_thresholds_inner.py b/test/test_waf_config_thresholds_inner.py index fc20bd87..ccabcda1 100644 --- a/test/test_waf_config_thresholds_inner.py +++ b/test/test_waf_config_thresholds_inner.py @@ -5,7 +5,7 @@ Unified API for QuantCDN Admin and QuantCloud Platform services - The version of the OpenAPI document: 4.9.0 + The version of the OpenAPI document: 4.20.0 Generated by OpenAPI Generator (https://openapi-generator.tech) Do not edit the class manually.