From cc2066c6ee9ad2a84b6e2c8d3fe1d370e880f696 Mon Sep 17 00:00:00 2001 From: API Team Date: Fri, 19 Jun 2026 11:09:40 +0000 Subject: [PATCH] [GitHub Bot] Generated python SDK --- .../.openapi-generator/FILES | 6 + thousandeyes-sdk-administrative/README.md | 5 +- .../docs/AgentResponse.md | 3 +- .../docs/ClusterMember.md | 1 + .../docs/EnterpriseAgent.md | 4 +- .../docs/EnterpriseAgentData.md | 1 + .../docs/NetworkProviderInfo.md | 32 + .../docs/NetworkProviderType.md | 4 +- .../docs/SimpleAgent.md | 3 +- .../SimpleAgentAllOfNetworkProviderInfo.md | 31 + .../administrative/__init__.py | 3 + .../administrative/models/__init__.py | 3 + .../administrative/models/agent_response.py | 14 +- .../administrative/models/cluster_member.py | 6 +- .../administrative/models/enterprise_agent.py | 18 +- .../models/enterprise_agent_data.py | 6 +- .../models/network_provider_info.py | 96 + .../models/network_provider_type.py | 44 + .../administrative/models/simple_agent.py | 16 +- ...mple_agent_all_of_network_provider_info.py | 96 + .../test/test_account_groups_api.py | 36 +- .../.openapi-generator/FILES | 15 + thousandeyes-sdk-agents/README.md | 9 +- thousandeyes-sdk-agents/docs/AgentDetails.md | 4 +- thousandeyes-sdk-agents/docs/AgentResponse.md | 3 +- .../docs/CloudAgentDetail.md | 3 +- .../docs/CloudEnterpriseAgent.md | 4 +- thousandeyes-sdk-agents/docs/ClusterMember.md | 1 + .../docs/EnterpriseAgent.md | 4 +- .../docs/EnterpriseAgentClusterDetail.md | 4 +- .../docs/EnterpriseAgentData.md | 1 + .../docs/EnterpriseAgentDetail.md | 4 +- thousandeyes-sdk-agents/docs/LocalProblem.md | 33 + .../docs/LocalProblemAgent.md | 32 + .../docs/LocalProblemAgentResults.md | 32 + .../docs/LocalProblemsApi.md | 101 + .../docs/NetworkProviderInfo.md | 32 + .../docs/NetworkProviderType.md | 4 +- thousandeyes-sdk-agents/docs/SimpleAgent.md | 3 +- .../SimpleAgentAllOfNetworkProviderInfo.md | 31 + .../docs/SimpleEnterpriseAgent.md | 4 +- .../src/thousandeyes_sdk/agents/__init__.py | 7 + .../thousandeyes_sdk/agents/api/__init__.py | 1 + .../agents/api/local_problems_api.py | 398 +++ .../agents/models/__init__.py | 6 + .../agents/models/agent_response.py | 14 +- .../agents/models/cloud_agent_detail.py | 14 +- .../agents/models/cluster_member.py | 6 +- .../agents/models/enterprise_agent.py | 18 +- .../models/enterprise_agent_cluster_detail.py | 18 +- .../agents/models/enterprise_agent_data.py | 6 +- .../agents/models/enterprise_agent_detail.py | 18 +- .../agents/models/local_problem.py | 113 + .../agents/models/local_problem_agent.py | 106 + .../models/local_problem_agent_results.py | 110 + .../agents/models/network_provider_info.py | 96 + .../agents/models/network_provider_type.py | 17 +- .../agents/models/simple_agent.py | 16 +- ...mple_agent_all_of_network_provider_info.py | 96 + .../agents/models/simple_enterprise_agent.py | 18 +- ...enterprise_agent_notification_rules_api.py | 22 +- .../test_cloud_and_enterprise_agents_api.py | 32 +- .../test/test_enterprise_agent_cluster_api.py | 27 +- .../test/test_local_problems_api.py | 81 + .../test_tests_assignment_on_agents_api.py | 15 + thousandeyes-sdk-alerts/README.md | 2 +- thousandeyes-sdk-bgp-monitors/README.md | 2 +- .../.openapi-generator/FILES | 18 + thousandeyes-sdk-connectors/README.md | 34 +- .../docs/ConjurConnector.md | 36 + .../docs/ConjurConnectors.md | 30 + .../docs/ConjurHostAuthentication.md | 31 + .../docs/CredentialVaultOperation.md | 34 + .../docs/CredentialVaultOperations.md | 30 + .../docs/CredentialVaultOperationsApi.md | 437 ++++ .../docs/CredentialVaultSecret.md | 31 + .../docs/CyberArkConjurConnectorsApi.md | 613 +++++ .../docs/GenericConnector.md | 3 +- .../docs/GenericConnectorAuth.md | 1 + .../docs/GenericConnectorsApi.md | 8 +- thousandeyes-sdk-connectors/docs/Header.md | 2 +- .../OauthClientCredentialsAuthentication.md | 1 + .../docs/OperationConnectorsApi.md | 16 +- .../docs/WebhookOperationsApi.md | 2 +- .../thousandeyes_sdk/connectors/__init__.py | 8 + .../connectors/api/__init__.py | 2 + .../api/credential_vault_operations_api.py | 1556 ++++++++++++ .../api/cyber_ark_conjur_connectors_api.py | 2191 +++++++++++++++++ .../connectors/api/generic_connectors_api.py | 6 +- .../api/operation_connectors_api.py | 45 +- .../connectors/models/__init__.py | 6 + .../connectors/models/conjur_connector.py | 114 + .../connectors/models/conjur_connectors.py | 101 + .../models/conjur_host_authentication.py | 92 + .../models/credential_vault_operation.py | 113 + .../models/credential_vault_operations.py | 101 + .../models/credential_vault_secret.py | 91 + .../connectors/models/generic_connector.py | 14 +- .../connectors/models/header.py | 4 +- ...oauth_client_credentials_authentication.py | 4 +- .../test_credential_vault_operations_api.py | 287 +++ .../test_cyber_ark_conjur_connectors_api.py | 328 +++ .../test/test_generic_connectors_api.py | 84 + .../test/test_webhook_operations_api.py | 21 + thousandeyes-sdk-credentials/README.md | 2 +- .../.openapi-generator/FILES | 14 +- thousandeyes-sdk-dashboards/README.md | 9 +- .../docs/ApiPieChartWidget.md | 1 + .../docs/ApiPieChartWidgetProperties.md | 32 + .../docs/ApiStackedAreaChartWidget.md | 1 + .../ApiStackedAreaChartWidgetProperties.md | 32 + thousandeyes-sdk-dashboards/docs/ApiWidget.md | 1 + .../thousandeyes_sdk/dashboards/__init__.py | 7 +- .../dashboards/models/__init__.py | 7 +- .../models/api_aggregate_property.py | 2 + .../dashboards/models/api_pie_chart_widget.py | 11 +- .../models/api_pie_chart_widget_properties.py | 108 + .../models/api_stacked_area_chart_widget.py | 11 +- ...pi_stacked_area_chart_widget_properties.py | 108 + .../models/api_widget_sort_property.py | 41 - .../dashboards/models/widget_type.py | 54 - .../test/test_dashboard_snapshots_api.py | 44 +- .../test/test_dashboards_api.py | 56 +- thousandeyes-sdk-emulation/README.md | 2 +- thousandeyes-sdk-endpoint-agents/README.md | 2 +- .../docs/BatteryMetrics.md | 1 + .../docs/EndpointAgent.md | 3 + .../endpoint_agents/models/battery_metrics.py | 6 +- .../endpoint_agents/models/endpoint_agent.py | 32 +- .../test/test_endpoint_agents_api.py | 32 + .../.openapi-generator/FILES | 2 + .../README.md | 4 +- .../docs/EndpointAgentLabelsSelectorConfig.md | 3 +- .../docs/EndpointAgentSelectorConfig.md | 3 +- .../docs/EndpointAgentTagsSelectorConfig.md | 33 + .../docs/EndpointAgentToServerInstantTest.md | 3 +- .../docs/EndpointHttpServerInstantTest.md | 3 +- .../docs/EndpointInstantTest.md | 3 +- .../docs/EndpointTestAgentSelectorType.md | 2 +- .../endpoint_instant_tests/__init__.py | 3 +- ...er_endpoint_instant_scheduled_tests_api.py | 2 +- ...er_endpoint_instant_scheduled_tests_api.py | 2 +- ...un_endpoint_instant_scheduled_tests_api.py | 2 +- .../endpoint_instant_tests/models/__init__.py | 3 +- .../endpoint_agent_labels_selector_config.py | 10 +- .../models/endpoint_agent_selector_config.py | 60 +- .../endpoint_agent_tags_selector_config.py | 101 + .../endpoint_agent_to_server_instant_test.py | 8 +- .../models/endpoint_agent_to_server_test.py | 2 +- .../endpoint_all_agents_selector_config.py | 2 +- .../models/endpoint_http_server_base_test.py | 2 +- .../endpoint_http_server_instant_test.py | 8 +- .../models/endpoint_http_server_test.py | 2 +- .../models/endpoint_instant_test.py | 8 +- .../models/endpoint_ip_version_in.py | 2 +- ...point_run_scheduled_instant_test_result.py | 2 +- .../models/endpoint_scheduled_test_type.py | 2 +- ...ndpoint_specific_agents_selector_config.py | 2 +- .../models/endpoint_test.py | 2 +- .../endpoint_test_agent_selector_type.py | 5 +- .../models/endpoint_test_auth_type.py | 2 +- .../models/endpoint_test_links.py | 2 +- .../models/endpoint_test_protocol.py | 2 +- .../models/endpoint_test_self_link.py | 2 +- .../endpoint_instant_tests/models/error.py | 2 +- .../endpoint_instant_tests/models/link.py | 2 +- .../models/test_interval.py | 2 +- .../models/test_label.py | 2 +- .../models/test_probe_mode.py | 2 +- .../models/test_probe_mode_response.py | 2 +- .../models/test_ssl_version_id.py | 2 +- .../models/unauthorized_error.py | 2 +- .../models/validation_error.py | 2 +- .../models/validation_error_item.py | 2 +- ...er_endpoint_instant_scheduled_tests_api.py | 3 +- ...er_endpoint_instant_scheduled_tests_api.py | 3 +- ...un_endpoint_instant_scheduled_tests_api.py | 2 +- thousandeyes-sdk-endpoint-labels/README.md | 2 +- .../.openapi-generator/FILES | 2 + .../README.md | 3 +- .../docs/BatteryMetrics.md | 1 + .../docs/DynamicEndpointTestWebex.md | 1 + .../DynamicEndpointTestsDataSearchFilter.md | 4 +- .../docs/EndpointAgentLabelsSelectorConfig.md | 3 +- .../docs/EndpointAgentSelectorConfig.md | 3 +- .../docs/EndpointAgentTagsSelectorConfig.md | 33 + .../endpoint_test_results/__init__.py | 1 + .../endpoint_test_results/models/__init__.py | 1 + .../models/battery_metrics.py | 6 +- .../models/cpu_utilization.py | 10 +- .../models/dynamic_endpoint_test_webex.py | 6 +- ...namic_endpoint_tests_data_search_filter.py | 10 +- .../endpoint_agent_labels_selector_config.py | 8 +- .../models/endpoint_agent_selector_config.py | 58 +- .../endpoint_agent_tags_selector_config.py | 101 + .../models/real_user_endpoint_test.py | 2 +- .../models/real_user_endpoint_test_base.py | 2 +- .../models/real_user_endpoint_test_detail.py | 2 +- ...ver_endpoint_scheduled_test_results_api.py | 26 +- ...local_network_endpoint_test_results_api.py | 56 +- ...twork_dynamic_endpoint_test_results_api.py | 70 +- ...ork_endpoint_scheduled_test_results_api.py | 64 +- ...est_real_user_endpoint_test_results_api.py | 18 +- .../.openapi-generator/FILES | 2 + thousandeyes-sdk-endpoint-tests/README.md | 4 +- .../docs/DynamicTestRequest.md | 3 +- .../docs/EndpointAgentLabelsSelectorConfig.md | 3 +- .../docs/EndpointAgentSelectorConfig.md | 3 +- .../docs/EndpointAgentTagsSelectorConfig.md | 33 + .../docs/EndpointAgentToServerInstantTest.md | 3 +- .../docs/EndpointAgentToServerTestRequest.md | 3 +- .../docs/EndpointHttpServerInstantTest.md | 3 +- .../docs/EndpointHttpServerTestRequest.md | 3 +- .../docs/EndpointInstantTest.md | 3 +- .../docs/EndpointTestAgentSelectorType.md | 2 +- .../endpoint_tests/__init__.py | 3 +- ...nt_to_server_endpoint_dynamic_tests_api.py | 2 +- ..._to_server_endpoint_scheduled_tests_api.py | 2 +- .../api/endpoint_scheduled_tests_api.py | 2 +- ...ttp_server_endpoint_scheduled_tests_api.py | 2 +- .../endpoint_tests/models/__init__.py | 3 +- .../endpoint_tests/models/dynamic_test.py | 2 +- .../models/dynamic_test_links.py | 2 +- .../models/dynamic_test_request.py | 8 +- .../models/dynamic_test_self_link.py | 2 +- .../endpoint_tests/models/dynamic_tests.py | 2 +- .../endpoint_agent_labels_selector_config.py | 10 +- .../models/endpoint_agent_selector_config.py | 60 +- .../endpoint_agent_tags_selector_config.py | 101 + .../endpoint_agent_to_server_instant_test.py | 8 +- .../models/endpoint_agent_to_server_test.py | 2 +- .../endpoint_agent_to_server_test_request.py | 8 +- .../models/endpoint_agent_to_server_tests.py | 2 +- .../endpoint_all_agents_selector_config.py | 2 +- .../models/endpoint_dynamic_test_update.py | 2 +- .../models/endpoint_http_server_base_test.py | 2 +- .../endpoint_http_server_instant_test.py | 8 +- .../models/endpoint_http_server_test.py | 2 +- .../endpoint_http_server_test_request.py | 8 +- .../models/endpoint_http_server_tests.py | 2 +- .../models/endpoint_http_test_update.py | 2 +- .../models/endpoint_instant_test.py | 8 +- .../models/endpoint_ip_version_in.py | 2 +- .../models/endpoint_network_test_update.py | 2 +- .../models/endpoint_scheduled_test_type.py | 2 +- ...ndpoint_specific_agents_selector_config.py | 2 +- .../endpoint_tests/models/endpoint_test.py | 2 +- .../endpoint_test_agent_selector_type.py | 5 +- .../models/endpoint_test_auth_type.py | 2 +- .../models/endpoint_test_links.py | 2 +- .../models/endpoint_test_protocol.py | 2 +- .../models/endpoint_test_self_link.py | 2 +- .../endpoint_tests/models/endpoint_tests.py | 2 +- .../endpoint_tests/models/error.py | 2 +- .../endpoint_tests/models/link.py | 2 +- .../endpoint_tests/models/self_links.py | 2 +- .../endpoint_tests/models/test_interval.py | 2 +- .../endpoint_tests/models/test_label.py | 2 +- .../endpoint_tests/models/test_probe_mode.py | 2 +- .../models/test_probe_mode_response.py | 2 +- .../models/test_ssl_version_id.py | 2 +- .../endpoint_tests/models/test_update.py | 2 +- .../models/unauthorized_error.py | 2 +- .../endpoint_tests/models/validation_error.py | 2 +- .../models/validation_error_item.py | 2 +- ...nt_to_server_endpoint_dynamic_tests_api.py | 13 +- ..._to_server_endpoint_scheduled_tests_api.py | 11 +- .../test/test_endpoint_scheduled_tests_api.py | 2 +- ...ttp_server_endpoint_scheduled_tests_api.py | 3 +- thousandeyes-sdk-event-detection/README.md | 3 +- .../event_detection/__init__.py | 2 +- .../event_detection/api/events_api.py | 2 +- .../event_detection/models/__init__.py | 2 +- .../event_detection/models/affected_agents.py | 2 +- .../event_detection/models/affected_count.py | 2 +- .../models/affected_targets.py | 2 +- .../event_detection/models/affected_tests.py | 2 +- .../event_detection/models/agent_links.py | 2 +- .../models/agent_local_event_detail.py | 2 +- .../models/agent_local_event_grouping.py | 2 +- .../models/api_affected_target.py | 2 +- .../models/cloud_enterprise_agent_type.py | 2 +- .../models/dns_event_detail.py | 2 +- .../models/dns_event_grouping.py | 2 +- .../event_detection/models/error.py | 2 +- .../event_detection/models/event.py | 2 +- .../models/event_alert_severity.py | 2 +- .../models/event_api_affected_agent.py | 2 +- .../models/event_api_affected_test.py | 2 +- .../event_detection/models/event_detail.py | 2 +- .../models/event_detail_base.py | 2 +- .../event_detection/models/event_state.py | 2 +- .../models/event_test_links.py | 2 +- .../event_detection/models/event_type.py | 2 +- .../event_detection/models/events.py | 2 +- .../event_detection/models/link.py | 2 +- .../models/network_event_detail.py | 2 +- .../models/network_event_grouping.py | 2 +- .../models/network_pop_event_detail.py | 2 +- .../models/pagination_next_and_self_links.py | 2 +- .../models/proxy_event_detail.py | 2 +- .../models/proxy_event_grouping.py | 2 +- .../event_detection/models/self_links.py | 2 +- .../models/simple_event_detail.py | 2 +- .../models/target_event_detail.py | 2 +- .../models/target_event_grouping.py | 2 +- .../models/target_network_event_detail.py | 2 +- .../models/target_network_event_grouping.py | 2 +- .../event_detection/models/test_type.py | 2 +- .../models/unauthorized_error.py | 2 +- .../models/validation_error.py | 2 +- .../models/validation_error_item.py | 2 +- .../test/test_events_api.py | 2 +- .../.openapi-generator/FILES | 20 +- thousandeyes-sdk-instant-tests/README.md | 12 +- .../docs/AgentResponse.md | 3 +- .../docs/AgentToAgentInstantTest.md | 1 + .../docs/AgentToAgentInstantTestRequest.md | 4 +- .../docs/AgentToAgentInstantTestResponse.md | 1 + .../docs/AgentToServerInstantTest.md | 1 + .../docs/AgentToServerInstantTestRequest.md | 4 +- .../docs/AgentToServerInstantTestResponse.md | 1 + .../docs/ApiInstantTest.md | 2 + .../docs/ApiInstantTestRequest.md | 7 +- .../docs/ApiInstantTestResponse.md | 2 + .../docs/DnsSecInstantTest.md | 1 + .../docs/DnsSecInstantTestRequest.md | 4 +- .../docs/DnsSecInstantTestResponse.md | 1 + .../docs/DnsServerInstantTest.md | 1 + .../docs/DnsServerInstantTestRequest.md | 4 +- .../docs/DnsServerInstantTestResponse.md | 1 + .../docs/DnsServerRequestProperties.md | 44 + .../docs/DnsServersRequest.md | 29 - .../docs/DnsTraceInstantTest.md | 1 + .../docs/DnsTraceInstantTestRequest.md | 4 +- .../docs/DnsTraceInstantTestResponse.md | 1 + .../docs/FtpServerInstantTest.md | 1 + .../docs/FtpServerInstantTestRequest.md | 4 +- .../docs/FtpServerInstantTestResponse.md | 1 + .../docs/HttpServerBaseProperties.md | 1 + .../docs/HttpServerInstantTest.md | 5 +- .../docs/HttpServerInstantTestRequest.md | 8 +- .../docs/HttpServerInstantTestResponse.md | 5 +- .../docs/HttpServerProperties.md | 4 +- .../docs/InstantTest.md | 1 + .../docs/NetworkProviderInfo.md | 32 + .../docs/NetworkProviderType.md | 12 + thousandeyes-sdk-instant-tests/docs/OAuth.md | 2 +- .../docs/OAuthRequestMethod.md | 12 - .../docs/PageLoadInstantTest.md | 2 + .../docs/PageLoadInstantTestRequest.md | 5 +- .../docs/PageLoadInstantTestResponse.md | 2 + .../docs/PageLoadProperties.md | 1 + .../docs/RequestMethod.md | 4 +- .../docs/SimpleAgent.md | 3 +- .../SimpleAgentAllOfNetworkProviderInfo.md | 31 + .../docs/SipServerInstantTest.md | 1 + .../docs/SipServerInstantTestRequest.md | 4 +- .../docs/SipServerInstantTestResponse.md | 1 + .../docs/TestTag.md | 31 + .../docs/TestVaultCredential.md | 30 + .../docs/TestVaultCredentialTarget.md | 4 +- .../docs/VoiceInstantTest.md | 3 +- .../docs/VoiceInstantTestRequest.md | 6 +- .../docs/VoiceInstantTestResponse.md | 3 +- .../docs/VoiceProperties.md | 2 +- .../docs/WebTransactionInstantTest.md | 2 + .../docs/WebTransactionInstantTestRequest.md | 7 +- .../docs/WebTransactionInstantTestResponse.md | 2 + .../docs/WebTransactionProperties.md | 1 + .../instant_tests/__init__.py | 10 +- .../instant_tests/models/__init__.py | 10 +- .../instant_tests/models/agent_response.py | 14 +- .../models/agent_to_agent_instant_test.py | 14 +- .../agent_to_agent_instant_test_request.py | 10 +- .../agent_to_agent_instant_test_response.py | 14 +- .../models/agent_to_server_instant_test.py | 14 +- .../agent_to_server_instant_test_request.py | 10 +- .../agent_to_server_instant_test_response.py | 14 +- .../instant_tests/models/api_instant_test.py | 26 +- .../models/api_instant_test_request.py | 26 +- .../models/api_instant_test_response.py | 24 +- .../models/dns_sec_instant_test.py | 14 +- .../models/dns_sec_instant_test_request.py | 10 +- .../models/dns_sec_instant_test_response.py | 14 +- .../models/dns_server_instant_test.py | 14 +- .../models/dns_server_instant_test_request.py | 10 +- .../dns_server_instant_test_response.py | 14 +- .../models/dns_server_request_properties.py | 126 + .../models/dns_trace_instant_test.py | 14 +- .../models/dns_trace_instant_test_request.py | 10 +- .../models/dns_trace_instant_test_response.py | 14 +- .../models/ftp_server_instant_test.py | 14 +- .../models/ftp_server_instant_test_request.py | 10 +- .../ftp_server_instant_test_response.py | 14 +- .../models/http_server_base_properties.py | 14 +- .../models/http_server_instant_test.py | 29 +- .../http_server_instant_test_request.py | 25 +- .../http_server_instant_test_response.py | 29 +- .../models/http_server_properties.py | 17 +- .../instant_tests/models/instant_test.py | 14 +- .../models/network_provider_info.py | 96 + .../models/network_provider_type.py | 44 + .../instant_tests/models/o_auth.py | 4 +- .../models/page_load_instant_test.py | 24 +- .../models/page_load_instant_test_request.py | 20 +- .../models/page_load_instant_test_response.py | 24 +- .../models/page_load_properties.py | 12 +- ...th_request_method.py => request_method.py} | 6 +- .../instant_tests/models/simple_agent.py | 16 +- ...mple_agent_all_of_network_provider_info.py | 96 + .../models/sip_server_instant_test.py | 14 +- .../models/sip_server_instant_test_request.py | 10 +- .../sip_server_instant_test_response.py | 14 +- .../instant_tests/models/test_tag.py | 91 + ...rs_request.py => test_vault_credential.py} | 17 +- .../models/test_vault_credential_target.py | 42 + .../models/voice_instant_test.py | 16 +- .../models/voice_instant_test_request.py | 12 +- .../models/voice_instant_test_response.py | 16 +- .../instant_tests/models/voice_properties.py | 2 +- .../models/web_transaction_instant_test.py | 24 +- .../web_transaction_instant_test_request.py | 26 +- .../web_transaction_instant_test_response.py | 24 +- .../models/web_transaction_properties.py | 12 +- .../test_agent_to_agent_instant_tests_api.py | 31 +- .../test_agent_to_server_instant_tests_api.py | 33 +- .../test/test_api_instant_tests_api.py | 45 +- .../test/test_dns_server_instant_tests_api.py | 31 +- .../test/test_dns_trace_instant_tests_api.py | 31 +- .../test/test_dnssec_instant_tests_api.py | 31 +- .../test/test_ftp_server_instant_tests_api.py | 31 +- .../test_http_page_load_instant_tests_api.py | 45 +- .../test_http_server_instant_tests_api.py | 47 +- .../test/test_sip_server_instant_tests_api.py | 31 +- .../test/test_voice_instant_tests_api.py | 49 +- .../test_web_transaction_instant_tests_api.py | 45 +- thousandeyes-sdk-internet-insights/README.md | 2 +- thousandeyes-sdk-snapshots/README.md | 2 +- .../.openapi-generator/FILES | 4 +- thousandeyes-sdk-streaming/README.md | 4 +- .../docs/CreateStreamResponse.md | 3 +- .../docs/EndpointAgentLabel.md | 2 +- .../docs/EndpointAgentTag.md | 30 + .../docs/GetStreamResponse.md | 3 +- thousandeyes-sdk-streaming/docs/PutStream.md | 3 +- thousandeyes-sdk-streaming/docs/Stream.md | 3 +- .../docs/TagMatchObjectType.md | 12 - .../thousandeyes_sdk/streaming/__init__.py | 2 +- .../streaming/models/__init__.py | 2 +- .../models/create_stream_response.py | 14 +- .../streaming/models/endpoint_agent_label.py | 4 +- .../streaming/models/endpoint_agent_tag.py | 87 + .../streaming/models/get_stream_response.py | 14 +- .../streaming/models/put_stream.py | 16 +- .../streaming/models/stream.py | 14 +- .../streaming/models/tag_match_object_type.py | 40 - .../test/test_streaming_api.py | 67 +- .../.openapi-generator/FILES | 4 +- thousandeyes-sdk-tags/README.md | 4 +- thousandeyes-sdk-tags/docs/AccessType.md | 2 +- thousandeyes-sdk-tags/docs/TagFilter.md | 3 +- thousandeyes-sdk-tags/docs/TagFilterScope.md | 12 + thousandeyes-sdk-tags/docs/TagFilterType.md | 12 - .../src/thousandeyes_sdk/tags/__init__.py | 2 +- .../thousandeyes_sdk/tags/models/__init__.py | 2 +- .../tags/models/access_type.py | 2 +- .../tags/models/assignment_type.py | 1 + .../tags/models/tag_filter.py | 12 +- ...tag_filter_type.py => tag_filter_scope.py} | 25 +- thousandeyes-sdk-tags/test/test_tags_api.py | 30 + thousandeyes-sdk-test-results/README.md | 2 +- .../test/test_api_test_results_api.py | 16 +- .../test/test_network_bgp_test_results_api.py | 12 +- .../test/test_network_test_results_api.py | 24 +- .../test_voice_rtp_server_test_results_api.py | 8 +- .../test_voice_sip_server_test_results_api.py | 4 +- .../test_web_http_server_test_results_api.py | 4 +- .../test_web_transactions_test_results_api.py | 16 +- .../.openapi-generator/FILES | 26 +- thousandeyes-sdk-tests/README.md | 15 +- thousandeyes-sdk-tests/docs/AgentResponse.md | 3 +- .../docs/AgentToAgentInstantTest.md | 1 + .../docs/AgentToAgentTest.md | 1 + .../docs/AgentToAgentTestRequest.md | 8 +- .../docs/AgentToAgentTestResponse.md | 1 + .../docs/AgentToServerInstantTest.md | 1 + .../docs/AgentToServerTest.md | 1 + .../docs/AgentToServerTestRequest.md | 8 +- .../docs/AgentToServerTestResponse.md | 1 + thousandeyes-sdk-tests/docs/ApiInstantTest.md | 2 + thousandeyes-sdk-tests/docs/ApiTest.md | 2 + thousandeyes-sdk-tests/docs/ApiTestRequest.md | 11 +- .../docs/ApiTestResponse.md | 2 + thousandeyes-sdk-tests/docs/BaseBgpRequest.md | 43 + thousandeyes-sdk-tests/docs/BaseBgpTest.md | 1 + thousandeyes-sdk-tests/docs/BgpTest.md | 1 + thousandeyes-sdk-tests/docs/BgpTestRequest.md | 8 +- .../docs/BgpTestResponse.md | 1 + .../docs/DnsSecInstantTest.md | 1 + thousandeyes-sdk-tests/docs/DnsSecTest.md | 1 + .../docs/DnsSecTestRequest.md | 6 +- .../docs/DnsSecTestResponse.md | 1 + .../docs/DnsServerInstantTest.md | 1 + .../docs/DnsServerRequestProperties.md | 44 + thousandeyes-sdk-tests/docs/DnsServerTest.md | 1 + .../docs/DnsServerTestRequest.md | 8 +- .../docs/DnsServerTestResponse.md | 1 + .../docs/DnsServersRequest.md | 29 - .../docs/DnsTraceInstantTest.md | 1 + thousandeyes-sdk-tests/docs/DnsTraceTest.md | 1 + .../docs/DnsTraceTestRequest.md | 6 +- .../docs/DnsTraceTestResponse.md | 1 + .../docs/FtpServerInstantTest.md | 1 + thousandeyes-sdk-tests/docs/FtpServerTest.md | 1 + .../docs/FtpServerTestRequest.md | 8 +- .../docs/FtpServerTestResponse.md | 1 + .../docs/HttpServerBaseProperties.md | 1 + .../docs/HttpServerInstantTest.md | 5 +- .../docs/HttpServerProperties.md | 4 +- thousandeyes-sdk-tests/docs/HttpServerTest.md | 5 +- .../docs/HttpServerTestRequest.md | 12 +- .../docs/HttpServerTestResponse.md | 5 +- thousandeyes-sdk-tests/docs/InstantTest.md | 1 + .../docs/NetworkProviderInfo.md | 32 + .../docs/NetworkProviderType.md | 12 + thousandeyes-sdk-tests/docs/OAuth.md | 2 +- .../docs/OAuthRequestMethod.md | 12 - .../docs/PageLoadInstantTest.md | 2 + .../docs/PageLoadProperties.md | 1 + thousandeyes-sdk-tests/docs/PageLoadTest.md | 2 + .../docs/PageLoadTestRequest.md | 13 +- .../docs/PageLoadTestResponse.md | 2 + .../docs/RequestMethod.md | 4 +- thousandeyes-sdk-tests/docs/SimpleAgent.md | 3 +- .../SimpleAgentAllOfNetworkProviderInfo.md | 31 + .../docs/SipServerInstantTest.md | 1 + thousandeyes-sdk-tests/docs/SipServerTest.md | 1 + .../docs/SipServerTestRequest.md | 14 +- .../docs/SipServerTestResponse.md | 1 + thousandeyes-sdk-tests/docs/TestTag.md | 31 + .../docs/TestVaultCredential.md | 30 + .../docs/TestVaultCredentialTarget.md | 12 + ...t.md => UnexpandedDnsServerRequestTest.md} | 34 +- .../docs/UnexpandedHttpServerTest.md | 4 +- .../docs/UnexpandedPageLoadTest.md | 1 + .../docs/UnexpandedVoiceTest.md | 2 +- .../docs/UnexpandedWebTransactionTest.md | 1 + .../docs/UpdateBgpTestRequest.md | 8 +- .../docs/VoiceInstantTest.md | 3 +- .../docs/VoiceProperties.md | 2 +- thousandeyes-sdk-tests/docs/VoiceTest.md | 3 +- .../docs/VoiceTestRequest.md | 10 +- .../docs/VoiceTestResponse.md | 3 +- .../docs/WebTransactionInstantTest.md | 2 + .../docs/WebTransactionProperties.md | 1 + .../docs/WebTransactionTest.md | 2 + .../docs/WebTransactionTestRequest.md | 13 +- .../docs/WebTransactionTestResponse.md | 2 + .../src/thousandeyes_sdk/tests/__init__.py | 13 +- .../thousandeyes_sdk/tests/models/__init__.py | 13 +- .../tests/models/agent_response.py | 14 +- .../models/agent_to_agent_instant_test.py | 14 +- .../tests/models/agent_to_agent_test.py | 14 +- .../models/agent_to_agent_test_request.py | 20 +- .../models/agent_to_agent_test_response.py | 14 +- .../models/agent_to_server_instant_test.py | 14 +- .../tests/models/agent_to_server_test.py | 14 +- .../models/agent_to_server_test_request.py | 18 +- .../models/agent_to_server_test_response.py | 14 +- .../tests/models/api_instant_test.py | 26 +- .../thousandeyes_sdk/tests/models/api_test.py | 24 +- .../tests/models/api_test_request.py | 44 +- .../tests/models/api_test_response.py | 24 +- .../tests/models/base_bgp_request.py | 136 + .../tests/models/base_bgp_test.py | 14 +- .../thousandeyes_sdk/tests/models/bgp_test.py | 14 +- .../tests/models/bgp_test_request.py | 20 +- .../tests/models/bgp_test_response.py | 14 +- .../tests/models/dns_sec_instant_test.py | 14 +- .../tests/models/dns_sec_test.py | 14 +- .../tests/models/dns_sec_test_request.py | 14 +- .../tests/models/dns_sec_test_response.py | 14 +- .../tests/models/dns_server_instant_test.py | 14 +- .../models/dns_server_request_properties.py | 126 + .../tests/models/dns_server_test.py | 14 +- .../tests/models/dns_server_test_request.py | 20 +- .../tests/models/dns_server_test_response.py | 14 +- .../tests/models/dns_trace_instant_test.py | 14 +- .../tests/models/dns_trace_test.py | 14 +- .../tests/models/dns_trace_test_request.py | 14 +- .../tests/models/dns_trace_test_response.py | 14 +- .../tests/models/ftp_server_instant_test.py | 14 +- .../tests/models/ftp_server_test.py | 14 +- .../tests/models/ftp_server_test_request.py | 20 +- .../tests/models/ftp_server_test_response.py | 14 +- .../models/http_server_base_properties.py | 14 +- .../tests/models/http_server_instant_test.py | 29 +- .../tests/models/http_server_properties.py | 17 +- .../tests/models/http_server_test.py | 29 +- .../tests/models/http_server_test_request.py | 35 +- .../tests/models/http_server_test_response.py | 29 +- .../tests/models/instant_test.py | 14 +- .../tests/models/network_provider_info.py | 96 + .../tests/models/network_provider_type.py | 17 +- .../thousandeyes_sdk/tests/models/o_auth.py | 4 +- .../tests/models/page_load_instant_test.py | 24 +- .../tests/models/page_load_properties.py | 12 +- .../tests/models/page_load_test.py | 24 +- .../tests/models/page_load_test_request.py | 38 +- .../tests/models/page_load_test_response.py | 24 +- ...th_request_method.py => request_method.py} | 6 +- .../tests/models/simple_agent.py | 16 +- ...mple_agent_all_of_network_provider_info.py | 96 + .../tests/models/sip_server_instant_test.py | 14 +- .../tests/models/sip_server_test.py | 14 +- .../tests/models/sip_server_test_request.py | 48 +- .../tests/models/sip_server_test_response.py | 14 +- .../thousandeyes_sdk/tests/models/test_tag.py | 91 + ...rs_request.py => test_vault_credential.py} | 17 +- .../models/test_vault_credential_target.py | 15 +- ... => unexpanded_dns_server_request_test.py} | 93 +- .../models/unexpanded_http_server_test.py | 17 +- .../tests/models/unexpanded_page_load_test.py | 12 +- .../tests/models/unexpanded_voice_test.py | 2 +- .../models/unexpanded_web_transaction_test.py | 12 +- .../tests/models/update_bgp_test_request.py | 18 +- .../tests/models/voice_instant_test.py | 16 +- .../tests/models/voice_properties.py | 2 +- .../tests/models/voice_test.py | 16 +- .../tests/models/voice_test_request.py | 32 +- .../tests/models/voice_test_response.py | 16 +- .../models/web_transaction_instant_test.py | 24 +- .../models/web_transaction_properties.py | 12 +- .../tests/models/web_transaction_test.py | 24 +- .../models/web_transaction_test_request.py | 38 +- .../models/web_transaction_test_response.py | 24 +- .../test/test_agent_to_agent_tests_api.py | 93 +- .../test/test_agent_to_server_tests_api.py | 95 +- .../test/test_api_tests_api.py | 160 +- .../test/test_bgp_tests_api.py | 27 + .../test/test_dns_server_tests_api.py | 93 +- .../test/test_dns_trace_tests_api.py | 97 +- .../test/test_dnssec_tests_api.py | 97 +- .../test/test_ftp_server_tests_api.py | 93 +- .../test/test_http_server_tests_api.py | 149 +- .../test/test_page_load_tests_api.py | 142 +- .../test/test_sip_server_tests_api.py | 125 +- .../test/test_voice_tests_api.py | 125 +- .../test/test_web_transaction_tests_api.py | 142 +- thousandeyes-sdk-usage/README.md | 3 +- .../src/thousandeyes_sdk/usage/__init__.py | 2 +- .../thousandeyes_sdk/usage/api/quotas_api.py | 2 +- .../thousandeyes_sdk/usage/api/usage_api.py | 2 +- .../thousandeyes_sdk/usage/models/__init__.py | 2 +- .../usage/models/account_group_quota.py | 2 +- .../models/allocation_unit_usage_breakdown.py | 2 +- .../usage/models/endpoint_agents_embedded.py | 2 +- .../models/endpoint_agents_essentials.py | 2 +- .../usage/models/endpoint_agents_usage.py | 2 +- .../usage/models/enterprise_agent_units.py | 2 +- ...agent_units_by_test_owner_account_group.py | 2 +- .../usage/models/enterprise_agents.py | 2 +- .../usage/models/enterprise_agents_usage.py | 2 +- .../thousandeyes_sdk/usage/models/error.py | 2 +- .../usage/models/expand_usage_options.py | 2 +- .../src/thousandeyes_sdk/usage/models/link.py | 2 +- .../usage/models/organization_quota.py | 2 +- .../models/organization_quota_assignment.py | 2 +- .../models/organization_quota_unassignment.py | 2 +- .../models/organizations_quotas_assign.py | 2 +- .../models/organizations_quotas_unassign.py | 2 +- .../usage/models/pagination_links.py | 2 +- .../thousandeyes_sdk/usage/models/quota.py | 2 +- .../thousandeyes_sdk/usage/models/quotas.py | 2 +- .../usage/models/quotas_assign_request.py | 2 +- .../usage/models/quotas_assign_response.py | 2 +- .../usage/models/quotas_unassign.py | 2 +- .../usage/models/self_links.py | 2 +- .../usage/models/test_usage.py | 2 +- .../usage/models/tests_usage.py | 2 +- .../usage/models/unauthorized_error.py | 2 +- .../usage/models/unit_allocation_summary.py | 2 +- .../usage/models/units_by_tests.py | 2 +- .../thousandeyes_sdk/usage/models/usage.py | 2 +- .../usage/models/usage_details.py | 2 +- .../usage/models/usage_quota.py | 2 +- .../usage/models/validation_error.py | 2 +- .../usage/models/validation_error_item.py | 2 +- .../test/test_quotas_api.py | 2 +- thousandeyes-sdk-usage/test/test_usage_api.py | 2 +- 691 files changed, 15043 insertions(+), 2033 deletions(-) create mode 100644 thousandeyes-sdk-administrative/docs/NetworkProviderInfo.md rename thousandeyes-sdk-dashboards/docs/ApiAgentWidgetShow.md => thousandeyes-sdk-administrative/docs/NetworkProviderType.md (79%) create mode 100644 thousandeyes-sdk-administrative/docs/SimpleAgentAllOfNetworkProviderInfo.md create mode 100644 thousandeyes-sdk-administrative/src/thousandeyes_sdk/administrative/models/network_provider_info.py create mode 100644 thousandeyes-sdk-administrative/src/thousandeyes_sdk/administrative/models/network_provider_type.py create mode 100644 thousandeyes-sdk-administrative/src/thousandeyes_sdk/administrative/models/simple_agent_all_of_network_provider_info.py create mode 100644 thousandeyes-sdk-agents/docs/LocalProblem.md create mode 100644 thousandeyes-sdk-agents/docs/LocalProblemAgent.md create mode 100644 thousandeyes-sdk-agents/docs/LocalProblemAgentResults.md create mode 100644 thousandeyes-sdk-agents/docs/LocalProblemsApi.md create mode 100644 thousandeyes-sdk-agents/docs/NetworkProviderInfo.md rename thousandeyes-sdk-dashboards/docs/ApiWidgetSortProperty.md => thousandeyes-sdk-agents/docs/NetworkProviderType.md (79%) create mode 100644 thousandeyes-sdk-agents/docs/SimpleAgentAllOfNetworkProviderInfo.md create mode 100644 thousandeyes-sdk-agents/src/thousandeyes_sdk/agents/api/local_problems_api.py create mode 100644 thousandeyes-sdk-agents/src/thousandeyes_sdk/agents/models/local_problem.py create mode 100644 thousandeyes-sdk-agents/src/thousandeyes_sdk/agents/models/local_problem_agent.py create mode 100644 thousandeyes-sdk-agents/src/thousandeyes_sdk/agents/models/local_problem_agent_results.py create mode 100644 thousandeyes-sdk-agents/src/thousandeyes_sdk/agents/models/network_provider_info.py rename thousandeyes-sdk-dashboards/src/thousandeyes_sdk/dashboards/models/api_agent_widget_show.py => thousandeyes-sdk-agents/src/thousandeyes_sdk/agents/models/network_provider_type.py (58%) create mode 100644 thousandeyes-sdk-agents/src/thousandeyes_sdk/agents/models/simple_agent_all_of_network_provider_info.py create mode 100644 thousandeyes-sdk-agents/test/test_local_problems_api.py create mode 100644 thousandeyes-sdk-connectors/docs/ConjurConnector.md create mode 100644 thousandeyes-sdk-connectors/docs/ConjurConnectors.md create mode 100644 thousandeyes-sdk-connectors/docs/ConjurHostAuthentication.md create mode 100644 thousandeyes-sdk-connectors/docs/CredentialVaultOperation.md create mode 100644 thousandeyes-sdk-connectors/docs/CredentialVaultOperations.md create mode 100644 thousandeyes-sdk-connectors/docs/CredentialVaultOperationsApi.md create mode 100644 thousandeyes-sdk-connectors/docs/CredentialVaultSecret.md create mode 100644 thousandeyes-sdk-connectors/docs/CyberArkConjurConnectorsApi.md create mode 100644 thousandeyes-sdk-connectors/src/thousandeyes_sdk/connectors/api/credential_vault_operations_api.py create mode 100644 thousandeyes-sdk-connectors/src/thousandeyes_sdk/connectors/api/cyber_ark_conjur_connectors_api.py create mode 100644 thousandeyes-sdk-connectors/src/thousandeyes_sdk/connectors/models/conjur_connector.py create mode 100644 thousandeyes-sdk-connectors/src/thousandeyes_sdk/connectors/models/conjur_connectors.py create mode 100644 thousandeyes-sdk-connectors/src/thousandeyes_sdk/connectors/models/conjur_host_authentication.py create mode 100644 thousandeyes-sdk-connectors/src/thousandeyes_sdk/connectors/models/credential_vault_operation.py create mode 100644 thousandeyes-sdk-connectors/src/thousandeyes_sdk/connectors/models/credential_vault_operations.py create mode 100644 thousandeyes-sdk-connectors/src/thousandeyes_sdk/connectors/models/credential_vault_secret.py create mode 100644 thousandeyes-sdk-connectors/test/test_credential_vault_operations_api.py create mode 100644 thousandeyes-sdk-connectors/test/test_cyber_ark_conjur_connectors_api.py create mode 100644 thousandeyes-sdk-dashboards/docs/ApiPieChartWidgetProperties.md create mode 100644 thousandeyes-sdk-dashboards/docs/ApiStackedAreaChartWidgetProperties.md create mode 100644 thousandeyes-sdk-dashboards/src/thousandeyes_sdk/dashboards/models/api_pie_chart_widget_properties.py create mode 100644 thousandeyes-sdk-dashboards/src/thousandeyes_sdk/dashboards/models/api_stacked_area_chart_widget_properties.py delete mode 100644 thousandeyes-sdk-dashboards/src/thousandeyes_sdk/dashboards/models/api_widget_sort_property.py delete mode 100644 thousandeyes-sdk-dashboards/src/thousandeyes_sdk/dashboards/models/widget_type.py create mode 100644 thousandeyes-sdk-endpoint-instant-tests/docs/EndpointAgentTagsSelectorConfig.md create mode 100644 thousandeyes-sdk-endpoint-instant-tests/src/thousandeyes_sdk/endpoint_instant_tests/models/endpoint_agent_tags_selector_config.py create mode 100644 thousandeyes-sdk-endpoint-test-results/docs/EndpointAgentTagsSelectorConfig.md create mode 100644 thousandeyes-sdk-endpoint-test-results/src/thousandeyes_sdk/endpoint_test_results/models/endpoint_agent_tags_selector_config.py create mode 100644 thousandeyes-sdk-endpoint-tests/docs/EndpointAgentTagsSelectorConfig.md create mode 100644 thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/endpoint_agent_tags_selector_config.py create mode 100644 thousandeyes-sdk-instant-tests/docs/DnsServerRequestProperties.md delete mode 100644 thousandeyes-sdk-instant-tests/docs/DnsServersRequest.md create mode 100644 thousandeyes-sdk-instant-tests/docs/NetworkProviderInfo.md create mode 100644 thousandeyes-sdk-instant-tests/docs/NetworkProviderType.md delete mode 100644 thousandeyes-sdk-instant-tests/docs/OAuthRequestMethod.md rename thousandeyes-sdk-dashboards/docs/WidgetType.md => thousandeyes-sdk-instant-tests/docs/RequestMethod.md (88%) create mode 100644 thousandeyes-sdk-instant-tests/docs/SimpleAgentAllOfNetworkProviderInfo.md create mode 100644 thousandeyes-sdk-instant-tests/docs/TestTag.md create mode 100644 thousandeyes-sdk-instant-tests/docs/TestVaultCredential.md rename thousandeyes-sdk-dashboards/docs/ApiWidgetSortDirection.md => thousandeyes-sdk-instant-tests/docs/TestVaultCredentialTarget.md (76%) create mode 100644 thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/dns_server_request_properties.py create mode 100644 thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/network_provider_info.py create mode 100644 thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/network_provider_type.py rename thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/{o_auth_request_method.py => request_method.py} (86%) create mode 100644 thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/simple_agent_all_of_network_provider_info.py create mode 100644 thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/test_tag.py rename thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/{dns_servers_request.py => test_vault_credential.py} (79%) create mode 100644 thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/test_vault_credential_target.py create mode 100644 thousandeyes-sdk-streaming/docs/EndpointAgentTag.md delete mode 100644 thousandeyes-sdk-streaming/docs/TagMatchObjectType.md create mode 100644 thousandeyes-sdk-streaming/src/thousandeyes_sdk/streaming/models/endpoint_agent_tag.py delete mode 100644 thousandeyes-sdk-streaming/src/thousandeyes_sdk/streaming/models/tag_match_object_type.py create mode 100644 thousandeyes-sdk-tags/docs/TagFilterScope.md delete mode 100644 thousandeyes-sdk-tags/docs/TagFilterType.md rename thousandeyes-sdk-tags/src/thousandeyes_sdk/tags/models/{tag_filter_type.py => tag_filter_scope.py} (64%) create mode 100644 thousandeyes-sdk-tests/docs/BaseBgpRequest.md create mode 100644 thousandeyes-sdk-tests/docs/DnsServerRequestProperties.md delete mode 100644 thousandeyes-sdk-tests/docs/DnsServersRequest.md create mode 100644 thousandeyes-sdk-tests/docs/NetworkProviderInfo.md create mode 100644 thousandeyes-sdk-tests/docs/NetworkProviderType.md delete mode 100644 thousandeyes-sdk-tests/docs/OAuthRequestMethod.md rename thousandeyes-sdk-dashboards/docs/ApiAgentWidgetType.md => thousandeyes-sdk-tests/docs/RequestMethod.md (87%) create mode 100644 thousandeyes-sdk-tests/docs/SimpleAgentAllOfNetworkProviderInfo.md create mode 100644 thousandeyes-sdk-tests/docs/TestTag.md create mode 100644 thousandeyes-sdk-tests/docs/TestVaultCredential.md create mode 100644 thousandeyes-sdk-tests/docs/TestVaultCredentialTarget.md rename thousandeyes-sdk-tests/docs/{UpdateSipServerTest.md => UnexpandedDnsServerRequestTest.md} (66%) create mode 100644 thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/base_bgp_request.py create mode 100644 thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/dns_server_request_properties.py create mode 100644 thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/network_provider_info.py rename thousandeyes-sdk-dashboards/src/thousandeyes_sdk/dashboards/models/api_widget_sort_direction.py => thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/network_provider_type.py (51%) rename thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/{o_auth_request_method.py => request_method.py} (83%) create mode 100644 thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/simple_agent_all_of_network_provider_info.py create mode 100644 thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/test_tag.py rename thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/{dns_servers_request.py => test_vault_credential.py} (78%) rename thousandeyes-sdk-dashboards/src/thousandeyes_sdk/dashboards/models/api_agent_widget_type.py => thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/test_vault_credential_target.py (52%) rename thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/{update_sip_server_test.py => unexpanded_dns_server_request_test.py} (62%) diff --git a/thousandeyes-sdk-administrative/.openapi-generator/FILES b/thousandeyes-sdk-administrative/.openapi-generator/FILES index a6a23acc..d763288d 100644 --- a/thousandeyes-sdk-administrative/.openapi-generator/FILES +++ b/thousandeyes-sdk-administrative/.openapi-generator/FILES @@ -28,6 +28,8 @@ docs/ExpandAccountGroupOptions.md docs/ExtendedUser.md docs/InterfaceIpMapping.md docs/Link.md +docs/NetworkProviderInfo.md +docs/NetworkProviderType.md docs/PaginationLinks.md docs/Permission.md docs/Permissions.md @@ -40,6 +42,7 @@ docs/Roles.md docs/RolesApi.md docs/SelfLinks.md docs/SimpleAgent.md +docs/SimpleAgentAllOfNetworkProviderInfo.md docs/SimpleTest.md docs/TestInterval.md docs/TestLinks.md @@ -93,6 +96,8 @@ src/thousandeyes_sdk/administrative/models/expand_account_group_options.py src/thousandeyes_sdk/administrative/models/extended_user.py src/thousandeyes_sdk/administrative/models/interface_ip_mapping.py src/thousandeyes_sdk/administrative/models/link.py +src/thousandeyes_sdk/administrative/models/network_provider_info.py +src/thousandeyes_sdk/administrative/models/network_provider_type.py src/thousandeyes_sdk/administrative/models/pagination_links.py src/thousandeyes_sdk/administrative/models/permission.py src/thousandeyes_sdk/administrative/models/permissions.py @@ -103,6 +108,7 @@ src/thousandeyes_sdk/administrative/models/role_request_body.py src/thousandeyes_sdk/administrative/models/roles.py src/thousandeyes_sdk/administrative/models/self_links.py src/thousandeyes_sdk/administrative/models/simple_agent.py +src/thousandeyes_sdk/administrative/models/simple_agent_all_of_network_provider_info.py src/thousandeyes_sdk/administrative/models/simple_test.py src/thousandeyes_sdk/administrative/models/test_interval.py src/thousandeyes_sdk/administrative/models/test_links.py diff --git a/thousandeyes-sdk-administrative/README.md b/thousandeyes-sdk-administrative/README.md index 58967831..d5ee55a9 100644 --- a/thousandeyes-sdk-administrative/README.md +++ b/thousandeyes-sdk-administrative/README.md @@ -12,7 +12,7 @@ This API provides the following operations to manage your organization: This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project: -- API version: 7.0.84 +- API version: 7.0.92 - Generator version: 7.6.0 - Build package: com.thousandeyes.api.codegen.ThousandeyesPythonGenerator @@ -152,6 +152,8 @@ Class | Method | HTTP request | Description - [ExtendedUser](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-administrative/docs/ExtendedUser.md) - [InterfaceIpMapping](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-administrative/docs/InterfaceIpMapping.md) - [Link](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-administrative/docs/Link.md) + - [NetworkProviderInfo](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-administrative/docs/NetworkProviderInfo.md) + - [NetworkProviderType](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-administrative/docs/NetworkProviderType.md) - [PaginationLinks](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-administrative/docs/PaginationLinks.md) - [Permission](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-administrative/docs/Permission.md) - [Permissions](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-administrative/docs/Permissions.md) @@ -162,6 +164,7 @@ Class | Method | HTTP request | Description - [Roles](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-administrative/docs/Roles.md) - [SelfLinks](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-administrative/docs/SelfLinks.md) - [SimpleAgent](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-administrative/docs/SimpleAgent.md) + - [SimpleAgentAllOfNetworkProviderInfo](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-administrative/docs/SimpleAgentAllOfNetworkProviderInfo.md) - [SimpleTest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-administrative/docs/SimpleTest.md) - [TestInterval](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-administrative/docs/TestInterval.md) - [TestLinks](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-administrative/docs/TestLinks.md) diff --git a/thousandeyes-sdk-administrative/docs/AgentResponse.md b/thousandeyes-sdk-administrative/docs/AgentResponse.md index 6fefe825..7647d1db 100644 --- a/thousandeyes-sdk-administrative/docs/AgentResponse.md +++ b/thousandeyes-sdk-administrative/docs/AgentResponse.md @@ -13,9 +13,10 @@ Name | Type | Description | Notes **location** | **str** | Location of the agent. | [optional] [readonly] **country_id** | **str** | 2-digit ISO country code | [optional] [readonly] **coordinates** | [**Coordinates**](Coordinates.md) | | [optional] +**network_provider_info** | [**SimpleAgentAllOfNetworkProviderInfo**](SimpleAgentAllOfNetworkProviderInfo.md) | | [optional] **enabled** | **bool** | Flag indicating if the agent is enabled. | [optional] -**prefix** | **str** | Prefix containing agents public IP address. | [optional] [readonly] **verify_ssl_certificates** | **bool** | Flag indicating if has normal SSL operations or if instead it's set to ignore SSL errors on browserbot-based tests. | [optional] [readonly] +**prefix** | **str** | Prefix containing agents public IP address. | [optional] [readonly] **agent_type** | [**CloudEnterpriseAgentType**](CloudEnterpriseAgentType.md) | | ## Example diff --git a/thousandeyes-sdk-administrative/docs/ClusterMember.md b/thousandeyes-sdk-administrative/docs/ClusterMember.md index 57c4419b..d6d53ae9 100644 --- a/thousandeyes-sdk-administrative/docs/ClusterMember.md +++ b/thousandeyes-sdk-administrative/docs/ClusterMember.md @@ -14,6 +14,7 @@ Name | Type | Description | Notes **last_seen** | **datetime** | UTC last seen date (ISO date-time format). | [optional] [readonly] **agent_state** | [**EnterpriseAgentState**](EnterpriseAgentState.md) | | [optional] **target_for_tests** | **str** | Test target IP address. | [optional] +**serial_number** | **str** | Serial number of an enterprise agent or cluster member device. This field is not available for Cloud Agents. | [optional] [readonly] **utilization** | **int** | Shows overall utilization percentage (online Enterprise Agents and Enterprise Clusters only). | [optional] [readonly] ## Example diff --git a/thousandeyes-sdk-administrative/docs/EnterpriseAgent.md b/thousandeyes-sdk-administrative/docs/EnterpriseAgent.md index b0b5e6c4..843c9824 100644 --- a/thousandeyes-sdk-administrative/docs/EnterpriseAgent.md +++ b/thousandeyes-sdk-administrative/docs/EnterpriseAgent.md @@ -14,9 +14,10 @@ Name | Type | Description | Notes **location** | **str** | Location of the agent. | [optional] [readonly] **country_id** | **str** | 2-digit ISO country code | [optional] [readonly] **coordinates** | [**Coordinates**](Coordinates.md) | | [optional] +**network_provider_info** | [**SimpleAgentAllOfNetworkProviderInfo**](SimpleAgentAllOfNetworkProviderInfo.md) | | [optional] **enabled** | **bool** | Flag indicating if the agent is enabled. | [optional] -**prefix** | **str** | Prefix containing agents public IP address. | [optional] [readonly] **verify_ssl_certificates** | **bool** | Flag indicating if has normal SSL operations or if instead it's set to ignore SSL errors on browserbot-based tests. | [optional] [readonly] +**prefix** | **str** | Prefix containing agents public IP address. | [optional] [readonly] **test_ids** | **List[int]** | List of test IDs assigned to the agent. | [optional] [readonly] **tests** | [**List[SimpleTest]**](SimpleTest.md) | List of tests. See `/tests` for more information. | [optional] **cluster_members** | [**List[ClusterMember]**](ClusterMember.md) | If an enterprise agent is clustered, detailed information about each cluster member will be shown as array entries in the clusterMembers field. This field is not shown for Enterprise Agents in standalone mode, or for Cloud Agents. | [optional] [readonly] @@ -30,6 +31,7 @@ Name | Type | Description | Notes **keep_browser_cache** | **bool** | Flag indicating if the agent retains cache. | [optional] **created_date** | **datetime** | UTC Agent creation date (ISO date-time format). | [optional] [readonly] **target_for_tests** | **str** | Test target IP address. | [optional] +**serial_number** | **str** | Serial number of an enterprise agent or cluster member device. This field is not available for Cloud Agents. | [optional] [readonly] **local_resolution_prefixes** | **List[str]** | To perform rDNS lookups for public IP ranges, this field represents the public IP ranges. The range must be in CIDR notation; for example, 10.1.1.0/24. Maximum of 5 prefixes allowed (Enterprise Agents and Enterprise Agent clusters only). | [optional] **interface_ip_mapping** | [**List[InterfaceIpMapping]**](InterfaceIpMapping.md) | | [optional] [readonly] diff --git a/thousandeyes-sdk-administrative/docs/EnterpriseAgentData.md b/thousandeyes-sdk-administrative/docs/EnterpriseAgentData.md index ec222584..2f0ddc23 100644 --- a/thousandeyes-sdk-administrative/docs/EnterpriseAgentData.md +++ b/thousandeyes-sdk-administrative/docs/EnterpriseAgentData.md @@ -18,6 +18,7 @@ Name | Type | Description | Notes **keep_browser_cache** | **bool** | Flag indicating if the agent retains cache. | [optional] **created_date** | **datetime** | UTC Agent creation date (ISO date-time format). | [optional] [readonly] **target_for_tests** | **str** | Test target IP address. | [optional] +**serial_number** | **str** | Serial number of an enterprise agent or cluster member device. This field is not available for Cloud Agents. | [optional] [readonly] **local_resolution_prefixes** | **List[str]** | To perform rDNS lookups for public IP ranges, this field represents the public IP ranges. The range must be in CIDR notation; for example, 10.1.1.0/24. Maximum of 5 prefixes allowed (Enterprise Agents and Enterprise Agent clusters only). | [optional] **interface_ip_mapping** | [**List[InterfaceIpMapping]**](InterfaceIpMapping.md) | | [optional] [readonly] diff --git a/thousandeyes-sdk-administrative/docs/NetworkProviderInfo.md b/thousandeyes-sdk-administrative/docs/NetworkProviderInfo.md new file mode 100644 index 00000000..f36073b6 --- /dev/null +++ b/thousandeyes-sdk-administrative/docs/NetworkProviderInfo.md @@ -0,0 +1,32 @@ +# NetworkProviderInfo + +Information about the network provider that owns the agent's public IP prefix. + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**asn** | **int** | Autonomous System Number (ASN) announcing the agent's public IP prefix. | [optional] [readonly] +**name** | **str** | Name of the network provider organization. | [optional] [readonly] +**type** | [**NetworkProviderType**](NetworkProviderType.md) | | [optional] + +## Example + +```python +from thousandeyes_sdk.administrative.models.network_provider_info import NetworkProviderInfo + +# TODO update the JSON string below +json = "{}" +# create an instance of NetworkProviderInfo from a JSON string +network_provider_info_instance = NetworkProviderInfo.from_json(json) +# print the JSON string representation of the object +print(NetworkProviderInfo.to_json()) + +# convert the object into a dict +network_provider_info_dict = network_provider_info_instance.to_dict() +# create an instance of NetworkProviderInfo from a dict +network_provider_info_from_dict = NetworkProviderInfo.from_dict(network_provider_info_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/thousandeyes-sdk-dashboards/docs/ApiAgentWidgetShow.md b/thousandeyes-sdk-administrative/docs/NetworkProviderType.md similarity index 79% rename from thousandeyes-sdk-dashboards/docs/ApiAgentWidgetShow.md rename to thousandeyes-sdk-administrative/docs/NetworkProviderType.md index ad666be6..efc6dd07 100644 --- a/thousandeyes-sdk-dashboards/docs/ApiAgentWidgetShow.md +++ b/thousandeyes-sdk-administrative/docs/NetworkProviderType.md @@ -1,6 +1,6 @@ -# ApiAgentWidgetShow +# NetworkProviderType -Ownership of the agent. +Classification of the agent's network provider. ## Properties diff --git a/thousandeyes-sdk-administrative/docs/SimpleAgent.md b/thousandeyes-sdk-administrative/docs/SimpleAgent.md index e10fd61f..37af14bc 100644 --- a/thousandeyes-sdk-administrative/docs/SimpleAgent.md +++ b/thousandeyes-sdk-administrative/docs/SimpleAgent.md @@ -13,9 +13,10 @@ Name | Type | Description | Notes **location** | **str** | Location of the agent. | [optional] [readonly] **country_id** | **str** | 2-digit ISO country code | [optional] [readonly] **coordinates** | [**Coordinates**](Coordinates.md) | | [optional] +**network_provider_info** | [**SimpleAgentAllOfNetworkProviderInfo**](SimpleAgentAllOfNetworkProviderInfo.md) | | [optional] **enabled** | **bool** | Flag indicating if the agent is enabled. | [optional] -**prefix** | **str** | Prefix containing agents public IP address. | [optional] [readonly] **verify_ssl_certificates** | **bool** | Flag indicating if has normal SSL operations or if instead it's set to ignore SSL errors on browserbot-based tests. | [optional] [readonly] +**prefix** | **str** | Prefix containing agents public IP address. | [optional] [readonly] ## Example diff --git a/thousandeyes-sdk-administrative/docs/SimpleAgentAllOfNetworkProviderInfo.md b/thousandeyes-sdk-administrative/docs/SimpleAgentAllOfNetworkProviderInfo.md new file mode 100644 index 00000000..17d2aa7d --- /dev/null +++ b/thousandeyes-sdk-administrative/docs/SimpleAgentAllOfNetworkProviderInfo.md @@ -0,0 +1,31 @@ +# SimpleAgentAllOfNetworkProviderInfo + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**asn** | **int** | Autonomous System Number (ASN) announcing the agent's public IP prefix. | [optional] [readonly] +**name** | **str** | Name of the network provider organization. | [optional] [readonly] +**type** | [**NetworkProviderType**](NetworkProviderType.md) | | [optional] + +## Example + +```python +from thousandeyes_sdk.administrative.models.simple_agent_all_of_network_provider_info import SimpleAgentAllOfNetworkProviderInfo + +# TODO update the JSON string below +json = "{}" +# create an instance of SimpleAgentAllOfNetworkProviderInfo from a JSON string +simple_agent_all_of_network_provider_info_instance = SimpleAgentAllOfNetworkProviderInfo.from_json(json) +# print the JSON string representation of the object +print(SimpleAgentAllOfNetworkProviderInfo.to_json()) + +# convert the object into a dict +simple_agent_all_of_network_provider_info_dict = simple_agent_all_of_network_provider_info_instance.to_dict() +# create an instance of SimpleAgentAllOfNetworkProviderInfo from a dict +simple_agent_all_of_network_provider_info_from_dict = SimpleAgentAllOfNetworkProviderInfo.from_dict(simple_agent_all_of_network_provider_info_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/thousandeyes-sdk-administrative/src/thousandeyes_sdk/administrative/__init__.py b/thousandeyes-sdk-administrative/src/thousandeyes_sdk/administrative/__init__.py index 6331ed24..763898c0 100644 --- a/thousandeyes-sdk-administrative/src/thousandeyes_sdk/administrative/__init__.py +++ b/thousandeyes-sdk-administrative/src/thousandeyes_sdk/administrative/__init__.py @@ -48,6 +48,8 @@ from thousandeyes_sdk.administrative.models.expand_account_group_options import from thousandeyes_sdk.administrative.models.extended_user import ExtendedUser from thousandeyes_sdk.administrative.models.interface_ip_mapping import InterfaceIpMapping from thousandeyes_sdk.administrative.models.link import Link +from thousandeyes_sdk.administrative.models.network_provider_info import NetworkProviderInfo +from thousandeyes_sdk.administrative.models.network_provider_type import NetworkProviderType from thousandeyes_sdk.administrative.models.pagination_links import PaginationLinks from thousandeyes_sdk.administrative.models.permission import Permission from thousandeyes_sdk.administrative.models.permissions import Permissions @@ -58,6 +60,7 @@ from thousandeyes_sdk.administrative.models.role_request_body import RoleRequest from thousandeyes_sdk.administrative.models.roles import Roles from thousandeyes_sdk.administrative.models.self_links import SelfLinks from thousandeyes_sdk.administrative.models.simple_agent import SimpleAgent +from thousandeyes_sdk.administrative.models.simple_agent_all_of_network_provider_info import SimpleAgentAllOfNetworkProviderInfo from thousandeyes_sdk.administrative.models.simple_test import SimpleTest from thousandeyes_sdk.administrative.models.test_interval import TestInterval from thousandeyes_sdk.administrative.models.test_links import TestLinks diff --git a/thousandeyes-sdk-administrative/src/thousandeyes_sdk/administrative/models/__init__.py b/thousandeyes-sdk-administrative/src/thousandeyes_sdk/administrative/models/__init__.py index fb3b7fb8..9fcef856 100644 --- a/thousandeyes-sdk-administrative/src/thousandeyes_sdk/administrative/models/__init__.py +++ b/thousandeyes-sdk-administrative/src/thousandeyes_sdk/administrative/models/__init__.py @@ -39,6 +39,8 @@ from thousandeyes_sdk.administrative.models.expand_account_group_options import from thousandeyes_sdk.administrative.models.extended_user import ExtendedUser from thousandeyes_sdk.administrative.models.interface_ip_mapping import InterfaceIpMapping from thousandeyes_sdk.administrative.models.link import Link +from thousandeyes_sdk.administrative.models.network_provider_info import NetworkProviderInfo +from thousandeyes_sdk.administrative.models.network_provider_type import NetworkProviderType from thousandeyes_sdk.administrative.models.pagination_links import PaginationLinks from thousandeyes_sdk.administrative.models.permission import Permission from thousandeyes_sdk.administrative.models.permissions import Permissions @@ -49,6 +51,7 @@ from thousandeyes_sdk.administrative.models.role_request_body import RoleRequest from thousandeyes_sdk.administrative.models.roles import Roles from thousandeyes_sdk.administrative.models.self_links import SelfLinks from thousandeyes_sdk.administrative.models.simple_agent import SimpleAgent +from thousandeyes_sdk.administrative.models.simple_agent_all_of_network_provider_info import SimpleAgentAllOfNetworkProviderInfo from thousandeyes_sdk.administrative.models.simple_test import SimpleTest from thousandeyes_sdk.administrative.models.test_interval import TestInterval from thousandeyes_sdk.administrative.models.test_links import TestLinks diff --git a/thousandeyes-sdk-administrative/src/thousandeyes_sdk/administrative/models/agent_response.py b/thousandeyes-sdk-administrative/src/thousandeyes_sdk/administrative/models/agent_response.py index 57f8b7b7..b4a97924 100644 --- a/thousandeyes-sdk-administrative/src/thousandeyes_sdk/administrative/models/agent_response.py +++ b/thousandeyes-sdk-administrative/src/thousandeyes_sdk/administrative/models/agent_response.py @@ -20,6 +20,7 @@ from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr from typing import Any, ClassVar, Dict, List, Optional from thousandeyes_sdk.administrative.models.cloud_enterprise_agent_type import CloudEnterpriseAgentType from thousandeyes_sdk.administrative.models.coordinates import Coordinates +from thousandeyes_sdk.administrative.models.simple_agent_all_of_network_provider_info import SimpleAgentAllOfNetworkProviderInfo from typing import Optional, Set from typing_extensions import Self @@ -35,11 +36,12 @@ class AgentResponse(BaseModel): location: Optional[StrictStr] = Field(default=None, description="Location of the agent.") country_id: Optional[StrictStr] = Field(default=None, description="2-digit ISO country code", alias="countryId") coordinates: Optional[Coordinates] = None + network_provider_info: Optional[SimpleAgentAllOfNetworkProviderInfo] = Field(default=None, alias="networkProviderInfo") enabled: Optional[StrictBool] = Field(default=None, description="Flag indicating if the agent is enabled.") - prefix: Optional[StrictStr] = Field(default=None, description="Prefix containing agents public IP address.") verify_ssl_certificates: Optional[StrictBool] = Field(default=None, description="Flag indicating if has normal SSL operations or if instead it's set to ignore SSL errors on browserbot-based tests.", alias="verifySslCertificates") + prefix: Optional[StrictStr] = Field(default=None, description="Prefix containing agents public IP address.") agent_type: CloudEnterpriseAgentType = Field(alias="agentType") - __properties: ClassVar[List[str]] = ["ipAddresses", "publicIpAddresses", "network", "agentId", "agentName", "location", "countryId", "coordinates", "enabled", "prefix", "verifySslCertificates", "agentType"] + __properties: ClassVar[List[str]] = ["ipAddresses", "publicIpAddresses", "network", "agentId", "agentName", "location", "countryId", "coordinates", "networkProviderInfo", "enabled", "verifySslCertificates", "prefix", "agentType"] model_config = ConfigDict( populate_by_name=True, @@ -88,8 +90,8 @@ class AgentResponse(BaseModel): "agent_id", "location", "country_id", - "prefix", "verify_ssl_certificates", + "prefix", ]) _dict = self.model_dump( @@ -100,6 +102,9 @@ class AgentResponse(BaseModel): # override the default output from pydantic by calling `to_dict()` of coordinates if self.coordinates: _dict['coordinates'] = self.coordinates.to_dict() + # override the default output from pydantic by calling `to_dict()` of network_provider_info + if self.network_provider_info: + _dict['networkProviderInfo'] = self.network_provider_info.to_dict() return _dict @classmethod @@ -120,9 +125,10 @@ class AgentResponse(BaseModel): "location": obj.get("location"), "countryId": obj.get("countryId"), "coordinates": Coordinates.from_dict(obj["coordinates"]) if obj.get("coordinates") is not None else None, + "networkProviderInfo": SimpleAgentAllOfNetworkProviderInfo.from_dict(obj["networkProviderInfo"]) if obj.get("networkProviderInfo") is not None else None, "enabled": obj.get("enabled"), - "prefix": obj.get("prefix"), "verifySslCertificates": obj.get("verifySslCertificates"), + "prefix": obj.get("prefix"), "agentType": obj.get("agentType") }) return _obj diff --git a/thousandeyes-sdk-administrative/src/thousandeyes_sdk/administrative/models/cluster_member.py b/thousandeyes-sdk-administrative/src/thousandeyes_sdk/administrative/models/cluster_member.py index e4f4ae40..d87e2f1e 100644 --- a/thousandeyes-sdk-administrative/src/thousandeyes_sdk/administrative/models/cluster_member.py +++ b/thousandeyes-sdk-administrative/src/thousandeyes_sdk/administrative/models/cluster_member.py @@ -37,8 +37,9 @@ class ClusterMember(BaseModel): last_seen: Optional[datetime] = Field(default=None, description="UTC last seen date (ISO date-time format).", alias="lastSeen") agent_state: Optional[EnterpriseAgentState] = Field(default=None, alias="agentState") target_for_tests: Optional[StrictStr] = Field(default=None, description="Test target IP address.", alias="targetForTests") + serial_number: Optional[StrictStr] = Field(default=None, description="Serial number of an enterprise agent or cluster member device. This field is not available for Cloud Agents.", alias="serialNumber") utilization: Optional[StrictInt] = Field(default=None, description="Shows overall utilization percentage (online Enterprise Agents and Enterprise Clusters only).") - __properties: ClassVar[List[str]] = ["ipAddresses", "publicIpAddresses", "network", "memberId", "name", "errorDetails", "lastSeen", "agentState", "targetForTests", "utilization"] + __properties: ClassVar[List[str]] = ["ipAddresses", "publicIpAddresses", "network", "memberId", "name", "errorDetails", "lastSeen", "agentState", "targetForTests", "serialNumber", "utilization"] model_config = ConfigDict( populate_by_name=True, @@ -79,6 +80,7 @@ class ClusterMember(BaseModel): * 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([ "ip_addresses", @@ -88,6 +90,7 @@ class ClusterMember(BaseModel): "name", "error_details", "last_seen", + "serial_number", "utilization", ]) @@ -124,6 +127,7 @@ class ClusterMember(BaseModel): "lastSeen": obj.get("lastSeen"), "agentState": obj.get("agentState"), "targetForTests": obj.get("targetForTests"), + "serialNumber": obj.get("serialNumber"), "utilization": obj.get("utilization") }) return _obj diff --git a/thousandeyes-sdk-administrative/src/thousandeyes_sdk/administrative/models/enterprise_agent.py b/thousandeyes-sdk-administrative/src/thousandeyes_sdk/administrative/models/enterprise_agent.py index f41c1b6f..39274146 100644 --- a/thousandeyes-sdk-administrative/src/thousandeyes_sdk/administrative/models/enterprise_agent.py +++ b/thousandeyes-sdk-administrative/src/thousandeyes_sdk/administrative/models/enterprise_agent.py @@ -27,6 +27,7 @@ from thousandeyes_sdk.administrative.models.enterprise_agent_ipv6_policy import from thousandeyes_sdk.administrative.models.enterprise_agent_state import EnterpriseAgentState from thousandeyes_sdk.administrative.models.error_detail import ErrorDetail from thousandeyes_sdk.administrative.models.interface_ip_mapping import InterfaceIpMapping +from thousandeyes_sdk.administrative.models.simple_agent_all_of_network_provider_info import SimpleAgentAllOfNetworkProviderInfo from thousandeyes_sdk.administrative.models.simple_test import SimpleTest from typing import Optional, Set from typing_extensions import Self @@ -44,9 +45,10 @@ class EnterpriseAgent(BaseModel): location: Optional[StrictStr] = Field(default=None, description="Location of the agent.") country_id: Optional[StrictStr] = Field(default=None, description="2-digit ISO country code", alias="countryId") coordinates: Optional[Coordinates] = None + network_provider_info: Optional[SimpleAgentAllOfNetworkProviderInfo] = Field(default=None, alias="networkProviderInfo") enabled: Optional[StrictBool] = Field(default=None, description="Flag indicating if the agent is enabled.") - prefix: Optional[StrictStr] = Field(default=None, description="Prefix containing agents public IP address.") verify_ssl_certificates: Optional[StrictBool] = Field(default=None, description="Flag indicating if has normal SSL operations or if instead it's set to ignore SSL errors on browserbot-based tests.", alias="verifySslCertificates") + prefix: Optional[StrictStr] = Field(default=None, description="Prefix containing agents public IP address.") test_ids: Optional[List[StrictInt]] = Field(default=None, description="List of test IDs assigned to the agent.", alias="testIds") tests: Optional[List[SimpleTest]] = Field(default=None, description="List of tests. See `/tests` for more information.") cluster_members: Optional[List[ClusterMember]] = Field(default=None, description="If an enterprise agent is clustered, detailed information about each cluster member will be shown as array entries in the clusterMembers field. This field is not shown for Enterprise Agents in standalone mode, or for Cloud Agents.", alias="clusterMembers") @@ -60,9 +62,10 @@ class EnterpriseAgent(BaseModel): keep_browser_cache: Optional[StrictBool] = Field(default=None, description="Flag indicating if the agent retains cache.", alias="keepBrowserCache") created_date: Optional[datetime] = Field(default=None, description="UTC Agent creation date (ISO date-time format).", alias="createdDate") target_for_tests: Optional[StrictStr] = Field(default=None, description="Test target IP address.", alias="targetForTests") + serial_number: Optional[StrictStr] = Field(default=None, description="Serial number of an enterprise agent or cluster member device. This field is not available for Cloud Agents.", alias="serialNumber") local_resolution_prefixes: Optional[List[StrictStr]] = Field(default=None, description="To perform rDNS lookups for public IP ranges, this field represents the public IP ranges. The range must be in CIDR notation; for example, 10.1.1.0/24. Maximum of 5 prefixes allowed (Enterprise Agents and Enterprise Agent clusters only).", alias="localResolutionPrefixes") interface_ip_mapping: Optional[List[InterfaceIpMapping]] = Field(default=None, alias="interfaceIpMapping") - __properties: ClassVar[List[str]] = ["agentType", "ipAddresses", "publicIpAddresses", "network", "agentId", "agentName", "location", "countryId", "coordinates", "enabled", "prefix", "verifySslCertificates", "testIds", "tests", "clusterMembers", "utilization", "accountGroups", "ipv6Policy", "errorDetails", "hostname", "lastSeen", "agentState", "keepBrowserCache", "createdDate", "targetForTests", "localResolutionPrefixes", "interfaceIpMapping"] + __properties: ClassVar[List[str]] = ["agentType", "ipAddresses", "publicIpAddresses", "network", "agentId", "agentName", "location", "countryId", "coordinates", "networkProviderInfo", "enabled", "verifySslCertificates", "prefix", "testIds", "tests", "clusterMembers", "utilization", "accountGroups", "ipv6Policy", "errorDetails", "hostname", "lastSeen", "agentState", "keepBrowserCache", "createdDate", "targetForTests", "serialNumber", "localResolutionPrefixes", "interfaceIpMapping"] model_config = ConfigDict( populate_by_name=True, @@ -111,6 +114,7 @@ class EnterpriseAgent(BaseModel): * 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([ "ip_addresses", @@ -119,8 +123,8 @@ class EnterpriseAgent(BaseModel): "agent_id", "location", "country_id", - "prefix", "verify_ssl_certificates", + "prefix", "test_ids", "cluster_members", "utilization", @@ -128,6 +132,7 @@ class EnterpriseAgent(BaseModel): "hostname", "last_seen", "created_date", + "serial_number", "interface_ip_mapping", ]) @@ -139,6 +144,9 @@ class EnterpriseAgent(BaseModel): # override the default output from pydantic by calling `to_dict()` of coordinates if self.coordinates: _dict['coordinates'] = self.coordinates.to_dict() + # override the default output from pydantic by calling `to_dict()` of network_provider_info + if self.network_provider_info: + _dict['networkProviderInfo'] = self.network_provider_info.to_dict() # override the default output from pydantic by calling `to_dict()` of each item in tests (list) _items = [] if self.tests: @@ -195,9 +203,10 @@ class EnterpriseAgent(BaseModel): "location": obj.get("location"), "countryId": obj.get("countryId"), "coordinates": Coordinates.from_dict(obj["coordinates"]) if obj.get("coordinates") is not None else None, + "networkProviderInfo": SimpleAgentAllOfNetworkProviderInfo.from_dict(obj["networkProviderInfo"]) if obj.get("networkProviderInfo") is not None else None, "enabled": obj.get("enabled"), - "prefix": obj.get("prefix"), "verifySslCertificates": obj.get("verifySslCertificates"), + "prefix": obj.get("prefix"), "testIds": obj.get("testIds"), "tests": [SimpleTest.from_dict(_item) for _item in obj["tests"]] if obj.get("tests") is not None else None, "clusterMembers": [ClusterMember.from_dict(_item) for _item in obj["clusterMembers"]] if obj.get("clusterMembers") is not None else None, @@ -211,6 +220,7 @@ class EnterpriseAgent(BaseModel): "keepBrowserCache": obj.get("keepBrowserCache"), "createdDate": obj.get("createdDate"), "targetForTests": obj.get("targetForTests"), + "serialNumber": obj.get("serialNumber"), "localResolutionPrefixes": obj.get("localResolutionPrefixes"), "interfaceIpMapping": [InterfaceIpMapping.from_dict(_item) for _item in obj["interfaceIpMapping"]] if obj.get("interfaceIpMapping") is not None else None }) diff --git a/thousandeyes-sdk-administrative/src/thousandeyes_sdk/administrative/models/enterprise_agent_data.py b/thousandeyes-sdk-administrative/src/thousandeyes_sdk/administrative/models/enterprise_agent_data.py index 61174e91..01c08bcb 100644 --- a/thousandeyes-sdk-administrative/src/thousandeyes_sdk/administrative/models/enterprise_agent_data.py +++ b/thousandeyes-sdk-administrative/src/thousandeyes_sdk/administrative/models/enterprise_agent_data.py @@ -46,9 +46,10 @@ class EnterpriseAgentData(BaseModel): keep_browser_cache: Optional[StrictBool] = Field(default=None, description="Flag indicating if the agent retains cache.", alias="keepBrowserCache") created_date: Optional[datetime] = Field(default=None, description="UTC Agent creation date (ISO date-time format).", alias="createdDate") target_for_tests: Optional[StrictStr] = Field(default=None, description="Test target IP address.", alias="targetForTests") + serial_number: Optional[StrictStr] = Field(default=None, description="Serial number of an enterprise agent or cluster member device. This field is not available for Cloud Agents.", alias="serialNumber") local_resolution_prefixes: Optional[List[StrictStr]] = Field(default=None, description="To perform rDNS lookups for public IP ranges, this field represents the public IP ranges. The range must be in CIDR notation; for example, 10.1.1.0/24. Maximum of 5 prefixes allowed (Enterprise Agents and Enterprise Agent clusters only).", alias="localResolutionPrefixes") interface_ip_mapping: Optional[List[InterfaceIpMapping]] = Field(default=None, alias="interfaceIpMapping") - __properties: ClassVar[List[str]] = ["testIds", "tests", "clusterMembers", "utilization", "accountGroups", "ipv6Policy", "errorDetails", "hostname", "lastSeen", "agentState", "keepBrowserCache", "createdDate", "targetForTests", "localResolutionPrefixes", "interfaceIpMapping"] + __properties: ClassVar[List[str]] = ["testIds", "tests", "clusterMembers", "utilization", "accountGroups", "ipv6Policy", "errorDetails", "hostname", "lastSeen", "agentState", "keepBrowserCache", "createdDate", "targetForTests", "serialNumber", "localResolutionPrefixes", "interfaceIpMapping"] model_config = ConfigDict( populate_by_name=True, @@ -89,6 +90,7 @@ class EnterpriseAgentData(BaseModel): * 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([ "test_ids", @@ -98,6 +100,7 @@ class EnterpriseAgentData(BaseModel): "hostname", "last_seen", "created_date", + "serial_number", "interface_ip_mapping", ]) @@ -166,6 +169,7 @@ class EnterpriseAgentData(BaseModel): "keepBrowserCache": obj.get("keepBrowserCache"), "createdDate": obj.get("createdDate"), "targetForTests": obj.get("targetForTests"), + "serialNumber": obj.get("serialNumber"), "localResolutionPrefixes": obj.get("localResolutionPrefixes"), "interfaceIpMapping": [InterfaceIpMapping.from_dict(_item) for _item in obj["interfaceIpMapping"]] if obj.get("interfaceIpMapping") is not None else None }) diff --git a/thousandeyes-sdk-administrative/src/thousandeyes_sdk/administrative/models/network_provider_info.py b/thousandeyes-sdk-administrative/src/thousandeyes_sdk/administrative/models/network_provider_info.py new file mode 100644 index 00000000..4a49e7c5 --- /dev/null +++ b/thousandeyes-sdk-administrative/src/thousandeyes_sdk/administrative/models/network_provider_info.py @@ -0,0 +1,96 @@ +# coding: utf-8 + +""" + Administrative API + + Manage users, accounts, and account groups in the ThousandEyes platform using the Administrative API. This API provides the following operations to manage your organization: * `/account-groups`: Account groups are used to divide an organization into different sections. These operations can be used to create, retrieve, update and delete account groups. * `/users`: Create, retrieve, update and delete users within an organization. * `/roles`: Create, retrieve and update roles for the current user. * `/permissions`: Retrieve all assignable permissions. Used in the context of modifying roles. * `/audit-user-events`: Retrieve all activity log events. For more information about the administrative models, see [Account Management](https://docs.thousandeyes.com/product-documentation/user-management). + + 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 thousandeyes_sdk.administrative.models.network_provider_type import NetworkProviderType +from typing import Optional, Set +from typing_extensions import Self + +class NetworkProviderInfo(BaseModel): + """ + Information about the network provider that owns the agent's public IP prefix. + """ # noqa: E501 + asn: Optional[StrictInt] = Field(default=None, description="Autonomous System Number (ASN) announcing the agent's public IP prefix.") + name: Optional[StrictStr] = Field(default=None, description="Name of the network provider organization.") + type: Optional[NetworkProviderType] = None + __properties: ClassVar[List[str]] = ["asn", "name", "type"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + extra="allow", + ) + + + 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 self.model_dump_json(by_alias=True, exclude_unset=True, exclude_none=True) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of NetworkProviderInfo 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. + * OpenAPI `readOnly` fields are excluded. + * OpenAPI `readOnly` fields are excluded. + """ + excluded_fields: Set[str] = set([ + "asn", + "name", + ]) + + _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 NetworkProviderInfo from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "asn": obj.get("asn"), + "name": obj.get("name"), + "type": obj.get("type") + }) + return _obj + + diff --git a/thousandeyes-sdk-administrative/src/thousandeyes_sdk/administrative/models/network_provider_type.py b/thousandeyes-sdk-administrative/src/thousandeyes_sdk/administrative/models/network_provider_type.py new file mode 100644 index 00000000..03bccf7e --- /dev/null +++ b/thousandeyes-sdk-administrative/src/thousandeyes_sdk/administrative/models/network_provider_type.py @@ -0,0 +1,44 @@ +# coding: utf-8 + +""" + Administrative API + + Manage users, accounts, and account groups in the ThousandEyes platform using the Administrative API. This API provides the following operations to manage your organization: * `/account-groups`: Account groups are used to divide an organization into different sections. These operations can be used to create, retrieve, update and delete account groups. * `/users`: Create, retrieve, update and delete users within an organization. * `/roles`: Create, retrieve and update roles for the current user. * `/permissions`: Retrieve all assignable permissions. Used in the context of modifying roles. * `/audit-user-events`: Retrieve all activity log events. For more information about the administrative models, see [Account Management](https://docs.thousandeyes.com/product-documentation/user-management). + + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import json +from enum import Enum +from typing_extensions import Self + + +class NetworkProviderType(str, Enum): + """ + Classification of the agent's network provider. + """ + + """ + allowed enum values + """ + UNKNOWN = 'unknown' + ISP = 'isp' + CDN = 'cdn' + STUB = 'stub' + CLOUD_MINUS_PROVIDER = 'cloud-provider' + CARRIER = 'carrier' + + @classmethod + def from_json(cls, json_str: str) -> Self: + """Create an instance of NetworkProviderType from a JSON string""" + return cls(json.loads(json_str)) + + @classmethod + def _missing_(cls, value): + """Handle unknown values""" + return cls.UNKNOWN + diff --git a/thousandeyes-sdk-administrative/src/thousandeyes_sdk/administrative/models/simple_agent.py b/thousandeyes-sdk-administrative/src/thousandeyes_sdk/administrative/models/simple_agent.py index 7177d35f..962c7e89 100644 --- a/thousandeyes-sdk-administrative/src/thousandeyes_sdk/administrative/models/simple_agent.py +++ b/thousandeyes-sdk-administrative/src/thousandeyes_sdk/administrative/models/simple_agent.py @@ -19,6 +19,7 @@ import json from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr from typing import Any, ClassVar, Dict, List, Optional from thousandeyes_sdk.administrative.models.coordinates import Coordinates +from thousandeyes_sdk.administrative.models.simple_agent_all_of_network_provider_info import SimpleAgentAllOfNetworkProviderInfo from typing import Optional, Set from typing_extensions import Self @@ -34,10 +35,11 @@ class SimpleAgent(BaseModel): location: Optional[StrictStr] = Field(default=None, description="Location of the agent.") country_id: Optional[StrictStr] = Field(default=None, description="2-digit ISO country code", alias="countryId") coordinates: Optional[Coordinates] = None + network_provider_info: Optional[SimpleAgentAllOfNetworkProviderInfo] = Field(default=None, alias="networkProviderInfo") enabled: Optional[StrictBool] = Field(default=None, description="Flag indicating if the agent is enabled.") - prefix: Optional[StrictStr] = Field(default=None, description="Prefix containing agents public IP address.") verify_ssl_certificates: Optional[StrictBool] = Field(default=None, description="Flag indicating if has normal SSL operations or if instead it's set to ignore SSL errors on browserbot-based tests.", alias="verifySslCertificates") - __properties: ClassVar[List[str]] = ["ipAddresses", "publicIpAddresses", "network", "agentId", "agentName", "location", "countryId", "coordinates", "enabled", "prefix", "verifySslCertificates"] + prefix: Optional[StrictStr] = Field(default=None, description="Prefix containing agents public IP address.") + __properties: ClassVar[List[str]] = ["ipAddresses", "publicIpAddresses", "network", "agentId", "agentName", "location", "countryId", "coordinates", "networkProviderInfo", "enabled", "verifySslCertificates", "prefix"] model_config = ConfigDict( populate_by_name=True, @@ -86,8 +88,8 @@ class SimpleAgent(BaseModel): "agent_id", "location", "country_id", - "prefix", "verify_ssl_certificates", + "prefix", ]) _dict = self.model_dump( @@ -98,6 +100,9 @@ class SimpleAgent(BaseModel): # override the default output from pydantic by calling `to_dict()` of coordinates if self.coordinates: _dict['coordinates'] = self.coordinates.to_dict() + # override the default output from pydantic by calling `to_dict()` of network_provider_info + if self.network_provider_info: + _dict['networkProviderInfo'] = self.network_provider_info.to_dict() return _dict @classmethod @@ -118,9 +123,10 @@ class SimpleAgent(BaseModel): "location": obj.get("location"), "countryId": obj.get("countryId"), "coordinates": Coordinates.from_dict(obj["coordinates"]) if obj.get("coordinates") is not None else None, + "networkProviderInfo": SimpleAgentAllOfNetworkProviderInfo.from_dict(obj["networkProviderInfo"]) if obj.get("networkProviderInfo") is not None else None, "enabled": obj.get("enabled"), - "prefix": obj.get("prefix"), - "verifySslCertificates": obj.get("verifySslCertificates") + "verifySslCertificates": obj.get("verifySslCertificates"), + "prefix": obj.get("prefix") }) return _obj diff --git a/thousandeyes-sdk-administrative/src/thousandeyes_sdk/administrative/models/simple_agent_all_of_network_provider_info.py b/thousandeyes-sdk-administrative/src/thousandeyes_sdk/administrative/models/simple_agent_all_of_network_provider_info.py new file mode 100644 index 00000000..210f4574 --- /dev/null +++ b/thousandeyes-sdk-administrative/src/thousandeyes_sdk/administrative/models/simple_agent_all_of_network_provider_info.py @@ -0,0 +1,96 @@ +# coding: utf-8 + +""" + Administrative API + + Manage users, accounts, and account groups in the ThousandEyes platform using the Administrative API. This API provides the following operations to manage your organization: * `/account-groups`: Account groups are used to divide an organization into different sections. These operations can be used to create, retrieve, update and delete account groups. * `/users`: Create, retrieve, update and delete users within an organization. * `/roles`: Create, retrieve and update roles for the current user. * `/permissions`: Retrieve all assignable permissions. Used in the context of modifying roles. * `/audit-user-events`: Retrieve all activity log events. For more information about the administrative models, see [Account Management](https://docs.thousandeyes.com/product-documentation/user-management). + + 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 thousandeyes_sdk.administrative.models.network_provider_type import NetworkProviderType +from typing import Optional, Set +from typing_extensions import Self + +class SimpleAgentAllOfNetworkProviderInfo(BaseModel): + """ + SimpleAgentAllOfNetworkProviderInfo + """ # noqa: E501 + asn: Optional[StrictInt] = Field(default=None, description="Autonomous System Number (ASN) announcing the agent's public IP prefix.") + name: Optional[StrictStr] = Field(default=None, description="Name of the network provider organization.") + type: Optional[NetworkProviderType] = None + __properties: ClassVar[List[str]] = ["asn", "name", "type"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + extra="allow", + ) + + + 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 self.model_dump_json(by_alias=True, exclude_unset=True, exclude_none=True) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of SimpleAgentAllOfNetworkProviderInfo 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. + * OpenAPI `readOnly` fields are excluded. + * OpenAPI `readOnly` fields are excluded. + """ + excluded_fields: Set[str] = set([ + "asn", + "name", + ]) + + _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 SimpleAgentAllOfNetworkProviderInfo from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "asn": obj.get("asn"), + "name": obj.get("name"), + "type": obj.get("type") + }) + return _obj + + diff --git a/thousandeyes-sdk-administrative/test/test_account_groups_api.py b/thousandeyes-sdk-administrative/test/test_account_groups_api.py index 057314d6..b5412d9a 100644 --- a/thousandeyes-sdk-administrative/test/test_account_groups_api.py +++ b/thousandeyes-sdk-administrative/test/test_account_groups_api.py @@ -127,7 +127,7 @@ class TestAccountGroupsApi(unittest.TestCase): }, "accountGroupName" : "Account A", "isDefaultAccountGroup" : true, - "accountToken" : "6j052y4vfgyuhefghue", + "accountToken" : "accountToken", "aid" : "1234", "orgId" : "12345", "users" : [ { @@ -170,6 +170,11 @@ class TestAccountGroupsApi(unittest.TestCase): "agentType" : "enterprise-cluster", "ipv6Policy" : "force-ipv4", "prefix" : "99.128.0.0/11", + "networkProviderInfo" : { + "asn" : 7018, + "name" : "AT&T Services, Inc.", + "type" : "isp" + }, "countryId" : "US", "enabled" : true, "network" : "AT&T Services, Inc. (AS 7018)", @@ -177,6 +182,7 @@ class TestAccountGroupsApi(unittest.TestCase): "keepBrowserCache" : true, "agentState" : "online", "localResolutionPrefixes" : [ "10.2.3.3/24", "10.2.3.3/24" ], + "serialNumber" : "FOC2218ABCD", "coordinates" : { "latitude" : 37.77493, "longitude" : -122.41942 @@ -186,6 +192,7 @@ class TestAccountGroupsApi(unittest.TestCase): "testIds" : [ 281474976710706 ], "clusterMembers" : [ { "lastSeen" : "2022-07-17T22:00:54Z", + "serialNumber" : "FOC2218ABCD", "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], "agentState" : "online", "targetForTests" : "1.1.1.1", @@ -203,6 +210,7 @@ class TestAccountGroupsApi(unittest.TestCase): } ] }, { "lastSeen" : "2022-07-17T22:00:54Z", + "serialNumber" : "FOC2218ABCD", "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], "agentState" : "online", "targetForTests" : "1.1.1.1", @@ -315,6 +323,11 @@ class TestAccountGroupsApi(unittest.TestCase): "agentType" : "enterprise-cluster", "ipv6Policy" : "force-ipv4", "prefix" : "99.128.0.0/11", + "networkProviderInfo" : { + "asn" : 7018, + "name" : "AT&T Services, Inc.", + "type" : "isp" + }, "countryId" : "US", "enabled" : true, "network" : "AT&T Services, Inc. (AS 7018)", @@ -322,6 +335,7 @@ class TestAccountGroupsApi(unittest.TestCase): "keepBrowserCache" : true, "agentState" : "online", "localResolutionPrefixes" : [ "10.2.3.3/24", "10.2.3.3/24" ], + "serialNumber" : "FOC2218ABCD", "coordinates" : { "latitude" : 37.77493, "longitude" : -122.41942 @@ -331,6 +345,7 @@ class TestAccountGroupsApi(unittest.TestCase): "testIds" : [ 281474976710706 ], "clusterMembers" : [ { "lastSeen" : "2022-07-17T22:00:54Z", + "serialNumber" : "FOC2218ABCD", "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], "agentState" : "online", "targetForTests" : "1.1.1.1", @@ -348,6 +363,7 @@ class TestAccountGroupsApi(unittest.TestCase): } ] }, { "lastSeen" : "2022-07-17T22:00:54Z", + "serialNumber" : "FOC2218ABCD", "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], "agentState" : "online", "targetForTests" : "1.1.1.1", @@ -531,7 +547,7 @@ class TestAccountGroupsApi(unittest.TestCase): }, "accountGroupName" : "Account A", "isDefaultAccountGroup" : true, - "accountToken" : "6j052y4vfgyuhefghue", + "accountToken" : "accountToken", "aid" : "1234", "orgId" : "12345", "users" : [ { @@ -574,6 +590,11 @@ class TestAccountGroupsApi(unittest.TestCase): "agentType" : "enterprise-cluster", "ipv6Policy" : "force-ipv4", "prefix" : "99.128.0.0/11", + "networkProviderInfo" : { + "asn" : 7018, + "name" : "AT&T Services, Inc.", + "type" : "isp" + }, "countryId" : "US", "enabled" : true, "network" : "AT&T Services, Inc. (AS 7018)", @@ -581,6 +602,7 @@ class TestAccountGroupsApi(unittest.TestCase): "keepBrowserCache" : true, "agentState" : "online", "localResolutionPrefixes" : [ "10.2.3.3/24", "10.2.3.3/24" ], + "serialNumber" : "FOC2218ABCD", "coordinates" : { "latitude" : 37.77493, "longitude" : -122.41942 @@ -590,6 +612,7 @@ class TestAccountGroupsApi(unittest.TestCase): "testIds" : [ 281474976710706 ], "clusterMembers" : [ { "lastSeen" : "2022-07-17T22:00:54Z", + "serialNumber" : "FOC2218ABCD", "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], "agentState" : "online", "targetForTests" : "1.1.1.1", @@ -607,6 +630,7 @@ class TestAccountGroupsApi(unittest.TestCase): } ] }, { "lastSeen" : "2022-07-17T22:00:54Z", + "serialNumber" : "FOC2218ABCD", "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], "agentState" : "online", "targetForTests" : "1.1.1.1", @@ -719,6 +743,11 @@ class TestAccountGroupsApi(unittest.TestCase): "agentType" : "enterprise-cluster", "ipv6Policy" : "force-ipv4", "prefix" : "99.128.0.0/11", + "networkProviderInfo" : { + "asn" : 7018, + "name" : "AT&T Services, Inc.", + "type" : "isp" + }, "countryId" : "US", "enabled" : true, "network" : "AT&T Services, Inc. (AS 7018)", @@ -726,6 +755,7 @@ class TestAccountGroupsApi(unittest.TestCase): "keepBrowserCache" : true, "agentState" : "online", "localResolutionPrefixes" : [ "10.2.3.3/24", "10.2.3.3/24" ], + "serialNumber" : "FOC2218ABCD", "coordinates" : { "latitude" : 37.77493, "longitude" : -122.41942 @@ -735,6 +765,7 @@ class TestAccountGroupsApi(unittest.TestCase): "testIds" : [ 281474976710706 ], "clusterMembers" : [ { "lastSeen" : "2022-07-17T22:00:54Z", + "serialNumber" : "FOC2218ABCD", "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], "agentState" : "online", "targetForTests" : "1.1.1.1", @@ -752,6 +783,7 @@ class TestAccountGroupsApi(unittest.TestCase): } ] }, { "lastSeen" : "2022-07-17T22:00:54Z", + "serialNumber" : "FOC2218ABCD", "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], "agentState" : "online", "targetForTests" : "1.1.1.1", diff --git a/thousandeyes-sdk-agents/.openapi-generator/FILES b/thousandeyes-sdk-agents/.openapi-generator/FILES index e379d004..9bf3aa4f 100644 --- a/thousandeyes-sdk-agents/.openapi-generator/FILES +++ b/thousandeyes-sdk-agents/.openapi-generator/FILES @@ -43,6 +43,12 @@ docs/ErrorDetailCode.md docs/InterfaceIpMapping.md docs/Link.md docs/ListNotificationRulesResponse.md +docs/LocalProblem.md +docs/LocalProblemAgent.md +docs/LocalProblemAgentResults.md +docs/LocalProblemsApi.md +docs/NetworkProviderInfo.md +docs/NetworkProviderType.md docs/NotificationRule.md docs/NotificationRuleDetail.md docs/NotificationRules.md @@ -50,6 +56,7 @@ docs/ProxyAuthType.md docs/ProxyType.md docs/SelfLinks.md docs/SimpleAgent.md +docs/SimpleAgentAllOfNetworkProviderInfo.md docs/SimpleEnterpriseAgent.md docs/SimpleTest.md docs/TestInterval.md @@ -68,6 +75,7 @@ src/thousandeyes_sdk/agents/api/agent_proxies_api.py src/thousandeyes_sdk/agents/api/cloud_and_enterprise_agent_notification_rules_api.py src/thousandeyes_sdk/agents/api/cloud_and_enterprise_agents_api.py src/thousandeyes_sdk/agents/api/enterprise_agent_cluster_api.py +src/thousandeyes_sdk/agents/api/local_problems_api.py src/thousandeyes_sdk/agents/api/tests_assignment_on_agents_api.py src/thousandeyes_sdk/agents/models/__init__.py src/thousandeyes_sdk/agents/models/account_group.py @@ -108,6 +116,11 @@ src/thousandeyes_sdk/agents/models/error_detail_code.py src/thousandeyes_sdk/agents/models/interface_ip_mapping.py src/thousandeyes_sdk/agents/models/link.py src/thousandeyes_sdk/agents/models/list_notification_rules_response.py +src/thousandeyes_sdk/agents/models/local_problem.py +src/thousandeyes_sdk/agents/models/local_problem_agent.py +src/thousandeyes_sdk/agents/models/local_problem_agent_results.py +src/thousandeyes_sdk/agents/models/network_provider_info.py +src/thousandeyes_sdk/agents/models/network_provider_type.py src/thousandeyes_sdk/agents/models/notification_rule.py src/thousandeyes_sdk/agents/models/notification_rule_detail.py src/thousandeyes_sdk/agents/models/notification_rules.py @@ -115,6 +128,7 @@ src/thousandeyes_sdk/agents/models/proxy_auth_type.py src/thousandeyes_sdk/agents/models/proxy_type.py src/thousandeyes_sdk/agents/models/self_links.py src/thousandeyes_sdk/agents/models/simple_agent.py +src/thousandeyes_sdk/agents/models/simple_agent_all_of_network_provider_info.py src/thousandeyes_sdk/agents/models/simple_enterprise_agent.py src/thousandeyes_sdk/agents/models/simple_test.py src/thousandeyes_sdk/agents/models/test_interval.py @@ -130,5 +144,6 @@ test/test_agent_proxies_api.py test/test_cloud_and_enterprise_agent_notification_rules_api.py test/test_cloud_and_enterprise_agents_api.py test/test_enterprise_agent_cluster_api.py +test/test_local_problems_api.py test/test_tests_assignment_on_agents_api.py test/test_utils.py diff --git a/thousandeyes-sdk-agents/README.md b/thousandeyes-sdk-agents/README.md index 453ff5b1..65b150a5 100644 --- a/thousandeyes-sdk-agents/README.md +++ b/thousandeyes-sdk-agents/README.md @@ -5,7 +5,7 @@ Manage Cloud and Enterprise Agents available to your account in ThousandEyes. This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project: -- API version: 7.0.84 +- API version: 7.0.92 - Generator version: 7.6.0 - Build package: com.thousandeyes.api.codegen.ThousandeyesPythonGenerator @@ -105,6 +105,7 @@ Class | Method | HTTP request | Description *CloudAndEnterpriseAgentsApi* | [**update_agent**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-agents/docs/CloudAndEnterpriseAgentsApi.md#update_agent) | **PUT** /agents/{agentId} | Update Enterprise Agent *EnterpriseAgentClusterApi* | [**assign_agent_to_cluster**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-agents/docs/EnterpriseAgentClusterApi.md#assign_agent_to_cluster) | **POST** /agents/{agentId}/cluster/assign | Add member to Enterprise Agent cluster *EnterpriseAgentClusterApi* | [**unassign_agent_from_cluster**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-agents/docs/EnterpriseAgentClusterApi.md#unassign_agent_from_cluster) | **POST** /agents/{agentId}/cluster/unassign | Remove member from Enterprise Agent cluster +*LocalProblemsApi* | [**get_agents_local_problems**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-agents/docs/LocalProblemsApi.md#get_agents_local_problems) | **GET** /agents/local-problems | List Cloud agents with local problems *TestsAssignmentOnAgentsApi* | [**assign_tests**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-agents/docs/TestsAssignmentOnAgentsApi.md#assign_tests) | **POST** /agents/{agentId}/tests/assign | Assign tests to an agent *TestsAssignmentOnAgentsApi* | [**overwrite_tests**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-agents/docs/TestsAssignmentOnAgentsApi.md#overwrite_tests) | **POST** /agents/{agentId}/tests/override | Overwrite tests assigned to an agent *TestsAssignmentOnAgentsApi* | [**unassign_tests**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-agents/docs/TestsAssignmentOnAgentsApi.md#unassign_tests) | **POST** /agents/{agentId}/tests/unassign | Unassign tests from an agent @@ -150,6 +151,11 @@ Class | Method | HTTP request | Description - [InterfaceIpMapping](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-agents/docs/InterfaceIpMapping.md) - [Link](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-agents/docs/Link.md) - [ListNotificationRulesResponse](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-agents/docs/ListNotificationRulesResponse.md) + - [LocalProblem](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-agents/docs/LocalProblem.md) + - [LocalProblemAgent](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-agents/docs/LocalProblemAgent.md) + - [LocalProblemAgentResults](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-agents/docs/LocalProblemAgentResults.md) + - [NetworkProviderInfo](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-agents/docs/NetworkProviderInfo.md) + - [NetworkProviderType](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-agents/docs/NetworkProviderType.md) - [NotificationRule](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-agents/docs/NotificationRule.md) - [NotificationRuleDetail](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-agents/docs/NotificationRuleDetail.md) - [NotificationRules](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-agents/docs/NotificationRules.md) @@ -157,6 +163,7 @@ Class | Method | HTTP request | Description - [ProxyType](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-agents/docs/ProxyType.md) - [SelfLinks](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-agents/docs/SelfLinks.md) - [SimpleAgent](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-agents/docs/SimpleAgent.md) + - [SimpleAgentAllOfNetworkProviderInfo](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-agents/docs/SimpleAgentAllOfNetworkProviderInfo.md) - [SimpleEnterpriseAgent](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-agents/docs/SimpleEnterpriseAgent.md) - [SimpleTest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-agents/docs/SimpleTest.md) - [TestInterval](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-agents/docs/TestInterval.md) diff --git a/thousandeyes-sdk-agents/docs/AgentDetails.md b/thousandeyes-sdk-agents/docs/AgentDetails.md index 605e6010..f2a53ca4 100644 --- a/thousandeyes-sdk-agents/docs/AgentDetails.md +++ b/thousandeyes-sdk-agents/docs/AgentDetails.md @@ -13,9 +13,10 @@ Name | Type | Description | Notes **location** | **str** | Location of the agent. | [optional] [readonly] **country_id** | **str** | 2-digit ISO country code | [optional] [readonly] **coordinates** | [**Coordinates**](Coordinates.md) | | [optional] +**network_provider_info** | [**SimpleAgentAllOfNetworkProviderInfo**](SimpleAgentAllOfNetworkProviderInfo.md) | | [optional] **enabled** | **bool** | Flag indicating if the agent is enabled. | [optional] -**prefix** | **str** | Prefix containing agents public IP address. | [optional] [readonly] **verify_ssl_certificates** | **bool** | Flag indicating if has normal SSL operations or if instead it's set to ignore SSL errors on browserbot-based tests. | [optional] [readonly] +**prefix** | **str** | Prefix containing agents public IP address. | [optional] [readonly] **agent_type** | **str** | Enterprise Cluster agent type. | **tests** | [**List[SimpleTest]**](SimpleTest.md) | List of tests. See `/tests` for more information. | [optional] **labels** | [**List[AgentLabel]**](AgentLabel.md) | List of labels. See `/labels` for more information. | [optional] [readonly] @@ -33,6 +34,7 @@ Name | Type | Description | Notes **keep_browser_cache** | **bool** | Flag indicating if the agent retains cache. | [optional] **created_date** | **datetime** | UTC Agent creation date (ISO date-time format). | [optional] [readonly] **target_for_tests** | **str** | Test target IP address. | [optional] +**serial_number** | **str** | Serial number of an enterprise agent or cluster member device. This field is not available for Cloud Agents. | [optional] [readonly] **local_resolution_prefixes** | **List[str]** | To perform rDNS lookups for public IP ranges, this field represents the public IP ranges. The range must be in CIDR notation; for example, 10.1.1.0/24. Maximum of 5 prefixes allowed (Enterprise Agents and Enterprise Agent clusters only). | [optional] **interface_ip_mapping** | [**List[InterfaceIpMapping]**](InterfaceIpMapping.md) | | [optional] [readonly] **notification_rules** | [**List[NotificationRules]**](NotificationRules.md) | List of notification rule objects configured on agent | [optional] diff --git a/thousandeyes-sdk-agents/docs/AgentResponse.md b/thousandeyes-sdk-agents/docs/AgentResponse.md index d651cef5..61784e42 100644 --- a/thousandeyes-sdk-agents/docs/AgentResponse.md +++ b/thousandeyes-sdk-agents/docs/AgentResponse.md @@ -13,9 +13,10 @@ Name | Type | Description | Notes **location** | **str** | Location of the agent. | [optional] [readonly] **country_id** | **str** | 2-digit ISO country code | [optional] [readonly] **coordinates** | [**Coordinates**](Coordinates.md) | | [optional] +**network_provider_info** | [**SimpleAgentAllOfNetworkProviderInfo**](SimpleAgentAllOfNetworkProviderInfo.md) | | [optional] **enabled** | **bool** | Flag indicating if the agent is enabled. | [optional] -**prefix** | **str** | Prefix containing agents public IP address. | [optional] [readonly] **verify_ssl_certificates** | **bool** | Flag indicating if has normal SSL operations or if instead it's set to ignore SSL errors on browserbot-based tests. | [optional] [readonly] +**prefix** | **str** | Prefix containing agents public IP address. | [optional] [readonly] **agent_type** | [**CloudEnterpriseAgentType**](CloudEnterpriseAgentType.md) | | ## Example diff --git a/thousandeyes-sdk-agents/docs/CloudAgentDetail.md b/thousandeyes-sdk-agents/docs/CloudAgentDetail.md index 672541b9..e902f5cf 100644 --- a/thousandeyes-sdk-agents/docs/CloudAgentDetail.md +++ b/thousandeyes-sdk-agents/docs/CloudAgentDetail.md @@ -13,9 +13,10 @@ Name | Type | Description | Notes **location** | **str** | Location of the agent. | [optional] [readonly] **country_id** | **str** | 2-digit ISO country code | [optional] [readonly] **coordinates** | [**Coordinates**](Coordinates.md) | | [optional] +**network_provider_info** | [**SimpleAgentAllOfNetworkProviderInfo**](SimpleAgentAllOfNetworkProviderInfo.md) | | [optional] **enabled** | **bool** | Flag indicating if the agent is enabled. | [optional] -**prefix** | **str** | Prefix containing agents public IP address. | [optional] [readonly] **verify_ssl_certificates** | **bool** | Flag indicating if has normal SSL operations or if instead it's set to ignore SSL errors on browserbot-based tests. | [optional] [readonly] +**prefix** | **str** | Prefix containing agents public IP address. | [optional] [readonly] **agent_type** | **str** | Cloud agent type. | **tests** | [**List[SimpleTest]**](SimpleTest.md) | List of tests. See `/tests` for more information. | [optional] **labels** | [**List[AgentLabel]**](AgentLabel.md) | List of labels - see `/labels` for more information. | [optional] [readonly] diff --git a/thousandeyes-sdk-agents/docs/CloudEnterpriseAgent.md b/thousandeyes-sdk-agents/docs/CloudEnterpriseAgent.md index eb2e93cd..4eba7435 100644 --- a/thousandeyes-sdk-agents/docs/CloudEnterpriseAgent.md +++ b/thousandeyes-sdk-agents/docs/CloudEnterpriseAgent.md @@ -14,9 +14,10 @@ Name | Type | Description | Notes **location** | **str** | Location of the agent. | [optional] [readonly] **country_id** | **str** | 2-digit ISO country code | [optional] [readonly] **coordinates** | [**Coordinates**](Coordinates.md) | | [optional] +**network_provider_info** | [**SimpleAgentAllOfNetworkProviderInfo**](SimpleAgentAllOfNetworkProviderInfo.md) | | [optional] **enabled** | **bool** | Flag indicating if the agent is enabled. | [optional] -**prefix** | **str** | Prefix containing agents public IP address. | [optional] [readonly] **verify_ssl_certificates** | **bool** | Flag indicating if has normal SSL operations or if instead it's set to ignore SSL errors on browserbot-based tests. | [optional] [readonly] +**prefix** | **str** | Prefix containing agents public IP address. | [optional] [readonly] **test_ids** | **List[int]** | List of test IDs assigned to the agent. | [optional] [readonly] **tests** | [**List[SimpleTest]**](SimpleTest.md) | List of tests. See `/tests` for more information. | [optional] **cluster_members** | [**List[ClusterMember]**](ClusterMember.md) | If an enterprise agent is clustered, detailed information about each cluster member will be shown as array entries in the clusterMembers field. This field is not shown for Enterprise Agents in standalone mode, or for Cloud Agents. | [optional] [readonly] @@ -30,6 +31,7 @@ Name | Type | Description | Notes **keep_browser_cache** | **bool** | Flag indicating if the agent retains cache. | [optional] **created_date** | **datetime** | UTC Agent creation date (ISO date-time format). | [optional] [readonly] **target_for_tests** | **str** | Test target IP address. | [optional] +**serial_number** | **str** | Serial number of an enterprise agent or cluster member device. This field is not available for Cloud Agents. | [optional] [readonly] **local_resolution_prefixes** | **List[str]** | To perform rDNS lookups for public IP ranges, this field represents the public IP ranges. The range must be in CIDR notation; for example, 10.1.1.0/24. Maximum of 5 prefixes allowed (Enterprise Agents and Enterprise Agent clusters only). | [optional] **interface_ip_mapping** | [**List[InterfaceIpMapping]**](InterfaceIpMapping.md) | | [optional] [readonly] diff --git a/thousandeyes-sdk-agents/docs/ClusterMember.md b/thousandeyes-sdk-agents/docs/ClusterMember.md index 451bc705..d59590a6 100644 --- a/thousandeyes-sdk-agents/docs/ClusterMember.md +++ b/thousandeyes-sdk-agents/docs/ClusterMember.md @@ -14,6 +14,7 @@ Name | Type | Description | Notes **last_seen** | **datetime** | UTC last seen date (ISO date-time format). | [optional] [readonly] **agent_state** | [**EnterpriseAgentState**](EnterpriseAgentState.md) | | [optional] **target_for_tests** | **str** | Test target IP address. | [optional] +**serial_number** | **str** | Serial number of an enterprise agent or cluster member device. This field is not available for Cloud Agents. | [optional] [readonly] **utilization** | **int** | Shows overall utilization percentage (online Enterprise Agents and Enterprise Clusters only). | [optional] [readonly] ## Example diff --git a/thousandeyes-sdk-agents/docs/EnterpriseAgent.md b/thousandeyes-sdk-agents/docs/EnterpriseAgent.md index eb8068e3..9a927c44 100644 --- a/thousandeyes-sdk-agents/docs/EnterpriseAgent.md +++ b/thousandeyes-sdk-agents/docs/EnterpriseAgent.md @@ -14,9 +14,10 @@ Name | Type | Description | Notes **location** | **str** | Location of the agent. | [optional] [readonly] **country_id** | **str** | 2-digit ISO country code | [optional] [readonly] **coordinates** | [**Coordinates**](Coordinates.md) | | [optional] +**network_provider_info** | [**SimpleAgentAllOfNetworkProviderInfo**](SimpleAgentAllOfNetworkProviderInfo.md) | | [optional] **enabled** | **bool** | Flag indicating if the agent is enabled. | [optional] -**prefix** | **str** | Prefix containing agents public IP address. | [optional] [readonly] **verify_ssl_certificates** | **bool** | Flag indicating if has normal SSL operations or if instead it's set to ignore SSL errors on browserbot-based tests. | [optional] [readonly] +**prefix** | **str** | Prefix containing agents public IP address. | [optional] [readonly] **test_ids** | **List[int]** | List of test IDs assigned to the agent. | [optional] [readonly] **tests** | [**List[SimpleTest]**](SimpleTest.md) | List of tests. See `/tests` for more information. | [optional] **cluster_members** | [**List[ClusterMember]**](ClusterMember.md) | If an enterprise agent is clustered, detailed information about each cluster member will be shown as array entries in the clusterMembers field. This field is not shown for Enterprise Agents in standalone mode, or for Cloud Agents. | [optional] [readonly] @@ -30,6 +31,7 @@ Name | Type | Description | Notes **keep_browser_cache** | **bool** | Flag indicating if the agent retains cache. | [optional] **created_date** | **datetime** | UTC Agent creation date (ISO date-time format). | [optional] [readonly] **target_for_tests** | **str** | Test target IP address. | [optional] +**serial_number** | **str** | Serial number of an enterprise agent or cluster member device. This field is not available for Cloud Agents. | [optional] [readonly] **local_resolution_prefixes** | **List[str]** | To perform rDNS lookups for public IP ranges, this field represents the public IP ranges. The range must be in CIDR notation; for example, 10.1.1.0/24. Maximum of 5 prefixes allowed (Enterprise Agents and Enterprise Agent clusters only). | [optional] **interface_ip_mapping** | [**List[InterfaceIpMapping]**](InterfaceIpMapping.md) | | [optional] [readonly] diff --git a/thousandeyes-sdk-agents/docs/EnterpriseAgentClusterDetail.md b/thousandeyes-sdk-agents/docs/EnterpriseAgentClusterDetail.md index 46fb580d..a8156545 100644 --- a/thousandeyes-sdk-agents/docs/EnterpriseAgentClusterDetail.md +++ b/thousandeyes-sdk-agents/docs/EnterpriseAgentClusterDetail.md @@ -13,9 +13,10 @@ Name | Type | Description | Notes **location** | **str** | Location of the agent. | [optional] [readonly] **country_id** | **str** | 2-digit ISO country code | [optional] [readonly] **coordinates** | [**Coordinates**](Coordinates.md) | | [optional] +**network_provider_info** | [**SimpleAgentAllOfNetworkProviderInfo**](SimpleAgentAllOfNetworkProviderInfo.md) | | [optional] **enabled** | **bool** | Flag indicating if the agent is enabled. | [optional] -**prefix** | **str** | Prefix containing agents public IP address. | [optional] [readonly] **verify_ssl_certificates** | **bool** | Flag indicating if has normal SSL operations or if instead it's set to ignore SSL errors on browserbot-based tests. | [optional] [readonly] +**prefix** | **str** | Prefix containing agents public IP address. | [optional] [readonly] **test_ids** | **List[int]** | List of test IDs assigned to the agent. | [optional] [readonly] **tests** | [**List[SimpleTest]**](SimpleTest.md) | List of tests. See `/tests` for more information. | [optional] **cluster_members** | [**List[ClusterMember]**](ClusterMember.md) | If an enterprise agent is clustered, detailed information about each cluster member will be shown as array entries in the clusterMembers field. This field is not shown for Enterprise Agents in standalone mode, or for Cloud Agents. | [optional] [readonly] @@ -29,6 +30,7 @@ Name | Type | Description | Notes **keep_browser_cache** | **bool** | Flag indicating if the agent retains cache. | [optional] **created_date** | **datetime** | UTC Agent creation date (ISO date-time format). | [optional] [readonly] **target_for_tests** | **str** | Test target IP address. | [optional] +**serial_number** | **str** | Serial number of an enterprise agent or cluster member device. This field is not available for Cloud Agents. | [optional] [readonly] **local_resolution_prefixes** | **List[str]** | To perform rDNS lookups for public IP ranges, this field represents the public IP ranges. The range must be in CIDR notation; for example, 10.1.1.0/24. Maximum of 5 prefixes allowed (Enterprise Agents and Enterprise Agent clusters only). | [optional] **interface_ip_mapping** | [**List[InterfaceIpMapping]**](InterfaceIpMapping.md) | | [optional] [readonly] **notification_rules** | [**List[NotificationRules]**](NotificationRules.md) | List of notification rule objects configured on agent | [optional] diff --git a/thousandeyes-sdk-agents/docs/EnterpriseAgentData.md b/thousandeyes-sdk-agents/docs/EnterpriseAgentData.md index 79152a22..1ee2db1c 100644 --- a/thousandeyes-sdk-agents/docs/EnterpriseAgentData.md +++ b/thousandeyes-sdk-agents/docs/EnterpriseAgentData.md @@ -18,6 +18,7 @@ Name | Type | Description | Notes **keep_browser_cache** | **bool** | Flag indicating if the agent retains cache. | [optional] **created_date** | **datetime** | UTC Agent creation date (ISO date-time format). | [optional] [readonly] **target_for_tests** | **str** | Test target IP address. | [optional] +**serial_number** | **str** | Serial number of an enterprise agent or cluster member device. This field is not available for Cloud Agents. | [optional] [readonly] **local_resolution_prefixes** | **List[str]** | To perform rDNS lookups for public IP ranges, this field represents the public IP ranges. The range must be in CIDR notation; for example, 10.1.1.0/24. Maximum of 5 prefixes allowed (Enterprise Agents and Enterprise Agent clusters only). | [optional] **interface_ip_mapping** | [**List[InterfaceIpMapping]**](InterfaceIpMapping.md) | | [optional] [readonly] diff --git a/thousandeyes-sdk-agents/docs/EnterpriseAgentDetail.md b/thousandeyes-sdk-agents/docs/EnterpriseAgentDetail.md index 196a77bc..80911a94 100644 --- a/thousandeyes-sdk-agents/docs/EnterpriseAgentDetail.md +++ b/thousandeyes-sdk-agents/docs/EnterpriseAgentDetail.md @@ -13,9 +13,10 @@ Name | Type | Description | Notes **location** | **str** | Location of the agent. | [optional] [readonly] **country_id** | **str** | 2-digit ISO country code | [optional] [readonly] **coordinates** | [**Coordinates**](Coordinates.md) | | [optional] +**network_provider_info** | [**SimpleAgentAllOfNetworkProviderInfo**](SimpleAgentAllOfNetworkProviderInfo.md) | | [optional] **enabled** | **bool** | Flag indicating if the agent is enabled. | [optional] -**prefix** | **str** | Prefix containing agents public IP address. | [optional] [readonly] **verify_ssl_certificates** | **bool** | Flag indicating if has normal SSL operations or if instead it's set to ignore SSL errors on browserbot-based tests. | [optional] [readonly] +**prefix** | **str** | Prefix containing agents public IP address. | [optional] [readonly] **test_ids** | **List[int]** | List of test IDs assigned to the agent. | [optional] [readonly] **tests** | [**List[SimpleTest]**](SimpleTest.md) | List of tests. See `/tests` for more information. | [optional] **cluster_members** | [**List[ClusterMember]**](ClusterMember.md) | If an enterprise agent is clustered, detailed information about each cluster member will be shown as array entries in the clusterMembers field. This field is not shown for Enterprise Agents in standalone mode, or for Cloud Agents. | [optional] [readonly] @@ -29,6 +30,7 @@ Name | Type | Description | Notes **keep_browser_cache** | **bool** | Flag indicating if the agent retains cache. | [optional] **created_date** | **datetime** | UTC Agent creation date (ISO date-time format). | [optional] [readonly] **target_for_tests** | **str** | Test target IP address. | [optional] +**serial_number** | **str** | Serial number of an enterprise agent or cluster member device. This field is not available for Cloud Agents. | [optional] [readonly] **local_resolution_prefixes** | **List[str]** | To perform rDNS lookups for public IP ranges, this field represents the public IP ranges. The range must be in CIDR notation; for example, 10.1.1.0/24. Maximum of 5 prefixes allowed (Enterprise Agents and Enterprise Agent clusters only). | [optional] **interface_ip_mapping** | [**List[InterfaceIpMapping]**](InterfaceIpMapping.md) | | [optional] [readonly] **notification_rules** | [**List[NotificationRules]**](NotificationRules.md) | List of notification rule objects configured on agent | [optional] diff --git a/thousandeyes-sdk-agents/docs/LocalProblem.md b/thousandeyes-sdk-agents/docs/LocalProblem.md new file mode 100644 index 00000000..5b0af050 --- /dev/null +++ b/thousandeyes-sdk-agents/docs/LocalProblem.md @@ -0,0 +1,33 @@ +# LocalProblem + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**agent** | [**LocalProblemAgent**](LocalProblemAgent.md) | | +**start_date** | **datetime** | Date and time when the local problem interval started, in UTC. | [readonly] +**end_date** | **datetime** | Date and time when the local problem interval ended, in UTC. This value is `null` when the local problem is active. | [optional] [readonly] +**duration** | **int** | Duration of the local problem interval in seconds. | [readonly] +**active** | **bool** | Indicates whether the local problem is active. | [readonly] + +## Example + +```python +from thousandeyes_sdk.agents.models.local_problem import LocalProblem + +# TODO update the JSON string below +json = "{}" +# create an instance of LocalProblem from a JSON string +local_problem_instance = LocalProblem.from_json(json) +# print the JSON string representation of the object +print(LocalProblem.to_json()) + +# convert the object into a dict +local_problem_dict = local_problem_instance.to_dict() +# create an instance of LocalProblem from a dict +local_problem_from_dict = LocalProblem.from_dict(local_problem_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/thousandeyes-sdk-agents/docs/LocalProblemAgent.md b/thousandeyes-sdk-agents/docs/LocalProblemAgent.md new file mode 100644 index 00000000..a1d1daa6 --- /dev/null +++ b/thousandeyes-sdk-agents/docs/LocalProblemAgent.md @@ -0,0 +1,32 @@ +# LocalProblemAgent + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**agent_id** | **str** | Agent ID. | [optional] [readonly] +**agent_name** | **str** | Agent name. | [optional] [readonly] +**country_id** | **str** | Two-letter ISO country code where the agent is located. | [optional] [readonly] +**location** | **str** | Agent location. | [optional] [readonly] + +## Example + +```python +from thousandeyes_sdk.agents.models.local_problem_agent import LocalProblemAgent + +# TODO update the JSON string below +json = "{}" +# create an instance of LocalProblemAgent from a JSON string +local_problem_agent_instance = LocalProblemAgent.from_json(json) +# print the JSON string representation of the object +print(LocalProblemAgent.to_json()) + +# convert the object into a dict +local_problem_agent_dict = local_problem_agent_instance.to_dict() +# create an instance of LocalProblemAgent from a dict +local_problem_agent_from_dict = LocalProblemAgent.from_dict(local_problem_agent_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/thousandeyes-sdk-agents/docs/LocalProblemAgentResults.md b/thousandeyes-sdk-agents/docs/LocalProblemAgentResults.md new file mode 100644 index 00000000..ceee39dd --- /dev/null +++ b/thousandeyes-sdk-agents/docs/LocalProblemAgentResults.md @@ -0,0 +1,32 @@ +# LocalProblemAgentResults + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**local_problems** | [**List[LocalProblem]**](LocalProblem.md) | | [optional] +**start_date** | **datetime** | (Optional) When passing `window` or `startDate` parameter, the client will also receive the `startDate` field indicating the UTC start date of the data's time range being retrieved (ISO date-time format). | [optional] [readonly] +**end_date** | **datetime** | (Optional) When passing `window` or `endDate` parameter, the client will also receive the `endDate` field indicating the UTC end date of the data's time range being retrieved (ISO date-time format). | [optional] [readonly] +**links** | [**SelfLinks**](SelfLinks.md) | | [optional] + +## Example + +```python +from thousandeyes_sdk.agents.models.local_problem_agent_results import LocalProblemAgentResults + +# TODO update the JSON string below +json = "{}" +# create an instance of LocalProblemAgentResults from a JSON string +local_problem_agent_results_instance = LocalProblemAgentResults.from_json(json) +# print the JSON string representation of the object +print(LocalProblemAgentResults.to_json()) + +# convert the object into a dict +local_problem_agent_results_dict = local_problem_agent_results_instance.to_dict() +# create an instance of LocalProblemAgentResults from a dict +local_problem_agent_results_from_dict = LocalProblemAgentResults.from_dict(local_problem_agent_results_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/thousandeyes-sdk-agents/docs/LocalProblemsApi.md b/thousandeyes-sdk-agents/docs/LocalProblemsApi.md new file mode 100644 index 00000000..7c4ededf --- /dev/null +++ b/thousandeyes-sdk-agents/docs/LocalProblemsApi.md @@ -0,0 +1,101 @@ +# thousandeyes_sdk.agents.LocalProblemsApi + +All URIs are relative to *https://api.thousandeyes.com/v7* + +Method | HTTP request | Description +------------- | ------------- | ------------- +[**get_agents_local_problems**](LocalProblemsApi.md#get_agents_local_problems) | **GET** /agents/local-problems | List Cloud agents with local problems + + +# **get_agents_local_problems** +> LocalProblemAgentResults get_agents_local_problems(aid=aid, window=window, start_date=start_date, end_date=end_date) + +List Cloud agents with local problems + +Returns local problem intervals for Cloud Agents available to your account in ThousandEyes. FedRAMP Cloud Agents are not included. Local problems indicate agent-side impairment detected by ThousandEyes and do not indicate that a monitored target or service was down. If no time range is specified, this operation returns active local problems. + +### Example + +* Bearer Authentication (BearerAuth): + +```python +import thousandeyes_sdk.agents +from thousandeyes_sdk.agents.models.local_problem_agent_results import LocalProblemAgentResults +from thousandeyes_sdk.agents.rest import ApiException +from pprint import pprint + +# Defining the host is optional and defaults to https://api.thousandeyes.com/v7 +# See configuration.py for a list of all supported configuration parameters. +configuration = thousandeyes_sdk.core.Configuration( + host = "https://api.thousandeyes.com/v7" +) + +# 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: BearerAuth +configuration = thousandeyes_sdk.core.Configuration( + access_token = os.environ["BEARER_TOKEN"] +) + +# Enter a context with an instance of the API client +with thousandeyes_sdk.core.ApiClient(configuration) as api_client: + # Create an instance of the API class + api_instance = thousandeyes_sdk.agents.LocalProblemsApi(api_client) + aid = '1234' # str | A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error response. (optional) + window = '12h' # str | A dynamic time interval up to the current time of the request. Specify the interval as a number followed by an optional type: `s` for seconds (default if no type is specified), `m` for minutes, `h` for hours, `d` for days, and `w` for weeks. For a precise date range, use `startDate` and `endDate`. (optional) + start_date = '2022-07-17T22:00:54Z' # datetime | Use with the `endDate` parameter. Include the complete time (hours, minutes, and seconds) in UTC time zone, following the ISO 8601 date-time format. See the example for reference. Please note that this parameter can't be used with `window`. (optional) + end_date = '2022-07-18T22:00:54Z' # datetime | Defaults to current time the request is made. Use with the `startDate` parameter. Include the complete time (hours, minutes, and seconds) in UTC time zone, following the ISO 8601 date-time format. See the example for reference. Please note that this parameter can't be used with `window`. (optional) + + try: + # List Cloud agents with local problems + api_response = api_instance.get_agents_local_problems(aid=aid, window=window, start_date=start_date, end_date=end_date) + print("The response of LocalProblemsApi->get_agents_local_problems:\n") + pprint(api_response) + except Exception as e: + print("Exception when calling LocalProblemsApi->get_agents_local_problems: %s\n" % e) +``` + + + +### Parameters + + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **aid** | **str**| A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error response. | [optional] + **window** | **str**| A dynamic time interval up to the current time of the request. Specify the interval as a number followed by an optional type: `s` for seconds (default if no type is specified), `m` for minutes, `h` for hours, `d` for days, and `w` for weeks. For a precise date range, use `startDate` and `endDate`. | [optional] + **start_date** | **datetime**| Use with the `endDate` parameter. Include the complete time (hours, minutes, and seconds) in UTC time zone, following the ISO 8601 date-time format. See the example for reference. Please note that this parameter can't be used with `window`. | [optional] + **end_date** | **datetime**| Defaults to current time the request is made. Use with the `startDate` parameter. Include the complete time (hours, minutes, and seconds) in UTC time zone, following the ISO 8601 date-time format. See the example for reference. Please note that this parameter can't be used with `window`. | [optional] + +### Return type + +[**LocalProblemAgentResults**](LocalProblemAgentResults.md) + +### Authorization + +[BearerAuth](../README.md#BearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/hal+json, application/json, application/problem+json + +### HTTP response details + +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**200** | OK | - | +**400** | Bad Request | - | +**401** | Unauthorized | - | +**403** | Insufficient permissions to query endpoint | - | +**404** | Not found | - | +**429** | Exhausted rate limit for the organization | - | +**500** | Internal server error | - | +**502** | Bad Gateway | - | +**0** | An error occurred | - | + +[[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/thousandeyes-sdk-agents/docs/NetworkProviderInfo.md b/thousandeyes-sdk-agents/docs/NetworkProviderInfo.md new file mode 100644 index 00000000..b34847c7 --- /dev/null +++ b/thousandeyes-sdk-agents/docs/NetworkProviderInfo.md @@ -0,0 +1,32 @@ +# NetworkProviderInfo + +Information about the network provider that owns the agent's public IP prefix. + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**asn** | **int** | Autonomous System Number (ASN) announcing the agent's public IP prefix. | [optional] [readonly] +**name** | **str** | Name of the network provider organization. | [optional] [readonly] +**type** | [**NetworkProviderType**](NetworkProviderType.md) | | [optional] + +## Example + +```python +from thousandeyes_sdk.agents.models.network_provider_info import NetworkProviderInfo + +# TODO update the JSON string below +json = "{}" +# create an instance of NetworkProviderInfo from a JSON string +network_provider_info_instance = NetworkProviderInfo.from_json(json) +# print the JSON string representation of the object +print(NetworkProviderInfo.to_json()) + +# convert the object into a dict +network_provider_info_dict = network_provider_info_instance.to_dict() +# create an instance of NetworkProviderInfo from a dict +network_provider_info_from_dict = NetworkProviderInfo.from_dict(network_provider_info_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/thousandeyes-sdk-dashboards/docs/ApiWidgetSortProperty.md b/thousandeyes-sdk-agents/docs/NetworkProviderType.md similarity index 79% rename from thousandeyes-sdk-dashboards/docs/ApiWidgetSortProperty.md rename to thousandeyes-sdk-agents/docs/NetworkProviderType.md index 7d2d34e7..efc6dd07 100644 --- a/thousandeyes-sdk-dashboards/docs/ApiWidgetSortProperty.md +++ b/thousandeyes-sdk-agents/docs/NetworkProviderType.md @@ -1,6 +1,6 @@ -# ApiWidgetSortProperty +# NetworkProviderType -Determines the card sorting criterion. +Classification of the agent's network provider. ## Properties diff --git a/thousandeyes-sdk-agents/docs/SimpleAgent.md b/thousandeyes-sdk-agents/docs/SimpleAgent.md index 69afdda7..cf8502cd 100644 --- a/thousandeyes-sdk-agents/docs/SimpleAgent.md +++ b/thousandeyes-sdk-agents/docs/SimpleAgent.md @@ -13,9 +13,10 @@ Name | Type | Description | Notes **location** | **str** | Location of the agent. | [optional] [readonly] **country_id** | **str** | 2-digit ISO country code | [optional] [readonly] **coordinates** | [**Coordinates**](Coordinates.md) | | [optional] +**network_provider_info** | [**SimpleAgentAllOfNetworkProviderInfo**](SimpleAgentAllOfNetworkProviderInfo.md) | | [optional] **enabled** | **bool** | Flag indicating if the agent is enabled. | [optional] -**prefix** | **str** | Prefix containing agents public IP address. | [optional] [readonly] **verify_ssl_certificates** | **bool** | Flag indicating if has normal SSL operations or if instead it's set to ignore SSL errors on browserbot-based tests. | [optional] [readonly] +**prefix** | **str** | Prefix containing agents public IP address. | [optional] [readonly] ## Example diff --git a/thousandeyes-sdk-agents/docs/SimpleAgentAllOfNetworkProviderInfo.md b/thousandeyes-sdk-agents/docs/SimpleAgentAllOfNetworkProviderInfo.md new file mode 100644 index 00000000..a9065d36 --- /dev/null +++ b/thousandeyes-sdk-agents/docs/SimpleAgentAllOfNetworkProviderInfo.md @@ -0,0 +1,31 @@ +# SimpleAgentAllOfNetworkProviderInfo + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**asn** | **int** | Autonomous System Number (ASN) announcing the agent's public IP prefix. | [optional] [readonly] +**name** | **str** | Name of the network provider organization. | [optional] [readonly] +**type** | [**NetworkProviderType**](NetworkProviderType.md) | | [optional] + +## Example + +```python +from thousandeyes_sdk.agents.models.simple_agent_all_of_network_provider_info import SimpleAgentAllOfNetworkProviderInfo + +# TODO update the JSON string below +json = "{}" +# create an instance of SimpleAgentAllOfNetworkProviderInfo from a JSON string +simple_agent_all_of_network_provider_info_instance = SimpleAgentAllOfNetworkProviderInfo.from_json(json) +# print the JSON string representation of the object +print(SimpleAgentAllOfNetworkProviderInfo.to_json()) + +# convert the object into a dict +simple_agent_all_of_network_provider_info_dict = simple_agent_all_of_network_provider_info_instance.to_dict() +# create an instance of SimpleAgentAllOfNetworkProviderInfo from a dict +simple_agent_all_of_network_provider_info_from_dict = SimpleAgentAllOfNetworkProviderInfo.from_dict(simple_agent_all_of_network_provider_info_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/thousandeyes-sdk-agents/docs/SimpleEnterpriseAgent.md b/thousandeyes-sdk-agents/docs/SimpleEnterpriseAgent.md index 2bd882b9..07a12dbe 100644 --- a/thousandeyes-sdk-agents/docs/SimpleEnterpriseAgent.md +++ b/thousandeyes-sdk-agents/docs/SimpleEnterpriseAgent.md @@ -13,9 +13,10 @@ Name | Type | Description | Notes **location** | **str** | Location of the agent. | [optional] [readonly] **country_id** | **str** | 2-digit ISO country code | [optional] [readonly] **coordinates** | [**Coordinates**](Coordinates.md) | | [optional] +**network_provider_info** | [**SimpleAgentAllOfNetworkProviderInfo**](SimpleAgentAllOfNetworkProviderInfo.md) | | [optional] **enabled** | **bool** | Flag indicating if the agent is enabled. | [optional] -**prefix** | **str** | Prefix containing agents public IP address. | [optional] [readonly] **verify_ssl_certificates** | **bool** | Flag indicating if has normal SSL operations or if instead it's set to ignore SSL errors on browserbot-based tests. | [optional] [readonly] +**prefix** | **str** | Prefix containing agents public IP address. | [optional] [readonly] **test_ids** | **List[int]** | List of test IDs assigned to the agent. | [optional] [readonly] **tests** | [**List[SimpleTest]**](SimpleTest.md) | List of tests. See `/tests` for more information. | [optional] **cluster_members** | [**List[ClusterMember]**](ClusterMember.md) | If an enterprise agent is clustered, detailed information about each cluster member will be shown as array entries in the clusterMembers field. This field is not shown for Enterprise Agents in standalone mode, or for Cloud Agents. | [optional] [readonly] @@ -29,6 +30,7 @@ Name | Type | Description | Notes **keep_browser_cache** | **bool** | Flag indicating if the agent retains cache. | [optional] **created_date** | **datetime** | UTC Agent creation date (ISO date-time format). | [optional] [readonly] **target_for_tests** | **str** | Test target IP address. | [optional] +**serial_number** | **str** | Serial number of an enterprise agent or cluster member device. This field is not available for Cloud Agents. | [optional] [readonly] **local_resolution_prefixes** | **List[str]** | To perform rDNS lookups for public IP ranges, this field represents the public IP ranges. The range must be in CIDR notation; for example, 10.1.1.0/24. Maximum of 5 prefixes allowed (Enterprise Agents and Enterprise Agent clusters only). | [optional] **interface_ip_mapping** | [**List[InterfaceIpMapping]**](InterfaceIpMapping.md) | | [optional] [readonly] diff --git a/thousandeyes-sdk-agents/src/thousandeyes_sdk/agents/__init__.py b/thousandeyes-sdk-agents/src/thousandeyes_sdk/agents/__init__.py index 36235531..bc0745c7 100644 --- a/thousandeyes-sdk-agents/src/thousandeyes_sdk/agents/__init__.py +++ b/thousandeyes-sdk-agents/src/thousandeyes_sdk/agents/__init__.py @@ -18,6 +18,7 @@ from thousandeyes_sdk.agents.api.agent_proxies_api import AgentProxiesApi from thousandeyes_sdk.agents.api.cloud_and_enterprise_agent_notification_rules_api import CloudAndEnterpriseAgentNotificationRulesApi from thousandeyes_sdk.agents.api.cloud_and_enterprise_agents_api import CloudAndEnterpriseAgentsApi from thousandeyes_sdk.agents.api.enterprise_agent_cluster_api import EnterpriseAgentClusterApi +from thousandeyes_sdk.agents.api.local_problems_api import LocalProblemsApi from thousandeyes_sdk.agents.api.tests_assignment_on_agents_api import TestsAssignmentOnAgentsApi @@ -60,6 +61,11 @@ from thousandeyes_sdk.agents.models.error_detail_code import ErrorDetailCode from thousandeyes_sdk.agents.models.interface_ip_mapping import InterfaceIpMapping from thousandeyes_sdk.agents.models.link import Link from thousandeyes_sdk.agents.models.list_notification_rules_response import ListNotificationRulesResponse +from thousandeyes_sdk.agents.models.local_problem import LocalProblem +from thousandeyes_sdk.agents.models.local_problem_agent import LocalProblemAgent +from thousandeyes_sdk.agents.models.local_problem_agent_results import LocalProblemAgentResults +from thousandeyes_sdk.agents.models.network_provider_info import NetworkProviderInfo +from thousandeyes_sdk.agents.models.network_provider_type import NetworkProviderType from thousandeyes_sdk.agents.models.notification_rule import NotificationRule from thousandeyes_sdk.agents.models.notification_rule_detail import NotificationRuleDetail from thousandeyes_sdk.agents.models.notification_rules import NotificationRules @@ -67,6 +73,7 @@ from thousandeyes_sdk.agents.models.proxy_auth_type import ProxyAuthType from thousandeyes_sdk.agents.models.proxy_type import ProxyType from thousandeyes_sdk.agents.models.self_links import SelfLinks from thousandeyes_sdk.agents.models.simple_agent import SimpleAgent +from thousandeyes_sdk.agents.models.simple_agent_all_of_network_provider_info import SimpleAgentAllOfNetworkProviderInfo from thousandeyes_sdk.agents.models.simple_enterprise_agent import SimpleEnterpriseAgent from thousandeyes_sdk.agents.models.simple_test import SimpleTest from thousandeyes_sdk.agents.models.test_interval import TestInterval diff --git a/thousandeyes-sdk-agents/src/thousandeyes_sdk/agents/api/__init__.py b/thousandeyes-sdk-agents/src/thousandeyes_sdk/agents/api/__init__.py index c030c40a..74daf73b 100644 --- a/thousandeyes-sdk-agents/src/thousandeyes_sdk/agents/api/__init__.py +++ b/thousandeyes-sdk-agents/src/thousandeyes_sdk/agents/api/__init__.py @@ -5,5 +5,6 @@ from thousandeyes_sdk.agents.api.agent_proxies_api import AgentProxiesApi from thousandeyes_sdk.agents.api.cloud_and_enterprise_agent_notification_rules_api import CloudAndEnterpriseAgentNotificationRulesApi from thousandeyes_sdk.agents.api.cloud_and_enterprise_agents_api import CloudAndEnterpriseAgentsApi from thousandeyes_sdk.agents.api.enterprise_agent_cluster_api import EnterpriseAgentClusterApi +from thousandeyes_sdk.agents.api.local_problems_api import LocalProblemsApi from thousandeyes_sdk.agents.api.tests_assignment_on_agents_api import TestsAssignmentOnAgentsApi diff --git a/thousandeyes-sdk-agents/src/thousandeyes_sdk/agents/api/local_problems_api.py b/thousandeyes-sdk-agents/src/thousandeyes_sdk/agents/api/local_problems_api.py new file mode 100644 index 00000000..24acc200 --- /dev/null +++ b/thousandeyes-sdk-agents/src/thousandeyes_sdk/agents/api/local_problems_api.py @@ -0,0 +1,398 @@ +# coding: utf-8 + +""" + Agents API + + ## Overview Manage Cloud and Enterprise Agents available to your account in ThousandEyes. + + 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 importlib.metadata import version + +import thousandeyes_sdk.agents.models + +from datetime import datetime +from pydantic import Field, StrictStr, field_validator +from typing import Optional +from typing_extensions import Annotated +from thousandeyes_sdk.agents.models.local_problem_agent_results import LocalProblemAgentResults + +from thousandeyes_sdk.core.api_client import ApiClient, RequestSerialized +from thousandeyes_sdk.core.api_response import ApiResponse + +from thousandeyes_sdk.core.rest import RESTResponseType + + +class LocalProblemsApi: + """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() + api_client.user_agent = "ThousandEyesSDK-Python/{0}".format(version("thousandeyes-sdk-agents")) + self.api_client = api_client + + + @validate_call + def get_agents_local_problems( + self, + aid: Annotated[Optional[StrictStr], Field(description="A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error response.")] = None, + window: Annotated[Optional[Annotated[str, Field(strict=True)]], Field(description="A dynamic time interval up to the current time of the request. Specify the interval as a number followed by an optional type: `s` for seconds (default if no type is specified), `m` for minutes, `h` for hours, `d` for days, and `w` for weeks. For a precise date range, use `startDate` and `endDate`.")] = None, + start_date: Annotated[Optional[datetime], Field(description="Use with the `endDate` parameter. Include the complete time (hours, minutes, and seconds) in UTC time zone, following the ISO 8601 date-time format. See the example for reference. Please note that this parameter can't be used with `window`.")] = None, + end_date: Annotated[Optional[datetime], Field(description="Defaults to current time the request is made. Use with the `startDate` parameter. Include the complete time (hours, minutes, and seconds) in UTC time zone, following the ISO 8601 date-time format. See the example for reference. Please note that this parameter can't be used with `window`.")] = 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, + ) -> LocalProblemAgentResults: + """List Cloud agents with local problems + + Returns local problem intervals for Cloud Agents available to your account in ThousandEyes. FedRAMP Cloud Agents are not included. Local problems indicate agent-side impairment detected by ThousandEyes and do not indicate that a monitored target or service was down. If no time range is specified, this operation returns active local problems. + + :param aid: A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error response. + :type aid: str + :param window: A dynamic time interval up to the current time of the request. Specify the interval as a number followed by an optional type: `s` for seconds (default if no type is specified), `m` for minutes, `h` for hours, `d` for days, and `w` for weeks. For a precise date range, use `startDate` and `endDate`. + :type window: str + :param start_date: Use with the `endDate` parameter. Include the complete time (hours, minutes, and seconds) in UTC time zone, following the ISO 8601 date-time format. See the example for reference. Please note that this parameter can't be used with `window`. + :type start_date: datetime + :param end_date: Defaults to current time the request is made. Use with the `startDate` parameter. Include the complete time (hours, minutes, and seconds) in UTC time zone, following the ISO 8601 date-time format. See the example for reference. Please note that this parameter can't be used with `window`. + :type end_date: datetime + :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_agents_local_problems_serialize( + aid=aid, + window=window, + start_date=start_date, + end_date=end_date, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "LocalProblemAgentResults", + '400': "ValidationError", + '401': "UnauthorizedError", + '403': "Error", + '404': "Error", + '429': "Error", + '500': "Error", + '502': "Error", + } + 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, + models=thousandeyes_sdk.agents.models, + ).data + + + @validate_call + def get_agents_local_problems_with_http_info( + self, + aid: Annotated[Optional[StrictStr], Field(description="A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error response.")] = None, + window: Annotated[Optional[Annotated[str, Field(strict=True)]], Field(description="A dynamic time interval up to the current time of the request. Specify the interval as a number followed by an optional type: `s` for seconds (default if no type is specified), `m` for minutes, `h` for hours, `d` for days, and `w` for weeks. For a precise date range, use `startDate` and `endDate`.")] = None, + start_date: Annotated[Optional[datetime], Field(description="Use with the `endDate` parameter. Include the complete time (hours, minutes, and seconds) in UTC time zone, following the ISO 8601 date-time format. See the example for reference. Please note that this parameter can't be used with `window`.")] = None, + end_date: Annotated[Optional[datetime], Field(description="Defaults to current time the request is made. Use with the `startDate` parameter. Include the complete time (hours, minutes, and seconds) in UTC time zone, following the ISO 8601 date-time format. See the example for reference. Please note that this parameter can't be used with `window`.")] = 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[LocalProblemAgentResults]: + """List Cloud agents with local problems + + Returns local problem intervals for Cloud Agents available to your account in ThousandEyes. FedRAMP Cloud Agents are not included. Local problems indicate agent-side impairment detected by ThousandEyes and do not indicate that a monitored target or service was down. If no time range is specified, this operation returns active local problems. + + :param aid: A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error response. + :type aid: str + :param window: A dynamic time interval up to the current time of the request. Specify the interval as a number followed by an optional type: `s` for seconds (default if no type is specified), `m` for minutes, `h` for hours, `d` for days, and `w` for weeks. For a precise date range, use `startDate` and `endDate`. + :type window: str + :param start_date: Use with the `endDate` parameter. Include the complete time (hours, minutes, and seconds) in UTC time zone, following the ISO 8601 date-time format. See the example for reference. Please note that this parameter can't be used with `window`. + :type start_date: datetime + :param end_date: Defaults to current time the request is made. Use with the `startDate` parameter. Include the complete time (hours, minutes, and seconds) in UTC time zone, following the ISO 8601 date-time format. See the example for reference. Please note that this parameter can't be used with `window`. + :type end_date: datetime + :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_agents_local_problems_serialize( + aid=aid, + window=window, + start_date=start_date, + end_date=end_date, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "LocalProblemAgentResults", + '400': "ValidationError", + '401': "UnauthorizedError", + '403': "Error", + '404': "Error", + '429': "Error", + '500': "Error", + '502': "Error", + } + 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, + models=thousandeyes_sdk.agents.models, + ) + + + @validate_call + def get_agents_local_problems_without_preload_content( + self, + aid: Annotated[Optional[StrictStr], Field(description="A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error response.")] = None, + window: Annotated[Optional[Annotated[str, Field(strict=True)]], Field(description="A dynamic time interval up to the current time of the request. Specify the interval as a number followed by an optional type: `s` for seconds (default if no type is specified), `m` for minutes, `h` for hours, `d` for days, and `w` for weeks. For a precise date range, use `startDate` and `endDate`.")] = None, + start_date: Annotated[Optional[datetime], Field(description="Use with the `endDate` parameter. Include the complete time (hours, minutes, and seconds) in UTC time zone, following the ISO 8601 date-time format. See the example for reference. Please note that this parameter can't be used with `window`.")] = None, + end_date: Annotated[Optional[datetime], Field(description="Defaults to current time the request is made. Use with the `startDate` parameter. Include the complete time (hours, minutes, and seconds) in UTC time zone, following the ISO 8601 date-time format. See the example for reference. Please note that this parameter can't be used with `window`.")] = 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 Cloud agents with local problems + + Returns local problem intervals for Cloud Agents available to your account in ThousandEyes. FedRAMP Cloud Agents are not included. Local problems indicate agent-side impairment detected by ThousandEyes and do not indicate that a monitored target or service was down. If no time range is specified, this operation returns active local problems. + + :param aid: A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error response. + :type aid: str + :param window: A dynamic time interval up to the current time of the request. Specify the interval as a number followed by an optional type: `s` for seconds (default if no type is specified), `m` for minutes, `h` for hours, `d` for days, and `w` for weeks. For a precise date range, use `startDate` and `endDate`. + :type window: str + :param start_date: Use with the `endDate` parameter. Include the complete time (hours, minutes, and seconds) in UTC time zone, following the ISO 8601 date-time format. See the example for reference. Please note that this parameter can't be used with `window`. + :type start_date: datetime + :param end_date: Defaults to current time the request is made. Use with the `startDate` parameter. Include the complete time (hours, minutes, and seconds) in UTC time zone, following the ISO 8601 date-time format. See the example for reference. Please note that this parameter can't be used with `window`. + :type end_date: datetime + :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_agents_local_problems_serialize( + aid=aid, + window=window, + start_date=start_date, + end_date=end_date, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "LocalProblemAgentResults", + '400': "ValidationError", + '401': "UnauthorizedError", + '403': "Error", + '404': "Error", + '429': "Error", + '500': "Error", + '502': "Error", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _get_agents_local_problems_serialize( + self, + aid, + window, + start_date, + end_date, + _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]] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + # process the query parameters + if aid is not None: + + _query_params.append(('aid', aid)) + + if window is not None: + + _query_params.append(('window', window)) + + if start_date is not None: + if isinstance(start_date, datetime): + _query_params.append( + ( + 'startDate', + start_date.strftime( + self.api_client.configuration.datetime_format + ) + ) + ) + else: + _query_params.append(('startDate', start_date)) + + if end_date is not None: + if isinstance(end_date, datetime): + _query_params.append( + ( + 'endDate', + end_date.strftime( + self.api_client.configuration.datetime_format + ) + ) + ) + else: + _query_params.append(('endDate', end_date)) + + # process the header parameters + # process the form parameters + # process the body parameter + + + # set the HTTP header `Accept` + _header_params['Accept'] = self.api_client.select_header_accept( + [ + 'application/hal+json', + 'application/json', + 'application/problem+json' + ] + ) + + + # authentication setting + _auth_settings: List[str] = [ + 'BearerAuth' + ] + + return self.api_client.param_serialize( + method='GET', + resource_path='/agents/local-problems', + 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/thousandeyes-sdk-agents/src/thousandeyes_sdk/agents/models/__init__.py b/thousandeyes-sdk-agents/src/thousandeyes_sdk/agents/models/__init__.py index 62389d14..17d97bdd 100644 --- a/thousandeyes-sdk-agents/src/thousandeyes_sdk/agents/models/__init__.py +++ b/thousandeyes-sdk-agents/src/thousandeyes_sdk/agents/models/__init__.py @@ -51,6 +51,11 @@ from thousandeyes_sdk.agents.models.error_detail_code import ErrorDetailCode from thousandeyes_sdk.agents.models.interface_ip_mapping import InterfaceIpMapping from thousandeyes_sdk.agents.models.link import Link from thousandeyes_sdk.agents.models.list_notification_rules_response import ListNotificationRulesResponse +from thousandeyes_sdk.agents.models.local_problem import LocalProblem +from thousandeyes_sdk.agents.models.local_problem_agent import LocalProblemAgent +from thousandeyes_sdk.agents.models.local_problem_agent_results import LocalProblemAgentResults +from thousandeyes_sdk.agents.models.network_provider_info import NetworkProviderInfo +from thousandeyes_sdk.agents.models.network_provider_type import NetworkProviderType from thousandeyes_sdk.agents.models.notification_rule import NotificationRule from thousandeyes_sdk.agents.models.notification_rule_detail import NotificationRuleDetail from thousandeyes_sdk.agents.models.notification_rules import NotificationRules @@ -58,6 +63,7 @@ from thousandeyes_sdk.agents.models.proxy_auth_type import ProxyAuthType from thousandeyes_sdk.agents.models.proxy_type import ProxyType from thousandeyes_sdk.agents.models.self_links import SelfLinks from thousandeyes_sdk.agents.models.simple_agent import SimpleAgent +from thousandeyes_sdk.agents.models.simple_agent_all_of_network_provider_info import SimpleAgentAllOfNetworkProviderInfo from thousandeyes_sdk.agents.models.simple_enterprise_agent import SimpleEnterpriseAgent from thousandeyes_sdk.agents.models.simple_test import SimpleTest from thousandeyes_sdk.agents.models.test_interval import TestInterval diff --git a/thousandeyes-sdk-agents/src/thousandeyes_sdk/agents/models/agent_response.py b/thousandeyes-sdk-agents/src/thousandeyes_sdk/agents/models/agent_response.py index 273b8439..5c4f4ec0 100644 --- a/thousandeyes-sdk-agents/src/thousandeyes_sdk/agents/models/agent_response.py +++ b/thousandeyes-sdk-agents/src/thousandeyes_sdk/agents/models/agent_response.py @@ -20,6 +20,7 @@ from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr from typing import Any, ClassVar, Dict, List, Optional from thousandeyes_sdk.agents.models.cloud_enterprise_agent_type import CloudEnterpriseAgentType from thousandeyes_sdk.agents.models.coordinates import Coordinates +from thousandeyes_sdk.agents.models.simple_agent_all_of_network_provider_info import SimpleAgentAllOfNetworkProviderInfo from typing import Optional, Set from typing_extensions import Self @@ -35,11 +36,12 @@ class AgentResponse(BaseModel): location: Optional[StrictStr] = Field(default=None, description="Location of the agent.") country_id: Optional[StrictStr] = Field(default=None, description="2-digit ISO country code", alias="countryId") coordinates: Optional[Coordinates] = None + network_provider_info: Optional[SimpleAgentAllOfNetworkProviderInfo] = Field(default=None, alias="networkProviderInfo") enabled: Optional[StrictBool] = Field(default=None, description="Flag indicating if the agent is enabled.") - prefix: Optional[StrictStr] = Field(default=None, description="Prefix containing agents public IP address.") verify_ssl_certificates: Optional[StrictBool] = Field(default=None, description="Flag indicating if has normal SSL operations or if instead it's set to ignore SSL errors on browserbot-based tests.", alias="verifySslCertificates") + prefix: Optional[StrictStr] = Field(default=None, description="Prefix containing agents public IP address.") agent_type: CloudEnterpriseAgentType = Field(alias="agentType") - __properties: ClassVar[List[str]] = ["ipAddresses", "publicIpAddresses", "network", "agentId", "agentName", "location", "countryId", "coordinates", "enabled", "prefix", "verifySslCertificates", "agentType"] + __properties: ClassVar[List[str]] = ["ipAddresses", "publicIpAddresses", "network", "agentId", "agentName", "location", "countryId", "coordinates", "networkProviderInfo", "enabled", "verifySslCertificates", "prefix", "agentType"] model_config = ConfigDict( populate_by_name=True, @@ -88,8 +90,8 @@ class AgentResponse(BaseModel): "agent_id", "location", "country_id", - "prefix", "verify_ssl_certificates", + "prefix", ]) _dict = self.model_dump( @@ -100,6 +102,9 @@ class AgentResponse(BaseModel): # override the default output from pydantic by calling `to_dict()` of coordinates if self.coordinates: _dict['coordinates'] = self.coordinates.to_dict() + # override the default output from pydantic by calling `to_dict()` of network_provider_info + if self.network_provider_info: + _dict['networkProviderInfo'] = self.network_provider_info.to_dict() return _dict @classmethod @@ -120,9 +125,10 @@ class AgentResponse(BaseModel): "location": obj.get("location"), "countryId": obj.get("countryId"), "coordinates": Coordinates.from_dict(obj["coordinates"]) if obj.get("coordinates") is not None else None, + "networkProviderInfo": SimpleAgentAllOfNetworkProviderInfo.from_dict(obj["networkProviderInfo"]) if obj.get("networkProviderInfo") is not None else None, "enabled": obj.get("enabled"), - "prefix": obj.get("prefix"), "verifySslCertificates": obj.get("verifySslCertificates"), + "prefix": obj.get("prefix"), "agentType": obj.get("agentType") }) return _obj diff --git a/thousandeyes-sdk-agents/src/thousandeyes_sdk/agents/models/cloud_agent_detail.py b/thousandeyes-sdk-agents/src/thousandeyes_sdk/agents/models/cloud_agent_detail.py index 82c43be4..e4bf79f0 100644 --- a/thousandeyes-sdk-agents/src/thousandeyes_sdk/agents/models/cloud_agent_detail.py +++ b/thousandeyes-sdk-agents/src/thousandeyes_sdk/agents/models/cloud_agent_detail.py @@ -23,6 +23,7 @@ from thousandeyes_sdk.agents.models.agent_label import AgentLabel from thousandeyes_sdk.agents.models.agent_tag import AgentTag from thousandeyes_sdk.agents.models.coordinates import Coordinates from thousandeyes_sdk.agents.models.self_links import SelfLinks +from thousandeyes_sdk.agents.models.simple_agent_all_of_network_provider_info import SimpleAgentAllOfNetworkProviderInfo from thousandeyes_sdk.agents.models.simple_test import SimpleTest from typing import Optional, Set from typing_extensions import Self @@ -39,15 +40,16 @@ class CloudAgentDetail(BaseModel): location: Optional[StrictStr] = Field(default=None, description="Location of the agent.") country_id: Optional[StrictStr] = Field(default=None, description="2-digit ISO country code", alias="countryId") coordinates: Optional[Coordinates] = None + network_provider_info: Optional[SimpleAgentAllOfNetworkProviderInfo] = Field(default=None, alias="networkProviderInfo") enabled: Optional[StrictBool] = Field(default=None, description="Flag indicating if the agent is enabled.") - prefix: Optional[StrictStr] = Field(default=None, description="Prefix containing agents public IP address.") verify_ssl_certificates: Optional[StrictBool] = Field(default=None, description="Flag indicating if has normal SSL operations or if instead it's set to ignore SSL errors on browserbot-based tests.", alias="verifySslCertificates") + prefix: Optional[StrictStr] = Field(default=None, description="Prefix containing agents public IP address.") agent_type: Annotated[str, Field(strict=True)] = Field(description="Cloud agent type.", alias="agentType") tests: Optional[List[SimpleTest]] = Field(default=None, description="List of tests. See `/tests` for more information.") labels: Optional[List[AgentLabel]] = Field(default=None, description="List of labels - see `/labels` for more information.") tags: Optional[List[AgentTag]] = Field(default=None, description="List of tags. See `/tags` for more information.") links: Optional[SelfLinks] = Field(default=None, alias="_links") - __properties: ClassVar[List[str]] = ["ipAddresses", "publicIpAddresses", "network", "agentId", "agentName", "location", "countryId", "coordinates", "enabled", "prefix", "verifySslCertificates", "agentType", "tests", "labels", "tags", "_links"] + __properties: ClassVar[List[str]] = ["ipAddresses", "publicIpAddresses", "network", "agentId", "agentName", "location", "countryId", "coordinates", "networkProviderInfo", "enabled", "verifySslCertificates", "prefix", "agentType", "tests", "labels", "tags", "_links"] @field_validator('agent_type') def agent_type_validate_regular_expression(cls, value): @@ -105,8 +107,8 @@ class CloudAgentDetail(BaseModel): "agent_id", "location", "country_id", - "prefix", "verify_ssl_certificates", + "prefix", "labels", "tags", ]) @@ -119,6 +121,9 @@ class CloudAgentDetail(BaseModel): # override the default output from pydantic by calling `to_dict()` of coordinates if self.coordinates: _dict['coordinates'] = self.coordinates.to_dict() + # override the default output from pydantic by calling `to_dict()` of network_provider_info + if self.network_provider_info: + _dict['networkProviderInfo'] = self.network_provider_info.to_dict() # override the default output from pydantic by calling `to_dict()` of each item in tests (list) _items = [] if self.tests: @@ -163,9 +168,10 @@ class CloudAgentDetail(BaseModel): "location": obj.get("location"), "countryId": obj.get("countryId"), "coordinates": Coordinates.from_dict(obj["coordinates"]) if obj.get("coordinates") is not None else None, + "networkProviderInfo": SimpleAgentAllOfNetworkProviderInfo.from_dict(obj["networkProviderInfo"]) if obj.get("networkProviderInfo") is not None else None, "enabled": obj.get("enabled"), - "prefix": obj.get("prefix"), "verifySslCertificates": obj.get("verifySslCertificates"), + "prefix": obj.get("prefix"), "agentType": obj.get("agentType"), "tests": [SimpleTest.from_dict(_item) for _item in obj["tests"]] if obj.get("tests") is not None else None, "labels": [AgentLabel.from_dict(_item) for _item in obj["labels"]] if obj.get("labels") is not None else None, diff --git a/thousandeyes-sdk-agents/src/thousandeyes_sdk/agents/models/cluster_member.py b/thousandeyes-sdk-agents/src/thousandeyes_sdk/agents/models/cluster_member.py index 825de99d..28a8c17a 100644 --- a/thousandeyes-sdk-agents/src/thousandeyes_sdk/agents/models/cluster_member.py +++ b/thousandeyes-sdk-agents/src/thousandeyes_sdk/agents/models/cluster_member.py @@ -37,8 +37,9 @@ class ClusterMember(BaseModel): last_seen: Optional[datetime] = Field(default=None, description="UTC last seen date (ISO date-time format).", alias="lastSeen") agent_state: Optional[EnterpriseAgentState] = Field(default=None, alias="agentState") target_for_tests: Optional[StrictStr] = Field(default=None, description="Test target IP address.", alias="targetForTests") + serial_number: Optional[StrictStr] = Field(default=None, description="Serial number of an enterprise agent or cluster member device. This field is not available for Cloud Agents.", alias="serialNumber") utilization: Optional[StrictInt] = Field(default=None, description="Shows overall utilization percentage (online Enterprise Agents and Enterprise Clusters only).") - __properties: ClassVar[List[str]] = ["ipAddresses", "publicIpAddresses", "network", "memberId", "name", "errorDetails", "lastSeen", "agentState", "targetForTests", "utilization"] + __properties: ClassVar[List[str]] = ["ipAddresses", "publicIpAddresses", "network", "memberId", "name", "errorDetails", "lastSeen", "agentState", "targetForTests", "serialNumber", "utilization"] model_config = ConfigDict( populate_by_name=True, @@ -79,6 +80,7 @@ class ClusterMember(BaseModel): * 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([ "ip_addresses", @@ -88,6 +90,7 @@ class ClusterMember(BaseModel): "name", "error_details", "last_seen", + "serial_number", "utilization", ]) @@ -124,6 +127,7 @@ class ClusterMember(BaseModel): "lastSeen": obj.get("lastSeen"), "agentState": obj.get("agentState"), "targetForTests": obj.get("targetForTests"), + "serialNumber": obj.get("serialNumber"), "utilization": obj.get("utilization") }) return _obj diff --git a/thousandeyes-sdk-agents/src/thousandeyes_sdk/agents/models/enterprise_agent.py b/thousandeyes-sdk-agents/src/thousandeyes_sdk/agents/models/enterprise_agent.py index 0856269b..928eacaa 100644 --- a/thousandeyes-sdk-agents/src/thousandeyes_sdk/agents/models/enterprise_agent.py +++ b/thousandeyes-sdk-agents/src/thousandeyes_sdk/agents/models/enterprise_agent.py @@ -27,6 +27,7 @@ from thousandeyes_sdk.agents.models.enterprise_agent_ipv6_policy import Enterpri from thousandeyes_sdk.agents.models.enterprise_agent_state import EnterpriseAgentState from thousandeyes_sdk.agents.models.error_detail import ErrorDetail from thousandeyes_sdk.agents.models.interface_ip_mapping import InterfaceIpMapping +from thousandeyes_sdk.agents.models.simple_agent_all_of_network_provider_info import SimpleAgentAllOfNetworkProviderInfo from thousandeyes_sdk.agents.models.simple_test import SimpleTest from typing import Optional, Set from typing_extensions import Self @@ -44,9 +45,10 @@ class EnterpriseAgent(BaseModel): location: Optional[StrictStr] = Field(default=None, description="Location of the agent.") country_id: Optional[StrictStr] = Field(default=None, description="2-digit ISO country code", alias="countryId") coordinates: Optional[Coordinates] = None + network_provider_info: Optional[SimpleAgentAllOfNetworkProviderInfo] = Field(default=None, alias="networkProviderInfo") enabled: Optional[StrictBool] = Field(default=None, description="Flag indicating if the agent is enabled.") - prefix: Optional[StrictStr] = Field(default=None, description="Prefix containing agents public IP address.") verify_ssl_certificates: Optional[StrictBool] = Field(default=None, description="Flag indicating if has normal SSL operations or if instead it's set to ignore SSL errors on browserbot-based tests.", alias="verifySslCertificates") + prefix: Optional[StrictStr] = Field(default=None, description="Prefix containing agents public IP address.") test_ids: Optional[List[StrictInt]] = Field(default=None, description="List of test IDs assigned to the agent.", alias="testIds") tests: Optional[List[SimpleTest]] = Field(default=None, description="List of tests. See `/tests` for more information.") cluster_members: Optional[List[ClusterMember]] = Field(default=None, description="If an enterprise agent is clustered, detailed information about each cluster member will be shown as array entries in the clusterMembers field. This field is not shown for Enterprise Agents in standalone mode, or for Cloud Agents.", alias="clusterMembers") @@ -60,9 +62,10 @@ class EnterpriseAgent(BaseModel): keep_browser_cache: Optional[StrictBool] = Field(default=None, description="Flag indicating if the agent retains cache.", alias="keepBrowserCache") created_date: Optional[datetime] = Field(default=None, description="UTC Agent creation date (ISO date-time format).", alias="createdDate") target_for_tests: Optional[StrictStr] = Field(default=None, description="Test target IP address.", alias="targetForTests") + serial_number: Optional[StrictStr] = Field(default=None, description="Serial number of an enterprise agent or cluster member device. This field is not available for Cloud Agents.", alias="serialNumber") local_resolution_prefixes: Optional[List[StrictStr]] = Field(default=None, description="To perform rDNS lookups for public IP ranges, this field represents the public IP ranges. The range must be in CIDR notation; for example, 10.1.1.0/24. Maximum of 5 prefixes allowed (Enterprise Agents and Enterprise Agent clusters only).", alias="localResolutionPrefixes") interface_ip_mapping: Optional[List[InterfaceIpMapping]] = Field(default=None, alias="interfaceIpMapping") - __properties: ClassVar[List[str]] = ["agentType", "ipAddresses", "publicIpAddresses", "network", "agentId", "agentName", "location", "countryId", "coordinates", "enabled", "prefix", "verifySslCertificates", "testIds", "tests", "clusterMembers", "utilization", "accountGroups", "ipv6Policy", "errorDetails", "hostname", "lastSeen", "agentState", "keepBrowserCache", "createdDate", "targetForTests", "localResolutionPrefixes", "interfaceIpMapping"] + __properties: ClassVar[List[str]] = ["agentType", "ipAddresses", "publicIpAddresses", "network", "agentId", "agentName", "location", "countryId", "coordinates", "networkProviderInfo", "enabled", "verifySslCertificates", "prefix", "testIds", "tests", "clusterMembers", "utilization", "accountGroups", "ipv6Policy", "errorDetails", "hostname", "lastSeen", "agentState", "keepBrowserCache", "createdDate", "targetForTests", "serialNumber", "localResolutionPrefixes", "interfaceIpMapping"] model_config = ConfigDict( populate_by_name=True, @@ -111,6 +114,7 @@ class EnterpriseAgent(BaseModel): * 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([ "ip_addresses", @@ -119,8 +123,8 @@ class EnterpriseAgent(BaseModel): "agent_id", "location", "country_id", - "prefix", "verify_ssl_certificates", + "prefix", "test_ids", "cluster_members", "utilization", @@ -128,6 +132,7 @@ class EnterpriseAgent(BaseModel): "hostname", "last_seen", "created_date", + "serial_number", "interface_ip_mapping", ]) @@ -139,6 +144,9 @@ class EnterpriseAgent(BaseModel): # override the default output from pydantic by calling `to_dict()` of coordinates if self.coordinates: _dict['coordinates'] = self.coordinates.to_dict() + # override the default output from pydantic by calling `to_dict()` of network_provider_info + if self.network_provider_info: + _dict['networkProviderInfo'] = self.network_provider_info.to_dict() # override the default output from pydantic by calling `to_dict()` of each item in tests (list) _items = [] if self.tests: @@ -195,9 +203,10 @@ class EnterpriseAgent(BaseModel): "location": obj.get("location"), "countryId": obj.get("countryId"), "coordinates": Coordinates.from_dict(obj["coordinates"]) if obj.get("coordinates") is not None else None, + "networkProviderInfo": SimpleAgentAllOfNetworkProviderInfo.from_dict(obj["networkProviderInfo"]) if obj.get("networkProviderInfo") is not None else None, "enabled": obj.get("enabled"), - "prefix": obj.get("prefix"), "verifySslCertificates": obj.get("verifySslCertificates"), + "prefix": obj.get("prefix"), "testIds": obj.get("testIds"), "tests": [SimpleTest.from_dict(_item) for _item in obj["tests"]] if obj.get("tests") is not None else None, "clusterMembers": [ClusterMember.from_dict(_item) for _item in obj["clusterMembers"]] if obj.get("clusterMembers") is not None else None, @@ -211,6 +220,7 @@ class EnterpriseAgent(BaseModel): "keepBrowserCache": obj.get("keepBrowserCache"), "createdDate": obj.get("createdDate"), "targetForTests": obj.get("targetForTests"), + "serialNumber": obj.get("serialNumber"), "localResolutionPrefixes": obj.get("localResolutionPrefixes"), "interfaceIpMapping": [InterfaceIpMapping.from_dict(_item) for _item in obj["interfaceIpMapping"]] if obj.get("interfaceIpMapping") is not None else None }) diff --git a/thousandeyes-sdk-agents/src/thousandeyes_sdk/agents/models/enterprise_agent_cluster_detail.py b/thousandeyes-sdk-agents/src/thousandeyes_sdk/agents/models/enterprise_agent_cluster_detail.py index 5892e3f8..d1c84e7e 100644 --- a/thousandeyes-sdk-agents/src/thousandeyes_sdk/agents/models/enterprise_agent_cluster_detail.py +++ b/thousandeyes-sdk-agents/src/thousandeyes_sdk/agents/models/enterprise_agent_cluster_detail.py @@ -31,6 +31,7 @@ from thousandeyes_sdk.agents.models.error_detail import ErrorDetail from thousandeyes_sdk.agents.models.interface_ip_mapping import InterfaceIpMapping from thousandeyes_sdk.agents.models.notification_rules import NotificationRules from thousandeyes_sdk.agents.models.self_links import SelfLinks +from thousandeyes_sdk.agents.models.simple_agent_all_of_network_provider_info import SimpleAgentAllOfNetworkProviderInfo from thousandeyes_sdk.agents.models.simple_test import SimpleTest from typing import Optional, Set from typing_extensions import Self @@ -47,9 +48,10 @@ class EnterpriseAgentClusterDetail(BaseModel): location: Optional[StrictStr] = Field(default=None, description="Location of the agent.") country_id: Optional[StrictStr] = Field(default=None, description="2-digit ISO country code", alias="countryId") coordinates: Optional[Coordinates] = None + network_provider_info: Optional[SimpleAgentAllOfNetworkProviderInfo] = Field(default=None, alias="networkProviderInfo") enabled: Optional[StrictBool] = Field(default=None, description="Flag indicating if the agent is enabled.") - prefix: Optional[StrictStr] = Field(default=None, description="Prefix containing agents public IP address.") verify_ssl_certificates: Optional[StrictBool] = Field(default=None, description="Flag indicating if has normal SSL operations or if instead it's set to ignore SSL errors on browserbot-based tests.", alias="verifySslCertificates") + prefix: Optional[StrictStr] = Field(default=None, description="Prefix containing agents public IP address.") test_ids: Optional[List[StrictInt]] = Field(default=None, description="List of test IDs assigned to the agent.", alias="testIds") tests: Optional[List[SimpleTest]] = Field(default=None, description="List of tests. See `/tests` for more information.") cluster_members: Optional[List[ClusterMember]] = Field(default=None, description="If an enterprise agent is clustered, detailed information about each cluster member will be shown as array entries in the clusterMembers field. This field is not shown for Enterprise Agents in standalone mode, or for Cloud Agents.", alias="clusterMembers") @@ -63,6 +65,7 @@ class EnterpriseAgentClusterDetail(BaseModel): keep_browser_cache: Optional[StrictBool] = Field(default=None, description="Flag indicating if the agent retains cache.", alias="keepBrowserCache") created_date: Optional[datetime] = Field(default=None, description="UTC Agent creation date (ISO date-time format).", alias="createdDate") target_for_tests: Optional[StrictStr] = Field(default=None, description="Test target IP address.", alias="targetForTests") + serial_number: Optional[StrictStr] = Field(default=None, description="Serial number of an enterprise agent or cluster member device. This field is not available for Cloud Agents.", alias="serialNumber") local_resolution_prefixes: Optional[List[StrictStr]] = Field(default=None, description="To perform rDNS lookups for public IP ranges, this field represents the public IP ranges. The range must be in CIDR notation; for example, 10.1.1.0/24. Maximum of 5 prefixes allowed (Enterprise Agents and Enterprise Agent clusters only).", alias="localResolutionPrefixes") interface_ip_mapping: Optional[List[InterfaceIpMapping]] = Field(default=None, alias="interfaceIpMapping") notification_rules: Optional[List[NotificationRules]] = Field(default=None, description="List of notification rule objects configured on agent", alias="notificationRules") @@ -70,7 +73,7 @@ class EnterpriseAgentClusterDetail(BaseModel): tags: Optional[List[AgentTag]] = Field(default=None, description="List of tags. See `/tags` for more information.") agent_type: Annotated[str, Field(strict=True)] = Field(description="Enterprise Cluster agent type.", alias="agentType") links: Optional[SelfLinks] = Field(default=None, alias="_links") - __properties: ClassVar[List[str]] = ["ipAddresses", "publicIpAddresses", "network", "agentId", "agentName", "location", "countryId", "coordinates", "enabled", "prefix", "verifySslCertificates", "testIds", "tests", "clusterMembers", "utilization", "accountGroups", "ipv6Policy", "errorDetails", "hostname", "lastSeen", "agentState", "keepBrowserCache", "createdDate", "targetForTests", "localResolutionPrefixes", "interfaceIpMapping", "notificationRules", "labels", "tags", "agentType", "_links"] + __properties: ClassVar[List[str]] = ["ipAddresses", "publicIpAddresses", "network", "agentId", "agentName", "location", "countryId", "coordinates", "networkProviderInfo", "enabled", "verifySslCertificates", "prefix", "testIds", "tests", "clusterMembers", "utilization", "accountGroups", "ipv6Policy", "errorDetails", "hostname", "lastSeen", "agentState", "keepBrowserCache", "createdDate", "targetForTests", "serialNumber", "localResolutionPrefixes", "interfaceIpMapping", "notificationRules", "labels", "tags", "agentType", "_links"] @field_validator('agent_type') def agent_type_validate_regular_expression(cls, value): @@ -128,6 +131,7 @@ class EnterpriseAgentClusterDetail(BaseModel): * 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([ "ip_addresses", @@ -136,8 +140,8 @@ class EnterpriseAgentClusterDetail(BaseModel): "agent_id", "location", "country_id", - "prefix", "verify_ssl_certificates", + "prefix", "test_ids", "cluster_members", "utilization", @@ -145,6 +149,7 @@ class EnterpriseAgentClusterDetail(BaseModel): "hostname", "last_seen", "created_date", + "serial_number", "interface_ip_mapping", "labels", "tags", @@ -158,6 +163,9 @@ class EnterpriseAgentClusterDetail(BaseModel): # override the default output from pydantic by calling `to_dict()` of coordinates if self.coordinates: _dict['coordinates'] = self.coordinates.to_dict() + # override the default output from pydantic by calling `to_dict()` of network_provider_info + if self.network_provider_info: + _dict['networkProviderInfo'] = self.network_provider_info.to_dict() # override the default output from pydantic by calling `to_dict()` of each item in tests (list) _items = [] if self.tests: @@ -237,9 +245,10 @@ class EnterpriseAgentClusterDetail(BaseModel): "location": obj.get("location"), "countryId": obj.get("countryId"), "coordinates": Coordinates.from_dict(obj["coordinates"]) if obj.get("coordinates") is not None else None, + "networkProviderInfo": SimpleAgentAllOfNetworkProviderInfo.from_dict(obj["networkProviderInfo"]) if obj.get("networkProviderInfo") is not None else None, "enabled": obj.get("enabled"), - "prefix": obj.get("prefix"), "verifySslCertificates": obj.get("verifySslCertificates"), + "prefix": obj.get("prefix"), "testIds": obj.get("testIds"), "tests": [SimpleTest.from_dict(_item) for _item in obj["tests"]] if obj.get("tests") is not None else None, "clusterMembers": [ClusterMember.from_dict(_item) for _item in obj["clusterMembers"]] if obj.get("clusterMembers") is not None else None, @@ -253,6 +262,7 @@ class EnterpriseAgentClusterDetail(BaseModel): "keepBrowserCache": obj.get("keepBrowserCache"), "createdDate": obj.get("createdDate"), "targetForTests": obj.get("targetForTests"), + "serialNumber": obj.get("serialNumber"), "localResolutionPrefixes": obj.get("localResolutionPrefixes"), "interfaceIpMapping": [InterfaceIpMapping.from_dict(_item) for _item in obj["interfaceIpMapping"]] if obj.get("interfaceIpMapping") is not None else None, "notificationRules": [NotificationRules.from_dict(_item) for _item in obj["notificationRules"]] if obj.get("notificationRules") is not None else None, diff --git a/thousandeyes-sdk-agents/src/thousandeyes_sdk/agents/models/enterprise_agent_data.py b/thousandeyes-sdk-agents/src/thousandeyes_sdk/agents/models/enterprise_agent_data.py index 8adde47f..607842a1 100644 --- a/thousandeyes-sdk-agents/src/thousandeyes_sdk/agents/models/enterprise_agent_data.py +++ b/thousandeyes-sdk-agents/src/thousandeyes_sdk/agents/models/enterprise_agent_data.py @@ -46,9 +46,10 @@ class EnterpriseAgentData(BaseModel): keep_browser_cache: Optional[StrictBool] = Field(default=None, description="Flag indicating if the agent retains cache.", alias="keepBrowserCache") created_date: Optional[datetime] = Field(default=None, description="UTC Agent creation date (ISO date-time format).", alias="createdDate") target_for_tests: Optional[StrictStr] = Field(default=None, description="Test target IP address.", alias="targetForTests") + serial_number: Optional[StrictStr] = Field(default=None, description="Serial number of an enterprise agent or cluster member device. This field is not available for Cloud Agents.", alias="serialNumber") local_resolution_prefixes: Optional[List[StrictStr]] = Field(default=None, description="To perform rDNS lookups for public IP ranges, this field represents the public IP ranges. The range must be in CIDR notation; for example, 10.1.1.0/24. Maximum of 5 prefixes allowed (Enterprise Agents and Enterprise Agent clusters only).", alias="localResolutionPrefixes") interface_ip_mapping: Optional[List[InterfaceIpMapping]] = Field(default=None, alias="interfaceIpMapping") - __properties: ClassVar[List[str]] = ["testIds", "tests", "clusterMembers", "utilization", "accountGroups", "ipv6Policy", "errorDetails", "hostname", "lastSeen", "agentState", "keepBrowserCache", "createdDate", "targetForTests", "localResolutionPrefixes", "interfaceIpMapping"] + __properties: ClassVar[List[str]] = ["testIds", "tests", "clusterMembers", "utilization", "accountGroups", "ipv6Policy", "errorDetails", "hostname", "lastSeen", "agentState", "keepBrowserCache", "createdDate", "targetForTests", "serialNumber", "localResolutionPrefixes", "interfaceIpMapping"] model_config = ConfigDict( populate_by_name=True, @@ -89,6 +90,7 @@ class EnterpriseAgentData(BaseModel): * 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([ "test_ids", @@ -98,6 +100,7 @@ class EnterpriseAgentData(BaseModel): "hostname", "last_seen", "created_date", + "serial_number", "interface_ip_mapping", ]) @@ -166,6 +169,7 @@ class EnterpriseAgentData(BaseModel): "keepBrowserCache": obj.get("keepBrowserCache"), "createdDate": obj.get("createdDate"), "targetForTests": obj.get("targetForTests"), + "serialNumber": obj.get("serialNumber"), "localResolutionPrefixes": obj.get("localResolutionPrefixes"), "interfaceIpMapping": [InterfaceIpMapping.from_dict(_item) for _item in obj["interfaceIpMapping"]] if obj.get("interfaceIpMapping") is not None else None }) diff --git a/thousandeyes-sdk-agents/src/thousandeyes_sdk/agents/models/enterprise_agent_detail.py b/thousandeyes-sdk-agents/src/thousandeyes_sdk/agents/models/enterprise_agent_detail.py index d6794cdb..c256ae9f 100644 --- a/thousandeyes-sdk-agents/src/thousandeyes_sdk/agents/models/enterprise_agent_detail.py +++ b/thousandeyes-sdk-agents/src/thousandeyes_sdk/agents/models/enterprise_agent_detail.py @@ -31,6 +31,7 @@ from thousandeyes_sdk.agents.models.error_detail import ErrorDetail from thousandeyes_sdk.agents.models.interface_ip_mapping import InterfaceIpMapping from thousandeyes_sdk.agents.models.notification_rules import NotificationRules from thousandeyes_sdk.agents.models.self_links import SelfLinks +from thousandeyes_sdk.agents.models.simple_agent_all_of_network_provider_info import SimpleAgentAllOfNetworkProviderInfo from thousandeyes_sdk.agents.models.simple_test import SimpleTest from typing import Optional, Set from typing_extensions import Self @@ -47,9 +48,10 @@ class EnterpriseAgentDetail(BaseModel): location: Optional[StrictStr] = Field(default=None, description="Location of the agent.") country_id: Optional[StrictStr] = Field(default=None, description="2-digit ISO country code", alias="countryId") coordinates: Optional[Coordinates] = None + network_provider_info: Optional[SimpleAgentAllOfNetworkProviderInfo] = Field(default=None, alias="networkProviderInfo") enabled: Optional[StrictBool] = Field(default=None, description="Flag indicating if the agent is enabled.") - prefix: Optional[StrictStr] = Field(default=None, description="Prefix containing agents public IP address.") verify_ssl_certificates: Optional[StrictBool] = Field(default=None, description="Flag indicating if has normal SSL operations or if instead it's set to ignore SSL errors on browserbot-based tests.", alias="verifySslCertificates") + prefix: Optional[StrictStr] = Field(default=None, description="Prefix containing agents public IP address.") test_ids: Optional[List[StrictInt]] = Field(default=None, description="List of test IDs assigned to the agent.", alias="testIds") tests: Optional[List[SimpleTest]] = Field(default=None, description="List of tests. See `/tests` for more information.") cluster_members: Optional[List[ClusterMember]] = Field(default=None, description="If an enterprise agent is clustered, detailed information about each cluster member will be shown as array entries in the clusterMembers field. This field is not shown for Enterprise Agents in standalone mode, or for Cloud Agents.", alias="clusterMembers") @@ -63,6 +65,7 @@ class EnterpriseAgentDetail(BaseModel): keep_browser_cache: Optional[StrictBool] = Field(default=None, description="Flag indicating if the agent retains cache.", alias="keepBrowserCache") created_date: Optional[datetime] = Field(default=None, description="UTC Agent creation date (ISO date-time format).", alias="createdDate") target_for_tests: Optional[StrictStr] = Field(default=None, description="Test target IP address.", alias="targetForTests") + serial_number: Optional[StrictStr] = Field(default=None, description="Serial number of an enterprise agent or cluster member device. This field is not available for Cloud Agents.", alias="serialNumber") local_resolution_prefixes: Optional[List[StrictStr]] = Field(default=None, description="To perform rDNS lookups for public IP ranges, this field represents the public IP ranges. The range must be in CIDR notation; for example, 10.1.1.0/24. Maximum of 5 prefixes allowed (Enterprise Agents and Enterprise Agent clusters only).", alias="localResolutionPrefixes") interface_ip_mapping: Optional[List[InterfaceIpMapping]] = Field(default=None, alias="interfaceIpMapping") notification_rules: Optional[List[NotificationRules]] = Field(default=None, description="List of notification rule objects configured on agent", alias="notificationRules") @@ -70,7 +73,7 @@ class EnterpriseAgentDetail(BaseModel): tags: Optional[List[AgentTag]] = Field(default=None, description="List of tags. See `/tags` for more information.") agent_type: Annotated[str, Field(strict=True)] = Field(description="Enterprise agent type.", alias="agentType") links: Optional[SelfLinks] = Field(default=None, alias="_links") - __properties: ClassVar[List[str]] = ["ipAddresses", "publicIpAddresses", "network", "agentId", "agentName", "location", "countryId", "coordinates", "enabled", "prefix", "verifySslCertificates", "testIds", "tests", "clusterMembers", "utilization", "accountGroups", "ipv6Policy", "errorDetails", "hostname", "lastSeen", "agentState", "keepBrowserCache", "createdDate", "targetForTests", "localResolutionPrefixes", "interfaceIpMapping", "notificationRules", "labels", "tags", "agentType", "_links"] + __properties: ClassVar[List[str]] = ["ipAddresses", "publicIpAddresses", "network", "agentId", "agentName", "location", "countryId", "coordinates", "networkProviderInfo", "enabled", "verifySslCertificates", "prefix", "testIds", "tests", "clusterMembers", "utilization", "accountGroups", "ipv6Policy", "errorDetails", "hostname", "lastSeen", "agentState", "keepBrowserCache", "createdDate", "targetForTests", "serialNumber", "localResolutionPrefixes", "interfaceIpMapping", "notificationRules", "labels", "tags", "agentType", "_links"] @field_validator('agent_type') def agent_type_validate_regular_expression(cls, value): @@ -128,6 +131,7 @@ class EnterpriseAgentDetail(BaseModel): * 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([ "ip_addresses", @@ -136,8 +140,8 @@ class EnterpriseAgentDetail(BaseModel): "agent_id", "location", "country_id", - "prefix", "verify_ssl_certificates", + "prefix", "test_ids", "cluster_members", "utilization", @@ -145,6 +149,7 @@ class EnterpriseAgentDetail(BaseModel): "hostname", "last_seen", "created_date", + "serial_number", "interface_ip_mapping", "labels", "tags", @@ -158,6 +163,9 @@ class EnterpriseAgentDetail(BaseModel): # override the default output from pydantic by calling `to_dict()` of coordinates if self.coordinates: _dict['coordinates'] = self.coordinates.to_dict() + # override the default output from pydantic by calling `to_dict()` of network_provider_info + if self.network_provider_info: + _dict['networkProviderInfo'] = self.network_provider_info.to_dict() # override the default output from pydantic by calling `to_dict()` of each item in tests (list) _items = [] if self.tests: @@ -237,9 +245,10 @@ class EnterpriseAgentDetail(BaseModel): "location": obj.get("location"), "countryId": obj.get("countryId"), "coordinates": Coordinates.from_dict(obj["coordinates"]) if obj.get("coordinates") is not None else None, + "networkProviderInfo": SimpleAgentAllOfNetworkProviderInfo.from_dict(obj["networkProviderInfo"]) if obj.get("networkProviderInfo") is not None else None, "enabled": obj.get("enabled"), - "prefix": obj.get("prefix"), "verifySslCertificates": obj.get("verifySslCertificates"), + "prefix": obj.get("prefix"), "testIds": obj.get("testIds"), "tests": [SimpleTest.from_dict(_item) for _item in obj["tests"]] if obj.get("tests") is not None else None, "clusterMembers": [ClusterMember.from_dict(_item) for _item in obj["clusterMembers"]] if obj.get("clusterMembers") is not None else None, @@ -253,6 +262,7 @@ class EnterpriseAgentDetail(BaseModel): "keepBrowserCache": obj.get("keepBrowserCache"), "createdDate": obj.get("createdDate"), "targetForTests": obj.get("targetForTests"), + "serialNumber": obj.get("serialNumber"), "localResolutionPrefixes": obj.get("localResolutionPrefixes"), "interfaceIpMapping": [InterfaceIpMapping.from_dict(_item) for _item in obj["interfaceIpMapping"]] if obj.get("interfaceIpMapping") is not None else None, "notificationRules": [NotificationRules.from_dict(_item) for _item in obj["notificationRules"]] if obj.get("notificationRules") is not None else None, diff --git a/thousandeyes-sdk-agents/src/thousandeyes_sdk/agents/models/local_problem.py b/thousandeyes-sdk-agents/src/thousandeyes_sdk/agents/models/local_problem.py new file mode 100644 index 00000000..a9ded645 --- /dev/null +++ b/thousandeyes-sdk-agents/src/thousandeyes_sdk/agents/models/local_problem.py @@ -0,0 +1,113 @@ +# coding: utf-8 + +""" + Agents API + + ## Overview Manage Cloud and Enterprise Agents available to your account in ThousandEyes. + + 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, StrictInt +from typing import Any, ClassVar, Dict, List, Optional +from thousandeyes_sdk.agents.models.local_problem_agent import LocalProblemAgent +from typing import Optional, Set +from typing_extensions import Self + +class LocalProblem(BaseModel): + """ + LocalProblem + """ # noqa: E501 + agent: LocalProblemAgent + start_date: datetime = Field(description="Date and time when the local problem interval started, in UTC.", alias="startDate") + end_date: Optional[datetime] = Field(default=None, description="Date and time when the local problem interval ended, in UTC. This value is `null` when the local problem is active.", alias="endDate") + duration: StrictInt = Field(description="Duration of the local problem interval in seconds.") + active: StrictBool = Field(description="Indicates whether the local problem is active.") + __properties: ClassVar[List[str]] = ["agent", "startDate", "endDate", "duration", "active"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + extra="allow", + ) + + + 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 self.model_dump_json(by_alias=True, exclude_unset=True, exclude_none=True) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of LocalProblem 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. + * 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([ + "start_date", + "end_date", + "duration", + "active", + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + # override the default output from pydantic by calling `to_dict()` of agent + if self.agent: + _dict['agent'] = self.agent.to_dict() + # set to None if end_date (nullable) is None + # and model_fields_set contains the field + if self.end_date is None and "end_date" in self.model_fields_set: + _dict['endDate'] = None + + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of LocalProblem from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "agent": LocalProblemAgent.from_dict(obj["agent"]) if obj.get("agent") is not None else None, + "startDate": obj.get("startDate"), + "endDate": obj.get("endDate"), + "duration": obj.get("duration"), + "active": obj.get("active") + }) + return _obj + + diff --git a/thousandeyes-sdk-agents/src/thousandeyes_sdk/agents/models/local_problem_agent.py b/thousandeyes-sdk-agents/src/thousandeyes_sdk/agents/models/local_problem_agent.py new file mode 100644 index 00000000..489fc5c3 --- /dev/null +++ b/thousandeyes-sdk-agents/src/thousandeyes_sdk/agents/models/local_problem_agent.py @@ -0,0 +1,106 @@ +# coding: utf-8 + +""" + Agents API + + ## Overview Manage Cloud and Enterprise Agents available to your account in ThousandEyes. + + 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 LocalProblemAgent(BaseModel): + """ + LocalProblemAgent + """ # noqa: E501 + agent_id: Optional[StrictStr] = Field(default=None, description="Agent ID.", alias="agentId") + agent_name: Optional[StrictStr] = Field(default=None, description="Agent name.", alias="agentName") + country_id: Optional[StrictStr] = Field(default=None, description="Two-letter ISO country code where the agent is located.", alias="countryId") + location: Optional[StrictStr] = Field(default=None, description="Agent location.") + __properties: ClassVar[List[str]] = ["agentId", "agentName", "countryId", "location"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + extra="allow", + ) + + + 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 self.model_dump_json(by_alias=True, exclude_unset=True, exclude_none=True) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of LocalProblemAgent 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. + * 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([ + "agent_id", + "agent_name", + "country_id", + "location", + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + # set to None if location (nullable) is None + # and model_fields_set contains the field + if self.location is None and "location" in self.model_fields_set: + _dict['location'] = None + + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of LocalProblemAgent 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"), + "agentName": obj.get("agentName"), + "countryId": obj.get("countryId"), + "location": obj.get("location") + }) + return _obj + + diff --git a/thousandeyes-sdk-agents/src/thousandeyes_sdk/agents/models/local_problem_agent_results.py b/thousandeyes-sdk-agents/src/thousandeyes_sdk/agents/models/local_problem_agent_results.py new file mode 100644 index 00000000..50e8e807 --- /dev/null +++ b/thousandeyes-sdk-agents/src/thousandeyes_sdk/agents/models/local_problem_agent_results.py @@ -0,0 +1,110 @@ +# coding: utf-8 + +""" + Agents API + + ## Overview Manage Cloud and Enterprise Agents available to your account in ThousandEyes. + + 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 +from typing import Any, ClassVar, Dict, List, Optional +from thousandeyes_sdk.agents.models.local_problem import LocalProblem +from thousandeyes_sdk.agents.models.self_links import SelfLinks +from typing import Optional, Set +from typing_extensions import Self + +class LocalProblemAgentResults(BaseModel): + """ + LocalProblemAgentResults + """ # noqa: E501 + local_problems: Optional[List[LocalProblem]] = Field(default=None, alias="localProblems") + start_date: Optional[datetime] = Field(default=None, description="(Optional) When passing `window` or `startDate` parameter, the client will also receive the `startDate` field indicating the UTC start date of the data's time range being retrieved (ISO date-time format).", alias="startDate") + end_date: Optional[datetime] = Field(default=None, description="(Optional) When passing `window` or `endDate` parameter, the client will also receive the `endDate` field indicating the UTC end date of the data's time range being retrieved (ISO date-time format).", alias="endDate") + links: Optional[SelfLinks] = Field(default=None, alias="_links") + __properties: ClassVar[List[str]] = ["localProblems", "startDate", "endDate", "_links"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + extra="allow", + ) + + + 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 self.model_dump_json(by_alias=True, exclude_unset=True, exclude_none=True) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of LocalProblemAgentResults 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. + * OpenAPI `readOnly` fields are excluded. + * OpenAPI `readOnly` fields are excluded. + """ + excluded_fields: Set[str] = set([ + "start_date", + "end_date", + ]) + + _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 local_problems (list) + _items = [] + if self.local_problems: + for _item in self.local_problems: + if _item: + _items.append(_item.to_dict()) + _dict['localProblems'] = _items + # override the default output from pydantic by calling `to_dict()` of links + if self.links: + _dict['_links'] = self.links.to_dict() + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of LocalProblemAgentResults from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "localProblems": [LocalProblem.from_dict(_item) for _item in obj["localProblems"]] if obj.get("localProblems") is not None else None, + "startDate": obj.get("startDate"), + "endDate": obj.get("endDate"), + "_links": SelfLinks.from_dict(obj["_links"]) if obj.get("_links") is not None else None + }) + return _obj + + diff --git a/thousandeyes-sdk-agents/src/thousandeyes_sdk/agents/models/network_provider_info.py b/thousandeyes-sdk-agents/src/thousandeyes_sdk/agents/models/network_provider_info.py new file mode 100644 index 00000000..8f178ebc --- /dev/null +++ b/thousandeyes-sdk-agents/src/thousandeyes_sdk/agents/models/network_provider_info.py @@ -0,0 +1,96 @@ +# coding: utf-8 + +""" + Agents API + + ## Overview Manage Cloud and Enterprise Agents available to your account in ThousandEyes. + + 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 thousandeyes_sdk.agents.models.network_provider_type import NetworkProviderType +from typing import Optional, Set +from typing_extensions import Self + +class NetworkProviderInfo(BaseModel): + """ + Information about the network provider that owns the agent's public IP prefix. + """ # noqa: E501 + asn: Optional[StrictInt] = Field(default=None, description="Autonomous System Number (ASN) announcing the agent's public IP prefix.") + name: Optional[StrictStr] = Field(default=None, description="Name of the network provider organization.") + type: Optional[NetworkProviderType] = None + __properties: ClassVar[List[str]] = ["asn", "name", "type"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + extra="allow", + ) + + + 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 self.model_dump_json(by_alias=True, exclude_unset=True, exclude_none=True) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of NetworkProviderInfo 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. + * OpenAPI `readOnly` fields are excluded. + * OpenAPI `readOnly` fields are excluded. + """ + excluded_fields: Set[str] = set([ + "asn", + "name", + ]) + + _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 NetworkProviderInfo from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "asn": obj.get("asn"), + "name": obj.get("name"), + "type": obj.get("type") + }) + return _obj + + diff --git a/thousandeyes-sdk-dashboards/src/thousandeyes_sdk/dashboards/models/api_agent_widget_show.py b/thousandeyes-sdk-agents/src/thousandeyes_sdk/agents/models/network_provider_type.py similarity index 58% rename from thousandeyes-sdk-dashboards/src/thousandeyes_sdk/dashboards/models/api_agent_widget_show.py rename to thousandeyes-sdk-agents/src/thousandeyes_sdk/agents/models/network_provider_type.py index 9100810b..6fabea01 100644 --- a/thousandeyes-sdk-dashboards/src/thousandeyes_sdk/dashboards/models/api_agent_widget_show.py +++ b/thousandeyes-sdk-agents/src/thousandeyes_sdk/agents/models/network_provider_type.py @@ -1,9 +1,9 @@ # coding: utf-8 """ - Dashboards API + Agents API - Manage ThousandEyes Dashboards. + ## Overview Manage Cloud and Enterprise Agents available to your account in ThousandEyes. Generated by OpenAPI Generator (https://openapi-generator.tech) @@ -17,21 +17,24 @@ from enum import Enum from typing_extensions import Self -class ApiAgentWidgetShow(str, Enum): +class NetworkProviderType(str, Enum): """ - Ownership of the agent. + Classification of the agent's network provider. """ """ allowed enum values """ - OWNED = 'owned' - ALL = 'all' UNKNOWN = 'unknown' + ISP = 'isp' + CDN = 'cdn' + STUB = 'stub' + CLOUD_MINUS_PROVIDER = 'cloud-provider' + CARRIER = 'carrier' @classmethod def from_json(cls, json_str: str) -> Self: - """Create an instance of ApiAgentWidgetShow from a JSON string""" + """Create an instance of NetworkProviderType from a JSON string""" return cls(json.loads(json_str)) @classmethod diff --git a/thousandeyes-sdk-agents/src/thousandeyes_sdk/agents/models/simple_agent.py b/thousandeyes-sdk-agents/src/thousandeyes_sdk/agents/models/simple_agent.py index 393f8069..b0e4cc28 100644 --- a/thousandeyes-sdk-agents/src/thousandeyes_sdk/agents/models/simple_agent.py +++ b/thousandeyes-sdk-agents/src/thousandeyes_sdk/agents/models/simple_agent.py @@ -19,6 +19,7 @@ import json from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr from typing import Any, ClassVar, Dict, List, Optional from thousandeyes_sdk.agents.models.coordinates import Coordinates +from thousandeyes_sdk.agents.models.simple_agent_all_of_network_provider_info import SimpleAgentAllOfNetworkProviderInfo from typing import Optional, Set from typing_extensions import Self @@ -34,10 +35,11 @@ class SimpleAgent(BaseModel): location: Optional[StrictStr] = Field(default=None, description="Location of the agent.") country_id: Optional[StrictStr] = Field(default=None, description="2-digit ISO country code", alias="countryId") coordinates: Optional[Coordinates] = None + network_provider_info: Optional[SimpleAgentAllOfNetworkProviderInfo] = Field(default=None, alias="networkProviderInfo") enabled: Optional[StrictBool] = Field(default=None, description="Flag indicating if the agent is enabled.") - prefix: Optional[StrictStr] = Field(default=None, description="Prefix containing agents public IP address.") verify_ssl_certificates: Optional[StrictBool] = Field(default=None, description="Flag indicating if has normal SSL operations or if instead it's set to ignore SSL errors on browserbot-based tests.", alias="verifySslCertificates") - __properties: ClassVar[List[str]] = ["ipAddresses", "publicIpAddresses", "network", "agentId", "agentName", "location", "countryId", "coordinates", "enabled", "prefix", "verifySslCertificates"] + prefix: Optional[StrictStr] = Field(default=None, description="Prefix containing agents public IP address.") + __properties: ClassVar[List[str]] = ["ipAddresses", "publicIpAddresses", "network", "agentId", "agentName", "location", "countryId", "coordinates", "networkProviderInfo", "enabled", "verifySslCertificates", "prefix"] model_config = ConfigDict( populate_by_name=True, @@ -86,8 +88,8 @@ class SimpleAgent(BaseModel): "agent_id", "location", "country_id", - "prefix", "verify_ssl_certificates", + "prefix", ]) _dict = self.model_dump( @@ -98,6 +100,9 @@ class SimpleAgent(BaseModel): # override the default output from pydantic by calling `to_dict()` of coordinates if self.coordinates: _dict['coordinates'] = self.coordinates.to_dict() + # override the default output from pydantic by calling `to_dict()` of network_provider_info + if self.network_provider_info: + _dict['networkProviderInfo'] = self.network_provider_info.to_dict() return _dict @classmethod @@ -118,9 +123,10 @@ class SimpleAgent(BaseModel): "location": obj.get("location"), "countryId": obj.get("countryId"), "coordinates": Coordinates.from_dict(obj["coordinates"]) if obj.get("coordinates") is not None else None, + "networkProviderInfo": SimpleAgentAllOfNetworkProviderInfo.from_dict(obj["networkProviderInfo"]) if obj.get("networkProviderInfo") is not None else None, "enabled": obj.get("enabled"), - "prefix": obj.get("prefix"), - "verifySslCertificates": obj.get("verifySslCertificates") + "verifySslCertificates": obj.get("verifySslCertificates"), + "prefix": obj.get("prefix") }) return _obj diff --git a/thousandeyes-sdk-agents/src/thousandeyes_sdk/agents/models/simple_agent_all_of_network_provider_info.py b/thousandeyes-sdk-agents/src/thousandeyes_sdk/agents/models/simple_agent_all_of_network_provider_info.py new file mode 100644 index 00000000..188ce954 --- /dev/null +++ b/thousandeyes-sdk-agents/src/thousandeyes_sdk/agents/models/simple_agent_all_of_network_provider_info.py @@ -0,0 +1,96 @@ +# coding: utf-8 + +""" + Agents API + + ## Overview Manage Cloud and Enterprise Agents available to your account in ThousandEyes. + + 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 thousandeyes_sdk.agents.models.network_provider_type import NetworkProviderType +from typing import Optional, Set +from typing_extensions import Self + +class SimpleAgentAllOfNetworkProviderInfo(BaseModel): + """ + SimpleAgentAllOfNetworkProviderInfo + """ # noqa: E501 + asn: Optional[StrictInt] = Field(default=None, description="Autonomous System Number (ASN) announcing the agent's public IP prefix.") + name: Optional[StrictStr] = Field(default=None, description="Name of the network provider organization.") + type: Optional[NetworkProviderType] = None + __properties: ClassVar[List[str]] = ["asn", "name", "type"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + extra="allow", + ) + + + 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 self.model_dump_json(by_alias=True, exclude_unset=True, exclude_none=True) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of SimpleAgentAllOfNetworkProviderInfo 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. + * OpenAPI `readOnly` fields are excluded. + * OpenAPI `readOnly` fields are excluded. + """ + excluded_fields: Set[str] = set([ + "asn", + "name", + ]) + + _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 SimpleAgentAllOfNetworkProviderInfo from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "asn": obj.get("asn"), + "name": obj.get("name"), + "type": obj.get("type") + }) + return _obj + + diff --git a/thousandeyes-sdk-agents/src/thousandeyes_sdk/agents/models/simple_enterprise_agent.py b/thousandeyes-sdk-agents/src/thousandeyes_sdk/agents/models/simple_enterprise_agent.py index 7fbe5643..2bc52260 100644 --- a/thousandeyes-sdk-agents/src/thousandeyes_sdk/agents/models/simple_enterprise_agent.py +++ b/thousandeyes-sdk-agents/src/thousandeyes_sdk/agents/models/simple_enterprise_agent.py @@ -26,6 +26,7 @@ from thousandeyes_sdk.agents.models.enterprise_agent_ipv6_policy import Enterpri from thousandeyes_sdk.agents.models.enterprise_agent_state import EnterpriseAgentState from thousandeyes_sdk.agents.models.error_detail import ErrorDetail from thousandeyes_sdk.agents.models.interface_ip_mapping import InterfaceIpMapping +from thousandeyes_sdk.agents.models.simple_agent_all_of_network_provider_info import SimpleAgentAllOfNetworkProviderInfo from thousandeyes_sdk.agents.models.simple_test import SimpleTest from typing import Optional, Set from typing_extensions import Self @@ -42,9 +43,10 @@ class SimpleEnterpriseAgent(BaseModel): location: Optional[StrictStr] = Field(default=None, description="Location of the agent.") country_id: Optional[StrictStr] = Field(default=None, description="2-digit ISO country code", alias="countryId") coordinates: Optional[Coordinates] = None + network_provider_info: Optional[SimpleAgentAllOfNetworkProviderInfo] = Field(default=None, alias="networkProviderInfo") enabled: Optional[StrictBool] = Field(default=None, description="Flag indicating if the agent is enabled.") - prefix: Optional[StrictStr] = Field(default=None, description="Prefix containing agents public IP address.") verify_ssl_certificates: Optional[StrictBool] = Field(default=None, description="Flag indicating if has normal SSL operations or if instead it's set to ignore SSL errors on browserbot-based tests.", alias="verifySslCertificates") + prefix: Optional[StrictStr] = Field(default=None, description="Prefix containing agents public IP address.") test_ids: Optional[List[StrictInt]] = Field(default=None, description="List of test IDs assigned to the agent.", alias="testIds") tests: Optional[List[SimpleTest]] = Field(default=None, description="List of tests. See `/tests` for more information.") cluster_members: Optional[List[ClusterMember]] = Field(default=None, description="If an enterprise agent is clustered, detailed information about each cluster member will be shown as array entries in the clusterMembers field. This field is not shown for Enterprise Agents in standalone mode, or for Cloud Agents.", alias="clusterMembers") @@ -58,9 +60,10 @@ class SimpleEnterpriseAgent(BaseModel): keep_browser_cache: Optional[StrictBool] = Field(default=None, description="Flag indicating if the agent retains cache.", alias="keepBrowserCache") created_date: Optional[datetime] = Field(default=None, description="UTC Agent creation date (ISO date-time format).", alias="createdDate") target_for_tests: Optional[StrictStr] = Field(default=None, description="Test target IP address.", alias="targetForTests") + serial_number: Optional[StrictStr] = Field(default=None, description="Serial number of an enterprise agent or cluster member device. This field is not available for Cloud Agents.", alias="serialNumber") local_resolution_prefixes: Optional[List[StrictStr]] = Field(default=None, description="To perform rDNS lookups for public IP ranges, this field represents the public IP ranges. The range must be in CIDR notation; for example, 10.1.1.0/24. Maximum of 5 prefixes allowed (Enterprise Agents and Enterprise Agent clusters only).", alias="localResolutionPrefixes") interface_ip_mapping: Optional[List[InterfaceIpMapping]] = Field(default=None, alias="interfaceIpMapping") - __properties: ClassVar[List[str]] = ["ipAddresses", "publicIpAddresses", "network", "agentId", "agentName", "location", "countryId", "coordinates", "enabled", "prefix", "verifySslCertificates", "testIds", "tests", "clusterMembers", "utilization", "accountGroups", "ipv6Policy", "errorDetails", "hostname", "lastSeen", "agentState", "keepBrowserCache", "createdDate", "targetForTests", "localResolutionPrefixes", "interfaceIpMapping"] + __properties: ClassVar[List[str]] = ["ipAddresses", "publicIpAddresses", "network", "agentId", "agentName", "location", "countryId", "coordinates", "networkProviderInfo", "enabled", "verifySslCertificates", "prefix", "testIds", "tests", "clusterMembers", "utilization", "accountGroups", "ipv6Policy", "errorDetails", "hostname", "lastSeen", "agentState", "keepBrowserCache", "createdDate", "targetForTests", "serialNumber", "localResolutionPrefixes", "interfaceIpMapping"] model_config = ConfigDict( populate_by_name=True, @@ -109,6 +112,7 @@ class SimpleEnterpriseAgent(BaseModel): * 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([ "ip_addresses", @@ -117,8 +121,8 @@ class SimpleEnterpriseAgent(BaseModel): "agent_id", "location", "country_id", - "prefix", "verify_ssl_certificates", + "prefix", "test_ids", "cluster_members", "utilization", @@ -126,6 +130,7 @@ class SimpleEnterpriseAgent(BaseModel): "hostname", "last_seen", "created_date", + "serial_number", "interface_ip_mapping", ]) @@ -137,6 +142,9 @@ class SimpleEnterpriseAgent(BaseModel): # override the default output from pydantic by calling `to_dict()` of coordinates if self.coordinates: _dict['coordinates'] = self.coordinates.to_dict() + # override the default output from pydantic by calling `to_dict()` of network_provider_info + if self.network_provider_info: + _dict['networkProviderInfo'] = self.network_provider_info.to_dict() # override the default output from pydantic by calling `to_dict()` of each item in tests (list) _items = [] if self.tests: @@ -192,9 +200,10 @@ class SimpleEnterpriseAgent(BaseModel): "location": obj.get("location"), "countryId": obj.get("countryId"), "coordinates": Coordinates.from_dict(obj["coordinates"]) if obj.get("coordinates") is not None else None, + "networkProviderInfo": SimpleAgentAllOfNetworkProviderInfo.from_dict(obj["networkProviderInfo"]) if obj.get("networkProviderInfo") is not None else None, "enabled": obj.get("enabled"), - "prefix": obj.get("prefix"), "verifySslCertificates": obj.get("verifySslCertificates"), + "prefix": obj.get("prefix"), "testIds": obj.get("testIds"), "tests": [SimpleTest.from_dict(_item) for _item in obj["tests"]] if obj.get("tests") is not None else None, "clusterMembers": [ClusterMember.from_dict(_item) for _item in obj["clusterMembers"]] if obj.get("clusterMembers") is not None else None, @@ -208,6 +217,7 @@ class SimpleEnterpriseAgent(BaseModel): "keepBrowserCache": obj.get("keepBrowserCache"), "createdDate": obj.get("createdDate"), "targetForTests": obj.get("targetForTests"), + "serialNumber": obj.get("serialNumber"), "localResolutionPrefixes": obj.get("localResolutionPrefixes"), "interfaceIpMapping": [InterfaceIpMapping.from_dict(_item) for _item in obj["interfaceIpMapping"]] if obj.get("interfaceIpMapping") is not None else None }) diff --git a/thousandeyes-sdk-agents/test/test_cloud_and_enterprise_agent_notification_rules_api.py b/thousandeyes-sdk-agents/test/test_cloud_and_enterprise_agent_notification_rules_api.py index 38f00903..961f02c0 100644 --- a/thousandeyes-sdk-agents/test/test_cloud_and_enterprise_agent_notification_rules_api.py +++ b/thousandeyes-sdk-agents/test/test_cloud_and_enterprise_agent_notification_rules_api.py @@ -97,34 +97,44 @@ class TestCloudAndEnterpriseAgentNotificationRulesApi(unittest.TestCase): "agents" : [ { "agentId" : "281474976710706", "agentType" : "enterprise-cluster", - "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], "prefix" : "99.128.0.0/11", "coordinates" : { "latitude" : 37.77493, "longitude" : -122.41942 }, "agentName" : "thousandeyes-stg-va-254", - "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], - "location" : "San Francisco Bay Area", + "networkProviderInfo" : { + "asn" : 7018, + "name" : "AT&T Services, Inc.", + "type" : "isp" + }, "countryId" : "US", "enabled" : true, "network" : "AT&T Services, Inc. (AS 7018)", + "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], + "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], + "location" : "San Francisco Bay Area", "verifySslCertificates" : true }, { "agentId" : "281474976710706", "agentType" : "enterprise-cluster", - "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], "prefix" : "99.128.0.0/11", "coordinates" : { "latitude" : 37.77493, "longitude" : -122.41942 }, "agentName" : "thousandeyes-stg-va-254", - "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], - "location" : "San Francisco Bay Area", + "networkProviderInfo" : { + "asn" : 7018, + "name" : "AT&T Services, Inc.", + "type" : "isp" + }, "countryId" : "US", "enabled" : true, "network" : "AT&T Services, Inc. (AS 7018)", + "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], + "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], + "location" : "San Francisco Bay Area", "verifySslCertificates" : true } ] }""" diff --git a/thousandeyes-sdk-agents/test/test_cloud_and_enterprise_agents_api.py b/thousandeyes-sdk-agents/test/test_cloud_and_enterprise_agents_api.py index 1fa3e7ad..3dac2e71 100644 --- a/thousandeyes-sdk-agents/test/test_cloud_and_enterprise_agents_api.py +++ b/thousandeyes-sdk-agents/test/test_cloud_and_enterprise_agents_api.py @@ -57,6 +57,11 @@ class TestCloudAndEnterpriseAgentsApi(unittest.TestCase): "longitude" : -122.41942 }, "agentName" : "thousandeyes-stg-va-254", + "networkProviderInfo" : { + "asn" : 7018, + "name" : "AT&T Services, Inc.", + "type" : "isp" + }, "countryId" : "US", "enabled" : true, "network" : "AT&T Services, Inc. (AS 7018)", @@ -169,34 +174,44 @@ class TestCloudAndEnterpriseAgentsApi(unittest.TestCase): "agents" : [ { "agentId" : "281474976710706", "agentType" : "enterprise-cluster", - "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], "prefix" : "99.128.0.0/11", "coordinates" : { "latitude" : 37.77493, "longitude" : -122.41942 }, "agentName" : "thousandeyes-stg-va-254", - "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], - "location" : "San Francisco Bay Area", + "networkProviderInfo" : { + "asn" : 7018, + "name" : "AT&T Services, Inc.", + "type" : "isp" + }, "countryId" : "US", "enabled" : true, "network" : "AT&T Services, Inc. (AS 7018)", + "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], + "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], + "location" : "San Francisco Bay Area", "verifySslCertificates" : true }, { "agentId" : "281474976710706", "agentType" : "enterprise-cluster", - "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], "prefix" : "99.128.0.0/11", "coordinates" : { "latitude" : 37.77493, "longitude" : -122.41942 }, "agentName" : "thousandeyes-stg-va-254", - "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], - "location" : "San Francisco Bay Area", + "networkProviderInfo" : { + "asn" : 7018, + "name" : "AT&T Services, Inc.", + "type" : "isp" + }, "countryId" : "US", "enabled" : true, "network" : "AT&T Services, Inc. (AS 7018)", + "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], + "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], + "location" : "San Francisco Bay Area", "verifySslCertificates" : true } ] }""" @@ -246,6 +261,11 @@ class TestCloudAndEnterpriseAgentsApi(unittest.TestCase): "longitude" : -122.41942 }, "agentName" : "thousandeyes-stg-va-254", + "networkProviderInfo" : { + "asn" : 7018, + "name" : "AT&T Services, Inc.", + "type" : "isp" + }, "countryId" : "US", "enabled" : true, "network" : "AT&T Services, Inc. (AS 7018)", diff --git a/thousandeyes-sdk-agents/test/test_enterprise_agent_cluster_api.py b/thousandeyes-sdk-agents/test/test_enterprise_agent_cluster_api.py index 7f172812..d4eec980 100644 --- a/thousandeyes-sdk-agents/test/test_enterprise_agent_cluster_api.py +++ b/thousandeyes-sdk-agents/test/test_enterprise_agent_cluster_api.py @@ -62,6 +62,11 @@ class TestEnterpriseAgentClusterApi(unittest.TestCase): "longitude" : -122.41942 }, "agentName" : "thousandeyes-stg-va-254", + "networkProviderInfo" : { + "asn" : 7018, + "name" : "AT&T Services, Inc.", + "type" : "isp" + }, "countryId" : "US", "enabled" : true, "network" : "AT&T Services, Inc. (AS 7018)", @@ -183,34 +188,44 @@ class TestEnterpriseAgentClusterApi(unittest.TestCase): "agents" : [ { "agentId" : "281474976710706", "agentType" : "enterprise-cluster", - "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], "prefix" : "99.128.0.0/11", "coordinates" : { "latitude" : 37.77493, "longitude" : -122.41942 }, "agentName" : "thousandeyes-stg-va-254", - "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], - "location" : "San Francisco Bay Area", + "networkProviderInfo" : { + "asn" : 7018, + "name" : "AT&T Services, Inc.", + "type" : "isp" + }, "countryId" : "US", "enabled" : true, "network" : "AT&T Services, Inc. (AS 7018)", + "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], + "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], + "location" : "San Francisco Bay Area", "verifySslCertificates" : true }, { "agentId" : "281474976710706", "agentType" : "enterprise-cluster", - "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], "prefix" : "99.128.0.0/11", "coordinates" : { "latitude" : 37.77493, "longitude" : -122.41942 }, "agentName" : "thousandeyes-stg-va-254", - "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], - "location" : "San Francisco Bay Area", + "networkProviderInfo" : { + "asn" : 7018, + "name" : "AT&T Services, Inc.", + "type" : "isp" + }, "countryId" : "US", "enabled" : true, "network" : "AT&T Services, Inc. (AS 7018)", + "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], + "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], + "location" : "San Francisco Bay Area", "verifySslCertificates" : true } ] }""" diff --git a/thousandeyes-sdk-agents/test/test_local_problems_api.py b/thousandeyes-sdk-agents/test/test_local_problems_api.py new file mode 100644 index 00000000..bec8bfea --- /dev/null +++ b/thousandeyes-sdk-agents/test/test_local_problems_api.py @@ -0,0 +1,81 @@ +# coding: utf-8 + +""" + Agents API + + ## Overview Manage Cloud and Enterprise Agents available to your account in ThousandEyes. + + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +import json +import unittest +import thousandeyes_sdk.agents.models + +from .test_utils import assert_constructed_model_matches_example_json +from thousandeyes_sdk.agents.api.local_problems_api import LocalProblemsApi + + +class TestLocalProblemsApi(unittest.TestCase): + """LocalProblemsApi unit test stubs""" + + def setUp(self) -> None: + self.api = LocalProblemsApi() + + def tearDown(self) -> None: + pass + + def test_get_agents_local_problems_models_validation(self) -> None: + """Test case for get_agents_local_problems request and response models""" + + response_body_json = """ + { + "endDate" : "2022-07-18T22:00:54Z", + "_links" : { + "self" : { + "hreflang" : "hreflang", + "templated" : true, + "profile" : "profile", + "name" : "name", + "href" : "https://api.thousandeyes.com/v7/link/to/resource/id", + "type" : "type", + "deprecation" : "deprecation", + "title" : "title" + } + }, + "localProblems" : [ { + "duration" : 480, + "agent" : { + "agentId" : "281474976710706", + "agentName" : "thousandeyes-stg-va-254", + "location" : "San Francisco Bay Area", + "countryId" : "US" + }, + "endDate" : "2026-05-18T03:22:00Z", + "active" : false, + "startDate" : "2026-05-18T03:14:00Z" + }, { + "duration" : 480, + "agent" : { + "agentId" : "281474976710706", + "agentName" : "thousandeyes-stg-va-254", + "location" : "San Francisco Bay Area", + "countryId" : "US" + }, + "endDate" : "2026-05-18T03:22:00Z", + "active" : false, + "startDate" : "2026-05-18T03:14:00Z" + } ], + "startDate" : "2022-07-17T22:00:54Z" + }""" + + response_loaded_json = json.loads(response_body_json) + response_from_json = thousandeyes_sdk.agents.models.LocalProblemAgentResults.from_json(response_body_json) + assert_constructed_model_matches_example_json(response_from_json, response_loaded_json) + + +if __name__ == '__main__': + unittest.main() diff --git a/thousandeyes-sdk-agents/test/test_tests_assignment_on_agents_api.py b/thousandeyes-sdk-agents/test/test_tests_assignment_on_agents_api.py index b3d0b67e..bbb3b656 100644 --- a/thousandeyes-sdk-agents/test/test_tests_assignment_on_agents_api.py +++ b/thousandeyes-sdk-agents/test/test_tests_assignment_on_agents_api.py @@ -62,6 +62,11 @@ class TestTestsAssignmentOnAgentsApi(unittest.TestCase): "longitude" : -122.41942 }, "agentName" : "thousandeyes-stg-va-254", + "networkProviderInfo" : { + "asn" : 7018, + "name" : "AT&T Services, Inc.", + "type" : "isp" + }, "countryId" : "US", "enabled" : true, "network" : "AT&T Services, Inc. (AS 7018)", @@ -188,6 +193,11 @@ class TestTestsAssignmentOnAgentsApi(unittest.TestCase): "longitude" : -122.41942 }, "agentName" : "thousandeyes-stg-va-254", + "networkProviderInfo" : { + "asn" : 7018, + "name" : "AT&T Services, Inc.", + "type" : "isp" + }, "countryId" : "US", "enabled" : true, "network" : "AT&T Services, Inc. (AS 7018)", @@ -314,6 +324,11 @@ class TestTestsAssignmentOnAgentsApi(unittest.TestCase): "longitude" : -122.41942 }, "agentName" : "thousandeyes-stg-va-254", + "networkProviderInfo" : { + "asn" : 7018, + "name" : "AT&T Services, Inc.", + "type" : "isp" + }, "countryId" : "US", "enabled" : true, "network" : "AT&T Services, Inc. (AS 7018)", diff --git a/thousandeyes-sdk-alerts/README.md b/thousandeyes-sdk-alerts/README.md index da32d1a0..26742524 100644 --- a/thousandeyes-sdk-alerts/README.md +++ b/thousandeyes-sdk-alerts/README.md @@ -14,7 +14,7 @@ For more information about the alerts, see [Alerts](https://docs.thousandeyes.co This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project: -- API version: 7.0.84 +- API version: 7.0.92 - Generator version: 7.6.0 - Build package: com.thousandeyes.api.codegen.ThousandeyesPythonGenerator diff --git a/thousandeyes-sdk-bgp-monitors/README.md b/thousandeyes-sdk-bgp-monitors/README.md index 1b0f29bc..5fe022d0 100644 --- a/thousandeyes-sdk-bgp-monitors/README.md +++ b/thousandeyes-sdk-bgp-monitors/README.md @@ -10,7 +10,7 @@ For more information about monitors, see [Inside-Out BGP Visibility](https://doc This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project: -- API version: 7.0.84 +- API version: 7.0.92 - Generator version: 7.6.0 - Build package: com.thousandeyes.api.codegen.ThousandeyesPythonGenerator diff --git a/thousandeyes-sdk-connectors/.openapi-generator/FILES b/thousandeyes-sdk-connectors/.openapi-generator/FILES index cc4969b3..21439952 100644 --- a/thousandeyes-sdk-connectors/.openapi-generator/FILES +++ b/thousandeyes-sdk-connectors/.openapi-generator/FILES @@ -5,7 +5,15 @@ docs/Assignments.md docs/AuthenticationType.md docs/BasicAuthentication.md docs/BearerTokenAuthentication.md +docs/ConjurConnector.md +docs/ConjurConnectors.md +docs/ConjurHostAuthentication.md docs/ConnectorType.md +docs/CredentialVaultOperation.md +docs/CredentialVaultOperations.md +docs/CredentialVaultOperationsApi.md +docs/CredentialVaultSecret.md +docs/CyberArkConjurConnectorsApi.md docs/Error.md docs/GenericConnector.md docs/GenericConnectorAuth.md @@ -31,6 +39,8 @@ pyproject.toml setup.cfg src/thousandeyes_sdk/connectors/__init__.py src/thousandeyes_sdk/connectors/api/__init__.py +src/thousandeyes_sdk/connectors/api/credential_vault_operations_api.py +src/thousandeyes_sdk/connectors/api/cyber_ark_conjur_connectors_api.py src/thousandeyes_sdk/connectors/api/generic_connectors_api.py src/thousandeyes_sdk/connectors/api/operation_connectors_api.py src/thousandeyes_sdk/connectors/api/webhook_operations_api.py @@ -39,7 +49,13 @@ src/thousandeyes_sdk/connectors/models/assignments.py src/thousandeyes_sdk/connectors/models/authentication_type.py src/thousandeyes_sdk/connectors/models/basic_authentication.py src/thousandeyes_sdk/connectors/models/bearer_token_authentication.py +src/thousandeyes_sdk/connectors/models/conjur_connector.py +src/thousandeyes_sdk/connectors/models/conjur_connectors.py +src/thousandeyes_sdk/connectors/models/conjur_host_authentication.py src/thousandeyes_sdk/connectors/models/connector_type.py +src/thousandeyes_sdk/connectors/models/credential_vault_operation.py +src/thousandeyes_sdk/connectors/models/credential_vault_operations.py +src/thousandeyes_sdk/connectors/models/credential_vault_secret.py src/thousandeyes_sdk/connectors/models/error.py src/thousandeyes_sdk/connectors/models/generic_connector.py src/thousandeyes_sdk/connectors/models/generic_connector_auth.py @@ -60,6 +76,8 @@ src/thousandeyes_sdk/connectors/models/webhook_operation.py src/thousandeyes_sdk/connectors/models/webhook_operations.py src/thousandeyes_sdk/connectors/py.typed test/__init__.py +test/test_credential_vault_operations_api.py +test/test_cyber_ark_conjur_connectors_api.py test/test_generic_connectors_api.py test/test_operation_connectors_api.py test/test_utils.py diff --git a/thousandeyes-sdk-connectors/README.md b/thousandeyes-sdk-connectors/README.md index 30a05404..36688c20 100644 --- a/thousandeyes-sdk-connectors/README.md +++ b/thousandeyes-sdk-connectors/README.md @@ -6,7 +6,7 @@ Manage connectors and operations. This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project: -- API version: 7.0.84 +- API version: 7.0.92 - Generator version: 7.6.0 - Build package: com.thousandeyes.api.codegen.ThousandeyesPythonGenerator @@ -78,17 +78,17 @@ configuration = thousandeyes_sdk.core.Configuration( # Enter a context with an instance of the API client with thousandeyes_sdk.core.ApiClient(configuration) as api_client: # Create an instance of the API class - api_instance = thousandeyes_sdk.connectors.GenericConnectorsApi(api_client) - generic_connector = thousandeyes_sdk.connectors.GenericConnector() # GenericConnector | + api_instance = thousandeyes_sdk.connectors.CredentialVaultOperationsApi(api_client) + credential_vault_operation = thousandeyes_sdk.connectors.CredentialVaultOperation() # CredentialVaultOperation | aid = '1234' # str | A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error response. (optional) try: - # Create connector - api_response = api_instance.create_generic_connector(generic_connector, aid=aid) - print("The response of GenericConnectorsApi->create_generic_connector:\n") + # Create Credential Vault operation + api_response = api_instance.create_credential_vault_operation(credential_vault_operation, aid=aid) + print("The response of CredentialVaultOperationsApi->create_credential_vault_operation:\n") pprint(api_response) except ApiException as e: - print("Exception when calling GenericConnectorsApi->create_generic_connector: %s\n" % e) + print("Exception when calling CredentialVaultOperationsApi->create_credential_vault_operation: %s\n" % e) ``` @@ -98,11 +98,23 @@ All URIs are relative to *https://api.thousandeyes.com/v7* Class | Method | HTTP request | Description ------------ | ------------- | ------------- | ------------- +*CredentialVaultOperationsApi* | [**create_credential_vault_operation**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-connectors/docs/CredentialVaultOperationsApi.md#create_credential_vault_operation) | **POST** /operations/credential-vault | Create Credential Vault operation +*CredentialVaultOperationsApi* | [**delete_credential_vault_operation**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-connectors/docs/CredentialVaultOperationsApi.md#delete_credential_vault_operation) | **DELETE** /operations/credential-vault/{id} | Delete Credential Vault operation +*CredentialVaultOperationsApi* | [**get_credential_vault_operation**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-connectors/docs/CredentialVaultOperationsApi.md#get_credential_vault_operation) | **GET** /operations/credential-vault/{id} | Get Credential Vault operation +*CredentialVaultOperationsApi* | [**get_credential_vault_operations**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-connectors/docs/CredentialVaultOperationsApi.md#get_credential_vault_operations) | **GET** /operations/credential-vault | List Credential Vault operations +*CredentialVaultOperationsApi* | [**update_credential_vault_operation**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-connectors/docs/CredentialVaultOperationsApi.md#update_credential_vault_operation) | **PUT** /operations/credential-vault/{id} | Update Credential Vault operation +*CyberArkConjurConnectorsApi* | [**create_conjur_connector**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-connectors/docs/CyberArkConjurConnectorsApi.md#create_conjur_connector) | **POST** /connectors/conjur | Create Conjur connector +*CyberArkConjurConnectorsApi* | [**delete_conjur_connector**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-connectors/docs/CyberArkConjurConnectorsApi.md#delete_conjur_connector) | **DELETE** /connectors/conjur/{id} | Delete a Conjur connector +*CyberArkConjurConnectorsApi* | [**get_conjur_connector**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-connectors/docs/CyberArkConjurConnectorsApi.md#get_conjur_connector) | **GET** /connectors/conjur/{id} | Retrieve a Conjur connector +*CyberArkConjurConnectorsApi* | [**get_conjur_connector_operations**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-connectors/docs/CyberArkConjurConnectorsApi.md#get_conjur_connector_operations) | **GET** /connectors/conjur/{id}/operations | List operation IDs for a Conjur connector +*CyberArkConjurConnectorsApi* | [**get_conjur_connectors**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-connectors/docs/CyberArkConjurConnectorsApi.md#get_conjur_connectors) | **GET** /connectors/conjur | List Conjur connectors +*CyberArkConjurConnectorsApi* | [**set_conjur_connector_operations**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-connectors/docs/CyberArkConjurConnectorsApi.md#set_conjur_connector_operations) | **PUT** /connectors/conjur/{id}/operations | Assign operations to a Conjur connector +*CyberArkConjurConnectorsApi* | [**update_conjur_connector**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-connectors/docs/CyberArkConjurConnectorsApi.md#update_conjur_connector) | **PUT** /connectors/conjur/{id} | Update a Conjur connector *GenericConnectorsApi* | [**create_generic_connector**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-connectors/docs/GenericConnectorsApi.md#create_generic_connector) | **POST** /connectors/generic | Create connector *GenericConnectorsApi* | [**delete_generic_connector**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-connectors/docs/GenericConnectorsApi.md#delete_generic_connector) | **DELETE** /connectors/generic/{id} | Delete connector *GenericConnectorsApi* | [**get_generic_connector**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-connectors/docs/GenericConnectorsApi.md#get_generic_connector) | **GET** /connectors/generic/{id} | Retrieve connector *GenericConnectorsApi* | [**get_generic_connectors**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-connectors/docs/GenericConnectorsApi.md#get_generic_connectors) | **GET** /connectors/generic | List connectors -*GenericConnectorsApi* | [**list_generic_connector_operations**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-connectors/docs/GenericConnectorsApi.md#list_generic_connector_operations) | **GET** /connectors/generic/{id}/operations | List operation IDs assigned to a connector +*GenericConnectorsApi* | [**list_generic_connector_operations**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-connectors/docs/GenericConnectorsApi.md#list_generic_connector_operations) | **GET** /connectors/generic/{id}/operations | List operation IDs for a connector *GenericConnectorsApi* | [**set_generic_connector_operations**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-connectors/docs/GenericConnectorsApi.md#set_generic_connector_operations) | **PUT** /connectors/generic/{id}/operations | Assign operations to a connector *GenericConnectorsApi* | [**update_generic_connector**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-connectors/docs/GenericConnectorsApi.md#update_generic_connector) | **PUT** /connectors/generic/{id} | Update connector *OperationConnectorsApi* | [**get_operation_connectors**](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-connectors/docs/OperationConnectorsApi.md#get_operation_connectors) | **GET** /operations/{type}/{id}/connectors | Retrieve connectors assigned to an operation @@ -120,7 +132,13 @@ Class | Method | HTTP request | Description - [AuthenticationType](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-connectors/docs/AuthenticationType.md) - [BasicAuthentication](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-connectors/docs/BasicAuthentication.md) - [BearerTokenAuthentication](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-connectors/docs/BearerTokenAuthentication.md) + - [ConjurConnector](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-connectors/docs/ConjurConnector.md) + - [ConjurConnectors](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-connectors/docs/ConjurConnectors.md) + - [ConjurHostAuthentication](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-connectors/docs/ConjurHostAuthentication.md) - [ConnectorType](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-connectors/docs/ConnectorType.md) + - [CredentialVaultOperation](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-connectors/docs/CredentialVaultOperation.md) + - [CredentialVaultOperations](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-connectors/docs/CredentialVaultOperations.md) + - [CredentialVaultSecret](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-connectors/docs/CredentialVaultSecret.md) - [Error](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-connectors/docs/Error.md) - [GenericConnector](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-connectors/docs/GenericConnector.md) - [GenericConnectorAuth](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-connectors/docs/GenericConnectorAuth.md) diff --git a/thousandeyes-sdk-connectors/docs/ConjurConnector.md b/thousandeyes-sdk-connectors/docs/ConjurConnector.md new file mode 100644 index 00000000..8679b98e --- /dev/null +++ b/thousandeyes-sdk-connectors/docs/ConjurConnector.md @@ -0,0 +1,36 @@ +# ConjurConnector + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**id** | **str** | | [optional] [readonly] +**type** | [**ConnectorType**](ConnectorType.md) | | +**name** | **str** | | +**target** | **str** | | +**last_modified_date** | **int** | The date when the connector was last modified (Unix timestamp in milliseconds). | [optional] [readonly] +**account** | **str** | | +**authentication** | [**ConjurHostAuthentication**](ConjurHostAuthentication.md) | | +**links** | [**SelfLinks**](SelfLinks.md) | | [optional] + +## Example + +```python +from thousandeyes_sdk.connectors.models.conjur_connector import ConjurConnector + +# TODO update the JSON string below +json = "{}" +# create an instance of ConjurConnector from a JSON string +conjur_connector_instance = ConjurConnector.from_json(json) +# print the JSON string representation of the object +print(ConjurConnector.to_json()) + +# convert the object into a dict +conjur_connector_dict = conjur_connector_instance.to_dict() +# create an instance of ConjurConnector from a dict +conjur_connector_from_dict = ConjurConnector.from_dict(conjur_connector_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/thousandeyes-sdk-connectors/docs/ConjurConnectors.md b/thousandeyes-sdk-connectors/docs/ConjurConnectors.md new file mode 100644 index 00000000..7e2360c0 --- /dev/null +++ b/thousandeyes-sdk-connectors/docs/ConjurConnectors.md @@ -0,0 +1,30 @@ +# ConjurConnectors + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**items** | [**List[ConjurConnector]**](ConjurConnector.md) | | [optional] +**links** | [**SelfLinks**](SelfLinks.md) | | [optional] + +## Example + +```python +from thousandeyes_sdk.connectors.models.conjur_connectors import ConjurConnectors + +# TODO update the JSON string below +json = "{}" +# create an instance of ConjurConnectors from a JSON string +conjur_connectors_instance = ConjurConnectors.from_json(json) +# print the JSON string representation of the object +print(ConjurConnectors.to_json()) + +# convert the object into a dict +conjur_connectors_dict = conjur_connectors_instance.to_dict() +# create an instance of ConjurConnectors from a dict +conjur_connectors_from_dict = ConjurConnectors.from_dict(conjur_connectors_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/thousandeyes-sdk-connectors/docs/ConjurHostAuthentication.md b/thousandeyes-sdk-connectors/docs/ConjurHostAuthentication.md new file mode 100644 index 00000000..e179344a --- /dev/null +++ b/thousandeyes-sdk-connectors/docs/ConjurHostAuthentication.md @@ -0,0 +1,31 @@ +# ConjurHostAuthentication + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**host_id** | **str** | | +**api_key** | **str** | | +**type** | [**AuthenticationType**](AuthenticationType.md) | | + +## Example + +```python +from thousandeyes_sdk.connectors.models.conjur_host_authentication import ConjurHostAuthentication + +# TODO update the JSON string below +json = "{}" +# create an instance of ConjurHostAuthentication from a JSON string +conjur_host_authentication_instance = ConjurHostAuthentication.from_json(json) +# print the JSON string representation of the object +print(ConjurHostAuthentication.to_json()) + +# convert the object into a dict +conjur_host_authentication_dict = conjur_host_authentication_instance.to_dict() +# create an instance of ConjurHostAuthentication from a dict +conjur_host_authentication_from_dict = ConjurHostAuthentication.from_dict(conjur_host_authentication_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/thousandeyes-sdk-connectors/docs/CredentialVaultOperation.md b/thousandeyes-sdk-connectors/docs/CredentialVaultOperation.md new file mode 100644 index 00000000..54ad9ae9 --- /dev/null +++ b/thousandeyes-sdk-connectors/docs/CredentialVaultOperation.md @@ -0,0 +1,34 @@ +# CredentialVaultOperation + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**id** | **str** | | [optional] [readonly] +**name** | **str** | | +**secrets** | [**List[CredentialVaultSecret]**](CredentialVaultSecret.md) | | +**type** | [**OperationType**](OperationType.md) | | [optional] +**status** | [**OperationStatus**](OperationStatus.md) | | [optional] +**links** | [**SelfLinks**](SelfLinks.md) | | [optional] + +## Example + +```python +from thousandeyes_sdk.connectors.models.credential_vault_operation import CredentialVaultOperation + +# TODO update the JSON string below +json = "{}" +# create an instance of CredentialVaultOperation from a JSON string +credential_vault_operation_instance = CredentialVaultOperation.from_json(json) +# print the JSON string representation of the object +print(CredentialVaultOperation.to_json()) + +# convert the object into a dict +credential_vault_operation_dict = credential_vault_operation_instance.to_dict() +# create an instance of CredentialVaultOperation from a dict +credential_vault_operation_from_dict = CredentialVaultOperation.from_dict(credential_vault_operation_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/thousandeyes-sdk-connectors/docs/CredentialVaultOperations.md b/thousandeyes-sdk-connectors/docs/CredentialVaultOperations.md new file mode 100644 index 00000000..66d200c4 --- /dev/null +++ b/thousandeyes-sdk-connectors/docs/CredentialVaultOperations.md @@ -0,0 +1,30 @@ +# CredentialVaultOperations + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**items** | [**List[CredentialVaultOperation]**](CredentialVaultOperation.md) | | [optional] +**links** | [**SelfLinks**](SelfLinks.md) | | [optional] + +## Example + +```python +from thousandeyes_sdk.connectors.models.credential_vault_operations import CredentialVaultOperations + +# TODO update the JSON string below +json = "{}" +# create an instance of CredentialVaultOperations from a JSON string +credential_vault_operations_instance = CredentialVaultOperations.from_json(json) +# print the JSON string representation of the object +print(CredentialVaultOperations.to_json()) + +# convert the object into a dict +credential_vault_operations_dict = credential_vault_operations_instance.to_dict() +# create an instance of CredentialVaultOperations from a dict +credential_vault_operations_from_dict = CredentialVaultOperations.from_dict(credential_vault_operations_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/thousandeyes-sdk-connectors/docs/CredentialVaultOperationsApi.md b/thousandeyes-sdk-connectors/docs/CredentialVaultOperationsApi.md new file mode 100644 index 00000000..23d3c176 --- /dev/null +++ b/thousandeyes-sdk-connectors/docs/CredentialVaultOperationsApi.md @@ -0,0 +1,437 @@ +# thousandeyes_sdk.connectors.CredentialVaultOperationsApi + +All URIs are relative to *https://api.thousandeyes.com/v7* + +Method | HTTP request | Description +------------- | ------------- | ------------- +[**create_credential_vault_operation**](CredentialVaultOperationsApi.md#create_credential_vault_operation) | **POST** /operations/credential-vault | Create Credential Vault operation +[**delete_credential_vault_operation**](CredentialVaultOperationsApi.md#delete_credential_vault_operation) | **DELETE** /operations/credential-vault/{id} | Delete Credential Vault operation +[**get_credential_vault_operation**](CredentialVaultOperationsApi.md#get_credential_vault_operation) | **GET** /operations/credential-vault/{id} | Get Credential Vault operation +[**get_credential_vault_operations**](CredentialVaultOperationsApi.md#get_credential_vault_operations) | **GET** /operations/credential-vault | List Credential Vault operations +[**update_credential_vault_operation**](CredentialVaultOperationsApi.md#update_credential_vault_operation) | **PUT** /operations/credential-vault/{id} | Update Credential Vault operation + + +# **create_credential_vault_operation** +> CredentialVaultOperation create_credential_vault_operation(credential_vault_operation, aid=aid) + +Create Credential Vault operation + +Create a new Credential Vault operation. + +### Example + +* Bearer Authentication (BearerAuth): + +```python +import thousandeyes_sdk.connectors +from thousandeyes_sdk.connectors.models.credential_vault_operation import CredentialVaultOperation +from thousandeyes_sdk.connectors.rest import ApiException +from pprint import pprint + +# Defining the host is optional and defaults to https://api.thousandeyes.com/v7 +# See configuration.py for a list of all supported configuration parameters. +configuration = thousandeyes_sdk.core.Configuration( + host = "https://api.thousandeyes.com/v7" +) + +# 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: BearerAuth +configuration = thousandeyes_sdk.core.Configuration( + access_token = os.environ["BEARER_TOKEN"] +) + +# Enter a context with an instance of the API client +with thousandeyes_sdk.core.ApiClient(configuration) as api_client: + # Create an instance of the API class + api_instance = thousandeyes_sdk.connectors.CredentialVaultOperationsApi(api_client) + credential_vault_operation = thousandeyes_sdk.connectors.CredentialVaultOperation() # CredentialVaultOperation | + aid = '1234' # str | A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error response. (optional) + + try: + # Create Credential Vault operation + api_response = api_instance.create_credential_vault_operation(credential_vault_operation, aid=aid) + print("The response of CredentialVaultOperationsApi->create_credential_vault_operation:\n") + pprint(api_response) + except Exception as e: + print("Exception when calling CredentialVaultOperationsApi->create_credential_vault_operation: %s\n" % e) +``` + + + +### Parameters + + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **credential_vault_operation** | [**CredentialVaultOperation**](CredentialVaultOperation.md)| | + **aid** | **str**| A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error response. | [optional] + +### Return type + +[**CredentialVaultOperation**](CredentialVaultOperation.md) + +### Authorization + +[BearerAuth](../README.md#BearerAuth) + +### HTTP request headers + + - **Content-Type**: application/json + - **Accept**: application/hal+json, application/json, application/problem+json + +### HTTP response details + +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**201** | The created Credential Vault operation. | - | +**400** | Bad Request | - | +**401** | Unauthorized | - | +**403** | Insufficient permissions to query endpoint | - | +**404** | Not found | - | +**500** | Internal server 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) + +# **delete_credential_vault_operation** +> delete_credential_vault_operation(id, confirm_disabled_objects, aid=aid) + +Delete Credential Vault operation + +Delete a single Credential Vault operation by its ID. Note: This operation may disable affected objects (such as tests). + +### Example + +* Bearer Authentication (BearerAuth): + +```python +import thousandeyes_sdk.connectors +from thousandeyes_sdk.connectors.rest import ApiException +from pprint import pprint + +# Defining the host is optional and defaults to https://api.thousandeyes.com/v7 +# See configuration.py for a list of all supported configuration parameters. +configuration = thousandeyes_sdk.core.Configuration( + host = "https://api.thousandeyes.com/v7" +) + +# 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: BearerAuth +configuration = thousandeyes_sdk.core.Configuration( + access_token = os.environ["BEARER_TOKEN"] +) + +# Enter a context with an instance of the API client +with thousandeyes_sdk.core.ApiClient(configuration) as api_client: + # Create an instance of the API class + api_instance = thousandeyes_sdk.connectors.CredentialVaultOperationsApi(api_client) + id = 'cb1b8033-ea2d-4e9b-a920-fe87850693cf' # str | The operation ID. + confirm_disabled_objects = False # bool | Confirmation to disable affected objects (for example, tests) for credential-vault operations. (default to False) + aid = '1234' # str | A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error response. (optional) + + try: + # Delete Credential Vault operation + api_instance.delete_credential_vault_operation(id, confirm_disabled_objects, aid=aid) + except Exception as e: + print("Exception when calling CredentialVaultOperationsApi->delete_credential_vault_operation: %s\n" % e) +``` + + + +### Parameters + + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **id** | **str**| The operation ID. | + **confirm_disabled_objects** | **bool**| Confirmation to disable affected objects (for example, tests) for credential-vault operations. | [default to False] + **aid** | **str**| A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error response. | [optional] + +### Return type + +void (empty response body) + +### Authorization + +[BearerAuth](../README.md#BearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/problem+json + +### HTTP response details + +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**204** | No Content. | - | +**400** | Bad Request | - | +**401** | Unauthorized | - | +**403** | Insufficient permissions to query endpoint | - | +**404** | Not found | - | +**500** | Internal server 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) + +# **get_credential_vault_operation** +> CredentialVaultOperation get_credential_vault_operation(id, aid=aid) + +Get Credential Vault operation + +Retrieve a single Credential Vault operation by its ID. + +### Example + +* Bearer Authentication (BearerAuth): + +```python +import thousandeyes_sdk.connectors +from thousandeyes_sdk.connectors.models.credential_vault_operation import CredentialVaultOperation +from thousandeyes_sdk.connectors.rest import ApiException +from pprint import pprint + +# Defining the host is optional and defaults to https://api.thousandeyes.com/v7 +# See configuration.py for a list of all supported configuration parameters. +configuration = thousandeyes_sdk.core.Configuration( + host = "https://api.thousandeyes.com/v7" +) + +# 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: BearerAuth +configuration = thousandeyes_sdk.core.Configuration( + access_token = os.environ["BEARER_TOKEN"] +) + +# Enter a context with an instance of the API client +with thousandeyes_sdk.core.ApiClient(configuration) as api_client: + # Create an instance of the API class + api_instance = thousandeyes_sdk.connectors.CredentialVaultOperationsApi(api_client) + id = 'cb1b8033-ea2d-4e9b-a920-fe87850693cf' # str | The operation ID. + aid = '1234' # str | A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error response. (optional) + + try: + # Get Credential Vault operation + api_response = api_instance.get_credential_vault_operation(id, aid=aid) + print("The response of CredentialVaultOperationsApi->get_credential_vault_operation:\n") + pprint(api_response) + except Exception as e: + print("Exception when calling CredentialVaultOperationsApi->get_credential_vault_operation: %s\n" % e) +``` + + + +### Parameters + + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **id** | **str**| The operation ID. | + **aid** | **str**| A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error response. | [optional] + +### Return type + +[**CredentialVaultOperation**](CredentialVaultOperation.md) + +### Authorization + +[BearerAuth](../README.md#BearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/hal+json, application/json, application/problem+json + +### HTTP response details + +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**200** | Credential Vault operation details. | - | +**400** | Bad Request | - | +**401** | Unauthorized | - | +**403** | Insufficient permissions to query endpoint | - | +**404** | Not found | - | +**500** | Internal server 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) + +# **get_credential_vault_operations** +> CredentialVaultOperations get_credential_vault_operations(aid=aid) + +List Credential Vault operations + +Returns a list of Credential Vault operations in the specified account group. If no account group is specified, the user's default account group is used. + +### Example + +* Bearer Authentication (BearerAuth): + +```python +import thousandeyes_sdk.connectors +from thousandeyes_sdk.connectors.models.credential_vault_operations import CredentialVaultOperations +from thousandeyes_sdk.connectors.rest import ApiException +from pprint import pprint + +# Defining the host is optional and defaults to https://api.thousandeyes.com/v7 +# See configuration.py for a list of all supported configuration parameters. +configuration = thousandeyes_sdk.core.Configuration( + host = "https://api.thousandeyes.com/v7" +) + +# 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: BearerAuth +configuration = thousandeyes_sdk.core.Configuration( + access_token = os.environ["BEARER_TOKEN"] +) + +# Enter a context with an instance of the API client +with thousandeyes_sdk.core.ApiClient(configuration) as api_client: + # Create an instance of the API class + api_instance = thousandeyes_sdk.connectors.CredentialVaultOperationsApi(api_client) + aid = '1234' # str | A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error response. (optional) + + try: + # List Credential Vault operations + api_response = api_instance.get_credential_vault_operations(aid=aid) + print("The response of CredentialVaultOperationsApi->get_credential_vault_operations:\n") + pprint(api_response) + except Exception as e: + print("Exception when calling CredentialVaultOperationsApi->get_credential_vault_operations: %s\n" % e) +``` + + + +### Parameters + + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **aid** | **str**| A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error response. | [optional] + +### Return type + +[**CredentialVaultOperations**](CredentialVaultOperations.md) + +### Authorization + +[BearerAuth](../README.md#BearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/hal+json, application/json, application/problem+json + +### HTTP response details + +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**200** | A list of Credential Vault operations. | - | +**400** | Bad Request | - | +**401** | Unauthorized | - | +**403** | Insufficient permissions to query endpoint | - | +**404** | Not found | - | +**500** | Internal server 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) + +# **update_credential_vault_operation** +> CredentialVaultOperation update_credential_vault_operation(id, credential_vault_operation, aid=aid) + +Update Credential Vault operation + +Update a single existing Credential Vault operation. + +### Example + +* Bearer Authentication (BearerAuth): + +```python +import thousandeyes_sdk.connectors +from thousandeyes_sdk.connectors.models.credential_vault_operation import CredentialVaultOperation +from thousandeyes_sdk.connectors.rest import ApiException +from pprint import pprint + +# Defining the host is optional and defaults to https://api.thousandeyes.com/v7 +# See configuration.py for a list of all supported configuration parameters. +configuration = thousandeyes_sdk.core.Configuration( + host = "https://api.thousandeyes.com/v7" +) + +# 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: BearerAuth +configuration = thousandeyes_sdk.core.Configuration( + access_token = os.environ["BEARER_TOKEN"] +) + +# Enter a context with an instance of the API client +with thousandeyes_sdk.core.ApiClient(configuration) as api_client: + # Create an instance of the API class + api_instance = thousandeyes_sdk.connectors.CredentialVaultOperationsApi(api_client) + id = 'cb1b8033-ea2d-4e9b-a920-fe87850693cf' # str | The operation ID. + credential_vault_operation = thousandeyes_sdk.connectors.CredentialVaultOperation() # CredentialVaultOperation | + aid = '1234' # str | A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error response. (optional) + + try: + # Update Credential Vault operation + api_response = api_instance.update_credential_vault_operation(id, credential_vault_operation, aid=aid) + print("The response of CredentialVaultOperationsApi->update_credential_vault_operation:\n") + pprint(api_response) + except Exception as e: + print("Exception when calling CredentialVaultOperationsApi->update_credential_vault_operation: %s\n" % e) +``` + + + +### Parameters + + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **id** | **str**| The operation ID. | + **credential_vault_operation** | [**CredentialVaultOperation**](CredentialVaultOperation.md)| | + **aid** | **str**| A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error response. | [optional] + +### Return type + +[**CredentialVaultOperation**](CredentialVaultOperation.md) + +### Authorization + +[BearerAuth](../README.md#BearerAuth) + +### HTTP request headers + + - **Content-Type**: application/json + - **Accept**: application/hal+json, application/json, application/problem+json + +### HTTP response details + +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**200** | The updated Credential Vault operation. | - | +**400** | Bad Request | - | +**401** | Unauthorized | - | +**403** | Insufficient permissions to query endpoint | - | +**404** | Not found | - | +**500** | Internal server 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/thousandeyes-sdk-connectors/docs/CredentialVaultSecret.md b/thousandeyes-sdk-connectors/docs/CredentialVaultSecret.md new file mode 100644 index 00000000..7b00fee1 --- /dev/null +++ b/thousandeyes-sdk-connectors/docs/CredentialVaultSecret.md @@ -0,0 +1,31 @@ +# CredentialVaultSecret + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**id** | **str** | | [optional] +**name** | **str** | | +**secret_key** | **str** | | + +## Example + +```python +from thousandeyes_sdk.connectors.models.credential_vault_secret import CredentialVaultSecret + +# TODO update the JSON string below +json = "{}" +# create an instance of CredentialVaultSecret from a JSON string +credential_vault_secret_instance = CredentialVaultSecret.from_json(json) +# print the JSON string representation of the object +print(CredentialVaultSecret.to_json()) + +# convert the object into a dict +credential_vault_secret_dict = credential_vault_secret_instance.to_dict() +# create an instance of CredentialVaultSecret from a dict +credential_vault_secret_from_dict = CredentialVaultSecret.from_dict(credential_vault_secret_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/thousandeyes-sdk-connectors/docs/CyberArkConjurConnectorsApi.md b/thousandeyes-sdk-connectors/docs/CyberArkConjurConnectorsApi.md new file mode 100644 index 00000000..73947579 --- /dev/null +++ b/thousandeyes-sdk-connectors/docs/CyberArkConjurConnectorsApi.md @@ -0,0 +1,613 @@ +# thousandeyes_sdk.connectors.CyberArkConjurConnectorsApi + +All URIs are relative to *https://api.thousandeyes.com/v7* + +Method | HTTP request | Description +------------- | ------------- | ------------- +[**create_conjur_connector**](CyberArkConjurConnectorsApi.md#create_conjur_connector) | **POST** /connectors/conjur | Create Conjur connector +[**delete_conjur_connector**](CyberArkConjurConnectorsApi.md#delete_conjur_connector) | **DELETE** /connectors/conjur/{id} | Delete a Conjur connector +[**get_conjur_connector**](CyberArkConjurConnectorsApi.md#get_conjur_connector) | **GET** /connectors/conjur/{id} | Retrieve a Conjur connector +[**get_conjur_connector_operations**](CyberArkConjurConnectorsApi.md#get_conjur_connector_operations) | **GET** /connectors/conjur/{id}/operations | List operation IDs for a Conjur connector +[**get_conjur_connectors**](CyberArkConjurConnectorsApi.md#get_conjur_connectors) | **GET** /connectors/conjur | List Conjur connectors +[**set_conjur_connector_operations**](CyberArkConjurConnectorsApi.md#set_conjur_connector_operations) | **PUT** /connectors/conjur/{id}/operations | Assign operations to a Conjur connector +[**update_conjur_connector**](CyberArkConjurConnectorsApi.md#update_conjur_connector) | **PUT** /connectors/conjur/{id} | Update a Conjur connector + + +# **create_conjur_connector** +> ConjurConnector create_conjur_connector(conjur_connector, aid=aid) + +Create Conjur connector + +Creates a new CyberArk Conjur connector. + +### Example + +* Bearer Authentication (BearerAuth): + +```python +import thousandeyes_sdk.connectors +from thousandeyes_sdk.connectors.models.conjur_connector import ConjurConnector +from thousandeyes_sdk.connectors.rest import ApiException +from pprint import pprint + +# Defining the host is optional and defaults to https://api.thousandeyes.com/v7 +# See configuration.py for a list of all supported configuration parameters. +configuration = thousandeyes_sdk.core.Configuration( + host = "https://api.thousandeyes.com/v7" +) + +# 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: BearerAuth +configuration = thousandeyes_sdk.core.Configuration( + access_token = os.environ["BEARER_TOKEN"] +) + +# Enter a context with an instance of the API client +with thousandeyes_sdk.core.ApiClient(configuration) as api_client: + # Create an instance of the API class + api_instance = thousandeyes_sdk.connectors.CyberArkConjurConnectorsApi(api_client) + conjur_connector = thousandeyes_sdk.connectors.ConjurConnector() # ConjurConnector | + aid = '1234' # str | A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error response. (optional) + + try: + # Create Conjur connector + api_response = api_instance.create_conjur_connector(conjur_connector, aid=aid) + print("The response of CyberArkConjurConnectorsApi->create_conjur_connector:\n") + pprint(api_response) + except Exception as e: + print("Exception when calling CyberArkConjurConnectorsApi->create_conjur_connector: %s\n" % e) +``` + + + +### Parameters + + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **conjur_connector** | [**ConjurConnector**](ConjurConnector.md)| | + **aid** | **str**| A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error response. | [optional] + +### Return type + +[**ConjurConnector**](ConjurConnector.md) + +### Authorization + +[BearerAuth](../README.md#BearerAuth) + +### HTTP request headers + + - **Content-Type**: application/json + - **Accept**: application/hal+json, application/json, application/problem+json + +### HTTP response details + +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**201** | The created Conjur connector. | - | +**400** | Bad Request | - | +**401** | Unauthorized | - | +**403** | Insufficient permissions to query endpoint | - | +**404** | Not found | - | +**500** | Internal server 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) + +# **delete_conjur_connector** +> delete_conjur_connector(id, confirm_disabled_objects, aid=aid) + +Delete a Conjur connector + +Deleted the CyberArk Conjur connector specified by ID. Note: This operation may disable affected objects (such as tests). + +### Example + +* Bearer Authentication (BearerAuth): + +```python +import thousandeyes_sdk.connectors +from thousandeyes_sdk.connectors.rest import ApiException +from pprint import pprint + +# Defining the host is optional and defaults to https://api.thousandeyes.com/v7 +# See configuration.py for a list of all supported configuration parameters. +configuration = thousandeyes_sdk.core.Configuration( + host = "https://api.thousandeyes.com/v7" +) + +# 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: BearerAuth +configuration = thousandeyes_sdk.core.Configuration( + access_token = os.environ["BEARER_TOKEN"] +) + +# Enter a context with an instance of the API client +with thousandeyes_sdk.core.ApiClient(configuration) as api_client: + # Create an instance of the API class + api_instance = thousandeyes_sdk.connectors.CyberArkConjurConnectorsApi(api_client) + id = 'cb1b8033-ea2d-4e9b-a920-fe87850693cf' # str | The connector ID. + confirm_disabled_objects = False # bool | Confirmation to disable affected objects (for example, tests) for Conjur connectors. (default to False) + aid = '1234' # str | A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error response. (optional) + + try: + # Delete a Conjur connector + api_instance.delete_conjur_connector(id, confirm_disabled_objects, aid=aid) + except Exception as e: + print("Exception when calling CyberArkConjurConnectorsApi->delete_conjur_connector: %s\n" % e) +``` + + + +### Parameters + + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **id** | **str**| The connector ID. | + **confirm_disabled_objects** | **bool**| Confirmation to disable affected objects (for example, tests) for Conjur connectors. | [default to False] + **aid** | **str**| A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error response. | [optional] + +### Return type + +void (empty response body) + +### Authorization + +[BearerAuth](../README.md#BearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/problem+json + +### HTTP response details + +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**204** | No Content. | - | +**400** | Bad Request | - | +**401** | Unauthorized | - | +**403** | Insufficient permissions to query endpoint | - | +**404** | Not found | - | +**500** | Internal server 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) + +# **get_conjur_connector** +> ConjurConnector get_conjur_connector(id, aid=aid) + +Retrieve a Conjur connector + +Retrieves details of a CyberArk Conjur connector by its ID. + +### Example + +* Bearer Authentication (BearerAuth): + +```python +import thousandeyes_sdk.connectors +from thousandeyes_sdk.connectors.models.conjur_connector import ConjurConnector +from thousandeyes_sdk.connectors.rest import ApiException +from pprint import pprint + +# Defining the host is optional and defaults to https://api.thousandeyes.com/v7 +# See configuration.py for a list of all supported configuration parameters. +configuration = thousandeyes_sdk.core.Configuration( + host = "https://api.thousandeyes.com/v7" +) + +# 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: BearerAuth +configuration = thousandeyes_sdk.core.Configuration( + access_token = os.environ["BEARER_TOKEN"] +) + +# Enter a context with an instance of the API client +with thousandeyes_sdk.core.ApiClient(configuration) as api_client: + # Create an instance of the API class + api_instance = thousandeyes_sdk.connectors.CyberArkConjurConnectorsApi(api_client) + id = 'cb1b8033-ea2d-4e9b-a920-fe87850693cf' # str | The connector ID. + aid = '1234' # str | A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error response. (optional) + + try: + # Retrieve a Conjur connector + api_response = api_instance.get_conjur_connector(id, aid=aid) + print("The response of CyberArkConjurConnectorsApi->get_conjur_connector:\n") + pprint(api_response) + except Exception as e: + print("Exception when calling CyberArkConjurConnectorsApi->get_conjur_connector: %s\n" % e) +``` + + + +### Parameters + + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **id** | **str**| The connector ID. | + **aid** | **str**| A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error response. | [optional] + +### Return type + +[**ConjurConnector**](ConjurConnector.md) + +### Authorization + +[BearerAuth](../README.md#BearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/hal+json, application/json, application/problem+json + +### HTTP response details + +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**200** | CyberArk Conjur Connector details. | - | +**400** | Bad Request | - | +**401** | Unauthorized | - | +**403** | Insufficient permissions to query endpoint | - | +**404** | Not found | - | +**500** | Internal server 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) + +# **get_conjur_connector_operations** +> Assignments get_conjur_connector_operations(id, aid=aid) + +List operation IDs for a Conjur connector + +Returns a list of operation IDs assigned to a CyberArk Conjur connector. + +### Example + +* Bearer Authentication (BearerAuth): + +```python +import thousandeyes_sdk.connectors +from thousandeyes_sdk.connectors.models.assignments import Assignments +from thousandeyes_sdk.connectors.rest import ApiException +from pprint import pprint + +# Defining the host is optional and defaults to https://api.thousandeyes.com/v7 +# See configuration.py for a list of all supported configuration parameters. +configuration = thousandeyes_sdk.core.Configuration( + host = "https://api.thousandeyes.com/v7" +) + +# 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: BearerAuth +configuration = thousandeyes_sdk.core.Configuration( + access_token = os.environ["BEARER_TOKEN"] +) + +# Enter a context with an instance of the API client +with thousandeyes_sdk.core.ApiClient(configuration) as api_client: + # Create an instance of the API class + api_instance = thousandeyes_sdk.connectors.CyberArkConjurConnectorsApi(api_client) + id = 'cb1b8033-ea2d-4e9b-a920-fe87850693cf' # str | The connector ID. + aid = '1234' # str | A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error response. (optional) + + try: + # List operation IDs for a Conjur connector + api_response = api_instance.get_conjur_connector_operations(id, aid=aid) + print("The response of CyberArkConjurConnectorsApi->get_conjur_connector_operations:\n") + pprint(api_response) + except Exception as e: + print("Exception when calling CyberArkConjurConnectorsApi->get_conjur_connector_operations: %s\n" % e) +``` + + + +### Parameters + + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **id** | **str**| The connector ID. | + **aid** | **str**| A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error response. | [optional] + +### Return type + +[**Assignments**](Assignments.md) + +### Authorization + +[BearerAuth](../README.md#BearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/hal+json, application/json, application/problem+json + +### HTTP response details + +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**200** | A list of assigned operation IDs. | - | +**400** | Bad Request | - | +**401** | Unauthorized | - | +**403** | Insufficient permissions to query endpoint | - | +**404** | Not found | - | +**500** | Internal server 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) + +# **get_conjur_connectors** +> ConjurConnectors get_conjur_connectors(aid=aid) + +List Conjur connectors + +Returns a list of CyberArk Conjur connectors in the specified account group. If no account group is specified, the user’s default account group is used. + +### Example + +* Bearer Authentication (BearerAuth): + +```python +import thousandeyes_sdk.connectors +from thousandeyes_sdk.connectors.models.conjur_connectors import ConjurConnectors +from thousandeyes_sdk.connectors.rest import ApiException +from pprint import pprint + +# Defining the host is optional and defaults to https://api.thousandeyes.com/v7 +# See configuration.py for a list of all supported configuration parameters. +configuration = thousandeyes_sdk.core.Configuration( + host = "https://api.thousandeyes.com/v7" +) + +# 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: BearerAuth +configuration = thousandeyes_sdk.core.Configuration( + access_token = os.environ["BEARER_TOKEN"] +) + +# Enter a context with an instance of the API client +with thousandeyes_sdk.core.ApiClient(configuration) as api_client: + # Create an instance of the API class + api_instance = thousandeyes_sdk.connectors.CyberArkConjurConnectorsApi(api_client) + aid = '1234' # str | A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error response. (optional) + + try: + # List Conjur connectors + api_response = api_instance.get_conjur_connectors(aid=aid) + print("The response of CyberArkConjurConnectorsApi->get_conjur_connectors:\n") + pprint(api_response) + except Exception as e: + print("Exception when calling CyberArkConjurConnectorsApi->get_conjur_connectors: %s\n" % e) +``` + + + +### Parameters + + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **aid** | **str**| A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error response. | [optional] + +### Return type + +[**ConjurConnectors**](ConjurConnectors.md) + +### Authorization + +[BearerAuth](../README.md#BearerAuth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/hal+json, application/json, application/problem+json + +### HTTP response details + +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**200** | A list of Conjur connectors. | - | +**400** | Bad Request | - | +**401** | Unauthorized | - | +**403** | Insufficient permissions to query endpoint | - | +**404** | Not found | - | +**500** | Internal server 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) + +# **set_conjur_connector_operations** +> Assignments set_conjur_connector_operations(id, confirm_disabled_objects, request_body, aid=aid) + +Assign operations to a Conjur connector + +Assigns operations to a CyberArk Conjur connector. This replaces any existing assignments. Note: This operation may disable affected objects (such as tests) if operations are changed. + +### Example + +* Bearer Authentication (BearerAuth): + +```python +import thousandeyes_sdk.connectors +from thousandeyes_sdk.connectors.models.assignments import Assignments +from thousandeyes_sdk.connectors.rest import ApiException +from pprint import pprint + +# Defining the host is optional and defaults to https://api.thousandeyes.com/v7 +# See configuration.py for a list of all supported configuration parameters. +configuration = thousandeyes_sdk.core.Configuration( + host = "https://api.thousandeyes.com/v7" +) + +# 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: BearerAuth +configuration = thousandeyes_sdk.core.Configuration( + access_token = os.environ["BEARER_TOKEN"] +) + +# Enter a context with an instance of the API client +with thousandeyes_sdk.core.ApiClient(configuration) as api_client: + # Create an instance of the API class + api_instance = thousandeyes_sdk.connectors.CyberArkConjurConnectorsApi(api_client) + id = 'cb1b8033-ea2d-4e9b-a920-fe87850693cf' # str | The connector ID. + confirm_disabled_objects = False # bool | Confirmation to disable affected objects (for example, tests) for Conjur connectors. (default to False) + request_body = ["ca39314d-eb4f-496f-9435-b5d20b1bfbff","a32cfbab-32f6-41d8-9027-7127cba965dd"] # List[str] | List of operation IDs to assign to the connector. + aid = '1234' # str | A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error response. (optional) + + try: + # Assign operations to a Conjur connector + api_response = api_instance.set_conjur_connector_operations(id, confirm_disabled_objects, request_body, aid=aid) + print("The response of CyberArkConjurConnectorsApi->set_conjur_connector_operations:\n") + pprint(api_response) + except Exception as e: + print("Exception when calling CyberArkConjurConnectorsApi->set_conjur_connector_operations: %s\n" % e) +``` + + + +### Parameters + + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **id** | **str**| The connector ID. | + **confirm_disabled_objects** | **bool**| Confirmation to disable affected objects (for example, tests) for Conjur connectors. | [default to False] + **request_body** | [**List[str]**](str.md)| List of operation IDs to assign to the connector. | + **aid** | **str**| A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error response. | [optional] + +### Return type + +[**Assignments**](Assignments.md) + +### Authorization + +[BearerAuth](../README.md#BearerAuth) + +### HTTP request headers + + - **Content-Type**: application/json + - **Accept**: application/hal+json, application/json, application/problem+json + +### HTTP response details + +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**200** | Operations assigned successfully. | - | +**400** | Bad Request | - | +**401** | Unauthorized | - | +**403** | Insufficient permissions to query endpoint | - | +**404** | Not found | - | +**500** | Internal server 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) + +# **update_conjur_connector** +> ConjurConnector update_conjur_connector(id, conjur_connector, aid=aid) + +Update a Conjur connector + +Updates the CyberArk Conjur connector specified by ID. + +### Example + +* Bearer Authentication (BearerAuth): + +```python +import thousandeyes_sdk.connectors +from thousandeyes_sdk.connectors.models.conjur_connector import ConjurConnector +from thousandeyes_sdk.connectors.rest import ApiException +from pprint import pprint + +# Defining the host is optional and defaults to https://api.thousandeyes.com/v7 +# See configuration.py for a list of all supported configuration parameters. +configuration = thousandeyes_sdk.core.Configuration( + host = "https://api.thousandeyes.com/v7" +) + +# 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: BearerAuth +configuration = thousandeyes_sdk.core.Configuration( + access_token = os.environ["BEARER_TOKEN"] +) + +# Enter a context with an instance of the API client +with thousandeyes_sdk.core.ApiClient(configuration) as api_client: + # Create an instance of the API class + api_instance = thousandeyes_sdk.connectors.CyberArkConjurConnectorsApi(api_client) + id = 'cb1b8033-ea2d-4e9b-a920-fe87850693cf' # str | The connector ID. + conjur_connector = thousandeyes_sdk.connectors.ConjurConnector() # ConjurConnector | + aid = '1234' # str | A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error response. (optional) + + try: + # Update a Conjur connector + api_response = api_instance.update_conjur_connector(id, conjur_connector, aid=aid) + print("The response of CyberArkConjurConnectorsApi->update_conjur_connector:\n") + pprint(api_response) + except Exception as e: + print("Exception when calling CyberArkConjurConnectorsApi->update_conjur_connector: %s\n" % e) +``` + + + +### Parameters + + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **id** | **str**| The connector ID. | + **conjur_connector** | [**ConjurConnector**](ConjurConnector.md)| | + **aid** | **str**| A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error response. | [optional] + +### Return type + +[**ConjurConnector**](ConjurConnector.md) + +### Authorization + +[BearerAuth](../README.md#BearerAuth) + +### HTTP request headers + + - **Content-Type**: application/json + - **Accept**: application/hal+json, application/json, application/problem+json + +### HTTP response details + +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**200** | The updated connector. | - | +**400** | Bad Request | - | +**401** | Unauthorized | - | +**403** | Insufficient permissions to query endpoint | - | +**404** | Not found | - | +**500** | Internal server 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/thousandeyes-sdk-connectors/docs/GenericConnector.md b/thousandeyes-sdk-connectors/docs/GenericConnector.md index fb364fbe..1fd19e4d 100644 --- a/thousandeyes-sdk-connectors/docs/GenericConnector.md +++ b/thousandeyes-sdk-connectors/docs/GenericConnector.md @@ -9,9 +9,10 @@ Name | Type | Description | Notes **type** | [**ConnectorType**](ConnectorType.md) | | **name** | **str** | | **target** | **str** | | -**authentication** | [**GenericConnectorAuth**](GenericConnectorAuth.md) | | [optional] **last_modified_date** | **int** | The date when the connector was last modified (Unix timestamp in milliseconds). | [optional] [readonly] +**authentication** | [**GenericConnectorAuth**](GenericConnectorAuth.md) | | [optional] **headers** | [**List[Header]**](Header.md) | | [optional] +**links** | [**SelfLinks**](SelfLinks.md) | | [optional] ## Example diff --git a/thousandeyes-sdk-connectors/docs/GenericConnectorAuth.md b/thousandeyes-sdk-connectors/docs/GenericConnectorAuth.md index e77f7732..f28c2f46 100644 --- a/thousandeyes-sdk-connectors/docs/GenericConnectorAuth.md +++ b/thousandeyes-sdk-connectors/docs/GenericConnectorAuth.md @@ -16,6 +16,7 @@ Name | Type | Description | Notes **oauth_client_secret** | **str** | | **code** | **str** | | **redirect_uri** | **str** | | +**scope** | **str** | | [optional] ## Example diff --git a/thousandeyes-sdk-connectors/docs/GenericConnectorsApi.md b/thousandeyes-sdk-connectors/docs/GenericConnectorsApi.md index 1c5a5c37..b94234f9 100644 --- a/thousandeyes-sdk-connectors/docs/GenericConnectorsApi.md +++ b/thousandeyes-sdk-connectors/docs/GenericConnectorsApi.md @@ -8,7 +8,7 @@ Method | HTTP request | Description [**delete_generic_connector**](GenericConnectorsApi.md#delete_generic_connector) | **DELETE** /connectors/generic/{id} | Delete connector [**get_generic_connector**](GenericConnectorsApi.md#get_generic_connector) | **GET** /connectors/generic/{id} | Retrieve connector [**get_generic_connectors**](GenericConnectorsApi.md#get_generic_connectors) | **GET** /connectors/generic | List connectors -[**list_generic_connector_operations**](GenericConnectorsApi.md#list_generic_connector_operations) | **GET** /connectors/generic/{id}/operations | List operation IDs assigned to a connector +[**list_generic_connector_operations**](GenericConnectorsApi.md#list_generic_connector_operations) | **GET** /connectors/generic/{id}/operations | List operation IDs for a connector [**set_generic_connector_operations**](GenericConnectorsApi.md#set_generic_connector_operations) | **PUT** /connectors/generic/{id}/operations | Assign operations to a connector [**update_generic_connector**](GenericConnectorsApi.md#update_generic_connector) | **PUT** /connectors/generic/{id} | Update connector @@ -171,7 +171,7 @@ void (empty response body) | Status code | Description | Response headers | |-------------|-------------|------------------| -**204** | No Content | - | +**204** | No Content. | - | **400** | Bad Request | - | **401** | Unauthorized | - | **403** | Insufficient permissions to query endpoint | - | @@ -351,7 +351,7 @@ Name | Type | Description | Notes # **list_generic_connector_operations** > Assignments list_generic_connector_operations(id, aid=aid) -List operation IDs assigned to a connector +List operation IDs for a connector Returns a list of operation IDs assigned to a connector. @@ -389,7 +389,7 @@ with thousandeyes_sdk.core.ApiClient(configuration) as api_client: aid = '1234' # str | A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error response. (optional) try: - # List operation IDs assigned to a connector + # List operation IDs for a connector api_response = api_instance.list_generic_connector_operations(id, aid=aid) print("The response of GenericConnectorsApi->list_generic_connector_operations:\n") pprint(api_response) diff --git a/thousandeyes-sdk-connectors/docs/Header.md b/thousandeyes-sdk-connectors/docs/Header.md index 7041fe2f..1ad37cc3 100644 --- a/thousandeyes-sdk-connectors/docs/Header.md +++ b/thousandeyes-sdk-connectors/docs/Header.md @@ -6,7 +6,7 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **name** | **str** | | -**value** | **str** | The value of the header. Note that this value is obfuscated in the response, even when overwritten. | +**value** | **str** | | ## Example diff --git a/thousandeyes-sdk-connectors/docs/OauthClientCredentialsAuthentication.md b/thousandeyes-sdk-connectors/docs/OauthClientCredentialsAuthentication.md index d112fd9c..f726871e 100644 --- a/thousandeyes-sdk-connectors/docs/OauthClientCredentialsAuthentication.md +++ b/thousandeyes-sdk-connectors/docs/OauthClientCredentialsAuthentication.md @@ -9,6 +9,7 @@ Name | Type | Description | Notes **oauth_client_id** | **str** | | **oauth_token_url** | **str** | | **oauth_client_secret** | **str** | | +**scope** | **str** | | [optional] **type** | [**AuthenticationType**](AuthenticationType.md) | | ## Example diff --git a/thousandeyes-sdk-connectors/docs/OperationConnectorsApi.md b/thousandeyes-sdk-connectors/docs/OperationConnectorsApi.md index 3924a821..cae1f858 100644 --- a/thousandeyes-sdk-connectors/docs/OperationConnectorsApi.md +++ b/thousandeyes-sdk-connectors/docs/OperationConnectorsApi.md @@ -80,27 +80,27 @@ Name | Type | Description | Notes ### HTTP request headers - **Content-Type**: Not defined - - **Accept**: application/problem+json, application/hal+json, application/json + - **Accept**: application/hal+json, application/json, application/problem+json ### HTTP response details | Status code | Description | Response headers | |-------------|-------------|------------------| -**404** | Not found | - | **200** | A list of assigned connectors. | - | **400** | Bad Request | - | **401** | Unauthorized | - | **403** | Insufficient permissions to query endpoint | - | +**404** | Not found | - | **500** | Internal server 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) # **set_operation_connectors** -> Assignments set_operation_connectors(type, id, request_body, aid=aid) +> Assignments set_operation_connectors(type, id, request_body, confirm_disabled_objects=confirm_disabled_objects, aid=aid) Assign connectors to an operation -Assigns one or more connectors to an operation. This replaces any existing assignments. +Assigns one or more connectors to an operation. This replaces any existing assignments. Note: This operation may disable affected objects (such as tests) if connectors are changed. ### Example @@ -135,11 +135,12 @@ with thousandeyes_sdk.core.ApiClient(configuration) as api_client: type = 'webhooks' # str | The operation type. id = 'cb1b8033-ea2d-4e9b-a920-fe87850693cf' # str | The operation ID. request_body = ["ca39314d-eb4f-496f-9435-b5d20b1bfbff"] # List[str] | List of connector IDs to assign to the operation. + confirm_disabled_objects = False # bool | Confirmation to disable affected objects (for example, tests) for credential-vault operations. (optional) (default to False) aid = '1234' # str | A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error response. (optional) try: # Assign connectors to an operation - api_response = api_instance.set_operation_connectors(type, id, request_body, aid=aid) + api_response = api_instance.set_operation_connectors(type, id, request_body, confirm_disabled_objects=confirm_disabled_objects, aid=aid) print("The response of OperationConnectorsApi->set_operation_connectors:\n") pprint(api_response) except Exception as e: @@ -156,6 +157,7 @@ Name | Type | Description | Notes **type** | **str**| The operation type. | **id** | **str**| The operation ID. | **request_body** | [**List[str]**](str.md)| List of connector IDs to assign to the operation. | + **confirm_disabled_objects** | **bool**| Confirmation to disable affected objects (for example, tests) for credential-vault operations. | [optional] [default to False] **aid** | **str**| A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error response. | [optional] ### Return type @@ -169,17 +171,17 @@ Name | Type | Description | Notes ### HTTP request headers - **Content-Type**: application/json - - **Accept**: application/problem+json, application/hal+json, application/json + - **Accept**: application/hal+json, application/json, application/problem+json ### HTTP response details | Status code | Description | Response headers | |-------------|-------------|------------------| -**404** | Not found | - | **200** | Operation Connectors updated successfully. | - | **400** | Bad Request | - | **401** | Unauthorized | - | **403** | Insufficient permissions to query endpoint | - | +**404** | Not found | - | **500** | Internal server 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/thousandeyes-sdk-connectors/docs/WebhookOperationsApi.md b/thousandeyes-sdk-connectors/docs/WebhookOperationsApi.md index be7076ba..c5c151e2 100644 --- a/thousandeyes-sdk-connectors/docs/WebhookOperationsApi.md +++ b/thousandeyes-sdk-connectors/docs/WebhookOperationsApi.md @@ -169,7 +169,7 @@ void (empty response body) | Status code | Description | Response headers | |-------------|-------------|------------------| -**204** | No Content | - | +**204** | No Content. | - | **400** | Bad Request | - | **401** | Unauthorized | - | **403** | Insufficient permissions to query endpoint | - | diff --git a/thousandeyes-sdk-connectors/src/thousandeyes_sdk/connectors/__init__.py b/thousandeyes-sdk-connectors/src/thousandeyes_sdk/connectors/__init__.py index 3bbabf50..aaecf7e9 100644 --- a/thousandeyes-sdk-connectors/src/thousandeyes_sdk/connectors/__init__.py +++ b/thousandeyes-sdk-connectors/src/thousandeyes_sdk/connectors/__init__.py @@ -14,6 +14,8 @@ # import apis into sdk package +from thousandeyes_sdk.connectors.api.credential_vault_operations_api import CredentialVaultOperationsApi +from thousandeyes_sdk.connectors.api.cyber_ark_conjur_connectors_api import CyberArkConjurConnectorsApi from thousandeyes_sdk.connectors.api.generic_connectors_api import GenericConnectorsApi from thousandeyes_sdk.connectors.api.operation_connectors_api import OperationConnectorsApi from thousandeyes_sdk.connectors.api.webhook_operations_api import WebhookOperationsApi @@ -24,7 +26,13 @@ from thousandeyes_sdk.connectors.models.assignments import Assignments from thousandeyes_sdk.connectors.models.authentication_type import AuthenticationType from thousandeyes_sdk.connectors.models.basic_authentication import BasicAuthentication from thousandeyes_sdk.connectors.models.bearer_token_authentication import BearerTokenAuthentication +from thousandeyes_sdk.connectors.models.conjur_connector import ConjurConnector +from thousandeyes_sdk.connectors.models.conjur_connectors import ConjurConnectors +from thousandeyes_sdk.connectors.models.conjur_host_authentication import ConjurHostAuthentication from thousandeyes_sdk.connectors.models.connector_type import ConnectorType +from thousandeyes_sdk.connectors.models.credential_vault_operation import CredentialVaultOperation +from thousandeyes_sdk.connectors.models.credential_vault_operations import CredentialVaultOperations +from thousandeyes_sdk.connectors.models.credential_vault_secret import CredentialVaultSecret from thousandeyes_sdk.connectors.models.error import Error from thousandeyes_sdk.connectors.models.generic_connector import GenericConnector from thousandeyes_sdk.connectors.models.generic_connector_auth import GenericConnectorAuth diff --git a/thousandeyes-sdk-connectors/src/thousandeyes_sdk/connectors/api/__init__.py b/thousandeyes-sdk-connectors/src/thousandeyes_sdk/connectors/api/__init__.py index 929e0ab8..56f864ae 100644 --- a/thousandeyes-sdk-connectors/src/thousandeyes_sdk/connectors/api/__init__.py +++ b/thousandeyes-sdk-connectors/src/thousandeyes_sdk/connectors/api/__init__.py @@ -1,6 +1,8 @@ # flake8: noqa # import apis into api package +from thousandeyes_sdk.connectors.api.credential_vault_operations_api import CredentialVaultOperationsApi +from thousandeyes_sdk.connectors.api.cyber_ark_conjur_connectors_api import CyberArkConjurConnectorsApi from thousandeyes_sdk.connectors.api.generic_connectors_api import GenericConnectorsApi from thousandeyes_sdk.connectors.api.operation_connectors_api import OperationConnectorsApi from thousandeyes_sdk.connectors.api.webhook_operations_api import WebhookOperationsApi diff --git a/thousandeyes-sdk-connectors/src/thousandeyes_sdk/connectors/api/credential_vault_operations_api.py b/thousandeyes-sdk-connectors/src/thousandeyes_sdk/connectors/api/credential_vault_operations_api.py new file mode 100644 index 00000000..4bb399a9 --- /dev/null +++ b/thousandeyes-sdk-connectors/src/thousandeyes_sdk/connectors/api/credential_vault_operations_api.py @@ -0,0 +1,1556 @@ +# coding: utf-8 + +""" + Integrations API + + **Note:** The Webhook Operations APIs are not available for ThousandEyes for Government instance. Manage connectors and operations. + + 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 importlib.metadata import version + +import thousandeyes_sdk.connectors.models + +from pydantic import Field, StrictBool, StrictStr +from typing import Optional +from typing_extensions import Annotated +from thousandeyes_sdk.connectors.models.credential_vault_operation import CredentialVaultOperation +from thousandeyes_sdk.connectors.models.credential_vault_operations import CredentialVaultOperations + +from thousandeyes_sdk.core.api_client import ApiClient, RequestSerialized +from thousandeyes_sdk.core.api_response import ApiResponse + +from thousandeyes_sdk.core.rest import RESTResponseType + + +class CredentialVaultOperationsApi: + """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() + api_client.user_agent = "ThousandEyesSDK-Python/{0}".format(version("thousandeyes-sdk-connectors")) + self.api_client = api_client + + + @validate_call + def create_credential_vault_operation( + self, + credential_vault_operation: CredentialVaultOperation, + aid: Annotated[Optional[StrictStr], Field(description="A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error 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, + ) -> CredentialVaultOperation: + """Create Credential Vault operation + + Create a new Credential Vault operation. + + :param credential_vault_operation: (required) + :type credential_vault_operation: CredentialVaultOperation + :param aid: A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error response. + :type aid: 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._create_credential_vault_operation_serialize( + credential_vault_operation=credential_vault_operation, + aid=aid, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '201': "CredentialVaultOperation", + '400': "ValidationError", + '401': "UnauthorizedError", + '403': "Error", + '404': "Error", + '500': "Error", + } + 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, + models=thousandeyes_sdk.connectors.models, + ).data + + + @validate_call + def create_credential_vault_operation_with_http_info( + self, + credential_vault_operation: CredentialVaultOperation, + aid: Annotated[Optional[StrictStr], Field(description="A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error 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[CredentialVaultOperation]: + """Create Credential Vault operation + + Create a new Credential Vault operation. + + :param credential_vault_operation: (required) + :type credential_vault_operation: CredentialVaultOperation + :param aid: A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error response. + :type aid: 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._create_credential_vault_operation_serialize( + credential_vault_operation=credential_vault_operation, + aid=aid, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '201': "CredentialVaultOperation", + '400': "ValidationError", + '401': "UnauthorizedError", + '403': "Error", + '404': "Error", + '500': "Error", + } + 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, + models=thousandeyes_sdk.connectors.models, + ) + + + @validate_call + def create_credential_vault_operation_without_preload_content( + self, + credential_vault_operation: CredentialVaultOperation, + aid: Annotated[Optional[StrictStr], Field(description="A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error 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: + """Create Credential Vault operation + + Create a new Credential Vault operation. + + :param credential_vault_operation: (required) + :type credential_vault_operation: CredentialVaultOperation + :param aid: A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error response. + :type aid: 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._create_credential_vault_operation_serialize( + credential_vault_operation=credential_vault_operation, + aid=aid, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '201': "CredentialVaultOperation", + '400': "ValidationError", + '401': "UnauthorizedError", + '403': "Error", + '404': "Error", + '500': "Error", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _create_credential_vault_operation_serialize( + self, + credential_vault_operation, + aid, + _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]] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + # process the query parameters + if aid is not None: + + _query_params.append(('aid', aid)) + + # process the header parameters + # process the form parameters + # process the body parameter + if credential_vault_operation is not None: + _body_params = credential_vault_operation + + + # set the HTTP header `Accept` + _header_params['Accept'] = self.api_client.select_header_accept( + [ + 'application/hal+json', + 'application/json', + 'application/problem+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='/operations/credential-vault', + 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_credential_vault_operation( + self, + id: Annotated[StrictStr, Field(description="The operation ID.")], + confirm_disabled_objects: Annotated[StrictBool, Field(description="Confirmation to disable affected objects (for example, tests) for credential-vault operations.")], + aid: Annotated[Optional[StrictStr], Field(description="A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error 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, + ) -> None: + """Delete Credential Vault operation + + Delete a single Credential Vault operation by its ID. Note: This operation may disable affected objects (such as tests). + + :param id: The operation ID. (required) + :type id: str + :param confirm_disabled_objects: Confirmation to disable affected objects (for example, tests) for credential-vault operations. (required) + :type confirm_disabled_objects: bool + :param aid: A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error response. + :type aid: 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_credential_vault_operation_serialize( + id=id, + confirm_disabled_objects=confirm_disabled_objects, + aid=aid, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '204': None, + '400': "ValidationError", + '401': "UnauthorizedError", + '403': "Error", + '404': "Error", + '500': "Error", + } + 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, + models=thousandeyes_sdk.connectors.models, + ).data + + + @validate_call + def delete_credential_vault_operation_with_http_info( + self, + id: Annotated[StrictStr, Field(description="The operation ID.")], + confirm_disabled_objects: Annotated[StrictBool, Field(description="Confirmation to disable affected objects (for example, tests) for credential-vault operations.")], + aid: Annotated[Optional[StrictStr], Field(description="A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error 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[None]: + """Delete Credential Vault operation + + Delete a single Credential Vault operation by its ID. Note: This operation may disable affected objects (such as tests). + + :param id: The operation ID. (required) + :type id: str + :param confirm_disabled_objects: Confirmation to disable affected objects (for example, tests) for credential-vault operations. (required) + :type confirm_disabled_objects: bool + :param aid: A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error response. + :type aid: 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_credential_vault_operation_serialize( + id=id, + confirm_disabled_objects=confirm_disabled_objects, + aid=aid, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '204': None, + '400': "ValidationError", + '401': "UnauthorizedError", + '403': "Error", + '404': "Error", + '500': "Error", + } + 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, + models=thousandeyes_sdk.connectors.models, + ) + + + @validate_call + def delete_credential_vault_operation_without_preload_content( + self, + id: Annotated[StrictStr, Field(description="The operation ID.")], + confirm_disabled_objects: Annotated[StrictBool, Field(description="Confirmation to disable affected objects (for example, tests) for credential-vault operations.")], + aid: Annotated[Optional[StrictStr], Field(description="A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error 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: + """Delete Credential Vault operation + + Delete a single Credential Vault operation by its ID. Note: This operation may disable affected objects (such as tests). + + :param id: The operation ID. (required) + :type id: str + :param confirm_disabled_objects: Confirmation to disable affected objects (for example, tests) for credential-vault operations. (required) + :type confirm_disabled_objects: bool + :param aid: A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error response. + :type aid: 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_credential_vault_operation_serialize( + id=id, + confirm_disabled_objects=confirm_disabled_objects, + aid=aid, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '204': None, + '400': "ValidationError", + '401': "UnauthorizedError", + '403': "Error", + '404': "Error", + '500': "Error", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _delete_credential_vault_operation_serialize( + self, + id, + confirm_disabled_objects, + aid, + _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]] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + if id is not None: + _path_params['id'] = id + # process the query parameters + if aid is not None: + + _query_params.append(('aid', aid)) + + if confirm_disabled_objects is not None: + + _query_params.append(('confirmDisabledObjects', confirm_disabled_objects)) + + # process the header parameters + # process the form parameters + # process the body parameter + + + # set the HTTP header `Accept` + _header_params['Accept'] = self.api_client.select_header_accept( + [ + 'application/json', + 'application/problem+json' + ] + ) + + + # authentication setting + _auth_settings: List[str] = [ + 'BearerAuth' + ] + + return self.api_client.param_serialize( + method='DELETE', + resource_path='/operations/credential-vault/{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 get_credential_vault_operation( + self, + id: Annotated[StrictStr, Field(description="The operation ID.")], + aid: Annotated[Optional[StrictStr], Field(description="A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error 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, + ) -> CredentialVaultOperation: + """Get Credential Vault operation + + Retrieve a single Credential Vault operation by its ID. + + :param id: The operation ID. (required) + :type id: str + :param aid: A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error response. + :type aid: 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_credential_vault_operation_serialize( + id=id, + aid=aid, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "CredentialVaultOperation", + '400': "ValidationError", + '401': "UnauthorizedError", + '403': "Error", + '404': "Error", + '500': "Error", + } + 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, + models=thousandeyes_sdk.connectors.models, + ).data + + + @validate_call + def get_credential_vault_operation_with_http_info( + self, + id: Annotated[StrictStr, Field(description="The operation ID.")], + aid: Annotated[Optional[StrictStr], Field(description="A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error 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[CredentialVaultOperation]: + """Get Credential Vault operation + + Retrieve a single Credential Vault operation by its ID. + + :param id: The operation ID. (required) + :type id: str + :param aid: A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error response. + :type aid: 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_credential_vault_operation_serialize( + id=id, + aid=aid, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "CredentialVaultOperation", + '400': "ValidationError", + '401': "UnauthorizedError", + '403': "Error", + '404': "Error", + '500': "Error", + } + 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, + models=thousandeyes_sdk.connectors.models, + ) + + + @validate_call + def get_credential_vault_operation_without_preload_content( + self, + id: Annotated[StrictStr, Field(description="The operation ID.")], + aid: Annotated[Optional[StrictStr], Field(description="A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error 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 Credential Vault operation + + Retrieve a single Credential Vault operation by its ID. + + :param id: The operation ID. (required) + :type id: str + :param aid: A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error response. + :type aid: 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_credential_vault_operation_serialize( + id=id, + aid=aid, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "CredentialVaultOperation", + '400': "ValidationError", + '401': "UnauthorizedError", + '403': "Error", + '404': "Error", + '500': "Error", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _get_credential_vault_operation_serialize( + self, + id, + aid, + _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]] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + if id is not None: + _path_params['id'] = id + # process the query parameters + if aid is not None: + + _query_params.append(('aid', aid)) + + # process the header parameters + # process the form parameters + # process the body parameter + + + # set the HTTP header `Accept` + _header_params['Accept'] = self.api_client.select_header_accept( + [ + 'application/hal+json', + 'application/json', + 'application/problem+json' + ] + ) + + + # authentication setting + _auth_settings: List[str] = [ + 'BearerAuth' + ] + + return self.api_client.param_serialize( + method='GET', + resource_path='/operations/credential-vault/{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 get_credential_vault_operations( + self, + aid: Annotated[Optional[StrictStr], Field(description="A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error 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, + ) -> CredentialVaultOperations: + """List Credential Vault operations + + Returns a list of Credential Vault operations in the specified account group. If no account group is specified, the user's default account group is used. + + :param aid: A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error response. + :type aid: 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_credential_vault_operations_serialize( + aid=aid, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "CredentialVaultOperations", + '400': "ValidationError", + '401': "UnauthorizedError", + '403': "Error", + '404': "Error", + '500': "Error", + } + 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, + models=thousandeyes_sdk.connectors.models, + ).data + + + @validate_call + def get_credential_vault_operations_with_http_info( + self, + aid: Annotated[Optional[StrictStr], Field(description="A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error 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[CredentialVaultOperations]: + """List Credential Vault operations + + Returns a list of Credential Vault operations in the specified account group. If no account group is specified, the user's default account group is used. + + :param aid: A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error response. + :type aid: 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_credential_vault_operations_serialize( + aid=aid, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "CredentialVaultOperations", + '400': "ValidationError", + '401': "UnauthorizedError", + '403': "Error", + '404': "Error", + '500': "Error", + } + 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, + models=thousandeyes_sdk.connectors.models, + ) + + + @validate_call + def get_credential_vault_operations_without_preload_content( + self, + aid: Annotated[Optional[StrictStr], Field(description="A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error 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 Credential Vault operations + + Returns a list of Credential Vault operations in the specified account group. If no account group is specified, the user's default account group is used. + + :param aid: A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error response. + :type aid: 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_credential_vault_operations_serialize( + aid=aid, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "CredentialVaultOperations", + '400': "ValidationError", + '401': "UnauthorizedError", + '403': "Error", + '404': "Error", + '500': "Error", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _get_credential_vault_operations_serialize( + self, + aid, + _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]] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + # process the query parameters + if aid is not None: + + _query_params.append(('aid', aid)) + + # process the header parameters + # process the form parameters + # process the body parameter + + + # set the HTTP header `Accept` + _header_params['Accept'] = self.api_client.select_header_accept( + [ + 'application/hal+json', + 'application/json', + 'application/problem+json' + ] + ) + + + # authentication setting + _auth_settings: List[str] = [ + 'BearerAuth' + ] + + return self.api_client.param_serialize( + method='GET', + resource_path='/operations/credential-vault', + 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_credential_vault_operation( + self, + id: Annotated[StrictStr, Field(description="The operation ID.")], + credential_vault_operation: CredentialVaultOperation, + aid: Annotated[Optional[StrictStr], Field(description="A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error 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, + ) -> CredentialVaultOperation: + """Update Credential Vault operation + + Update a single existing Credential Vault operation. + + :param id: The operation ID. (required) + :type id: str + :param credential_vault_operation: (required) + :type credential_vault_operation: CredentialVaultOperation + :param aid: A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error response. + :type aid: 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._update_credential_vault_operation_serialize( + id=id, + credential_vault_operation=credential_vault_operation, + aid=aid, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "CredentialVaultOperation", + '400': "ValidationError", + '401': "UnauthorizedError", + '403': "Error", + '404': "Error", + '500': "Error", + } + 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, + models=thousandeyes_sdk.connectors.models, + ).data + + + @validate_call + def update_credential_vault_operation_with_http_info( + self, + id: Annotated[StrictStr, Field(description="The operation ID.")], + credential_vault_operation: CredentialVaultOperation, + aid: Annotated[Optional[StrictStr], Field(description="A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error 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[CredentialVaultOperation]: + """Update Credential Vault operation + + Update a single existing Credential Vault operation. + + :param id: The operation ID. (required) + :type id: str + :param credential_vault_operation: (required) + :type credential_vault_operation: CredentialVaultOperation + :param aid: A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error response. + :type aid: 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._update_credential_vault_operation_serialize( + id=id, + credential_vault_operation=credential_vault_operation, + aid=aid, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "CredentialVaultOperation", + '400': "ValidationError", + '401': "UnauthorizedError", + '403': "Error", + '404': "Error", + '500': "Error", + } + 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, + models=thousandeyes_sdk.connectors.models, + ) + + + @validate_call + def update_credential_vault_operation_without_preload_content( + self, + id: Annotated[StrictStr, Field(description="The operation ID.")], + credential_vault_operation: CredentialVaultOperation, + aid: Annotated[Optional[StrictStr], Field(description="A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error 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: + """Update Credential Vault operation + + Update a single existing Credential Vault operation. + + :param id: The operation ID. (required) + :type id: str + :param credential_vault_operation: (required) + :type credential_vault_operation: CredentialVaultOperation + :param aid: A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error response. + :type aid: 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._update_credential_vault_operation_serialize( + id=id, + credential_vault_operation=credential_vault_operation, + aid=aid, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "CredentialVaultOperation", + '400': "ValidationError", + '401': "UnauthorizedError", + '403': "Error", + '404': "Error", + '500': "Error", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _update_credential_vault_operation_serialize( + self, + id, + credential_vault_operation, + aid, + _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]] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + if id is not None: + _path_params['id'] = id + # process the query parameters + if aid is not None: + + _query_params.append(('aid', aid)) + + # process the header parameters + # process the form parameters + # process the body parameter + if credential_vault_operation is not None: + _body_params = credential_vault_operation + + + # set the HTTP header `Accept` + _header_params['Accept'] = self.api_client.select_header_accept( + [ + 'application/hal+json', + 'application/json', + 'application/problem+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='/operations/credential-vault/{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 + ) + + diff --git a/thousandeyes-sdk-connectors/src/thousandeyes_sdk/connectors/api/cyber_ark_conjur_connectors_api.py b/thousandeyes-sdk-connectors/src/thousandeyes_sdk/connectors/api/cyber_ark_conjur_connectors_api.py new file mode 100644 index 00000000..cb45747d --- /dev/null +++ b/thousandeyes-sdk-connectors/src/thousandeyes_sdk/connectors/api/cyber_ark_conjur_connectors_api.py @@ -0,0 +1,2191 @@ +# coding: utf-8 + +""" + Integrations API + + **Note:** The Webhook Operations APIs are not available for ThousandEyes for Government instance. Manage connectors and operations. + + 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 importlib.metadata import version + +import thousandeyes_sdk.connectors.models + +from pydantic import Field, StrictBool, StrictStr +from typing import List, Optional +from typing_extensions import Annotated +from thousandeyes_sdk.connectors.models.assignments import Assignments +from thousandeyes_sdk.connectors.models.conjur_connector import ConjurConnector +from thousandeyes_sdk.connectors.models.conjur_connectors import ConjurConnectors + +from thousandeyes_sdk.core.api_client import ApiClient, RequestSerialized +from thousandeyes_sdk.core.api_response import ApiResponse + +from thousandeyes_sdk.core.rest import RESTResponseType + + +class CyberArkConjurConnectorsApi: + """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() + api_client.user_agent = "ThousandEyesSDK-Python/{0}".format(version("thousandeyes-sdk-connectors")) + self.api_client = api_client + + + @validate_call + def create_conjur_connector( + self, + conjur_connector: ConjurConnector, + aid: Annotated[Optional[StrictStr], Field(description="A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error 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, + ) -> ConjurConnector: + """Create Conjur connector + + Creates a new CyberArk Conjur connector. + + :param conjur_connector: (required) + :type conjur_connector: ConjurConnector + :param aid: A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error response. + :type aid: 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._create_conjur_connector_serialize( + conjur_connector=conjur_connector, + aid=aid, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '201': "ConjurConnector", + '400': "ValidationError", + '401': "UnauthorizedError", + '403': "Error", + '404': "Error", + '500': "Error", + } + 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, + models=thousandeyes_sdk.connectors.models, + ).data + + + @validate_call + def create_conjur_connector_with_http_info( + self, + conjur_connector: ConjurConnector, + aid: Annotated[Optional[StrictStr], Field(description="A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error 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[ConjurConnector]: + """Create Conjur connector + + Creates a new CyberArk Conjur connector. + + :param conjur_connector: (required) + :type conjur_connector: ConjurConnector + :param aid: A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error response. + :type aid: 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._create_conjur_connector_serialize( + conjur_connector=conjur_connector, + aid=aid, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '201': "ConjurConnector", + '400': "ValidationError", + '401': "UnauthorizedError", + '403': "Error", + '404': "Error", + '500': "Error", + } + 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, + models=thousandeyes_sdk.connectors.models, + ) + + + @validate_call + def create_conjur_connector_without_preload_content( + self, + conjur_connector: ConjurConnector, + aid: Annotated[Optional[StrictStr], Field(description="A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error 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: + """Create Conjur connector + + Creates a new CyberArk Conjur connector. + + :param conjur_connector: (required) + :type conjur_connector: ConjurConnector + :param aid: A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error response. + :type aid: 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._create_conjur_connector_serialize( + conjur_connector=conjur_connector, + aid=aid, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '201': "ConjurConnector", + '400': "ValidationError", + '401': "UnauthorizedError", + '403': "Error", + '404': "Error", + '500': "Error", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _create_conjur_connector_serialize( + self, + conjur_connector, + aid, + _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]] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + # process the query parameters + if aid is not None: + + _query_params.append(('aid', aid)) + + # process the header parameters + # process the form parameters + # process the body parameter + if conjur_connector is not None: + _body_params = conjur_connector + + + # set the HTTP header `Accept` + _header_params['Accept'] = self.api_client.select_header_accept( + [ + 'application/hal+json', + 'application/json', + 'application/problem+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='/connectors/conjur', + 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_conjur_connector( + self, + id: Annotated[StrictStr, Field(description="The connector ID.")], + confirm_disabled_objects: Annotated[StrictBool, Field(description="Confirmation to disable affected objects (for example, tests) for Conjur connectors.")], + aid: Annotated[Optional[StrictStr], Field(description="A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error 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, + ) -> None: + """Delete a Conjur connector + + Deleted the CyberArk Conjur connector specified by ID. Note: This operation may disable affected objects (such as tests). + + :param id: The connector ID. (required) + :type id: str + :param confirm_disabled_objects: Confirmation to disable affected objects (for example, tests) for Conjur connectors. (required) + :type confirm_disabled_objects: bool + :param aid: A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error response. + :type aid: 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_conjur_connector_serialize( + id=id, + confirm_disabled_objects=confirm_disabled_objects, + aid=aid, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '204': None, + '400': "ValidationError", + '401': "UnauthorizedError", + '403': "Error", + '404': "Error", + '500': "Error", + } + 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, + models=thousandeyes_sdk.connectors.models, + ).data + + + @validate_call + def delete_conjur_connector_with_http_info( + self, + id: Annotated[StrictStr, Field(description="The connector ID.")], + confirm_disabled_objects: Annotated[StrictBool, Field(description="Confirmation to disable affected objects (for example, tests) for Conjur connectors.")], + aid: Annotated[Optional[StrictStr], Field(description="A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error 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[None]: + """Delete a Conjur connector + + Deleted the CyberArk Conjur connector specified by ID. Note: This operation may disable affected objects (such as tests). + + :param id: The connector ID. (required) + :type id: str + :param confirm_disabled_objects: Confirmation to disable affected objects (for example, tests) for Conjur connectors. (required) + :type confirm_disabled_objects: bool + :param aid: A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error response. + :type aid: 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_conjur_connector_serialize( + id=id, + confirm_disabled_objects=confirm_disabled_objects, + aid=aid, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '204': None, + '400': "ValidationError", + '401': "UnauthorizedError", + '403': "Error", + '404': "Error", + '500': "Error", + } + 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, + models=thousandeyes_sdk.connectors.models, + ) + + + @validate_call + def delete_conjur_connector_without_preload_content( + self, + id: Annotated[StrictStr, Field(description="The connector ID.")], + confirm_disabled_objects: Annotated[StrictBool, Field(description="Confirmation to disable affected objects (for example, tests) for Conjur connectors.")], + aid: Annotated[Optional[StrictStr], Field(description="A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error 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: + """Delete a Conjur connector + + Deleted the CyberArk Conjur connector specified by ID. Note: This operation may disable affected objects (such as tests). + + :param id: The connector ID. (required) + :type id: str + :param confirm_disabled_objects: Confirmation to disable affected objects (for example, tests) for Conjur connectors. (required) + :type confirm_disabled_objects: bool + :param aid: A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error response. + :type aid: 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_conjur_connector_serialize( + id=id, + confirm_disabled_objects=confirm_disabled_objects, + aid=aid, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '204': None, + '400': "ValidationError", + '401': "UnauthorizedError", + '403': "Error", + '404': "Error", + '500': "Error", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _delete_conjur_connector_serialize( + self, + id, + confirm_disabled_objects, + aid, + _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]] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + if id is not None: + _path_params['id'] = id + # process the query parameters + if aid is not None: + + _query_params.append(('aid', aid)) + + if confirm_disabled_objects is not None: + + _query_params.append(('confirmDisabledObjects', confirm_disabled_objects)) + + # process the header parameters + # process the form parameters + # process the body parameter + + + # set the HTTP header `Accept` + _header_params['Accept'] = self.api_client.select_header_accept( + [ + 'application/json', + 'application/problem+json' + ] + ) + + + # authentication setting + _auth_settings: List[str] = [ + 'BearerAuth' + ] + + return self.api_client.param_serialize( + method='DELETE', + resource_path='/connectors/conjur/{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 get_conjur_connector( + self, + id: Annotated[StrictStr, Field(description="The connector ID.")], + aid: Annotated[Optional[StrictStr], Field(description="A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error 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, + ) -> ConjurConnector: + """Retrieve a Conjur connector + + Retrieves details of a CyberArk Conjur connector by its ID. + + :param id: The connector ID. (required) + :type id: str + :param aid: A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error response. + :type aid: 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_conjur_connector_serialize( + id=id, + aid=aid, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "ConjurConnector", + '400': "ValidationError", + '401': "UnauthorizedError", + '403': "Error", + '404': "Error", + '500': "Error", + } + 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, + models=thousandeyes_sdk.connectors.models, + ).data + + + @validate_call + def get_conjur_connector_with_http_info( + self, + id: Annotated[StrictStr, Field(description="The connector ID.")], + aid: Annotated[Optional[StrictStr], Field(description="A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error 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[ConjurConnector]: + """Retrieve a Conjur connector + + Retrieves details of a CyberArk Conjur connector by its ID. + + :param id: The connector ID. (required) + :type id: str + :param aid: A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error response. + :type aid: 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_conjur_connector_serialize( + id=id, + aid=aid, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "ConjurConnector", + '400': "ValidationError", + '401': "UnauthorizedError", + '403': "Error", + '404': "Error", + '500': "Error", + } + 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, + models=thousandeyes_sdk.connectors.models, + ) + + + @validate_call + def get_conjur_connector_without_preload_content( + self, + id: Annotated[StrictStr, Field(description="The connector ID.")], + aid: Annotated[Optional[StrictStr], Field(description="A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error 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: + """Retrieve a Conjur connector + + Retrieves details of a CyberArk Conjur connector by its ID. + + :param id: The connector ID. (required) + :type id: str + :param aid: A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error response. + :type aid: 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_conjur_connector_serialize( + id=id, + aid=aid, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "ConjurConnector", + '400': "ValidationError", + '401': "UnauthorizedError", + '403': "Error", + '404': "Error", + '500': "Error", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _get_conjur_connector_serialize( + self, + id, + aid, + _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]] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + if id is not None: + _path_params['id'] = id + # process the query parameters + if aid is not None: + + _query_params.append(('aid', aid)) + + # process the header parameters + # process the form parameters + # process the body parameter + + + # set the HTTP header `Accept` + _header_params['Accept'] = self.api_client.select_header_accept( + [ + 'application/hal+json', + 'application/json', + 'application/problem+json' + ] + ) + + + # authentication setting + _auth_settings: List[str] = [ + 'BearerAuth' + ] + + return self.api_client.param_serialize( + method='GET', + resource_path='/connectors/conjur/{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 get_conjur_connector_operations( + self, + id: Annotated[StrictStr, Field(description="The connector ID.")], + aid: Annotated[Optional[StrictStr], Field(description="A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error 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, + ) -> Assignments: + """List operation IDs for a Conjur connector + + Returns a list of operation IDs assigned to a CyberArk Conjur connector. + + :param id: The connector ID. (required) + :type id: str + :param aid: A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error response. + :type aid: 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_conjur_connector_operations_serialize( + id=id, + aid=aid, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "Assignments", + '400': "ValidationError", + '401': "UnauthorizedError", + '403': "Error", + '404': "Error", + '500': "Error", + } + 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, + models=thousandeyes_sdk.connectors.models, + ).data + + + @validate_call + def get_conjur_connector_operations_with_http_info( + self, + id: Annotated[StrictStr, Field(description="The connector ID.")], + aid: Annotated[Optional[StrictStr], Field(description="A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error 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[Assignments]: + """List operation IDs for a Conjur connector + + Returns a list of operation IDs assigned to a CyberArk Conjur connector. + + :param id: The connector ID. (required) + :type id: str + :param aid: A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error response. + :type aid: 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_conjur_connector_operations_serialize( + id=id, + aid=aid, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "Assignments", + '400': "ValidationError", + '401': "UnauthorizedError", + '403': "Error", + '404': "Error", + '500': "Error", + } + 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, + models=thousandeyes_sdk.connectors.models, + ) + + + @validate_call + def get_conjur_connector_operations_without_preload_content( + self, + id: Annotated[StrictStr, Field(description="The connector ID.")], + aid: Annotated[Optional[StrictStr], Field(description="A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error 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 operation IDs for a Conjur connector + + Returns a list of operation IDs assigned to a CyberArk Conjur connector. + + :param id: The connector ID. (required) + :type id: str + :param aid: A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error response. + :type aid: 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_conjur_connector_operations_serialize( + id=id, + aid=aid, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "Assignments", + '400': "ValidationError", + '401': "UnauthorizedError", + '403': "Error", + '404': "Error", + '500': "Error", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _get_conjur_connector_operations_serialize( + self, + id, + aid, + _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]] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + if id is not None: + _path_params['id'] = id + # process the query parameters + if aid is not None: + + _query_params.append(('aid', aid)) + + # process the header parameters + # process the form parameters + # process the body parameter + + + # set the HTTP header `Accept` + _header_params['Accept'] = self.api_client.select_header_accept( + [ + 'application/hal+json', + 'application/json', + 'application/problem+json' + ] + ) + + + # authentication setting + _auth_settings: List[str] = [ + 'BearerAuth' + ] + + return self.api_client.param_serialize( + method='GET', + resource_path='/connectors/conjur/{id}/operations', + 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_conjur_connectors( + self, + aid: Annotated[Optional[StrictStr], Field(description="A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error 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, + ) -> ConjurConnectors: + """List Conjur connectors + + Returns a list of CyberArk Conjur connectors in the specified account group. If no account group is specified, the user’s default account group is used. + + :param aid: A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error response. + :type aid: 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_conjur_connectors_serialize( + aid=aid, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "ConjurConnectors", + '400': "ValidationError", + '401': "UnauthorizedError", + '403': "Error", + '404': "Error", + '500': "Error", + } + 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, + models=thousandeyes_sdk.connectors.models, + ).data + + + @validate_call + def get_conjur_connectors_with_http_info( + self, + aid: Annotated[Optional[StrictStr], Field(description="A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error 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[ConjurConnectors]: + """List Conjur connectors + + Returns a list of CyberArk Conjur connectors in the specified account group. If no account group is specified, the user’s default account group is used. + + :param aid: A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error response. + :type aid: 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_conjur_connectors_serialize( + aid=aid, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "ConjurConnectors", + '400': "ValidationError", + '401': "UnauthorizedError", + '403': "Error", + '404': "Error", + '500': "Error", + } + 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, + models=thousandeyes_sdk.connectors.models, + ) + + + @validate_call + def get_conjur_connectors_without_preload_content( + self, + aid: Annotated[Optional[StrictStr], Field(description="A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error 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 Conjur connectors + + Returns a list of CyberArk Conjur connectors in the specified account group. If no account group is specified, the user’s default account group is used. + + :param aid: A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error response. + :type aid: 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_conjur_connectors_serialize( + aid=aid, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "ConjurConnectors", + '400': "ValidationError", + '401': "UnauthorizedError", + '403': "Error", + '404': "Error", + '500': "Error", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _get_conjur_connectors_serialize( + self, + aid, + _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]] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + # process the query parameters + if aid is not None: + + _query_params.append(('aid', aid)) + + # process the header parameters + # process the form parameters + # process the body parameter + + + # set the HTTP header `Accept` + _header_params['Accept'] = self.api_client.select_header_accept( + [ + 'application/hal+json', + 'application/json', + 'application/problem+json' + ] + ) + + + # authentication setting + _auth_settings: List[str] = [ + 'BearerAuth' + ] + + return self.api_client.param_serialize( + method='GET', + resource_path='/connectors/conjur', + 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 set_conjur_connector_operations( + self, + id: Annotated[StrictStr, Field(description="The connector ID.")], + confirm_disabled_objects: Annotated[StrictBool, Field(description="Confirmation to disable affected objects (for example, tests) for Conjur connectors.")], + request_body: Annotated[List[StrictStr], Field(description="List of operation IDs to assign to the connector.")], + aid: Annotated[Optional[StrictStr], Field(description="A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error 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, + ) -> Assignments: + """Assign operations to a Conjur connector + + Assigns operations to a CyberArk Conjur connector. This replaces any existing assignments. Note: This operation may disable affected objects (such as tests) if operations are changed. + + :param id: The connector ID. (required) + :type id: str + :param confirm_disabled_objects: Confirmation to disable affected objects (for example, tests) for Conjur connectors. (required) + :type confirm_disabled_objects: bool + :param request_body: List of operation IDs to assign to the connector. (required) + :type request_body: List[str] + :param aid: A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error response. + :type aid: 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._set_conjur_connector_operations_serialize( + id=id, + confirm_disabled_objects=confirm_disabled_objects, + request_body=request_body, + aid=aid, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "Assignments", + '400': "ValidationError", + '401': "UnauthorizedError", + '403': "Error", + '404': "Error", + '500': "Error", + } + 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, + models=thousandeyes_sdk.connectors.models, + ).data + + + @validate_call + def set_conjur_connector_operations_with_http_info( + self, + id: Annotated[StrictStr, Field(description="The connector ID.")], + confirm_disabled_objects: Annotated[StrictBool, Field(description="Confirmation to disable affected objects (for example, tests) for Conjur connectors.")], + request_body: Annotated[List[StrictStr], Field(description="List of operation IDs to assign to the connector.")], + aid: Annotated[Optional[StrictStr], Field(description="A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error 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[Assignments]: + """Assign operations to a Conjur connector + + Assigns operations to a CyberArk Conjur connector. This replaces any existing assignments. Note: This operation may disable affected objects (such as tests) if operations are changed. + + :param id: The connector ID. (required) + :type id: str + :param confirm_disabled_objects: Confirmation to disable affected objects (for example, tests) for Conjur connectors. (required) + :type confirm_disabled_objects: bool + :param request_body: List of operation IDs to assign to the connector. (required) + :type request_body: List[str] + :param aid: A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error response. + :type aid: 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._set_conjur_connector_operations_serialize( + id=id, + confirm_disabled_objects=confirm_disabled_objects, + request_body=request_body, + aid=aid, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "Assignments", + '400': "ValidationError", + '401': "UnauthorizedError", + '403': "Error", + '404': "Error", + '500': "Error", + } + 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, + models=thousandeyes_sdk.connectors.models, + ) + + + @validate_call + def set_conjur_connector_operations_without_preload_content( + self, + id: Annotated[StrictStr, Field(description="The connector ID.")], + confirm_disabled_objects: Annotated[StrictBool, Field(description="Confirmation to disable affected objects (for example, tests) for Conjur connectors.")], + request_body: Annotated[List[StrictStr], Field(description="List of operation IDs to assign to the connector.")], + aid: Annotated[Optional[StrictStr], Field(description="A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error 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: + """Assign operations to a Conjur connector + + Assigns operations to a CyberArk Conjur connector. This replaces any existing assignments. Note: This operation may disable affected objects (such as tests) if operations are changed. + + :param id: The connector ID. (required) + :type id: str + :param confirm_disabled_objects: Confirmation to disable affected objects (for example, tests) for Conjur connectors. (required) + :type confirm_disabled_objects: bool + :param request_body: List of operation IDs to assign to the connector. (required) + :type request_body: List[str] + :param aid: A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error response. + :type aid: 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._set_conjur_connector_operations_serialize( + id=id, + confirm_disabled_objects=confirm_disabled_objects, + request_body=request_body, + aid=aid, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "Assignments", + '400': "ValidationError", + '401': "UnauthorizedError", + '403': "Error", + '404': "Error", + '500': "Error", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _set_conjur_connector_operations_serialize( + self, + id, + confirm_disabled_objects, + request_body, + aid, + _request_auth, + _content_type, + _headers, + _host_index, + ) -> RequestSerialized: + + _host = None + + _collection_formats: Dict[str, str] = { + 'request_body': '', + } + + _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]] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + if id is not None: + _path_params['id'] = id + # process the query parameters + if confirm_disabled_objects is not None: + + _query_params.append(('confirmDisabledObjects', confirm_disabled_objects)) + + if aid is not None: + + _query_params.append(('aid', aid)) + + # process the header parameters + # process the form parameters + # process the body parameter + if request_body is not None: + _body_params = request_body + + + # set the HTTP header `Accept` + _header_params['Accept'] = self.api_client.select_header_accept( + [ + 'application/hal+json', + 'application/json', + 'application/problem+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='/connectors/conjur/{id}/operations', + 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_conjur_connector( + self, + id: Annotated[StrictStr, Field(description="The connector ID.")], + conjur_connector: ConjurConnector, + aid: Annotated[Optional[StrictStr], Field(description="A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error 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, + ) -> ConjurConnector: + """Update a Conjur connector + + Updates the CyberArk Conjur connector specified by ID. + + :param id: The connector ID. (required) + :type id: str + :param conjur_connector: (required) + :type conjur_connector: ConjurConnector + :param aid: A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error response. + :type aid: 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._update_conjur_connector_serialize( + id=id, + conjur_connector=conjur_connector, + aid=aid, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "ConjurConnector", + '400': "ValidationError", + '401': "UnauthorizedError", + '403': "Error", + '404': "Error", + '500': "Error", + } + 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, + models=thousandeyes_sdk.connectors.models, + ).data + + + @validate_call + def update_conjur_connector_with_http_info( + self, + id: Annotated[StrictStr, Field(description="The connector ID.")], + conjur_connector: ConjurConnector, + aid: Annotated[Optional[StrictStr], Field(description="A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error 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[ConjurConnector]: + """Update a Conjur connector + + Updates the CyberArk Conjur connector specified by ID. + + :param id: The connector ID. (required) + :type id: str + :param conjur_connector: (required) + :type conjur_connector: ConjurConnector + :param aid: A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error response. + :type aid: 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._update_conjur_connector_serialize( + id=id, + conjur_connector=conjur_connector, + aid=aid, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "ConjurConnector", + '400': "ValidationError", + '401': "UnauthorizedError", + '403': "Error", + '404': "Error", + '500': "Error", + } + 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, + models=thousandeyes_sdk.connectors.models, + ) + + + @validate_call + def update_conjur_connector_without_preload_content( + self, + id: Annotated[StrictStr, Field(description="The connector ID.")], + conjur_connector: ConjurConnector, + aid: Annotated[Optional[StrictStr], Field(description="A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error 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: + """Update a Conjur connector + + Updates the CyberArk Conjur connector specified by ID. + + :param id: The connector ID. (required) + :type id: str + :param conjur_connector: (required) + :type conjur_connector: ConjurConnector + :param aid: A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error response. + :type aid: 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._update_conjur_connector_serialize( + id=id, + conjur_connector=conjur_connector, + aid=aid, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "ConjurConnector", + '400': "ValidationError", + '401': "UnauthorizedError", + '403': "Error", + '404': "Error", + '500': "Error", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _update_conjur_connector_serialize( + self, + id, + conjur_connector, + aid, + _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]] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + if id is not None: + _path_params['id'] = id + # process the query parameters + if aid is not None: + + _query_params.append(('aid', aid)) + + # process the header parameters + # process the form parameters + # process the body parameter + if conjur_connector is not None: + _body_params = conjur_connector + + + # set the HTTP header `Accept` + _header_params['Accept'] = self.api_client.select_header_accept( + [ + 'application/hal+json', + 'application/json', + 'application/problem+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='/connectors/conjur/{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 + ) + + diff --git a/thousandeyes-sdk-connectors/src/thousandeyes_sdk/connectors/api/generic_connectors_api.py b/thousandeyes-sdk-connectors/src/thousandeyes_sdk/connectors/api/generic_connectors_api.py index 1371d51c..6d5b00b7 100644 --- a/thousandeyes-sdk-connectors/src/thousandeyes_sdk/connectors/api/generic_connectors_api.py +++ b/thousandeyes-sdk-connectors/src/thousandeyes_sdk/connectors/api/generic_connectors_api.py @@ -1236,7 +1236,7 @@ class GenericConnectorsApi: _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, ) -> Assignments: - """List operation IDs assigned to a connector + """List operation IDs for a connector Returns a list of operation IDs assigned to a connector. @@ -1313,7 +1313,7 @@ class GenericConnectorsApi: _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, ) -> ApiResponse[Assignments]: - """List operation IDs assigned to a connector + """List operation IDs for a connector Returns a list of operation IDs assigned to a connector. @@ -1390,7 +1390,7 @@ class GenericConnectorsApi: _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, ) -> RESTResponseType: - """List operation IDs assigned to a connector + """List operation IDs for a connector Returns a list of operation IDs assigned to a connector. diff --git a/thousandeyes-sdk-connectors/src/thousandeyes_sdk/connectors/api/operation_connectors_api.py b/thousandeyes-sdk-connectors/src/thousandeyes_sdk/connectors/api/operation_connectors_api.py index 5d7784e0..2ef4d81a 100644 --- a/thousandeyes-sdk-connectors/src/thousandeyes_sdk/connectors/api/operation_connectors_api.py +++ b/thousandeyes-sdk-connectors/src/thousandeyes_sdk/connectors/api/operation_connectors_api.py @@ -18,7 +18,7 @@ from importlib.metadata import version import thousandeyes_sdk.connectors.models -from pydantic import Field, StrictStr +from pydantic import Field, StrictBool, StrictStr from typing import List, Optional from typing_extensions import Annotated from thousandeyes_sdk.connectors.models.assignments import Assignments @@ -105,11 +105,11 @@ class OperationConnectorsApi: ) _response_types_map: Dict[str, Optional[str]] = { - '404': "Error", '200': "Assignments", '400': "ValidationError", '401': "UnauthorizedError", '403': "Error", + '404': "Error", '500': "Error", } response_data = self.api_client.call_api( @@ -186,11 +186,11 @@ class OperationConnectorsApi: ) _response_types_map: Dict[str, Optional[str]] = { - '404': "Error", '200': "Assignments", '400': "ValidationError", '401': "UnauthorizedError", '403': "Error", + '404': "Error", '500': "Error", } response_data = self.api_client.call_api( @@ -267,11 +267,11 @@ class OperationConnectorsApi: ) _response_types_map: Dict[str, Optional[str]] = { - '404': "Error", '200': "Assignments", '400': "ValidationError", '401': "UnauthorizedError", '403': "Error", + '404': "Error", '500': "Error", } response_data = self.api_client.call_api( @@ -322,9 +322,9 @@ class OperationConnectorsApi: # set the HTTP header `Accept` _header_params['Accept'] = self.api_client.select_header_accept( [ - 'application/problem+json', 'application/hal+json', - 'application/json' + 'application/json', + 'application/problem+json' ] ) @@ -358,6 +358,7 @@ class OperationConnectorsApi: type: Annotated[StrictStr, Field(description="The operation type.")], id: Annotated[StrictStr, Field(description="The operation ID.")], request_body: Annotated[List[StrictStr], Field(min_length=0, max_length=1, description="List of connector IDs to assign to the operation.")], + confirm_disabled_objects: Annotated[Optional[StrictBool], Field(description="Confirmation to disable affected objects (for example, tests) for credential-vault operations.")] = None, aid: Annotated[Optional[StrictStr], Field(description="A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error response.")] = None, _request_timeout: Union[ None, @@ -374,7 +375,7 @@ class OperationConnectorsApi: ) -> Assignments: """Assign connectors to an operation - Assigns one or more connectors to an operation. This replaces any existing assignments. + Assigns one or more connectors to an operation. This replaces any existing assignments. Note: This operation may disable affected objects (such as tests) if connectors are changed. :param type: The operation type. (required) :type type: str @@ -382,6 +383,8 @@ class OperationConnectorsApi: :type id: str :param request_body: List of connector IDs to assign to the operation. (required) :type request_body: List[str] + :param confirm_disabled_objects: Confirmation to disable affected objects (for example, tests) for credential-vault operations. + :type confirm_disabled_objects: bool :param aid: A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error response. :type aid: str :param _request_timeout: timeout setting for this request. If one @@ -410,6 +413,7 @@ class OperationConnectorsApi: type=type, id=id, request_body=request_body, + confirm_disabled_objects=confirm_disabled_objects, aid=aid, _request_auth=_request_auth, _content_type=_content_type, @@ -418,11 +422,11 @@ class OperationConnectorsApi: ) _response_types_map: Dict[str, Optional[str]] = { - '404': "Error", '200': "Assignments", '400': "ValidationError", '401': "UnauthorizedError", '403': "Error", + '404': "Error", '500': "Error", } response_data = self.api_client.call_api( @@ -443,6 +447,7 @@ class OperationConnectorsApi: type: Annotated[StrictStr, Field(description="The operation type.")], id: Annotated[StrictStr, Field(description="The operation ID.")], request_body: Annotated[List[StrictStr], Field(min_length=0, max_length=1, description="List of connector IDs to assign to the operation.")], + confirm_disabled_objects: Annotated[Optional[StrictBool], Field(description="Confirmation to disable affected objects (for example, tests) for credential-vault operations.")] = None, aid: Annotated[Optional[StrictStr], Field(description="A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error response.")] = None, _request_timeout: Union[ None, @@ -459,7 +464,7 @@ class OperationConnectorsApi: ) -> ApiResponse[Assignments]: """Assign connectors to an operation - Assigns one or more connectors to an operation. This replaces any existing assignments. + Assigns one or more connectors to an operation. This replaces any existing assignments. Note: This operation may disable affected objects (such as tests) if connectors are changed. :param type: The operation type. (required) :type type: str @@ -467,6 +472,8 @@ class OperationConnectorsApi: :type id: str :param request_body: List of connector IDs to assign to the operation. (required) :type request_body: List[str] + :param confirm_disabled_objects: Confirmation to disable affected objects (for example, tests) for credential-vault operations. + :type confirm_disabled_objects: bool :param aid: A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error response. :type aid: str :param _request_timeout: timeout setting for this request. If one @@ -495,6 +502,7 @@ class OperationConnectorsApi: type=type, id=id, request_body=request_body, + confirm_disabled_objects=confirm_disabled_objects, aid=aid, _request_auth=_request_auth, _content_type=_content_type, @@ -503,11 +511,11 @@ class OperationConnectorsApi: ) _response_types_map: Dict[str, Optional[str]] = { - '404': "Error", '200': "Assignments", '400': "ValidationError", '401': "UnauthorizedError", '403': "Error", + '404': "Error", '500': "Error", } response_data = self.api_client.call_api( @@ -528,6 +536,7 @@ class OperationConnectorsApi: type: Annotated[StrictStr, Field(description="The operation type.")], id: Annotated[StrictStr, Field(description="The operation ID.")], request_body: Annotated[List[StrictStr], Field(min_length=0, max_length=1, description="List of connector IDs to assign to the operation.")], + confirm_disabled_objects: Annotated[Optional[StrictBool], Field(description="Confirmation to disable affected objects (for example, tests) for credential-vault operations.")] = None, aid: Annotated[Optional[StrictStr], Field(description="A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error response.")] = None, _request_timeout: Union[ None, @@ -544,7 +553,7 @@ class OperationConnectorsApi: ) -> RESTResponseType: """Assign connectors to an operation - Assigns one or more connectors to an operation. This replaces any existing assignments. + Assigns one or more connectors to an operation. This replaces any existing assignments. Note: This operation may disable affected objects (such as tests) if connectors are changed. :param type: The operation type. (required) :type type: str @@ -552,6 +561,8 @@ class OperationConnectorsApi: :type id: str :param request_body: List of connector IDs to assign to the operation. (required) :type request_body: List[str] + :param confirm_disabled_objects: Confirmation to disable affected objects (for example, tests) for credential-vault operations. + :type confirm_disabled_objects: bool :param aid: A unique identifier associated with your account group. You can retrieve your `AccountGroupId` from the `/account-groups` endpoint. Note that you must be assigned to the target account group. Specifying this parameter without being assigned to the target account group will result in an error response. :type aid: str :param _request_timeout: timeout setting for this request. If one @@ -580,6 +591,7 @@ class OperationConnectorsApi: type=type, id=id, request_body=request_body, + confirm_disabled_objects=confirm_disabled_objects, aid=aid, _request_auth=_request_auth, _content_type=_content_type, @@ -588,11 +600,11 @@ class OperationConnectorsApi: ) _response_types_map: Dict[str, Optional[str]] = { - '404': "Error", '200': "Assignments", '400': "ValidationError", '401': "UnauthorizedError", '403': "Error", + '404': "Error", '500': "Error", } response_data = self.api_client.call_api( @@ -607,6 +619,7 @@ class OperationConnectorsApi: type, id, request_body, + confirm_disabled_objects, aid, _request_auth, _content_type, @@ -633,6 +646,10 @@ class OperationConnectorsApi: if id is not None: _path_params['id'] = id # process the query parameters + if confirm_disabled_objects is not None: + + _query_params.append(('confirmDisabledObjects', confirm_disabled_objects)) + if aid is not None: _query_params.append(('aid', aid)) @@ -647,9 +664,9 @@ class OperationConnectorsApi: # set the HTTP header `Accept` _header_params['Accept'] = self.api_client.select_header_accept( [ - 'application/problem+json', 'application/hal+json', - 'application/json' + 'application/json', + 'application/problem+json' ] ) diff --git a/thousandeyes-sdk-connectors/src/thousandeyes_sdk/connectors/models/__init__.py b/thousandeyes-sdk-connectors/src/thousandeyes_sdk/connectors/models/__init__.py index 4327e0c2..1120f965 100644 --- a/thousandeyes-sdk-connectors/src/thousandeyes_sdk/connectors/models/__init__.py +++ b/thousandeyes-sdk-connectors/src/thousandeyes_sdk/connectors/models/__init__.py @@ -17,7 +17,13 @@ from thousandeyes_sdk.connectors.models.assignments import Assignments from thousandeyes_sdk.connectors.models.authentication_type import AuthenticationType from thousandeyes_sdk.connectors.models.basic_authentication import BasicAuthentication from thousandeyes_sdk.connectors.models.bearer_token_authentication import BearerTokenAuthentication +from thousandeyes_sdk.connectors.models.conjur_connector import ConjurConnector +from thousandeyes_sdk.connectors.models.conjur_connectors import ConjurConnectors +from thousandeyes_sdk.connectors.models.conjur_host_authentication import ConjurHostAuthentication from thousandeyes_sdk.connectors.models.connector_type import ConnectorType +from thousandeyes_sdk.connectors.models.credential_vault_operation import CredentialVaultOperation +from thousandeyes_sdk.connectors.models.credential_vault_operations import CredentialVaultOperations +from thousandeyes_sdk.connectors.models.credential_vault_secret import CredentialVaultSecret from thousandeyes_sdk.connectors.models.error import Error from thousandeyes_sdk.connectors.models.generic_connector import GenericConnector from thousandeyes_sdk.connectors.models.generic_connector_auth import GenericConnectorAuth diff --git a/thousandeyes-sdk-connectors/src/thousandeyes_sdk/connectors/models/conjur_connector.py b/thousandeyes-sdk-connectors/src/thousandeyes_sdk/connectors/models/conjur_connector.py new file mode 100644 index 00000000..ec44ca1b --- /dev/null +++ b/thousandeyes-sdk-connectors/src/thousandeyes_sdk/connectors/models/conjur_connector.py @@ -0,0 +1,114 @@ +# coding: utf-8 + +""" + Integrations API + + **Note:** The Webhook Operations APIs are not available for ThousandEyes for Government instance. Manage connectors and operations. + + 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 thousandeyes_sdk.connectors.models.conjur_host_authentication import ConjurHostAuthentication +from thousandeyes_sdk.connectors.models.connector_type import ConnectorType +from thousandeyes_sdk.connectors.models.self_links import SelfLinks +from typing import Optional, Set +from typing_extensions import Self + +class ConjurConnector(BaseModel): + """ + ConjurConnector + """ # noqa: E501 + id: Optional[StrictStr] = None + type: ConnectorType + name: StrictStr + target: StrictStr + last_modified_date: Optional[StrictInt] = Field(default=None, description="The date when the connector was last modified (Unix timestamp in milliseconds).", alias="lastModifiedDate") + account: StrictStr + authentication: ConjurHostAuthentication + links: Optional[SelfLinks] = Field(default=None, alias="_links") + __properties: ClassVar[List[str]] = ["id", "type", "name", "target", "lastModifiedDate", "account", "authentication", "_links"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + extra="allow", + ) + + + 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 self.model_dump_json(by_alias=True, exclude_unset=True, exclude_none=True) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of ConjurConnector 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. + * OpenAPI `readOnly` fields are excluded. + * OpenAPI `readOnly` fields are excluded. + """ + excluded_fields: Set[str] = set([ + "id", + "last_modified_date", + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + # override the default output from pydantic by calling `to_dict()` of authentication + if self.authentication: + _dict['authentication'] = self.authentication.to_dict() + # override the default output from pydantic by calling `to_dict()` of links + if self.links: + _dict['_links'] = self.links.to_dict() + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of ConjurConnector 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"), + "type": obj.get("type"), + "name": obj.get("name"), + "target": obj.get("target"), + "lastModifiedDate": obj.get("lastModifiedDate"), + "account": obj.get("account"), + "authentication": ConjurHostAuthentication.from_dict(obj["authentication"]) if obj.get("authentication") is not None else None, + "_links": SelfLinks.from_dict(obj["_links"]) if obj.get("_links") is not None else None + }) + return _obj + + diff --git a/thousandeyes-sdk-connectors/src/thousandeyes_sdk/connectors/models/conjur_connectors.py b/thousandeyes-sdk-connectors/src/thousandeyes_sdk/connectors/models/conjur_connectors.py new file mode 100644 index 00000000..571e077d --- /dev/null +++ b/thousandeyes-sdk-connectors/src/thousandeyes_sdk/connectors/models/conjur_connectors.py @@ -0,0 +1,101 @@ +# coding: utf-8 + +""" + Integrations API + + **Note:** The Webhook Operations APIs are not available for ThousandEyes for Government instance. Manage connectors and operations. + + 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 thousandeyes_sdk.connectors.models.conjur_connector import ConjurConnector +from thousandeyes_sdk.connectors.models.self_links import SelfLinks +from typing import Optional, Set +from typing_extensions import Self + +class ConjurConnectors(BaseModel): + """ + ConjurConnectors + """ # noqa: E501 + items: Optional[List[ConjurConnector]] = None + links: Optional[SelfLinks] = Field(default=None, alias="_links") + __properties: ClassVar[List[str]] = ["items", "_links"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + extra="allow", + ) + + + 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 self.model_dump_json(by_alias=True, exclude_unset=True, exclude_none=True) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of ConjurConnectors 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 items (list) + _items = [] + if self.items: + for _item in self.items: + if _item: + _items.append(_item.to_dict()) + _dict['items'] = _items + # override the default output from pydantic by calling `to_dict()` of links + if self.links: + _dict['_links'] = self.links.to_dict() + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of ConjurConnectors from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "items": [ConjurConnector.from_dict(_item) for _item in obj["items"]] if obj.get("items") is not None else None, + "_links": SelfLinks.from_dict(obj["_links"]) if obj.get("_links") is not None else None + }) + return _obj + + diff --git a/thousandeyes-sdk-connectors/src/thousandeyes_sdk/connectors/models/conjur_host_authentication.py b/thousandeyes-sdk-connectors/src/thousandeyes_sdk/connectors/models/conjur_host_authentication.py new file mode 100644 index 00000000..534c5a58 --- /dev/null +++ b/thousandeyes-sdk-connectors/src/thousandeyes_sdk/connectors/models/conjur_host_authentication.py @@ -0,0 +1,92 @@ +# coding: utf-8 + +""" + Integrations API + + **Note:** The Webhook Operations APIs are not available for ThousandEyes for Government instance. Manage connectors and operations. + + 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 +from thousandeyes_sdk.connectors.models.authentication_type import AuthenticationType +from typing import Optional, Set +from typing_extensions import Self + +class ConjurHostAuthentication(BaseModel): + """ + ConjurHostAuthentication + """ # noqa: E501 + host_id: StrictStr = Field(alias="hostId") + api_key: StrictStr = Field(alias="apiKey") + type: AuthenticationType + __properties: ClassVar[List[str]] = ["hostId", "apiKey", "type"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + extra="allow", + ) + + + 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 self.model_dump_json(by_alias=True, exclude_unset=True, exclude_none=True) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of ConjurHostAuthentication 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 ConjurHostAuthentication from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "hostId": obj.get("hostId"), + "apiKey": obj.get("apiKey"), + "type": obj.get("type") + }) + return _obj + + diff --git a/thousandeyes-sdk-connectors/src/thousandeyes_sdk/connectors/models/credential_vault_operation.py b/thousandeyes-sdk-connectors/src/thousandeyes_sdk/connectors/models/credential_vault_operation.py new file mode 100644 index 00000000..ce453f15 --- /dev/null +++ b/thousandeyes-sdk-connectors/src/thousandeyes_sdk/connectors/models/credential_vault_operation.py @@ -0,0 +1,113 @@ +# coding: utf-8 + +""" + Integrations API + + **Note:** The Webhook Operations APIs are not available for ThousandEyes for Government instance. Manage connectors and operations. + + 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 thousandeyes_sdk.connectors.models.credential_vault_secret import CredentialVaultSecret +from thousandeyes_sdk.connectors.models.operation_status import OperationStatus +from thousandeyes_sdk.connectors.models.operation_type import OperationType +from thousandeyes_sdk.connectors.models.self_links import SelfLinks +from typing import Optional, Set +from typing_extensions import Self + +class CredentialVaultOperation(BaseModel): + """ + CredentialVaultOperation + """ # noqa: E501 + id: Optional[StrictStr] = None + name: StrictStr + secrets: List[CredentialVaultSecret] + type: Optional[OperationType] = None + status: Optional[OperationStatus] = None + links: Optional[SelfLinks] = Field(default=None, alias="_links") + __properties: ClassVar[List[str]] = ["id", "name", "secrets", "type", "status", "_links"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + extra="allow", + ) + + + 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 self.model_dump_json(by_alias=True, exclude_unset=True, exclude_none=True) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of CredentialVaultOperation 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. + * OpenAPI `readOnly` fields are excluded. + """ + excluded_fields: Set[str] = set([ + "id", + ]) + + _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 secrets (list) + _items = [] + if self.secrets: + for _item in self.secrets: + if _item: + _items.append(_item.to_dict()) + _dict['secrets'] = _items + # override the default output from pydantic by calling `to_dict()` of links + if self.links: + _dict['_links'] = self.links.to_dict() + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of CredentialVaultOperation 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"), + "secrets": [CredentialVaultSecret.from_dict(_item) for _item in obj["secrets"]] if obj.get("secrets") is not None else None, + "type": obj.get("type"), + "status": obj.get("status"), + "_links": SelfLinks.from_dict(obj["_links"]) if obj.get("_links") is not None else None + }) + return _obj + + diff --git a/thousandeyes-sdk-connectors/src/thousandeyes_sdk/connectors/models/credential_vault_operations.py b/thousandeyes-sdk-connectors/src/thousandeyes_sdk/connectors/models/credential_vault_operations.py new file mode 100644 index 00000000..46f9dd2e --- /dev/null +++ b/thousandeyes-sdk-connectors/src/thousandeyes_sdk/connectors/models/credential_vault_operations.py @@ -0,0 +1,101 @@ +# coding: utf-8 + +""" + Integrations API + + **Note:** The Webhook Operations APIs are not available for ThousandEyes for Government instance. Manage connectors and operations. + + 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 thousandeyes_sdk.connectors.models.credential_vault_operation import CredentialVaultOperation +from thousandeyes_sdk.connectors.models.self_links import SelfLinks +from typing import Optional, Set +from typing_extensions import Self + +class CredentialVaultOperations(BaseModel): + """ + CredentialVaultOperations + """ # noqa: E501 + items: Optional[List[CredentialVaultOperation]] = None + links: Optional[SelfLinks] = Field(default=None, alias="_links") + __properties: ClassVar[List[str]] = ["items", "_links"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + extra="allow", + ) + + + 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 self.model_dump_json(by_alias=True, exclude_unset=True, exclude_none=True) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of CredentialVaultOperations 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 items (list) + _items = [] + if self.items: + for _item in self.items: + if _item: + _items.append(_item.to_dict()) + _dict['items'] = _items + # override the default output from pydantic by calling `to_dict()` of links + if self.links: + _dict['_links'] = self.links.to_dict() + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of CredentialVaultOperations from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "items": [CredentialVaultOperation.from_dict(_item) for _item in obj["items"]] if obj.get("items") is not None else None, + "_links": SelfLinks.from_dict(obj["_links"]) if obj.get("_links") is not None else None + }) + return _obj + + diff --git a/thousandeyes-sdk-connectors/src/thousandeyes_sdk/connectors/models/credential_vault_secret.py b/thousandeyes-sdk-connectors/src/thousandeyes_sdk/connectors/models/credential_vault_secret.py new file mode 100644 index 00000000..846dd8dc --- /dev/null +++ b/thousandeyes-sdk-connectors/src/thousandeyes_sdk/connectors/models/credential_vault_secret.py @@ -0,0 +1,91 @@ +# coding: utf-8 + +""" + Integrations API + + **Note:** The Webhook Operations APIs are not available for ThousandEyes for Government instance. Manage connectors and operations. + + 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 CredentialVaultSecret(BaseModel): + """ + CredentialVaultSecret + """ # noqa: E501 + id: Optional[StrictStr] = None + name: StrictStr + secret_key: StrictStr = Field(alias="secretKey") + __properties: ClassVar[List[str]] = ["id", "name", "secretKey"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + extra="allow", + ) + + + 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 self.model_dump_json(by_alias=True, exclude_unset=True, exclude_none=True) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of CredentialVaultSecret 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 CredentialVaultSecret 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"), + "secretKey": obj.get("secretKey") + }) + return _obj + + diff --git a/thousandeyes-sdk-connectors/src/thousandeyes_sdk/connectors/models/generic_connector.py b/thousandeyes-sdk-connectors/src/thousandeyes_sdk/connectors/models/generic_connector.py index 2ee74a8c..c0a11a8f 100644 --- a/thousandeyes-sdk-connectors/src/thousandeyes_sdk/connectors/models/generic_connector.py +++ b/thousandeyes-sdk-connectors/src/thousandeyes_sdk/connectors/models/generic_connector.py @@ -21,6 +21,7 @@ from typing import Any, ClassVar, Dict, List, Optional from thousandeyes_sdk.connectors.models.connector_type import ConnectorType from thousandeyes_sdk.connectors.models.generic_connector_auth import GenericConnectorAuth from thousandeyes_sdk.connectors.models.header import Header +from thousandeyes_sdk.connectors.models.self_links import SelfLinks from typing import Optional, Set from typing_extensions import Self @@ -32,10 +33,11 @@ class GenericConnector(BaseModel): type: ConnectorType name: StrictStr target: StrictStr - authentication: Optional[GenericConnectorAuth] = None last_modified_date: Optional[StrictInt] = Field(default=None, description="The date when the connector was last modified (Unix timestamp in milliseconds).", alias="lastModifiedDate") + authentication: Optional[GenericConnectorAuth] = None headers: Optional[List[Header]] = None - __properties: ClassVar[List[str]] = ["id", "type", "name", "target", "authentication", "lastModifiedDate", "headers"] + links: Optional[SelfLinks] = Field(default=None, alias="_links") + __properties: ClassVar[List[str]] = ["id", "type", "name", "target", "lastModifiedDate", "authentication", "headers", "_links"] model_config = ConfigDict( populate_by_name=True, @@ -91,6 +93,9 @@ class GenericConnector(BaseModel): if _item: _items.append(_item.to_dict()) _dict['headers'] = _items + # override the default output from pydantic by calling `to_dict()` of links + if self.links: + _dict['_links'] = self.links.to_dict() return _dict @classmethod @@ -107,9 +112,10 @@ class GenericConnector(BaseModel): "type": obj.get("type"), "name": obj.get("name"), "target": obj.get("target"), - "authentication": GenericConnectorAuth.from_dict(obj["authentication"]) if obj.get("authentication") is not None else None, "lastModifiedDate": obj.get("lastModifiedDate"), - "headers": [Header.from_dict(_item) for _item in obj["headers"]] if obj.get("headers") is not None else None + "authentication": GenericConnectorAuth.from_dict(obj["authentication"]) if obj.get("authentication") is not None else None, + "headers": [Header.from_dict(_item) for _item in obj["headers"]] if obj.get("headers") is not None else None, + "_links": SelfLinks.from_dict(obj["_links"]) if obj.get("_links") is not None else None }) return _obj diff --git a/thousandeyes-sdk-connectors/src/thousandeyes_sdk/connectors/models/header.py b/thousandeyes-sdk-connectors/src/thousandeyes_sdk/connectors/models/header.py index 73fad528..57b9b891 100644 --- a/thousandeyes-sdk-connectors/src/thousandeyes_sdk/connectors/models/header.py +++ b/thousandeyes-sdk-connectors/src/thousandeyes_sdk/connectors/models/header.py @@ -16,7 +16,7 @@ import pprint import re # noqa: F401 import json -from pydantic import BaseModel, ConfigDict, Field, StrictStr +from pydantic import BaseModel, ConfigDict, StrictStr from typing import Any, ClassVar, Dict, List from typing import Optional, Set from typing_extensions import Self @@ -26,7 +26,7 @@ class Header(BaseModel): Header """ # noqa: E501 name: StrictStr - value: StrictStr = Field(description="The value of the header. Note that this value is obfuscated in the response, even when overwritten.") + value: StrictStr __properties: ClassVar[List[str]] = ["name", "value"] model_config = ConfigDict( diff --git a/thousandeyes-sdk-connectors/src/thousandeyes_sdk/connectors/models/oauth_client_credentials_authentication.py b/thousandeyes-sdk-connectors/src/thousandeyes_sdk/connectors/models/oauth_client_credentials_authentication.py index f0b22c34..693dfcb8 100644 --- a/thousandeyes-sdk-connectors/src/thousandeyes_sdk/connectors/models/oauth_client_credentials_authentication.py +++ b/thousandeyes-sdk-connectors/src/thousandeyes_sdk/connectors/models/oauth_client_credentials_authentication.py @@ -30,8 +30,9 @@ class OauthClientCredentialsAuthentication(BaseModel): oauth_client_id: StrictStr = Field(alias="oauthClientId") oauth_token_url: StrictStr = Field(alias="oauthTokenUrl") oauth_client_secret: StrictStr = Field(alias="oauthClientSecret") + scope: Optional[StrictStr] = None type: AuthenticationType - __properties: ClassVar[List[str]] = ["token", "oauthClientId", "oauthTokenUrl", "oauthClientSecret", "type"] + __properties: ClassVar[List[str]] = ["token", "oauthClientId", "oauthTokenUrl", "oauthClientSecret", "scope", "type"] model_config = ConfigDict( populate_by_name=True, @@ -89,6 +90,7 @@ class OauthClientCredentialsAuthentication(BaseModel): "oauthClientId": obj.get("oauthClientId"), "oauthTokenUrl": obj.get("oauthTokenUrl"), "oauthClientSecret": obj.get("oauthClientSecret"), + "scope": obj.get("scope"), "type": obj.get("type") }) return _obj diff --git a/thousandeyes-sdk-connectors/test/test_credential_vault_operations_api.py b/thousandeyes-sdk-connectors/test/test_credential_vault_operations_api.py new file mode 100644 index 00000000..98599fb7 --- /dev/null +++ b/thousandeyes-sdk-connectors/test/test_credential_vault_operations_api.py @@ -0,0 +1,287 @@ +# coding: utf-8 + +""" + Integrations API + + **Note:** The Webhook Operations APIs are not available for ThousandEyes for Government instance. Manage connectors and operations. + + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +import json +import unittest +import thousandeyes_sdk.connectors.models + +from .test_utils import assert_constructed_model_matches_example_json +from thousandeyes_sdk.connectors.api.credential_vault_operations_api import CredentialVaultOperationsApi + + +class TestCredentialVaultOperationsApi(unittest.TestCase): + """CredentialVaultOperationsApi unit test stubs""" + + def setUp(self) -> None: + self.api = CredentialVaultOperationsApi() + + def tearDown(self) -> None: + pass + + def test_create_credential_vault_operation_models_validation(self) -> None: + """Test case for create_credential_vault_operation request and response models""" + request_body_json = """ + { + "_links" : { + "self" : { + "hreflang" : "hreflang", + "templated" : true, + "profile" : "profile", + "name" : "name", + "href" : "https://api.thousandeyes.com/v7/link/to/resource/id", + "type" : "type", + "deprecation" : "deprecation", + "title" : "title" + } + }, + "name" : "My operation", + "id" : "cb1b8033-ea2d-4e9b-a920-fe87850693cf", + "type" : "webhook", + "secrets" : [ { + "secretKey" : "secret/key", + "name" : "secret_name", + "id" : "cb1b8033-ea2d-4e9b-a920-fe87850693cf" + }, { + "secretKey" : "secret/key", + "name" : "secret_name", + "id" : "cb1b8033-ea2d-4e9b-a920-fe87850693cf" + } ], + "status" : "pending" + } + """ + + request_loaded_json = json.loads(request_body_json) + request_from_json = thousandeyes_sdk.connectors.models.CredentialVaultOperation.from_json(request_body_json) + assert_constructed_model_matches_example_json(request_from_json, request_loaded_json) + + response_body_json = """ + { + "_links" : { + "self" : { + "hreflang" : "hreflang", + "templated" : true, + "profile" : "profile", + "name" : "name", + "href" : "https://api.thousandeyes.com/v7/link/to/resource/id", + "type" : "type", + "deprecation" : "deprecation", + "title" : "title" + } + }, + "name" : "My operation", + "id" : "cb1b8033-ea2d-4e9b-a920-fe87850693cf", + "type" : "webhook", + "secrets" : [ { + "secretKey" : "secret/key", + "name" : "secret_name", + "id" : "cb1b8033-ea2d-4e9b-a920-fe87850693cf" + }, { + "secretKey" : "secret/key", + "name" : "secret_name", + "id" : "cb1b8033-ea2d-4e9b-a920-fe87850693cf" + } ], + "status" : "pending" + }""" + + response_loaded_json = json.loads(response_body_json) + response_from_json = thousandeyes_sdk.connectors.models.CredentialVaultOperation.from_json(response_body_json) + assert_constructed_model_matches_example_json(response_from_json, response_loaded_json) + + def test_delete_credential_vault_operation_models_validation(self) -> None: + """Test case for delete_credential_vault_operation request and response models""" + + + def test_get_credential_vault_operation_models_validation(self) -> None: + """Test case for get_credential_vault_operation request and response models""" + + response_body_json = """ + { + "_links" : { + "self" : { + "hreflang" : "hreflang", + "templated" : true, + "profile" : "profile", + "name" : "name", + "href" : "https://api.thousandeyes.com/v7/link/to/resource/id", + "type" : "type", + "deprecation" : "deprecation", + "title" : "title" + } + }, + "name" : "My operation", + "id" : "cb1b8033-ea2d-4e9b-a920-fe87850693cf", + "type" : "webhook", + "secrets" : [ { + "secretKey" : "secret/key", + "name" : "secret_name", + "id" : "cb1b8033-ea2d-4e9b-a920-fe87850693cf" + }, { + "secretKey" : "secret/key", + "name" : "secret_name", + "id" : "cb1b8033-ea2d-4e9b-a920-fe87850693cf" + } ], + "status" : "pending" + }""" + + response_loaded_json = json.loads(response_body_json) + response_from_json = thousandeyes_sdk.connectors.models.CredentialVaultOperation.from_json(response_body_json) + assert_constructed_model_matches_example_json(response_from_json, response_loaded_json) + + def test_get_credential_vault_operations_models_validation(self) -> None: + """Test case for get_credential_vault_operations request and response models""" + + response_body_json = """ + { + "_links" : { + "self" : { + "hreflang" : "hreflang", + "templated" : true, + "profile" : "profile", + "name" : "name", + "href" : "https://api.thousandeyes.com/v7/link/to/resource/id", + "type" : "type", + "deprecation" : "deprecation", + "title" : "title" + } + }, + "items" : [ { + "_links" : { + "self" : { + "hreflang" : "hreflang", + "templated" : true, + "profile" : "profile", + "name" : "name", + "href" : "https://api.thousandeyes.com/v7/link/to/resource/id", + "type" : "type", + "deprecation" : "deprecation", + "title" : "title" + } + }, + "name" : "My operation", + "id" : "cb1b8033-ea2d-4e9b-a920-fe87850693cf", + "type" : "webhook", + "secrets" : [ { + "secretKey" : "secret/key", + "name" : "secret_name", + "id" : "cb1b8033-ea2d-4e9b-a920-fe87850693cf" + }, { + "secretKey" : "secret/key", + "name" : "secret_name", + "id" : "cb1b8033-ea2d-4e9b-a920-fe87850693cf" + } ], + "status" : "pending" + }, { + "_links" : { + "self" : { + "hreflang" : "hreflang", + "templated" : true, + "profile" : "profile", + "name" : "name", + "href" : "https://api.thousandeyes.com/v7/link/to/resource/id", + "type" : "type", + "deprecation" : "deprecation", + "title" : "title" + } + }, + "name" : "My operation", + "id" : "cb1b8033-ea2d-4e9b-a920-fe87850693cf", + "type" : "webhook", + "secrets" : [ { + "secretKey" : "secret/key", + "name" : "secret_name", + "id" : "cb1b8033-ea2d-4e9b-a920-fe87850693cf" + }, { + "secretKey" : "secret/key", + "name" : "secret_name", + "id" : "cb1b8033-ea2d-4e9b-a920-fe87850693cf" + } ], + "status" : "pending" + } ] + }""" + + response_loaded_json = json.loads(response_body_json) + response_from_json = thousandeyes_sdk.connectors.models.CredentialVaultOperations.from_json(response_body_json) + assert_constructed_model_matches_example_json(response_from_json, response_loaded_json) + + def test_update_credential_vault_operation_models_validation(self) -> None: + """Test case for update_credential_vault_operation request and response models""" + request_body_json = """ + { + "_links" : { + "self" : { + "hreflang" : "hreflang", + "templated" : true, + "profile" : "profile", + "name" : "name", + "href" : "https://api.thousandeyes.com/v7/link/to/resource/id", + "type" : "type", + "deprecation" : "deprecation", + "title" : "title" + } + }, + "name" : "My operation", + "id" : "cb1b8033-ea2d-4e9b-a920-fe87850693cf", + "type" : "webhook", + "secrets" : [ { + "secretKey" : "secret/key", + "name" : "secret_name", + "id" : "cb1b8033-ea2d-4e9b-a920-fe87850693cf" + }, { + "secretKey" : "secret/key", + "name" : "secret_name", + "id" : "cb1b8033-ea2d-4e9b-a920-fe87850693cf" + } ], + "status" : "pending" + } + """ + + request_loaded_json = json.loads(request_body_json) + request_from_json = thousandeyes_sdk.connectors.models.CredentialVaultOperation.from_json(request_body_json) + assert_constructed_model_matches_example_json(request_from_json, request_loaded_json) + + response_body_json = """ + { + "_links" : { + "self" : { + "hreflang" : "hreflang", + "templated" : true, + "profile" : "profile", + "name" : "name", + "href" : "https://api.thousandeyes.com/v7/link/to/resource/id", + "type" : "type", + "deprecation" : "deprecation", + "title" : "title" + } + }, + "name" : "My operation", + "id" : "cb1b8033-ea2d-4e9b-a920-fe87850693cf", + "type" : "webhook", + "secrets" : [ { + "secretKey" : "secret/key", + "name" : "secret_name", + "id" : "cb1b8033-ea2d-4e9b-a920-fe87850693cf" + }, { + "secretKey" : "secret/key", + "name" : "secret_name", + "id" : "cb1b8033-ea2d-4e9b-a920-fe87850693cf" + } ], + "status" : "pending" + }""" + + response_loaded_json = json.loads(response_body_json) + response_from_json = thousandeyes_sdk.connectors.models.CredentialVaultOperation.from_json(response_body_json) + assert_constructed_model_matches_example_json(response_from_json, response_loaded_json) + + +if __name__ == '__main__': + unittest.main() diff --git a/thousandeyes-sdk-connectors/test/test_cyber_ark_conjur_connectors_api.py b/thousandeyes-sdk-connectors/test/test_cyber_ark_conjur_connectors_api.py new file mode 100644 index 00000000..04625f7a --- /dev/null +++ b/thousandeyes-sdk-connectors/test/test_cyber_ark_conjur_connectors_api.py @@ -0,0 +1,328 @@ +# coding: utf-8 + +""" + Integrations API + + **Note:** The Webhook Operations APIs are not available for ThousandEyes for Government instance. Manage connectors and operations. + + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +import json +import unittest +import thousandeyes_sdk.connectors.models + +from .test_utils import assert_constructed_model_matches_example_json +from thousandeyes_sdk.connectors.api.cyber_ark_conjur_connectors_api import CyberArkConjurConnectorsApi + + +class TestCyberArkConjurConnectorsApi(unittest.TestCase): + """CyberArkConjurConnectorsApi unit test stubs""" + + def setUp(self) -> None: + self.api = CyberArkConjurConnectorsApi() + + def tearDown(self) -> None: + pass + + def test_create_conjur_connector_models_validation(self) -> None: + """Test case for create_conjur_connector request and response models""" + request_body_json = """ + { + "lastModifiedDate" : 1770293655756, + "_links" : { + "self" : { + "hreflang" : "hreflang", + "templated" : true, + "profile" : "profile", + "name" : "name", + "href" : "https://api.thousandeyes.com/v7/link/to/resource/id", + "type" : "type", + "deprecation" : "deprecation", + "title" : "title" + } + }, + "name" : "Cisco Slack", + "id" : "cb1b8033-ea2d-4e9b-a920-fe87850693cf", + "type" : "generic", + "account" : "My CyberArk Account", + "target" : "https://eval.conjur.org/secrets", + "authentication" : { + "apiKey" : "abc123", + "hostId" : "host1", + "type" : "basic" + } + } + """ + + request_loaded_json = json.loads(request_body_json) + request_from_json = thousandeyes_sdk.connectors.models.ConjurConnector.from_json(request_body_json) + assert_constructed_model_matches_example_json(request_from_json, request_loaded_json) + + response_body_json = """ + { + "lastModifiedDate" : 1770293655756, + "_links" : { + "self" : { + "hreflang" : "hreflang", + "templated" : true, + "profile" : "profile", + "name" : "name", + "href" : "https://api.thousandeyes.com/v7/link/to/resource/id", + "type" : "type", + "deprecation" : "deprecation", + "title" : "title" + } + }, + "name" : "Cisco Slack", + "id" : "cb1b8033-ea2d-4e9b-a920-fe87850693cf", + "type" : "generic", + "account" : "My CyberArk Account", + "target" : "https://eval.conjur.org/secrets", + "authentication" : { + "apiKey" : "abc123", + "hostId" : "host1", + "type" : "basic" + } + }""" + + response_loaded_json = json.loads(response_body_json) + response_from_json = thousandeyes_sdk.connectors.models.ConjurConnector.from_json(response_body_json) + assert_constructed_model_matches_example_json(response_from_json, response_loaded_json) + + def test_delete_conjur_connector_models_validation(self) -> None: + """Test case for delete_conjur_connector request and response models""" + + + def test_get_conjur_connector_models_validation(self) -> None: + """Test case for get_conjur_connector request and response models""" + + response_body_json = """ + { + "lastModifiedDate" : 1770293655756, + "_links" : { + "self" : { + "hreflang" : "hreflang", + "templated" : true, + "profile" : "profile", + "name" : "name", + "href" : "https://api.thousandeyes.com/v7/link/to/resource/id", + "type" : "type", + "deprecation" : "deprecation", + "title" : "title" + } + }, + "name" : "Cisco Slack", + "id" : "cb1b8033-ea2d-4e9b-a920-fe87850693cf", + "type" : "generic", + "account" : "My CyberArk Account", + "target" : "https://eval.conjur.org/secrets", + "authentication" : { + "apiKey" : "abc123", + "hostId" : "host1", + "type" : "basic" + } + }""" + + response_loaded_json = json.loads(response_body_json) + response_from_json = thousandeyes_sdk.connectors.models.ConjurConnector.from_json(response_body_json) + assert_constructed_model_matches_example_json(response_from_json, response_loaded_json) + + def test_get_conjur_connector_operations_models_validation(self) -> None: + """Test case for get_conjur_connector_operations request and response models""" + + response_body_json = """ + { + "_links" : { + "self" : { + "hreflang" : "hreflang", + "templated" : true, + "profile" : "profile", + "name" : "name", + "href" : "https://api.thousandeyes.com/v7/link/to/resource/id", + "type" : "type", + "deprecation" : "deprecation", + "title" : "title" + } + }, + "items" : [ "ca39314d-eb4f-496f-9435-b5d20b1bfbff", "ca39314d-eb4f-496f-9435-b5d20b1bfbff" ] + }""" + + response_loaded_json = json.loads(response_body_json) + response_from_json = thousandeyes_sdk.connectors.models.Assignments.from_json(response_body_json) + assert_constructed_model_matches_example_json(response_from_json, response_loaded_json) + + def test_get_conjur_connectors_models_validation(self) -> None: + """Test case for get_conjur_connectors request and response models""" + + response_body_json = """ + { + "_links" : { + "self" : { + "hreflang" : "hreflang", + "templated" : true, + "profile" : "profile", + "name" : "name", + "href" : "https://api.thousandeyes.com/v7/link/to/resource/id", + "type" : "type", + "deprecation" : "deprecation", + "title" : "title" + } + }, + "items" : [ { + "lastModifiedDate" : 1770293655756, + "_links" : { + "self" : { + "hreflang" : "hreflang", + "templated" : true, + "profile" : "profile", + "name" : "name", + "href" : "https://api.thousandeyes.com/v7/link/to/resource/id", + "type" : "type", + "deprecation" : "deprecation", + "title" : "title" + } + }, + "name" : "Cisco Slack", + "id" : "cb1b8033-ea2d-4e9b-a920-fe87850693cf", + "type" : "generic", + "account" : "My CyberArk Account", + "target" : "https://eval.conjur.org/secrets", + "authentication" : { + "apiKey" : "abc123", + "hostId" : "host1", + "type" : "basic" + } + }, { + "lastModifiedDate" : 1770293655756, + "_links" : { + "self" : { + "hreflang" : "hreflang", + "templated" : true, + "profile" : "profile", + "name" : "name", + "href" : "https://api.thousandeyes.com/v7/link/to/resource/id", + "type" : "type", + "deprecation" : "deprecation", + "title" : "title" + } + }, + "name" : "Cisco Slack", + "id" : "cb1b8033-ea2d-4e9b-a920-fe87850693cf", + "type" : "generic", + "account" : "My CyberArk Account", + "target" : "https://eval.conjur.org/secrets", + "authentication" : { + "apiKey" : "abc123", + "hostId" : "host1", + "type" : "basic" + } + } ] + }""" + + response_loaded_json = json.loads(response_body_json) + response_from_json = thousandeyes_sdk.connectors.models.ConjurConnectors.from_json(response_body_json) + assert_constructed_model_matches_example_json(response_from_json, response_loaded_json) + + def test_set_conjur_connector_operations_models_validation(self) -> None: + """Test case for set_conjur_connector_operations request and response models""" + request_body_json = """ + ["ca39314d-eb4f-496f-9435-b5d20b1bfbff","a32cfbab-32f6-41d8-9027-7127cba965dd"] + """ + + request_loaded_json = json.loads(request_body_json) + request_from_json = json.loads(request_body_json) + self.assertEqual(request_from_json, request_loaded_json) + + response_body_json = """ + { + "_links" : { + "self" : { + "hreflang" : "hreflang", + "templated" : true, + "profile" : "profile", + "name" : "name", + "href" : "https://api.thousandeyes.com/v7/link/to/resource/id", + "type" : "type", + "deprecation" : "deprecation", + "title" : "title" + } + }, + "items" : [ "ca39314d-eb4f-496f-9435-b5d20b1bfbff", "ca39314d-eb4f-496f-9435-b5d20b1bfbff" ] + }""" + + response_loaded_json = json.loads(response_body_json) + response_from_json = thousandeyes_sdk.connectors.models.Assignments.from_json(response_body_json) + assert_constructed_model_matches_example_json(response_from_json, response_loaded_json) + + def test_update_conjur_connector_models_validation(self) -> None: + """Test case for update_conjur_connector request and response models""" + request_body_json = """ + { + "lastModifiedDate" : 1770293655756, + "_links" : { + "self" : { + "hreflang" : "hreflang", + "templated" : true, + "profile" : "profile", + "name" : "name", + "href" : "https://api.thousandeyes.com/v7/link/to/resource/id", + "type" : "type", + "deprecation" : "deprecation", + "title" : "title" + } + }, + "name" : "Cisco Slack", + "id" : "cb1b8033-ea2d-4e9b-a920-fe87850693cf", + "type" : "generic", + "account" : "My CyberArk Account", + "target" : "https://eval.conjur.org/secrets", + "authentication" : { + "apiKey" : "abc123", + "hostId" : "host1", + "type" : "basic" + } + } + """ + + request_loaded_json = json.loads(request_body_json) + request_from_json = thousandeyes_sdk.connectors.models.ConjurConnector.from_json(request_body_json) + assert_constructed_model_matches_example_json(request_from_json, request_loaded_json) + + response_body_json = """ + { + "lastModifiedDate" : 1770293655756, + "_links" : { + "self" : { + "hreflang" : "hreflang", + "templated" : true, + "profile" : "profile", + "name" : "name", + "href" : "https://api.thousandeyes.com/v7/link/to/resource/id", + "type" : "type", + "deprecation" : "deprecation", + "title" : "title" + } + }, + "name" : "Cisco Slack", + "id" : "cb1b8033-ea2d-4e9b-a920-fe87850693cf", + "type" : "generic", + "account" : "My CyberArk Account", + "target" : "https://eval.conjur.org/secrets", + "authentication" : { + "apiKey" : "abc123", + "hostId" : "host1", + "type" : "basic" + } + }""" + + response_loaded_json = json.loads(response_body_json) + response_from_json = thousandeyes_sdk.connectors.models.ConjurConnector.from_json(response_body_json) + assert_constructed_model_matches_example_json(response_from_json, response_loaded_json) + + +if __name__ == '__main__': + unittest.main() diff --git a/thousandeyes-sdk-connectors/test/test_generic_connectors_api.py b/thousandeyes-sdk-connectors/test/test_generic_connectors_api.py index 51053a49..b6596925 100644 --- a/thousandeyes-sdk-connectors/test/test_generic_connectors_api.py +++ b/thousandeyes-sdk-connectors/test/test_generic_connectors_api.py @@ -40,6 +40,18 @@ class TestGenericConnectorsApi(unittest.TestCase): "value" : "application/json" } ], "lastModifiedDate" : 1770293655756, + "_links" : { + "self" : { + "hreflang" : "hreflang", + "templated" : true, + "profile" : "profile", + "name" : "name", + "href" : "https://api.thousandeyes.com/v7/link/to/resource/id", + "type" : "type", + "deprecation" : "deprecation", + "title" : "title" + } + }, "name" : "Cisco Slack", "id" : "cb1b8033-ea2d-4e9b-a920-fe87850693cf", "type" : "generic", @@ -66,6 +78,18 @@ class TestGenericConnectorsApi(unittest.TestCase): "value" : "application/json" } ], "lastModifiedDate" : 1770293655756, + "_links" : { + "self" : { + "hreflang" : "hreflang", + "templated" : true, + "profile" : "profile", + "name" : "name", + "href" : "https://api.thousandeyes.com/v7/link/to/resource/id", + "type" : "type", + "deprecation" : "deprecation", + "title" : "title" + } + }, "name" : "Cisco Slack", "id" : "cb1b8033-ea2d-4e9b-a920-fe87850693cf", "type" : "generic", @@ -98,6 +122,18 @@ class TestGenericConnectorsApi(unittest.TestCase): "value" : "application/json" } ], "lastModifiedDate" : 1770293655756, + "_links" : { + "self" : { + "hreflang" : "hreflang", + "templated" : true, + "profile" : "profile", + "name" : "name", + "href" : "https://api.thousandeyes.com/v7/link/to/resource/id", + "type" : "type", + "deprecation" : "deprecation", + "title" : "title" + } + }, "name" : "Cisco Slack", "id" : "cb1b8033-ea2d-4e9b-a920-fe87850693cf", "type" : "generic", @@ -139,6 +175,18 @@ class TestGenericConnectorsApi(unittest.TestCase): "value" : "application/json" } ], "lastModifiedDate" : 1770293655756, + "_links" : { + "self" : { + "hreflang" : "hreflang", + "templated" : true, + "profile" : "profile", + "name" : "name", + "href" : "https://api.thousandeyes.com/v7/link/to/resource/id", + "type" : "type", + "deprecation" : "deprecation", + "title" : "title" + } + }, "name" : "Cisco Slack", "id" : "cb1b8033-ea2d-4e9b-a920-fe87850693cf", "type" : "generic", @@ -157,6 +205,18 @@ class TestGenericConnectorsApi(unittest.TestCase): "value" : "application/json" } ], "lastModifiedDate" : 1770293655756, + "_links" : { + "self" : { + "hreflang" : "hreflang", + "templated" : true, + "profile" : "profile", + "name" : "name", + "href" : "https://api.thousandeyes.com/v7/link/to/resource/id", + "type" : "type", + "deprecation" : "deprecation", + "title" : "title" + } + }, "name" : "Cisco Slack", "id" : "cb1b8033-ea2d-4e9b-a920-fe87850693cf", "type" : "generic", @@ -240,6 +300,18 @@ class TestGenericConnectorsApi(unittest.TestCase): "value" : "application/json" } ], "lastModifiedDate" : 1770293655756, + "_links" : { + "self" : { + "hreflang" : "hreflang", + "templated" : true, + "profile" : "profile", + "name" : "name", + "href" : "https://api.thousandeyes.com/v7/link/to/resource/id", + "type" : "type", + "deprecation" : "deprecation", + "title" : "title" + } + }, "name" : "Cisco Slack", "id" : "cb1b8033-ea2d-4e9b-a920-fe87850693cf", "type" : "generic", @@ -266,6 +338,18 @@ class TestGenericConnectorsApi(unittest.TestCase): "value" : "application/json" } ], "lastModifiedDate" : 1770293655756, + "_links" : { + "self" : { + "hreflang" : "hreflang", + "templated" : true, + "profile" : "profile", + "name" : "name", + "href" : "https://api.thousandeyes.com/v7/link/to/resource/id", + "type" : "type", + "deprecation" : "deprecation", + "title" : "title" + } + }, "name" : "Cisco Slack", "id" : "cb1b8033-ea2d-4e9b-a920-fe87850693cf", "type" : "generic", diff --git a/thousandeyes-sdk-connectors/test/test_webhook_operations_api.py b/thousandeyes-sdk-connectors/test/test_webhook_operations_api.py index 9eb30c68..3cdc7e1a 100644 --- a/thousandeyes-sdk-connectors/test/test_webhook_operations_api.py +++ b/thousandeyes-sdk-connectors/test/test_webhook_operations_api.py @@ -36,6 +36,9 @@ class TestWebhookOperationsApi(unittest.TestCase): "headers" : [ { "name" : "Content-Type", "value" : "application/json" + }, { + "name" : "Content-Type", + "value" : "application/json" } ], "payload" : "{\\"property1\\": {{numericVar}}, \\"property2\\": \\"{{stringVar}}\\"}", "queryParams" : "{\\"queryParam1\\":\\"{{stringVar}}\\"}", @@ -70,6 +73,9 @@ class TestWebhookOperationsApi(unittest.TestCase): "headers" : [ { "name" : "Content-Type", "value" : "application/json" + }, { + "name" : "Content-Type", + "value" : "application/json" } ], "payload" : "{\\"property1\\": {{numericVar}}, \\"property2\\": \\"{{stringVar}}\\"}", "queryParams" : "{\\"queryParam1\\":\\"{{stringVar}}\\"}", @@ -110,6 +116,9 @@ class TestWebhookOperationsApi(unittest.TestCase): "headers" : [ { "name" : "Content-Type", "value" : "application/json" + }, { + "name" : "Content-Type", + "value" : "application/json" } ], "payload" : "{\\"property1\\": {{numericVar}}, \\"property2\\": \\"{{stringVar}}\\"}", "queryParams" : "{\\"queryParam1\\":\\"{{stringVar}}\\"}", @@ -159,6 +168,9 @@ class TestWebhookOperationsApi(unittest.TestCase): "headers" : [ { "name" : "Content-Type", "value" : "application/json" + }, { + "name" : "Content-Type", + "value" : "application/json" } ], "payload" : "{\\"property1\\": {{numericVar}}, \\"property2\\": \\"{{stringVar}}\\"}", "queryParams" : "{\\"queryParam1\\":\\"{{stringVar}}\\"}", @@ -185,6 +197,9 @@ class TestWebhookOperationsApi(unittest.TestCase): "headers" : [ { "name" : "Content-Type", "value" : "application/json" + }, { + "name" : "Content-Type", + "value" : "application/json" } ], "payload" : "{\\"property1\\": {{numericVar}}, \\"property2\\": \\"{{stringVar}}\\"}", "queryParams" : "{\\"queryParam1\\":\\"{{stringVar}}\\"}", @@ -221,6 +236,9 @@ class TestWebhookOperationsApi(unittest.TestCase): "headers" : [ { "name" : "Content-Type", "value" : "application/json" + }, { + "name" : "Content-Type", + "value" : "application/json" } ], "payload" : "{\\"property1\\": {{numericVar}}, \\"property2\\": \\"{{stringVar}}\\"}", "queryParams" : "{\\"queryParam1\\":\\"{{stringVar}}\\"}", @@ -255,6 +273,9 @@ class TestWebhookOperationsApi(unittest.TestCase): "headers" : [ { "name" : "Content-Type", "value" : "application/json" + }, { + "name" : "Content-Type", + "value" : "application/json" } ], "payload" : "{\\"property1\\": {{numericVar}}, \\"property2\\": \\"{{stringVar}}\\"}", "queryParams" : "{\\"queryParam1\\":\\"{{stringVar}}\\"}", diff --git a/thousandeyes-sdk-credentials/README.md b/thousandeyes-sdk-credentials/README.md index 26417b82..b92eadf5 100644 --- a/thousandeyes-sdk-credentials/README.md +++ b/thousandeyes-sdk-credentials/README.md @@ -13,7 +13,7 @@ For more information about credentials, see [Working With Secure Credentials](ht This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project: -- API version: 7.0.84 +- API version: 7.0.92 - Generator version: 7.6.0 - Build package: com.thousandeyes.api.codegen.ThousandeyesPythonGenerator diff --git a/thousandeyes-sdk-dashboards/.openapi-generator/FILES b/thousandeyes-sdk-dashboards/.openapi-generator/FILES index 42766d44..0643db70 100644 --- a/thousandeyes-sdk-dashboards/.openapi-generator/FILES +++ b/thousandeyes-sdk-dashboards/.openapi-generator/FILES @@ -10,8 +10,6 @@ docs/ApiAgentStatusAgent.md docs/ApiAgentStatusIpInfo.md docs/ApiAgentStatusSummary.md docs/ApiAgentStatusWidget.md -docs/ApiAgentWidgetShow.md -docs/ApiAgentWidgetType.md docs/ApiAggregateProperty.md docs/ApiAlertListAlert.md docs/ApiAlertListWidget.md @@ -41,10 +39,12 @@ docs/ApiNumbersCard.md docs/ApiNumbersCardData.md docs/ApiNumbersCardWidget.md docs/ApiPieChartWidget.md +docs/ApiPieChartWidgetProperties.md docs/ApiReportDataComponentLabelMap.md docs/ApiReportDataComponentLabelMapEntry.md docs/ApiReportSnapshotTimeSpan.md docs/ApiStackedAreaChartWidget.md +docs/ApiStackedAreaChartWidgetProperties.md docs/ApiStackedBarchartWidget.md docs/ApiTableWidget.md docs/ApiTestTableData.md @@ -59,8 +59,6 @@ docs/ApiWidgetDataSnapshotResponse.md docs/ApiWidgetFilterApiTestTableFilterKey.md docs/ApiWidgetFixedYScalePrefix.md docs/ApiWidgetMeasure.md -docs/ApiWidgetSortDirection.md -docs/ApiWidgetSortProperty.md docs/ApiWidgetsDataV2.md docs/AppAndSelfLinks.md docs/AswRepeat.md @@ -120,7 +118,6 @@ docs/VisualMode.md docs/Widget.md docs/WidgetMeasureType.md docs/WidgetPosition.md -docs/WidgetType.md pyproject.toml setup.cfg src/thousandeyes_sdk/dashboards/__init__.py @@ -138,8 +135,6 @@ src/thousandeyes_sdk/dashboards/models/api_agent_status_agent.py src/thousandeyes_sdk/dashboards/models/api_agent_status_ip_info.py src/thousandeyes_sdk/dashboards/models/api_agent_status_summary.py src/thousandeyes_sdk/dashboards/models/api_agent_status_widget.py -src/thousandeyes_sdk/dashboards/models/api_agent_widget_show.py -src/thousandeyes_sdk/dashboards/models/api_agent_widget_type.py src/thousandeyes_sdk/dashboards/models/api_aggregate_property.py src/thousandeyes_sdk/dashboards/models/api_alert_list_alert.py src/thousandeyes_sdk/dashboards/models/api_alert_list_widget.py @@ -169,10 +164,12 @@ src/thousandeyes_sdk/dashboards/models/api_numbers_card.py src/thousandeyes_sdk/dashboards/models/api_numbers_card_data.py src/thousandeyes_sdk/dashboards/models/api_numbers_card_widget.py src/thousandeyes_sdk/dashboards/models/api_pie_chart_widget.py +src/thousandeyes_sdk/dashboards/models/api_pie_chart_widget_properties.py src/thousandeyes_sdk/dashboards/models/api_report_data_component_label_map.py src/thousandeyes_sdk/dashboards/models/api_report_data_component_label_map_entry.py src/thousandeyes_sdk/dashboards/models/api_report_snapshot_time_span.py src/thousandeyes_sdk/dashboards/models/api_stacked_area_chart_widget.py +src/thousandeyes_sdk/dashboards/models/api_stacked_area_chart_widget_properties.py src/thousandeyes_sdk/dashboards/models/api_stacked_barchart_widget.py src/thousandeyes_sdk/dashboards/models/api_table_widget.py src/thousandeyes_sdk/dashboards/models/api_test_table_data.py @@ -187,8 +184,6 @@ src/thousandeyes_sdk/dashboards/models/api_widget_data_snapshot_response.py src/thousandeyes_sdk/dashboards/models/api_widget_filter_api_test_table_filter_key.py src/thousandeyes_sdk/dashboards/models/api_widget_fixed_y_scale_prefix.py src/thousandeyes_sdk/dashboards/models/api_widget_measure.py -src/thousandeyes_sdk/dashboards/models/api_widget_sort_direction.py -src/thousandeyes_sdk/dashboards/models/api_widget_sort_property.py src/thousandeyes_sdk/dashboards/models/api_widgets_data_v2.py src/thousandeyes_sdk/dashboards/models/app_and_self_links.py src/thousandeyes_sdk/dashboards/models/asw_repeat.py @@ -245,7 +240,6 @@ src/thousandeyes_sdk/dashboards/models/visual_mode.py src/thousandeyes_sdk/dashboards/models/widget.py src/thousandeyes_sdk/dashboards/models/widget_measure_type.py src/thousandeyes_sdk/dashboards/models/widget_position.py -src/thousandeyes_sdk/dashboards/models/widget_type.py src/thousandeyes_sdk/dashboards/py.typed test/__init__.py test/test_dashboard_snapshots_api.py diff --git a/thousandeyes-sdk-dashboards/README.md b/thousandeyes-sdk-dashboards/README.md index b989cc9d..1b601f42 100644 --- a/thousandeyes-sdk-dashboards/README.md +++ b/thousandeyes-sdk-dashboards/README.md @@ -3,7 +3,7 @@ Manage ThousandEyes Dashboards. This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project: -- API version: 7.0.84 +- API version: 7.0.92 - Generator version: 7.6.0 - Build package: com.thousandeyes.api.codegen.ThousandeyesPythonGenerator @@ -127,8 +127,6 @@ Class | Method | HTTP request | Description - [ApiAgentStatusIpInfo](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-dashboards/docs/ApiAgentStatusIpInfo.md) - [ApiAgentStatusSummary](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-dashboards/docs/ApiAgentStatusSummary.md) - [ApiAgentStatusWidget](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-dashboards/docs/ApiAgentStatusWidget.md) - - [ApiAgentWidgetShow](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-dashboards/docs/ApiAgentWidgetShow.md) - - [ApiAgentWidgetType](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-dashboards/docs/ApiAgentWidgetType.md) - [ApiAggregateProperty](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-dashboards/docs/ApiAggregateProperty.md) - [ApiAlertListAlert](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-dashboards/docs/ApiAlertListAlert.md) - [ApiAlertListWidget](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-dashboards/docs/ApiAlertListWidget.md) @@ -158,10 +156,12 @@ Class | Method | HTTP request | Description - [ApiNumbersCardData](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-dashboards/docs/ApiNumbersCardData.md) - [ApiNumbersCardWidget](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-dashboards/docs/ApiNumbersCardWidget.md) - [ApiPieChartWidget](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-dashboards/docs/ApiPieChartWidget.md) + - [ApiPieChartWidgetProperties](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-dashboards/docs/ApiPieChartWidgetProperties.md) - [ApiReportDataComponentLabelMap](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-dashboards/docs/ApiReportDataComponentLabelMap.md) - [ApiReportDataComponentLabelMapEntry](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-dashboards/docs/ApiReportDataComponentLabelMapEntry.md) - [ApiReportSnapshotTimeSpan](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-dashboards/docs/ApiReportSnapshotTimeSpan.md) - [ApiStackedAreaChartWidget](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-dashboards/docs/ApiStackedAreaChartWidget.md) + - [ApiStackedAreaChartWidgetProperties](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-dashboards/docs/ApiStackedAreaChartWidgetProperties.md) - [ApiStackedBarchartWidget](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-dashboards/docs/ApiStackedBarchartWidget.md) - [ApiTableWidget](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-dashboards/docs/ApiTableWidget.md) - [ApiTestTableData](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-dashboards/docs/ApiTestTableData.md) @@ -176,8 +176,6 @@ Class | Method | HTTP request | Description - [ApiWidgetFilterApiTestTableFilterKey](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-dashboards/docs/ApiWidgetFilterApiTestTableFilterKey.md) - [ApiWidgetFixedYScalePrefix](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-dashboards/docs/ApiWidgetFixedYScalePrefix.md) - [ApiWidgetMeasure](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-dashboards/docs/ApiWidgetMeasure.md) - - [ApiWidgetSortDirection](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-dashboards/docs/ApiWidgetSortDirection.md) - - [ApiWidgetSortProperty](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-dashboards/docs/ApiWidgetSortProperty.md) - [ApiWidgetsDataV2](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-dashboards/docs/ApiWidgetsDataV2.md) - [AppAndSelfLinks](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-dashboards/docs/AppAndSelfLinks.md) - [AswRepeat](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-dashboards/docs/AswRepeat.md) @@ -234,7 +232,6 @@ Class | Method | HTTP request | Description - [Widget](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-dashboards/docs/Widget.md) - [WidgetMeasureType](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-dashboards/docs/WidgetMeasureType.md) - [WidgetPosition](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-dashboards/docs/WidgetPosition.md) - - [WidgetType](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-dashboards/docs/WidgetType.md) diff --git a/thousandeyes-sdk-dashboards/docs/ApiPieChartWidget.md b/thousandeyes-sdk-dashboards/docs/ApiPieChartWidget.md index 76a88645..7632b5b7 100644 --- a/thousandeyes-sdk-dashboards/docs/ApiPieChartWidget.md +++ b/thousandeyes-sdk-dashboards/docs/ApiPieChartWidget.md @@ -23,6 +23,7 @@ Name | Type | Description | Notes **type** | **str** | Pie Chart widget type | **group_by** | [**ApiAggregateProperty**](ApiAggregateProperty.md) | | [optional] **data_source** | [**PieChartDatasource**](PieChartDatasource.md) | | [optional] +**show_submetrics** | **bool** | Controls how metrics with submetric components are displayed. If `true` (default), the widget displays one chart per group. If `false`, the widget displays all submetrics in a single chart. For metrics without submetric components, this field is ignored and returned as `null`. | [optional] [default to True] ## Example diff --git a/thousandeyes-sdk-dashboards/docs/ApiPieChartWidgetProperties.md b/thousandeyes-sdk-dashboards/docs/ApiPieChartWidgetProperties.md new file mode 100644 index 00000000..47bbee4f --- /dev/null +++ b/thousandeyes-sdk-dashboards/docs/ApiPieChartWidgetProperties.md @@ -0,0 +1,32 @@ +# ApiPieChartWidgetProperties + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**type** | **str** | Pie Chart widget type | +**group_by** | [**ApiAggregateProperty**](ApiAggregateProperty.md) | | [optional] +**data_source** | [**PieChartDatasource**](PieChartDatasource.md) | | [optional] +**show_submetrics** | **bool** | Controls how metrics with submetric components are displayed. If `true` (default), the widget displays one chart per group. If `false`, the widget displays all submetrics in a single chart. For metrics without submetric components, this field is ignored and returned as `null`. | [optional] [default to True] + +## Example + +```python +from thousandeyes_sdk.dashboards.models.api_pie_chart_widget_properties import ApiPieChartWidgetProperties + +# TODO update the JSON string below +json = "{}" +# create an instance of ApiPieChartWidgetProperties from a JSON string +api_pie_chart_widget_properties_instance = ApiPieChartWidgetProperties.from_json(json) +# print the JSON string representation of the object +print(ApiPieChartWidgetProperties.to_json()) + +# convert the object into a dict +api_pie_chart_widget_properties_dict = api_pie_chart_widget_properties_instance.to_dict() +# create an instance of ApiPieChartWidgetProperties from a dict +api_pie_chart_widget_properties_from_dict = ApiPieChartWidgetProperties.from_dict(api_pie_chart_widget_properties_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/thousandeyes-sdk-dashboards/docs/ApiStackedAreaChartWidget.md b/thousandeyes-sdk-dashboards/docs/ApiStackedAreaChartWidget.md index b2506557..07aa4b16 100644 --- a/thousandeyes-sdk-dashboards/docs/ApiStackedAreaChartWidget.md +++ b/thousandeyes-sdk-dashboards/docs/ApiStackedAreaChartWidget.md @@ -26,6 +26,7 @@ Name | Type | Description | Notes **type** | **str** | Time Series: Stacked Area widget type | **group_by** | [**ApiAggregateProperty**](ApiAggregateProperty.md) | | [optional] **data_source** | [**StackedAreaChartDatasource**](StackedAreaChartDatasource.md) | | [optional] +**show_submetrics** | **bool** | Controls how metrics with submetric components are displayed. If `true` (default), the widget displays one chart per group. If `false`, the widget displays all submetrics in a single chart. For metrics without submetric components, this field is ignored and returned as `null`. | [optional] [default to True] ## Example diff --git a/thousandeyes-sdk-dashboards/docs/ApiStackedAreaChartWidgetProperties.md b/thousandeyes-sdk-dashboards/docs/ApiStackedAreaChartWidgetProperties.md new file mode 100644 index 00000000..13f4eb1c --- /dev/null +++ b/thousandeyes-sdk-dashboards/docs/ApiStackedAreaChartWidgetProperties.md @@ -0,0 +1,32 @@ +# ApiStackedAreaChartWidgetProperties + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**type** | **str** | Time Series: Stacked Area widget type | +**group_by** | [**ApiAggregateProperty**](ApiAggregateProperty.md) | | [optional] +**data_source** | [**StackedAreaChartDatasource**](StackedAreaChartDatasource.md) | | [optional] +**show_submetrics** | **bool** | Controls how metrics with submetric components are displayed. If `true` (default), the widget displays one chart per group. If `false`, the widget displays all submetrics in a single chart. For metrics without submetric components, this field is ignored and returned as `null`. | [optional] [default to True] + +## Example + +```python +from thousandeyes_sdk.dashboards.models.api_stacked_area_chart_widget_properties import ApiStackedAreaChartWidgetProperties + +# TODO update the JSON string below +json = "{}" +# create an instance of ApiStackedAreaChartWidgetProperties from a JSON string +api_stacked_area_chart_widget_properties_instance = ApiStackedAreaChartWidgetProperties.from_json(json) +# print the JSON string representation of the object +print(ApiStackedAreaChartWidgetProperties.to_json()) + +# convert the object into a dict +api_stacked_area_chart_widget_properties_dict = api_stacked_area_chart_widget_properties_instance.to_dict() +# create an instance of ApiStackedAreaChartWidgetProperties from a dict +api_stacked_area_chart_widget_properties_from_dict = ApiStackedAreaChartWidgetProperties.from_dict(api_stacked_area_chart_widget_properties_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/thousandeyes-sdk-dashboards/docs/ApiWidget.md b/thousandeyes-sdk-dashboards/docs/ApiWidget.md index d3da558b..8ff5f851 100644 --- a/thousandeyes-sdk-dashboards/docs/ApiWidget.md +++ b/thousandeyes-sdk-dashboards/docs/ApiWidget.md @@ -46,6 +46,7 @@ Name | Type | Description | Notes **row_group_by** | [**ApiAggregateProperty**](ApiAggregateProperty.md) | | [optional] **multi_metric_columns** | [**List[ApiMultiMetricColumn]**](ApiMultiMetricColumn.md) | | [optional] **number_cards** | [**List[ApiNumbersCard]**](ApiNumbersCard.md) | | [optional] +**show_submetrics** | **bool** | Controls how metrics with submetric components are displayed. If `true` (default), the widget displays one chart per group. If `false`, the widget displays all submetrics in a single chart. For metrics without submetric components, this field is ignored and returned as `null`. | [optional] [default to True] **column_group_by** | [**ApiAggregateProperty**](ApiAggregateProperty.md) | | [optional] **filter** | [**ApiWidgetFilterApiTestTableFilterKey**](ApiWidgetFilterApiTestTableFilterKey.md) | | [optional] **exclude** | [**ApiWidgetFilterApiTestTableFilterKey**](ApiWidgetFilterApiTestTableFilterKey.md) | | [optional] diff --git a/thousandeyes-sdk-dashboards/src/thousandeyes_sdk/dashboards/__init__.py b/thousandeyes-sdk-dashboards/src/thousandeyes_sdk/dashboards/__init__.py index c7eb34b6..b50cccf1 100644 --- a/thousandeyes-sdk-dashboards/src/thousandeyes_sdk/dashboards/__init__.py +++ b/thousandeyes-sdk-dashboards/src/thousandeyes_sdk/dashboards/__init__.py @@ -29,8 +29,6 @@ from thousandeyes_sdk.dashboards.models.api_agent_status_agent import ApiAgentSt from thousandeyes_sdk.dashboards.models.api_agent_status_ip_info import ApiAgentStatusIpInfo from thousandeyes_sdk.dashboards.models.api_agent_status_summary import ApiAgentStatusSummary from thousandeyes_sdk.dashboards.models.api_agent_status_widget import ApiAgentStatusWidget -from thousandeyes_sdk.dashboards.models.api_agent_widget_show import ApiAgentWidgetShow -from thousandeyes_sdk.dashboards.models.api_agent_widget_type import ApiAgentWidgetType from thousandeyes_sdk.dashboards.models.api_aggregate_property import ApiAggregateProperty from thousandeyes_sdk.dashboards.models.api_alert_list_alert import ApiAlertListAlert from thousandeyes_sdk.dashboards.models.api_alert_list_widget import ApiAlertListWidget @@ -60,10 +58,12 @@ from thousandeyes_sdk.dashboards.models.api_numbers_card import ApiNumbersCard from thousandeyes_sdk.dashboards.models.api_numbers_card_data import ApiNumbersCardData from thousandeyes_sdk.dashboards.models.api_numbers_card_widget import ApiNumbersCardWidget from thousandeyes_sdk.dashboards.models.api_pie_chart_widget import ApiPieChartWidget +from thousandeyes_sdk.dashboards.models.api_pie_chart_widget_properties import ApiPieChartWidgetProperties from thousandeyes_sdk.dashboards.models.api_report_data_component_label_map import ApiReportDataComponentLabelMap from thousandeyes_sdk.dashboards.models.api_report_data_component_label_map_entry import ApiReportDataComponentLabelMapEntry from thousandeyes_sdk.dashboards.models.api_report_snapshot_time_span import ApiReportSnapshotTimeSpan from thousandeyes_sdk.dashboards.models.api_stacked_area_chart_widget import ApiStackedAreaChartWidget +from thousandeyes_sdk.dashboards.models.api_stacked_area_chart_widget_properties import ApiStackedAreaChartWidgetProperties from thousandeyes_sdk.dashboards.models.api_stacked_barchart_widget import ApiStackedBarchartWidget from thousandeyes_sdk.dashboards.models.api_table_widget import ApiTableWidget from thousandeyes_sdk.dashboards.models.api_test_table_data import ApiTestTableData @@ -78,8 +78,6 @@ from thousandeyes_sdk.dashboards.models.api_widget_data_snapshot_response import from thousandeyes_sdk.dashboards.models.api_widget_filter_api_test_table_filter_key import ApiWidgetFilterApiTestTableFilterKey from thousandeyes_sdk.dashboards.models.api_widget_fixed_y_scale_prefix import ApiWidgetFixedYScalePrefix from thousandeyes_sdk.dashboards.models.api_widget_measure import ApiWidgetMeasure -from thousandeyes_sdk.dashboards.models.api_widget_sort_direction import ApiWidgetSortDirection -from thousandeyes_sdk.dashboards.models.api_widget_sort_property import ApiWidgetSortProperty from thousandeyes_sdk.dashboards.models.api_widgets_data_v2 import ApiWidgetsDataV2 from thousandeyes_sdk.dashboards.models.app_and_self_links import AppAndSelfLinks from thousandeyes_sdk.dashboards.models.asw_repeat import AswRepeat @@ -136,4 +134,3 @@ from thousandeyes_sdk.dashboards.models.visual_mode import VisualMode from thousandeyes_sdk.dashboards.models.widget import Widget from thousandeyes_sdk.dashboards.models.widget_measure_type import WidgetMeasureType from thousandeyes_sdk.dashboards.models.widget_position import WidgetPosition -from thousandeyes_sdk.dashboards.models.widget_type import WidgetType diff --git a/thousandeyes-sdk-dashboards/src/thousandeyes_sdk/dashboards/models/__init__.py b/thousandeyes-sdk-dashboards/src/thousandeyes_sdk/dashboards/models/__init__.py index d13ae09f..228efa59 100644 --- a/thousandeyes-sdk-dashboards/src/thousandeyes_sdk/dashboards/models/__init__.py +++ b/thousandeyes-sdk-dashboards/src/thousandeyes_sdk/dashboards/models/__init__.py @@ -22,8 +22,6 @@ from thousandeyes_sdk.dashboards.models.api_agent_status_agent import ApiAgentSt from thousandeyes_sdk.dashboards.models.api_agent_status_ip_info import ApiAgentStatusIpInfo from thousandeyes_sdk.dashboards.models.api_agent_status_summary import ApiAgentStatusSummary from thousandeyes_sdk.dashboards.models.api_agent_status_widget import ApiAgentStatusWidget -from thousandeyes_sdk.dashboards.models.api_agent_widget_show import ApiAgentWidgetShow -from thousandeyes_sdk.dashboards.models.api_agent_widget_type import ApiAgentWidgetType from thousandeyes_sdk.dashboards.models.api_aggregate_property import ApiAggregateProperty from thousandeyes_sdk.dashboards.models.api_alert_list_alert import ApiAlertListAlert from thousandeyes_sdk.dashboards.models.api_alert_list_widget import ApiAlertListWidget @@ -53,10 +51,12 @@ from thousandeyes_sdk.dashboards.models.api_numbers_card import ApiNumbersCard from thousandeyes_sdk.dashboards.models.api_numbers_card_data import ApiNumbersCardData from thousandeyes_sdk.dashboards.models.api_numbers_card_widget import ApiNumbersCardWidget from thousandeyes_sdk.dashboards.models.api_pie_chart_widget import ApiPieChartWidget +from thousandeyes_sdk.dashboards.models.api_pie_chart_widget_properties import ApiPieChartWidgetProperties from thousandeyes_sdk.dashboards.models.api_report_data_component_label_map import ApiReportDataComponentLabelMap from thousandeyes_sdk.dashboards.models.api_report_data_component_label_map_entry import ApiReportDataComponentLabelMapEntry from thousandeyes_sdk.dashboards.models.api_report_snapshot_time_span import ApiReportSnapshotTimeSpan from thousandeyes_sdk.dashboards.models.api_stacked_area_chart_widget import ApiStackedAreaChartWidget +from thousandeyes_sdk.dashboards.models.api_stacked_area_chart_widget_properties import ApiStackedAreaChartWidgetProperties from thousandeyes_sdk.dashboards.models.api_stacked_barchart_widget import ApiStackedBarchartWidget from thousandeyes_sdk.dashboards.models.api_table_widget import ApiTableWidget from thousandeyes_sdk.dashboards.models.api_test_table_data import ApiTestTableData @@ -71,8 +71,6 @@ from thousandeyes_sdk.dashboards.models.api_widget_data_snapshot_response import from thousandeyes_sdk.dashboards.models.api_widget_filter_api_test_table_filter_key import ApiWidgetFilterApiTestTableFilterKey from thousandeyes_sdk.dashboards.models.api_widget_fixed_y_scale_prefix import ApiWidgetFixedYScalePrefix from thousandeyes_sdk.dashboards.models.api_widget_measure import ApiWidgetMeasure -from thousandeyes_sdk.dashboards.models.api_widget_sort_direction import ApiWidgetSortDirection -from thousandeyes_sdk.dashboards.models.api_widget_sort_property import ApiWidgetSortProperty from thousandeyes_sdk.dashboards.models.api_widgets_data_v2 import ApiWidgetsDataV2 from thousandeyes_sdk.dashboards.models.app_and_self_links import AppAndSelfLinks from thousandeyes_sdk.dashboards.models.asw_repeat import AswRepeat @@ -129,4 +127,3 @@ from thousandeyes_sdk.dashboards.models.visual_mode import VisualMode from thousandeyes_sdk.dashboards.models.widget import Widget from thousandeyes_sdk.dashboards.models.widget_measure_type import WidgetMeasureType from thousandeyes_sdk.dashboards.models.widget_position import WidgetPosition -from thousandeyes_sdk.dashboards.models.widget_type import WidgetType diff --git a/thousandeyes-sdk-dashboards/src/thousandeyes_sdk/dashboards/models/api_aggregate_property.py b/thousandeyes-sdk-dashboards/src/thousandeyes_sdk/dashboards/models/api_aggregate_property.py index 11358a61..f075ab75 100644 --- a/thousandeyes-sdk-dashboards/src/thousandeyes_sdk/dashboards/models/api_aggregate_property.py +++ b/thousandeyes-sdk-dashboards/src/thousandeyes_sdk/dashboards/models/api_aggregate_property.py @@ -41,6 +41,7 @@ class ApiAggregateProperty(str, Enum): TEST_LABEL = 'TEST_LABEL' TEST_TAG = 'TEST_TAG' AGENT_LABEL = 'AGENT_LABEL' + AGENT_TAG = 'AGENT_TAG' TRANSACTION_STEP = 'TRANSACTION_STEP' TRANSACTION_PAGE = 'TRANSACTION_PAGE' WEB_TRANSACTION_MARKER = 'WEB_TRANSACTION_MARKER' @@ -101,6 +102,7 @@ class ApiAggregateProperty(str, Enum): EYEBROW_ORG_NAME = 'EYEBROW_ORG_NAME' EYEBROW_USER = 'EYEBROW_USER' EYEBROW_AGENT = 'EYEBROW_AGENT' + EYEBROW_AGENT_TAG = 'EYEBROW_AGENT_TAG' EYEBROW_COMPUTER_NAME = 'EYEBROW_COMPUTER_NAME' CLOUD_NATIVE_MONITORING_MINUS_ALL = 'CLOUD_NATIVE_MONITORING-ALL' CLOUD_NATIVE_MONITORING_MINUS_ACCOUNT = 'CLOUD_NATIVE_MONITORING-ACCOUNT' diff --git a/thousandeyes-sdk-dashboards/src/thousandeyes_sdk/dashboards/models/api_pie_chart_widget.py b/thousandeyes-sdk-dashboards/src/thousandeyes_sdk/dashboards/models/api_pie_chart_widget.py index 369fde97..46472a97 100644 --- a/thousandeyes-sdk-dashboards/src/thousandeyes_sdk/dashboards/models/api_pie_chart_widget.py +++ b/thousandeyes-sdk-dashboards/src/thousandeyes_sdk/dashboards/models/api_pie_chart_widget.py @@ -52,7 +52,8 @@ class ApiPieChartWidget(BaseModel): type: Annotated[str, Field(strict=True)] = Field(description="Pie Chart widget type") group_by: Optional[ApiAggregateProperty] = Field(default=None, alias="groupBy") data_source: Optional[PieChartDatasource] = Field(default=None, alias="dataSource") - __properties: ClassVar[List[str]] = ["id", "title", "visualMode", "embedUrl", "isEmbedded", "metricGroup", "direction", "metric", "filters", "measure", "fixedTimespan", "apiLink", "shouldExcludeAlertSuppressionWindows", "_links", "type", "groupBy", "dataSource"] + show_submetrics: Optional[StrictBool] = Field(default=True, description="Controls how metrics with submetric components are displayed. If `true` (default), the widget displays one chart per group. If `false`, the widget displays all submetrics in a single chart. For metrics without submetric components, this field is ignored and returned as `null`.", alias="showSubmetrics") + __properties: ClassVar[List[str]] = ["id", "title", "visualMode", "embedUrl", "isEmbedded", "metricGroup", "direction", "metric", "filters", "measure", "fixedTimespan", "apiLink", "shouldExcludeAlertSuppressionWindows", "_links", "type", "groupBy", "dataSource", "showSubmetrics"] @field_validator('type') def type_validate_regular_expression(cls, value): @@ -116,6 +117,11 @@ class ApiPieChartWidget(BaseModel): # override the default output from pydantic by calling `to_dict()` of links if self.links: _dict['_links'] = self.links.to_dict() + # set to None if show_submetrics (nullable) is None + # and model_fields_set contains the field + if self.show_submetrics is None and "show_submetrics" in self.model_fields_set: + _dict['showSubmetrics'] = None + return _dict @classmethod @@ -144,7 +150,8 @@ class ApiPieChartWidget(BaseModel): "_links": SelfLinks.from_dict(obj["_links"]) if obj.get("_links") is not None else None, "type": obj.get("type"), "groupBy": obj.get("groupBy"), - "dataSource": obj.get("dataSource") + "dataSource": obj.get("dataSource"), + "showSubmetrics": obj.get("showSubmetrics") if obj.get("showSubmetrics") is not None else True }) return _obj diff --git a/thousandeyes-sdk-dashboards/src/thousandeyes_sdk/dashboards/models/api_pie_chart_widget_properties.py b/thousandeyes-sdk-dashboards/src/thousandeyes_sdk/dashboards/models/api_pie_chart_widget_properties.py new file mode 100644 index 00000000..71d114f3 --- /dev/null +++ b/thousandeyes-sdk-dashboards/src/thousandeyes_sdk/dashboards/models/api_pie_chart_widget_properties.py @@ -0,0 +1,108 @@ +# coding: utf-8 + +""" + Dashboards API + + Manage ThousandEyes Dashboards. + + 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, field_validator +from typing import Any, ClassVar, Dict, List, Optional +from typing_extensions import Annotated +from thousandeyes_sdk.dashboards.models.api_aggregate_property import ApiAggregateProperty +from thousandeyes_sdk.dashboards.models.pie_chart_datasource import PieChartDatasource +from typing import Optional, Set +from typing_extensions import Self + +class ApiPieChartWidgetProperties(BaseModel): + """ + ApiPieChartWidgetProperties + """ # noqa: E501 + type: Annotated[str, Field(strict=True)] = Field(description="Pie Chart widget type") + group_by: Optional[ApiAggregateProperty] = Field(default=None, alias="groupBy") + data_source: Optional[PieChartDatasource] = Field(default=None, alias="dataSource") + show_submetrics: Optional[StrictBool] = Field(default=True, description="Controls how metrics with submetric components are displayed. If `true` (default), the widget displays one chart per group. If `false`, the widget displays all submetrics in a single chart. For metrics without submetric components, this field is ignored and returned as `null`.", alias="showSubmetrics") + __properties: ClassVar[List[str]] = ["type", "groupBy", "dataSource", "showSubmetrics"] + + @field_validator('type') + def type_validate_regular_expression(cls, value): + """Validates the regular expression""" + if not re.match(r"^Pie Chart$", value): + raise ValueError(r"must validate the regular expression /^Pie Chart$/") + return value + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + extra="allow", + ) + + + 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 self.model_dump_json(by_alias=True, exclude_unset=True, exclude_none=True) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of ApiPieChartWidgetProperties 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 show_submetrics (nullable) is None + # and model_fields_set contains the field + if self.show_submetrics is None and "show_submetrics" in self.model_fields_set: + _dict['showSubmetrics'] = None + + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of ApiPieChartWidgetProperties 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"), + "groupBy": obj.get("groupBy"), + "dataSource": obj.get("dataSource"), + "showSubmetrics": obj.get("showSubmetrics") if obj.get("showSubmetrics") is not None else True + }) + return _obj + + diff --git a/thousandeyes-sdk-dashboards/src/thousandeyes_sdk/dashboards/models/api_stacked_area_chart_widget.py b/thousandeyes-sdk-dashboards/src/thousandeyes_sdk/dashboards/models/api_stacked_area_chart_widget.py index 5c9db5dc..52050839 100644 --- a/thousandeyes-sdk-dashboards/src/thousandeyes_sdk/dashboards/models/api_stacked_area_chart_widget.py +++ b/thousandeyes-sdk-dashboards/src/thousandeyes_sdk/dashboards/models/api_stacked_area_chart_widget.py @@ -56,7 +56,8 @@ class ApiStackedAreaChartWidget(BaseModel): type: Annotated[str, Field(strict=True)] = Field(description="Time Series: Stacked Area widget type") group_by: Optional[ApiAggregateProperty] = Field(default=None, alias="groupBy") data_source: Optional[StackedAreaChartDatasource] = Field(default=None, alias="dataSource") - __properties: ClassVar[List[str]] = ["id", "title", "visualMode", "embedUrl", "isEmbedded", "metricGroup", "direction", "metric", "filters", "measure", "fixedTimespan", "apiLink", "shouldExcludeAlertSuppressionWindows", "_links", "minScale", "maxScale", "unit", "type", "groupBy", "dataSource"] + show_submetrics: Optional[StrictBool] = Field(default=True, description="Controls how metrics with submetric components are displayed. If `true` (default), the widget displays one chart per group. If `false`, the widget displays all submetrics in a single chart. For metrics without submetric components, this field is ignored and returned as `null`.", alias="showSubmetrics") + __properties: ClassVar[List[str]] = ["id", "title", "visualMode", "embedUrl", "isEmbedded", "metricGroup", "direction", "metric", "filters", "measure", "fixedTimespan", "apiLink", "shouldExcludeAlertSuppressionWindows", "_links", "minScale", "maxScale", "unit", "type", "groupBy", "dataSource", "showSubmetrics"] @field_validator('type') def type_validate_regular_expression(cls, value): @@ -120,6 +121,11 @@ class ApiStackedAreaChartWidget(BaseModel): # override the default output from pydantic by calling `to_dict()` of links if self.links: _dict['_links'] = self.links.to_dict() + # set to None if show_submetrics (nullable) is None + # and model_fields_set contains the field + if self.show_submetrics is None and "show_submetrics" in self.model_fields_set: + _dict['showSubmetrics'] = None + return _dict @classmethod @@ -151,7 +157,8 @@ class ApiStackedAreaChartWidget(BaseModel): "unit": obj.get("unit"), "type": obj.get("type"), "groupBy": obj.get("groupBy"), - "dataSource": obj.get("dataSource") + "dataSource": obj.get("dataSource"), + "showSubmetrics": obj.get("showSubmetrics") if obj.get("showSubmetrics") is not None else True }) return _obj diff --git a/thousandeyes-sdk-dashboards/src/thousandeyes_sdk/dashboards/models/api_stacked_area_chart_widget_properties.py b/thousandeyes-sdk-dashboards/src/thousandeyes_sdk/dashboards/models/api_stacked_area_chart_widget_properties.py new file mode 100644 index 00000000..c11947a3 --- /dev/null +++ b/thousandeyes-sdk-dashboards/src/thousandeyes_sdk/dashboards/models/api_stacked_area_chart_widget_properties.py @@ -0,0 +1,108 @@ +# coding: utf-8 + +""" + Dashboards API + + Manage ThousandEyes Dashboards. + + 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, field_validator +from typing import Any, ClassVar, Dict, List, Optional +from typing_extensions import Annotated +from thousandeyes_sdk.dashboards.models.api_aggregate_property import ApiAggregateProperty +from thousandeyes_sdk.dashboards.models.stacked_area_chart_datasource import StackedAreaChartDatasource +from typing import Optional, Set +from typing_extensions import Self + +class ApiStackedAreaChartWidgetProperties(BaseModel): + """ + ApiStackedAreaChartWidgetProperties + """ # noqa: E501 + type: Annotated[str, Field(strict=True)] = Field(description="Time Series: Stacked Area widget type") + group_by: Optional[ApiAggregateProperty] = Field(default=None, alias="groupBy") + data_source: Optional[StackedAreaChartDatasource] = Field(default=None, alias="dataSource") + show_submetrics: Optional[StrictBool] = Field(default=True, description="Controls how metrics with submetric components are displayed. If `true` (default), the widget displays one chart per group. If `false`, the widget displays all submetrics in a single chart. For metrics without submetric components, this field is ignored and returned as `null`.", alias="showSubmetrics") + __properties: ClassVar[List[str]] = ["type", "groupBy", "dataSource", "showSubmetrics"] + + @field_validator('type') + def type_validate_regular_expression(cls, value): + """Validates the regular expression""" + if not re.match(r"^Time Series: Stacked Area$", value): + raise ValueError(r"must validate the regular expression /^Time Series: Stacked Area$/") + return value + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + extra="allow", + ) + + + 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 self.model_dump_json(by_alias=True, exclude_unset=True, exclude_none=True) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of ApiStackedAreaChartWidgetProperties 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 show_submetrics (nullable) is None + # and model_fields_set contains the field + if self.show_submetrics is None and "show_submetrics" in self.model_fields_set: + _dict['showSubmetrics'] = None + + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of ApiStackedAreaChartWidgetProperties 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"), + "groupBy": obj.get("groupBy"), + "dataSource": obj.get("dataSource"), + "showSubmetrics": obj.get("showSubmetrics") if obj.get("showSubmetrics") is not None else True + }) + return _obj + + diff --git a/thousandeyes-sdk-dashboards/src/thousandeyes_sdk/dashboards/models/api_widget_sort_property.py b/thousandeyes-sdk-dashboards/src/thousandeyes_sdk/dashboards/models/api_widget_sort_property.py deleted file mode 100644 index c3a73ee1..00000000 --- a/thousandeyes-sdk-dashboards/src/thousandeyes_sdk/dashboards/models/api_widget_sort_property.py +++ /dev/null @@ -1,41 +0,0 @@ -# coding: utf-8 - -""" - Dashboards API - - Manage ThousandEyes Dashboards. - - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -from enum import Enum -from typing_extensions import Self - - -class ApiWidgetSortProperty(str, Enum): - """ - Determines the card sorting criterion. - """ - - """ - allowed enum values - """ - ALPHABETICAL = 'alphabetical' - VALUE = 'value' - UNKNOWN = 'unknown' - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Create an instance of ApiWidgetSortProperty from a JSON string""" - return cls(json.loads(json_str)) - - @classmethod - def _missing_(cls, value): - """Handle unknown values""" - return cls.UNKNOWN - diff --git a/thousandeyes-sdk-dashboards/src/thousandeyes_sdk/dashboards/models/widget_type.py b/thousandeyes-sdk-dashboards/src/thousandeyes_sdk/dashboards/models/widget_type.py deleted file mode 100644 index 80aac869..00000000 --- a/thousandeyes-sdk-dashboards/src/thousandeyes_sdk/dashboards/models/widget_type.py +++ /dev/null @@ -1,54 +0,0 @@ -# coding: utf-8 - -""" - Dashboards API - - Manage ThousandEyes Dashboards. - - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -from enum import Enum -from typing_extensions import Self - - -class WidgetType(str, Enum): - """ - Type of the Widget - """ - - """ - allowed enum values - """ - BAR_CHART_COLON__STACKED = 'Bar Chart: Stacked' - BAR_CHART_COLON__GROUPED = 'Bar Chart: Grouped' - TIME_SERIES_COLON__LINE = 'Time Series: Line' - TIME_SERIES_COLON__STACKED_AREA = 'Time Series: Stacked Area' - PIE_CHART = 'Pie Chart' - TABLE = 'Table' - MULTI_METRIC_TABLE = 'Multi Metric Table' - NUMBER = 'Number' - AGENT_STATUS = 'Agent Status' - COLOR_GRID = 'Color Grid' - ALERT_LIST = 'Alert List' - LIST = 'List' - TEST_TABLE = 'Test Table' - MAP = 'Map' - BOX_AND_WHISKERS = 'Box and Whiskers' - UNKNOWN = 'unknown' - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Create an instance of WidgetType from a JSON string""" - return cls(json.loads(json_str)) - - @classmethod - def _missing_(cls, value): - """Handle unknown values""" - return cls.UNKNOWN - diff --git a/thousandeyes-sdk-dashboards/test/test_dashboard_snapshots_api.py b/thousandeyes-sdk-dashboards/test/test_dashboard_snapshots_api.py index 99a39231..80c4c16e 100644 --- a/thousandeyes-sdk-dashboards/test/test_dashboard_snapshots_api.py +++ b/thousandeyes-sdk-dashboards/test/test_dashboard_snapshots_api.py @@ -130,7 +130,7 @@ class TestDashboardSnapshotsApi(unittest.TestCase): "type" : "Agent Status", "metricGroup" : "BGP", "measure" : { - "percentileValue" : 95.0, + "percentileValue" : 95, "type" : "MEAN" }, "apiLink" : "apiLink", @@ -167,7 +167,7 @@ class TestDashboardSnapshotsApi(unittest.TestCase): "type" : "Agent Status", "metricGroup" : "BGP", "measure" : { - "percentileValue" : 95.0, + "percentileValue" : 95, "type" : "MEAN" }, "apiLink" : "apiLink", @@ -247,7 +247,7 @@ class TestDashboardSnapshotsApi(unittest.TestCase): "type" : "Agent Status", "metricGroup" : "BGP", "measure" : { - "percentileValue" : 95.0, + "percentileValue" : 95, "type" : "MEAN" }, "apiLink" : "apiLink", @@ -284,7 +284,7 @@ class TestDashboardSnapshotsApi(unittest.TestCase): "type" : "Agent Status", "metricGroup" : "BGP", "measure" : { - "percentileValue" : 95.0, + "percentileValue" : 95, "type" : "MEAN" }, "apiLink" : "apiLink", @@ -434,8 +434,8 @@ class TestDashboardSnapshotsApi(unittest.TestCase): "startTimes" : [ "2023-05-16T10:14:28Z" ] } ], "binSize" : 3600, - "previousValue" : 500.0, - "value" : 100.0, + "previousValue" : 500, + "value" : 100, "startDate" : "2023-05-16T10:14:28Z", "timestamp" : 1567620000, "status" : "No data" @@ -476,8 +476,8 @@ class TestDashboardSnapshotsApi(unittest.TestCase): "startTimes" : [ "2023-05-16T10:14:28Z" ] } ], "binSize" : 3600, - "previousValue" : 500.0, - "value" : 100.0, + "previousValue" : 500, + "value" : 100, "startDate" : "2023-05-16T10:14:28Z", "timestamp" : 1567620000, "status" : "No data" @@ -582,7 +582,7 @@ class TestDashboardSnapshotsApi(unittest.TestCase): "groupProperty" : "COUNTRY", "groupValue" : "US" } ], - "value" : 100.0, + "value" : 100, "timestamp" : 1567620000 }, { "numberOfDataPoints" : 23304, @@ -593,7 +593,7 @@ class TestDashboardSnapshotsApi(unittest.TestCase): "groupProperty" : "COUNTRY", "groupValue" : "US" } ], - "value" : 100.0, + "value" : 100, "timestamp" : 1567620000 } ], "status" : "No data" @@ -640,7 +640,7 @@ class TestDashboardSnapshotsApi(unittest.TestCase): "groupProperty" : "COUNTRY", "groupValue" : "US" } ], - "value" : 100.0, + "value" : 100, "timestamp" : 1567620000 }, { "numberOfDataPoints" : 23304, @@ -651,7 +651,7 @@ class TestDashboardSnapshotsApi(unittest.TestCase): "groupProperty" : "COUNTRY", "groupValue" : "US" } ], - "value" : 100.0, + "value" : 100, "timestamp" : 1567620000 } ], "status" : "No data" @@ -686,7 +686,7 @@ class TestDashboardSnapshotsApi(unittest.TestCase): "groupProperty" : "COUNTRY", "groupValue" : "US" } ], - "value" : 100.0, + "value" : 100, "timestamp" : 1567620000 }, { "numberOfDataPoints" : 23304, @@ -697,7 +697,7 @@ class TestDashboardSnapshotsApi(unittest.TestCase): "groupProperty" : "COUNTRY", "groupValue" : "US" } ], - "value" : 100.0, + "value" : 100, "timestamp" : 1567620000 } ], "agents" : [ { @@ -849,7 +849,7 @@ class TestDashboardSnapshotsApi(unittest.TestCase): "type" : "Agent Status", "metricGroup" : "BGP", "measure" : { - "percentileValue" : 95.0, + "percentileValue" : 95, "type" : "MEAN" }, "apiLink" : "apiLink", @@ -886,7 +886,7 @@ class TestDashboardSnapshotsApi(unittest.TestCase): "type" : "Agent Status", "metricGroup" : "BGP", "measure" : { - "percentileValue" : 95.0, + "percentileValue" : 95, "type" : "MEAN" }, "apiLink" : "apiLink", @@ -966,7 +966,7 @@ class TestDashboardSnapshotsApi(unittest.TestCase): "type" : "Agent Status", "metricGroup" : "BGP", "measure" : { - "percentileValue" : 95.0, + "percentileValue" : 95, "type" : "MEAN" }, "apiLink" : "apiLink", @@ -1003,7 +1003,7 @@ class TestDashboardSnapshotsApi(unittest.TestCase): "type" : "Agent Status", "metricGroup" : "BGP", "measure" : { - "percentileValue" : 95.0, + "percentileValue" : 95, "type" : "MEAN" }, "apiLink" : "apiLink", @@ -1113,7 +1113,7 @@ class TestDashboardSnapshotsApi(unittest.TestCase): "type" : "Agent Status", "metricGroup" : "BGP", "measure" : { - "percentileValue" : 95.0, + "percentileValue" : 95, "type" : "MEAN" }, "apiLink" : "apiLink", @@ -1150,7 +1150,7 @@ class TestDashboardSnapshotsApi(unittest.TestCase): "type" : "Agent Status", "metricGroup" : "BGP", "measure" : { - "percentileValue" : 95.0, + "percentileValue" : 95, "type" : "MEAN" }, "apiLink" : "apiLink", @@ -1230,7 +1230,7 @@ class TestDashboardSnapshotsApi(unittest.TestCase): "type" : "Agent Status", "metricGroup" : "BGP", "measure" : { - "percentileValue" : 95.0, + "percentileValue" : 95, "type" : "MEAN" }, "apiLink" : "apiLink", @@ -1267,7 +1267,7 @@ class TestDashboardSnapshotsApi(unittest.TestCase): "type" : "Agent Status", "metricGroup" : "BGP", "measure" : { - "percentileValue" : 95.0, + "percentileValue" : 95, "type" : "MEAN" }, "apiLink" : "apiLink", diff --git a/thousandeyes-sdk-dashboards/test/test_dashboards_api.py b/thousandeyes-sdk-dashboards/test/test_dashboards_api.py index 3931d469..c78d6db1 100644 --- a/thousandeyes-sdk-dashboards/test/test_dashboards_api.py +++ b/thousandeyes-sdk-dashboards/test/test_dashboards_api.py @@ -85,7 +85,7 @@ class TestDashboardsApi(unittest.TestCase): "type" : "Agent Status", "metricGroup" : "BGP", "measure" : { - "percentileValue" : 95.0, + "percentileValue" : 95, "type" : "MEAN" }, "apiLink" : "apiLink", @@ -122,7 +122,7 @@ class TestDashboardsApi(unittest.TestCase): "type" : "Agent Status", "metricGroup" : "BGP", "measure" : { - "percentileValue" : 95.0, + "percentileValue" : 95, "type" : "MEAN" }, "apiLink" : "apiLink", @@ -226,7 +226,7 @@ class TestDashboardsApi(unittest.TestCase): "type" : "Agent Status", "metricGroup" : "BGP", "measure" : { - "percentileValue" : 95.0, + "percentileValue" : 95, "type" : "MEAN" }, "apiLink" : "apiLink", @@ -263,7 +263,7 @@ class TestDashboardsApi(unittest.TestCase): "type" : "Agent Status", "metricGroup" : "BGP", "measure" : { - "percentileValue" : 95.0, + "percentileValue" : 95, "type" : "MEAN" }, "apiLink" : "apiLink", @@ -373,7 +373,7 @@ class TestDashboardsApi(unittest.TestCase): "type" : "Agent Status", "metricGroup" : "BGP", "measure" : { - "percentileValue" : 95.0, + "percentileValue" : 95, "type" : "MEAN" }, "apiLink" : "apiLink", @@ -410,7 +410,7 @@ class TestDashboardsApi(unittest.TestCase): "type" : "Agent Status", "metricGroup" : "BGP", "measure" : { - "percentileValue" : 95.0, + "percentileValue" : 95, "type" : "MEAN" }, "apiLink" : "apiLink", @@ -558,8 +558,8 @@ class TestDashboardsApi(unittest.TestCase): "startTimes" : [ "2023-05-16T10:14:28Z" ] } ], "binSize" : 3600, - "previousValue" : 500.0, - "value" : 100.0, + "previousValue" : 500, + "value" : 100, "startDate" : "2023-05-16T10:14:28Z", "timestamp" : 1567620000, "status" : "No data" @@ -600,8 +600,8 @@ class TestDashboardsApi(unittest.TestCase): "startTimes" : [ "2023-05-16T10:14:28Z" ] } ], "binSize" : 3600, - "previousValue" : 500.0, - "value" : 100.0, + "previousValue" : 500, + "value" : 100, "startDate" : "2023-05-16T10:14:28Z", "timestamp" : 1567620000, "status" : "No data" @@ -706,7 +706,7 @@ class TestDashboardsApi(unittest.TestCase): "groupProperty" : "COUNTRY", "groupValue" : "US" } ], - "value" : 100.0, + "value" : 100, "timestamp" : 1567620000 }, { "numberOfDataPoints" : 23304, @@ -717,7 +717,7 @@ class TestDashboardsApi(unittest.TestCase): "groupProperty" : "COUNTRY", "groupValue" : "US" } ], - "value" : 100.0, + "value" : 100, "timestamp" : 1567620000 } ], "status" : "No data" @@ -764,7 +764,7 @@ class TestDashboardsApi(unittest.TestCase): "groupProperty" : "COUNTRY", "groupValue" : "US" } ], - "value" : 100.0, + "value" : 100, "timestamp" : 1567620000 }, { "numberOfDataPoints" : 23304, @@ -775,7 +775,7 @@ class TestDashboardsApi(unittest.TestCase): "groupProperty" : "COUNTRY", "groupValue" : "US" } ], - "value" : 100.0, + "value" : 100, "timestamp" : 1567620000 } ], "status" : "No data" @@ -810,7 +810,7 @@ class TestDashboardsApi(unittest.TestCase): "groupProperty" : "COUNTRY", "groupValue" : "US" } ], - "value" : 100.0, + "value" : 100, "timestamp" : 1567620000 }, { "numberOfDataPoints" : 23304, @@ -821,7 +821,7 @@ class TestDashboardsApi(unittest.TestCase): "groupProperty" : "COUNTRY", "groupValue" : "US" } ], - "value" : 100.0, + "value" : 100, "timestamp" : 1567620000 } ], "agents" : [ { @@ -956,7 +956,7 @@ class TestDashboardsApi(unittest.TestCase): "type" : "Agent Status", "metricGroup" : "BGP", "measure" : { - "percentileValue" : 95.0, + "percentileValue" : 95, "type" : "MEAN" }, "apiLink" : "apiLink", @@ -993,7 +993,7 @@ class TestDashboardsApi(unittest.TestCase): "type" : "Agent Status", "metricGroup" : "BGP", "measure" : { - "percentileValue" : 95.0, + "percentileValue" : 95, "type" : "MEAN" }, "apiLink" : "apiLink", @@ -1100,7 +1100,7 @@ class TestDashboardsApi(unittest.TestCase): "type" : "Agent Status", "metricGroup" : "BGP", "measure" : { - "percentileValue" : 95.0, + "percentileValue" : 95, "type" : "MEAN" }, "apiLink" : "apiLink", @@ -1137,7 +1137,7 @@ class TestDashboardsApi(unittest.TestCase): "type" : "Agent Status", "metricGroup" : "BGP", "measure" : { - "percentileValue" : 95.0, + "percentileValue" : 95, "type" : "MEAN" }, "apiLink" : "apiLink", @@ -1240,8 +1240,8 @@ class TestDashboardsApi(unittest.TestCase): "startTimes" : [ "2023-05-16T10:14:28Z" ] } ], "binSize" : 3600, - "previousValue" : 500.0, - "value" : 100.0, + "previousValue" : 500, + "value" : 100, "startDate" : "2023-05-16T10:14:28Z", "timestamp" : 1567620000, "status" : "No data" @@ -1298,7 +1298,7 @@ class TestDashboardsApi(unittest.TestCase): "groupProperty" : "COUNTRY", "groupValue" : "US" } ], - "value" : 100.0, + "value" : 100, "timestamp" : 1567620000 }, { "numberOfDataPoints" : 23304, @@ -1309,7 +1309,7 @@ class TestDashboardsApi(unittest.TestCase): "groupProperty" : "COUNTRY", "groupValue" : "US" } ], - "value" : 100.0, + "value" : 100, "timestamp" : 1567620000 } ], "status" : "No data" @@ -1376,7 +1376,7 @@ class TestDashboardsApi(unittest.TestCase): "type" : "Agent Status", "metricGroup" : "BGP", "measure" : { - "percentileValue" : 95.0, + "percentileValue" : 95, "type" : "MEAN" }, "apiLink" : "apiLink", @@ -1413,7 +1413,7 @@ class TestDashboardsApi(unittest.TestCase): "type" : "Agent Status", "metricGroup" : "BGP", "measure" : { - "percentileValue" : 95.0, + "percentileValue" : 95, "type" : "MEAN" }, "apiLink" : "apiLink", @@ -1517,7 +1517,7 @@ class TestDashboardsApi(unittest.TestCase): "type" : "Agent Status", "metricGroup" : "BGP", "measure" : { - "percentileValue" : 95.0, + "percentileValue" : 95, "type" : "MEAN" }, "apiLink" : "apiLink", @@ -1554,7 +1554,7 @@ class TestDashboardsApi(unittest.TestCase): "type" : "Agent Status", "metricGroup" : "BGP", "measure" : { - "percentileValue" : 95.0, + "percentileValue" : 95, "type" : "MEAN" }, "apiLink" : "apiLink", diff --git a/thousandeyes-sdk-emulation/README.md b/thousandeyes-sdk-emulation/README.md index e0434cb1..9fc22dec 100644 --- a/thousandeyes-sdk-emulation/README.md +++ b/thousandeyes-sdk-emulation/README.md @@ -11,7 +11,7 @@ To access Emulation API operations, the following permissions are required: This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project: -- API version: 7.0.84 +- API version: 7.0.92 - Generator version: 7.6.0 - Build package: com.thousandeyes.api.codegen.ThousandeyesPythonGenerator diff --git a/thousandeyes-sdk-endpoint-agents/README.md b/thousandeyes-sdk-endpoint-agents/README.md index 02036de5..d5675fe9 100644 --- a/thousandeyes-sdk-endpoint-agents/README.md +++ b/thousandeyes-sdk-endpoint-agents/README.md @@ -7,7 +7,7 @@ For more information about Endpoint Agents, see [Endpoint Agents](https://docs.t This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project: -- API version: 7.0.84 +- API version: 7.0.92 - Generator version: 7.6.0 - Build package: com.thousandeyes.api.codegen.ThousandeyesPythonGenerator diff --git a/thousandeyes-sdk-endpoint-agents/docs/BatteryMetrics.md b/thousandeyes-sdk-endpoint-agents/docs/BatteryMetrics.md index edae7110..32d645db 100644 --- a/thousandeyes-sdk-endpoint-agents/docs/BatteryMetrics.md +++ b/thousandeyes-sdk-endpoint-agents/docs/BatteryMetrics.md @@ -6,6 +6,7 @@ Battery metrics for the endpoint agent. Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- +**battery_health_normalized_percent** | **float** | Battery health as a normalized percentage (0-1). | [optional] **battery_level** | [**BatteryLevel**](BatteryLevel.md) | | **battery_level_normalized_percent** | **float** | Battery level as a normalized percentage (0-1). | diff --git a/thousandeyes-sdk-endpoint-agents/docs/EndpointAgent.md b/thousandeyes-sdk-endpoint-agents/docs/EndpointAgent.md index 6da19439..1ce970c8 100644 --- a/thousandeyes-sdk-endpoint-agents/docs/EndpointAgent.md +++ b/thousandeyes-sdk-endpoint-agents/docs/EndpointAgent.md @@ -10,11 +10,14 @@ Name | Type | Description | Notes **aid** | **str** | | [optional] **name** | **str** | The name of the agent. | [optional] **computer_name** | **str** | | [optional] [readonly] +**free_disk_space_normalized** | **float** | Free storage space as a normalized percentage (0-1). | [optional] [readonly] **os_version** | **str** | | [optional] [readonly] **platform** | [**Platform**](Platform.md) | | [optional] **kernel_version** | **str** | | [optional] [readonly] **manufacturer** | **str** | | [optional] [readonly] **model** | **str** | | [optional] [readonly] +**nic_driver_version** | **str** | Network interface card driver version. | [optional] [readonly] +**nic_model** | **str** | Network interface card model. | [optional] [readonly] **serial_number** | **str** | | [optional] [readonly] **last_seen** | **datetime** | The last time the agent checked-in. | [optional] [readonly] **status** | [**Status**](Status.md) | | [optional] diff --git a/thousandeyes-sdk-endpoint-agents/src/thousandeyes_sdk/endpoint_agents/models/battery_metrics.py b/thousandeyes-sdk-endpoint-agents/src/thousandeyes_sdk/endpoint_agents/models/battery_metrics.py index 87cf4b2a..c795d493 100644 --- a/thousandeyes-sdk-endpoint-agents/src/thousandeyes_sdk/endpoint_agents/models/battery_metrics.py +++ b/thousandeyes-sdk-endpoint-agents/src/thousandeyes_sdk/endpoint_agents/models/battery_metrics.py @@ -17,7 +17,7 @@ import re # noqa: F401 import json from pydantic import BaseModel, ConfigDict, Field -from typing import Any, ClassVar, Dict, List, Union +from typing import Any, ClassVar, Dict, List, Optional, Union from typing_extensions import Annotated from thousandeyes_sdk.endpoint_agents.models.battery_level import BatteryLevel from typing import Optional, Set @@ -27,9 +27,10 @@ class BatteryMetrics(BaseModel): """ Battery metrics for the endpoint agent. """ # noqa: E501 + battery_health_normalized_percent: Optional[Union[Annotated[float, Field(le=1, strict=True, ge=0)], Annotated[int, Field(le=1, strict=True, ge=0)]]] = Field(default=None, description="Battery health as a normalized percentage (0-1).", alias="batteryHealthNormalizedPercent") battery_level: BatteryLevel = Field(alias="batteryLevel") battery_level_normalized_percent: Union[Annotated[float, Field(le=1, strict=True, ge=0)], Annotated[int, Field(le=1, strict=True, ge=0)]] = Field(description="Battery level as a normalized percentage (0-1).", alias="batteryLevelNormalizedPercent") - __properties: ClassVar[List[str]] = ["batteryLevel", "batteryLevelNormalizedPercent"] + __properties: ClassVar[List[str]] = ["batteryHealthNormalizedPercent", "batteryLevel", "batteryLevelNormalizedPercent"] model_config = ConfigDict( populate_by_name=True, @@ -83,6 +84,7 @@ class BatteryMetrics(BaseModel): return cls.model_validate(obj) _obj = cls.model_validate({ + "batteryHealthNormalizedPercent": obj.get("batteryHealthNormalizedPercent"), "batteryLevel": obj.get("batteryLevel"), "batteryLevelNormalizedPercent": obj.get("batteryLevelNormalizedPercent") }) diff --git a/thousandeyes-sdk-endpoint-agents/src/thousandeyes_sdk/endpoint_agents/models/endpoint_agent.py b/thousandeyes-sdk-endpoint-agents/src/thousandeyes_sdk/endpoint_agents/models/endpoint_agent.py index e225b723..51337159 100644 --- a/thousandeyes-sdk-endpoint-agents/src/thousandeyes_sdk/endpoint_agents/models/endpoint_agent.py +++ b/thousandeyes-sdk-endpoint-agents/src/thousandeyes_sdk/endpoint_agents/models/endpoint_agent.py @@ -18,7 +18,8 @@ import json from datetime import datetime from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictInt, StrictStr -from typing import Any, ClassVar, Dict, List, Optional +from typing import Any, ClassVar, Dict, List, Optional, Union +from typing_extensions import Annotated from thousandeyes_sdk.endpoint_agents.models.agent_license_type import AgentLicenseType from thousandeyes_sdk.endpoint_agents.models.battery_metrics import BatteryMetrics from thousandeyes_sdk.endpoint_agents.models.cellular_profile import CellularProfile @@ -42,11 +43,14 @@ class EndpointAgent(BaseModel): aid: Optional[Any] = None name: Optional[StrictStr] = Field(default=None, description="The name of the agent.") computer_name: Optional[StrictStr] = Field(default=None, alias="computerName") + free_disk_space_normalized: Optional[Union[Annotated[float, Field(le=1, strict=True, ge=0)], Annotated[int, Field(le=1, strict=True, ge=0)]]] = Field(default=None, description="Free storage space as a normalized percentage (0-1).", alias="freeDiskSpaceNormalized") os_version: Optional[StrictStr] = Field(default=None, alias="osVersion") platform: Optional[Platform] = None kernel_version: Optional[StrictStr] = Field(default=None, alias="kernelVersion") manufacturer: Optional[StrictStr] = None model: Optional[StrictStr] = None + nic_driver_version: Optional[StrictStr] = Field(default=None, description="Network interface card driver version.", alias="nicDriverVersion") + nic_model: Optional[StrictStr] = Field(default=None, description="Network interface card model.", alias="nicModel") serial_number: Optional[StrictStr] = Field(default=None, alias="serialNumber") last_seen: Optional[datetime] = Field(default=None, description="The last time the agent checked-in.", alias="lastSeen") status: Optional[Status] = None @@ -70,7 +74,7 @@ class EndpointAgent(BaseModel): battery_metrics: Optional[BatteryMetrics] = Field(default=None, alias="batteryMetrics") cellular_profile: Optional[CellularProfile] = Field(default=None, alias="cellularProfile") links: Optional[SelfLinks] = Field(default=None, alias="_links") - __properties: ClassVar[List[str]] = ["id", "aid", "name", "computerName", "osVersion", "platform", "kernelVersion", "manufacturer", "model", "serialNumber", "lastSeen", "status", "deleted", "version", "targetVersion", "createdAt", "numberOfClients", "publicIP", "location", "clients", "totalMemory", "agentType", "vpnProfiles", "externalMetadata", "networkInterfaceProfiles", "asnDetails", "licenseType", "tcpDriverAvailable", "npcapVersion", "batteryMetrics", "cellularProfile", "_links"] + __properties: ClassVar[List[str]] = ["id", "aid", "name", "computerName", "freeDiskSpaceNormalized", "osVersion", "platform", "kernelVersion", "manufacturer", "model", "nicDriverVersion", "nicModel", "serialNumber", "lastSeen", "status", "deleted", "version", "targetVersion", "createdAt", "numberOfClients", "publicIP", "location", "clients", "totalMemory", "agentType", "vpnProfiles", "externalMetadata", "networkInterfaceProfiles", "asnDetails", "licenseType", "tcpDriverAvailable", "npcapVersion", "batteryMetrics", "cellularProfile", "_links"] model_config = ConfigDict( populate_by_name=True, @@ -124,14 +128,20 @@ class EndpointAgent(BaseModel): * 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([ "id", "computer_name", + "free_disk_space_normalized", "os_version", "kernel_version", "manufacturer", "model", + "nic_driver_version", + "nic_model", "serial_number", "last_seen", "deleted", @@ -197,6 +207,21 @@ class EndpointAgent(BaseModel): # override the default output from pydantic by calling `to_dict()` of links if self.links: _dict['_links'] = self.links.to_dict() + # set to None if free_disk_space_normalized (nullable) is None + # and model_fields_set contains the field + if self.free_disk_space_normalized is None and "free_disk_space_normalized" in self.model_fields_set: + _dict['freeDiskSpaceNormalized'] = None + + # set to None if nic_driver_version (nullable) is None + # and model_fields_set contains the field + if self.nic_driver_version is None and "nic_driver_version" in self.model_fields_set: + _dict['nicDriverVersion'] = None + + # set to None if nic_model (nullable) is None + # and model_fields_set contains the field + if self.nic_model is None and "nic_model" in self.model_fields_set: + _dict['nicModel'] = None + return _dict @classmethod @@ -213,11 +238,14 @@ class EndpointAgent(BaseModel): "aid": obj.get("aid"), "name": obj.get("name"), "computerName": obj.get("computerName"), + "freeDiskSpaceNormalized": obj.get("freeDiskSpaceNormalized"), "osVersion": obj.get("osVersion"), "platform": obj.get("platform"), "kernelVersion": obj.get("kernelVersion"), "manufacturer": obj.get("manufacturer"), "model": obj.get("model"), + "nicDriverVersion": obj.get("nicDriverVersion"), + "nicModel": obj.get("nicModel"), "serialNumber": obj.get("serialNumber"), "lastSeen": obj.get("lastSeen"), "status": obj.get("status"), diff --git a/thousandeyes-sdk-endpoint-agents/test/test_endpoint_agents_api.py b/thousandeyes-sdk-endpoint-agents/test/test_endpoint_agents_api.py index cc37c8ed..bbbc2b6f 100644 --- a/thousandeyes-sdk-endpoint-agents/test/test_endpoint_agents_api.py +++ b/thousandeyes-sdk-endpoint-agents/test/test_endpoint_agents_api.py @@ -97,6 +97,7 @@ class TestEndpointAgentsApi(unittest.TestCase): } }, "batteryMetrics" : { + "batteryHealthNormalizedPercent" : 0.92, "batteryLevel" : "medium", "batteryLevelNormalizedPercent" : 0.3 }, @@ -117,13 +118,16 @@ class TestEndpointAgentsApi(unittest.TestCase): "networkSubtype" : "LTE/HSPA", "sinr" : 20 }, + "nicModel" : "Intel(R) Wi-Fi 6 AX200 160MHz", "createdAt" : "2022-05-26T23:37:16Z", "numberOfClients" : 3, "licenseType" : "essentials", "osVersion" : "Version 10.15.2 (Build 19C57)", "computerName" : "DESKJET-123", + "freeDiskSpaceNormalized" : 0.41, "model" : "MacBookAir7,2", "id" : "861b7557-cd57-4bbb-b648-00bddf88ef49", + "nicDriverVersion" : "22.250.0.9", "serialNumber" : "xaab2ba4-d40f-4e80-9363-7e4826556055", "externalMetadata" : [ { "key" : "anyConnectDeviceId", @@ -282,6 +286,7 @@ class TestEndpointAgentsApi(unittest.TestCase): } }, "batteryMetrics" : { + "batteryHealthNormalizedPercent" : 0.92, "batteryLevel" : "medium", "batteryLevelNormalizedPercent" : 0.3 }, @@ -302,13 +307,16 @@ class TestEndpointAgentsApi(unittest.TestCase): "networkSubtype" : "LTE/HSPA", "sinr" : 20 }, + "nicModel" : "Intel(R) Wi-Fi 6 AX200 160MHz", "createdAt" : "2022-05-26T23:37:16Z", "numberOfClients" : 3, "licenseType" : "essentials", "osVersion" : "Version 10.15.2 (Build 19C57)", "computerName" : "DESKJET-123", + "freeDiskSpaceNormalized" : 0.41, "model" : "MacBookAir7,2", "id" : "861b7557-cd57-4bbb-b648-00bddf88ef49", + "nicDriverVersion" : "22.250.0.9", "serialNumber" : "xaab2ba4-d40f-4e80-9363-7e4826556055", "externalMetadata" : [ { "key" : "anyConnectDeviceId", @@ -523,6 +531,7 @@ class TestEndpointAgentsApi(unittest.TestCase): } }, "batteryMetrics" : { + "batteryHealthNormalizedPercent" : 0.92, "batteryLevel" : "medium", "batteryLevelNormalizedPercent" : 0.3 }, @@ -543,13 +552,16 @@ class TestEndpointAgentsApi(unittest.TestCase): "networkSubtype" : "LTE/HSPA", "sinr" : 20 }, + "nicModel" : "Intel(R) Wi-Fi 6 AX200 160MHz", "createdAt" : "2022-05-26T23:37:16Z", "numberOfClients" : 3, "licenseType" : "essentials", "osVersion" : "Version 10.15.2 (Build 19C57)", "computerName" : "DESKJET-123", + "freeDiskSpaceNormalized" : 0.41, "model" : "MacBookAir7,2", "id" : "861b7557-cd57-4bbb-b648-00bddf88ef49", + "nicDriverVersion" : "22.250.0.9", "serialNumber" : "xaab2ba4-d40f-4e80-9363-7e4826556055", "externalMetadata" : [ { "key" : "anyConnectDeviceId", @@ -698,6 +710,7 @@ class TestEndpointAgentsApi(unittest.TestCase): } }, "batteryMetrics" : { + "batteryHealthNormalizedPercent" : 0.92, "batteryLevel" : "medium", "batteryLevelNormalizedPercent" : 0.3 }, @@ -718,13 +731,16 @@ class TestEndpointAgentsApi(unittest.TestCase): "networkSubtype" : "LTE/HSPA", "sinr" : 20 }, + "nicModel" : "Intel(R) Wi-Fi 6 AX200 160MHz", "createdAt" : "2022-05-26T23:37:16Z", "numberOfClients" : 3, "licenseType" : "essentials", "osVersion" : "Version 10.15.2 (Build 19C57)", "computerName" : "DESKJET-123", + "freeDiskSpaceNormalized" : 0.41, "model" : "MacBookAir7,2", "id" : "861b7557-cd57-4bbb-b648-00bddf88ef49", + "nicDriverVersion" : "22.250.0.9", "serialNumber" : "xaab2ba4-d40f-4e80-9363-7e4826556055", "externalMetadata" : [ { "key" : "anyConnectDeviceId", @@ -884,6 +900,7 @@ class TestEndpointAgentsApi(unittest.TestCase): } }, "batteryMetrics" : { + "batteryHealthNormalizedPercent" : 0.92, "batteryLevel" : "medium", "batteryLevelNormalizedPercent" : 0.3 }, @@ -904,13 +921,16 @@ class TestEndpointAgentsApi(unittest.TestCase): "networkSubtype" : "LTE/HSPA", "sinr" : 20 }, + "nicModel" : "Intel(R) Wi-Fi 6 AX200 160MHz", "createdAt" : "2022-05-26T23:37:16Z", "numberOfClients" : 3, "licenseType" : "essentials", "osVersion" : "Version 10.15.2 (Build 19C57)", "computerName" : "DESKJET-123", + "freeDiskSpaceNormalized" : 0.41, "model" : "MacBookAir7,2", "id" : "861b7557-cd57-4bbb-b648-00bddf88ef49", + "nicDriverVersion" : "22.250.0.9", "serialNumber" : "xaab2ba4-d40f-4e80-9363-7e4826556055", "externalMetadata" : [ { "key" : "anyConnectDeviceId", @@ -1093,6 +1113,7 @@ class TestEndpointAgentsApi(unittest.TestCase): } }, "batteryMetrics" : { + "batteryHealthNormalizedPercent" : 0.92, "batteryLevel" : "medium", "batteryLevelNormalizedPercent" : 0.3 }, @@ -1113,13 +1134,16 @@ class TestEndpointAgentsApi(unittest.TestCase): "networkSubtype" : "LTE/HSPA", "sinr" : 20 }, + "nicModel" : "Intel(R) Wi-Fi 6 AX200 160MHz", "createdAt" : "2022-05-26T23:37:16Z", "numberOfClients" : 3, "licenseType" : "essentials", "osVersion" : "Version 10.15.2 (Build 19C57)", "computerName" : "DESKJET-123", + "freeDiskSpaceNormalized" : 0.41, "model" : "MacBookAir7,2", "id" : "861b7557-cd57-4bbb-b648-00bddf88ef49", + "nicDriverVersion" : "22.250.0.9", "serialNumber" : "xaab2ba4-d40f-4e80-9363-7e4826556055", "externalMetadata" : [ { "key" : "anyConnectDeviceId", @@ -1268,6 +1292,7 @@ class TestEndpointAgentsApi(unittest.TestCase): } }, "batteryMetrics" : { + "batteryHealthNormalizedPercent" : 0.92, "batteryLevel" : "medium", "batteryLevelNormalizedPercent" : 0.3 }, @@ -1288,13 +1313,16 @@ class TestEndpointAgentsApi(unittest.TestCase): "networkSubtype" : "LTE/HSPA", "sinr" : 20 }, + "nicModel" : "Intel(R) Wi-Fi 6 AX200 160MHz", "createdAt" : "2022-05-26T23:37:16Z", "numberOfClients" : 3, "licenseType" : "essentials", "osVersion" : "Version 10.15.2 (Build 19C57)", "computerName" : "DESKJET-123", + "freeDiskSpaceNormalized" : 0.41, "model" : "MacBookAir7,2", "id" : "861b7557-cd57-4bbb-b648-00bddf88ef49", + "nicDriverVersion" : "22.250.0.9", "serialNumber" : "xaab2ba4-d40f-4e80-9363-7e4826556055", "externalMetadata" : [ { "key" : "anyConnectDeviceId", @@ -1488,6 +1516,7 @@ class TestEndpointAgentsApi(unittest.TestCase): } }, "batteryMetrics" : { + "batteryHealthNormalizedPercent" : 0.92, "batteryLevel" : "medium", "batteryLevelNormalizedPercent" : 0.3 }, @@ -1508,13 +1537,16 @@ class TestEndpointAgentsApi(unittest.TestCase): "networkSubtype" : "LTE/HSPA", "sinr" : 20 }, + "nicModel" : "Intel(R) Wi-Fi 6 AX200 160MHz", "createdAt" : "2022-05-26T23:37:16Z", "numberOfClients" : 3, "licenseType" : "essentials", "osVersion" : "Version 10.15.2 (Build 19C57)", "computerName" : "DESKJET-123", + "freeDiskSpaceNormalized" : 0.41, "model" : "MacBookAir7,2", "id" : "861b7557-cd57-4bbb-b648-00bddf88ef49", + "nicDriverVersion" : "22.250.0.9", "serialNumber" : "xaab2ba4-d40f-4e80-9363-7e4826556055", "externalMetadata" : [ { "key" : "anyConnectDeviceId", diff --git a/thousandeyes-sdk-endpoint-instant-tests/.openapi-generator/FILES b/thousandeyes-sdk-endpoint-instant-tests/.openapi-generator/FILES index 26a2ace8..16b3c390 100644 --- a/thousandeyes-sdk-endpoint-instant-tests/.openapi-generator/FILES +++ b/thousandeyes-sdk-endpoint-instant-tests/.openapi-generator/FILES @@ -4,6 +4,7 @@ README.md docs/AgentToServerEndpointInstantScheduledTestsApi.md docs/EndpointAgentLabelsSelectorConfig.md docs/EndpointAgentSelectorConfig.md +docs/EndpointAgentTagsSelectorConfig.md docs/EndpointAgentToServerInstantTest.md docs/EndpointAgentToServerTest.md docs/EndpointAllAgentsSelectorConfig.md @@ -43,6 +44,7 @@ src/thousandeyes_sdk/endpoint_instant_tests/api/run_endpoint_instant_scheduled_t src/thousandeyes_sdk/endpoint_instant_tests/models/__init__.py src/thousandeyes_sdk/endpoint_instant_tests/models/endpoint_agent_labels_selector_config.py src/thousandeyes_sdk/endpoint_instant_tests/models/endpoint_agent_selector_config.py +src/thousandeyes_sdk/endpoint_instant_tests/models/endpoint_agent_tags_selector_config.py src/thousandeyes_sdk/endpoint_instant_tests/models/endpoint_agent_to_server_instant_test.py src/thousandeyes_sdk/endpoint_instant_tests/models/endpoint_agent_to_server_test.py src/thousandeyes_sdk/endpoint_instant_tests/models/endpoint_all_agents_selector_config.py diff --git a/thousandeyes-sdk-endpoint-instant-tests/README.md b/thousandeyes-sdk-endpoint-instant-tests/README.md index b45ebffc..f876c623 100644 --- a/thousandeyes-sdk-endpoint-instant-tests/README.md +++ b/thousandeyes-sdk-endpoint-instant-tests/README.md @@ -1,5 +1,4 @@ # thousandeyes-sdk-endpoint-instant-tests - You can create and execute a new endpoint instant scheduled test within ThousandEyes using this API. The test parameters are specified in the `POST` data. The following applies to the Endpoint Instant Scheduled Tests API: @@ -13,7 +12,7 @@ The URLs for these API test data endpoints are provided within the test definiti This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project: -- API version: 7.0.84 +- API version: 7.0.92 - Generator version: 7.6.0 - Build package: com.thousandeyes.api.codegen.ThousandeyesPythonGenerator @@ -114,6 +113,7 @@ Class | Method | HTTP request | Description - [EndpointAgentLabelsSelectorConfig](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-endpoint-instant-tests/docs/EndpointAgentLabelsSelectorConfig.md) - [EndpointAgentSelectorConfig](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-endpoint-instant-tests/docs/EndpointAgentSelectorConfig.md) + - [EndpointAgentTagsSelectorConfig](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-endpoint-instant-tests/docs/EndpointAgentTagsSelectorConfig.md) - [EndpointAgentToServerInstantTest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-endpoint-instant-tests/docs/EndpointAgentToServerInstantTest.md) - [EndpointAgentToServerTest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-endpoint-instant-tests/docs/EndpointAgentToServerTest.md) - [EndpointAllAgentsSelectorConfig](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-endpoint-instant-tests/docs/EndpointAllAgentsSelectorConfig.md) diff --git a/thousandeyes-sdk-endpoint-instant-tests/docs/EndpointAgentLabelsSelectorConfig.md b/thousandeyes-sdk-endpoint-instant-tests/docs/EndpointAgentLabelsSelectorConfig.md index 3c6a44ae..3fd996ad 100644 --- a/thousandeyes-sdk-endpoint-instant-tests/docs/EndpointAgentLabelsSelectorConfig.md +++ b/thousandeyes-sdk-endpoint-instant-tests/docs/EndpointAgentLabelsSelectorConfig.md @@ -8,7 +8,8 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **agent_selector_type** | **str** | | **max_machines** | **int** | Maximum number of agents which can execute the test. | [optional] [default to 25] -**endpoint_agent_labels** | **List[str]** | List of endpoint agent label IDs (obtained from `/endpoint/labels` endpoint), required when `agentSelectorType` is set to `agent-labels`. | [optional] +**endpoint_agent_labels** | **List[str]** | Deprecated. Use `tagIds` instead. List of endpoint agent label IDs (obtained from `/endpoint/labels` endpoint), required when `agentSelectorType` is set to `agent-labels`. | [optional] +**tag_ids** | **List[str]** | List of tag IDs (obtained from `/tags` endpoint). | [optional] ## Example diff --git a/thousandeyes-sdk-endpoint-instant-tests/docs/EndpointAgentSelectorConfig.md b/thousandeyes-sdk-endpoint-instant-tests/docs/EndpointAgentSelectorConfig.md index 35130743..d69698a6 100644 --- a/thousandeyes-sdk-endpoint-instant-tests/docs/EndpointAgentSelectorConfig.md +++ b/thousandeyes-sdk-endpoint-instant-tests/docs/EndpointAgentSelectorConfig.md @@ -8,8 +8,9 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **agent_selector_type** | **str** | | **max_machines** | **int** | Maximum number of agents which can execute the test. | [optional] [default to 25] -**endpoint_agent_labels** | **List[str]** | List of endpoint agent label IDs (obtained from `/endpoint/labels` endpoint), required when `agentSelectorType` is set to `agent-labels`. | [optional] **agents** | **List[str]** | List of endpoint agent IDs (obtained from `/endpoint/agents` endpoint). Required when `agentSelectorType` is set to `specific-agent`. | [optional] +**endpoint_agent_labels** | **List[str]** | Deprecated. Use `tagIds` instead. List of endpoint agent label IDs (obtained from `/endpoint/labels` endpoint), required when `agentSelectorType` is set to `agent-labels`. | [optional] +**tag_ids** | **List[str]** | List of tag IDs (obtained from `/tags` endpoint). | [optional] ## Example diff --git a/thousandeyes-sdk-endpoint-instant-tests/docs/EndpointAgentTagsSelectorConfig.md b/thousandeyes-sdk-endpoint-instant-tests/docs/EndpointAgentTagsSelectorConfig.md new file mode 100644 index 00000000..8de7413b --- /dev/null +++ b/thousandeyes-sdk-endpoint-instant-tests/docs/EndpointAgentTagsSelectorConfig.md @@ -0,0 +1,33 @@ +# EndpointAgentTagsSelectorConfig + +Agent tags selection object. + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**agent_selector_type** | **str** | | +**max_machines** | **int** | Maximum number of agents which can execute the test. | [optional] [default to 25] +**endpoint_agent_labels** | **List[str]** | Deprecated. Use `tagIds` instead. List of endpoint agent label IDs (obtained from `/endpoint/labels` endpoint), required when `agentSelectorType` is set to `agent-labels`. | [optional] +**tag_ids** | **List[str]** | List of tag IDs (obtained from `/tags` endpoint). | [optional] + +## Example + +```python +from thousandeyes_sdk.endpoint_instant_tests.models.endpoint_agent_tags_selector_config import EndpointAgentTagsSelectorConfig + +# TODO update the JSON string below +json = "{}" +# create an instance of EndpointAgentTagsSelectorConfig from a JSON string +endpoint_agent_tags_selector_config_instance = EndpointAgentTagsSelectorConfig.from_json(json) +# print the JSON string representation of the object +print(EndpointAgentTagsSelectorConfig.to_json()) + +# convert the object into a dict +endpoint_agent_tags_selector_config_dict = endpoint_agent_tags_selector_config_instance.to_dict() +# create an instance of EndpointAgentTagsSelectorConfig from a dict +endpoint_agent_tags_selector_config_from_dict = EndpointAgentTagsSelectorConfig.from_dict(endpoint_agent_tags_selector_config_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/thousandeyes-sdk-endpoint-instant-tests/docs/EndpointAgentToServerInstantTest.md b/thousandeyes-sdk-endpoint-instant-tests/docs/EndpointAgentToServerInstantTest.md index e85c6b41..a95f7a37 100644 --- a/thousandeyes-sdk-endpoint-instant-tests/docs/EndpointAgentToServerInstantTest.md +++ b/thousandeyes-sdk-endpoint-instant-tests/docs/EndpointAgentToServerInstantTest.md @@ -7,7 +7,8 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **agent_selector_type** | [**EndpointTestAgentSelectorType**](EndpointTestAgentSelectorType.md) | | [optional] **agents** | **List[str]** | List of endpoint agent IDs (obtained from `/endpoint/agents` endpoint). Required when `agentSelectorType` is set to `specific-agent`. | [optional] -**endpoint_agent_labels** | **List[str]** | List of endpoint agent label IDs (obtained from `/endpoint/labels` endpoint), required when `agentSelectorType` is set to `agent-labels`. | [optional] +**endpoint_agent_labels** | **List[str]** | Deprecated. Use `tagIds` instead. List of endpoint agent label IDs (obtained from `/endpoint/labels` endpoint), required when `agentSelectorType` is set to `agent-labels`. | [optional] +**tag_ids** | **List[str]** | List of tag IDs (obtained from `/tags` endpoint). | [optional] **max_machines** | **int** | Maximum number of agents which can execute the test. | [optional] [default to 25] **test_name** | **str** | Name of the test. | **ip_version** | [**EndpointIpVersionIn**](EndpointIpVersionIn.md) | | [optional] diff --git a/thousandeyes-sdk-endpoint-instant-tests/docs/EndpointHttpServerInstantTest.md b/thousandeyes-sdk-endpoint-instant-tests/docs/EndpointHttpServerInstantTest.md index 293827a5..7633a05b 100644 --- a/thousandeyes-sdk-endpoint-instant-tests/docs/EndpointHttpServerInstantTest.md +++ b/thousandeyes-sdk-endpoint-instant-tests/docs/EndpointHttpServerInstantTest.md @@ -7,7 +7,8 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **agent_selector_type** | [**EndpointTestAgentSelectorType**](EndpointTestAgentSelectorType.md) | | [optional] **agents** | **List[str]** | List of endpoint agent IDs (obtained from `/endpoint/agents` endpoint). Required when `agentSelectorType` is set to `specific-agent`. | [optional] -**endpoint_agent_labels** | **List[str]** | List of endpoint agent label IDs (obtained from `/endpoint/labels` endpoint), required when `agentSelectorType` is set to `agent-labels`. | [optional] +**endpoint_agent_labels** | **List[str]** | Deprecated. Use `tagIds` instead. List of endpoint agent label IDs (obtained from `/endpoint/labels` endpoint), required when `agentSelectorType` is set to `agent-labels`. | [optional] +**tag_ids** | **List[str]** | List of tag IDs (obtained from `/tags` endpoint). | [optional] **max_machines** | **int** | Maximum number of agents which can execute the test. | [optional] [default to 25] **test_name** | **str** | Name of the test. | **ip_version** | [**EndpointIpVersionIn**](EndpointIpVersionIn.md) | | [optional] diff --git a/thousandeyes-sdk-endpoint-instant-tests/docs/EndpointInstantTest.md b/thousandeyes-sdk-endpoint-instant-tests/docs/EndpointInstantTest.md index 381a5758..1edf5302 100644 --- a/thousandeyes-sdk-endpoint-instant-tests/docs/EndpointInstantTest.md +++ b/thousandeyes-sdk-endpoint-instant-tests/docs/EndpointInstantTest.md @@ -7,7 +7,8 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **agent_selector_type** | [**EndpointTestAgentSelectorType**](EndpointTestAgentSelectorType.md) | | [optional] **agents** | **List[str]** | List of endpoint agent IDs (obtained from `/endpoint/agents` endpoint). Required when `agentSelectorType` is set to `specific-agent`. | [optional] -**endpoint_agent_labels** | **List[str]** | List of endpoint agent label IDs (obtained from `/endpoint/labels` endpoint), required when `agentSelectorType` is set to `agent-labels`. | [optional] +**endpoint_agent_labels** | **List[str]** | Deprecated. Use `tagIds` instead. List of endpoint agent label IDs (obtained from `/endpoint/labels` endpoint), required when `agentSelectorType` is set to `agent-labels`. | [optional] +**tag_ids** | **List[str]** | List of tag IDs (obtained from `/tags` endpoint). | [optional] **max_machines** | **int** | Maximum number of agents which can execute the test. | [optional] [default to 25] **test_name** | **str** | Name of the test. | **ip_version** | [**EndpointIpVersionIn**](EndpointIpVersionIn.md) | | [optional] diff --git a/thousandeyes-sdk-endpoint-instant-tests/docs/EndpointTestAgentSelectorType.md b/thousandeyes-sdk-endpoint-instant-tests/docs/EndpointTestAgentSelectorType.md index e088812e..b296e305 100644 --- a/thousandeyes-sdk-endpoint-instant-tests/docs/EndpointTestAgentSelectorType.md +++ b/thousandeyes-sdk-endpoint-instant-tests/docs/EndpointTestAgentSelectorType.md @@ -1,6 +1,6 @@ # EndpointTestAgentSelectorType -Retrieve either all available agents, a specific list of agents, or a list of agent labels. +Specifies how agents are selected for the endpoint test. Agents can be selected from: - all available agents - a specific list of agents - agents matching tags - agents matching labels (deprecated) ## Properties diff --git a/thousandeyes-sdk-endpoint-instant-tests/src/thousandeyes_sdk/endpoint_instant_tests/__init__.py b/thousandeyes-sdk-endpoint-instant-tests/src/thousandeyes_sdk/endpoint_instant_tests/__init__.py index 89dd9cd4..e00f11e4 100644 --- a/thousandeyes-sdk-endpoint-instant-tests/src/thousandeyes_sdk/endpoint_instant_tests/__init__.py +++ b/thousandeyes-sdk-endpoint-instant-tests/src/thousandeyes_sdk/endpoint_instant_tests/__init__.py @@ -5,7 +5,7 @@ """ Endpoint Instant Scheduled Tests API - You can create and execute a new endpoint instant scheduled test within ThousandEyes using this API. The test parameters are specified in the `POST` data. The following applies to the Endpoint Instant Scheduled Tests API: * To initiate the creation and execution of an instant scheduled test, the user must possess the `Edit endpoint tests` permission. * Upon successful creation of an instant scheduled test, the API responds with an HTTP/201 CREATED status code and return the test definition. * It's important to note that the response does not include the results of the instant scheduled test. To retrieve test results, users can utilize the Endpoint Test Data endpoints. The URLs for these API test data endpoints are provided within the test definition output when an instant scheduled test is created. + You can create and execute a new endpoint instant scheduled test within ThousandEyes using this API. The test parameters are specified in the `POST` data. The following applies to the Endpoint Instant Scheduled Tests API: * To initiate the creation and execution of an instant scheduled test, the user must possess the `Edit endpoint tests` permission. * Upon successful creation of an instant scheduled test, the API responds with an HTTP/201 CREATED status code and return the test definition. * It's important to note that the response does not include the results of the instant scheduled test. To retrieve test results, users can utilize the Endpoint Test Data endpoints. The URLs for these API test data endpoints are provided within the test definition output when an instant scheduled test is created. Generated by OpenAPI Generator (https://openapi-generator.tech) @@ -22,6 +22,7 @@ from thousandeyes_sdk.endpoint_instant_tests.api.run_endpoint_instant_scheduled_ # import models into sdk package from thousandeyes_sdk.endpoint_instant_tests.models.endpoint_agent_labels_selector_config import EndpointAgentLabelsSelectorConfig from thousandeyes_sdk.endpoint_instant_tests.models.endpoint_agent_selector_config import EndpointAgentSelectorConfig +from thousandeyes_sdk.endpoint_instant_tests.models.endpoint_agent_tags_selector_config import EndpointAgentTagsSelectorConfig from thousandeyes_sdk.endpoint_instant_tests.models.endpoint_agent_to_server_instant_test import EndpointAgentToServerInstantTest from thousandeyes_sdk.endpoint_instant_tests.models.endpoint_agent_to_server_test import EndpointAgentToServerTest from thousandeyes_sdk.endpoint_instant_tests.models.endpoint_all_agents_selector_config import EndpointAllAgentsSelectorConfig diff --git a/thousandeyes-sdk-endpoint-instant-tests/src/thousandeyes_sdk/endpoint_instant_tests/api/agent_to_server_endpoint_instant_scheduled_tests_api.py b/thousandeyes-sdk-endpoint-instant-tests/src/thousandeyes_sdk/endpoint_instant_tests/api/agent_to_server_endpoint_instant_scheduled_tests_api.py index 0f61a3de..1f3bd323 100644 --- a/thousandeyes-sdk-endpoint-instant-tests/src/thousandeyes_sdk/endpoint_instant_tests/api/agent_to_server_endpoint_instant_scheduled_tests_api.py +++ b/thousandeyes-sdk-endpoint-instant-tests/src/thousandeyes_sdk/endpoint_instant_tests/api/agent_to_server_endpoint_instant_scheduled_tests_api.py @@ -3,7 +3,7 @@ """ Endpoint Instant Scheduled Tests API - You can create and execute a new endpoint instant scheduled test within ThousandEyes using this API. The test parameters are specified in the `POST` data. The following applies to the Endpoint Instant Scheduled Tests API: * To initiate the creation and execution of an instant scheduled test, the user must possess the `Edit endpoint tests` permission. * Upon successful creation of an instant scheduled test, the API responds with an HTTP/201 CREATED status code and return the test definition. * It's important to note that the response does not include the results of the instant scheduled test. To retrieve test results, users can utilize the Endpoint Test Data endpoints. The URLs for these API test data endpoints are provided within the test definition output when an instant scheduled test is created. + You can create and execute a new endpoint instant scheduled test within ThousandEyes using this API. The test parameters are specified in the `POST` data. The following applies to the Endpoint Instant Scheduled Tests API: * To initiate the creation and execution of an instant scheduled test, the user must possess the `Edit endpoint tests` permission. * Upon successful creation of an instant scheduled test, the API responds with an HTTP/201 CREATED status code and return the test definition. * It's important to note that the response does not include the results of the instant scheduled test. To retrieve test results, users can utilize the Endpoint Test Data endpoints. The URLs for these API test data endpoints are provided within the test definition output when an instant scheduled test is created. Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/thousandeyes-sdk-endpoint-instant-tests/src/thousandeyes_sdk/endpoint_instant_tests/api/http_server_endpoint_instant_scheduled_tests_api.py b/thousandeyes-sdk-endpoint-instant-tests/src/thousandeyes_sdk/endpoint_instant_tests/api/http_server_endpoint_instant_scheduled_tests_api.py index 6f124ff3..f9548a61 100644 --- a/thousandeyes-sdk-endpoint-instant-tests/src/thousandeyes_sdk/endpoint_instant_tests/api/http_server_endpoint_instant_scheduled_tests_api.py +++ b/thousandeyes-sdk-endpoint-instant-tests/src/thousandeyes_sdk/endpoint_instant_tests/api/http_server_endpoint_instant_scheduled_tests_api.py @@ -3,7 +3,7 @@ """ Endpoint Instant Scheduled Tests API - You can create and execute a new endpoint instant scheduled test within ThousandEyes using this API. The test parameters are specified in the `POST` data. The following applies to the Endpoint Instant Scheduled Tests API: * To initiate the creation and execution of an instant scheduled test, the user must possess the `Edit endpoint tests` permission. * Upon successful creation of an instant scheduled test, the API responds with an HTTP/201 CREATED status code and return the test definition. * It's important to note that the response does not include the results of the instant scheduled test. To retrieve test results, users can utilize the Endpoint Test Data endpoints. The URLs for these API test data endpoints are provided within the test definition output when an instant scheduled test is created. + You can create and execute a new endpoint instant scheduled test within ThousandEyes using this API. The test parameters are specified in the `POST` data. The following applies to the Endpoint Instant Scheduled Tests API: * To initiate the creation and execution of an instant scheduled test, the user must possess the `Edit endpoint tests` permission. * Upon successful creation of an instant scheduled test, the API responds with an HTTP/201 CREATED status code and return the test definition. * It's important to note that the response does not include the results of the instant scheduled test. To retrieve test results, users can utilize the Endpoint Test Data endpoints. The URLs for these API test data endpoints are provided within the test definition output when an instant scheduled test is created. Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/thousandeyes-sdk-endpoint-instant-tests/src/thousandeyes_sdk/endpoint_instant_tests/api/run_endpoint_instant_scheduled_tests_api.py b/thousandeyes-sdk-endpoint-instant-tests/src/thousandeyes_sdk/endpoint_instant_tests/api/run_endpoint_instant_scheduled_tests_api.py index 3049ea0c..a8f5c760 100644 --- a/thousandeyes-sdk-endpoint-instant-tests/src/thousandeyes_sdk/endpoint_instant_tests/api/run_endpoint_instant_scheduled_tests_api.py +++ b/thousandeyes-sdk-endpoint-instant-tests/src/thousandeyes_sdk/endpoint_instant_tests/api/run_endpoint_instant_scheduled_tests_api.py @@ -3,7 +3,7 @@ """ Endpoint Instant Scheduled Tests API - You can create and execute a new endpoint instant scheduled test within ThousandEyes using this API. The test parameters are specified in the `POST` data. The following applies to the Endpoint Instant Scheduled Tests API: * To initiate the creation and execution of an instant scheduled test, the user must possess the `Edit endpoint tests` permission. * Upon successful creation of an instant scheduled test, the API responds with an HTTP/201 CREATED status code and return the test definition. * It's important to note that the response does not include the results of the instant scheduled test. To retrieve test results, users can utilize the Endpoint Test Data endpoints. The URLs for these API test data endpoints are provided within the test definition output when an instant scheduled test is created. + You can create and execute a new endpoint instant scheduled test within ThousandEyes using this API. The test parameters are specified in the `POST` data. The following applies to the Endpoint Instant Scheduled Tests API: * To initiate the creation and execution of an instant scheduled test, the user must possess the `Edit endpoint tests` permission. * Upon successful creation of an instant scheduled test, the API responds with an HTTP/201 CREATED status code and return the test definition. * It's important to note that the response does not include the results of the instant scheduled test. To retrieve test results, users can utilize the Endpoint Test Data endpoints. The URLs for these API test data endpoints are provided within the test definition output when an instant scheduled test is created. Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/thousandeyes-sdk-endpoint-instant-tests/src/thousandeyes_sdk/endpoint_instant_tests/models/__init__.py b/thousandeyes-sdk-endpoint-instant-tests/src/thousandeyes_sdk/endpoint_instant_tests/models/__init__.py index ec5213a0..b8c44ef0 100644 --- a/thousandeyes-sdk-endpoint-instant-tests/src/thousandeyes_sdk/endpoint_instant_tests/models/__init__.py +++ b/thousandeyes-sdk-endpoint-instant-tests/src/thousandeyes_sdk/endpoint_instant_tests/models/__init__.py @@ -4,7 +4,7 @@ """ Endpoint Instant Scheduled Tests API - You can create and execute a new endpoint instant scheduled test within ThousandEyes using this API. The test parameters are specified in the `POST` data. The following applies to the Endpoint Instant Scheduled Tests API: * To initiate the creation and execution of an instant scheduled test, the user must possess the `Edit endpoint tests` permission. * Upon successful creation of an instant scheduled test, the API responds with an HTTP/201 CREATED status code and return the test definition. * It's important to note that the response does not include the results of the instant scheduled test. To retrieve test results, users can utilize the Endpoint Test Data endpoints. The URLs for these API test data endpoints are provided within the test definition output when an instant scheduled test is created. + You can create and execute a new endpoint instant scheduled test within ThousandEyes using this API. The test parameters are specified in the `POST` data. The following applies to the Endpoint Instant Scheduled Tests API: * To initiate the creation and execution of an instant scheduled test, the user must possess the `Edit endpoint tests` permission. * Upon successful creation of an instant scheduled test, the API responds with an HTTP/201 CREATED status code and return the test definition. * It's important to note that the response does not include the results of the instant scheduled test. To retrieve test results, users can utilize the Endpoint Test Data endpoints. The URLs for these API test data endpoints are provided within the test definition output when an instant scheduled test is created. Generated by OpenAPI Generator (https://openapi-generator.tech) @@ -15,6 +15,7 @@ # import models into model package from thousandeyes_sdk.endpoint_instant_tests.models.endpoint_agent_labels_selector_config import EndpointAgentLabelsSelectorConfig from thousandeyes_sdk.endpoint_instant_tests.models.endpoint_agent_selector_config import EndpointAgentSelectorConfig +from thousandeyes_sdk.endpoint_instant_tests.models.endpoint_agent_tags_selector_config import EndpointAgentTagsSelectorConfig from thousandeyes_sdk.endpoint_instant_tests.models.endpoint_agent_to_server_instant_test import EndpointAgentToServerInstantTest from thousandeyes_sdk.endpoint_instant_tests.models.endpoint_agent_to_server_test import EndpointAgentToServerTest from thousandeyes_sdk.endpoint_instant_tests.models.endpoint_all_agents_selector_config import EndpointAllAgentsSelectorConfig diff --git a/thousandeyes-sdk-endpoint-instant-tests/src/thousandeyes_sdk/endpoint_instant_tests/models/endpoint_agent_labels_selector_config.py b/thousandeyes-sdk-endpoint-instant-tests/src/thousandeyes_sdk/endpoint_instant_tests/models/endpoint_agent_labels_selector_config.py index e5608463..c58804b0 100644 --- a/thousandeyes-sdk-endpoint-instant-tests/src/thousandeyes_sdk/endpoint_instant_tests/models/endpoint_agent_labels_selector_config.py +++ b/thousandeyes-sdk-endpoint-instant-tests/src/thousandeyes_sdk/endpoint_instant_tests/models/endpoint_agent_labels_selector_config.py @@ -3,7 +3,7 @@ """ Endpoint Instant Scheduled Tests API - You can create and execute a new endpoint instant scheduled test within ThousandEyes using this API. The test parameters are specified in the `POST` data. The following applies to the Endpoint Instant Scheduled Tests API: * To initiate the creation and execution of an instant scheduled test, the user must possess the `Edit endpoint tests` permission. * Upon successful creation of an instant scheduled test, the API responds with an HTTP/201 CREATED status code and return the test definition. * It's important to note that the response does not include the results of the instant scheduled test. To retrieve test results, users can utilize the Endpoint Test Data endpoints. The URLs for these API test data endpoints are provided within the test definition output when an instant scheduled test is created. + You can create and execute a new endpoint instant scheduled test within ThousandEyes using this API. The test parameters are specified in the `POST` data. The following applies to the Endpoint Instant Scheduled Tests API: * To initiate the creation and execution of an instant scheduled test, the user must possess the `Edit endpoint tests` permission. * Upon successful creation of an instant scheduled test, the API responds with an HTTP/201 CREATED status code and return the test definition. * It's important to note that the response does not include the results of the instant scheduled test. To retrieve test results, users can utilize the Endpoint Test Data endpoints. The URLs for these API test data endpoints are provided within the test definition output when an instant scheduled test is created. Generated by OpenAPI Generator (https://openapi-generator.tech) @@ -28,8 +28,9 @@ class EndpointAgentLabelsSelectorConfig(BaseModel): """ # noqa: E501 agent_selector_type: Annotated[str, Field(strict=True)] = Field(alias="agentSelectorType") max_machines: Optional[StrictInt] = Field(default=25, description="Maximum number of agents which can execute the test.", alias="maxMachines") - endpoint_agent_labels: Optional[List[StrictStr]] = Field(default=None, description="List of endpoint agent label IDs (obtained from `/endpoint/labels` endpoint), required when `agentSelectorType` is set to `agent-labels`.", alias="endpointAgentLabels") - __properties: ClassVar[List[str]] = ["agentSelectorType", "maxMachines", "endpointAgentLabels"] + endpoint_agent_labels: Optional[List[StrictStr]] = Field(default=None, description="Deprecated. Use `tagIds` instead. List of endpoint agent label IDs (obtained from `/endpoint/labels` endpoint), required when `agentSelectorType` is set to `agent-labels`. ", alias="endpointAgentLabels") + tag_ids: Optional[List[StrictStr]] = Field(default=None, description="List of tag IDs (obtained from `/tags` endpoint).", alias="tagIds") + __properties: ClassVar[List[str]] = ["agentSelectorType", "maxMachines", "endpointAgentLabels", "tagIds"] @field_validator('agent_selector_type') def agent_selector_type_validate_regular_expression(cls, value): @@ -92,7 +93,8 @@ class EndpointAgentLabelsSelectorConfig(BaseModel): _obj = cls.model_validate({ "agentSelectorType": obj.get("agentSelectorType"), "maxMachines": obj.get("maxMachines") if obj.get("maxMachines") is not None else 25, - "endpointAgentLabels": obj.get("endpointAgentLabels") + "endpointAgentLabels": obj.get("endpointAgentLabels"), + "tagIds": obj.get("tagIds") }) return _obj diff --git a/thousandeyes-sdk-endpoint-instant-tests/src/thousandeyes_sdk/endpoint_instant_tests/models/endpoint_agent_selector_config.py b/thousandeyes-sdk-endpoint-instant-tests/src/thousandeyes_sdk/endpoint_instant_tests/models/endpoint_agent_selector_config.py index 441c73ec..d078ca93 100644 --- a/thousandeyes-sdk-endpoint-instant-tests/src/thousandeyes_sdk/endpoint_instant_tests/models/endpoint_agent_selector_config.py +++ b/thousandeyes-sdk-endpoint-instant-tests/src/thousandeyes_sdk/endpoint_instant_tests/models/endpoint_agent_selector_config.py @@ -3,7 +3,7 @@ """ Endpoint Instant Scheduled Tests API - You can create and execute a new endpoint instant scheduled test within ThousandEyes using this API. The test parameters are specified in the `POST` data. The following applies to the Endpoint Instant Scheduled Tests API: * To initiate the creation and execution of an instant scheduled test, the user must possess the `Edit endpoint tests` permission. * Upon successful creation of an instant scheduled test, the API responds with an HTTP/201 CREATED status code and return the test definition. * It's important to note that the response does not include the results of the instant scheduled test. To retrieve test results, users can utilize the Endpoint Test Data endpoints. The URLs for these API test data endpoints are provided within the test definition output when an instant scheduled test is created. + You can create and execute a new endpoint instant scheduled test within ThousandEyes using this API. The test parameters are specified in the `POST` data. The following applies to the Endpoint Instant Scheduled Tests API: * To initiate the creation and execution of an instant scheduled test, the user must possess the `Edit endpoint tests` permission. * Upon successful creation of an instant scheduled test, the API responds with an HTTP/201 CREATED status code and return the test definition. * It's important to note that the response does not include the results of the instant scheduled test. To retrieve test results, users can utilize the Endpoint Test Data endpoints. The URLs for these API test data endpoints are provided within the test definition output when an instant scheduled test is created. Generated by OpenAPI Generator (https://openapi-generator.tech) @@ -17,13 +17,14 @@ import pprint from pydantic import BaseModel, ConfigDict, Field, StrictStr, ValidationError, field_validator from typing import Any, List, Optional from thousandeyes_sdk.endpoint_instant_tests.models.endpoint_agent_labels_selector_config import EndpointAgentLabelsSelectorConfig +from thousandeyes_sdk.endpoint_instant_tests.models.endpoint_agent_tags_selector_config import EndpointAgentTagsSelectorConfig from thousandeyes_sdk.endpoint_instant_tests.models.endpoint_all_agents_selector_config import EndpointAllAgentsSelectorConfig from thousandeyes_sdk.endpoint_instant_tests.models.endpoint_specific_agents_selector_config import EndpointSpecificAgentsSelectorConfig from pydantic import StrictStr, Field, model_serializer from typing import Union, List, Set, Optional, Dict from typing_extensions import Literal, Self -ENDPOINTAGENTSELECTORCONFIG_ONE_OF_SCHEMAS = ["EndpointAgentLabelsSelectorConfig", "EndpointAllAgentsSelectorConfig", "EndpointSpecificAgentsSelectorConfig"] +ENDPOINTAGENTSELECTORCONFIG_ONE_OF_SCHEMAS = ["EndpointAgentLabelsSelectorConfig", "EndpointAgentTagsSelectorConfig", "EndpointAllAgentsSelectorConfig", "EndpointSpecificAgentsSelectorConfig"] class EndpointAgentSelectorConfig(BaseModel): """ @@ -31,12 +32,14 @@ class EndpointAgentSelectorConfig(BaseModel): """ # data type: EndpointAllAgentsSelectorConfig oneof_schema_1_validator: Optional[EndpointAllAgentsSelectorConfig] = None - # data type: EndpointAgentLabelsSelectorConfig - oneof_schema_2_validator: Optional[EndpointAgentLabelsSelectorConfig] = None # data type: EndpointSpecificAgentsSelectorConfig - oneof_schema_3_validator: Optional[EndpointSpecificAgentsSelectorConfig] = None - actual_instance: Optional[Union[EndpointAgentLabelsSelectorConfig, EndpointAllAgentsSelectorConfig, EndpointSpecificAgentsSelectorConfig]] = None - one_of_schemas: Set[str] = { "EndpointAgentLabelsSelectorConfig", "EndpointAllAgentsSelectorConfig", "EndpointSpecificAgentsSelectorConfig" } + oneof_schema_2_validator: Optional[EndpointSpecificAgentsSelectorConfig] = None + # data type: EndpointAgentLabelsSelectorConfig + oneof_schema_3_validator: Optional[EndpointAgentLabelsSelectorConfig] = None + # data type: EndpointAgentTagsSelectorConfig + oneof_schema_4_validator: Optional[EndpointAgentTagsSelectorConfig] = None + actual_instance: Optional[Union[EndpointAgentLabelsSelectorConfig, EndpointAgentTagsSelectorConfig, EndpointAllAgentsSelectorConfig, EndpointSpecificAgentsSelectorConfig]] = None + one_of_schemas: Set[str] = { "EndpointAgentLabelsSelectorConfig", "EndpointAgentTagsSelectorConfig", "EndpointAllAgentsSelectorConfig", "EndpointSpecificAgentsSelectorConfig" } model_config = ConfigDict( validate_assignment=True, @@ -67,22 +70,27 @@ class EndpointAgentSelectorConfig(BaseModel): error_messages.append(f"Error! Input type `{type(v)}` is not `EndpointAllAgentsSelectorConfig`") else: match += 1 - # validate data type: EndpointAgentLabelsSelectorConfig - if not isinstance(v, EndpointAgentLabelsSelectorConfig): - error_messages.append(f"Error! Input type `{type(v)}` is not `EndpointAgentLabelsSelectorConfig`") - else: - match += 1 # validate data type: EndpointSpecificAgentsSelectorConfig if not isinstance(v, EndpointSpecificAgentsSelectorConfig): error_messages.append(f"Error! Input type `{type(v)}` is not `EndpointSpecificAgentsSelectorConfig`") else: match += 1 + # validate data type: EndpointAgentLabelsSelectorConfig + if not isinstance(v, EndpointAgentLabelsSelectorConfig): + error_messages.append(f"Error! Input type `{type(v)}` is not `EndpointAgentLabelsSelectorConfig`") + else: + match += 1 + # validate data type: EndpointAgentTagsSelectorConfig + if not isinstance(v, EndpointAgentTagsSelectorConfig): + error_messages.append(f"Error! Input type `{type(v)}` is not `EndpointAgentTagsSelectorConfig`") + else: + match += 1 if match > 1: # more than 1 match - raise ValueError("Multiple matches found when setting `actual_instance` in EndpointAgentSelectorConfig with oneOf schemas: EndpointAgentLabelsSelectorConfig, EndpointAllAgentsSelectorConfig, EndpointSpecificAgentsSelectorConfig. Details: " + ", ".join(error_messages)) + raise ValueError("Multiple matches found when setting `actual_instance` in EndpointAgentSelectorConfig with oneOf schemas: EndpointAgentLabelsSelectorConfig, EndpointAgentTagsSelectorConfig, EndpointAllAgentsSelectorConfig, EndpointSpecificAgentsSelectorConfig. Details: " + ", ".join(error_messages)) elif match == 0: # no match - raise ValueError("No match found when setting `actual_instance` in EndpointAgentSelectorConfig with oneOf schemas: EndpointAgentLabelsSelectorConfig, EndpointAllAgentsSelectorConfig, EndpointSpecificAgentsSelectorConfig. Details: " + ", ".join(error_messages)) + raise ValueError("No match found when setting `actual_instance` in EndpointAgentSelectorConfig with oneOf schemas: EndpointAgentLabelsSelectorConfig, EndpointAgentTagsSelectorConfig, EndpointAllAgentsSelectorConfig, EndpointSpecificAgentsSelectorConfig. Details: " + ", ".join(error_messages)) else: return v @@ -103,25 +111,31 @@ class EndpointAgentSelectorConfig(BaseModel): match += 1 except (ValidationError, ValueError) as e: error_messages.append(str(e)) - # deserialize data into EndpointAgentLabelsSelectorConfig - try: - instance.actual_instance = EndpointAgentLabelsSelectorConfig.from_json(json_str) - match += 1 - except (ValidationError, ValueError) as e: - error_messages.append(str(e)) # deserialize data into EndpointSpecificAgentsSelectorConfig try: instance.actual_instance = EndpointSpecificAgentsSelectorConfig.from_json(json_str) match += 1 except (ValidationError, ValueError) as e: error_messages.append(str(e)) + # deserialize data into EndpointAgentLabelsSelectorConfig + try: + instance.actual_instance = EndpointAgentLabelsSelectorConfig.from_json(json_str) + match += 1 + except (ValidationError, ValueError) as e: + error_messages.append(str(e)) + # deserialize data into EndpointAgentTagsSelectorConfig + try: + instance.actual_instance = EndpointAgentTagsSelectorConfig.from_json(json_str) + 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 EndpointAgentSelectorConfig with oneOf schemas: EndpointAgentLabelsSelectorConfig, EndpointAllAgentsSelectorConfig, EndpointSpecificAgentsSelectorConfig. Details: " + ", ".join(error_messages)) + raise ValueError("Multiple matches found when deserializing the JSON string into EndpointAgentSelectorConfig with oneOf schemas: EndpointAgentLabelsSelectorConfig, EndpointAgentTagsSelectorConfig, EndpointAllAgentsSelectorConfig, EndpointSpecificAgentsSelectorConfig. Details: " + ", ".join(error_messages)) elif match == 0: # no match - raise ValueError("No match found when deserializing the JSON string into EndpointAgentSelectorConfig with oneOf schemas: EndpointAgentLabelsSelectorConfig, EndpointAllAgentsSelectorConfig, EndpointSpecificAgentsSelectorConfig. Details: " + ", ".join(error_messages)) + raise ValueError("No match found when deserializing the JSON string into EndpointAgentSelectorConfig with oneOf schemas: EndpointAgentLabelsSelectorConfig, EndpointAgentTagsSelectorConfig, EndpointAllAgentsSelectorConfig, EndpointSpecificAgentsSelectorConfig. Details: " + ", ".join(error_messages)) else: return instance @@ -139,7 +153,7 @@ class EndpointAgentSelectorConfig(BaseModel): else: return json.dumps(self.actual_instance) - def to_dict(self) -> Optional[Union[Dict[str, Any], EndpointAgentLabelsSelectorConfig, EndpointAllAgentsSelectorConfig, EndpointSpecificAgentsSelectorConfig]]: + def to_dict(self) -> Optional[Union[Dict[str, Any], EndpointAgentLabelsSelectorConfig, EndpointAgentTagsSelectorConfig, EndpointAllAgentsSelectorConfig, EndpointSpecificAgentsSelectorConfig]]: """Returns the dict representation of the actual instance""" if self.actual_instance is None: return None diff --git a/thousandeyes-sdk-endpoint-instant-tests/src/thousandeyes_sdk/endpoint_instant_tests/models/endpoint_agent_tags_selector_config.py b/thousandeyes-sdk-endpoint-instant-tests/src/thousandeyes_sdk/endpoint_instant_tests/models/endpoint_agent_tags_selector_config.py new file mode 100644 index 00000000..b8bfa177 --- /dev/null +++ b/thousandeyes-sdk-endpoint-instant-tests/src/thousandeyes_sdk/endpoint_instant_tests/models/endpoint_agent_tags_selector_config.py @@ -0,0 +1,101 @@ +# coding: utf-8 + +""" + Endpoint Instant Scheduled Tests API + + You can create and execute a new endpoint instant scheduled test within ThousandEyes using this API. The test parameters are specified in the `POST` data. The following applies to the Endpoint Instant Scheduled Tests API: * To initiate the creation and execution of an instant scheduled test, the user must possess the `Edit endpoint tests` permission. * Upon successful creation of an instant scheduled test, the API responds with an HTTP/201 CREATED status code and return the test definition. * It's important to note that the response does not include the results of the instant scheduled test. To retrieve test results, users can utilize the Endpoint Test Data endpoints. The URLs for these API test data endpoints are provided within the test definition output when an instant scheduled test is created. + + 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_extensions import Annotated +from typing import Optional, Set +from typing_extensions import Self + +class EndpointAgentTagsSelectorConfig(BaseModel): + """ + Agent tags selection object. + """ # noqa: E501 + agent_selector_type: Annotated[str, Field(strict=True)] = Field(alias="agentSelectorType") + max_machines: Optional[StrictInt] = Field(default=25, description="Maximum number of agents which can execute the test.", alias="maxMachines") + endpoint_agent_labels: Optional[List[StrictStr]] = Field(default=None, description="Deprecated. Use `tagIds` instead. List of endpoint agent label IDs (obtained from `/endpoint/labels` endpoint), required when `agentSelectorType` is set to `agent-labels`. ", alias="endpointAgentLabels") + tag_ids: Optional[List[StrictStr]] = Field(default=None, description="List of tag IDs (obtained from `/tags` endpoint).", alias="tagIds") + __properties: ClassVar[List[str]] = ["agentSelectorType", "maxMachines", "endpointAgentLabels", "tagIds"] + + @field_validator('agent_selector_type') + def agent_selector_type_validate_regular_expression(cls, value): + """Validates the regular expression""" + if not re.match(r"^agent-tags$", value): + raise ValueError(r"must validate the regular expression /^agent-tags$/") + return value + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + extra="allow", + ) + + + 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 self.model_dump_json(by_alias=True, exclude_unset=True, exclude_none=True) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of EndpointAgentTagsSelectorConfig 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 EndpointAgentTagsSelectorConfig from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "agentSelectorType": obj.get("agentSelectorType"), + "maxMachines": obj.get("maxMachines") if obj.get("maxMachines") is not None else 25, + "endpointAgentLabels": obj.get("endpointAgentLabels"), + "tagIds": obj.get("tagIds") + }) + return _obj + + diff --git a/thousandeyes-sdk-endpoint-instant-tests/src/thousandeyes_sdk/endpoint_instant_tests/models/endpoint_agent_to_server_instant_test.py b/thousandeyes-sdk-endpoint-instant-tests/src/thousandeyes_sdk/endpoint_instant_tests/models/endpoint_agent_to_server_instant_test.py index 50317069..5bed916f 100644 --- a/thousandeyes-sdk-endpoint-instant-tests/src/thousandeyes_sdk/endpoint_instant_tests/models/endpoint_agent_to_server_instant_test.py +++ b/thousandeyes-sdk-endpoint-instant-tests/src/thousandeyes_sdk/endpoint_instant_tests/models/endpoint_agent_to_server_instant_test.py @@ -3,7 +3,7 @@ """ Endpoint Instant Scheduled Tests API - You can create and execute a new endpoint instant scheduled test within ThousandEyes using this API. The test parameters are specified in the `POST` data. The following applies to the Endpoint Instant Scheduled Tests API: * To initiate the creation and execution of an instant scheduled test, the user must possess the `Edit endpoint tests` permission. * Upon successful creation of an instant scheduled test, the API responds with an HTTP/201 CREATED status code and return the test definition. * It's important to note that the response does not include the results of the instant scheduled test. To retrieve test results, users can utilize the Endpoint Test Data endpoints. The URLs for these API test data endpoints are provided within the test definition output when an instant scheduled test is created. + You can create and execute a new endpoint instant scheduled test within ThousandEyes using this API. The test parameters are specified in the `POST` data. The following applies to the Endpoint Instant Scheduled Tests API: * To initiate the creation and execution of an instant scheduled test, the user must possess the `Edit endpoint tests` permission. * Upon successful creation of an instant scheduled test, the API responds with an HTTP/201 CREATED status code and return the test definition. * It's important to note that the response does not include the results of the instant scheduled test. To retrieve test results, users can utilize the Endpoint Test Data endpoints. The URLs for these API test data endpoints are provided within the test definition output when an instant scheduled test is created. Generated by OpenAPI Generator (https://openapi-generator.tech) @@ -29,14 +29,15 @@ class EndpointAgentToServerInstantTest(BaseModel): """ # noqa: E501 agent_selector_type: Optional[EndpointTestAgentSelectorType] = Field(default=None, alias="agentSelectorType") agents: Optional[List[StrictStr]] = Field(default=None, description="List of endpoint agent IDs (obtained from `/endpoint/agents` endpoint). Required when `agentSelectorType` is set to `specific-agent`.") - endpoint_agent_labels: Optional[List[StrictStr]] = Field(default=None, description="List of endpoint agent label IDs (obtained from `/endpoint/labels` endpoint), required when `agentSelectorType` is set to `agent-labels`.", alias="endpointAgentLabels") + endpoint_agent_labels: Optional[List[StrictStr]] = Field(default=None, description="Deprecated. Use `tagIds` instead. List of endpoint agent label IDs (obtained from `/endpoint/labels` endpoint), required when `agentSelectorType` is set to `agent-labels`. ", alias="endpointAgentLabels") + tag_ids: Optional[List[StrictStr]] = Field(default=None, description="List of tag IDs (obtained from `/tags` endpoint).", alias="tagIds") max_machines: Optional[StrictInt] = Field(default=25, description="Maximum number of agents which can execute the test.", alias="maxMachines") test_name: StrictStr = Field(description="Name of the test.", alias="testName") ip_version: Optional[EndpointIpVersionIn] = Field(default=None, alias="ipVersion") server_name: Optional[StrictStr] = Field(default=None, description="A server address without a protocol or IP address. **Deprecated, use `server` instead**.", alias="serverName") server: StrictStr = Field(description="Target domain name or IP address.") port: Optional[StrictInt] = Field(default=443, description="Port number.") - __properties: ClassVar[List[str]] = ["agentSelectorType", "agents", "endpointAgentLabels", "maxMachines", "testName", "ipVersion", "serverName", "server", "port"] + __properties: ClassVar[List[str]] = ["agentSelectorType", "agents", "endpointAgentLabels", "tagIds", "maxMachines", "testName", "ipVersion", "serverName", "server", "port"] model_config = ConfigDict( populate_by_name=True, @@ -93,6 +94,7 @@ class EndpointAgentToServerInstantTest(BaseModel): "agentSelectorType": obj.get("agentSelectorType"), "agents": obj.get("agents"), "endpointAgentLabels": obj.get("endpointAgentLabels"), + "tagIds": obj.get("tagIds"), "maxMachines": obj.get("maxMachines") if obj.get("maxMachines") is not None else 25, "testName": obj.get("testName"), "ipVersion": obj.get("ipVersion"), diff --git a/thousandeyes-sdk-endpoint-instant-tests/src/thousandeyes_sdk/endpoint_instant_tests/models/endpoint_agent_to_server_test.py b/thousandeyes-sdk-endpoint-instant-tests/src/thousandeyes_sdk/endpoint_instant_tests/models/endpoint_agent_to_server_test.py index 462c5166..04efb541 100644 --- a/thousandeyes-sdk-endpoint-instant-tests/src/thousandeyes_sdk/endpoint_instant_tests/models/endpoint_agent_to_server_test.py +++ b/thousandeyes-sdk-endpoint-instant-tests/src/thousandeyes_sdk/endpoint_instant_tests/models/endpoint_agent_to_server_test.py @@ -3,7 +3,7 @@ """ Endpoint Instant Scheduled Tests API - You can create and execute a new endpoint instant scheduled test within ThousandEyes using this API. The test parameters are specified in the `POST` data. The following applies to the Endpoint Instant Scheduled Tests API: * To initiate the creation and execution of an instant scheduled test, the user must possess the `Edit endpoint tests` permission. * Upon successful creation of an instant scheduled test, the API responds with an HTTP/201 CREATED status code and return the test definition. * It's important to note that the response does not include the results of the instant scheduled test. To retrieve test results, users can utilize the Endpoint Test Data endpoints. The URLs for these API test data endpoints are provided within the test definition output when an instant scheduled test is created. + You can create and execute a new endpoint instant scheduled test within ThousandEyes using this API. The test parameters are specified in the `POST` data. The following applies to the Endpoint Instant Scheduled Tests API: * To initiate the creation and execution of an instant scheduled test, the user must possess the `Edit endpoint tests` permission. * Upon successful creation of an instant scheduled test, the API responds with an HTTP/201 CREATED status code and return the test definition. * It's important to note that the response does not include the results of the instant scheduled test. To retrieve test results, users can utilize the Endpoint Test Data endpoints. The URLs for these API test data endpoints are provided within the test definition output when an instant scheduled test is created. Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/thousandeyes-sdk-endpoint-instant-tests/src/thousandeyes_sdk/endpoint_instant_tests/models/endpoint_all_agents_selector_config.py b/thousandeyes-sdk-endpoint-instant-tests/src/thousandeyes_sdk/endpoint_instant_tests/models/endpoint_all_agents_selector_config.py index b731e223..4688a0e1 100644 --- a/thousandeyes-sdk-endpoint-instant-tests/src/thousandeyes_sdk/endpoint_instant_tests/models/endpoint_all_agents_selector_config.py +++ b/thousandeyes-sdk-endpoint-instant-tests/src/thousandeyes_sdk/endpoint_instant_tests/models/endpoint_all_agents_selector_config.py @@ -3,7 +3,7 @@ """ Endpoint Instant Scheduled Tests API - You can create and execute a new endpoint instant scheduled test within ThousandEyes using this API. The test parameters are specified in the `POST` data. The following applies to the Endpoint Instant Scheduled Tests API: * To initiate the creation and execution of an instant scheduled test, the user must possess the `Edit endpoint tests` permission. * Upon successful creation of an instant scheduled test, the API responds with an HTTP/201 CREATED status code and return the test definition. * It's important to note that the response does not include the results of the instant scheduled test. To retrieve test results, users can utilize the Endpoint Test Data endpoints. The URLs for these API test data endpoints are provided within the test definition output when an instant scheduled test is created. + You can create and execute a new endpoint instant scheduled test within ThousandEyes using this API. The test parameters are specified in the `POST` data. The following applies to the Endpoint Instant Scheduled Tests API: * To initiate the creation and execution of an instant scheduled test, the user must possess the `Edit endpoint tests` permission. * Upon successful creation of an instant scheduled test, the API responds with an HTTP/201 CREATED status code and return the test definition. * It's important to note that the response does not include the results of the instant scheduled test. To retrieve test results, users can utilize the Endpoint Test Data endpoints. The URLs for these API test data endpoints are provided within the test definition output when an instant scheduled test is created. Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/thousandeyes-sdk-endpoint-instant-tests/src/thousandeyes_sdk/endpoint_instant_tests/models/endpoint_http_server_base_test.py b/thousandeyes-sdk-endpoint-instant-tests/src/thousandeyes_sdk/endpoint_instant_tests/models/endpoint_http_server_base_test.py index 2cac50ba..a981a8f0 100644 --- a/thousandeyes-sdk-endpoint-instant-tests/src/thousandeyes_sdk/endpoint_instant_tests/models/endpoint_http_server_base_test.py +++ b/thousandeyes-sdk-endpoint-instant-tests/src/thousandeyes_sdk/endpoint_instant_tests/models/endpoint_http_server_base_test.py @@ -3,7 +3,7 @@ """ Endpoint Instant Scheduled Tests API - You can create and execute a new endpoint instant scheduled test within ThousandEyes using this API. The test parameters are specified in the `POST` data. The following applies to the Endpoint Instant Scheduled Tests API: * To initiate the creation and execution of an instant scheduled test, the user must possess the `Edit endpoint tests` permission. * Upon successful creation of an instant scheduled test, the API responds with an HTTP/201 CREATED status code and return the test definition. * It's important to note that the response does not include the results of the instant scheduled test. To retrieve test results, users can utilize the Endpoint Test Data endpoints. The URLs for these API test data endpoints are provided within the test definition output when an instant scheduled test is created. + You can create and execute a new endpoint instant scheduled test within ThousandEyes using this API. The test parameters are specified in the `POST` data. The following applies to the Endpoint Instant Scheduled Tests API: * To initiate the creation and execution of an instant scheduled test, the user must possess the `Edit endpoint tests` permission. * Upon successful creation of an instant scheduled test, the API responds with an HTTP/201 CREATED status code and return the test definition. * It's important to note that the response does not include the results of the instant scheduled test. To retrieve test results, users can utilize the Endpoint Test Data endpoints. The URLs for these API test data endpoints are provided within the test definition output when an instant scheduled test is created. Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/thousandeyes-sdk-endpoint-instant-tests/src/thousandeyes_sdk/endpoint_instant_tests/models/endpoint_http_server_instant_test.py b/thousandeyes-sdk-endpoint-instant-tests/src/thousandeyes_sdk/endpoint_instant_tests/models/endpoint_http_server_instant_test.py index f1bbc643..19fb3c42 100644 --- a/thousandeyes-sdk-endpoint-instant-tests/src/thousandeyes_sdk/endpoint_instant_tests/models/endpoint_http_server_instant_test.py +++ b/thousandeyes-sdk-endpoint-instant-tests/src/thousandeyes_sdk/endpoint_instant_tests/models/endpoint_http_server_instant_test.py @@ -3,7 +3,7 @@ """ Endpoint Instant Scheduled Tests API - You can create and execute a new endpoint instant scheduled test within ThousandEyes using this API. The test parameters are specified in the `POST` data. The following applies to the Endpoint Instant Scheduled Tests API: * To initiate the creation and execution of an instant scheduled test, the user must possess the `Edit endpoint tests` permission. * Upon successful creation of an instant scheduled test, the API responds with an HTTP/201 CREATED status code and return the test definition. * It's important to note that the response does not include the results of the instant scheduled test. To retrieve test results, users can utilize the Endpoint Test Data endpoints. The URLs for these API test data endpoints are provided within the test definition output when an instant scheduled test is created. + You can create and execute a new endpoint instant scheduled test within ThousandEyes using this API. The test parameters are specified in the `POST` data. The following applies to the Endpoint Instant Scheduled Tests API: * To initiate the creation and execution of an instant scheduled test, the user must possess the `Edit endpoint tests` permission. * Upon successful creation of an instant scheduled test, the API responds with an HTTP/201 CREATED status code and return the test definition. * It's important to note that the response does not include the results of the instant scheduled test. To retrieve test results, users can utilize the Endpoint Test Data endpoints. The URLs for these API test data endpoints are provided within the test definition output when an instant scheduled test is created. Generated by OpenAPI Generator (https://openapi-generator.tech) @@ -33,7 +33,8 @@ class EndpointHttpServerInstantTest(BaseModel): """ # noqa: E501 agent_selector_type: Optional[EndpointTestAgentSelectorType] = Field(default=None, alias="agentSelectorType") agents: Optional[List[StrictStr]] = Field(default=None, description="List of endpoint agent IDs (obtained from `/endpoint/agents` endpoint). Required when `agentSelectorType` is set to `specific-agent`.") - endpoint_agent_labels: Optional[List[StrictStr]] = Field(default=None, description="List of endpoint agent label IDs (obtained from `/endpoint/labels` endpoint), required when `agentSelectorType` is set to `agent-labels`.", alias="endpointAgentLabels") + endpoint_agent_labels: Optional[List[StrictStr]] = Field(default=None, description="Deprecated. Use `tagIds` instead. List of endpoint agent label IDs (obtained from `/endpoint/labels` endpoint), required when `agentSelectorType` is set to `agent-labels`. ", alias="endpointAgentLabels") + tag_ids: Optional[List[StrictStr]] = Field(default=None, description="List of tag IDs (obtained from `/tags` endpoint).", alias="tagIds") max_machines: Optional[StrictInt] = Field(default=25, description="Maximum number of agents which can execute the test.", alias="maxMachines") test_name: StrictStr = Field(description="Name of the test.", alias="testName") ip_version: Optional[EndpointIpVersionIn] = Field(default=None, alias="ipVersion") @@ -51,7 +52,7 @@ class EndpointHttpServerInstantTest(BaseModel): network_measurements: Optional[StrictBool] = Field(default=True, description="Enable or disable network measurements. Set to true to enable or false to disable network measurements.", alias="networkMeasurements") target_response_time: Optional[StrictInt] = Field(default=1000, description="Response time target in milliseconds. Affects the colors of agents and legends on the view page. The value is compared with actual response time in order to determine the color scale (from green to red).", alias="targetResponseTime") password: Optional[StrictStr] = Field(default=None, description="Password for Basic/NTLM authentication.") - __properties: ClassVar[List[str]] = ["agentSelectorType", "agents", "endpointAgentLabels", "maxMachines", "testName", "ipVersion", "authType", "hasPathTraceInSession", "httpTimeLimit", "protocol", "username", "sslVersionId", "tcpProbeMode", "verifyCertificate", "url", "hasPing", "hasTraceroute", "networkMeasurements", "targetResponseTime", "password"] + __properties: ClassVar[List[str]] = ["agentSelectorType", "agents", "endpointAgentLabels", "tagIds", "maxMachines", "testName", "ipVersion", "authType", "hasPathTraceInSession", "httpTimeLimit", "protocol", "username", "sslVersionId", "tcpProbeMode", "verifyCertificate", "url", "hasPing", "hasTraceroute", "networkMeasurements", "targetResponseTime", "password"] model_config = ConfigDict( populate_by_name=True, @@ -108,6 +109,7 @@ class EndpointHttpServerInstantTest(BaseModel): "agentSelectorType": obj.get("agentSelectorType"), "agents": obj.get("agents"), "endpointAgentLabels": obj.get("endpointAgentLabels"), + "tagIds": obj.get("tagIds"), "maxMachines": obj.get("maxMachines") if obj.get("maxMachines") is not None else 25, "testName": obj.get("testName"), "ipVersion": obj.get("ipVersion"), diff --git a/thousandeyes-sdk-endpoint-instant-tests/src/thousandeyes_sdk/endpoint_instant_tests/models/endpoint_http_server_test.py b/thousandeyes-sdk-endpoint-instant-tests/src/thousandeyes_sdk/endpoint_instant_tests/models/endpoint_http_server_test.py index ba62fe30..5dfc0410 100644 --- a/thousandeyes-sdk-endpoint-instant-tests/src/thousandeyes_sdk/endpoint_instant_tests/models/endpoint_http_server_test.py +++ b/thousandeyes-sdk-endpoint-instant-tests/src/thousandeyes_sdk/endpoint_instant_tests/models/endpoint_http_server_test.py @@ -3,7 +3,7 @@ """ Endpoint Instant Scheduled Tests API - You can create and execute a new endpoint instant scheduled test within ThousandEyes using this API. The test parameters are specified in the `POST` data. The following applies to the Endpoint Instant Scheduled Tests API: * To initiate the creation and execution of an instant scheduled test, the user must possess the `Edit endpoint tests` permission. * Upon successful creation of an instant scheduled test, the API responds with an HTTP/201 CREATED status code and return the test definition. * It's important to note that the response does not include the results of the instant scheduled test. To retrieve test results, users can utilize the Endpoint Test Data endpoints. The URLs for these API test data endpoints are provided within the test definition output when an instant scheduled test is created. + You can create and execute a new endpoint instant scheduled test within ThousandEyes using this API. The test parameters are specified in the `POST` data. The following applies to the Endpoint Instant Scheduled Tests API: * To initiate the creation and execution of an instant scheduled test, the user must possess the `Edit endpoint tests` permission. * Upon successful creation of an instant scheduled test, the API responds with an HTTP/201 CREATED status code and return the test definition. * It's important to note that the response does not include the results of the instant scheduled test. To retrieve test results, users can utilize the Endpoint Test Data endpoints. The URLs for these API test data endpoints are provided within the test definition output when an instant scheduled test is created. Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/thousandeyes-sdk-endpoint-instant-tests/src/thousandeyes_sdk/endpoint_instant_tests/models/endpoint_instant_test.py b/thousandeyes-sdk-endpoint-instant-tests/src/thousandeyes_sdk/endpoint_instant_tests/models/endpoint_instant_test.py index 42676297..547a1bf3 100644 --- a/thousandeyes-sdk-endpoint-instant-tests/src/thousandeyes_sdk/endpoint_instant_tests/models/endpoint_instant_test.py +++ b/thousandeyes-sdk-endpoint-instant-tests/src/thousandeyes_sdk/endpoint_instant_tests/models/endpoint_instant_test.py @@ -3,7 +3,7 @@ """ Endpoint Instant Scheduled Tests API - You can create and execute a new endpoint instant scheduled test within ThousandEyes using this API. The test parameters are specified in the `POST` data. The following applies to the Endpoint Instant Scheduled Tests API: * To initiate the creation and execution of an instant scheduled test, the user must possess the `Edit endpoint tests` permission. * Upon successful creation of an instant scheduled test, the API responds with an HTTP/201 CREATED status code and return the test definition. * It's important to note that the response does not include the results of the instant scheduled test. To retrieve test results, users can utilize the Endpoint Test Data endpoints. The URLs for these API test data endpoints are provided within the test definition output when an instant scheduled test is created. + You can create and execute a new endpoint instant scheduled test within ThousandEyes using this API. The test parameters are specified in the `POST` data. The following applies to the Endpoint Instant Scheduled Tests API: * To initiate the creation and execution of an instant scheduled test, the user must possess the `Edit endpoint tests` permission. * Upon successful creation of an instant scheduled test, the API responds with an HTTP/201 CREATED status code and return the test definition. * It's important to note that the response does not include the results of the instant scheduled test. To retrieve test results, users can utilize the Endpoint Test Data endpoints. The URLs for these API test data endpoints are provided within the test definition output when an instant scheduled test is created. Generated by OpenAPI Generator (https://openapi-generator.tech) @@ -29,11 +29,12 @@ class EndpointInstantTest(BaseModel): """ # noqa: E501 agent_selector_type: Optional[EndpointTestAgentSelectorType] = Field(default=None, alias="agentSelectorType") agents: Optional[List[StrictStr]] = Field(default=None, description="List of endpoint agent IDs (obtained from `/endpoint/agents` endpoint). Required when `agentSelectorType` is set to `specific-agent`.") - endpoint_agent_labels: Optional[List[StrictStr]] = Field(default=None, description="List of endpoint agent label IDs (obtained from `/endpoint/labels` endpoint), required when `agentSelectorType` is set to `agent-labels`.", alias="endpointAgentLabels") + endpoint_agent_labels: Optional[List[StrictStr]] = Field(default=None, description="Deprecated. Use `tagIds` instead. List of endpoint agent label IDs (obtained from `/endpoint/labels` endpoint), required when `agentSelectorType` is set to `agent-labels`. ", alias="endpointAgentLabels") + tag_ids: Optional[List[StrictStr]] = Field(default=None, description="List of tag IDs (obtained from `/tags` endpoint).", alias="tagIds") max_machines: Optional[StrictInt] = Field(default=25, description="Maximum number of agents which can execute the test.", alias="maxMachines") test_name: StrictStr = Field(description="Name of the test.", alias="testName") ip_version: Optional[EndpointIpVersionIn] = Field(default=None, alias="ipVersion") - __properties: ClassVar[List[str]] = ["agentSelectorType", "agents", "endpointAgentLabels", "maxMachines", "testName", "ipVersion"] + __properties: ClassVar[List[str]] = ["agentSelectorType", "agents", "endpointAgentLabels", "tagIds", "maxMachines", "testName", "ipVersion"] model_config = ConfigDict( populate_by_name=True, @@ -90,6 +91,7 @@ class EndpointInstantTest(BaseModel): "agentSelectorType": obj.get("agentSelectorType"), "agents": obj.get("agents"), "endpointAgentLabels": obj.get("endpointAgentLabels"), + "tagIds": obj.get("tagIds"), "maxMachines": obj.get("maxMachines") if obj.get("maxMachines") is not None else 25, "testName": obj.get("testName"), "ipVersion": obj.get("ipVersion") diff --git a/thousandeyes-sdk-endpoint-instant-tests/src/thousandeyes_sdk/endpoint_instant_tests/models/endpoint_ip_version_in.py b/thousandeyes-sdk-endpoint-instant-tests/src/thousandeyes_sdk/endpoint_instant_tests/models/endpoint_ip_version_in.py index 5d39e213..d6b1696d 100644 --- a/thousandeyes-sdk-endpoint-instant-tests/src/thousandeyes_sdk/endpoint_instant_tests/models/endpoint_ip_version_in.py +++ b/thousandeyes-sdk-endpoint-instant-tests/src/thousandeyes_sdk/endpoint_instant_tests/models/endpoint_ip_version_in.py @@ -3,7 +3,7 @@ """ Endpoint Instant Scheduled Tests API - You can create and execute a new endpoint instant scheduled test within ThousandEyes using this API. The test parameters are specified in the `POST` data. The following applies to the Endpoint Instant Scheduled Tests API: * To initiate the creation and execution of an instant scheduled test, the user must possess the `Edit endpoint tests` permission. * Upon successful creation of an instant scheduled test, the API responds with an HTTP/201 CREATED status code and return the test definition. * It's important to note that the response does not include the results of the instant scheduled test. To retrieve test results, users can utilize the Endpoint Test Data endpoints. The URLs for these API test data endpoints are provided within the test definition output when an instant scheduled test is created. + You can create and execute a new endpoint instant scheduled test within ThousandEyes using this API. The test parameters are specified in the `POST` data. The following applies to the Endpoint Instant Scheduled Tests API: * To initiate the creation and execution of an instant scheduled test, the user must possess the `Edit endpoint tests` permission. * Upon successful creation of an instant scheduled test, the API responds with an HTTP/201 CREATED status code and return the test definition. * It's important to note that the response does not include the results of the instant scheduled test. To retrieve test results, users can utilize the Endpoint Test Data endpoints. The URLs for these API test data endpoints are provided within the test definition output when an instant scheduled test is created. Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/thousandeyes-sdk-endpoint-instant-tests/src/thousandeyes_sdk/endpoint_instant_tests/models/endpoint_run_scheduled_instant_test_result.py b/thousandeyes-sdk-endpoint-instant-tests/src/thousandeyes_sdk/endpoint_instant_tests/models/endpoint_run_scheduled_instant_test_result.py index af286484..b79dd64a 100644 --- a/thousandeyes-sdk-endpoint-instant-tests/src/thousandeyes_sdk/endpoint_instant_tests/models/endpoint_run_scheduled_instant_test_result.py +++ b/thousandeyes-sdk-endpoint-instant-tests/src/thousandeyes_sdk/endpoint_instant_tests/models/endpoint_run_scheduled_instant_test_result.py @@ -3,7 +3,7 @@ """ Endpoint Instant Scheduled Tests API - You can create and execute a new endpoint instant scheduled test within ThousandEyes using this API. The test parameters are specified in the `POST` data. The following applies to the Endpoint Instant Scheduled Tests API: * To initiate the creation and execution of an instant scheduled test, the user must possess the `Edit endpoint tests` permission. * Upon successful creation of an instant scheduled test, the API responds with an HTTP/201 CREATED status code and return the test definition. * It's important to note that the response does not include the results of the instant scheduled test. To retrieve test results, users can utilize the Endpoint Test Data endpoints. The URLs for these API test data endpoints are provided within the test definition output when an instant scheduled test is created. + You can create and execute a new endpoint instant scheduled test within ThousandEyes using this API. The test parameters are specified in the `POST` data. The following applies to the Endpoint Instant Scheduled Tests API: * To initiate the creation and execution of an instant scheduled test, the user must possess the `Edit endpoint tests` permission. * Upon successful creation of an instant scheduled test, the API responds with an HTTP/201 CREATED status code and return the test definition. * It's important to note that the response does not include the results of the instant scheduled test. To retrieve test results, users can utilize the Endpoint Test Data endpoints. The URLs for these API test data endpoints are provided within the test definition output when an instant scheduled test is created. Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/thousandeyes-sdk-endpoint-instant-tests/src/thousandeyes_sdk/endpoint_instant_tests/models/endpoint_scheduled_test_type.py b/thousandeyes-sdk-endpoint-instant-tests/src/thousandeyes_sdk/endpoint_instant_tests/models/endpoint_scheduled_test_type.py index 055d08db..e779f129 100644 --- a/thousandeyes-sdk-endpoint-instant-tests/src/thousandeyes_sdk/endpoint_instant_tests/models/endpoint_scheduled_test_type.py +++ b/thousandeyes-sdk-endpoint-instant-tests/src/thousandeyes_sdk/endpoint_instant_tests/models/endpoint_scheduled_test_type.py @@ -3,7 +3,7 @@ """ Endpoint Instant Scheduled Tests API - You can create and execute a new endpoint instant scheduled test within ThousandEyes using this API. The test parameters are specified in the `POST` data. The following applies to the Endpoint Instant Scheduled Tests API: * To initiate the creation and execution of an instant scheduled test, the user must possess the `Edit endpoint tests` permission. * Upon successful creation of an instant scheduled test, the API responds with an HTTP/201 CREATED status code and return the test definition. * It's important to note that the response does not include the results of the instant scheduled test. To retrieve test results, users can utilize the Endpoint Test Data endpoints. The URLs for these API test data endpoints are provided within the test definition output when an instant scheduled test is created. + You can create and execute a new endpoint instant scheduled test within ThousandEyes using this API. The test parameters are specified in the `POST` data. The following applies to the Endpoint Instant Scheduled Tests API: * To initiate the creation and execution of an instant scheduled test, the user must possess the `Edit endpoint tests` permission. * Upon successful creation of an instant scheduled test, the API responds with an HTTP/201 CREATED status code and return the test definition. * It's important to note that the response does not include the results of the instant scheduled test. To retrieve test results, users can utilize the Endpoint Test Data endpoints. The URLs for these API test data endpoints are provided within the test definition output when an instant scheduled test is created. Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/thousandeyes-sdk-endpoint-instant-tests/src/thousandeyes_sdk/endpoint_instant_tests/models/endpoint_specific_agents_selector_config.py b/thousandeyes-sdk-endpoint-instant-tests/src/thousandeyes_sdk/endpoint_instant_tests/models/endpoint_specific_agents_selector_config.py index 63aba454..424a2877 100644 --- a/thousandeyes-sdk-endpoint-instant-tests/src/thousandeyes_sdk/endpoint_instant_tests/models/endpoint_specific_agents_selector_config.py +++ b/thousandeyes-sdk-endpoint-instant-tests/src/thousandeyes_sdk/endpoint_instant_tests/models/endpoint_specific_agents_selector_config.py @@ -3,7 +3,7 @@ """ Endpoint Instant Scheduled Tests API - You can create and execute a new endpoint instant scheduled test within ThousandEyes using this API. The test parameters are specified in the `POST` data. The following applies to the Endpoint Instant Scheduled Tests API: * To initiate the creation and execution of an instant scheduled test, the user must possess the `Edit endpoint tests` permission. * Upon successful creation of an instant scheduled test, the API responds with an HTTP/201 CREATED status code and return the test definition. * It's important to note that the response does not include the results of the instant scheduled test. To retrieve test results, users can utilize the Endpoint Test Data endpoints. The URLs for these API test data endpoints are provided within the test definition output when an instant scheduled test is created. + You can create and execute a new endpoint instant scheduled test within ThousandEyes using this API. The test parameters are specified in the `POST` data. The following applies to the Endpoint Instant Scheduled Tests API: * To initiate the creation and execution of an instant scheduled test, the user must possess the `Edit endpoint tests` permission. * Upon successful creation of an instant scheduled test, the API responds with an HTTP/201 CREATED status code and return the test definition. * It's important to note that the response does not include the results of the instant scheduled test. To retrieve test results, users can utilize the Endpoint Test Data endpoints. The URLs for these API test data endpoints are provided within the test definition output when an instant scheduled test is created. Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/thousandeyes-sdk-endpoint-instant-tests/src/thousandeyes_sdk/endpoint_instant_tests/models/endpoint_test.py b/thousandeyes-sdk-endpoint-instant-tests/src/thousandeyes_sdk/endpoint_instant_tests/models/endpoint_test.py index 972ac437..49672065 100644 --- a/thousandeyes-sdk-endpoint-instant-tests/src/thousandeyes_sdk/endpoint_instant_tests/models/endpoint_test.py +++ b/thousandeyes-sdk-endpoint-instant-tests/src/thousandeyes_sdk/endpoint_instant_tests/models/endpoint_test.py @@ -3,7 +3,7 @@ """ Endpoint Instant Scheduled Tests API - You can create and execute a new endpoint instant scheduled test within ThousandEyes using this API. The test parameters are specified in the `POST` data. The following applies to the Endpoint Instant Scheduled Tests API: * To initiate the creation and execution of an instant scheduled test, the user must possess the `Edit endpoint tests` permission. * Upon successful creation of an instant scheduled test, the API responds with an HTTP/201 CREATED status code and return the test definition. * It's important to note that the response does not include the results of the instant scheduled test. To retrieve test results, users can utilize the Endpoint Test Data endpoints. The URLs for these API test data endpoints are provided within the test definition output when an instant scheduled test is created. + You can create and execute a new endpoint instant scheduled test within ThousandEyes using this API. The test parameters are specified in the `POST` data. The following applies to the Endpoint Instant Scheduled Tests API: * To initiate the creation and execution of an instant scheduled test, the user must possess the `Edit endpoint tests` permission. * Upon successful creation of an instant scheduled test, the API responds with an HTTP/201 CREATED status code and return the test definition. * It's important to note that the response does not include the results of the instant scheduled test. To retrieve test results, users can utilize the Endpoint Test Data endpoints. The URLs for these API test data endpoints are provided within the test definition output when an instant scheduled test is created. Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/thousandeyes-sdk-endpoint-instant-tests/src/thousandeyes_sdk/endpoint_instant_tests/models/endpoint_test_agent_selector_type.py b/thousandeyes-sdk-endpoint-instant-tests/src/thousandeyes_sdk/endpoint_instant_tests/models/endpoint_test_agent_selector_type.py index 4b9a321e..c333bad6 100644 --- a/thousandeyes-sdk-endpoint-instant-tests/src/thousandeyes_sdk/endpoint_instant_tests/models/endpoint_test_agent_selector_type.py +++ b/thousandeyes-sdk-endpoint-instant-tests/src/thousandeyes_sdk/endpoint_instant_tests/models/endpoint_test_agent_selector_type.py @@ -3,7 +3,7 @@ """ Endpoint Instant Scheduled Tests API - You can create and execute a new endpoint instant scheduled test within ThousandEyes using this API. The test parameters are specified in the `POST` data. The following applies to the Endpoint Instant Scheduled Tests API: * To initiate the creation and execution of an instant scheduled test, the user must possess the `Edit endpoint tests` permission. * Upon successful creation of an instant scheduled test, the API responds with an HTTP/201 CREATED status code and return the test definition. * It's important to note that the response does not include the results of the instant scheduled test. To retrieve test results, users can utilize the Endpoint Test Data endpoints. The URLs for these API test data endpoints are provided within the test definition output when an instant scheduled test is created. + You can create and execute a new endpoint instant scheduled test within ThousandEyes using this API. The test parameters are specified in the `POST` data. The following applies to the Endpoint Instant Scheduled Tests API: * To initiate the creation and execution of an instant scheduled test, the user must possess the `Edit endpoint tests` permission. * Upon successful creation of an instant scheduled test, the API responds with an HTTP/201 CREATED status code and return the test definition. * It's important to note that the response does not include the results of the instant scheduled test. To retrieve test results, users can utilize the Endpoint Test Data endpoints. The URLs for these API test data endpoints are provided within the test definition output when an instant scheduled test is created. Generated by OpenAPI Generator (https://openapi-generator.tech) @@ -19,7 +19,7 @@ from typing_extensions import Self class EndpointTestAgentSelectorType(str, Enum): """ - Retrieve either all available agents, a specific list of agents, or a list of agent labels. + Specifies how agents are selected for the endpoint test. Agents can be selected from: - all available agents - a specific list of agents - agents matching tags - agents matching labels (deprecated) """ """ @@ -28,6 +28,7 @@ class EndpointTestAgentSelectorType(str, Enum): ALL_MINUS_AGENTS = 'all-agents' SPECIFIC_MINUS_AGENTS = 'specific-agents' AGENT_MINUS_LABELS = 'agent-labels' + AGENT_MINUS_TAGS = 'agent-tags' UNKNOWN = 'unknown' @classmethod diff --git a/thousandeyes-sdk-endpoint-instant-tests/src/thousandeyes_sdk/endpoint_instant_tests/models/endpoint_test_auth_type.py b/thousandeyes-sdk-endpoint-instant-tests/src/thousandeyes_sdk/endpoint_instant_tests/models/endpoint_test_auth_type.py index dfdda621..975111f5 100644 --- a/thousandeyes-sdk-endpoint-instant-tests/src/thousandeyes_sdk/endpoint_instant_tests/models/endpoint_test_auth_type.py +++ b/thousandeyes-sdk-endpoint-instant-tests/src/thousandeyes_sdk/endpoint_instant_tests/models/endpoint_test_auth_type.py @@ -3,7 +3,7 @@ """ Endpoint Instant Scheduled Tests API - You can create and execute a new endpoint instant scheduled test within ThousandEyes using this API. The test parameters are specified in the `POST` data. The following applies to the Endpoint Instant Scheduled Tests API: * To initiate the creation and execution of an instant scheduled test, the user must possess the `Edit endpoint tests` permission. * Upon successful creation of an instant scheduled test, the API responds with an HTTP/201 CREATED status code and return the test definition. * It's important to note that the response does not include the results of the instant scheduled test. To retrieve test results, users can utilize the Endpoint Test Data endpoints. The URLs for these API test data endpoints are provided within the test definition output when an instant scheduled test is created. + You can create and execute a new endpoint instant scheduled test within ThousandEyes using this API. The test parameters are specified in the `POST` data. The following applies to the Endpoint Instant Scheduled Tests API: * To initiate the creation and execution of an instant scheduled test, the user must possess the `Edit endpoint tests` permission. * Upon successful creation of an instant scheduled test, the API responds with an HTTP/201 CREATED status code and return the test definition. * It's important to note that the response does not include the results of the instant scheduled test. To retrieve test results, users can utilize the Endpoint Test Data endpoints. The URLs for these API test data endpoints are provided within the test definition output when an instant scheduled test is created. Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/thousandeyes-sdk-endpoint-instant-tests/src/thousandeyes_sdk/endpoint_instant_tests/models/endpoint_test_links.py b/thousandeyes-sdk-endpoint-instant-tests/src/thousandeyes_sdk/endpoint_instant_tests/models/endpoint_test_links.py index 3ebdfe11..71e2ba66 100644 --- a/thousandeyes-sdk-endpoint-instant-tests/src/thousandeyes_sdk/endpoint_instant_tests/models/endpoint_test_links.py +++ b/thousandeyes-sdk-endpoint-instant-tests/src/thousandeyes_sdk/endpoint_instant_tests/models/endpoint_test_links.py @@ -3,7 +3,7 @@ """ Endpoint Instant Scheduled Tests API - You can create and execute a new endpoint instant scheduled test within ThousandEyes using this API. The test parameters are specified in the `POST` data. The following applies to the Endpoint Instant Scheduled Tests API: * To initiate the creation and execution of an instant scheduled test, the user must possess the `Edit endpoint tests` permission. * Upon successful creation of an instant scheduled test, the API responds with an HTTP/201 CREATED status code and return the test definition. * It's important to note that the response does not include the results of the instant scheduled test. To retrieve test results, users can utilize the Endpoint Test Data endpoints. The URLs for these API test data endpoints are provided within the test definition output when an instant scheduled test is created. + You can create and execute a new endpoint instant scheduled test within ThousandEyes using this API. The test parameters are specified in the `POST` data. The following applies to the Endpoint Instant Scheduled Tests API: * To initiate the creation and execution of an instant scheduled test, the user must possess the `Edit endpoint tests` permission. * Upon successful creation of an instant scheduled test, the API responds with an HTTP/201 CREATED status code and return the test definition. * It's important to note that the response does not include the results of the instant scheduled test. To retrieve test results, users can utilize the Endpoint Test Data endpoints. The URLs for these API test data endpoints are provided within the test definition output when an instant scheduled test is created. Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/thousandeyes-sdk-endpoint-instant-tests/src/thousandeyes_sdk/endpoint_instant_tests/models/endpoint_test_protocol.py b/thousandeyes-sdk-endpoint-instant-tests/src/thousandeyes_sdk/endpoint_instant_tests/models/endpoint_test_protocol.py index f42ae051..0662f7cd 100644 --- a/thousandeyes-sdk-endpoint-instant-tests/src/thousandeyes_sdk/endpoint_instant_tests/models/endpoint_test_protocol.py +++ b/thousandeyes-sdk-endpoint-instant-tests/src/thousandeyes_sdk/endpoint_instant_tests/models/endpoint_test_protocol.py @@ -3,7 +3,7 @@ """ Endpoint Instant Scheduled Tests API - You can create and execute a new endpoint instant scheduled test within ThousandEyes using this API. The test parameters are specified in the `POST` data. The following applies to the Endpoint Instant Scheduled Tests API: * To initiate the creation and execution of an instant scheduled test, the user must possess the `Edit endpoint tests` permission. * Upon successful creation of an instant scheduled test, the API responds with an HTTP/201 CREATED status code and return the test definition. * It's important to note that the response does not include the results of the instant scheduled test. To retrieve test results, users can utilize the Endpoint Test Data endpoints. The URLs for these API test data endpoints are provided within the test definition output when an instant scheduled test is created. + You can create and execute a new endpoint instant scheduled test within ThousandEyes using this API. The test parameters are specified in the `POST` data. The following applies to the Endpoint Instant Scheduled Tests API: * To initiate the creation and execution of an instant scheduled test, the user must possess the `Edit endpoint tests` permission. * Upon successful creation of an instant scheduled test, the API responds with an HTTP/201 CREATED status code and return the test definition. * It's important to note that the response does not include the results of the instant scheduled test. To retrieve test results, users can utilize the Endpoint Test Data endpoints. The URLs for these API test data endpoints are provided within the test definition output when an instant scheduled test is created. Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/thousandeyes-sdk-endpoint-instant-tests/src/thousandeyes_sdk/endpoint_instant_tests/models/endpoint_test_self_link.py b/thousandeyes-sdk-endpoint-instant-tests/src/thousandeyes_sdk/endpoint_instant_tests/models/endpoint_test_self_link.py index c8f26e1a..aff35139 100644 --- a/thousandeyes-sdk-endpoint-instant-tests/src/thousandeyes_sdk/endpoint_instant_tests/models/endpoint_test_self_link.py +++ b/thousandeyes-sdk-endpoint-instant-tests/src/thousandeyes_sdk/endpoint_instant_tests/models/endpoint_test_self_link.py @@ -3,7 +3,7 @@ """ Endpoint Instant Scheduled Tests API - You can create and execute a new endpoint instant scheduled test within ThousandEyes using this API. The test parameters are specified in the `POST` data. The following applies to the Endpoint Instant Scheduled Tests API: * To initiate the creation and execution of an instant scheduled test, the user must possess the `Edit endpoint tests` permission. * Upon successful creation of an instant scheduled test, the API responds with an HTTP/201 CREATED status code and return the test definition. * It's important to note that the response does not include the results of the instant scheduled test. To retrieve test results, users can utilize the Endpoint Test Data endpoints. The URLs for these API test data endpoints are provided within the test definition output when an instant scheduled test is created. + You can create and execute a new endpoint instant scheduled test within ThousandEyes using this API. The test parameters are specified in the `POST` data. The following applies to the Endpoint Instant Scheduled Tests API: * To initiate the creation and execution of an instant scheduled test, the user must possess the `Edit endpoint tests` permission. * Upon successful creation of an instant scheduled test, the API responds with an HTTP/201 CREATED status code and return the test definition. * It's important to note that the response does not include the results of the instant scheduled test. To retrieve test results, users can utilize the Endpoint Test Data endpoints. The URLs for these API test data endpoints are provided within the test definition output when an instant scheduled test is created. Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/thousandeyes-sdk-endpoint-instant-tests/src/thousandeyes_sdk/endpoint_instant_tests/models/error.py b/thousandeyes-sdk-endpoint-instant-tests/src/thousandeyes_sdk/endpoint_instant_tests/models/error.py index 032f49d4..2fd0999e 100644 --- a/thousandeyes-sdk-endpoint-instant-tests/src/thousandeyes_sdk/endpoint_instant_tests/models/error.py +++ b/thousandeyes-sdk-endpoint-instant-tests/src/thousandeyes_sdk/endpoint_instant_tests/models/error.py @@ -3,7 +3,7 @@ """ Endpoint Instant Scheduled Tests API - You can create and execute a new endpoint instant scheduled test within ThousandEyes using this API. The test parameters are specified in the `POST` data. The following applies to the Endpoint Instant Scheduled Tests API: * To initiate the creation and execution of an instant scheduled test, the user must possess the `Edit endpoint tests` permission. * Upon successful creation of an instant scheduled test, the API responds with an HTTP/201 CREATED status code and return the test definition. * It's important to note that the response does not include the results of the instant scheduled test. To retrieve test results, users can utilize the Endpoint Test Data endpoints. The URLs for these API test data endpoints are provided within the test definition output when an instant scheduled test is created. + You can create and execute a new endpoint instant scheduled test within ThousandEyes using this API. The test parameters are specified in the `POST` data. The following applies to the Endpoint Instant Scheduled Tests API: * To initiate the creation and execution of an instant scheduled test, the user must possess the `Edit endpoint tests` permission. * Upon successful creation of an instant scheduled test, the API responds with an HTTP/201 CREATED status code and return the test definition. * It's important to note that the response does not include the results of the instant scheduled test. To retrieve test results, users can utilize the Endpoint Test Data endpoints. The URLs for these API test data endpoints are provided within the test definition output when an instant scheduled test is created. Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/thousandeyes-sdk-endpoint-instant-tests/src/thousandeyes_sdk/endpoint_instant_tests/models/link.py b/thousandeyes-sdk-endpoint-instant-tests/src/thousandeyes_sdk/endpoint_instant_tests/models/link.py index e8050911..901e688f 100644 --- a/thousandeyes-sdk-endpoint-instant-tests/src/thousandeyes_sdk/endpoint_instant_tests/models/link.py +++ b/thousandeyes-sdk-endpoint-instant-tests/src/thousandeyes_sdk/endpoint_instant_tests/models/link.py @@ -3,7 +3,7 @@ """ Endpoint Instant Scheduled Tests API - You can create and execute a new endpoint instant scheduled test within ThousandEyes using this API. The test parameters are specified in the `POST` data. The following applies to the Endpoint Instant Scheduled Tests API: * To initiate the creation and execution of an instant scheduled test, the user must possess the `Edit endpoint tests` permission. * Upon successful creation of an instant scheduled test, the API responds with an HTTP/201 CREATED status code and return the test definition. * It's important to note that the response does not include the results of the instant scheduled test. To retrieve test results, users can utilize the Endpoint Test Data endpoints. The URLs for these API test data endpoints are provided within the test definition output when an instant scheduled test is created. + You can create and execute a new endpoint instant scheduled test within ThousandEyes using this API. The test parameters are specified in the `POST` data. The following applies to the Endpoint Instant Scheduled Tests API: * To initiate the creation and execution of an instant scheduled test, the user must possess the `Edit endpoint tests` permission. * Upon successful creation of an instant scheduled test, the API responds with an HTTP/201 CREATED status code and return the test definition. * It's important to note that the response does not include the results of the instant scheduled test. To retrieve test results, users can utilize the Endpoint Test Data endpoints. The URLs for these API test data endpoints are provided within the test definition output when an instant scheduled test is created. Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/thousandeyes-sdk-endpoint-instant-tests/src/thousandeyes_sdk/endpoint_instant_tests/models/test_interval.py b/thousandeyes-sdk-endpoint-instant-tests/src/thousandeyes_sdk/endpoint_instant_tests/models/test_interval.py index 6e4eb9fb..d7267342 100644 --- a/thousandeyes-sdk-endpoint-instant-tests/src/thousandeyes_sdk/endpoint_instant_tests/models/test_interval.py +++ b/thousandeyes-sdk-endpoint-instant-tests/src/thousandeyes_sdk/endpoint_instant_tests/models/test_interval.py @@ -3,7 +3,7 @@ """ Endpoint Instant Scheduled Tests API - You can create and execute a new endpoint instant scheduled test within ThousandEyes using this API. The test parameters are specified in the `POST` data. The following applies to the Endpoint Instant Scheduled Tests API: * To initiate the creation and execution of an instant scheduled test, the user must possess the `Edit endpoint tests` permission. * Upon successful creation of an instant scheduled test, the API responds with an HTTP/201 CREATED status code and return the test definition. * It's important to note that the response does not include the results of the instant scheduled test. To retrieve test results, users can utilize the Endpoint Test Data endpoints. The URLs for these API test data endpoints are provided within the test definition output when an instant scheduled test is created. + You can create and execute a new endpoint instant scheduled test within ThousandEyes using this API. The test parameters are specified in the `POST` data. The following applies to the Endpoint Instant Scheduled Tests API: * To initiate the creation and execution of an instant scheduled test, the user must possess the `Edit endpoint tests` permission. * Upon successful creation of an instant scheduled test, the API responds with an HTTP/201 CREATED status code and return the test definition. * It's important to note that the response does not include the results of the instant scheduled test. To retrieve test results, users can utilize the Endpoint Test Data endpoints. The URLs for these API test data endpoints are provided within the test definition output when an instant scheduled test is created. Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/thousandeyes-sdk-endpoint-instant-tests/src/thousandeyes_sdk/endpoint_instant_tests/models/test_label.py b/thousandeyes-sdk-endpoint-instant-tests/src/thousandeyes_sdk/endpoint_instant_tests/models/test_label.py index 8d6a4c56..29b94465 100644 --- a/thousandeyes-sdk-endpoint-instant-tests/src/thousandeyes_sdk/endpoint_instant_tests/models/test_label.py +++ b/thousandeyes-sdk-endpoint-instant-tests/src/thousandeyes_sdk/endpoint_instant_tests/models/test_label.py @@ -3,7 +3,7 @@ """ Endpoint Instant Scheduled Tests API - You can create and execute a new endpoint instant scheduled test within ThousandEyes using this API. The test parameters are specified in the `POST` data. The following applies to the Endpoint Instant Scheduled Tests API: * To initiate the creation and execution of an instant scheduled test, the user must possess the `Edit endpoint tests` permission. * Upon successful creation of an instant scheduled test, the API responds with an HTTP/201 CREATED status code and return the test definition. * It's important to note that the response does not include the results of the instant scheduled test. To retrieve test results, users can utilize the Endpoint Test Data endpoints. The URLs for these API test data endpoints are provided within the test definition output when an instant scheduled test is created. + You can create and execute a new endpoint instant scheduled test within ThousandEyes using this API. The test parameters are specified in the `POST` data. The following applies to the Endpoint Instant Scheduled Tests API: * To initiate the creation and execution of an instant scheduled test, the user must possess the `Edit endpoint tests` permission. * Upon successful creation of an instant scheduled test, the API responds with an HTTP/201 CREATED status code and return the test definition. * It's important to note that the response does not include the results of the instant scheduled test. To retrieve test results, users can utilize the Endpoint Test Data endpoints. The URLs for these API test data endpoints are provided within the test definition output when an instant scheduled test is created. Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/thousandeyes-sdk-endpoint-instant-tests/src/thousandeyes_sdk/endpoint_instant_tests/models/test_probe_mode.py b/thousandeyes-sdk-endpoint-instant-tests/src/thousandeyes_sdk/endpoint_instant_tests/models/test_probe_mode.py index 00d613d7..798fc2a5 100644 --- a/thousandeyes-sdk-endpoint-instant-tests/src/thousandeyes_sdk/endpoint_instant_tests/models/test_probe_mode.py +++ b/thousandeyes-sdk-endpoint-instant-tests/src/thousandeyes_sdk/endpoint_instant_tests/models/test_probe_mode.py @@ -3,7 +3,7 @@ """ Endpoint Instant Scheduled Tests API - You can create and execute a new endpoint instant scheduled test within ThousandEyes using this API. The test parameters are specified in the `POST` data. The following applies to the Endpoint Instant Scheduled Tests API: * To initiate the creation and execution of an instant scheduled test, the user must possess the `Edit endpoint tests` permission. * Upon successful creation of an instant scheduled test, the API responds with an HTTP/201 CREATED status code and return the test definition. * It's important to note that the response does not include the results of the instant scheduled test. To retrieve test results, users can utilize the Endpoint Test Data endpoints. The URLs for these API test data endpoints are provided within the test definition output when an instant scheduled test is created. + You can create and execute a new endpoint instant scheduled test within ThousandEyes using this API. The test parameters are specified in the `POST` data. The following applies to the Endpoint Instant Scheduled Tests API: * To initiate the creation and execution of an instant scheduled test, the user must possess the `Edit endpoint tests` permission. * Upon successful creation of an instant scheduled test, the API responds with an HTTP/201 CREATED status code and return the test definition. * It's important to note that the response does not include the results of the instant scheduled test. To retrieve test results, users can utilize the Endpoint Test Data endpoints. The URLs for these API test data endpoints are provided within the test definition output when an instant scheduled test is created. Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/thousandeyes-sdk-endpoint-instant-tests/src/thousandeyes_sdk/endpoint_instant_tests/models/test_probe_mode_response.py b/thousandeyes-sdk-endpoint-instant-tests/src/thousandeyes_sdk/endpoint_instant_tests/models/test_probe_mode_response.py index 67b05b20..2310fcc4 100644 --- a/thousandeyes-sdk-endpoint-instant-tests/src/thousandeyes_sdk/endpoint_instant_tests/models/test_probe_mode_response.py +++ b/thousandeyes-sdk-endpoint-instant-tests/src/thousandeyes_sdk/endpoint_instant_tests/models/test_probe_mode_response.py @@ -3,7 +3,7 @@ """ Endpoint Instant Scheduled Tests API - You can create and execute a new endpoint instant scheduled test within ThousandEyes using this API. The test parameters are specified in the `POST` data. The following applies to the Endpoint Instant Scheduled Tests API: * To initiate the creation and execution of an instant scheduled test, the user must possess the `Edit endpoint tests` permission. * Upon successful creation of an instant scheduled test, the API responds with an HTTP/201 CREATED status code and return the test definition. * It's important to note that the response does not include the results of the instant scheduled test. To retrieve test results, users can utilize the Endpoint Test Data endpoints. The URLs for these API test data endpoints are provided within the test definition output when an instant scheduled test is created. + You can create and execute a new endpoint instant scheduled test within ThousandEyes using this API. The test parameters are specified in the `POST` data. The following applies to the Endpoint Instant Scheduled Tests API: * To initiate the creation and execution of an instant scheduled test, the user must possess the `Edit endpoint tests` permission. * Upon successful creation of an instant scheduled test, the API responds with an HTTP/201 CREATED status code and return the test definition. * It's important to note that the response does not include the results of the instant scheduled test. To retrieve test results, users can utilize the Endpoint Test Data endpoints. The URLs for these API test data endpoints are provided within the test definition output when an instant scheduled test is created. Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/thousandeyes-sdk-endpoint-instant-tests/src/thousandeyes_sdk/endpoint_instant_tests/models/test_ssl_version_id.py b/thousandeyes-sdk-endpoint-instant-tests/src/thousandeyes_sdk/endpoint_instant_tests/models/test_ssl_version_id.py index baa94884..a3017c05 100644 --- a/thousandeyes-sdk-endpoint-instant-tests/src/thousandeyes_sdk/endpoint_instant_tests/models/test_ssl_version_id.py +++ b/thousandeyes-sdk-endpoint-instant-tests/src/thousandeyes_sdk/endpoint_instant_tests/models/test_ssl_version_id.py @@ -3,7 +3,7 @@ """ Endpoint Instant Scheduled Tests API - You can create and execute a new endpoint instant scheduled test within ThousandEyes using this API. The test parameters are specified in the `POST` data. The following applies to the Endpoint Instant Scheduled Tests API: * To initiate the creation and execution of an instant scheduled test, the user must possess the `Edit endpoint tests` permission. * Upon successful creation of an instant scheduled test, the API responds with an HTTP/201 CREATED status code and return the test definition. * It's important to note that the response does not include the results of the instant scheduled test. To retrieve test results, users can utilize the Endpoint Test Data endpoints. The URLs for these API test data endpoints are provided within the test definition output when an instant scheduled test is created. + You can create and execute a new endpoint instant scheduled test within ThousandEyes using this API. The test parameters are specified in the `POST` data. The following applies to the Endpoint Instant Scheduled Tests API: * To initiate the creation and execution of an instant scheduled test, the user must possess the `Edit endpoint tests` permission. * Upon successful creation of an instant scheduled test, the API responds with an HTTP/201 CREATED status code and return the test definition. * It's important to note that the response does not include the results of the instant scheduled test. To retrieve test results, users can utilize the Endpoint Test Data endpoints. The URLs for these API test data endpoints are provided within the test definition output when an instant scheduled test is created. Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/thousandeyes-sdk-endpoint-instant-tests/src/thousandeyes_sdk/endpoint_instant_tests/models/unauthorized_error.py b/thousandeyes-sdk-endpoint-instant-tests/src/thousandeyes_sdk/endpoint_instant_tests/models/unauthorized_error.py index 2a0fd065..85c71937 100644 --- a/thousandeyes-sdk-endpoint-instant-tests/src/thousandeyes_sdk/endpoint_instant_tests/models/unauthorized_error.py +++ b/thousandeyes-sdk-endpoint-instant-tests/src/thousandeyes_sdk/endpoint_instant_tests/models/unauthorized_error.py @@ -3,7 +3,7 @@ """ Endpoint Instant Scheduled Tests API - You can create and execute a new endpoint instant scheduled test within ThousandEyes using this API. The test parameters are specified in the `POST` data. The following applies to the Endpoint Instant Scheduled Tests API: * To initiate the creation and execution of an instant scheduled test, the user must possess the `Edit endpoint tests` permission. * Upon successful creation of an instant scheduled test, the API responds with an HTTP/201 CREATED status code and return the test definition. * It's important to note that the response does not include the results of the instant scheduled test. To retrieve test results, users can utilize the Endpoint Test Data endpoints. The URLs for these API test data endpoints are provided within the test definition output when an instant scheduled test is created. + You can create and execute a new endpoint instant scheduled test within ThousandEyes using this API. The test parameters are specified in the `POST` data. The following applies to the Endpoint Instant Scheduled Tests API: * To initiate the creation and execution of an instant scheduled test, the user must possess the `Edit endpoint tests` permission. * Upon successful creation of an instant scheduled test, the API responds with an HTTP/201 CREATED status code and return the test definition. * It's important to note that the response does not include the results of the instant scheduled test. To retrieve test results, users can utilize the Endpoint Test Data endpoints. The URLs for these API test data endpoints are provided within the test definition output when an instant scheduled test is created. Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/thousandeyes-sdk-endpoint-instant-tests/src/thousandeyes_sdk/endpoint_instant_tests/models/validation_error.py b/thousandeyes-sdk-endpoint-instant-tests/src/thousandeyes_sdk/endpoint_instant_tests/models/validation_error.py index 4d11ad72..ce130dfc 100644 --- a/thousandeyes-sdk-endpoint-instant-tests/src/thousandeyes_sdk/endpoint_instant_tests/models/validation_error.py +++ b/thousandeyes-sdk-endpoint-instant-tests/src/thousandeyes_sdk/endpoint_instant_tests/models/validation_error.py @@ -3,7 +3,7 @@ """ Endpoint Instant Scheduled Tests API - You can create and execute a new endpoint instant scheduled test within ThousandEyes using this API. The test parameters are specified in the `POST` data. The following applies to the Endpoint Instant Scheduled Tests API: * To initiate the creation and execution of an instant scheduled test, the user must possess the `Edit endpoint tests` permission. * Upon successful creation of an instant scheduled test, the API responds with an HTTP/201 CREATED status code and return the test definition. * It's important to note that the response does not include the results of the instant scheduled test. To retrieve test results, users can utilize the Endpoint Test Data endpoints. The URLs for these API test data endpoints are provided within the test definition output when an instant scheduled test is created. + You can create and execute a new endpoint instant scheduled test within ThousandEyes using this API. The test parameters are specified in the `POST` data. The following applies to the Endpoint Instant Scheduled Tests API: * To initiate the creation and execution of an instant scheduled test, the user must possess the `Edit endpoint tests` permission. * Upon successful creation of an instant scheduled test, the API responds with an HTTP/201 CREATED status code and return the test definition. * It's important to note that the response does not include the results of the instant scheduled test. To retrieve test results, users can utilize the Endpoint Test Data endpoints. The URLs for these API test data endpoints are provided within the test definition output when an instant scheduled test is created. Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/thousandeyes-sdk-endpoint-instant-tests/src/thousandeyes_sdk/endpoint_instant_tests/models/validation_error_item.py b/thousandeyes-sdk-endpoint-instant-tests/src/thousandeyes_sdk/endpoint_instant_tests/models/validation_error_item.py index 4a15480e..61b78fe9 100644 --- a/thousandeyes-sdk-endpoint-instant-tests/src/thousandeyes_sdk/endpoint_instant_tests/models/validation_error_item.py +++ b/thousandeyes-sdk-endpoint-instant-tests/src/thousandeyes_sdk/endpoint_instant_tests/models/validation_error_item.py @@ -3,7 +3,7 @@ """ Endpoint Instant Scheduled Tests API - You can create and execute a new endpoint instant scheduled test within ThousandEyes using this API. The test parameters are specified in the `POST` data. The following applies to the Endpoint Instant Scheduled Tests API: * To initiate the creation and execution of an instant scheduled test, the user must possess the `Edit endpoint tests` permission. * Upon successful creation of an instant scheduled test, the API responds with an HTTP/201 CREATED status code and return the test definition. * It's important to note that the response does not include the results of the instant scheduled test. To retrieve test results, users can utilize the Endpoint Test Data endpoints. The URLs for these API test data endpoints are provided within the test definition output when an instant scheduled test is created. + You can create and execute a new endpoint instant scheduled test within ThousandEyes using this API. The test parameters are specified in the `POST` data. The following applies to the Endpoint Instant Scheduled Tests API: * To initiate the creation and execution of an instant scheduled test, the user must possess the `Edit endpoint tests` permission. * Upon successful creation of an instant scheduled test, the API responds with an HTTP/201 CREATED status code and return the test definition. * It's important to note that the response does not include the results of the instant scheduled test. To retrieve test results, users can utilize the Endpoint Test Data endpoints. The URLs for these API test data endpoints are provided within the test definition output when an instant scheduled test is created. Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/thousandeyes-sdk-endpoint-instant-tests/test/test_agent_to_server_endpoint_instant_scheduled_tests_api.py b/thousandeyes-sdk-endpoint-instant-tests/test/test_agent_to_server_endpoint_instant_scheduled_tests_api.py index 5ed04a57..670840ff 100644 --- a/thousandeyes-sdk-endpoint-instant-tests/test/test_agent_to_server_endpoint_instant_scheduled_tests_api.py +++ b/thousandeyes-sdk-endpoint-instant-tests/test/test_agent_to_server_endpoint_instant_scheduled_tests_api.py @@ -3,7 +3,7 @@ """ Endpoint Instant Scheduled Tests API - You can create and execute a new endpoint instant scheduled test within ThousandEyes using this API. The test parameters are specified in the `POST` data. The following applies to the Endpoint Instant Scheduled Tests API: * To initiate the creation and execution of an instant scheduled test, the user must possess the `Edit endpoint tests` permission. * Upon successful creation of an instant scheduled test, the API responds with an HTTP/201 CREATED status code and return the test definition. * It's important to note that the response does not include the results of the instant scheduled test. To retrieve test results, users can utilize the Endpoint Test Data endpoints. The URLs for these API test data endpoints are provided within the test definition output when an instant scheduled test is created. + You can create and execute a new endpoint instant scheduled test within ThousandEyes using this API. The test parameters are specified in the `POST` data. The following applies to the Endpoint Instant Scheduled Tests API: * To initiate the creation and execution of an instant scheduled test, the user must possess the `Edit endpoint tests` permission. * Upon successful creation of an instant scheduled test, the API responds with an HTTP/201 CREATED status code and return the test definition. * It's important to note that the response does not include the results of the instant scheduled test. To retrieve test results, users can utilize the Endpoint Test Data endpoints. The URLs for these API test data endpoints are provided within the test definition output when an instant scheduled test is created. Generated by OpenAPI Generator (https://openapi-generator.tech) @@ -36,6 +36,7 @@ class TestAgentToServerEndpointInstantScheduledTestsApi(unittest.TestCase): "ipVersion" : "V4_ONLY", "port" : 443, "agentSelectorType" : "all-agents", + "tagIds" : [ "c6b78e57-81a2-4c5f-a11a-d96c3c664d55", "5aeab5d5-0d34-4d44-a7ac-fb440185295c" ], "maxMachines" : 25, "serverName" : "www.example.com", "endpointAgentLabels" : [ "567", "214" ], diff --git a/thousandeyes-sdk-endpoint-instant-tests/test/test_http_server_endpoint_instant_scheduled_tests_api.py b/thousandeyes-sdk-endpoint-instant-tests/test/test_http_server_endpoint_instant_scheduled_tests_api.py index fa8af5dc..b322d96d 100644 --- a/thousandeyes-sdk-endpoint-instant-tests/test/test_http_server_endpoint_instant_scheduled_tests_api.py +++ b/thousandeyes-sdk-endpoint-instant-tests/test/test_http_server_endpoint_instant_scheduled_tests_api.py @@ -3,7 +3,7 @@ """ Endpoint Instant Scheduled Tests API - You can create and execute a new endpoint instant scheduled test within ThousandEyes using this API. The test parameters are specified in the `POST` data. The following applies to the Endpoint Instant Scheduled Tests API: * To initiate the creation and execution of an instant scheduled test, the user must possess the `Edit endpoint tests` permission. * Upon successful creation of an instant scheduled test, the API responds with an HTTP/201 CREATED status code and return the test definition. * It's important to note that the response does not include the results of the instant scheduled test. To retrieve test results, users can utilize the Endpoint Test Data endpoints. The URLs for these API test data endpoints are provided within the test definition output when an instant scheduled test is created. + You can create and execute a new endpoint instant scheduled test within ThousandEyes using this API. The test parameters are specified in the `POST` data. The following applies to the Endpoint Instant Scheduled Tests API: * To initiate the creation and execution of an instant scheduled test, the user must possess the `Edit endpoint tests` permission. * Upon successful creation of an instant scheduled test, the API responds with an HTTP/201 CREATED status code and return the test definition. * It's important to note that the response does not include the results of the instant scheduled test. To retrieve test results, users can utilize the Endpoint Test Data endpoints. The URLs for these API test data endpoints are provided within the test definition output when an instant scheduled test is created. Generated by OpenAPI Generator (https://openapi-generator.tech) @@ -35,6 +35,7 @@ class TestHTTPServerEndpointInstantScheduledTestsApi(unittest.TestCase): "verifyCertificate" : true, "hasPing" : true, "agentSelectorType" : "all-agents", + "tagIds" : [ "c6b78e57-81a2-4c5f-a11a-d96c3c664d55", "5aeab5d5-0d34-4d44-a7ac-fb440185295c" ], "maxMachines" : 25, "httpTimeLimit" : 5000, "networkMeasurements" : true, diff --git a/thousandeyes-sdk-endpoint-instant-tests/test/test_run_endpoint_instant_scheduled_tests_api.py b/thousandeyes-sdk-endpoint-instant-tests/test/test_run_endpoint_instant_scheduled_tests_api.py index c92701de..1b191f4b 100644 --- a/thousandeyes-sdk-endpoint-instant-tests/test/test_run_endpoint_instant_scheduled_tests_api.py +++ b/thousandeyes-sdk-endpoint-instant-tests/test/test_run_endpoint_instant_scheduled_tests_api.py @@ -3,7 +3,7 @@ """ Endpoint Instant Scheduled Tests API - You can create and execute a new endpoint instant scheduled test within ThousandEyes using this API. The test parameters are specified in the `POST` data. The following applies to the Endpoint Instant Scheduled Tests API: * To initiate the creation and execution of an instant scheduled test, the user must possess the `Edit endpoint tests` permission. * Upon successful creation of an instant scheduled test, the API responds with an HTTP/201 CREATED status code and return the test definition. * It's important to note that the response does not include the results of the instant scheduled test. To retrieve test results, users can utilize the Endpoint Test Data endpoints. The URLs for these API test data endpoints are provided within the test definition output when an instant scheduled test is created. + You can create and execute a new endpoint instant scheduled test within ThousandEyes using this API. The test parameters are specified in the `POST` data. The following applies to the Endpoint Instant Scheduled Tests API: * To initiate the creation and execution of an instant scheduled test, the user must possess the `Edit endpoint tests` permission. * Upon successful creation of an instant scheduled test, the API responds with an HTTP/201 CREATED status code and return the test definition. * It's important to note that the response does not include the results of the instant scheduled test. To retrieve test results, users can utilize the Endpoint Test Data endpoints. The URLs for these API test data endpoints are provided within the test definition output when an instant scheduled test is created. Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/thousandeyes-sdk-endpoint-labels/README.md b/thousandeyes-sdk-endpoint-labels/README.md index a1614b37..5cff787f 100644 --- a/thousandeyes-sdk-endpoint-labels/README.md +++ b/thousandeyes-sdk-endpoint-labels/README.md @@ -4,7 +4,7 @@ Manage labels applied to endpoint agents using this API. This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project: -- API version: 7.0.84 +- API version: 7.0.92 - Generator version: 7.6.0 - Build package: com.thousandeyes.api.codegen.ThousandeyesPythonGenerator diff --git a/thousandeyes-sdk-endpoint-test-results/.openapi-generator/FILES b/thousandeyes-sdk-endpoint-test-results/.openapi-generator/FILES index b7653937..7dc3f49d 100644 --- a/thousandeyes-sdk-endpoint-test-results/.openapi-generator/FILES +++ b/thousandeyes-sdk-endpoint-test-results/.openapi-generator/FILES @@ -18,6 +18,7 @@ docs/DynamicTestLinks.md docs/DynamicTestSelfLink.md docs/EndpointAgentLabelsSelectorConfig.md docs/EndpointAgentSelectorConfig.md +docs/EndpointAgentTagsSelectorConfig.md docs/EndpointAgentToServerTest.md docs/EndpointAllAgentsSelectorConfig.md docs/EndpointBrowser.md @@ -192,6 +193,7 @@ src/thousandeyes_sdk/endpoint_test_results/models/dynamic_test_links.py src/thousandeyes_sdk/endpoint_test_results/models/dynamic_test_self_link.py src/thousandeyes_sdk/endpoint_test_results/models/endpoint_agent_labels_selector_config.py src/thousandeyes_sdk/endpoint_test_results/models/endpoint_agent_selector_config.py +src/thousandeyes_sdk/endpoint_test_results/models/endpoint_agent_tags_selector_config.py src/thousandeyes_sdk/endpoint_test_results/models/endpoint_agent_to_server_test.py src/thousandeyes_sdk/endpoint_test_results/models/endpoint_all_agents_selector_config.py src/thousandeyes_sdk/endpoint_test_results/models/endpoint_browser.py diff --git a/thousandeyes-sdk-endpoint-test-results/README.md b/thousandeyes-sdk-endpoint-test-results/README.md index 7e13b752..88f18f45 100644 --- a/thousandeyes-sdk-endpoint-test-results/README.md +++ b/thousandeyes-sdk-endpoint-test-results/README.md @@ -3,7 +3,7 @@ Retrieve results for scheduled and dynamic tests on endpoint agents. This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project: -- API version: 7.0.84 +- API version: 7.0.92 - Generator version: 7.6.0 - Build package: com.thousandeyes.api.codegen.ThousandeyesPythonGenerator @@ -139,6 +139,7 @@ Class | Method | HTTP request | Description - [DynamicTestSelfLink](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-endpoint-test-results/docs/DynamicTestSelfLink.md) - [EndpointAgentLabelsSelectorConfig](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-endpoint-test-results/docs/EndpointAgentLabelsSelectorConfig.md) - [EndpointAgentSelectorConfig](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-endpoint-test-results/docs/EndpointAgentSelectorConfig.md) + - [EndpointAgentTagsSelectorConfig](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-endpoint-test-results/docs/EndpointAgentTagsSelectorConfig.md) - [EndpointAgentToServerTest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-endpoint-test-results/docs/EndpointAgentToServerTest.md) - [EndpointAllAgentsSelectorConfig](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-endpoint-test-results/docs/EndpointAllAgentsSelectorConfig.md) - [EndpointBrowser](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-endpoint-test-results/docs/EndpointBrowser.md) diff --git a/thousandeyes-sdk-endpoint-test-results/docs/BatteryMetrics.md b/thousandeyes-sdk-endpoint-test-results/docs/BatteryMetrics.md index 3ba65639..61d9d906 100644 --- a/thousandeyes-sdk-endpoint-test-results/docs/BatteryMetrics.md +++ b/thousandeyes-sdk-endpoint-test-results/docs/BatteryMetrics.md @@ -6,6 +6,7 @@ Battery metrics for the endpoint agent. Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- +**battery_health_normalized_percent** | **float** | Battery health as a normalized percentage (0-1). | [optional] **battery_level** | [**BatteryLevel**](BatteryLevel.md) | | **battery_level_normalized_percent** | **float** | Battery level as a normalized percentage (0-1). | diff --git a/thousandeyes-sdk-endpoint-test-results/docs/DynamicEndpointTestWebex.md b/thousandeyes-sdk-endpoint-test-results/docs/DynamicEndpointTestWebex.md index 1db540c4..7093c191 100644 --- a/thousandeyes-sdk-endpoint-test-results/docs/DynamicEndpointTestWebex.md +++ b/thousandeyes-sdk-endpoint-test-results/docs/DynamicEndpointTestWebex.md @@ -9,6 +9,7 @@ Name | Type | Description | Notes **conference_id** | **str** | Webex conference ID. | [optional] [readonly] **correlation_id** | **str** | Webex conference correlation ID. | [optional] [readonly] **local_sip_session_id** | **str** | Webex calling local sip session ID. | [optional] [readonly] +**meeting_app** | **str** | RoomOS meeting app. | [optional] [readonly] **remote_sip_session_id** | **str** | Webex calling remote sip session ID. | [optional] [readonly] ## Example diff --git a/thousandeyes-sdk-endpoint-test-results/docs/DynamicEndpointTestsDataSearchFilter.md b/thousandeyes-sdk-endpoint-test-results/docs/DynamicEndpointTestsDataSearchFilter.md index 39515862..b0909c79 100644 --- a/thousandeyes-sdk-endpoint-test-results/docs/DynamicEndpointTestsDataSearchFilter.md +++ b/thousandeyes-sdk-endpoint-test-results/docs/DynamicEndpointTestsDataSearchFilter.md @@ -7,7 +7,9 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **agent_id** | **List[str]** | Filter using the `agent-id`. | [optional] **user_principal_name** | **List[str]** | Filters results based on an array of `userPrincipalName` values. | [optional] -**webex_conference_id** | **List[str]** | Filter using the `conference-id` of the webex call. | [optional] +**webex_conference_id** | **List[str]** | Filter using the `conference-id` of the Webex call. | [optional] +**webex_correlation_id** | **List[str]** | Filter using the `correlation-id` of the Webex call. | [optional] +**webex_local_sip_session_id** | **List[str]** | Filter using the `local-sip-session-id` of the Webex call. | [optional] ## Example diff --git a/thousandeyes-sdk-endpoint-test-results/docs/EndpointAgentLabelsSelectorConfig.md b/thousandeyes-sdk-endpoint-test-results/docs/EndpointAgentLabelsSelectorConfig.md index 5a771cd4..b6abd0ff 100644 --- a/thousandeyes-sdk-endpoint-test-results/docs/EndpointAgentLabelsSelectorConfig.md +++ b/thousandeyes-sdk-endpoint-test-results/docs/EndpointAgentLabelsSelectorConfig.md @@ -8,7 +8,8 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **agent_selector_type** | **str** | | **max_machines** | **int** | Maximum number of agents which can execute the test. | [optional] [default to 25] -**endpoint_agent_labels** | **List[str]** | List of endpoint agent label IDs (obtained from `/endpoint/labels` endpoint), required when `agentSelectorType` is set to `agent-labels`. | [optional] +**endpoint_agent_labels** | **List[str]** | Deprecated. Use `tagIds` instead. List of endpoint agent label IDs (obtained from `/endpoint/labels` endpoint), required when `agentSelectorType` is set to `agent-labels`. | [optional] +**tag_ids** | **List[str]** | List of tag IDs (obtained from `/tags` endpoint). | [optional] ## Example diff --git a/thousandeyes-sdk-endpoint-test-results/docs/EndpointAgentSelectorConfig.md b/thousandeyes-sdk-endpoint-test-results/docs/EndpointAgentSelectorConfig.md index c3ec2874..afd17c71 100644 --- a/thousandeyes-sdk-endpoint-test-results/docs/EndpointAgentSelectorConfig.md +++ b/thousandeyes-sdk-endpoint-test-results/docs/EndpointAgentSelectorConfig.md @@ -8,8 +8,9 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **agent_selector_type** | **str** | | **max_machines** | **int** | Maximum number of agents which can execute the test. | [optional] [default to 25] -**endpoint_agent_labels** | **List[str]** | List of endpoint agent label IDs (obtained from `/endpoint/labels` endpoint), required when `agentSelectorType` is set to `agent-labels`. | [optional] **agents** | **List[str]** | List of endpoint agent IDs (obtained from `/endpoint/agents` endpoint). Required when `agentSelectorType` is set to `specific-agent`. | [optional] +**endpoint_agent_labels** | **List[str]** | Deprecated. Use `tagIds` instead. List of endpoint agent label IDs (obtained from `/endpoint/labels` endpoint), required when `agentSelectorType` is set to `agent-labels`. | [optional] +**tag_ids** | **List[str]** | List of tag IDs (obtained from `/tags` endpoint). | [optional] ## Example diff --git a/thousandeyes-sdk-endpoint-test-results/docs/EndpointAgentTagsSelectorConfig.md b/thousandeyes-sdk-endpoint-test-results/docs/EndpointAgentTagsSelectorConfig.md new file mode 100644 index 00000000..b8b33fc4 --- /dev/null +++ b/thousandeyes-sdk-endpoint-test-results/docs/EndpointAgentTagsSelectorConfig.md @@ -0,0 +1,33 @@ +# EndpointAgentTagsSelectorConfig + +Agent tags selection object. + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**agent_selector_type** | **str** | | +**max_machines** | **int** | Maximum number of agents which can execute the test. | [optional] [default to 25] +**endpoint_agent_labels** | **List[str]** | Deprecated. Use `tagIds` instead. List of endpoint agent label IDs (obtained from `/endpoint/labels` endpoint), required when `agentSelectorType` is set to `agent-labels`. | [optional] +**tag_ids** | **List[str]** | List of tag IDs (obtained from `/tags` endpoint). | [optional] + +## Example + +```python +from thousandeyes_sdk.endpoint_test_results.models.endpoint_agent_tags_selector_config import EndpointAgentTagsSelectorConfig + +# TODO update the JSON string below +json = "{}" +# create an instance of EndpointAgentTagsSelectorConfig from a JSON string +endpoint_agent_tags_selector_config_instance = EndpointAgentTagsSelectorConfig.from_json(json) +# print the JSON string representation of the object +print(EndpointAgentTagsSelectorConfig.to_json()) + +# convert the object into a dict +endpoint_agent_tags_selector_config_dict = endpoint_agent_tags_selector_config_instance.to_dict() +# create an instance of EndpointAgentTagsSelectorConfig from a dict +endpoint_agent_tags_selector_config_from_dict = EndpointAgentTagsSelectorConfig.from_dict(endpoint_agent_tags_selector_config_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/thousandeyes-sdk-endpoint-test-results/src/thousandeyes_sdk/endpoint_test_results/__init__.py b/thousandeyes-sdk-endpoint-test-results/src/thousandeyes_sdk/endpoint_test_results/__init__.py index af1412f7..4554e7e9 100644 --- a/thousandeyes-sdk-endpoint-test-results/src/thousandeyes_sdk/endpoint_test_results/__init__.py +++ b/thousandeyes-sdk-endpoint-test-results/src/thousandeyes_sdk/endpoint_test_results/__init__.py @@ -39,6 +39,7 @@ from thousandeyes_sdk.endpoint_test_results.models.dynamic_test_links import Dyn from thousandeyes_sdk.endpoint_test_results.models.dynamic_test_self_link import DynamicTestSelfLink from thousandeyes_sdk.endpoint_test_results.models.endpoint_agent_labels_selector_config import EndpointAgentLabelsSelectorConfig from thousandeyes_sdk.endpoint_test_results.models.endpoint_agent_selector_config import EndpointAgentSelectorConfig +from thousandeyes_sdk.endpoint_test_results.models.endpoint_agent_tags_selector_config import EndpointAgentTagsSelectorConfig from thousandeyes_sdk.endpoint_test_results.models.endpoint_agent_to_server_test import EndpointAgentToServerTest from thousandeyes_sdk.endpoint_test_results.models.endpoint_all_agents_selector_config import EndpointAllAgentsSelectorConfig from thousandeyes_sdk.endpoint_test_results.models.endpoint_browser import EndpointBrowser diff --git a/thousandeyes-sdk-endpoint-test-results/src/thousandeyes_sdk/endpoint_test_results/models/__init__.py b/thousandeyes-sdk-endpoint-test-results/src/thousandeyes_sdk/endpoint_test_results/models/__init__.py index 74d714f1..1185215c 100644 --- a/thousandeyes-sdk-endpoint-test-results/src/thousandeyes_sdk/endpoint_test_results/models/__init__.py +++ b/thousandeyes-sdk-endpoint-test-results/src/thousandeyes_sdk/endpoint_test_results/models/__init__.py @@ -30,6 +30,7 @@ from thousandeyes_sdk.endpoint_test_results.models.dynamic_test_links import Dyn from thousandeyes_sdk.endpoint_test_results.models.dynamic_test_self_link import DynamicTestSelfLink from thousandeyes_sdk.endpoint_test_results.models.endpoint_agent_labels_selector_config import EndpointAgentLabelsSelectorConfig from thousandeyes_sdk.endpoint_test_results.models.endpoint_agent_selector_config import EndpointAgentSelectorConfig +from thousandeyes_sdk.endpoint_test_results.models.endpoint_agent_tags_selector_config import EndpointAgentTagsSelectorConfig from thousandeyes_sdk.endpoint_test_results.models.endpoint_agent_to_server_test import EndpointAgentToServerTest from thousandeyes_sdk.endpoint_test_results.models.endpoint_all_agents_selector_config import EndpointAllAgentsSelectorConfig from thousandeyes_sdk.endpoint_test_results.models.endpoint_browser import EndpointBrowser diff --git a/thousandeyes-sdk-endpoint-test-results/src/thousandeyes_sdk/endpoint_test_results/models/battery_metrics.py b/thousandeyes-sdk-endpoint-test-results/src/thousandeyes_sdk/endpoint_test_results/models/battery_metrics.py index fda56e28..42066737 100644 --- a/thousandeyes-sdk-endpoint-test-results/src/thousandeyes_sdk/endpoint_test_results/models/battery_metrics.py +++ b/thousandeyes-sdk-endpoint-test-results/src/thousandeyes_sdk/endpoint_test_results/models/battery_metrics.py @@ -17,7 +17,7 @@ import re # noqa: F401 import json from pydantic import BaseModel, ConfigDict, Field -from typing import Any, ClassVar, Dict, List, Union +from typing import Any, ClassVar, Dict, List, Optional, Union from typing_extensions import Annotated from thousandeyes_sdk.endpoint_test_results.models.battery_level import BatteryLevel from typing import Optional, Set @@ -27,9 +27,10 @@ class BatteryMetrics(BaseModel): """ Battery metrics for the endpoint agent. """ # noqa: E501 + battery_health_normalized_percent: Optional[Union[Annotated[float, Field(le=1, strict=True, ge=0)], Annotated[int, Field(le=1, strict=True, ge=0)]]] = Field(default=None, description="Battery health as a normalized percentage (0-1).", alias="batteryHealthNormalizedPercent") battery_level: BatteryLevel = Field(alias="batteryLevel") battery_level_normalized_percent: Union[Annotated[float, Field(le=1, strict=True, ge=0)], Annotated[int, Field(le=1, strict=True, ge=0)]] = Field(description="Battery level as a normalized percentage (0-1).", alias="batteryLevelNormalizedPercent") - __properties: ClassVar[List[str]] = ["batteryLevel", "batteryLevelNormalizedPercent"] + __properties: ClassVar[List[str]] = ["batteryHealthNormalizedPercent", "batteryLevel", "batteryLevelNormalizedPercent"] model_config = ConfigDict( populate_by_name=True, @@ -83,6 +84,7 @@ class BatteryMetrics(BaseModel): return cls.model_validate(obj) _obj = cls.model_validate({ + "batteryHealthNormalizedPercent": obj.get("batteryHealthNormalizedPercent"), "batteryLevel": obj.get("batteryLevel"), "batteryLevelNormalizedPercent": obj.get("batteryLevelNormalizedPercent") }) diff --git a/thousandeyes-sdk-endpoint-test-results/src/thousandeyes_sdk/endpoint_test_results/models/cpu_utilization.py b/thousandeyes-sdk-endpoint-test-results/src/thousandeyes_sdk/endpoint_test_results/models/cpu_utilization.py index e2e29a08..3f5f0936 100644 --- a/thousandeyes-sdk-endpoint-test-results/src/thousandeyes_sdk/endpoint_test_results/models/cpu_utilization.py +++ b/thousandeyes-sdk-endpoint-test-results/src/thousandeyes_sdk/endpoint_test_results/models/cpu_utilization.py @@ -26,11 +26,11 @@ class CpuUtilization(BaseModel): """ CpuUtilization """ # noqa: E501 - min: Optional[Union[Annotated[float, Field(le=1.0, strict=True, ge=0.0)], Annotated[int, Field(le=1, strict=True, ge=0)]]] = Field(default=None, description="The minimum sampled usage value recorded during the monitored period.") - max: Optional[Union[Annotated[float, Field(le=1.0, strict=True, ge=0.0)], Annotated[int, Field(le=1, strict=True, ge=0)]]] = Field(default=None, description="The maximum sampled usage value recorded during the monitored period.") - mean: Optional[Union[Annotated[float, Field(le=1.0, strict=True, ge=0.0)], Annotated[int, Field(le=1, strict=True, ge=0)]]] = Field(default=None, description="The mean (average) sampled usage value recorded during the monitored period.") - median: Optional[Union[Annotated[float, Field(le=1.0, strict=True, ge=0.0)], Annotated[int, Field(le=1, strict=True, ge=0)]]] = Field(default=None, description="The median sampled usage value recorded during the monitored period.") - std_dev: Optional[Union[Annotated[float, Field(le=1.0, strict=True, ge=0.0)], Annotated[int, Field(le=1, strict=True, ge=0)]]] = Field(default=None, description="The standard deviation of sampled usage values recorded during the monitored period.", alias="stdDev") + min: Optional[Union[Annotated[float, Field(le=1, strict=True, ge=0)], Annotated[int, Field(le=1, strict=True, ge=0)]]] = Field(default=None, description="The minimum sampled usage value recorded during the monitored period.") + max: Optional[Union[Annotated[float, Field(le=1, strict=True, ge=0)], Annotated[int, Field(le=1, strict=True, ge=0)]]] = Field(default=None, description="The maximum sampled usage value recorded during the monitored period.") + mean: Optional[Union[Annotated[float, Field(le=1, strict=True, ge=0)], Annotated[int, Field(le=1, strict=True, ge=0)]]] = Field(default=None, description="The mean (average) sampled usage value recorded during the monitored period.") + median: Optional[Union[Annotated[float, Field(le=1, strict=True, ge=0)], Annotated[int, Field(le=1, strict=True, ge=0)]]] = Field(default=None, description="The median sampled usage value recorded during the monitored period.") + std_dev: Optional[Union[Annotated[float, Field(le=1, strict=True, ge=0)], Annotated[int, Field(le=1, strict=True, ge=0)]]] = Field(default=None, description="The standard deviation of sampled usage values recorded during the monitored period.", alias="stdDev") count: Optional[StrictInt] = Field(default=None, description="The total number of samples collected during the monitored period.") __properties: ClassVar[List[str]] = ["min", "max", "mean", "median", "stdDev", "count"] diff --git a/thousandeyes-sdk-endpoint-test-results/src/thousandeyes_sdk/endpoint_test_results/models/dynamic_endpoint_test_webex.py b/thousandeyes-sdk-endpoint-test-results/src/thousandeyes_sdk/endpoint_test_results/models/dynamic_endpoint_test_webex.py index 58255da2..6ae174b5 100644 --- a/thousandeyes-sdk-endpoint-test-results/src/thousandeyes_sdk/endpoint_test_results/models/dynamic_endpoint_test_webex.py +++ b/thousandeyes-sdk-endpoint-test-results/src/thousandeyes_sdk/endpoint_test_results/models/dynamic_endpoint_test_webex.py @@ -28,8 +28,9 @@ class DynamicEndpointTestWebex(BaseModel): conference_id: Optional[StrictStr] = Field(default=None, description="Webex conference ID.", alias="conferenceId") correlation_id: Optional[StrictStr] = Field(default=None, description="Webex conference correlation ID.", alias="correlationId") local_sip_session_id: Optional[StrictStr] = Field(default=None, description="Webex calling local sip session ID.", alias="localSipSessionId") + meeting_app: Optional[StrictStr] = Field(default=None, description="RoomOS meeting app.", alias="meetingApp") remote_sip_session_id: Optional[StrictStr] = Field(default=None, description="Webex calling remote sip session ID.", alias="remoteSipSessionId") - __properties: ClassVar[List[str]] = ["conferenceId", "correlationId", "localSipSessionId", "remoteSipSessionId"] + __properties: ClassVar[List[str]] = ["conferenceId", "correlationId", "localSipSessionId", "meetingApp", "remoteSipSessionId"] model_config = ConfigDict( populate_by_name=True, @@ -66,11 +67,13 @@ class DynamicEndpointTestWebex(BaseModel): * 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([ "conference_id", "correlation_id", "local_sip_session_id", + "meeting_app", "remote_sip_session_id", ]) @@ -94,6 +97,7 @@ class DynamicEndpointTestWebex(BaseModel): "conferenceId": obj.get("conferenceId"), "correlationId": obj.get("correlationId"), "localSipSessionId": obj.get("localSipSessionId"), + "meetingApp": obj.get("meetingApp"), "remoteSipSessionId": obj.get("remoteSipSessionId") }) return _obj diff --git a/thousandeyes-sdk-endpoint-test-results/src/thousandeyes_sdk/endpoint_test_results/models/dynamic_endpoint_tests_data_search_filter.py b/thousandeyes-sdk-endpoint-test-results/src/thousandeyes_sdk/endpoint_test_results/models/dynamic_endpoint_tests_data_search_filter.py index befb4651..78f1815d 100644 --- a/thousandeyes-sdk-endpoint-test-results/src/thousandeyes_sdk/endpoint_test_results/models/dynamic_endpoint_tests_data_search_filter.py +++ b/thousandeyes-sdk-endpoint-test-results/src/thousandeyes_sdk/endpoint_test_results/models/dynamic_endpoint_tests_data_search_filter.py @@ -27,8 +27,10 @@ class DynamicEndpointTestsDataSearchFilter(BaseModel): """ # noqa: E501 agent_id: Optional[List[StrictStr]] = Field(default=None, description="Filter using the `agent-id`.", alias="agentId") user_principal_name: Optional[List[StrictStr]] = Field(default=None, description="Filters results based on an array of `userPrincipalName` values.", alias="userPrincipalName") - webex_conference_id: Optional[List[StrictStr]] = Field(default=None, description="Filter using the `conference-id` of the webex call.", alias="webexConferenceId") - __properties: ClassVar[List[str]] = ["agentId", "userPrincipalName", "webexConferenceId"] + webex_conference_id: Optional[List[StrictStr]] = Field(default=None, description="Filter using the `conference-id` of the Webex call.", alias="webexConferenceId") + webex_correlation_id: Optional[List[StrictStr]] = Field(default=None, description="Filter using the `correlation-id` of the Webex call.", alias="webexCorrelationId") + webex_local_sip_session_id: Optional[List[StrictStr]] = Field(default=None, description="Filter using the `local-sip-session-id` of the Webex call.", alias="webexLocalSipSessionId") + __properties: ClassVar[List[str]] = ["agentId", "userPrincipalName", "webexConferenceId", "webexCorrelationId", "webexLocalSipSessionId"] model_config = ConfigDict( populate_by_name=True, @@ -84,7 +86,9 @@ class DynamicEndpointTestsDataSearchFilter(BaseModel): _obj = cls.model_validate({ "agentId": obj.get("agentId"), "userPrincipalName": obj.get("userPrincipalName"), - "webexConferenceId": obj.get("webexConferenceId") + "webexConferenceId": obj.get("webexConferenceId"), + "webexCorrelationId": obj.get("webexCorrelationId"), + "webexLocalSipSessionId": obj.get("webexLocalSipSessionId") }) return _obj diff --git a/thousandeyes-sdk-endpoint-test-results/src/thousandeyes_sdk/endpoint_test_results/models/endpoint_agent_labels_selector_config.py b/thousandeyes-sdk-endpoint-test-results/src/thousandeyes_sdk/endpoint_test_results/models/endpoint_agent_labels_selector_config.py index c12d8c87..01dba8bb 100644 --- a/thousandeyes-sdk-endpoint-test-results/src/thousandeyes_sdk/endpoint_test_results/models/endpoint_agent_labels_selector_config.py +++ b/thousandeyes-sdk-endpoint-test-results/src/thousandeyes_sdk/endpoint_test_results/models/endpoint_agent_labels_selector_config.py @@ -28,8 +28,9 @@ class EndpointAgentLabelsSelectorConfig(BaseModel): """ # noqa: E501 agent_selector_type: Annotated[str, Field(strict=True)] = Field(alias="agentSelectorType") max_machines: Optional[StrictInt] = Field(default=25, description="Maximum number of agents which can execute the test.", alias="maxMachines") - endpoint_agent_labels: Optional[List[StrictStr]] = Field(default=None, description="List of endpoint agent label IDs (obtained from `/endpoint/labels` endpoint), required when `agentSelectorType` is set to `agent-labels`.", alias="endpointAgentLabels") - __properties: ClassVar[List[str]] = ["agentSelectorType", "maxMachines", "endpointAgentLabels"] + endpoint_agent_labels: Optional[List[StrictStr]] = Field(default=None, description="Deprecated. Use `tagIds` instead. List of endpoint agent label IDs (obtained from `/endpoint/labels` endpoint), required when `agentSelectorType` is set to `agent-labels`. ", alias="endpointAgentLabels") + tag_ids: Optional[List[StrictStr]] = Field(default=None, description="List of tag IDs (obtained from `/tags` endpoint).", alias="tagIds") + __properties: ClassVar[List[str]] = ["agentSelectorType", "maxMachines", "endpointAgentLabels", "tagIds"] @field_validator('agent_selector_type') def agent_selector_type_validate_regular_expression(cls, value): @@ -92,7 +93,8 @@ class EndpointAgentLabelsSelectorConfig(BaseModel): _obj = cls.model_validate({ "agentSelectorType": obj.get("agentSelectorType"), "maxMachines": obj.get("maxMachines") if obj.get("maxMachines") is not None else 25, - "endpointAgentLabels": obj.get("endpointAgentLabels") + "endpointAgentLabels": obj.get("endpointAgentLabels"), + "tagIds": obj.get("tagIds") }) return _obj diff --git a/thousandeyes-sdk-endpoint-test-results/src/thousandeyes_sdk/endpoint_test_results/models/endpoint_agent_selector_config.py b/thousandeyes-sdk-endpoint-test-results/src/thousandeyes_sdk/endpoint_test_results/models/endpoint_agent_selector_config.py index 0a10e051..c4f1ee33 100644 --- a/thousandeyes-sdk-endpoint-test-results/src/thousandeyes_sdk/endpoint_test_results/models/endpoint_agent_selector_config.py +++ b/thousandeyes-sdk-endpoint-test-results/src/thousandeyes_sdk/endpoint_test_results/models/endpoint_agent_selector_config.py @@ -17,13 +17,14 @@ import pprint from pydantic import BaseModel, ConfigDict, Field, StrictStr, ValidationError, field_validator from typing import Any, List, Optional from thousandeyes_sdk.endpoint_test_results.models.endpoint_agent_labels_selector_config import EndpointAgentLabelsSelectorConfig +from thousandeyes_sdk.endpoint_test_results.models.endpoint_agent_tags_selector_config import EndpointAgentTagsSelectorConfig from thousandeyes_sdk.endpoint_test_results.models.endpoint_all_agents_selector_config import EndpointAllAgentsSelectorConfig from thousandeyes_sdk.endpoint_test_results.models.endpoint_specific_agents_selector_config import EndpointSpecificAgentsSelectorConfig from pydantic import StrictStr, Field, model_serializer from typing import Union, List, Set, Optional, Dict from typing_extensions import Literal, Self -ENDPOINTAGENTSELECTORCONFIG_ONE_OF_SCHEMAS = ["EndpointAgentLabelsSelectorConfig", "EndpointAllAgentsSelectorConfig", "EndpointSpecificAgentsSelectorConfig"] +ENDPOINTAGENTSELECTORCONFIG_ONE_OF_SCHEMAS = ["EndpointAgentLabelsSelectorConfig", "EndpointAgentTagsSelectorConfig", "EndpointAllAgentsSelectorConfig", "EndpointSpecificAgentsSelectorConfig"] class EndpointAgentSelectorConfig(BaseModel): """ @@ -31,12 +32,14 @@ class EndpointAgentSelectorConfig(BaseModel): """ # data type: EndpointAllAgentsSelectorConfig oneof_schema_1_validator: Optional[EndpointAllAgentsSelectorConfig] = None - # data type: EndpointAgentLabelsSelectorConfig - oneof_schema_2_validator: Optional[EndpointAgentLabelsSelectorConfig] = None # data type: EndpointSpecificAgentsSelectorConfig - oneof_schema_3_validator: Optional[EndpointSpecificAgentsSelectorConfig] = None - actual_instance: Optional[Union[EndpointAgentLabelsSelectorConfig, EndpointAllAgentsSelectorConfig, EndpointSpecificAgentsSelectorConfig]] = None - one_of_schemas: Set[str] = { "EndpointAgentLabelsSelectorConfig", "EndpointAllAgentsSelectorConfig", "EndpointSpecificAgentsSelectorConfig" } + oneof_schema_2_validator: Optional[EndpointSpecificAgentsSelectorConfig] = None + # data type: EndpointAgentLabelsSelectorConfig + oneof_schema_3_validator: Optional[EndpointAgentLabelsSelectorConfig] = None + # data type: EndpointAgentTagsSelectorConfig + oneof_schema_4_validator: Optional[EndpointAgentTagsSelectorConfig] = None + actual_instance: Optional[Union[EndpointAgentLabelsSelectorConfig, EndpointAgentTagsSelectorConfig, EndpointAllAgentsSelectorConfig, EndpointSpecificAgentsSelectorConfig]] = None + one_of_schemas: Set[str] = { "EndpointAgentLabelsSelectorConfig", "EndpointAgentTagsSelectorConfig", "EndpointAllAgentsSelectorConfig", "EndpointSpecificAgentsSelectorConfig" } model_config = ConfigDict( validate_assignment=True, @@ -67,22 +70,27 @@ class EndpointAgentSelectorConfig(BaseModel): error_messages.append(f"Error! Input type `{type(v)}` is not `EndpointAllAgentsSelectorConfig`") else: match += 1 - # validate data type: EndpointAgentLabelsSelectorConfig - if not isinstance(v, EndpointAgentLabelsSelectorConfig): - error_messages.append(f"Error! Input type `{type(v)}` is not `EndpointAgentLabelsSelectorConfig`") - else: - match += 1 # validate data type: EndpointSpecificAgentsSelectorConfig if not isinstance(v, EndpointSpecificAgentsSelectorConfig): error_messages.append(f"Error! Input type `{type(v)}` is not `EndpointSpecificAgentsSelectorConfig`") else: match += 1 + # validate data type: EndpointAgentLabelsSelectorConfig + if not isinstance(v, EndpointAgentLabelsSelectorConfig): + error_messages.append(f"Error! Input type `{type(v)}` is not `EndpointAgentLabelsSelectorConfig`") + else: + match += 1 + # validate data type: EndpointAgentTagsSelectorConfig + if not isinstance(v, EndpointAgentTagsSelectorConfig): + error_messages.append(f"Error! Input type `{type(v)}` is not `EndpointAgentTagsSelectorConfig`") + else: + match += 1 if match > 1: # more than 1 match - raise ValueError("Multiple matches found when setting `actual_instance` in EndpointAgentSelectorConfig with oneOf schemas: EndpointAgentLabelsSelectorConfig, EndpointAllAgentsSelectorConfig, EndpointSpecificAgentsSelectorConfig. Details: " + ", ".join(error_messages)) + raise ValueError("Multiple matches found when setting `actual_instance` in EndpointAgentSelectorConfig with oneOf schemas: EndpointAgentLabelsSelectorConfig, EndpointAgentTagsSelectorConfig, EndpointAllAgentsSelectorConfig, EndpointSpecificAgentsSelectorConfig. Details: " + ", ".join(error_messages)) elif match == 0: # no match - raise ValueError("No match found when setting `actual_instance` in EndpointAgentSelectorConfig with oneOf schemas: EndpointAgentLabelsSelectorConfig, EndpointAllAgentsSelectorConfig, EndpointSpecificAgentsSelectorConfig. Details: " + ", ".join(error_messages)) + raise ValueError("No match found when setting `actual_instance` in EndpointAgentSelectorConfig with oneOf schemas: EndpointAgentLabelsSelectorConfig, EndpointAgentTagsSelectorConfig, EndpointAllAgentsSelectorConfig, EndpointSpecificAgentsSelectorConfig. Details: " + ", ".join(error_messages)) else: return v @@ -103,25 +111,31 @@ class EndpointAgentSelectorConfig(BaseModel): match += 1 except (ValidationError, ValueError) as e: error_messages.append(str(e)) - # deserialize data into EndpointAgentLabelsSelectorConfig - try: - instance.actual_instance = EndpointAgentLabelsSelectorConfig.from_json(json_str) - match += 1 - except (ValidationError, ValueError) as e: - error_messages.append(str(e)) # deserialize data into EndpointSpecificAgentsSelectorConfig try: instance.actual_instance = EndpointSpecificAgentsSelectorConfig.from_json(json_str) match += 1 except (ValidationError, ValueError) as e: error_messages.append(str(e)) + # deserialize data into EndpointAgentLabelsSelectorConfig + try: + instance.actual_instance = EndpointAgentLabelsSelectorConfig.from_json(json_str) + match += 1 + except (ValidationError, ValueError) as e: + error_messages.append(str(e)) + # deserialize data into EndpointAgentTagsSelectorConfig + try: + instance.actual_instance = EndpointAgentTagsSelectorConfig.from_json(json_str) + 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 EndpointAgentSelectorConfig with oneOf schemas: EndpointAgentLabelsSelectorConfig, EndpointAllAgentsSelectorConfig, EndpointSpecificAgentsSelectorConfig. Details: " + ", ".join(error_messages)) + raise ValueError("Multiple matches found when deserializing the JSON string into EndpointAgentSelectorConfig with oneOf schemas: EndpointAgentLabelsSelectorConfig, EndpointAgentTagsSelectorConfig, EndpointAllAgentsSelectorConfig, EndpointSpecificAgentsSelectorConfig. Details: " + ", ".join(error_messages)) elif match == 0: # no match - raise ValueError("No match found when deserializing the JSON string into EndpointAgentSelectorConfig with oneOf schemas: EndpointAgentLabelsSelectorConfig, EndpointAllAgentsSelectorConfig, EndpointSpecificAgentsSelectorConfig. Details: " + ", ".join(error_messages)) + raise ValueError("No match found when deserializing the JSON string into EndpointAgentSelectorConfig with oneOf schemas: EndpointAgentLabelsSelectorConfig, EndpointAgentTagsSelectorConfig, EndpointAllAgentsSelectorConfig, EndpointSpecificAgentsSelectorConfig. Details: " + ", ".join(error_messages)) else: return instance @@ -139,7 +153,7 @@ class EndpointAgentSelectorConfig(BaseModel): else: return json.dumps(self.actual_instance) - def to_dict(self) -> Optional[Union[Dict[str, Any], EndpointAgentLabelsSelectorConfig, EndpointAllAgentsSelectorConfig, EndpointSpecificAgentsSelectorConfig]]: + def to_dict(self) -> Optional[Union[Dict[str, Any], EndpointAgentLabelsSelectorConfig, EndpointAgentTagsSelectorConfig, EndpointAllAgentsSelectorConfig, EndpointSpecificAgentsSelectorConfig]]: """Returns the dict representation of the actual instance""" if self.actual_instance is None: return None diff --git a/thousandeyes-sdk-endpoint-test-results/src/thousandeyes_sdk/endpoint_test_results/models/endpoint_agent_tags_selector_config.py b/thousandeyes-sdk-endpoint-test-results/src/thousandeyes_sdk/endpoint_test_results/models/endpoint_agent_tags_selector_config.py new file mode 100644 index 00000000..61e4025d --- /dev/null +++ b/thousandeyes-sdk-endpoint-test-results/src/thousandeyes_sdk/endpoint_test_results/models/endpoint_agent_tags_selector_config.py @@ -0,0 +1,101 @@ +# coding: utf-8 + +""" + Endpoint Test Results API + + Retrieve results for scheduled and dynamic tests on endpoint agents. + + 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_extensions import Annotated +from typing import Optional, Set +from typing_extensions import Self + +class EndpointAgentTagsSelectorConfig(BaseModel): + """ + Agent tags selection object. + """ # noqa: E501 + agent_selector_type: Annotated[str, Field(strict=True)] = Field(alias="agentSelectorType") + max_machines: Optional[StrictInt] = Field(default=25, description="Maximum number of agents which can execute the test.", alias="maxMachines") + endpoint_agent_labels: Optional[List[StrictStr]] = Field(default=None, description="Deprecated. Use `tagIds` instead. List of endpoint agent label IDs (obtained from `/endpoint/labels` endpoint), required when `agentSelectorType` is set to `agent-labels`. ", alias="endpointAgentLabels") + tag_ids: Optional[List[StrictStr]] = Field(default=None, description="List of tag IDs (obtained from `/tags` endpoint).", alias="tagIds") + __properties: ClassVar[List[str]] = ["agentSelectorType", "maxMachines", "endpointAgentLabels", "tagIds"] + + @field_validator('agent_selector_type') + def agent_selector_type_validate_regular_expression(cls, value): + """Validates the regular expression""" + if not re.match(r"^agent-tags$", value): + raise ValueError(r"must validate the regular expression /^agent-tags$/") + return value + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + extra="allow", + ) + + + 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 self.model_dump_json(by_alias=True, exclude_unset=True, exclude_none=True) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of EndpointAgentTagsSelectorConfig 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 EndpointAgentTagsSelectorConfig from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "agentSelectorType": obj.get("agentSelectorType"), + "maxMachines": obj.get("maxMachines") if obj.get("maxMachines") is not None else 25, + "endpointAgentLabels": obj.get("endpointAgentLabels"), + "tagIds": obj.get("tagIds") + }) + return _obj + + diff --git a/thousandeyes-sdk-endpoint-test-results/src/thousandeyes_sdk/endpoint_test_results/models/real_user_endpoint_test.py b/thousandeyes-sdk-endpoint-test-results/src/thousandeyes_sdk/endpoint_test_results/models/real_user_endpoint_test.py index 73e7653a..bb97fa60 100644 --- a/thousandeyes-sdk-endpoint-test-results/src/thousandeyes_sdk/endpoint_test_results/models/real_user_endpoint_test.py +++ b/thousandeyes-sdk-endpoint-test-results/src/thousandeyes_sdk/endpoint_test_results/models/real_user_endpoint_test.py @@ -30,7 +30,7 @@ class RealUserEndpointTest(BaseModel): agent_id: Optional[StrictStr] = Field(default=None, description="Unique ID of endpoint agent, from `/endpoint/agents` endpoint.", alias="agentId") committed: Optional[datetime] = Field(default=None, description="UTC date when endpoint real user test was committed to the controller (ISO date-time format).") var_date: Optional[datetime] = Field(default=None, description="UTC date when endpoint real user test took place (ISO date-time format).", alias="date") - experience_score: Optional[Union[Annotated[float, Field(le=1.0, strict=True, ge=0)], Annotated[int, Field(le=1, strict=True, ge=0)]]] = Field(default=None, description="Score rating a user’s experience when loading a particular page, from 0 (the worst) to 1 (the best). [More details](https://docs.thousandeyes.com/product-documentation/end-user-monitoring/viewing-data/endpoint-agent-views-reference#user-experience-score).", alias="experienceScore") + experience_score: Optional[Union[Annotated[float, Field(le=1, strict=True, ge=0)], Annotated[int, Field(le=1, strict=True, ge=0)]]] = Field(default=None, description="Score rating a user’s experience when loading a particular page, from 0 (the worst) to 1 (the best). [More details](https://docs.thousandeyes.com/product-documentation/end-user-monitoring/viewing-data/endpoint-agent-views-reference#user-experience-score).", alias="experienceScore") number_of_pages: Optional[StrictInt] = Field(default=None, description="Number of web pages visited on target website.", alias="numberOfPages") organization_name: Optional[StrictStr] = Field(default=None, description="Name of the AS organization `sourceAddress` belongs to.", alias="organizationName") port: Optional[StrictInt] = Field(default=None, description="Port used to visit target website.") diff --git a/thousandeyes-sdk-endpoint-test-results/src/thousandeyes_sdk/endpoint_test_results/models/real_user_endpoint_test_base.py b/thousandeyes-sdk-endpoint-test-results/src/thousandeyes_sdk/endpoint_test_results/models/real_user_endpoint_test_base.py index 2d0dc143..2997cc83 100644 --- a/thousandeyes-sdk-endpoint-test-results/src/thousandeyes_sdk/endpoint_test_results/models/real_user_endpoint_test_base.py +++ b/thousandeyes-sdk-endpoint-test-results/src/thousandeyes_sdk/endpoint_test_results/models/real_user_endpoint_test_base.py @@ -30,7 +30,7 @@ class RealUserEndpointTestBase(BaseModel): agent_id: Optional[StrictStr] = Field(default=None, description="Unique ID of endpoint agent, from `/endpoint/agents` endpoint.", alias="agentId") committed: Optional[datetime] = Field(default=None, description="UTC date when endpoint real user test was committed to the controller (ISO date-time format).") var_date: Optional[datetime] = Field(default=None, description="UTC date when endpoint real user test took place (ISO date-time format).", alias="date") - experience_score: Optional[Union[Annotated[float, Field(le=1.0, strict=True, ge=0)], Annotated[int, Field(le=1, strict=True, ge=0)]]] = Field(default=None, description="Score rating a user’s experience when loading a particular page, from 0 (the worst) to 1 (the best). [More details](https://docs.thousandeyes.com/product-documentation/end-user-monitoring/viewing-data/endpoint-agent-views-reference#user-experience-score).", alias="experienceScore") + experience_score: Optional[Union[Annotated[float, Field(le=1, strict=True, ge=0)], Annotated[int, Field(le=1, strict=True, ge=0)]]] = Field(default=None, description="Score rating a user’s experience when loading a particular page, from 0 (the worst) to 1 (the best). [More details](https://docs.thousandeyes.com/product-documentation/end-user-monitoring/viewing-data/endpoint-agent-views-reference#user-experience-score).", alias="experienceScore") number_of_pages: Optional[StrictInt] = Field(default=None, description="Number of web pages visited on target website.", alias="numberOfPages") organization_name: Optional[StrictStr] = Field(default=None, description="Name of the AS organization `sourceAddress` belongs to.", alias="organizationName") port: Optional[StrictInt] = Field(default=None, description="Port used to visit target website.") diff --git a/thousandeyes-sdk-endpoint-test-results/src/thousandeyes_sdk/endpoint_test_results/models/real_user_endpoint_test_detail.py b/thousandeyes-sdk-endpoint-test-results/src/thousandeyes_sdk/endpoint_test_results/models/real_user_endpoint_test_detail.py index 37ed3ec3..103a3931 100644 --- a/thousandeyes-sdk-endpoint-test-results/src/thousandeyes_sdk/endpoint_test_results/models/real_user_endpoint_test_detail.py +++ b/thousandeyes-sdk-endpoint-test-results/src/thousandeyes_sdk/endpoint_test_results/models/real_user_endpoint_test_detail.py @@ -34,7 +34,7 @@ class RealUserEndpointTestDetail(BaseModel): agent_id: Optional[StrictStr] = Field(default=None, description="Unique ID of endpoint agent, from `/endpoint/agents` endpoint.", alias="agentId") committed: Optional[datetime] = Field(default=None, description="UTC date when endpoint real user test was committed to the controller (ISO date-time format).") var_date: Optional[datetime] = Field(default=None, description="UTC date when endpoint real user test took place (ISO date-time format).", alias="date") - experience_score: Optional[Union[Annotated[float, Field(le=1.0, strict=True, ge=0)], Annotated[int, Field(le=1, strict=True, ge=0)]]] = Field(default=None, description="Score rating a user’s experience when loading a particular page, from 0 (the worst) to 1 (the best). [More details](https://docs.thousandeyes.com/product-documentation/end-user-monitoring/viewing-data/endpoint-agent-views-reference#user-experience-score).", alias="experienceScore") + experience_score: Optional[Union[Annotated[float, Field(le=1, strict=True, ge=0)], Annotated[int, Field(le=1, strict=True, ge=0)]]] = Field(default=None, description="Score rating a user’s experience when loading a particular page, from 0 (the worst) to 1 (the best). [More details](https://docs.thousandeyes.com/product-documentation/end-user-monitoring/viewing-data/endpoint-agent-views-reference#user-experience-score).", alias="experienceScore") number_of_pages: Optional[StrictInt] = Field(default=None, description="Number of web pages visited on target website.", alias="numberOfPages") organization_name: Optional[StrictStr] = Field(default=None, description="Name of the AS organization `sourceAddress` belongs to.", alias="organizationName") port: Optional[StrictInt] = Field(default=None, description="Port used to visit target website.") diff --git a/thousandeyes-sdk-endpoint-test-results/test/test_http_server_endpoint_scheduled_test_results_api.py b/thousandeyes-sdk-endpoint-test-results/test/test_http_server_endpoint_scheduled_test_results_api.py index b9eb4aeb..84f736ec 100644 --- a/thousandeyes-sdk-endpoint-test-results/test/test_http_server_endpoint_scheduled_test_results_api.py +++ b/thousandeyes-sdk-endpoint-test-results/test/test_http_server_endpoint_scheduled_test_results_api.py @@ -132,6 +132,7 @@ class TestHTTPServerEndpointScheduledTestResultsApi(unittest.TestCase): }, "errorType" : "connect", "batteryMetrics" : { + "batteryHealthNormalizedPercent" : 0.92, "batteryLevel" : "medium", "batteryLevelNormalizedPercent" : 0.3 }, @@ -154,7 +155,7 @@ class TestHTTPServerEndpointScheduledTestResultsApi(unittest.TestCase): "sinr" : 20 }, "score" : { - "applicationScore" : 100.0, + "applicationScore" : 100, "quality" : "great" }, "connectTime" : 2, @@ -259,6 +260,7 @@ class TestHTTPServerEndpointScheduledTestResultsApi(unittest.TestCase): }, "errorType" : "connect", "batteryMetrics" : { + "batteryHealthNormalizedPercent" : 0.92, "batteryLevel" : "medium", "batteryLevelNormalizedPercent" : 0.3 }, @@ -281,7 +283,7 @@ class TestHTTPServerEndpointScheduledTestResultsApi(unittest.TestCase): "sinr" : 20 }, "score" : { - "applicationScore" : 100.0, + "applicationScore" : 100, "quality" : "great" }, "connectTime" : 2, @@ -398,11 +400,11 @@ class TestHTTPServerEndpointScheduledTestResultsApi(unittest.TestCase): "conditionalOperator" : "and", "filters" : [ { "name" : "response-time", - "value" : 10.0, + "value" : 10, "operator" : "gte" }, { "name" : "response-time", - "value" : 10.0, + "value" : 10, "operator" : "gte" } ] } @@ -455,6 +457,7 @@ class TestHTTPServerEndpointScheduledTestResultsApi(unittest.TestCase): }, "errorType" : "connect", "batteryMetrics" : { + "batteryHealthNormalizedPercent" : 0.92, "batteryLevel" : "medium", "batteryLevelNormalizedPercent" : 0.3 }, @@ -477,7 +480,7 @@ class TestHTTPServerEndpointScheduledTestResultsApi(unittest.TestCase): "sinr" : 20 }, "score" : { - "applicationScore" : 100.0, + "applicationScore" : 100, "quality" : "great" }, "connectTime" : 2, @@ -582,6 +585,7 @@ class TestHTTPServerEndpointScheduledTestResultsApi(unittest.TestCase): }, "errorType" : "connect", "batteryMetrics" : { + "batteryHealthNormalizedPercent" : 0.92, "batteryLevel" : "medium", "batteryLevelNormalizedPercent" : 0.3 }, @@ -604,7 +608,7 @@ class TestHTTPServerEndpointScheduledTestResultsApi(unittest.TestCase): "sinr" : 20 }, "score" : { - "applicationScore" : 100.0, + "applicationScore" : 100, "quality" : "great" }, "connectTime" : 2, @@ -721,11 +725,11 @@ class TestHTTPServerEndpointScheduledTestResultsApi(unittest.TestCase): "conditionalOperator" : "and", "filters" : [ { "name" : "response-time", - "value" : 10.0, + "value" : 10, "operator" : "gte" }, { "name" : "response-time", - "value" : 10.0, + "value" : 10, "operator" : "gte" } ] } @@ -778,6 +782,7 @@ class TestHTTPServerEndpointScheduledTestResultsApi(unittest.TestCase): }, "errorType" : "connect", "batteryMetrics" : { + "batteryHealthNormalizedPercent" : 0.92, "batteryLevel" : "medium", "batteryLevelNormalizedPercent" : 0.3 }, @@ -800,7 +805,7 @@ class TestHTTPServerEndpointScheduledTestResultsApi(unittest.TestCase): "sinr" : 20 }, "score" : { - "applicationScore" : 100.0, + "applicationScore" : 100, "quality" : "great" }, "connectTime" : 2, @@ -905,6 +910,7 @@ class TestHTTPServerEndpointScheduledTestResultsApi(unittest.TestCase): }, "errorType" : "connect", "batteryMetrics" : { + "batteryHealthNormalizedPercent" : 0.92, "batteryLevel" : "medium", "batteryLevelNormalizedPercent" : 0.3 }, @@ -927,7 +933,7 @@ class TestHTTPServerEndpointScheduledTestResultsApi(unittest.TestCase): "sinr" : 20 }, "score" : { - "applicationScore" : 100.0, + "applicationScore" : 100, "quality" : "great" }, "connectTime" : 2, diff --git a/thousandeyes-sdk-endpoint-test-results/test/test_local_network_endpoint_test_results_api.py b/thousandeyes-sdk-endpoint-test-results/test/test_local_network_endpoint_test_results_api.py index 39668fa0..41b56423 100644 --- a/thousandeyes-sdk-endpoint-test-results/test/test_local_network_endpoint_test_results_api.py +++ b/thousandeyes-sdk-endpoint-test-results/test/test_local_network_endpoint_test_results_api.py @@ -49,11 +49,11 @@ class TestLocalNetworkEndpointTestResultsApi(unittest.TestCase): "conditionalOperator" : "and", "filters" : [ { "name" : "loss", - "value" : 10.0, + "value" : 10, "operator" : "gte" }, { "name" : "loss", - "value" : 10.0, + "value" : 10, "operator" : "gte" } ] } @@ -87,7 +87,7 @@ class TestLocalNetworkEndpointTestResultsApi(unittest.TestCase): }, "isIcmpBlocked" : true, "gatewayScore" : { - "score" : 100.0, + "score" : 100, "quality" : "great" }, "tcpConnect" : { @@ -97,14 +97,15 @@ class TestLocalNetworkEndpointTestResultsApi(unittest.TestCase): "infoFlags" : [ "TE_INFO_ICMP_BLOCKED_BY_FIREWALL" ] }, "vpnScore" : { - "score" : 100.0, + "score" : 100, "quality" : "great" }, "proxyScore" : { - "score" : 100.0, + "score" : 100, "quality" : "great" }, "batteryMetrics" : { + "batteryHealthNormalizedPercent" : 0.92, "batteryLevel" : "medium", "batteryLevelNormalizedPercent" : 0.3 }, @@ -222,12 +223,12 @@ class TestLocalNetworkEndpointTestResultsApi(unittest.TestCase): } ] }, "connectionScore" : { - "score" : 100.0, + "score" : 100, "quality" : "great" }, "icmpPing" : { "maxRtt" : 66, - "loss" : 1.0, + "loss" : 1, "pktsReceived" : 10, "avgRtt" : 7, "meanDevRtt" : 11, @@ -239,7 +240,7 @@ class TestLocalNetworkEndpointTestResultsApi(unittest.TestCase): "networkTopologyId" : "00160:54c3a4b180c6:1490536500:c7a58c49", "roundId" : 1384309800, "agentScore" : { - "score" : 100.0, + "score" : 100, "quality" : "great" } }, { @@ -250,7 +251,7 @@ class TestLocalNetworkEndpointTestResultsApi(unittest.TestCase): }, "isIcmpBlocked" : true, "gatewayScore" : { - "score" : 100.0, + "score" : 100, "quality" : "great" }, "tcpConnect" : { @@ -260,14 +261,15 @@ class TestLocalNetworkEndpointTestResultsApi(unittest.TestCase): "infoFlags" : [ "TE_INFO_ICMP_BLOCKED_BY_FIREWALL" ] }, "vpnScore" : { - "score" : 100.0, + "score" : 100, "quality" : "great" }, "proxyScore" : { - "score" : 100.0, + "score" : 100, "quality" : "great" }, "batteryMetrics" : { + "batteryHealthNormalizedPercent" : 0.92, "batteryLevel" : "medium", "batteryLevelNormalizedPercent" : 0.3 }, @@ -385,12 +387,12 @@ class TestLocalNetworkEndpointTestResultsApi(unittest.TestCase): } ] }, "connectionScore" : { - "score" : 100.0, + "score" : 100, "quality" : "great" }, "icmpPing" : { "maxRtt" : 66, - "loss" : 1.0, + "loss" : 1, "pktsReceived" : 10, "avgRtt" : 7, "meanDevRtt" : 11, @@ -402,7 +404,7 @@ class TestLocalNetworkEndpointTestResultsApi(unittest.TestCase): "networkTopologyId" : "00160:54c3a4b180c6:1490536500:c7a58c49", "roundId" : 1384309800, "agentScore" : { - "score" : 100.0, + "score" : 100, "quality" : "great" } } ], @@ -471,10 +473,11 @@ class TestLocalNetworkEndpointTestResultsApi(unittest.TestCase): "resolutionTime" : 3 }, "vpnScore" : { - "score" : 100.0, + "score" : 100, "quality" : "great" }, "batteryMetrics" : { + "batteryHealthNormalizedPercent" : 0.92, "batteryLevel" : "medium", "batteryLevelNormalizedPercent" : 0.3 }, @@ -564,12 +567,12 @@ class TestLocalNetworkEndpointTestResultsApi(unittest.TestCase): }, "roundId" : 1384309800, "agentScore" : { - "score" : 100.0, + "score" : 100, "quality" : "great" }, "isIcmpBlocked" : true, "gatewayScore" : { - "score" : 100.0, + "score" : 100, "quality" : "great" }, "tcpConnect" : { @@ -579,7 +582,7 @@ class TestLocalNetworkEndpointTestResultsApi(unittest.TestCase): "infoFlags" : [ "TE_INFO_ICMP_BLOCKED_BY_FIREWALL" ] }, "proxyScore" : { - "score" : 100.0, + "score" : 100, "quality" : "great" }, "coordinates" : { @@ -731,12 +734,12 @@ class TestLocalNetworkEndpointTestResultsApi(unittest.TestCase): } ] }, "connectionScore" : { - "score" : 100.0, + "score" : 100, "quality" : "great" }, "icmpPing" : { "maxRtt" : 66, - "loss" : 1.0, + "loss" : 1, "pktsReceived" : 10, "avgRtt" : 7, "meanDevRtt" : 11, @@ -753,10 +756,11 @@ class TestLocalNetworkEndpointTestResultsApi(unittest.TestCase): "resolutionTime" : 3 }, "vpnScore" : { - "score" : 100.0, + "score" : 100, "quality" : "great" }, "batteryMetrics" : { + "batteryHealthNormalizedPercent" : 0.92, "batteryLevel" : "medium", "batteryLevelNormalizedPercent" : 0.3 }, @@ -846,12 +850,12 @@ class TestLocalNetworkEndpointTestResultsApi(unittest.TestCase): }, "roundId" : 1384309800, "agentScore" : { - "score" : 100.0, + "score" : 100, "quality" : "great" }, "isIcmpBlocked" : true, "gatewayScore" : { - "score" : 100.0, + "score" : 100, "quality" : "great" }, "tcpConnect" : { @@ -861,7 +865,7 @@ class TestLocalNetworkEndpointTestResultsApi(unittest.TestCase): "infoFlags" : [ "TE_INFO_ICMP_BLOCKED_BY_FIREWALL" ] }, "proxyScore" : { - "score" : 100.0, + "score" : 100, "quality" : "great" }, "coordinates" : { @@ -1013,12 +1017,12 @@ class TestLocalNetworkEndpointTestResultsApi(unittest.TestCase): } ] }, "connectionScore" : { - "score" : 100.0, + "score" : 100, "quality" : "great" }, "icmpPing" : { "maxRtt" : 66, - "loss" : 1.0, + "loss" : 1, "pktsReceived" : 10, "avgRtt" : 7, "meanDevRtt" : 11, diff --git a/thousandeyes-sdk-endpoint-test-results/test/test_network_dynamic_endpoint_test_results_api.py b/thousandeyes-sdk-endpoint-test-results/test/test_network_dynamic_endpoint_test_results_api.py index 78603f5e..56557db7 100644 --- a/thousandeyes-sdk-endpoint-test-results/test/test_network_dynamic_endpoint_test_results_api.py +++ b/thousandeyes-sdk-endpoint-test-results/test/test_network_dynamic_endpoint_test_results_api.py @@ -41,18 +41,20 @@ class TestNetworkDynamicEndpointTestResultsApi(unittest.TestCase): } ], "searchFilters" : { "agentId" : [ "52455b09-ff1b-4849-8194-99026cc890e0", "52455b09-ff1b-4849-8194-99026cc890e0" ], - "webexConferenceId" : [ "52455b09-ff1b-4849-8194-99026cc890e0", "52455b09-ff1b-4849-8194-99026cc890e0" ], - "userPrincipalName" : [ "joeblogs32@c.com", "joeblogs32@c.com" ] + "webexConferenceId" : [ "719057112996612360", "719057112996612360" ], + "webexLocalSipSessionId" : [ "c124ba2b012050008000aa0c26c4bf0f", "c124ba2b012050008000aa0c26c4bf0f" ], + "userPrincipalName" : [ "joeblogs32@c.com", "joeblogs32@c.com" ], + "webexCorrelationId" : [ "f7d73641-8673-4547-be62-9521f78d9888", "f7d73641-8673-4547-be62-9521f78d9888" ] }, "thresholdFilter" : { "conditionalOperator" : "and", "filters" : [ { "name" : "loss", - "value" : 10.0, + "value" : 10, "operator" : "gte" }, { "name" : "loss", - "value" : 10.0, + "value" : 10, "operator" : "gte" } ] } @@ -134,15 +136,16 @@ class TestNetworkDynamicEndpointTestResultsApi(unittest.TestCase): "remoteIpAddress" : "120.98.134.7" }, "agentId" : "861b7557-cd57-4bbb-b648-00bddf88ef49", - "minLatency" : 167.0, + "minLatency" : 167, "vpnProfile" : { "vpnClientNetworkRange" : [ "9.88.37.27", "9.88.37.27" ], "vpnGatewayAddress" : "120.98.134.7", "vpnType" : "cisco-anyconnect", "vpnClientAddresses" : [ "184.81.113.85", "13.129.91.62" ] }, - "maxLatency" : 168.0, + "maxLatency" : 168, "batteryMetrics" : { + "batteryHealthNormalizedPercent" : 0.92, "batteryLevel" : "medium", "batteryLevelNormalizedPercent" : 0.3 }, @@ -164,10 +167,10 @@ class TestNetworkDynamicEndpointTestResultsApi(unittest.TestCase): "sinr" : 20 }, "score" : { - "applicationScore" : 100.0, + "applicationScore" : 100, "quality" : "great" }, - "loss" : 0.0, + "loss" : 0, "protocol" : "tcp", "networkProfile" : { "previousInterface" : { @@ -216,13 +219,13 @@ class TestNetworkDynamicEndpointTestResultsApi(unittest.TestCase): "gateway" : "10.0.0.1" }, "ztaMetrics" : [ { - "loss" : 50.0, + "loss" : 50, "jitter" : 5, "avgLatency" : 3, "errorMessage" : "ERR_NAME_NOT_RESOLVED", "type" : "zta_service" }, { - "loss" : 50.0, + "loss" : 50, "jitter" : 5, "avgLatency" : 3, "errorMessage" : "ERR_NAME_NOT_RESOLVED", @@ -260,9 +263,10 @@ class TestNetworkDynamicEndpointTestResultsApi(unittest.TestCase): "testId" : "584739201", "webex" : { "remoteSipSessionId" : "22581707460321454", - "localSipSessionId" : "22581707460321454", + "localSipSessionId" : "c124ba2b012050008000aa0c26c4bf0f", "conferenceId" : "225817074608419375", - "correlationId" : "22581707460321454" + "correlationId" : "4e57c97e-abdf-4ec8-a78c-95bac9719896", + "meetingApp" : "ZoomCRC" }, "aid" : "1234", "errorDetails" : "Error" @@ -273,15 +277,16 @@ class TestNetworkDynamicEndpointTestResultsApi(unittest.TestCase): "remoteIpAddress" : "120.98.134.7" }, "agentId" : "861b7557-cd57-4bbb-b648-00bddf88ef49", - "minLatency" : 167.0, + "minLatency" : 167, "vpnProfile" : { "vpnClientNetworkRange" : [ "9.88.37.27", "9.88.37.27" ], "vpnGatewayAddress" : "120.98.134.7", "vpnType" : "cisco-anyconnect", "vpnClientAddresses" : [ "184.81.113.85", "13.129.91.62" ] }, - "maxLatency" : 168.0, + "maxLatency" : 168, "batteryMetrics" : { + "batteryHealthNormalizedPercent" : 0.92, "batteryLevel" : "medium", "batteryLevelNormalizedPercent" : 0.3 }, @@ -303,10 +308,10 @@ class TestNetworkDynamicEndpointTestResultsApi(unittest.TestCase): "sinr" : 20 }, "score" : { - "applicationScore" : 100.0, + "applicationScore" : 100, "quality" : "great" }, - "loss" : 0.0, + "loss" : 0, "protocol" : "tcp", "networkProfile" : { "previousInterface" : { @@ -355,13 +360,13 @@ class TestNetworkDynamicEndpointTestResultsApi(unittest.TestCase): "gateway" : "10.0.0.1" }, "ztaMetrics" : [ { - "loss" : 50.0, + "loss" : 50, "jitter" : 5, "avgLatency" : 3, "errorMessage" : "ERR_NAME_NOT_RESOLVED", "type" : "zta_service" }, { - "loss" : 50.0, + "loss" : 50, "jitter" : 5, "avgLatency" : 3, "errorMessage" : "ERR_NAME_NOT_RESOLVED", @@ -399,9 +404,10 @@ class TestNetworkDynamicEndpointTestResultsApi(unittest.TestCase): "testId" : "584739201", "webex" : { "remoteSipSessionId" : "22581707460321454", - "localSipSessionId" : "22581707460321454", + "localSipSessionId" : "c124ba2b012050008000aa0c26c4bf0f", "conferenceId" : "225817074608419375", - "correlationId" : "22581707460321454" + "correlationId" : "4e57c97e-abdf-4ec8-a78c-95bac9719896", + "meetingApp" : "ZoomCRC" }, "aid" : "1234", "errorDetails" : "Error" @@ -498,6 +504,7 @@ class TestNetworkDynamicEndpointTestResultsApi(unittest.TestCase): "vpnClientAddresses" : [ "184.81.113.85", "13.129.91.62" ] }, "batteryMetrics" : { + "batteryHealthNormalizedPercent" : 0.92, "batteryLevel" : "medium", "batteryLevelNormalizedPercent" : 0.3 }, @@ -684,9 +691,10 @@ class TestNetworkDynamicEndpointTestResultsApi(unittest.TestCase): "testId" : "584739201", "webex" : { "remoteSipSessionId" : "22581707460321454", - "localSipSessionId" : "22581707460321454", + "localSipSessionId" : "c124ba2b012050008000aa0c26c4bf0f", "conferenceId" : "225817074608419375", - "correlationId" : "22581707460321454" + "correlationId" : "4e57c97e-abdf-4ec8-a78c-95bac9719896", + "meetingApp" : "ZoomCRC" }, "aid" : "1234", "roundId" : 1384309800 @@ -710,6 +718,7 @@ class TestNetworkDynamicEndpointTestResultsApi(unittest.TestCase): "vpnClientAddresses" : [ "184.81.113.85", "13.129.91.62" ] }, "batteryMetrics" : { + "batteryHealthNormalizedPercent" : 0.92, "batteryLevel" : "medium", "batteryLevelNormalizedPercent" : 0.3 }, @@ -896,9 +905,10 @@ class TestNetworkDynamicEndpointTestResultsApi(unittest.TestCase): "testId" : "584739201", "webex" : { "remoteSipSessionId" : "22581707460321454", - "localSipSessionId" : "22581707460321454", + "localSipSessionId" : "c124ba2b012050008000aa0c26c4bf0f", "conferenceId" : "225817074608419375", - "correlationId" : "22581707460321454" + "correlationId" : "4e57c97e-abdf-4ec8-a78c-95bac9719896", + "meetingApp" : "ZoomCRC" }, "aid" : "1234", "roundId" : 1384309800 @@ -1006,6 +1016,7 @@ class TestNetworkDynamicEndpointTestResultsApi(unittest.TestCase): "vpnClientAddresses" : [ "184.81.113.85", "13.129.91.62" ] }, "batteryMetrics" : { + "batteryHealthNormalizedPercent" : 0.92, "batteryLevel" : "medium", "batteryLevelNormalizedPercent" : 0.3 }, @@ -1120,9 +1131,10 @@ class TestNetworkDynamicEndpointTestResultsApi(unittest.TestCase): "location" : "San Francisco Area", "webex" : { "remoteSipSessionId" : "22581707460321454", - "localSipSessionId" : "22581707460321454", + "localSipSessionId" : "c124ba2b012050008000aa0c26c4bf0f", "conferenceId" : "225817074608419375", - "correlationId" : "22581707460321454" + "correlationId" : "4e57c97e-abdf-4ec8-a78c-95bac9719896", + "meetingApp" : "ZoomCRC" }, "aid" : "1234", "roundId" : 1384309800 @@ -1146,6 +1158,7 @@ class TestNetworkDynamicEndpointTestResultsApi(unittest.TestCase): "vpnClientAddresses" : [ "184.81.113.85", "13.129.91.62" ] }, "batteryMetrics" : { + "batteryHealthNormalizedPercent" : 0.92, "batteryLevel" : "medium", "batteryLevelNormalizedPercent" : 0.3 }, @@ -1260,9 +1273,10 @@ class TestNetworkDynamicEndpointTestResultsApi(unittest.TestCase): "location" : "San Francisco Area", "webex" : { "remoteSipSessionId" : "22581707460321454", - "localSipSessionId" : "22581707460321454", + "localSipSessionId" : "c124ba2b012050008000aa0c26c4bf0f", "conferenceId" : "225817074608419375", - "correlationId" : "22581707460321454" + "correlationId" : "4e57c97e-abdf-4ec8-a78c-95bac9719896", + "meetingApp" : "ZoomCRC" }, "aid" : "1234", "roundId" : 1384309800 diff --git a/thousandeyes-sdk-endpoint-test-results/test/test_network_endpoint_scheduled_test_results_api.py b/thousandeyes-sdk-endpoint-test-results/test/test_network_endpoint_scheduled_test_results_api.py index c90854ff..b87e7a2d 100644 --- a/thousandeyes-sdk-endpoint-test-results/test/test_network_endpoint_scheduled_test_results_api.py +++ b/thousandeyes-sdk-endpoint-test-results/test/test_network_endpoint_scheduled_test_results_api.py @@ -47,11 +47,11 @@ class TestNetworkEndpointScheduledTestResultsApi(unittest.TestCase): "conditionalOperator" : "and", "filters" : [ { "name" : "loss", - "value" : 10.0, + "value" : 10, "operator" : "gte" }, { "name" : "loss", - "value" : 10.0, + "value" : 10, "operator" : "gte" } ] } @@ -136,15 +136,16 @@ class TestNetworkEndpointScheduledTestResultsApi(unittest.TestCase): "agentId" : "861b7557-cd57-4bbb-b648-00bddf88ef49", "isIcmpBlocked" : true, "avgLatency" : 167.04, - "minLatency" : 167.0, + "minLatency" : 167, "vpnProfile" : { "vpnClientNetworkRange" : [ "9.88.37.27", "9.88.37.27" ], "vpnGatewayAddress" : "120.98.134.7", "vpnType" : "cisco-anyconnect", "vpnClientAddresses" : [ "184.81.113.85", "13.129.91.62" ] }, - "maxLatency" : 168.0, + "maxLatency" : 168, "batteryMetrics" : { + "batteryHealthNormalizedPercent" : 0.92, "batteryLevel" : "medium", "batteryLevelNormalizedPercent" : 0.3 }, @@ -166,10 +167,10 @@ class TestNetworkEndpointScheduledTestResultsApi(unittest.TestCase): "sinr" : 20 }, "score" : { - "applicationScore" : 100.0, + "applicationScore" : 100, "quality" : "great" }, - "loss" : 0.0, + "loss" : 0, "systemMetrics" : { "cpuUtilization" : { "min" : 0.22, @@ -240,13 +241,13 @@ class TestNetworkEndpointScheduledTestResultsApi(unittest.TestCase): "gateway" : "10.0.0.1" }, "ztaMetrics" : [ { - "loss" : 50.0, + "loss" : 50, "jitter" : 5, "avgLatency" : 3, "errorMessage" : "ERR_NAME_NOT_RESOLVED", "type" : "zta_service" }, { - "loss" : 50.0, + "loss" : 50, "jitter" : 5, "avgLatency" : 3, "errorMessage" : "ERR_NAME_NOT_RESOLVED", @@ -265,15 +266,16 @@ class TestNetworkEndpointScheduledTestResultsApi(unittest.TestCase): "agentId" : "861b7557-cd57-4bbb-b648-00bddf88ef49", "isIcmpBlocked" : true, "avgLatency" : 167.04, - "minLatency" : 167.0, + "minLatency" : 167, "vpnProfile" : { "vpnClientNetworkRange" : [ "9.88.37.27", "9.88.37.27" ], "vpnGatewayAddress" : "120.98.134.7", "vpnType" : "cisco-anyconnect", "vpnClientAddresses" : [ "184.81.113.85", "13.129.91.62" ] }, - "maxLatency" : 168.0, + "maxLatency" : 168, "batteryMetrics" : { + "batteryHealthNormalizedPercent" : 0.92, "batteryLevel" : "medium", "batteryLevelNormalizedPercent" : 0.3 }, @@ -295,10 +297,10 @@ class TestNetworkEndpointScheduledTestResultsApi(unittest.TestCase): "sinr" : 20 }, "score" : { - "applicationScore" : 100.0, + "applicationScore" : 100, "quality" : "great" }, - "loss" : 0.0, + "loss" : 0, "systemMetrics" : { "cpuUtilization" : { "min" : 0.22, @@ -369,13 +371,13 @@ class TestNetworkEndpointScheduledTestResultsApi(unittest.TestCase): "gateway" : "10.0.0.1" }, "ztaMetrics" : [ { - "loss" : 50.0, + "loss" : 50, "jitter" : 5, "avgLatency" : 3, "errorMessage" : "ERR_NAME_NOT_RESOLVED", "type" : "zta_service" }, { - "loss" : 50.0, + "loss" : 50, "jitter" : 5, "avgLatency" : 3, "errorMessage" : "ERR_NAME_NOT_RESOLVED", @@ -412,11 +414,11 @@ class TestNetworkEndpointScheduledTestResultsApi(unittest.TestCase): "conditionalOperator" : "and", "filters" : [ { "name" : "loss", - "value" : 10.0, + "value" : 10, "operator" : "gte" }, { "name" : "loss", - "value" : 10.0, + "value" : 10, "operator" : "gte" } ] } @@ -452,15 +454,16 @@ class TestNetworkEndpointScheduledTestResultsApi(unittest.TestCase): "agentId" : "861b7557-cd57-4bbb-b648-00bddf88ef49", "isIcmpBlocked" : true, "avgLatency" : 167.04, - "minLatency" : 167.0, + "minLatency" : 167, "vpnProfile" : { "vpnClientNetworkRange" : [ "9.88.37.27", "9.88.37.27" ], "vpnGatewayAddress" : "120.98.134.7", "vpnType" : "cisco-anyconnect", "vpnClientAddresses" : [ "184.81.113.85", "13.129.91.62" ] }, - "maxLatency" : 168.0, + "maxLatency" : 168, "batteryMetrics" : { + "batteryHealthNormalizedPercent" : 0.92, "batteryLevel" : "medium", "batteryLevelNormalizedPercent" : 0.3 }, @@ -482,10 +485,10 @@ class TestNetworkEndpointScheduledTestResultsApi(unittest.TestCase): "sinr" : 20 }, "score" : { - "applicationScore" : 100.0, + "applicationScore" : 100, "quality" : "great" }, - "loss" : 0.0, + "loss" : 0, "systemMetrics" : { "cpuUtilization" : { "min" : 0.22, @@ -556,13 +559,13 @@ class TestNetworkEndpointScheduledTestResultsApi(unittest.TestCase): "gateway" : "10.0.0.1" }, "ztaMetrics" : [ { - "loss" : 50.0, + "loss" : 50, "jitter" : 5, "avgLatency" : 3, "errorMessage" : "ERR_NAME_NOT_RESOLVED", "type" : "zta_service" }, { - "loss" : 50.0, + "loss" : 50, "jitter" : 5, "avgLatency" : 3, "errorMessage" : "ERR_NAME_NOT_RESOLVED", @@ -581,15 +584,16 @@ class TestNetworkEndpointScheduledTestResultsApi(unittest.TestCase): "agentId" : "861b7557-cd57-4bbb-b648-00bddf88ef49", "isIcmpBlocked" : true, "avgLatency" : 167.04, - "minLatency" : 167.0, + "minLatency" : 167, "vpnProfile" : { "vpnClientNetworkRange" : [ "9.88.37.27", "9.88.37.27" ], "vpnGatewayAddress" : "120.98.134.7", "vpnType" : "cisco-anyconnect", "vpnClientAddresses" : [ "184.81.113.85", "13.129.91.62" ] }, - "maxLatency" : 168.0, + "maxLatency" : 168, "batteryMetrics" : { + "batteryHealthNormalizedPercent" : 0.92, "batteryLevel" : "medium", "batteryLevelNormalizedPercent" : 0.3 }, @@ -611,10 +615,10 @@ class TestNetworkEndpointScheduledTestResultsApi(unittest.TestCase): "sinr" : 20 }, "score" : { - "applicationScore" : 100.0, + "applicationScore" : 100, "quality" : "great" }, - "loss" : 0.0, + "loss" : 0, "systemMetrics" : { "cpuUtilization" : { "min" : 0.22, @@ -685,13 +689,13 @@ class TestNetworkEndpointScheduledTestResultsApi(unittest.TestCase): "gateway" : "10.0.0.1" }, "ztaMetrics" : [ { - "loss" : 50.0, + "loss" : 50, "jitter" : 5, "avgLatency" : 3, "errorMessage" : "ERR_NAME_NOT_RESOLVED", "type" : "zta_service" }, { - "loss" : 50.0, + "loss" : 50, "jitter" : 5, "avgLatency" : 3, "errorMessage" : "ERR_NAME_NOT_RESOLVED", @@ -794,6 +798,7 @@ class TestNetworkEndpointScheduledTestResultsApi(unittest.TestCase): "vpnClientAddresses" : [ "184.81.113.85", "13.129.91.62" ] }, "batteryMetrics" : { + "batteryHealthNormalizedPercent" : 0.92, "batteryLevel" : "medium", "batteryLevelNormalizedPercent" : 0.3 }, @@ -996,6 +1001,7 @@ class TestNetworkEndpointScheduledTestResultsApi(unittest.TestCase): "vpnClientAddresses" : [ "184.81.113.85", "13.129.91.62" ] }, "batteryMetrics" : { + "batteryHealthNormalizedPercent" : 0.92, "batteryLevel" : "medium", "batteryLevelNormalizedPercent" : 0.3 }, @@ -1282,6 +1288,7 @@ class TestNetworkEndpointScheduledTestResultsApi(unittest.TestCase): "vpnClientAddresses" : [ "184.81.113.85", "13.129.91.62" ] }, "batteryMetrics" : { + "batteryHealthNormalizedPercent" : 0.92, "batteryLevel" : "medium", "batteryLevelNormalizedPercent" : 0.3 }, @@ -1412,6 +1419,7 @@ class TestNetworkEndpointScheduledTestResultsApi(unittest.TestCase): "vpnClientAddresses" : [ "184.81.113.85", "13.129.91.62" ] }, "batteryMetrics" : { + "batteryHealthNormalizedPercent" : 0.92, "batteryLevel" : "medium", "batteryLevelNormalizedPercent" : 0.3 }, diff --git a/thousandeyes-sdk-endpoint-test-results/test/test_real_user_endpoint_test_results_api.py b/thousandeyes-sdk-endpoint-test-results/test/test_real_user_endpoint_test_results_api.py index 4f814624..1f7b61cf 100644 --- a/thousandeyes-sdk-endpoint-test-results/test/test_real_user_endpoint_test_results_api.py +++ b/thousandeyes-sdk-endpoint-test-results/test/test_real_user_endpoint_test_results_api.py @@ -591,10 +591,10 @@ class TestRealUserEndpointTestResultsApi(unittest.TestCase): "count" : 10 }, "physicalMemoryUsedBytes" : { - "min" : 1.2805128192E10, - "max" : 1.2825530368E10, + "min" : 12805128192, + "max" : 12825530368, "mean" : 1.281914582109091E10, - "median" : 1.2818219008E10, + "median" : 12818219008, "stdDev" : 5741124.05691331, "count" : 11 }, @@ -663,7 +663,7 @@ class TestRealUserEndpointTestResultsApi(unittest.TestCase): "isIcmpBlocked" : true, "vpnPing" : { "maxRtt" : 66, - "loss" : 1.0, + "loss" : 1, "pktsReceived" : 10, "avgRtt" : 7, "meanDevRtt" : 11, @@ -674,7 +674,7 @@ class TestRealUserEndpointTestResultsApi(unittest.TestCase): }, "ping" : { "maxRtt" : 66, - "loss" : 1.0, + "loss" : 1, "pktsReceived" : 10, "avgRtt" : 7, "meanDevRtt" : 11, @@ -778,7 +778,7 @@ class TestRealUserEndpointTestResultsApi(unittest.TestCase): "connectRtt" : 77.777, "gatewayPing" : { "maxRtt" : 66, - "loss" : 1.0, + "loss" : 1, "pktsReceived" : 10, "avgRtt" : 7, "meanDevRtt" : 11, @@ -857,7 +857,7 @@ class TestRealUserEndpointTestResultsApi(unittest.TestCase): "isIcmpBlocked" : true, "vpnPing" : { "maxRtt" : 66, - "loss" : 1.0, + "loss" : 1, "pktsReceived" : 10, "avgRtt" : 7, "meanDevRtt" : 11, @@ -868,7 +868,7 @@ class TestRealUserEndpointTestResultsApi(unittest.TestCase): }, "ping" : { "maxRtt" : 66, - "loss" : 1.0, + "loss" : 1, "pktsReceived" : 10, "avgRtt" : 7, "meanDevRtt" : 11, @@ -972,7 +972,7 @@ class TestRealUserEndpointTestResultsApi(unittest.TestCase): "connectRtt" : 77.777, "gatewayPing" : { "maxRtt" : 66, - "loss" : 1.0, + "loss" : 1, "pktsReceived" : 10, "avgRtt" : 7, "meanDevRtt" : 11, diff --git a/thousandeyes-sdk-endpoint-tests/.openapi-generator/FILES b/thousandeyes-sdk-endpoint-tests/.openapi-generator/FILES index a92738b6..e5c9bdbc 100644 --- a/thousandeyes-sdk-endpoint-tests/.openapi-generator/FILES +++ b/thousandeyes-sdk-endpoint-tests/.openapi-generator/FILES @@ -10,6 +10,7 @@ docs/DynamicTestSelfLink.md docs/DynamicTests.md docs/EndpointAgentLabelsSelectorConfig.md docs/EndpointAgentSelectorConfig.md +docs/EndpointAgentTagsSelectorConfig.md docs/EndpointAgentToServerInstantTest.md docs/EndpointAgentToServerTest.md docs/EndpointAgentToServerTestRequest.md @@ -64,6 +65,7 @@ src/thousandeyes_sdk/endpoint_tests/models/dynamic_test_self_link.py src/thousandeyes_sdk/endpoint_tests/models/dynamic_tests.py src/thousandeyes_sdk/endpoint_tests/models/endpoint_agent_labels_selector_config.py src/thousandeyes_sdk/endpoint_tests/models/endpoint_agent_selector_config.py +src/thousandeyes_sdk/endpoint_tests/models/endpoint_agent_tags_selector_config.py src/thousandeyes_sdk/endpoint_tests/models/endpoint_agent_to_server_instant_test.py src/thousandeyes_sdk/endpoint_tests/models/endpoint_agent_to_server_test.py src/thousandeyes_sdk/endpoint_tests/models/endpoint_agent_to_server_test_request.py diff --git a/thousandeyes-sdk-endpoint-tests/README.md b/thousandeyes-sdk-endpoint-tests/README.md index a2c87f73..fda16437 100644 --- a/thousandeyes-sdk-endpoint-tests/README.md +++ b/thousandeyes-sdk-endpoint-tests/README.md @@ -1,11 +1,10 @@ # thousandeyes-sdk-endpoint-tests - Manage endpoint agent dynamic and scheduled tests using the Endpoint Tests API. This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project: -- API version: 7.0.84 +- API version: 7.0.92 - Generator version: 7.6.0 - Build package: com.thousandeyes.api.codegen.ThousandeyesPythonGenerator @@ -124,6 +123,7 @@ Class | Method | HTTP request | Description - [DynamicTests](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-endpoint-tests/docs/DynamicTests.md) - [EndpointAgentLabelsSelectorConfig](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-endpoint-tests/docs/EndpointAgentLabelsSelectorConfig.md) - [EndpointAgentSelectorConfig](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-endpoint-tests/docs/EndpointAgentSelectorConfig.md) + - [EndpointAgentTagsSelectorConfig](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-endpoint-tests/docs/EndpointAgentTagsSelectorConfig.md) - [EndpointAgentToServerInstantTest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-endpoint-tests/docs/EndpointAgentToServerInstantTest.md) - [EndpointAgentToServerTest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-endpoint-tests/docs/EndpointAgentToServerTest.md) - [EndpointAgentToServerTestRequest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-endpoint-tests/docs/EndpointAgentToServerTestRequest.md) diff --git a/thousandeyes-sdk-endpoint-tests/docs/DynamicTestRequest.md b/thousandeyes-sdk-endpoint-tests/docs/DynamicTestRequest.md index 38a647eb..3dad7bc8 100644 --- a/thousandeyes-sdk-endpoint-tests/docs/DynamicTestRequest.md +++ b/thousandeyes-sdk-endpoint-tests/docs/DynamicTestRequest.md @@ -7,7 +7,8 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **agent_selector_type** | [**EndpointTestAgentSelectorType**](EndpointTestAgentSelectorType.md) | | [optional] **agents** | **List[str]** | List of endpoint agent IDs (obtained from `/endpoint/agents` endpoint). Required when `agentSelectorType` is set to `specific-agent`. | [optional] -**endpoint_agent_labels** | **List[str]** | List of endpoint agent label IDs (obtained from `/endpoint/labels` endpoint), required when `agentSelectorType` is set to `agent-labels`. | [optional] +**endpoint_agent_labels** | **List[str]** | Deprecated. Use `tagIds` instead. List of endpoint agent label IDs (obtained from `/endpoint/labels` endpoint), required when `agentSelectorType` is set to `agent-labels`. | [optional] +**tag_ids** | **List[str]** | List of tag IDs (obtained from `/tags` endpoint). | [optional] **is_prioritized** | **bool** | Indicates whether the test should be prioritized when the number of tests assigned to an agent exceeds the license limit. | [optional] [default to False] **interval** | [**TestInterval**](TestInterval.md) | | [optional] **max_machines** | **int** | Maximum number of agents which can execute the test. | [optional] [default to 25] diff --git a/thousandeyes-sdk-endpoint-tests/docs/EndpointAgentLabelsSelectorConfig.md b/thousandeyes-sdk-endpoint-tests/docs/EndpointAgentLabelsSelectorConfig.md index 989376a2..12ed5844 100644 --- a/thousandeyes-sdk-endpoint-tests/docs/EndpointAgentLabelsSelectorConfig.md +++ b/thousandeyes-sdk-endpoint-tests/docs/EndpointAgentLabelsSelectorConfig.md @@ -8,7 +8,8 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **agent_selector_type** | **str** | | **max_machines** | **int** | Maximum number of agents which can execute the test. | [optional] [default to 25] -**endpoint_agent_labels** | **List[str]** | List of endpoint agent label IDs (obtained from `/endpoint/labels` endpoint), required when `agentSelectorType` is set to `agent-labels`. | [optional] +**endpoint_agent_labels** | **List[str]** | Deprecated. Use `tagIds` instead. List of endpoint agent label IDs (obtained from `/endpoint/labels` endpoint), required when `agentSelectorType` is set to `agent-labels`. | [optional] +**tag_ids** | **List[str]** | List of tag IDs (obtained from `/tags` endpoint). | [optional] ## Example diff --git a/thousandeyes-sdk-endpoint-tests/docs/EndpointAgentSelectorConfig.md b/thousandeyes-sdk-endpoint-tests/docs/EndpointAgentSelectorConfig.md index 6d9b4f6a..c9f0ba2d 100644 --- a/thousandeyes-sdk-endpoint-tests/docs/EndpointAgentSelectorConfig.md +++ b/thousandeyes-sdk-endpoint-tests/docs/EndpointAgentSelectorConfig.md @@ -8,8 +8,9 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **agent_selector_type** | **str** | | **max_machines** | **int** | Maximum number of agents which can execute the test. | [optional] [default to 25] -**endpoint_agent_labels** | **List[str]** | List of endpoint agent label IDs (obtained from `/endpoint/labels` endpoint), required when `agentSelectorType` is set to `agent-labels`. | [optional] **agents** | **List[str]** | List of endpoint agent IDs (obtained from `/endpoint/agents` endpoint). Required when `agentSelectorType` is set to `specific-agent`. | [optional] +**endpoint_agent_labels** | **List[str]** | Deprecated. Use `tagIds` instead. List of endpoint agent label IDs (obtained from `/endpoint/labels` endpoint), required when `agentSelectorType` is set to `agent-labels`. | [optional] +**tag_ids** | **List[str]** | List of tag IDs (obtained from `/tags` endpoint). | [optional] ## Example diff --git a/thousandeyes-sdk-endpoint-tests/docs/EndpointAgentTagsSelectorConfig.md b/thousandeyes-sdk-endpoint-tests/docs/EndpointAgentTagsSelectorConfig.md new file mode 100644 index 00000000..83406051 --- /dev/null +++ b/thousandeyes-sdk-endpoint-tests/docs/EndpointAgentTagsSelectorConfig.md @@ -0,0 +1,33 @@ +# EndpointAgentTagsSelectorConfig + +Agent tags selection object. + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**agent_selector_type** | **str** | | +**max_machines** | **int** | Maximum number of agents which can execute the test. | [optional] [default to 25] +**endpoint_agent_labels** | **List[str]** | Deprecated. Use `tagIds` instead. List of endpoint agent label IDs (obtained from `/endpoint/labels` endpoint), required when `agentSelectorType` is set to `agent-labels`. | [optional] +**tag_ids** | **List[str]** | List of tag IDs (obtained from `/tags` endpoint). | [optional] + +## Example + +```python +from thousandeyes_sdk.endpoint_tests.models.endpoint_agent_tags_selector_config import EndpointAgentTagsSelectorConfig + +# TODO update the JSON string below +json = "{}" +# create an instance of EndpointAgentTagsSelectorConfig from a JSON string +endpoint_agent_tags_selector_config_instance = EndpointAgentTagsSelectorConfig.from_json(json) +# print the JSON string representation of the object +print(EndpointAgentTagsSelectorConfig.to_json()) + +# convert the object into a dict +endpoint_agent_tags_selector_config_dict = endpoint_agent_tags_selector_config_instance.to_dict() +# create an instance of EndpointAgentTagsSelectorConfig from a dict +endpoint_agent_tags_selector_config_from_dict = EndpointAgentTagsSelectorConfig.from_dict(endpoint_agent_tags_selector_config_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/thousandeyes-sdk-endpoint-tests/docs/EndpointAgentToServerInstantTest.md b/thousandeyes-sdk-endpoint-tests/docs/EndpointAgentToServerInstantTest.md index 4c338372..8fcd710c 100644 --- a/thousandeyes-sdk-endpoint-tests/docs/EndpointAgentToServerInstantTest.md +++ b/thousandeyes-sdk-endpoint-tests/docs/EndpointAgentToServerInstantTest.md @@ -7,7 +7,8 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **agent_selector_type** | [**EndpointTestAgentSelectorType**](EndpointTestAgentSelectorType.md) | | [optional] **agents** | **List[str]** | List of endpoint agent IDs (obtained from `/endpoint/agents` endpoint). Required when `agentSelectorType` is set to `specific-agent`. | [optional] -**endpoint_agent_labels** | **List[str]** | List of endpoint agent label IDs (obtained from `/endpoint/labels` endpoint), required when `agentSelectorType` is set to `agent-labels`. | [optional] +**endpoint_agent_labels** | **List[str]** | Deprecated. Use `tagIds` instead. List of endpoint agent label IDs (obtained from `/endpoint/labels` endpoint), required when `agentSelectorType` is set to `agent-labels`. | [optional] +**tag_ids** | **List[str]** | List of tag IDs (obtained from `/tags` endpoint). | [optional] **max_machines** | **int** | Maximum number of agents which can execute the test. | [optional] [default to 25] **test_name** | **str** | Name of the test. | **ip_version** | [**EndpointIpVersionIn**](EndpointIpVersionIn.md) | | [optional] diff --git a/thousandeyes-sdk-endpoint-tests/docs/EndpointAgentToServerTestRequest.md b/thousandeyes-sdk-endpoint-tests/docs/EndpointAgentToServerTestRequest.md index d2f1915b..aa320156 100644 --- a/thousandeyes-sdk-endpoint-tests/docs/EndpointAgentToServerTestRequest.md +++ b/thousandeyes-sdk-endpoint-tests/docs/EndpointAgentToServerTestRequest.md @@ -7,7 +7,8 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **agent_selector_type** | [**EndpointTestAgentSelectorType**](EndpointTestAgentSelectorType.md) | | [optional] **agents** | **List[str]** | List of endpoint agent IDs (obtained from `/endpoint/agents` endpoint). Required when `agentSelectorType` is set to `specific-agent`. | [optional] -**endpoint_agent_labels** | **List[str]** | List of endpoint agent label IDs (obtained from `/endpoint/labels` endpoint), required when `agentSelectorType` is set to `agent-labels`. | [optional] +**endpoint_agent_labels** | **List[str]** | Deprecated. Use `tagIds` instead. List of endpoint agent label IDs (obtained from `/endpoint/labels` endpoint), required when `agentSelectorType` is set to `agent-labels`. | [optional] +**tag_ids** | **List[str]** | List of tag IDs (obtained from `/tags` endpoint). | [optional] **max_machines** | **int** | Maximum number of agents which can execute the test. | [optional] [default to 25] **test_name** | **str** | Name of the test. | **ip_version** | [**EndpointIpVersionIn**](EndpointIpVersionIn.md) | | [optional] diff --git a/thousandeyes-sdk-endpoint-tests/docs/EndpointHttpServerInstantTest.md b/thousandeyes-sdk-endpoint-tests/docs/EndpointHttpServerInstantTest.md index c3c22474..f9eb0a56 100644 --- a/thousandeyes-sdk-endpoint-tests/docs/EndpointHttpServerInstantTest.md +++ b/thousandeyes-sdk-endpoint-tests/docs/EndpointHttpServerInstantTest.md @@ -7,7 +7,8 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **agent_selector_type** | [**EndpointTestAgentSelectorType**](EndpointTestAgentSelectorType.md) | | [optional] **agents** | **List[str]** | List of endpoint agent IDs (obtained from `/endpoint/agents` endpoint). Required when `agentSelectorType` is set to `specific-agent`. | [optional] -**endpoint_agent_labels** | **List[str]** | List of endpoint agent label IDs (obtained from `/endpoint/labels` endpoint), required when `agentSelectorType` is set to `agent-labels`. | [optional] +**endpoint_agent_labels** | **List[str]** | Deprecated. Use `tagIds` instead. List of endpoint agent label IDs (obtained from `/endpoint/labels` endpoint), required when `agentSelectorType` is set to `agent-labels`. | [optional] +**tag_ids** | **List[str]** | List of tag IDs (obtained from `/tags` endpoint). | [optional] **max_machines** | **int** | Maximum number of agents which can execute the test. | [optional] [default to 25] **test_name** | **str** | Name of the test. | **ip_version** | [**EndpointIpVersionIn**](EndpointIpVersionIn.md) | | [optional] diff --git a/thousandeyes-sdk-endpoint-tests/docs/EndpointHttpServerTestRequest.md b/thousandeyes-sdk-endpoint-tests/docs/EndpointHttpServerTestRequest.md index 2c75ef4b..0c23bc61 100644 --- a/thousandeyes-sdk-endpoint-tests/docs/EndpointHttpServerTestRequest.md +++ b/thousandeyes-sdk-endpoint-tests/docs/EndpointHttpServerTestRequest.md @@ -7,7 +7,8 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **agent_selector_type** | [**EndpointTestAgentSelectorType**](EndpointTestAgentSelectorType.md) | | [optional] **agents** | **List[str]** | List of endpoint agent IDs (obtained from `/endpoint/agents` endpoint). Required when `agentSelectorType` is set to `specific-agent`. | [optional] -**endpoint_agent_labels** | **List[str]** | List of endpoint agent label IDs (obtained from `/endpoint/labels` endpoint), required when `agentSelectorType` is set to `agent-labels`. | [optional] +**endpoint_agent_labels** | **List[str]** | Deprecated. Use `tagIds` instead. List of endpoint agent label IDs (obtained from `/endpoint/labels` endpoint), required when `agentSelectorType` is set to `agent-labels`. | [optional] +**tag_ids** | **List[str]** | List of tag IDs (obtained from `/tags` endpoint). | [optional] **max_machines** | **int** | Maximum number of agents which can execute the test. | [optional] [default to 25] **test_name** | **str** | Name of the test. | **ip_version** | [**EndpointIpVersionIn**](EndpointIpVersionIn.md) | | [optional] diff --git a/thousandeyes-sdk-endpoint-tests/docs/EndpointInstantTest.md b/thousandeyes-sdk-endpoint-tests/docs/EndpointInstantTest.md index 69191a6e..6b4e3f18 100644 --- a/thousandeyes-sdk-endpoint-tests/docs/EndpointInstantTest.md +++ b/thousandeyes-sdk-endpoint-tests/docs/EndpointInstantTest.md @@ -7,7 +7,8 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **agent_selector_type** | [**EndpointTestAgentSelectorType**](EndpointTestAgentSelectorType.md) | | [optional] **agents** | **List[str]** | List of endpoint agent IDs (obtained from `/endpoint/agents` endpoint). Required when `agentSelectorType` is set to `specific-agent`. | [optional] -**endpoint_agent_labels** | **List[str]** | List of endpoint agent label IDs (obtained from `/endpoint/labels` endpoint), required when `agentSelectorType` is set to `agent-labels`. | [optional] +**endpoint_agent_labels** | **List[str]** | Deprecated. Use `tagIds` instead. List of endpoint agent label IDs (obtained from `/endpoint/labels` endpoint), required when `agentSelectorType` is set to `agent-labels`. | [optional] +**tag_ids** | **List[str]** | List of tag IDs (obtained from `/tags` endpoint). | [optional] **max_machines** | **int** | Maximum number of agents which can execute the test. | [optional] [default to 25] **test_name** | **str** | Name of the test. | **ip_version** | [**EndpointIpVersionIn**](EndpointIpVersionIn.md) | | [optional] diff --git a/thousandeyes-sdk-endpoint-tests/docs/EndpointTestAgentSelectorType.md b/thousandeyes-sdk-endpoint-tests/docs/EndpointTestAgentSelectorType.md index e088812e..b296e305 100644 --- a/thousandeyes-sdk-endpoint-tests/docs/EndpointTestAgentSelectorType.md +++ b/thousandeyes-sdk-endpoint-tests/docs/EndpointTestAgentSelectorType.md @@ -1,6 +1,6 @@ # EndpointTestAgentSelectorType -Retrieve either all available agents, a specific list of agents, or a list of agent labels. +Specifies how agents are selected for the endpoint test. Agents can be selected from: - all available agents - a specific list of agents - agents matching tags - agents matching labels (deprecated) ## Properties diff --git a/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/__init__.py b/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/__init__.py index 8205d834..c08bcc7f 100644 --- a/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/__init__.py +++ b/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/__init__.py @@ -5,7 +5,7 @@ """ Endpoint Tests API - Manage endpoint agent dynamic and scheduled tests using the Endpoint Tests API. + Manage endpoint agent dynamic and scheduled tests using the Endpoint Tests API. Generated by OpenAPI Generator (https://openapi-generator.tech) @@ -28,6 +28,7 @@ from thousandeyes_sdk.endpoint_tests.models.dynamic_test_self_link import Dynami from thousandeyes_sdk.endpoint_tests.models.dynamic_tests import DynamicTests from thousandeyes_sdk.endpoint_tests.models.endpoint_agent_labels_selector_config import EndpointAgentLabelsSelectorConfig from thousandeyes_sdk.endpoint_tests.models.endpoint_agent_selector_config import EndpointAgentSelectorConfig +from thousandeyes_sdk.endpoint_tests.models.endpoint_agent_tags_selector_config import EndpointAgentTagsSelectorConfig from thousandeyes_sdk.endpoint_tests.models.endpoint_agent_to_server_instant_test import EndpointAgentToServerInstantTest from thousandeyes_sdk.endpoint_tests.models.endpoint_agent_to_server_test import EndpointAgentToServerTest from thousandeyes_sdk.endpoint_tests.models.endpoint_agent_to_server_test_request import EndpointAgentToServerTestRequest diff --git a/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/api/agent_to_server_endpoint_dynamic_tests_api.py b/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/api/agent_to_server_endpoint_dynamic_tests_api.py index 47cd08b8..4703fb6e 100644 --- a/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/api/agent_to_server_endpoint_dynamic_tests_api.py +++ b/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/api/agent_to_server_endpoint_dynamic_tests_api.py @@ -3,7 +3,7 @@ """ Endpoint Tests API - Manage endpoint agent dynamic and scheduled tests using the Endpoint Tests API. + Manage endpoint agent dynamic and scheduled tests using the Endpoint Tests API. Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/api/agent_to_server_endpoint_scheduled_tests_api.py b/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/api/agent_to_server_endpoint_scheduled_tests_api.py index e4181713..a5980b6d 100644 --- a/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/api/agent_to_server_endpoint_scheduled_tests_api.py +++ b/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/api/agent_to_server_endpoint_scheduled_tests_api.py @@ -3,7 +3,7 @@ """ Endpoint Tests API - Manage endpoint agent dynamic and scheduled tests using the Endpoint Tests API. + Manage endpoint agent dynamic and scheduled tests using the Endpoint Tests API. Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/api/endpoint_scheduled_tests_api.py b/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/api/endpoint_scheduled_tests_api.py index 1daaf4a3..0f719ed7 100644 --- a/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/api/endpoint_scheduled_tests_api.py +++ b/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/api/endpoint_scheduled_tests_api.py @@ -3,7 +3,7 @@ """ Endpoint Tests API - Manage endpoint agent dynamic and scheduled tests using the Endpoint Tests API. + Manage endpoint agent dynamic and scheduled tests using the Endpoint Tests API. Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/api/http_server_endpoint_scheduled_tests_api.py b/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/api/http_server_endpoint_scheduled_tests_api.py index eac35ab5..d8b46ef6 100644 --- a/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/api/http_server_endpoint_scheduled_tests_api.py +++ b/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/api/http_server_endpoint_scheduled_tests_api.py @@ -3,7 +3,7 @@ """ Endpoint Tests API - Manage endpoint agent dynamic and scheduled tests using the Endpoint Tests API. + Manage endpoint agent dynamic and scheduled tests using the Endpoint Tests API. Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/__init__.py b/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/__init__.py index dcfa89b1..6326f1ef 100644 --- a/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/__init__.py +++ b/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/__init__.py @@ -4,7 +4,7 @@ """ Endpoint Tests API - Manage endpoint agent dynamic and scheduled tests using the Endpoint Tests API. + Manage endpoint agent dynamic and scheduled tests using the Endpoint Tests API. Generated by OpenAPI Generator (https://openapi-generator.tech) @@ -20,6 +20,7 @@ from thousandeyes_sdk.endpoint_tests.models.dynamic_test_self_link import Dynami from thousandeyes_sdk.endpoint_tests.models.dynamic_tests import DynamicTests from thousandeyes_sdk.endpoint_tests.models.endpoint_agent_labels_selector_config import EndpointAgentLabelsSelectorConfig from thousandeyes_sdk.endpoint_tests.models.endpoint_agent_selector_config import EndpointAgentSelectorConfig +from thousandeyes_sdk.endpoint_tests.models.endpoint_agent_tags_selector_config import EndpointAgentTagsSelectorConfig from thousandeyes_sdk.endpoint_tests.models.endpoint_agent_to_server_instant_test import EndpointAgentToServerInstantTest from thousandeyes_sdk.endpoint_tests.models.endpoint_agent_to_server_test import EndpointAgentToServerTest from thousandeyes_sdk.endpoint_tests.models.endpoint_agent_to_server_test_request import EndpointAgentToServerTestRequest diff --git a/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/dynamic_test.py b/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/dynamic_test.py index 8a2a09e8..44366e5f 100644 --- a/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/dynamic_test.py +++ b/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/dynamic_test.py @@ -3,7 +3,7 @@ """ Endpoint Tests API - Manage endpoint agent dynamic and scheduled tests using the Endpoint Tests API. + Manage endpoint agent dynamic and scheduled tests using the Endpoint Tests API. Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/dynamic_test_links.py b/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/dynamic_test_links.py index 97262245..e65d3d44 100644 --- a/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/dynamic_test_links.py +++ b/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/dynamic_test_links.py @@ -3,7 +3,7 @@ """ Endpoint Tests API - Manage endpoint agent dynamic and scheduled tests using the Endpoint Tests API. + Manage endpoint agent dynamic and scheduled tests using the Endpoint Tests API. Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/dynamic_test_request.py b/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/dynamic_test_request.py index c3d67606..e9a0bba0 100644 --- a/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/dynamic_test_request.py +++ b/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/dynamic_test_request.py @@ -3,7 +3,7 @@ """ Endpoint Tests API - Manage endpoint agent dynamic and scheduled tests using the Endpoint Tests API. + Manage endpoint agent dynamic and scheduled tests using the Endpoint Tests API. Generated by OpenAPI Generator (https://openapi-generator.tech) @@ -32,7 +32,8 @@ class DynamicTestRequest(BaseModel): """ # noqa: E501 agent_selector_type: Optional[EndpointTestAgentSelectorType] = Field(default=None, alias="agentSelectorType") agents: Optional[List[StrictStr]] = Field(default=None, description="List of endpoint agent IDs (obtained from `/endpoint/agents` endpoint). Required when `agentSelectorType` is set to `specific-agent`.") - endpoint_agent_labels: Optional[List[StrictStr]] = Field(default=None, description="List of endpoint agent label IDs (obtained from `/endpoint/labels` endpoint), required when `agentSelectorType` is set to `agent-labels`.", alias="endpointAgentLabels") + endpoint_agent_labels: Optional[List[StrictStr]] = Field(default=None, description="Deprecated. Use `tagIds` instead. List of endpoint agent label IDs (obtained from `/endpoint/labels` endpoint), required when `agentSelectorType` is set to `agent-labels`. ", alias="endpointAgentLabels") + tag_ids: Optional[List[StrictStr]] = Field(default=None, description="List of tag IDs (obtained from `/tags` endpoint).", alias="tagIds") is_prioritized: Optional[StrictBool] = Field(default=False, description="Indicates whether the test should be prioritized when the number of tests assigned to an agent exceeds the license limit.", alias="isPrioritized") interval: Optional[TestInterval] = None max_machines: Optional[StrictInt] = Field(default=25, description="Maximum number of agents which can execute the test.", alias="maxMachines") @@ -42,7 +43,7 @@ class DynamicTestRequest(BaseModel): test_name: StrictStr = Field(description="Name of the test.", alias="testName") has_path_trace_in_session: Optional[StrictBool] = Field(default=None, description="Enables \"in session\" path trace. When enabled, this option initiates a TCP session with the target server and sends path trace packets within the established TCP session.", alias="hasPathTraceInSession") ip_version: Optional[EndpointIpVersionIn] = Field(default=None, alias="ipVersion") - __properties: ClassVar[List[str]] = ["agentSelectorType", "agents", "endpointAgentLabels", "isPrioritized", "interval", "maxMachines", "application", "protocol", "tcpProbeMode", "testName", "hasPathTraceInSession", "ipVersion"] + __properties: ClassVar[List[str]] = ["agentSelectorType", "agents", "endpointAgentLabels", "tagIds", "isPrioritized", "interval", "maxMachines", "application", "protocol", "tcpProbeMode", "testName", "hasPathTraceInSession", "ipVersion"] model_config = ConfigDict( populate_by_name=True, @@ -99,6 +100,7 @@ class DynamicTestRequest(BaseModel): "agentSelectorType": obj.get("agentSelectorType"), "agents": obj.get("agents"), "endpointAgentLabels": obj.get("endpointAgentLabels"), + "tagIds": obj.get("tagIds"), "isPrioritized": obj.get("isPrioritized") if obj.get("isPrioritized") is not None else False, "interval": obj.get("interval"), "maxMachines": obj.get("maxMachines") if obj.get("maxMachines") is not None else 25, diff --git a/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/dynamic_test_self_link.py b/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/dynamic_test_self_link.py index 2ce13cc5..4de586b9 100644 --- a/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/dynamic_test_self_link.py +++ b/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/dynamic_test_self_link.py @@ -3,7 +3,7 @@ """ Endpoint Tests API - Manage endpoint agent dynamic and scheduled tests using the Endpoint Tests API. + Manage endpoint agent dynamic and scheduled tests using the Endpoint Tests API. Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/dynamic_tests.py b/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/dynamic_tests.py index 74bd6a74..d853bbe5 100644 --- a/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/dynamic_tests.py +++ b/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/dynamic_tests.py @@ -3,7 +3,7 @@ """ Endpoint Tests API - Manage endpoint agent dynamic and scheduled tests using the Endpoint Tests API. + Manage endpoint agent dynamic and scheduled tests using the Endpoint Tests API. Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/endpoint_agent_labels_selector_config.py b/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/endpoint_agent_labels_selector_config.py index 32b7fb1e..a37464c6 100644 --- a/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/endpoint_agent_labels_selector_config.py +++ b/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/endpoint_agent_labels_selector_config.py @@ -3,7 +3,7 @@ """ Endpoint Tests API - Manage endpoint agent dynamic and scheduled tests using the Endpoint Tests API. + Manage endpoint agent dynamic and scheduled tests using the Endpoint Tests API. Generated by OpenAPI Generator (https://openapi-generator.tech) @@ -28,8 +28,9 @@ class EndpointAgentLabelsSelectorConfig(BaseModel): """ # noqa: E501 agent_selector_type: Annotated[str, Field(strict=True)] = Field(alias="agentSelectorType") max_machines: Optional[StrictInt] = Field(default=25, description="Maximum number of agents which can execute the test.", alias="maxMachines") - endpoint_agent_labels: Optional[List[StrictStr]] = Field(default=None, description="List of endpoint agent label IDs (obtained from `/endpoint/labels` endpoint), required when `agentSelectorType` is set to `agent-labels`.", alias="endpointAgentLabels") - __properties: ClassVar[List[str]] = ["agentSelectorType", "maxMachines", "endpointAgentLabels"] + endpoint_agent_labels: Optional[List[StrictStr]] = Field(default=None, description="Deprecated. Use `tagIds` instead. List of endpoint agent label IDs (obtained from `/endpoint/labels` endpoint), required when `agentSelectorType` is set to `agent-labels`. ", alias="endpointAgentLabels") + tag_ids: Optional[List[StrictStr]] = Field(default=None, description="List of tag IDs (obtained from `/tags` endpoint).", alias="tagIds") + __properties: ClassVar[List[str]] = ["agentSelectorType", "maxMachines", "endpointAgentLabels", "tagIds"] @field_validator('agent_selector_type') def agent_selector_type_validate_regular_expression(cls, value): @@ -92,7 +93,8 @@ class EndpointAgentLabelsSelectorConfig(BaseModel): _obj = cls.model_validate({ "agentSelectorType": obj.get("agentSelectorType"), "maxMachines": obj.get("maxMachines") if obj.get("maxMachines") is not None else 25, - "endpointAgentLabels": obj.get("endpointAgentLabels") + "endpointAgentLabels": obj.get("endpointAgentLabels"), + "tagIds": obj.get("tagIds") }) return _obj diff --git a/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/endpoint_agent_selector_config.py b/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/endpoint_agent_selector_config.py index 7fccbfe4..997d434f 100644 --- a/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/endpoint_agent_selector_config.py +++ b/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/endpoint_agent_selector_config.py @@ -3,7 +3,7 @@ """ Endpoint Tests API - Manage endpoint agent dynamic and scheduled tests using the Endpoint Tests API. + Manage endpoint agent dynamic and scheduled tests using the Endpoint Tests API. Generated by OpenAPI Generator (https://openapi-generator.tech) @@ -17,13 +17,14 @@ import pprint from pydantic import BaseModel, ConfigDict, Field, StrictStr, ValidationError, field_validator from typing import Any, List, Optional from thousandeyes_sdk.endpoint_tests.models.endpoint_agent_labels_selector_config import EndpointAgentLabelsSelectorConfig +from thousandeyes_sdk.endpoint_tests.models.endpoint_agent_tags_selector_config import EndpointAgentTagsSelectorConfig from thousandeyes_sdk.endpoint_tests.models.endpoint_all_agents_selector_config import EndpointAllAgentsSelectorConfig from thousandeyes_sdk.endpoint_tests.models.endpoint_specific_agents_selector_config import EndpointSpecificAgentsSelectorConfig from pydantic import StrictStr, Field, model_serializer from typing import Union, List, Set, Optional, Dict from typing_extensions import Literal, Self -ENDPOINTAGENTSELECTORCONFIG_ONE_OF_SCHEMAS = ["EndpointAgentLabelsSelectorConfig", "EndpointAllAgentsSelectorConfig", "EndpointSpecificAgentsSelectorConfig"] +ENDPOINTAGENTSELECTORCONFIG_ONE_OF_SCHEMAS = ["EndpointAgentLabelsSelectorConfig", "EndpointAgentTagsSelectorConfig", "EndpointAllAgentsSelectorConfig", "EndpointSpecificAgentsSelectorConfig"] class EndpointAgentSelectorConfig(BaseModel): """ @@ -31,12 +32,14 @@ class EndpointAgentSelectorConfig(BaseModel): """ # data type: EndpointAllAgentsSelectorConfig oneof_schema_1_validator: Optional[EndpointAllAgentsSelectorConfig] = None - # data type: EndpointAgentLabelsSelectorConfig - oneof_schema_2_validator: Optional[EndpointAgentLabelsSelectorConfig] = None # data type: EndpointSpecificAgentsSelectorConfig - oneof_schema_3_validator: Optional[EndpointSpecificAgentsSelectorConfig] = None - actual_instance: Optional[Union[EndpointAgentLabelsSelectorConfig, EndpointAllAgentsSelectorConfig, EndpointSpecificAgentsSelectorConfig]] = None - one_of_schemas: Set[str] = { "EndpointAgentLabelsSelectorConfig", "EndpointAllAgentsSelectorConfig", "EndpointSpecificAgentsSelectorConfig" } + oneof_schema_2_validator: Optional[EndpointSpecificAgentsSelectorConfig] = None + # data type: EndpointAgentLabelsSelectorConfig + oneof_schema_3_validator: Optional[EndpointAgentLabelsSelectorConfig] = None + # data type: EndpointAgentTagsSelectorConfig + oneof_schema_4_validator: Optional[EndpointAgentTagsSelectorConfig] = None + actual_instance: Optional[Union[EndpointAgentLabelsSelectorConfig, EndpointAgentTagsSelectorConfig, EndpointAllAgentsSelectorConfig, EndpointSpecificAgentsSelectorConfig]] = None + one_of_schemas: Set[str] = { "EndpointAgentLabelsSelectorConfig", "EndpointAgentTagsSelectorConfig", "EndpointAllAgentsSelectorConfig", "EndpointSpecificAgentsSelectorConfig" } model_config = ConfigDict( validate_assignment=True, @@ -67,22 +70,27 @@ class EndpointAgentSelectorConfig(BaseModel): error_messages.append(f"Error! Input type `{type(v)}` is not `EndpointAllAgentsSelectorConfig`") else: match += 1 - # validate data type: EndpointAgentLabelsSelectorConfig - if not isinstance(v, EndpointAgentLabelsSelectorConfig): - error_messages.append(f"Error! Input type `{type(v)}` is not `EndpointAgentLabelsSelectorConfig`") - else: - match += 1 # validate data type: EndpointSpecificAgentsSelectorConfig if not isinstance(v, EndpointSpecificAgentsSelectorConfig): error_messages.append(f"Error! Input type `{type(v)}` is not `EndpointSpecificAgentsSelectorConfig`") else: match += 1 + # validate data type: EndpointAgentLabelsSelectorConfig + if not isinstance(v, EndpointAgentLabelsSelectorConfig): + error_messages.append(f"Error! Input type `{type(v)}` is not `EndpointAgentLabelsSelectorConfig`") + else: + match += 1 + # validate data type: EndpointAgentTagsSelectorConfig + if not isinstance(v, EndpointAgentTagsSelectorConfig): + error_messages.append(f"Error! Input type `{type(v)}` is not `EndpointAgentTagsSelectorConfig`") + else: + match += 1 if match > 1: # more than 1 match - raise ValueError("Multiple matches found when setting `actual_instance` in EndpointAgentSelectorConfig with oneOf schemas: EndpointAgentLabelsSelectorConfig, EndpointAllAgentsSelectorConfig, EndpointSpecificAgentsSelectorConfig. Details: " + ", ".join(error_messages)) + raise ValueError("Multiple matches found when setting `actual_instance` in EndpointAgentSelectorConfig with oneOf schemas: EndpointAgentLabelsSelectorConfig, EndpointAgentTagsSelectorConfig, EndpointAllAgentsSelectorConfig, EndpointSpecificAgentsSelectorConfig. Details: " + ", ".join(error_messages)) elif match == 0: # no match - raise ValueError("No match found when setting `actual_instance` in EndpointAgentSelectorConfig with oneOf schemas: EndpointAgentLabelsSelectorConfig, EndpointAllAgentsSelectorConfig, EndpointSpecificAgentsSelectorConfig. Details: " + ", ".join(error_messages)) + raise ValueError("No match found when setting `actual_instance` in EndpointAgentSelectorConfig with oneOf schemas: EndpointAgentLabelsSelectorConfig, EndpointAgentTagsSelectorConfig, EndpointAllAgentsSelectorConfig, EndpointSpecificAgentsSelectorConfig. Details: " + ", ".join(error_messages)) else: return v @@ -103,25 +111,31 @@ class EndpointAgentSelectorConfig(BaseModel): match += 1 except (ValidationError, ValueError) as e: error_messages.append(str(e)) - # deserialize data into EndpointAgentLabelsSelectorConfig - try: - instance.actual_instance = EndpointAgentLabelsSelectorConfig.from_json(json_str) - match += 1 - except (ValidationError, ValueError) as e: - error_messages.append(str(e)) # deserialize data into EndpointSpecificAgentsSelectorConfig try: instance.actual_instance = EndpointSpecificAgentsSelectorConfig.from_json(json_str) match += 1 except (ValidationError, ValueError) as e: error_messages.append(str(e)) + # deserialize data into EndpointAgentLabelsSelectorConfig + try: + instance.actual_instance = EndpointAgentLabelsSelectorConfig.from_json(json_str) + match += 1 + except (ValidationError, ValueError) as e: + error_messages.append(str(e)) + # deserialize data into EndpointAgentTagsSelectorConfig + try: + instance.actual_instance = EndpointAgentTagsSelectorConfig.from_json(json_str) + 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 EndpointAgentSelectorConfig with oneOf schemas: EndpointAgentLabelsSelectorConfig, EndpointAllAgentsSelectorConfig, EndpointSpecificAgentsSelectorConfig. Details: " + ", ".join(error_messages)) + raise ValueError("Multiple matches found when deserializing the JSON string into EndpointAgentSelectorConfig with oneOf schemas: EndpointAgentLabelsSelectorConfig, EndpointAgentTagsSelectorConfig, EndpointAllAgentsSelectorConfig, EndpointSpecificAgentsSelectorConfig. Details: " + ", ".join(error_messages)) elif match == 0: # no match - raise ValueError("No match found when deserializing the JSON string into EndpointAgentSelectorConfig with oneOf schemas: EndpointAgentLabelsSelectorConfig, EndpointAllAgentsSelectorConfig, EndpointSpecificAgentsSelectorConfig. Details: " + ", ".join(error_messages)) + raise ValueError("No match found when deserializing the JSON string into EndpointAgentSelectorConfig with oneOf schemas: EndpointAgentLabelsSelectorConfig, EndpointAgentTagsSelectorConfig, EndpointAllAgentsSelectorConfig, EndpointSpecificAgentsSelectorConfig. Details: " + ", ".join(error_messages)) else: return instance @@ -139,7 +153,7 @@ class EndpointAgentSelectorConfig(BaseModel): else: return json.dumps(self.actual_instance) - def to_dict(self) -> Optional[Union[Dict[str, Any], EndpointAgentLabelsSelectorConfig, EndpointAllAgentsSelectorConfig, EndpointSpecificAgentsSelectorConfig]]: + def to_dict(self) -> Optional[Union[Dict[str, Any], EndpointAgentLabelsSelectorConfig, EndpointAgentTagsSelectorConfig, EndpointAllAgentsSelectorConfig, EndpointSpecificAgentsSelectorConfig]]: """Returns the dict representation of the actual instance""" if self.actual_instance is None: return None diff --git a/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/endpoint_agent_tags_selector_config.py b/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/endpoint_agent_tags_selector_config.py new file mode 100644 index 00000000..3d99d422 --- /dev/null +++ b/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/endpoint_agent_tags_selector_config.py @@ -0,0 +1,101 @@ +# coding: utf-8 + +""" + Endpoint Tests API + + Manage endpoint agent dynamic and scheduled tests using the Endpoint Tests API. + + 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_extensions import Annotated +from typing import Optional, Set +from typing_extensions import Self + +class EndpointAgentTagsSelectorConfig(BaseModel): + """ + Agent tags selection object. + """ # noqa: E501 + agent_selector_type: Annotated[str, Field(strict=True)] = Field(alias="agentSelectorType") + max_machines: Optional[StrictInt] = Field(default=25, description="Maximum number of agents which can execute the test.", alias="maxMachines") + endpoint_agent_labels: Optional[List[StrictStr]] = Field(default=None, description="Deprecated. Use `tagIds` instead. List of endpoint agent label IDs (obtained from `/endpoint/labels` endpoint), required when `agentSelectorType` is set to `agent-labels`. ", alias="endpointAgentLabels") + tag_ids: Optional[List[StrictStr]] = Field(default=None, description="List of tag IDs (obtained from `/tags` endpoint).", alias="tagIds") + __properties: ClassVar[List[str]] = ["agentSelectorType", "maxMachines", "endpointAgentLabels", "tagIds"] + + @field_validator('agent_selector_type') + def agent_selector_type_validate_regular_expression(cls, value): + """Validates the regular expression""" + if not re.match(r"^agent-tags$", value): + raise ValueError(r"must validate the regular expression /^agent-tags$/") + return value + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + extra="allow", + ) + + + 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 self.model_dump_json(by_alias=True, exclude_unset=True, exclude_none=True) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of EndpointAgentTagsSelectorConfig 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 EndpointAgentTagsSelectorConfig from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "agentSelectorType": obj.get("agentSelectorType"), + "maxMachines": obj.get("maxMachines") if obj.get("maxMachines") is not None else 25, + "endpointAgentLabels": obj.get("endpointAgentLabels"), + "tagIds": obj.get("tagIds") + }) + return _obj + + diff --git a/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/endpoint_agent_to_server_instant_test.py b/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/endpoint_agent_to_server_instant_test.py index d4f95a56..de25d040 100644 --- a/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/endpoint_agent_to_server_instant_test.py +++ b/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/endpoint_agent_to_server_instant_test.py @@ -3,7 +3,7 @@ """ Endpoint Tests API - Manage endpoint agent dynamic and scheduled tests using the Endpoint Tests API. + Manage endpoint agent dynamic and scheduled tests using the Endpoint Tests API. Generated by OpenAPI Generator (https://openapi-generator.tech) @@ -29,14 +29,15 @@ class EndpointAgentToServerInstantTest(BaseModel): """ # noqa: E501 agent_selector_type: Optional[EndpointTestAgentSelectorType] = Field(default=None, alias="agentSelectorType") agents: Optional[List[StrictStr]] = Field(default=None, description="List of endpoint agent IDs (obtained from `/endpoint/agents` endpoint). Required when `agentSelectorType` is set to `specific-agent`.") - endpoint_agent_labels: Optional[List[StrictStr]] = Field(default=None, description="List of endpoint agent label IDs (obtained from `/endpoint/labels` endpoint), required when `agentSelectorType` is set to `agent-labels`.", alias="endpointAgentLabels") + endpoint_agent_labels: Optional[List[StrictStr]] = Field(default=None, description="Deprecated. Use `tagIds` instead. List of endpoint agent label IDs (obtained from `/endpoint/labels` endpoint), required when `agentSelectorType` is set to `agent-labels`. ", alias="endpointAgentLabels") + tag_ids: Optional[List[StrictStr]] = Field(default=None, description="List of tag IDs (obtained from `/tags` endpoint).", alias="tagIds") max_machines: Optional[StrictInt] = Field(default=25, description="Maximum number of agents which can execute the test.", alias="maxMachines") test_name: StrictStr = Field(description="Name of the test.", alias="testName") ip_version: Optional[EndpointIpVersionIn] = Field(default=None, alias="ipVersion") server_name: Optional[StrictStr] = Field(default=None, description="A server address without a protocol or IP address. **Deprecated, use `server` instead**.", alias="serverName") server: StrictStr = Field(description="Target domain name or IP address.") port: Optional[StrictInt] = Field(default=443, description="Port number.") - __properties: ClassVar[List[str]] = ["agentSelectorType", "agents", "endpointAgentLabels", "maxMachines", "testName", "ipVersion", "serverName", "server", "port"] + __properties: ClassVar[List[str]] = ["agentSelectorType", "agents", "endpointAgentLabels", "tagIds", "maxMachines", "testName", "ipVersion", "serverName", "server", "port"] model_config = ConfigDict( populate_by_name=True, @@ -93,6 +94,7 @@ class EndpointAgentToServerInstantTest(BaseModel): "agentSelectorType": obj.get("agentSelectorType"), "agents": obj.get("agents"), "endpointAgentLabels": obj.get("endpointAgentLabels"), + "tagIds": obj.get("tagIds"), "maxMachines": obj.get("maxMachines") if obj.get("maxMachines") is not None else 25, "testName": obj.get("testName"), "ipVersion": obj.get("ipVersion"), diff --git a/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/endpoint_agent_to_server_test.py b/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/endpoint_agent_to_server_test.py index ba8144a7..9bce490b 100644 --- a/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/endpoint_agent_to_server_test.py +++ b/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/endpoint_agent_to_server_test.py @@ -3,7 +3,7 @@ """ Endpoint Tests API - Manage endpoint agent dynamic and scheduled tests using the Endpoint Tests API. + Manage endpoint agent dynamic and scheduled tests using the Endpoint Tests API. Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/endpoint_agent_to_server_test_request.py b/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/endpoint_agent_to_server_test_request.py index fee9a28c..fc767cb5 100644 --- a/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/endpoint_agent_to_server_test_request.py +++ b/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/endpoint_agent_to_server_test_request.py @@ -3,7 +3,7 @@ """ Endpoint Tests API - Manage endpoint agent dynamic and scheduled tests using the Endpoint Tests API. + Manage endpoint agent dynamic and scheduled tests using the Endpoint Tests API. Generated by OpenAPI Generator (https://openapi-generator.tech) @@ -31,7 +31,8 @@ class EndpointAgentToServerTestRequest(BaseModel): """ # noqa: E501 agent_selector_type: Optional[EndpointTestAgentSelectorType] = Field(default=None, alias="agentSelectorType") agents: Optional[List[StrictStr]] = Field(default=None, description="List of endpoint agent IDs (obtained from `/endpoint/agents` endpoint). Required when `agentSelectorType` is set to `specific-agent`.") - endpoint_agent_labels: Optional[List[StrictStr]] = Field(default=None, description="List of endpoint agent label IDs (obtained from `/endpoint/labels` endpoint), required when `agentSelectorType` is set to `agent-labels`.", alias="endpointAgentLabels") + endpoint_agent_labels: Optional[List[StrictStr]] = Field(default=None, description="Deprecated. Use `tagIds` instead. List of endpoint agent label IDs (obtained from `/endpoint/labels` endpoint), required when `agentSelectorType` is set to `agent-labels`. ", alias="endpointAgentLabels") + tag_ids: Optional[List[StrictStr]] = Field(default=None, description="List of tag IDs (obtained from `/tags` endpoint).", alias="tagIds") max_machines: Optional[StrictInt] = Field(default=25, description="Maximum number of agents which can execute the test.", alias="maxMachines") test_name: StrictStr = Field(description="Name of the test.", alias="testName") ip_version: Optional[EndpointIpVersionIn] = Field(default=None, alias="ipVersion") @@ -41,7 +42,7 @@ class EndpointAgentToServerTestRequest(BaseModel): is_prioritized: Optional[StrictBool] = Field(default=False, description="Indicates whether the test should be prioritized when the number of tests assigned to an agent exceeds the license limit.", alias="isPrioritized") interval: Optional[TestInterval] = None protocol: Optional[EndpointTestProtocol] = None - __properties: ClassVar[List[str]] = ["agentSelectorType", "agents", "endpointAgentLabels", "maxMachines", "testName", "ipVersion", "serverName", "server", "port", "isPrioritized", "interval", "protocol"] + __properties: ClassVar[List[str]] = ["agentSelectorType", "agents", "endpointAgentLabels", "tagIds", "maxMachines", "testName", "ipVersion", "serverName", "server", "port", "isPrioritized", "interval", "protocol"] model_config = ConfigDict( populate_by_name=True, @@ -98,6 +99,7 @@ class EndpointAgentToServerTestRequest(BaseModel): "agentSelectorType": obj.get("agentSelectorType"), "agents": obj.get("agents"), "endpointAgentLabels": obj.get("endpointAgentLabels"), + "tagIds": obj.get("tagIds"), "maxMachines": obj.get("maxMachines") if obj.get("maxMachines") is not None else 25, "testName": obj.get("testName"), "ipVersion": obj.get("ipVersion"), diff --git a/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/endpoint_agent_to_server_tests.py b/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/endpoint_agent_to_server_tests.py index acd92171..24d0e1f5 100644 --- a/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/endpoint_agent_to_server_tests.py +++ b/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/endpoint_agent_to_server_tests.py @@ -3,7 +3,7 @@ """ Endpoint Tests API - Manage endpoint agent dynamic and scheduled tests using the Endpoint Tests API. + Manage endpoint agent dynamic and scheduled tests using the Endpoint Tests API. Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/endpoint_all_agents_selector_config.py b/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/endpoint_all_agents_selector_config.py index 159e53d0..de366874 100644 --- a/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/endpoint_all_agents_selector_config.py +++ b/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/endpoint_all_agents_selector_config.py @@ -3,7 +3,7 @@ """ Endpoint Tests API - Manage endpoint agent dynamic and scheduled tests using the Endpoint Tests API. + Manage endpoint agent dynamic and scheduled tests using the Endpoint Tests API. Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/endpoint_dynamic_test_update.py b/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/endpoint_dynamic_test_update.py index fd6f8caf..bd8ad3d6 100644 --- a/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/endpoint_dynamic_test_update.py +++ b/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/endpoint_dynamic_test_update.py @@ -3,7 +3,7 @@ """ Endpoint Tests API - Manage endpoint agent dynamic and scheduled tests using the Endpoint Tests API. + Manage endpoint agent dynamic and scheduled tests using the Endpoint Tests API. Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/endpoint_http_server_base_test.py b/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/endpoint_http_server_base_test.py index 46fd6aa3..1985074d 100644 --- a/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/endpoint_http_server_base_test.py +++ b/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/endpoint_http_server_base_test.py @@ -3,7 +3,7 @@ """ Endpoint Tests API - Manage endpoint agent dynamic and scheduled tests using the Endpoint Tests API. + Manage endpoint agent dynamic and scheduled tests using the Endpoint Tests API. Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/endpoint_http_server_instant_test.py b/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/endpoint_http_server_instant_test.py index 3f87d688..6aa78552 100644 --- a/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/endpoint_http_server_instant_test.py +++ b/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/endpoint_http_server_instant_test.py @@ -3,7 +3,7 @@ """ Endpoint Tests API - Manage endpoint agent dynamic and scheduled tests using the Endpoint Tests API. + Manage endpoint agent dynamic and scheduled tests using the Endpoint Tests API. Generated by OpenAPI Generator (https://openapi-generator.tech) @@ -33,7 +33,8 @@ class EndpointHttpServerInstantTest(BaseModel): """ # noqa: E501 agent_selector_type: Optional[EndpointTestAgentSelectorType] = Field(default=None, alias="agentSelectorType") agents: Optional[List[StrictStr]] = Field(default=None, description="List of endpoint agent IDs (obtained from `/endpoint/agents` endpoint). Required when `agentSelectorType` is set to `specific-agent`.") - endpoint_agent_labels: Optional[List[StrictStr]] = Field(default=None, description="List of endpoint agent label IDs (obtained from `/endpoint/labels` endpoint), required when `agentSelectorType` is set to `agent-labels`.", alias="endpointAgentLabels") + endpoint_agent_labels: Optional[List[StrictStr]] = Field(default=None, description="Deprecated. Use `tagIds` instead. List of endpoint agent label IDs (obtained from `/endpoint/labels` endpoint), required when `agentSelectorType` is set to `agent-labels`. ", alias="endpointAgentLabels") + tag_ids: Optional[List[StrictStr]] = Field(default=None, description="List of tag IDs (obtained from `/tags` endpoint).", alias="tagIds") max_machines: Optional[StrictInt] = Field(default=25, description="Maximum number of agents which can execute the test.", alias="maxMachines") test_name: StrictStr = Field(description="Name of the test.", alias="testName") ip_version: Optional[EndpointIpVersionIn] = Field(default=None, alias="ipVersion") @@ -51,7 +52,7 @@ class EndpointHttpServerInstantTest(BaseModel): network_measurements: Optional[StrictBool] = Field(default=True, description="Enable or disable network measurements. Set to true to enable or false to disable network measurements.", alias="networkMeasurements") target_response_time: Optional[StrictInt] = Field(default=1000, description="Response time target in milliseconds. Affects the colors of agents and legends on the view page. The value is compared with actual response time in order to determine the color scale (from green to red).", alias="targetResponseTime") password: Optional[StrictStr] = Field(default=None, description="Password for Basic/NTLM authentication.") - __properties: ClassVar[List[str]] = ["agentSelectorType", "agents", "endpointAgentLabels", "maxMachines", "testName", "ipVersion", "authType", "hasPathTraceInSession", "httpTimeLimit", "protocol", "username", "sslVersionId", "tcpProbeMode", "verifyCertificate", "url", "hasPing", "hasTraceroute", "networkMeasurements", "targetResponseTime", "password"] + __properties: ClassVar[List[str]] = ["agentSelectorType", "agents", "endpointAgentLabels", "tagIds", "maxMachines", "testName", "ipVersion", "authType", "hasPathTraceInSession", "httpTimeLimit", "protocol", "username", "sslVersionId", "tcpProbeMode", "verifyCertificate", "url", "hasPing", "hasTraceroute", "networkMeasurements", "targetResponseTime", "password"] model_config = ConfigDict( populate_by_name=True, @@ -108,6 +109,7 @@ class EndpointHttpServerInstantTest(BaseModel): "agentSelectorType": obj.get("agentSelectorType"), "agents": obj.get("agents"), "endpointAgentLabels": obj.get("endpointAgentLabels"), + "tagIds": obj.get("tagIds"), "maxMachines": obj.get("maxMachines") if obj.get("maxMachines") is not None else 25, "testName": obj.get("testName"), "ipVersion": obj.get("ipVersion"), diff --git a/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/endpoint_http_server_test.py b/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/endpoint_http_server_test.py index a1bf7c6f..4bf3c5f7 100644 --- a/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/endpoint_http_server_test.py +++ b/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/endpoint_http_server_test.py @@ -3,7 +3,7 @@ """ Endpoint Tests API - Manage endpoint agent dynamic and scheduled tests using the Endpoint Tests API. + Manage endpoint agent dynamic and scheduled tests using the Endpoint Tests API. Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/endpoint_http_server_test_request.py b/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/endpoint_http_server_test_request.py index 3fea1ae9..a2f3e1a9 100644 --- a/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/endpoint_http_server_test_request.py +++ b/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/endpoint_http_server_test_request.py @@ -3,7 +3,7 @@ """ Endpoint Tests API - Manage endpoint agent dynamic and scheduled tests using the Endpoint Tests API. + Manage endpoint agent dynamic and scheduled tests using the Endpoint Tests API. Generated by OpenAPI Generator (https://openapi-generator.tech) @@ -34,7 +34,8 @@ class EndpointHttpServerTestRequest(BaseModel): """ # noqa: E501 agent_selector_type: Optional[EndpointTestAgentSelectorType] = Field(default=None, alias="agentSelectorType") agents: Optional[List[StrictStr]] = Field(default=None, description="List of endpoint agent IDs (obtained from `/endpoint/agents` endpoint). Required when `agentSelectorType` is set to `specific-agent`.") - endpoint_agent_labels: Optional[List[StrictStr]] = Field(default=None, description="List of endpoint agent label IDs (obtained from `/endpoint/labels` endpoint), required when `agentSelectorType` is set to `agent-labels`.", alias="endpointAgentLabels") + endpoint_agent_labels: Optional[List[StrictStr]] = Field(default=None, description="Deprecated. Use `tagIds` instead. List of endpoint agent label IDs (obtained from `/endpoint/labels` endpoint), required when `agentSelectorType` is set to `agent-labels`. ", alias="endpointAgentLabels") + tag_ids: Optional[List[StrictStr]] = Field(default=None, description="List of tag IDs (obtained from `/tags` endpoint).", alias="tagIds") max_machines: Optional[StrictInt] = Field(default=25, description="Maximum number of agents which can execute the test.", alias="maxMachines") test_name: StrictStr = Field(description="Name of the test.", alias="testName") ip_version: Optional[EndpointIpVersionIn] = Field(default=None, alias="ipVersion") @@ -54,7 +55,7 @@ class EndpointHttpServerTestRequest(BaseModel): password: Optional[StrictStr] = Field(default=None, description="Password for Basic/NTLM authentication.") is_prioritized: Optional[StrictBool] = Field(default=False, description="Indicates whether the test should be prioritized when the number of tests assigned to an agent exceeds the license limit.", alias="isPrioritized") interval: Optional[TestInterval] = None - __properties: ClassVar[List[str]] = ["agentSelectorType", "agents", "endpointAgentLabels", "maxMachines", "testName", "ipVersion", "authType", "hasPathTraceInSession", "httpTimeLimit", "protocol", "username", "sslVersionId", "tcpProbeMode", "verifyCertificate", "url", "hasPing", "hasTraceroute", "networkMeasurements", "targetResponseTime", "password", "isPrioritized", "interval"] + __properties: ClassVar[List[str]] = ["agentSelectorType", "agents", "endpointAgentLabels", "tagIds", "maxMachines", "testName", "ipVersion", "authType", "hasPathTraceInSession", "httpTimeLimit", "protocol", "username", "sslVersionId", "tcpProbeMode", "verifyCertificate", "url", "hasPing", "hasTraceroute", "networkMeasurements", "targetResponseTime", "password", "isPrioritized", "interval"] model_config = ConfigDict( populate_by_name=True, @@ -111,6 +112,7 @@ class EndpointHttpServerTestRequest(BaseModel): "agentSelectorType": obj.get("agentSelectorType"), "agents": obj.get("agents"), "endpointAgentLabels": obj.get("endpointAgentLabels"), + "tagIds": obj.get("tagIds"), "maxMachines": obj.get("maxMachines") if obj.get("maxMachines") is not None else 25, "testName": obj.get("testName"), "ipVersion": obj.get("ipVersion"), diff --git a/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/endpoint_http_server_tests.py b/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/endpoint_http_server_tests.py index d29a4502..4aa7ef93 100644 --- a/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/endpoint_http_server_tests.py +++ b/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/endpoint_http_server_tests.py @@ -3,7 +3,7 @@ """ Endpoint Tests API - Manage endpoint agent dynamic and scheduled tests using the Endpoint Tests API. + Manage endpoint agent dynamic and scheduled tests using the Endpoint Tests API. Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/endpoint_http_test_update.py b/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/endpoint_http_test_update.py index dbcbc4a2..b1389742 100644 --- a/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/endpoint_http_test_update.py +++ b/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/endpoint_http_test_update.py @@ -3,7 +3,7 @@ """ Endpoint Tests API - Manage endpoint agent dynamic and scheduled tests using the Endpoint Tests API. + Manage endpoint agent dynamic and scheduled tests using the Endpoint Tests API. Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/endpoint_instant_test.py b/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/endpoint_instant_test.py index 500e1cb3..705f131e 100644 --- a/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/endpoint_instant_test.py +++ b/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/endpoint_instant_test.py @@ -3,7 +3,7 @@ """ Endpoint Tests API - Manage endpoint agent dynamic and scheduled tests using the Endpoint Tests API. + Manage endpoint agent dynamic and scheduled tests using the Endpoint Tests API. Generated by OpenAPI Generator (https://openapi-generator.tech) @@ -29,11 +29,12 @@ class EndpointInstantTest(BaseModel): """ # noqa: E501 agent_selector_type: Optional[EndpointTestAgentSelectorType] = Field(default=None, alias="agentSelectorType") agents: Optional[List[StrictStr]] = Field(default=None, description="List of endpoint agent IDs (obtained from `/endpoint/agents` endpoint). Required when `agentSelectorType` is set to `specific-agent`.") - endpoint_agent_labels: Optional[List[StrictStr]] = Field(default=None, description="List of endpoint agent label IDs (obtained from `/endpoint/labels` endpoint), required when `agentSelectorType` is set to `agent-labels`.", alias="endpointAgentLabels") + endpoint_agent_labels: Optional[List[StrictStr]] = Field(default=None, description="Deprecated. Use `tagIds` instead. List of endpoint agent label IDs (obtained from `/endpoint/labels` endpoint), required when `agentSelectorType` is set to `agent-labels`. ", alias="endpointAgentLabels") + tag_ids: Optional[List[StrictStr]] = Field(default=None, description="List of tag IDs (obtained from `/tags` endpoint).", alias="tagIds") max_machines: Optional[StrictInt] = Field(default=25, description="Maximum number of agents which can execute the test.", alias="maxMachines") test_name: StrictStr = Field(description="Name of the test.", alias="testName") ip_version: Optional[EndpointIpVersionIn] = Field(default=None, alias="ipVersion") - __properties: ClassVar[List[str]] = ["agentSelectorType", "agents", "endpointAgentLabels", "maxMachines", "testName", "ipVersion"] + __properties: ClassVar[List[str]] = ["agentSelectorType", "agents", "endpointAgentLabels", "tagIds", "maxMachines", "testName", "ipVersion"] model_config = ConfigDict( populate_by_name=True, @@ -90,6 +91,7 @@ class EndpointInstantTest(BaseModel): "agentSelectorType": obj.get("agentSelectorType"), "agents": obj.get("agents"), "endpointAgentLabels": obj.get("endpointAgentLabels"), + "tagIds": obj.get("tagIds"), "maxMachines": obj.get("maxMachines") if obj.get("maxMachines") is not None else 25, "testName": obj.get("testName"), "ipVersion": obj.get("ipVersion") diff --git a/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/endpoint_ip_version_in.py b/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/endpoint_ip_version_in.py index f622642c..a118ecab 100644 --- a/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/endpoint_ip_version_in.py +++ b/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/endpoint_ip_version_in.py @@ -3,7 +3,7 @@ """ Endpoint Tests API - Manage endpoint agent dynamic and scheduled tests using the Endpoint Tests API. + Manage endpoint agent dynamic and scheduled tests using the Endpoint Tests API. Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/endpoint_network_test_update.py b/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/endpoint_network_test_update.py index b9a522ec..2c0a89f2 100644 --- a/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/endpoint_network_test_update.py +++ b/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/endpoint_network_test_update.py @@ -3,7 +3,7 @@ """ Endpoint Tests API - Manage endpoint agent dynamic and scheduled tests using the Endpoint Tests API. + Manage endpoint agent dynamic and scheduled tests using the Endpoint Tests API. Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/endpoint_scheduled_test_type.py b/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/endpoint_scheduled_test_type.py index f8f7d072..e304c55d 100644 --- a/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/endpoint_scheduled_test_type.py +++ b/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/endpoint_scheduled_test_type.py @@ -3,7 +3,7 @@ """ Endpoint Tests API - Manage endpoint agent dynamic and scheduled tests using the Endpoint Tests API. + Manage endpoint agent dynamic and scheduled tests using the Endpoint Tests API. Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/endpoint_specific_agents_selector_config.py b/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/endpoint_specific_agents_selector_config.py index ee0440af..40db10c4 100644 --- a/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/endpoint_specific_agents_selector_config.py +++ b/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/endpoint_specific_agents_selector_config.py @@ -3,7 +3,7 @@ """ Endpoint Tests API - Manage endpoint agent dynamic and scheduled tests using the Endpoint Tests API. + Manage endpoint agent dynamic and scheduled tests using the Endpoint Tests API. Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/endpoint_test.py b/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/endpoint_test.py index b62c65df..5dec85c9 100644 --- a/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/endpoint_test.py +++ b/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/endpoint_test.py @@ -3,7 +3,7 @@ """ Endpoint Tests API - Manage endpoint agent dynamic and scheduled tests using the Endpoint Tests API. + Manage endpoint agent dynamic and scheduled tests using the Endpoint Tests API. Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/endpoint_test_agent_selector_type.py b/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/endpoint_test_agent_selector_type.py index 3a7067f7..37509ed5 100644 --- a/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/endpoint_test_agent_selector_type.py +++ b/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/endpoint_test_agent_selector_type.py @@ -3,7 +3,7 @@ """ Endpoint Tests API - Manage endpoint agent dynamic and scheduled tests using the Endpoint Tests API. + Manage endpoint agent dynamic and scheduled tests using the Endpoint Tests API. Generated by OpenAPI Generator (https://openapi-generator.tech) @@ -19,7 +19,7 @@ from typing_extensions import Self class EndpointTestAgentSelectorType(str, Enum): """ - Retrieve either all available agents, a specific list of agents, or a list of agent labels. + Specifies how agents are selected for the endpoint test. Agents can be selected from: - all available agents - a specific list of agents - agents matching tags - agents matching labels (deprecated) """ """ @@ -28,6 +28,7 @@ class EndpointTestAgentSelectorType(str, Enum): ALL_MINUS_AGENTS = 'all-agents' SPECIFIC_MINUS_AGENTS = 'specific-agents' AGENT_MINUS_LABELS = 'agent-labels' + AGENT_MINUS_TAGS = 'agent-tags' UNKNOWN = 'unknown' @classmethod diff --git a/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/endpoint_test_auth_type.py b/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/endpoint_test_auth_type.py index 6a82c30a..a00904cc 100644 --- a/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/endpoint_test_auth_type.py +++ b/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/endpoint_test_auth_type.py @@ -3,7 +3,7 @@ """ Endpoint Tests API - Manage endpoint agent dynamic and scheduled tests using the Endpoint Tests API. + Manage endpoint agent dynamic and scheduled tests using the Endpoint Tests API. Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/endpoint_test_links.py b/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/endpoint_test_links.py index 22f2b103..62e675b4 100644 --- a/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/endpoint_test_links.py +++ b/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/endpoint_test_links.py @@ -3,7 +3,7 @@ """ Endpoint Tests API - Manage endpoint agent dynamic and scheduled tests using the Endpoint Tests API. + Manage endpoint agent dynamic and scheduled tests using the Endpoint Tests API. Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/endpoint_test_protocol.py b/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/endpoint_test_protocol.py index 507d4706..391e1be9 100644 --- a/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/endpoint_test_protocol.py +++ b/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/endpoint_test_protocol.py @@ -3,7 +3,7 @@ """ Endpoint Tests API - Manage endpoint agent dynamic and scheduled tests using the Endpoint Tests API. + Manage endpoint agent dynamic and scheduled tests using the Endpoint Tests API. Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/endpoint_test_self_link.py b/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/endpoint_test_self_link.py index 07f2c7ed..383bce3d 100644 --- a/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/endpoint_test_self_link.py +++ b/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/endpoint_test_self_link.py @@ -3,7 +3,7 @@ """ Endpoint Tests API - Manage endpoint agent dynamic and scheduled tests using the Endpoint Tests API. + Manage endpoint agent dynamic and scheduled tests using the Endpoint Tests API. Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/endpoint_tests.py b/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/endpoint_tests.py index ffca9f75..7e005a8e 100644 --- a/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/endpoint_tests.py +++ b/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/endpoint_tests.py @@ -3,7 +3,7 @@ """ Endpoint Tests API - Manage endpoint agent dynamic and scheduled tests using the Endpoint Tests API. + Manage endpoint agent dynamic and scheduled tests using the Endpoint Tests API. Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/error.py b/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/error.py index 84035583..2cb75e4e 100644 --- a/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/error.py +++ b/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/error.py @@ -3,7 +3,7 @@ """ Endpoint Tests API - Manage endpoint agent dynamic and scheduled tests using the Endpoint Tests API. + Manage endpoint agent dynamic and scheduled tests using the Endpoint Tests API. Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/link.py b/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/link.py index 367b909e..fd179e01 100644 --- a/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/link.py +++ b/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/link.py @@ -3,7 +3,7 @@ """ Endpoint Tests API - Manage endpoint agent dynamic and scheduled tests using the Endpoint Tests API. + Manage endpoint agent dynamic and scheduled tests using the Endpoint Tests API. Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/self_links.py b/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/self_links.py index 65a93e63..dc12e6d0 100644 --- a/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/self_links.py +++ b/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/self_links.py @@ -3,7 +3,7 @@ """ Endpoint Tests API - Manage endpoint agent dynamic and scheduled tests using the Endpoint Tests API. + Manage endpoint agent dynamic and scheduled tests using the Endpoint Tests API. Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/test_interval.py b/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/test_interval.py index 44ab28b6..bda77762 100644 --- a/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/test_interval.py +++ b/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/test_interval.py @@ -3,7 +3,7 @@ """ Endpoint Tests API - Manage endpoint agent dynamic and scheduled tests using the Endpoint Tests API. + Manage endpoint agent dynamic and scheduled tests using the Endpoint Tests API. Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/test_label.py b/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/test_label.py index bef60095..69cff5ac 100644 --- a/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/test_label.py +++ b/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/test_label.py @@ -3,7 +3,7 @@ """ Endpoint Tests API - Manage endpoint agent dynamic and scheduled tests using the Endpoint Tests API. + Manage endpoint agent dynamic and scheduled tests using the Endpoint Tests API. Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/test_probe_mode.py b/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/test_probe_mode.py index 96ec3b76..1461840d 100644 --- a/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/test_probe_mode.py +++ b/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/test_probe_mode.py @@ -3,7 +3,7 @@ """ Endpoint Tests API - Manage endpoint agent dynamic and scheduled tests using the Endpoint Tests API. + Manage endpoint agent dynamic and scheduled tests using the Endpoint Tests API. Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/test_probe_mode_response.py b/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/test_probe_mode_response.py index 38068d8e..757196ff 100644 --- a/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/test_probe_mode_response.py +++ b/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/test_probe_mode_response.py @@ -3,7 +3,7 @@ """ Endpoint Tests API - Manage endpoint agent dynamic and scheduled tests using the Endpoint Tests API. + Manage endpoint agent dynamic and scheduled tests using the Endpoint Tests API. Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/test_ssl_version_id.py b/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/test_ssl_version_id.py index 6ebd495f..9057db39 100644 --- a/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/test_ssl_version_id.py +++ b/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/test_ssl_version_id.py @@ -3,7 +3,7 @@ """ Endpoint Tests API - Manage endpoint agent dynamic and scheduled tests using the Endpoint Tests API. + Manage endpoint agent dynamic and scheduled tests using the Endpoint Tests API. Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/test_update.py b/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/test_update.py index b052471d..ed77949b 100644 --- a/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/test_update.py +++ b/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/test_update.py @@ -3,7 +3,7 @@ """ Endpoint Tests API - Manage endpoint agent dynamic and scheduled tests using the Endpoint Tests API. + Manage endpoint agent dynamic and scheduled tests using the Endpoint Tests API. Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/unauthorized_error.py b/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/unauthorized_error.py index 193dc77d..1496c80a 100644 --- a/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/unauthorized_error.py +++ b/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/unauthorized_error.py @@ -3,7 +3,7 @@ """ Endpoint Tests API - Manage endpoint agent dynamic and scheduled tests using the Endpoint Tests API. + Manage endpoint agent dynamic and scheduled tests using the Endpoint Tests API. Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/validation_error.py b/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/validation_error.py index 95f514a5..15736e1c 100644 --- a/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/validation_error.py +++ b/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/validation_error.py @@ -3,7 +3,7 @@ """ Endpoint Tests API - Manage endpoint agent dynamic and scheduled tests using the Endpoint Tests API. + Manage endpoint agent dynamic and scheduled tests using the Endpoint Tests API. Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/validation_error_item.py b/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/validation_error_item.py index c0530013..6ed336d6 100644 --- a/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/validation_error_item.py +++ b/thousandeyes-sdk-endpoint-tests/src/thousandeyes_sdk/endpoint_tests/models/validation_error_item.py @@ -3,7 +3,7 @@ """ Endpoint Tests API - Manage endpoint agent dynamic and scheduled tests using the Endpoint Tests API. + Manage endpoint agent dynamic and scheduled tests using the Endpoint Tests API. Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/thousandeyes-sdk-endpoint-tests/test/test_agent_to_server_endpoint_dynamic_tests_api.py b/thousandeyes-sdk-endpoint-tests/test/test_agent_to_server_endpoint_dynamic_tests_api.py index e8fb9d47..069f81ad 100644 --- a/thousandeyes-sdk-endpoint-tests/test/test_agent_to_server_endpoint_dynamic_tests_api.py +++ b/thousandeyes-sdk-endpoint-tests/test/test_agent_to_server_endpoint_dynamic_tests_api.py @@ -3,7 +3,7 @@ """ Endpoint Tests API - Manage endpoint agent dynamic and scheduled tests using the Endpoint Tests API. + Manage endpoint agent dynamic and scheduled tests using the Endpoint Tests API. Generated by OpenAPI Generator (https://openapi-generator.tech) @@ -32,17 +32,18 @@ class TestAgentToServerEndpointDynamicTestsApi(unittest.TestCase): """Test case for create_agent_to_server_endpoint_dynamic_test request and response models""" request_body_json = """ { - "protocol" : "icmp", - "ipVersion" : "V4_ONLY", - "application" : "webex", "agentSelectorType" : "all-agents", + "tagIds" : [ "c6b78e57-81a2-4c5f-a11a-d96c3c664d55", "5aeab5d5-0d34-4d44-a7ac-fb440185295c" ], "isPrioritized" : false, "maxMachines" : 25, - "interval" : 60, - "hasPathTraceInSession" : true, "endpointAgentLabels" : [ "567", "214" ], "tcpProbeMode" : "auto", "agents" : [ "0a3b9998-dc3a-4ff2-b50d-ac4a7cd986e1", "66eec0f1-72b4-4755-aa83-3aed61d17f3c" ], + "protocol" : "icmp", + "ipVersion" : "V4_ONLY", + "application" : "webex", + "interval" : 60, + "hasPathTraceInSession" : true, "testName" : "Test name" } """ diff --git a/thousandeyes-sdk-endpoint-tests/test/test_agent_to_server_endpoint_scheduled_tests_api.py b/thousandeyes-sdk-endpoint-tests/test/test_agent_to_server_endpoint_scheduled_tests_api.py index c6a8872e..67f85982 100644 --- a/thousandeyes-sdk-endpoint-tests/test/test_agent_to_server_endpoint_scheduled_tests_api.py +++ b/thousandeyes-sdk-endpoint-tests/test/test_agent_to_server_endpoint_scheduled_tests_api.py @@ -3,7 +3,7 @@ """ Endpoint Tests API - Manage endpoint agent dynamic and scheduled tests using the Endpoint Tests API. + Manage endpoint agent dynamic and scheduled tests using the Endpoint Tests API. Generated by OpenAPI Generator (https://openapi-generator.tech) @@ -33,16 +33,17 @@ class TestAgentToServerEndpointScheduledTestsApi(unittest.TestCase): request_body_json = """ { "server" : "www.example.com", - "protocol" : "icmp", - "ipVersion" : "V4_ONLY", - "port" : 443, "agentSelectorType" : "all-agents", + "tagIds" : [ "c6b78e57-81a2-4c5f-a11a-d96c3c664d55", "5aeab5d5-0d34-4d44-a7ac-fb440185295c" ], "maxMachines" : 25, "serverName" : "www.example.com", "isPrioritized" : false, - "interval" : 60, "endpointAgentLabels" : [ "567", "214" ], "agents" : [ "0a3b9998-dc3a-4ff2-b50d-ac4a7cd986e1", "66eec0f1-72b4-4755-aa83-3aed61d17f3c" ], + "protocol" : "icmp", + "ipVersion" : "V4_ONLY", + "port" : 443, + "interval" : 60, "testName" : "Test name" } """ diff --git a/thousandeyes-sdk-endpoint-tests/test/test_endpoint_scheduled_tests_api.py b/thousandeyes-sdk-endpoint-tests/test/test_endpoint_scheduled_tests_api.py index a869c3f6..da4704e8 100644 --- a/thousandeyes-sdk-endpoint-tests/test/test_endpoint_scheduled_tests_api.py +++ b/thousandeyes-sdk-endpoint-tests/test/test_endpoint_scheduled_tests_api.py @@ -3,7 +3,7 @@ """ Endpoint Tests API - Manage endpoint agent dynamic and scheduled tests using the Endpoint Tests API. + Manage endpoint agent dynamic and scheduled tests using the Endpoint Tests API. Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/thousandeyes-sdk-endpoint-tests/test/test_http_server_endpoint_scheduled_tests_api.py b/thousandeyes-sdk-endpoint-tests/test/test_http_server_endpoint_scheduled_tests_api.py index cac6ff5f..1cbe0bf3 100644 --- a/thousandeyes-sdk-endpoint-tests/test/test_http_server_endpoint_scheduled_tests_api.py +++ b/thousandeyes-sdk-endpoint-tests/test/test_http_server_endpoint_scheduled_tests_api.py @@ -3,7 +3,7 @@ """ Endpoint Tests API - Manage endpoint agent dynamic and scheduled tests using the Endpoint Tests API. + Manage endpoint agent dynamic and scheduled tests using the Endpoint Tests API. Generated by OpenAPI Generator (https://openapi-generator.tech) @@ -35,6 +35,7 @@ class TestHTTPServerEndpointScheduledTestsApi(unittest.TestCase): "verifyCertificate" : true, "hasPing" : true, "agentSelectorType" : "all-agents", + "tagIds" : [ "c6b78e57-81a2-4c5f-a11a-d96c3c664d55", "5aeab5d5-0d34-4d44-a7ac-fb440185295c" ], "maxMachines" : 25, "isPrioritized" : false, "httpTimeLimit" : 5000, diff --git a/thousandeyes-sdk-event-detection/README.md b/thousandeyes-sdk-event-detection/README.md index 88f6eed7..c51348c6 100644 --- a/thousandeyes-sdk-event-detection/README.md +++ b/thousandeyes-sdk-event-detection/README.md @@ -1,5 +1,4 @@ # thousandeyes-sdk-event-detection - Event detection occurs when ThousandEyes identifies that error signals related to a component (proxy, network node, AS, server etc) have deviated from the baselines established by events. * To determine this, ThousandEyes takes the test results from all accounts groups within an organization, and analyzes that data. * Noisy test results (those that have too many errors in a short window) are removed until they stabilize, and the rest of the results are tagged with the components associated with that test result (for example, proxy, network, or server). @@ -12,7 +11,7 @@ With the Events API, you can perform the following tasks on the ThousandEyes pla This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project: -- API version: 7.0.84 +- API version: 7.0.92 - Generator version: 7.6.0 - Build package: com.thousandeyes.api.codegen.ThousandeyesPythonGenerator diff --git a/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/__init__.py b/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/__init__.py index 2423650d..17bb8149 100644 --- a/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/__init__.py +++ b/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/__init__.py @@ -5,7 +5,7 @@ """ Event Detection API - Event detection occurs when ThousandEyes identifies that error signals related to a component (proxy, network node, AS, server etc) have deviated from the baselines established by events. * To determine this, ThousandEyes takes the test results from all accounts groups within an organization, and analyzes that data. * Noisy test results (those that have too many errors in a short window) are removed until they stabilize, and the rest of the results are tagged with the components associated with that test result (for example, proxy, network, or server). * Next, any increase in failures from the test results and each component helps in determining the problem domain and which component may be at fault. * When this failure rate increases beyond a pre-defined threshold (set by the algorithm), an event is triggered and an email notification is sent to the user (if they've enabled email alerts). With the Events API, you can perform the following tasks on the ThousandEyes platform: * **Retrieve Events**: Obtain a list of events and detailed information for each event. For more information about events, see [Event Detection](https://docs.thousandeyes.com/product-documentation/event-detection). + Event detection occurs when ThousandEyes identifies that error signals related to a component (proxy, network node, AS, server etc) have deviated from the baselines established by events. * To determine this, ThousandEyes takes the test results from all accounts groups within an organization, and analyzes that data. * Noisy test results (those that have too many errors in a short window) are removed until they stabilize, and the rest of the results are tagged with the components associated with that test result (for example, proxy, network, or server). * Next, any increase in failures from the test results and each component helps in determining the problem domain and which component may be at fault. * When this failure rate increases beyond a pre-defined threshold (set by the algorithm), an event is triggered and an email notification is sent to the user (if they've enabled email alerts). With the Events API, you can perform the following tasks on the ThousandEyes platform: * **Retrieve Events**: Obtain a list of events and detailed information for each event. For more information about events, see [Event Detection](https://docs.thousandeyes.com/product-documentation/event-detection). Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/api/events_api.py b/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/api/events_api.py index 84022d08..afd97f04 100644 --- a/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/api/events_api.py +++ b/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/api/events_api.py @@ -3,7 +3,7 @@ """ Event Detection API - Event detection occurs when ThousandEyes identifies that error signals related to a component (proxy, network node, AS, server etc) have deviated from the baselines established by events. * To determine this, ThousandEyes takes the test results from all accounts groups within an organization, and analyzes that data. * Noisy test results (those that have too many errors in a short window) are removed until they stabilize, and the rest of the results are tagged with the components associated with that test result (for example, proxy, network, or server). * Next, any increase in failures from the test results and each component helps in determining the problem domain and which component may be at fault. * When this failure rate increases beyond a pre-defined threshold (set by the algorithm), an event is triggered and an email notification is sent to the user (if they've enabled email alerts). With the Events API, you can perform the following tasks on the ThousandEyes platform: * **Retrieve Events**: Obtain a list of events and detailed information for each event. For more information about events, see [Event Detection](https://docs.thousandeyes.com/product-documentation/event-detection). + Event detection occurs when ThousandEyes identifies that error signals related to a component (proxy, network node, AS, server etc) have deviated from the baselines established by events. * To determine this, ThousandEyes takes the test results from all accounts groups within an organization, and analyzes that data. * Noisy test results (those that have too many errors in a short window) are removed until they stabilize, and the rest of the results are tagged with the components associated with that test result (for example, proxy, network, or server). * Next, any increase in failures from the test results and each component helps in determining the problem domain and which component may be at fault. * When this failure rate increases beyond a pre-defined threshold (set by the algorithm), an event is triggered and an email notification is sent to the user (if they've enabled email alerts). With the Events API, you can perform the following tasks on the ThousandEyes platform: * **Retrieve Events**: Obtain a list of events and detailed information for each event. For more information about events, see [Event Detection](https://docs.thousandeyes.com/product-documentation/event-detection). Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/models/__init__.py b/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/models/__init__.py index e5cb57b6..c9364bdd 100644 --- a/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/models/__init__.py +++ b/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/models/__init__.py @@ -4,7 +4,7 @@ """ Event Detection API - Event detection occurs when ThousandEyes identifies that error signals related to a component (proxy, network node, AS, server etc) have deviated from the baselines established by events. * To determine this, ThousandEyes takes the test results from all accounts groups within an organization, and analyzes that data. * Noisy test results (those that have too many errors in a short window) are removed until they stabilize, and the rest of the results are tagged with the components associated with that test result (for example, proxy, network, or server). * Next, any increase in failures from the test results and each component helps in determining the problem domain and which component may be at fault. * When this failure rate increases beyond a pre-defined threshold (set by the algorithm), an event is triggered and an email notification is sent to the user (if they've enabled email alerts). With the Events API, you can perform the following tasks on the ThousandEyes platform: * **Retrieve Events**: Obtain a list of events and detailed information for each event. For more information about events, see [Event Detection](https://docs.thousandeyes.com/product-documentation/event-detection). + Event detection occurs when ThousandEyes identifies that error signals related to a component (proxy, network node, AS, server etc) have deviated from the baselines established by events. * To determine this, ThousandEyes takes the test results from all accounts groups within an organization, and analyzes that data. * Noisy test results (those that have too many errors in a short window) are removed until they stabilize, and the rest of the results are tagged with the components associated with that test result (for example, proxy, network, or server). * Next, any increase in failures from the test results and each component helps in determining the problem domain and which component may be at fault. * When this failure rate increases beyond a pre-defined threshold (set by the algorithm), an event is triggered and an email notification is sent to the user (if they've enabled email alerts). With the Events API, you can perform the following tasks on the ThousandEyes platform: * **Retrieve Events**: Obtain a list of events and detailed information for each event. For more information about events, see [Event Detection](https://docs.thousandeyes.com/product-documentation/event-detection). Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/models/affected_agents.py b/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/models/affected_agents.py index 357aaf2c..70d8e106 100644 --- a/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/models/affected_agents.py +++ b/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/models/affected_agents.py @@ -3,7 +3,7 @@ """ Event Detection API - Event detection occurs when ThousandEyes identifies that error signals related to a component (proxy, network node, AS, server etc) have deviated from the baselines established by events. * To determine this, ThousandEyes takes the test results from all accounts groups within an organization, and analyzes that data. * Noisy test results (those that have too many errors in a short window) are removed until they stabilize, and the rest of the results are tagged with the components associated with that test result (for example, proxy, network, or server). * Next, any increase in failures from the test results and each component helps in determining the problem domain and which component may be at fault. * When this failure rate increases beyond a pre-defined threshold (set by the algorithm), an event is triggered and an email notification is sent to the user (if they've enabled email alerts). With the Events API, you can perform the following tasks on the ThousandEyes platform: * **Retrieve Events**: Obtain a list of events and detailed information for each event. For more information about events, see [Event Detection](https://docs.thousandeyes.com/product-documentation/event-detection). + Event detection occurs when ThousandEyes identifies that error signals related to a component (proxy, network node, AS, server etc) have deviated from the baselines established by events. * To determine this, ThousandEyes takes the test results from all accounts groups within an organization, and analyzes that data. * Noisy test results (those that have too many errors in a short window) are removed until they stabilize, and the rest of the results are tagged with the components associated with that test result (for example, proxy, network, or server). * Next, any increase in failures from the test results and each component helps in determining the problem domain and which component may be at fault. * When this failure rate increases beyond a pre-defined threshold (set by the algorithm), an event is triggered and an email notification is sent to the user (if they've enabled email alerts). With the Events API, you can perform the following tasks on the ThousandEyes platform: * **Retrieve Events**: Obtain a list of events and detailed information for each event. For more information about events, see [Event Detection](https://docs.thousandeyes.com/product-documentation/event-detection). Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/models/affected_count.py b/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/models/affected_count.py index 2a3d9ea2..5f4bd614 100644 --- a/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/models/affected_count.py +++ b/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/models/affected_count.py @@ -3,7 +3,7 @@ """ Event Detection API - Event detection occurs when ThousandEyes identifies that error signals related to a component (proxy, network node, AS, server etc) have deviated from the baselines established by events. * To determine this, ThousandEyes takes the test results from all accounts groups within an organization, and analyzes that data. * Noisy test results (those that have too many errors in a short window) are removed until they stabilize, and the rest of the results are tagged with the components associated with that test result (for example, proxy, network, or server). * Next, any increase in failures from the test results and each component helps in determining the problem domain and which component may be at fault. * When this failure rate increases beyond a pre-defined threshold (set by the algorithm), an event is triggered and an email notification is sent to the user (if they've enabled email alerts). With the Events API, you can perform the following tasks on the ThousandEyes platform: * **Retrieve Events**: Obtain a list of events and detailed information for each event. For more information about events, see [Event Detection](https://docs.thousandeyes.com/product-documentation/event-detection). + Event detection occurs when ThousandEyes identifies that error signals related to a component (proxy, network node, AS, server etc) have deviated from the baselines established by events. * To determine this, ThousandEyes takes the test results from all accounts groups within an organization, and analyzes that data. * Noisy test results (those that have too many errors in a short window) are removed until they stabilize, and the rest of the results are tagged with the components associated with that test result (for example, proxy, network, or server). * Next, any increase in failures from the test results and each component helps in determining the problem domain and which component may be at fault. * When this failure rate increases beyond a pre-defined threshold (set by the algorithm), an event is triggered and an email notification is sent to the user (if they've enabled email alerts). With the Events API, you can perform the following tasks on the ThousandEyes platform: * **Retrieve Events**: Obtain a list of events and detailed information for each event. For more information about events, see [Event Detection](https://docs.thousandeyes.com/product-documentation/event-detection). Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/models/affected_targets.py b/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/models/affected_targets.py index 94e4f8af..a87e985a 100644 --- a/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/models/affected_targets.py +++ b/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/models/affected_targets.py @@ -3,7 +3,7 @@ """ Event Detection API - Event detection occurs when ThousandEyes identifies that error signals related to a component (proxy, network node, AS, server etc) have deviated from the baselines established by events. * To determine this, ThousandEyes takes the test results from all accounts groups within an organization, and analyzes that data. * Noisy test results (those that have too many errors in a short window) are removed until they stabilize, and the rest of the results are tagged with the components associated with that test result (for example, proxy, network, or server). * Next, any increase in failures from the test results and each component helps in determining the problem domain and which component may be at fault. * When this failure rate increases beyond a pre-defined threshold (set by the algorithm), an event is triggered and an email notification is sent to the user (if they've enabled email alerts). With the Events API, you can perform the following tasks on the ThousandEyes platform: * **Retrieve Events**: Obtain a list of events and detailed information for each event. For more information about events, see [Event Detection](https://docs.thousandeyes.com/product-documentation/event-detection). + Event detection occurs when ThousandEyes identifies that error signals related to a component (proxy, network node, AS, server etc) have deviated from the baselines established by events. * To determine this, ThousandEyes takes the test results from all accounts groups within an organization, and analyzes that data. * Noisy test results (those that have too many errors in a short window) are removed until they stabilize, and the rest of the results are tagged with the components associated with that test result (for example, proxy, network, or server). * Next, any increase in failures from the test results and each component helps in determining the problem domain and which component may be at fault. * When this failure rate increases beyond a pre-defined threshold (set by the algorithm), an event is triggered and an email notification is sent to the user (if they've enabled email alerts). With the Events API, you can perform the following tasks on the ThousandEyes platform: * **Retrieve Events**: Obtain a list of events and detailed information for each event. For more information about events, see [Event Detection](https://docs.thousandeyes.com/product-documentation/event-detection). Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/models/affected_tests.py b/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/models/affected_tests.py index 83ad4761..7720f1cc 100644 --- a/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/models/affected_tests.py +++ b/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/models/affected_tests.py @@ -3,7 +3,7 @@ """ Event Detection API - Event detection occurs when ThousandEyes identifies that error signals related to a component (proxy, network node, AS, server etc) have deviated from the baselines established by events. * To determine this, ThousandEyes takes the test results from all accounts groups within an organization, and analyzes that data. * Noisy test results (those that have too many errors in a short window) are removed until they stabilize, and the rest of the results are tagged with the components associated with that test result (for example, proxy, network, or server). * Next, any increase in failures from the test results and each component helps in determining the problem domain and which component may be at fault. * When this failure rate increases beyond a pre-defined threshold (set by the algorithm), an event is triggered and an email notification is sent to the user (if they've enabled email alerts). With the Events API, you can perform the following tasks on the ThousandEyes platform: * **Retrieve Events**: Obtain a list of events and detailed information for each event. For more information about events, see [Event Detection](https://docs.thousandeyes.com/product-documentation/event-detection). + Event detection occurs when ThousandEyes identifies that error signals related to a component (proxy, network node, AS, server etc) have deviated from the baselines established by events. * To determine this, ThousandEyes takes the test results from all accounts groups within an organization, and analyzes that data. * Noisy test results (those that have too many errors in a short window) are removed until they stabilize, and the rest of the results are tagged with the components associated with that test result (for example, proxy, network, or server). * Next, any increase in failures from the test results and each component helps in determining the problem domain and which component may be at fault. * When this failure rate increases beyond a pre-defined threshold (set by the algorithm), an event is triggered and an email notification is sent to the user (if they've enabled email alerts). With the Events API, you can perform the following tasks on the ThousandEyes platform: * **Retrieve Events**: Obtain a list of events and detailed information for each event. For more information about events, see [Event Detection](https://docs.thousandeyes.com/product-documentation/event-detection). Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/models/agent_links.py b/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/models/agent_links.py index bf6afe91..57108970 100644 --- a/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/models/agent_links.py +++ b/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/models/agent_links.py @@ -3,7 +3,7 @@ """ Event Detection API - Event detection occurs when ThousandEyes identifies that error signals related to a component (proxy, network node, AS, server etc) have deviated from the baselines established by events. * To determine this, ThousandEyes takes the test results from all accounts groups within an organization, and analyzes that data. * Noisy test results (those that have too many errors in a short window) are removed until they stabilize, and the rest of the results are tagged with the components associated with that test result (for example, proxy, network, or server). * Next, any increase in failures from the test results and each component helps in determining the problem domain and which component may be at fault. * When this failure rate increases beyond a pre-defined threshold (set by the algorithm), an event is triggered and an email notification is sent to the user (if they've enabled email alerts). With the Events API, you can perform the following tasks on the ThousandEyes platform: * **Retrieve Events**: Obtain a list of events and detailed information for each event. For more information about events, see [Event Detection](https://docs.thousandeyes.com/product-documentation/event-detection). + Event detection occurs when ThousandEyes identifies that error signals related to a component (proxy, network node, AS, server etc) have deviated from the baselines established by events. * To determine this, ThousandEyes takes the test results from all accounts groups within an organization, and analyzes that data. * Noisy test results (those that have too many errors in a short window) are removed until they stabilize, and the rest of the results are tagged with the components associated with that test result (for example, proxy, network, or server). * Next, any increase in failures from the test results and each component helps in determining the problem domain and which component may be at fault. * When this failure rate increases beyond a pre-defined threshold (set by the algorithm), an event is triggered and an email notification is sent to the user (if they've enabled email alerts). With the Events API, you can perform the following tasks on the ThousandEyes platform: * **Retrieve Events**: Obtain a list of events and detailed information for each event. For more information about events, see [Event Detection](https://docs.thousandeyes.com/product-documentation/event-detection). Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/models/agent_local_event_detail.py b/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/models/agent_local_event_detail.py index 1e71172e..3f3be028 100644 --- a/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/models/agent_local_event_detail.py +++ b/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/models/agent_local_event_detail.py @@ -3,7 +3,7 @@ """ Event Detection API - Event detection occurs when ThousandEyes identifies that error signals related to a component (proxy, network node, AS, server etc) have deviated from the baselines established by events. * To determine this, ThousandEyes takes the test results from all accounts groups within an organization, and analyzes that data. * Noisy test results (those that have too many errors in a short window) are removed until they stabilize, and the rest of the results are tagged with the components associated with that test result (for example, proxy, network, or server). * Next, any increase in failures from the test results and each component helps in determining the problem domain and which component may be at fault. * When this failure rate increases beyond a pre-defined threshold (set by the algorithm), an event is triggered and an email notification is sent to the user (if they've enabled email alerts). With the Events API, you can perform the following tasks on the ThousandEyes platform: * **Retrieve Events**: Obtain a list of events and detailed information for each event. For more information about events, see [Event Detection](https://docs.thousandeyes.com/product-documentation/event-detection). + Event detection occurs when ThousandEyes identifies that error signals related to a component (proxy, network node, AS, server etc) have deviated from the baselines established by events. * To determine this, ThousandEyes takes the test results from all accounts groups within an organization, and analyzes that data. * Noisy test results (those that have too many errors in a short window) are removed until they stabilize, and the rest of the results are tagged with the components associated with that test result (for example, proxy, network, or server). * Next, any increase in failures from the test results and each component helps in determining the problem domain and which component may be at fault. * When this failure rate increases beyond a pre-defined threshold (set by the algorithm), an event is triggered and an email notification is sent to the user (if they've enabled email alerts). With the Events API, you can perform the following tasks on the ThousandEyes platform: * **Retrieve Events**: Obtain a list of events and detailed information for each event. For more information about events, see [Event Detection](https://docs.thousandeyes.com/product-documentation/event-detection). Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/models/agent_local_event_grouping.py b/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/models/agent_local_event_grouping.py index 4dabec0f..41902daf 100644 --- a/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/models/agent_local_event_grouping.py +++ b/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/models/agent_local_event_grouping.py @@ -3,7 +3,7 @@ """ Event Detection API - Event detection occurs when ThousandEyes identifies that error signals related to a component (proxy, network node, AS, server etc) have deviated from the baselines established by events. * To determine this, ThousandEyes takes the test results from all accounts groups within an organization, and analyzes that data. * Noisy test results (those that have too many errors in a short window) are removed until they stabilize, and the rest of the results are tagged with the components associated with that test result (for example, proxy, network, or server). * Next, any increase in failures from the test results and each component helps in determining the problem domain and which component may be at fault. * When this failure rate increases beyond a pre-defined threshold (set by the algorithm), an event is triggered and an email notification is sent to the user (if they've enabled email alerts). With the Events API, you can perform the following tasks on the ThousandEyes platform: * **Retrieve Events**: Obtain a list of events and detailed information for each event. For more information about events, see [Event Detection](https://docs.thousandeyes.com/product-documentation/event-detection). + Event detection occurs when ThousandEyes identifies that error signals related to a component (proxy, network node, AS, server etc) have deviated from the baselines established by events. * To determine this, ThousandEyes takes the test results from all accounts groups within an organization, and analyzes that data. * Noisy test results (those that have too many errors in a short window) are removed until they stabilize, and the rest of the results are tagged with the components associated with that test result (for example, proxy, network, or server). * Next, any increase in failures from the test results and each component helps in determining the problem domain and which component may be at fault. * When this failure rate increases beyond a pre-defined threshold (set by the algorithm), an event is triggered and an email notification is sent to the user (if they've enabled email alerts). With the Events API, you can perform the following tasks on the ThousandEyes platform: * **Retrieve Events**: Obtain a list of events and detailed information for each event. For more information about events, see [Event Detection](https://docs.thousandeyes.com/product-documentation/event-detection). Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/models/api_affected_target.py b/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/models/api_affected_target.py index 1758bb1d..051be3e1 100644 --- a/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/models/api_affected_target.py +++ b/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/models/api_affected_target.py @@ -3,7 +3,7 @@ """ Event Detection API - Event detection occurs when ThousandEyes identifies that error signals related to a component (proxy, network node, AS, server etc) have deviated from the baselines established by events. * To determine this, ThousandEyes takes the test results from all accounts groups within an organization, and analyzes that data. * Noisy test results (those that have too many errors in a short window) are removed until they stabilize, and the rest of the results are tagged with the components associated with that test result (for example, proxy, network, or server). * Next, any increase in failures from the test results and each component helps in determining the problem domain and which component may be at fault. * When this failure rate increases beyond a pre-defined threshold (set by the algorithm), an event is triggered and an email notification is sent to the user (if they've enabled email alerts). With the Events API, you can perform the following tasks on the ThousandEyes platform: * **Retrieve Events**: Obtain a list of events and detailed information for each event. For more information about events, see [Event Detection](https://docs.thousandeyes.com/product-documentation/event-detection). + Event detection occurs when ThousandEyes identifies that error signals related to a component (proxy, network node, AS, server etc) have deviated from the baselines established by events. * To determine this, ThousandEyes takes the test results from all accounts groups within an organization, and analyzes that data. * Noisy test results (those that have too many errors in a short window) are removed until they stabilize, and the rest of the results are tagged with the components associated with that test result (for example, proxy, network, or server). * Next, any increase in failures from the test results and each component helps in determining the problem domain and which component may be at fault. * When this failure rate increases beyond a pre-defined threshold (set by the algorithm), an event is triggered and an email notification is sent to the user (if they've enabled email alerts). With the Events API, you can perform the following tasks on the ThousandEyes platform: * **Retrieve Events**: Obtain a list of events and detailed information for each event. For more information about events, see [Event Detection](https://docs.thousandeyes.com/product-documentation/event-detection). Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/models/cloud_enterprise_agent_type.py b/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/models/cloud_enterprise_agent_type.py index a31f096e..ff2ca4ae 100644 --- a/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/models/cloud_enterprise_agent_type.py +++ b/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/models/cloud_enterprise_agent_type.py @@ -3,7 +3,7 @@ """ Event Detection API - Event detection occurs when ThousandEyes identifies that error signals related to a component (proxy, network node, AS, server etc) have deviated from the baselines established by events. * To determine this, ThousandEyes takes the test results from all accounts groups within an organization, and analyzes that data. * Noisy test results (those that have too many errors in a short window) are removed until they stabilize, and the rest of the results are tagged with the components associated with that test result (for example, proxy, network, or server). * Next, any increase in failures from the test results and each component helps in determining the problem domain and which component may be at fault. * When this failure rate increases beyond a pre-defined threshold (set by the algorithm), an event is triggered and an email notification is sent to the user (if they've enabled email alerts). With the Events API, you can perform the following tasks on the ThousandEyes platform: * **Retrieve Events**: Obtain a list of events and detailed information for each event. For more information about events, see [Event Detection](https://docs.thousandeyes.com/product-documentation/event-detection). + Event detection occurs when ThousandEyes identifies that error signals related to a component (proxy, network node, AS, server etc) have deviated from the baselines established by events. * To determine this, ThousandEyes takes the test results from all accounts groups within an organization, and analyzes that data. * Noisy test results (those that have too many errors in a short window) are removed until they stabilize, and the rest of the results are tagged with the components associated with that test result (for example, proxy, network, or server). * Next, any increase in failures from the test results and each component helps in determining the problem domain and which component may be at fault. * When this failure rate increases beyond a pre-defined threshold (set by the algorithm), an event is triggered and an email notification is sent to the user (if they've enabled email alerts). With the Events API, you can perform the following tasks on the ThousandEyes platform: * **Retrieve Events**: Obtain a list of events and detailed information for each event. For more information about events, see [Event Detection](https://docs.thousandeyes.com/product-documentation/event-detection). Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/models/dns_event_detail.py b/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/models/dns_event_detail.py index ee25b8b4..c8bde281 100644 --- a/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/models/dns_event_detail.py +++ b/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/models/dns_event_detail.py @@ -3,7 +3,7 @@ """ Event Detection API - Event detection occurs when ThousandEyes identifies that error signals related to a component (proxy, network node, AS, server etc) have deviated from the baselines established by events. * To determine this, ThousandEyes takes the test results from all accounts groups within an organization, and analyzes that data. * Noisy test results (those that have too many errors in a short window) are removed until they stabilize, and the rest of the results are tagged with the components associated with that test result (for example, proxy, network, or server). * Next, any increase in failures from the test results and each component helps in determining the problem domain and which component may be at fault. * When this failure rate increases beyond a pre-defined threshold (set by the algorithm), an event is triggered and an email notification is sent to the user (if they've enabled email alerts). With the Events API, you can perform the following tasks on the ThousandEyes platform: * **Retrieve Events**: Obtain a list of events and detailed information for each event. For more information about events, see [Event Detection](https://docs.thousandeyes.com/product-documentation/event-detection). + Event detection occurs when ThousandEyes identifies that error signals related to a component (proxy, network node, AS, server etc) have deviated from the baselines established by events. * To determine this, ThousandEyes takes the test results from all accounts groups within an organization, and analyzes that data. * Noisy test results (those that have too many errors in a short window) are removed until they stabilize, and the rest of the results are tagged with the components associated with that test result (for example, proxy, network, or server). * Next, any increase in failures from the test results and each component helps in determining the problem domain and which component may be at fault. * When this failure rate increases beyond a pre-defined threshold (set by the algorithm), an event is triggered and an email notification is sent to the user (if they've enabled email alerts). With the Events API, you can perform the following tasks on the ThousandEyes platform: * **Retrieve Events**: Obtain a list of events and detailed information for each event. For more information about events, see [Event Detection](https://docs.thousandeyes.com/product-documentation/event-detection). Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/models/dns_event_grouping.py b/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/models/dns_event_grouping.py index dc29be18..bc0e79bd 100644 --- a/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/models/dns_event_grouping.py +++ b/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/models/dns_event_grouping.py @@ -3,7 +3,7 @@ """ Event Detection API - Event detection occurs when ThousandEyes identifies that error signals related to a component (proxy, network node, AS, server etc) have deviated from the baselines established by events. * To determine this, ThousandEyes takes the test results from all accounts groups within an organization, and analyzes that data. * Noisy test results (those that have too many errors in a short window) are removed until they stabilize, and the rest of the results are tagged with the components associated with that test result (for example, proxy, network, or server). * Next, any increase in failures from the test results and each component helps in determining the problem domain and which component may be at fault. * When this failure rate increases beyond a pre-defined threshold (set by the algorithm), an event is triggered and an email notification is sent to the user (if they've enabled email alerts). With the Events API, you can perform the following tasks on the ThousandEyes platform: * **Retrieve Events**: Obtain a list of events and detailed information for each event. For more information about events, see [Event Detection](https://docs.thousandeyes.com/product-documentation/event-detection). + Event detection occurs when ThousandEyes identifies that error signals related to a component (proxy, network node, AS, server etc) have deviated from the baselines established by events. * To determine this, ThousandEyes takes the test results from all accounts groups within an organization, and analyzes that data. * Noisy test results (those that have too many errors in a short window) are removed until they stabilize, and the rest of the results are tagged with the components associated with that test result (for example, proxy, network, or server). * Next, any increase in failures from the test results and each component helps in determining the problem domain and which component may be at fault. * When this failure rate increases beyond a pre-defined threshold (set by the algorithm), an event is triggered and an email notification is sent to the user (if they've enabled email alerts). With the Events API, you can perform the following tasks on the ThousandEyes platform: * **Retrieve Events**: Obtain a list of events and detailed information for each event. For more information about events, see [Event Detection](https://docs.thousandeyes.com/product-documentation/event-detection). Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/models/error.py b/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/models/error.py index b2a22889..84f22106 100644 --- a/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/models/error.py +++ b/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/models/error.py @@ -3,7 +3,7 @@ """ Event Detection API - Event detection occurs when ThousandEyes identifies that error signals related to a component (proxy, network node, AS, server etc) have deviated from the baselines established by events. * To determine this, ThousandEyes takes the test results from all accounts groups within an organization, and analyzes that data. * Noisy test results (those that have too many errors in a short window) are removed until they stabilize, and the rest of the results are tagged with the components associated with that test result (for example, proxy, network, or server). * Next, any increase in failures from the test results and each component helps in determining the problem domain and which component may be at fault. * When this failure rate increases beyond a pre-defined threshold (set by the algorithm), an event is triggered and an email notification is sent to the user (if they've enabled email alerts). With the Events API, you can perform the following tasks on the ThousandEyes platform: * **Retrieve Events**: Obtain a list of events and detailed information for each event. For more information about events, see [Event Detection](https://docs.thousandeyes.com/product-documentation/event-detection). + Event detection occurs when ThousandEyes identifies that error signals related to a component (proxy, network node, AS, server etc) have deviated from the baselines established by events. * To determine this, ThousandEyes takes the test results from all accounts groups within an organization, and analyzes that data. * Noisy test results (those that have too many errors in a short window) are removed until they stabilize, and the rest of the results are tagged with the components associated with that test result (for example, proxy, network, or server). * Next, any increase in failures from the test results and each component helps in determining the problem domain and which component may be at fault. * When this failure rate increases beyond a pre-defined threshold (set by the algorithm), an event is triggered and an email notification is sent to the user (if they've enabled email alerts). With the Events API, you can perform the following tasks on the ThousandEyes platform: * **Retrieve Events**: Obtain a list of events and detailed information for each event. For more information about events, see [Event Detection](https://docs.thousandeyes.com/product-documentation/event-detection). Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/models/event.py b/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/models/event.py index 9ad5c96b..14dfdd75 100644 --- a/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/models/event.py +++ b/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/models/event.py @@ -3,7 +3,7 @@ """ Event Detection API - Event detection occurs when ThousandEyes identifies that error signals related to a component (proxy, network node, AS, server etc) have deviated from the baselines established by events. * To determine this, ThousandEyes takes the test results from all accounts groups within an organization, and analyzes that data. * Noisy test results (those that have too many errors in a short window) are removed until they stabilize, and the rest of the results are tagged with the components associated with that test result (for example, proxy, network, or server). * Next, any increase in failures from the test results and each component helps in determining the problem domain and which component may be at fault. * When this failure rate increases beyond a pre-defined threshold (set by the algorithm), an event is triggered and an email notification is sent to the user (if they've enabled email alerts). With the Events API, you can perform the following tasks on the ThousandEyes platform: * **Retrieve Events**: Obtain a list of events and detailed information for each event. For more information about events, see [Event Detection](https://docs.thousandeyes.com/product-documentation/event-detection). + Event detection occurs when ThousandEyes identifies that error signals related to a component (proxy, network node, AS, server etc) have deviated from the baselines established by events. * To determine this, ThousandEyes takes the test results from all accounts groups within an organization, and analyzes that data. * Noisy test results (those that have too many errors in a short window) are removed until they stabilize, and the rest of the results are tagged with the components associated with that test result (for example, proxy, network, or server). * Next, any increase in failures from the test results and each component helps in determining the problem domain and which component may be at fault. * When this failure rate increases beyond a pre-defined threshold (set by the algorithm), an event is triggered and an email notification is sent to the user (if they've enabled email alerts). With the Events API, you can perform the following tasks on the ThousandEyes platform: * **Retrieve Events**: Obtain a list of events and detailed information for each event. For more information about events, see [Event Detection](https://docs.thousandeyes.com/product-documentation/event-detection). Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/models/event_alert_severity.py b/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/models/event_alert_severity.py index 1fa542f2..9f118e94 100644 --- a/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/models/event_alert_severity.py +++ b/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/models/event_alert_severity.py @@ -3,7 +3,7 @@ """ Event Detection API - Event detection occurs when ThousandEyes identifies that error signals related to a component (proxy, network node, AS, server etc) have deviated from the baselines established by events. * To determine this, ThousandEyes takes the test results from all accounts groups within an organization, and analyzes that data. * Noisy test results (those that have too many errors in a short window) are removed until they stabilize, and the rest of the results are tagged with the components associated with that test result (for example, proxy, network, or server). * Next, any increase in failures from the test results and each component helps in determining the problem domain and which component may be at fault. * When this failure rate increases beyond a pre-defined threshold (set by the algorithm), an event is triggered and an email notification is sent to the user (if they've enabled email alerts). With the Events API, you can perform the following tasks on the ThousandEyes platform: * **Retrieve Events**: Obtain a list of events and detailed information for each event. For more information about events, see [Event Detection](https://docs.thousandeyes.com/product-documentation/event-detection). + Event detection occurs when ThousandEyes identifies that error signals related to a component (proxy, network node, AS, server etc) have deviated from the baselines established by events. * To determine this, ThousandEyes takes the test results from all accounts groups within an organization, and analyzes that data. * Noisy test results (those that have too many errors in a short window) are removed until they stabilize, and the rest of the results are tagged with the components associated with that test result (for example, proxy, network, or server). * Next, any increase in failures from the test results and each component helps in determining the problem domain and which component may be at fault. * When this failure rate increases beyond a pre-defined threshold (set by the algorithm), an event is triggered and an email notification is sent to the user (if they've enabled email alerts). With the Events API, you can perform the following tasks on the ThousandEyes platform: * **Retrieve Events**: Obtain a list of events and detailed information for each event. For more information about events, see [Event Detection](https://docs.thousandeyes.com/product-documentation/event-detection). Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/models/event_api_affected_agent.py b/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/models/event_api_affected_agent.py index fa8f4b1f..5192944c 100644 --- a/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/models/event_api_affected_agent.py +++ b/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/models/event_api_affected_agent.py @@ -3,7 +3,7 @@ """ Event Detection API - Event detection occurs when ThousandEyes identifies that error signals related to a component (proxy, network node, AS, server etc) have deviated from the baselines established by events. * To determine this, ThousandEyes takes the test results from all accounts groups within an organization, and analyzes that data. * Noisy test results (those that have too many errors in a short window) are removed until they stabilize, and the rest of the results are tagged with the components associated with that test result (for example, proxy, network, or server). * Next, any increase in failures from the test results and each component helps in determining the problem domain and which component may be at fault. * When this failure rate increases beyond a pre-defined threshold (set by the algorithm), an event is triggered and an email notification is sent to the user (if they've enabled email alerts). With the Events API, you can perform the following tasks on the ThousandEyes platform: * **Retrieve Events**: Obtain a list of events and detailed information for each event. For more information about events, see [Event Detection](https://docs.thousandeyes.com/product-documentation/event-detection). + Event detection occurs when ThousandEyes identifies that error signals related to a component (proxy, network node, AS, server etc) have deviated from the baselines established by events. * To determine this, ThousandEyes takes the test results from all accounts groups within an organization, and analyzes that data. * Noisy test results (those that have too many errors in a short window) are removed until they stabilize, and the rest of the results are tagged with the components associated with that test result (for example, proxy, network, or server). * Next, any increase in failures from the test results and each component helps in determining the problem domain and which component may be at fault. * When this failure rate increases beyond a pre-defined threshold (set by the algorithm), an event is triggered and an email notification is sent to the user (if they've enabled email alerts). With the Events API, you can perform the following tasks on the ThousandEyes platform: * **Retrieve Events**: Obtain a list of events and detailed information for each event. For more information about events, see [Event Detection](https://docs.thousandeyes.com/product-documentation/event-detection). Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/models/event_api_affected_test.py b/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/models/event_api_affected_test.py index 1027e216..d32f3621 100644 --- a/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/models/event_api_affected_test.py +++ b/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/models/event_api_affected_test.py @@ -3,7 +3,7 @@ """ Event Detection API - Event detection occurs when ThousandEyes identifies that error signals related to a component (proxy, network node, AS, server etc) have deviated from the baselines established by events. * To determine this, ThousandEyes takes the test results from all accounts groups within an organization, and analyzes that data. * Noisy test results (those that have too many errors in a short window) are removed until they stabilize, and the rest of the results are tagged with the components associated with that test result (for example, proxy, network, or server). * Next, any increase in failures from the test results and each component helps in determining the problem domain and which component may be at fault. * When this failure rate increases beyond a pre-defined threshold (set by the algorithm), an event is triggered and an email notification is sent to the user (if they've enabled email alerts). With the Events API, you can perform the following tasks on the ThousandEyes platform: * **Retrieve Events**: Obtain a list of events and detailed information for each event. For more information about events, see [Event Detection](https://docs.thousandeyes.com/product-documentation/event-detection). + Event detection occurs when ThousandEyes identifies that error signals related to a component (proxy, network node, AS, server etc) have deviated from the baselines established by events. * To determine this, ThousandEyes takes the test results from all accounts groups within an organization, and analyzes that data. * Noisy test results (those that have too many errors in a short window) are removed until they stabilize, and the rest of the results are tagged with the components associated with that test result (for example, proxy, network, or server). * Next, any increase in failures from the test results and each component helps in determining the problem domain and which component may be at fault. * When this failure rate increases beyond a pre-defined threshold (set by the algorithm), an event is triggered and an email notification is sent to the user (if they've enabled email alerts). With the Events API, you can perform the following tasks on the ThousandEyes platform: * **Retrieve Events**: Obtain a list of events and detailed information for each event. For more information about events, see [Event Detection](https://docs.thousandeyes.com/product-documentation/event-detection). Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/models/event_detail.py b/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/models/event_detail.py index b18b8cd5..45283f05 100644 --- a/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/models/event_detail.py +++ b/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/models/event_detail.py @@ -3,7 +3,7 @@ """ Event Detection API - Event detection occurs when ThousandEyes identifies that error signals related to a component (proxy, network node, AS, server etc) have deviated from the baselines established by events. * To determine this, ThousandEyes takes the test results from all accounts groups within an organization, and analyzes that data. * Noisy test results (those that have too many errors in a short window) are removed until they stabilize, and the rest of the results are tagged with the components associated with that test result (for example, proxy, network, or server). * Next, any increase in failures from the test results and each component helps in determining the problem domain and which component may be at fault. * When this failure rate increases beyond a pre-defined threshold (set by the algorithm), an event is triggered and an email notification is sent to the user (if they've enabled email alerts). With the Events API, you can perform the following tasks on the ThousandEyes platform: * **Retrieve Events**: Obtain a list of events and detailed information for each event. For more information about events, see [Event Detection](https://docs.thousandeyes.com/product-documentation/event-detection). + Event detection occurs when ThousandEyes identifies that error signals related to a component (proxy, network node, AS, server etc) have deviated from the baselines established by events. * To determine this, ThousandEyes takes the test results from all accounts groups within an organization, and analyzes that data. * Noisy test results (those that have too many errors in a short window) are removed until they stabilize, and the rest of the results are tagged with the components associated with that test result (for example, proxy, network, or server). * Next, any increase in failures from the test results and each component helps in determining the problem domain and which component may be at fault. * When this failure rate increases beyond a pre-defined threshold (set by the algorithm), an event is triggered and an email notification is sent to the user (if they've enabled email alerts). With the Events API, you can perform the following tasks on the ThousandEyes platform: * **Retrieve Events**: Obtain a list of events and detailed information for each event. For more information about events, see [Event Detection](https://docs.thousandeyes.com/product-documentation/event-detection). Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/models/event_detail_base.py b/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/models/event_detail_base.py index 70fa92ec..b7186650 100644 --- a/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/models/event_detail_base.py +++ b/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/models/event_detail_base.py @@ -3,7 +3,7 @@ """ Event Detection API - Event detection occurs when ThousandEyes identifies that error signals related to a component (proxy, network node, AS, server etc) have deviated from the baselines established by events. * To determine this, ThousandEyes takes the test results from all accounts groups within an organization, and analyzes that data. * Noisy test results (those that have too many errors in a short window) are removed until they stabilize, and the rest of the results are tagged with the components associated with that test result (for example, proxy, network, or server). * Next, any increase in failures from the test results and each component helps in determining the problem domain and which component may be at fault. * When this failure rate increases beyond a pre-defined threshold (set by the algorithm), an event is triggered and an email notification is sent to the user (if they've enabled email alerts). With the Events API, you can perform the following tasks on the ThousandEyes platform: * **Retrieve Events**: Obtain a list of events and detailed information for each event. For more information about events, see [Event Detection](https://docs.thousandeyes.com/product-documentation/event-detection). + Event detection occurs when ThousandEyes identifies that error signals related to a component (proxy, network node, AS, server etc) have deviated from the baselines established by events. * To determine this, ThousandEyes takes the test results from all accounts groups within an organization, and analyzes that data. * Noisy test results (those that have too many errors in a short window) are removed until they stabilize, and the rest of the results are tagged with the components associated with that test result (for example, proxy, network, or server). * Next, any increase in failures from the test results and each component helps in determining the problem domain and which component may be at fault. * When this failure rate increases beyond a pre-defined threshold (set by the algorithm), an event is triggered and an email notification is sent to the user (if they've enabled email alerts). With the Events API, you can perform the following tasks on the ThousandEyes platform: * **Retrieve Events**: Obtain a list of events and detailed information for each event. For more information about events, see [Event Detection](https://docs.thousandeyes.com/product-documentation/event-detection). Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/models/event_state.py b/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/models/event_state.py index 9d38a8d0..6fd8c4a6 100644 --- a/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/models/event_state.py +++ b/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/models/event_state.py @@ -3,7 +3,7 @@ """ Event Detection API - Event detection occurs when ThousandEyes identifies that error signals related to a component (proxy, network node, AS, server etc) have deviated from the baselines established by events. * To determine this, ThousandEyes takes the test results from all accounts groups within an organization, and analyzes that data. * Noisy test results (those that have too many errors in a short window) are removed until they stabilize, and the rest of the results are tagged with the components associated with that test result (for example, proxy, network, or server). * Next, any increase in failures from the test results and each component helps in determining the problem domain and which component may be at fault. * When this failure rate increases beyond a pre-defined threshold (set by the algorithm), an event is triggered and an email notification is sent to the user (if they've enabled email alerts). With the Events API, you can perform the following tasks on the ThousandEyes platform: * **Retrieve Events**: Obtain a list of events and detailed information for each event. For more information about events, see [Event Detection](https://docs.thousandeyes.com/product-documentation/event-detection). + Event detection occurs when ThousandEyes identifies that error signals related to a component (proxy, network node, AS, server etc) have deviated from the baselines established by events. * To determine this, ThousandEyes takes the test results from all accounts groups within an organization, and analyzes that data. * Noisy test results (those that have too many errors in a short window) are removed until they stabilize, and the rest of the results are tagged with the components associated with that test result (for example, proxy, network, or server). * Next, any increase in failures from the test results and each component helps in determining the problem domain and which component may be at fault. * When this failure rate increases beyond a pre-defined threshold (set by the algorithm), an event is triggered and an email notification is sent to the user (if they've enabled email alerts). With the Events API, you can perform the following tasks on the ThousandEyes platform: * **Retrieve Events**: Obtain a list of events and detailed information for each event. For more information about events, see [Event Detection](https://docs.thousandeyes.com/product-documentation/event-detection). Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/models/event_test_links.py b/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/models/event_test_links.py index 289488cc..b425ccba 100644 --- a/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/models/event_test_links.py +++ b/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/models/event_test_links.py @@ -3,7 +3,7 @@ """ Event Detection API - Event detection occurs when ThousandEyes identifies that error signals related to a component (proxy, network node, AS, server etc) have deviated from the baselines established by events. * To determine this, ThousandEyes takes the test results from all accounts groups within an organization, and analyzes that data. * Noisy test results (those that have too many errors in a short window) are removed until they stabilize, and the rest of the results are tagged with the components associated with that test result (for example, proxy, network, or server). * Next, any increase in failures from the test results and each component helps in determining the problem domain and which component may be at fault. * When this failure rate increases beyond a pre-defined threshold (set by the algorithm), an event is triggered and an email notification is sent to the user (if they've enabled email alerts). With the Events API, you can perform the following tasks on the ThousandEyes platform: * **Retrieve Events**: Obtain a list of events and detailed information for each event. For more information about events, see [Event Detection](https://docs.thousandeyes.com/product-documentation/event-detection). + Event detection occurs when ThousandEyes identifies that error signals related to a component (proxy, network node, AS, server etc) have deviated from the baselines established by events. * To determine this, ThousandEyes takes the test results from all accounts groups within an organization, and analyzes that data. * Noisy test results (those that have too many errors in a short window) are removed until they stabilize, and the rest of the results are tagged with the components associated with that test result (for example, proxy, network, or server). * Next, any increase in failures from the test results and each component helps in determining the problem domain and which component may be at fault. * When this failure rate increases beyond a pre-defined threshold (set by the algorithm), an event is triggered and an email notification is sent to the user (if they've enabled email alerts). With the Events API, you can perform the following tasks on the ThousandEyes platform: * **Retrieve Events**: Obtain a list of events and detailed information for each event. For more information about events, see [Event Detection](https://docs.thousandeyes.com/product-documentation/event-detection). Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/models/event_type.py b/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/models/event_type.py index a1dbf0cf..c9688b51 100644 --- a/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/models/event_type.py +++ b/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/models/event_type.py @@ -3,7 +3,7 @@ """ Event Detection API - Event detection occurs when ThousandEyes identifies that error signals related to a component (proxy, network node, AS, server etc) have deviated from the baselines established by events. * To determine this, ThousandEyes takes the test results from all accounts groups within an organization, and analyzes that data. * Noisy test results (those that have too many errors in a short window) are removed until they stabilize, and the rest of the results are tagged with the components associated with that test result (for example, proxy, network, or server). * Next, any increase in failures from the test results and each component helps in determining the problem domain and which component may be at fault. * When this failure rate increases beyond a pre-defined threshold (set by the algorithm), an event is triggered and an email notification is sent to the user (if they've enabled email alerts). With the Events API, you can perform the following tasks on the ThousandEyes platform: * **Retrieve Events**: Obtain a list of events and detailed information for each event. For more information about events, see [Event Detection](https://docs.thousandeyes.com/product-documentation/event-detection). + Event detection occurs when ThousandEyes identifies that error signals related to a component (proxy, network node, AS, server etc) have deviated from the baselines established by events. * To determine this, ThousandEyes takes the test results from all accounts groups within an organization, and analyzes that data. * Noisy test results (those that have too many errors in a short window) are removed until they stabilize, and the rest of the results are tagged with the components associated with that test result (for example, proxy, network, or server). * Next, any increase in failures from the test results and each component helps in determining the problem domain and which component may be at fault. * When this failure rate increases beyond a pre-defined threshold (set by the algorithm), an event is triggered and an email notification is sent to the user (if they've enabled email alerts). With the Events API, you can perform the following tasks on the ThousandEyes platform: * **Retrieve Events**: Obtain a list of events and detailed information for each event. For more information about events, see [Event Detection](https://docs.thousandeyes.com/product-documentation/event-detection). Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/models/events.py b/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/models/events.py index afbc8042..51ad9318 100644 --- a/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/models/events.py +++ b/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/models/events.py @@ -3,7 +3,7 @@ """ Event Detection API - Event detection occurs when ThousandEyes identifies that error signals related to a component (proxy, network node, AS, server etc) have deviated from the baselines established by events. * To determine this, ThousandEyes takes the test results from all accounts groups within an organization, and analyzes that data. * Noisy test results (those that have too many errors in a short window) are removed until they stabilize, and the rest of the results are tagged with the components associated with that test result (for example, proxy, network, or server). * Next, any increase in failures from the test results and each component helps in determining the problem domain and which component may be at fault. * When this failure rate increases beyond a pre-defined threshold (set by the algorithm), an event is triggered and an email notification is sent to the user (if they've enabled email alerts). With the Events API, you can perform the following tasks on the ThousandEyes platform: * **Retrieve Events**: Obtain a list of events and detailed information for each event. For more information about events, see [Event Detection](https://docs.thousandeyes.com/product-documentation/event-detection). + Event detection occurs when ThousandEyes identifies that error signals related to a component (proxy, network node, AS, server etc) have deviated from the baselines established by events. * To determine this, ThousandEyes takes the test results from all accounts groups within an organization, and analyzes that data. * Noisy test results (those that have too many errors in a short window) are removed until they stabilize, and the rest of the results are tagged with the components associated with that test result (for example, proxy, network, or server). * Next, any increase in failures from the test results and each component helps in determining the problem domain and which component may be at fault. * When this failure rate increases beyond a pre-defined threshold (set by the algorithm), an event is triggered and an email notification is sent to the user (if they've enabled email alerts). With the Events API, you can perform the following tasks on the ThousandEyes platform: * **Retrieve Events**: Obtain a list of events and detailed information for each event. For more information about events, see [Event Detection](https://docs.thousandeyes.com/product-documentation/event-detection). Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/models/link.py b/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/models/link.py index 55f53be5..93fc7f0f 100644 --- a/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/models/link.py +++ b/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/models/link.py @@ -3,7 +3,7 @@ """ Event Detection API - Event detection occurs when ThousandEyes identifies that error signals related to a component (proxy, network node, AS, server etc) have deviated from the baselines established by events. * To determine this, ThousandEyes takes the test results from all accounts groups within an organization, and analyzes that data. * Noisy test results (those that have too many errors in a short window) are removed until they stabilize, and the rest of the results are tagged with the components associated with that test result (for example, proxy, network, or server). * Next, any increase in failures from the test results and each component helps in determining the problem domain and which component may be at fault. * When this failure rate increases beyond a pre-defined threshold (set by the algorithm), an event is triggered and an email notification is sent to the user (if they've enabled email alerts). With the Events API, you can perform the following tasks on the ThousandEyes platform: * **Retrieve Events**: Obtain a list of events and detailed information for each event. For more information about events, see [Event Detection](https://docs.thousandeyes.com/product-documentation/event-detection). + Event detection occurs when ThousandEyes identifies that error signals related to a component (proxy, network node, AS, server etc) have deviated from the baselines established by events. * To determine this, ThousandEyes takes the test results from all accounts groups within an organization, and analyzes that data. * Noisy test results (those that have too many errors in a short window) are removed until they stabilize, and the rest of the results are tagged with the components associated with that test result (for example, proxy, network, or server). * Next, any increase in failures from the test results and each component helps in determining the problem domain and which component may be at fault. * When this failure rate increases beyond a pre-defined threshold (set by the algorithm), an event is triggered and an email notification is sent to the user (if they've enabled email alerts). With the Events API, you can perform the following tasks on the ThousandEyes platform: * **Retrieve Events**: Obtain a list of events and detailed information for each event. For more information about events, see [Event Detection](https://docs.thousandeyes.com/product-documentation/event-detection). Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/models/network_event_detail.py b/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/models/network_event_detail.py index 712b69c3..39be2a50 100644 --- a/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/models/network_event_detail.py +++ b/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/models/network_event_detail.py @@ -3,7 +3,7 @@ """ Event Detection API - Event detection occurs when ThousandEyes identifies that error signals related to a component (proxy, network node, AS, server etc) have deviated from the baselines established by events. * To determine this, ThousandEyes takes the test results from all accounts groups within an organization, and analyzes that data. * Noisy test results (those that have too many errors in a short window) are removed until they stabilize, and the rest of the results are tagged with the components associated with that test result (for example, proxy, network, or server). * Next, any increase in failures from the test results and each component helps in determining the problem domain and which component may be at fault. * When this failure rate increases beyond a pre-defined threshold (set by the algorithm), an event is triggered and an email notification is sent to the user (if they've enabled email alerts). With the Events API, you can perform the following tasks on the ThousandEyes platform: * **Retrieve Events**: Obtain a list of events and detailed information for each event. For more information about events, see [Event Detection](https://docs.thousandeyes.com/product-documentation/event-detection). + Event detection occurs when ThousandEyes identifies that error signals related to a component (proxy, network node, AS, server etc) have deviated from the baselines established by events. * To determine this, ThousandEyes takes the test results from all accounts groups within an organization, and analyzes that data. * Noisy test results (those that have too many errors in a short window) are removed until they stabilize, and the rest of the results are tagged with the components associated with that test result (for example, proxy, network, or server). * Next, any increase in failures from the test results and each component helps in determining the problem domain and which component may be at fault. * When this failure rate increases beyond a pre-defined threshold (set by the algorithm), an event is triggered and an email notification is sent to the user (if they've enabled email alerts). With the Events API, you can perform the following tasks on the ThousandEyes platform: * **Retrieve Events**: Obtain a list of events and detailed information for each event. For more information about events, see [Event Detection](https://docs.thousandeyes.com/product-documentation/event-detection). Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/models/network_event_grouping.py b/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/models/network_event_grouping.py index 87233748..ace88027 100644 --- a/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/models/network_event_grouping.py +++ b/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/models/network_event_grouping.py @@ -3,7 +3,7 @@ """ Event Detection API - Event detection occurs when ThousandEyes identifies that error signals related to a component (proxy, network node, AS, server etc) have deviated from the baselines established by events. * To determine this, ThousandEyes takes the test results from all accounts groups within an organization, and analyzes that data. * Noisy test results (those that have too many errors in a short window) are removed until they stabilize, and the rest of the results are tagged with the components associated with that test result (for example, proxy, network, or server). * Next, any increase in failures from the test results and each component helps in determining the problem domain and which component may be at fault. * When this failure rate increases beyond a pre-defined threshold (set by the algorithm), an event is triggered and an email notification is sent to the user (if they've enabled email alerts). With the Events API, you can perform the following tasks on the ThousandEyes platform: * **Retrieve Events**: Obtain a list of events and detailed information for each event. For more information about events, see [Event Detection](https://docs.thousandeyes.com/product-documentation/event-detection). + Event detection occurs when ThousandEyes identifies that error signals related to a component (proxy, network node, AS, server etc) have deviated from the baselines established by events. * To determine this, ThousandEyes takes the test results from all accounts groups within an organization, and analyzes that data. * Noisy test results (those that have too many errors in a short window) are removed until they stabilize, and the rest of the results are tagged with the components associated with that test result (for example, proxy, network, or server). * Next, any increase in failures from the test results and each component helps in determining the problem domain and which component may be at fault. * When this failure rate increases beyond a pre-defined threshold (set by the algorithm), an event is triggered and an email notification is sent to the user (if they've enabled email alerts). With the Events API, you can perform the following tasks on the ThousandEyes platform: * **Retrieve Events**: Obtain a list of events and detailed information for each event. For more information about events, see [Event Detection](https://docs.thousandeyes.com/product-documentation/event-detection). Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/models/network_pop_event_detail.py b/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/models/network_pop_event_detail.py index bd22fed6..f1c631f0 100644 --- a/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/models/network_pop_event_detail.py +++ b/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/models/network_pop_event_detail.py @@ -3,7 +3,7 @@ """ Event Detection API - Event detection occurs when ThousandEyes identifies that error signals related to a component (proxy, network node, AS, server etc) have deviated from the baselines established by events. * To determine this, ThousandEyes takes the test results from all accounts groups within an organization, and analyzes that data. * Noisy test results (those that have too many errors in a short window) are removed until they stabilize, and the rest of the results are tagged with the components associated with that test result (for example, proxy, network, or server). * Next, any increase in failures from the test results and each component helps in determining the problem domain and which component may be at fault. * When this failure rate increases beyond a pre-defined threshold (set by the algorithm), an event is triggered and an email notification is sent to the user (if they've enabled email alerts). With the Events API, you can perform the following tasks on the ThousandEyes platform: * **Retrieve Events**: Obtain a list of events and detailed information for each event. For more information about events, see [Event Detection](https://docs.thousandeyes.com/product-documentation/event-detection). + Event detection occurs when ThousandEyes identifies that error signals related to a component (proxy, network node, AS, server etc) have deviated from the baselines established by events. * To determine this, ThousandEyes takes the test results from all accounts groups within an organization, and analyzes that data. * Noisy test results (those that have too many errors in a short window) are removed until they stabilize, and the rest of the results are tagged with the components associated with that test result (for example, proxy, network, or server). * Next, any increase in failures from the test results and each component helps in determining the problem domain and which component may be at fault. * When this failure rate increases beyond a pre-defined threshold (set by the algorithm), an event is triggered and an email notification is sent to the user (if they've enabled email alerts). With the Events API, you can perform the following tasks on the ThousandEyes platform: * **Retrieve Events**: Obtain a list of events and detailed information for each event. For more information about events, see [Event Detection](https://docs.thousandeyes.com/product-documentation/event-detection). Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/models/pagination_next_and_self_links.py b/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/models/pagination_next_and_self_links.py index 4faaf2fb..a30ead1c 100644 --- a/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/models/pagination_next_and_self_links.py +++ b/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/models/pagination_next_and_self_links.py @@ -3,7 +3,7 @@ """ Event Detection API - Event detection occurs when ThousandEyes identifies that error signals related to a component (proxy, network node, AS, server etc) have deviated from the baselines established by events. * To determine this, ThousandEyes takes the test results from all accounts groups within an organization, and analyzes that data. * Noisy test results (those that have too many errors in a short window) are removed until they stabilize, and the rest of the results are tagged with the components associated with that test result (for example, proxy, network, or server). * Next, any increase in failures from the test results and each component helps in determining the problem domain and which component may be at fault. * When this failure rate increases beyond a pre-defined threshold (set by the algorithm), an event is triggered and an email notification is sent to the user (if they've enabled email alerts). With the Events API, you can perform the following tasks on the ThousandEyes platform: * **Retrieve Events**: Obtain a list of events and detailed information for each event. For more information about events, see [Event Detection](https://docs.thousandeyes.com/product-documentation/event-detection). + Event detection occurs when ThousandEyes identifies that error signals related to a component (proxy, network node, AS, server etc) have deviated from the baselines established by events. * To determine this, ThousandEyes takes the test results from all accounts groups within an organization, and analyzes that data. * Noisy test results (those that have too many errors in a short window) are removed until they stabilize, and the rest of the results are tagged with the components associated with that test result (for example, proxy, network, or server). * Next, any increase in failures from the test results and each component helps in determining the problem domain and which component may be at fault. * When this failure rate increases beyond a pre-defined threshold (set by the algorithm), an event is triggered and an email notification is sent to the user (if they've enabled email alerts). With the Events API, you can perform the following tasks on the ThousandEyes platform: * **Retrieve Events**: Obtain a list of events and detailed information for each event. For more information about events, see [Event Detection](https://docs.thousandeyes.com/product-documentation/event-detection). Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/models/proxy_event_detail.py b/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/models/proxy_event_detail.py index 9f07753c..c7f0a032 100644 --- a/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/models/proxy_event_detail.py +++ b/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/models/proxy_event_detail.py @@ -3,7 +3,7 @@ """ Event Detection API - Event detection occurs when ThousandEyes identifies that error signals related to a component (proxy, network node, AS, server etc) have deviated from the baselines established by events. * To determine this, ThousandEyes takes the test results from all accounts groups within an organization, and analyzes that data. * Noisy test results (those that have too many errors in a short window) are removed until they stabilize, and the rest of the results are tagged with the components associated with that test result (for example, proxy, network, or server). * Next, any increase in failures from the test results and each component helps in determining the problem domain and which component may be at fault. * When this failure rate increases beyond a pre-defined threshold (set by the algorithm), an event is triggered and an email notification is sent to the user (if they've enabled email alerts). With the Events API, you can perform the following tasks on the ThousandEyes platform: * **Retrieve Events**: Obtain a list of events and detailed information for each event. For more information about events, see [Event Detection](https://docs.thousandeyes.com/product-documentation/event-detection). + Event detection occurs when ThousandEyes identifies that error signals related to a component (proxy, network node, AS, server etc) have deviated from the baselines established by events. * To determine this, ThousandEyes takes the test results from all accounts groups within an organization, and analyzes that data. * Noisy test results (those that have too many errors in a short window) are removed until they stabilize, and the rest of the results are tagged with the components associated with that test result (for example, proxy, network, or server). * Next, any increase in failures from the test results and each component helps in determining the problem domain and which component may be at fault. * When this failure rate increases beyond a pre-defined threshold (set by the algorithm), an event is triggered and an email notification is sent to the user (if they've enabled email alerts). With the Events API, you can perform the following tasks on the ThousandEyes platform: * **Retrieve Events**: Obtain a list of events and detailed information for each event. For more information about events, see [Event Detection](https://docs.thousandeyes.com/product-documentation/event-detection). Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/models/proxy_event_grouping.py b/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/models/proxy_event_grouping.py index bdf635e4..105459bd 100644 --- a/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/models/proxy_event_grouping.py +++ b/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/models/proxy_event_grouping.py @@ -3,7 +3,7 @@ """ Event Detection API - Event detection occurs when ThousandEyes identifies that error signals related to a component (proxy, network node, AS, server etc) have deviated from the baselines established by events. * To determine this, ThousandEyes takes the test results from all accounts groups within an organization, and analyzes that data. * Noisy test results (those that have too many errors in a short window) are removed until they stabilize, and the rest of the results are tagged with the components associated with that test result (for example, proxy, network, or server). * Next, any increase in failures from the test results and each component helps in determining the problem domain and which component may be at fault. * When this failure rate increases beyond a pre-defined threshold (set by the algorithm), an event is triggered and an email notification is sent to the user (if they've enabled email alerts). With the Events API, you can perform the following tasks on the ThousandEyes platform: * **Retrieve Events**: Obtain a list of events and detailed information for each event. For more information about events, see [Event Detection](https://docs.thousandeyes.com/product-documentation/event-detection). + Event detection occurs when ThousandEyes identifies that error signals related to a component (proxy, network node, AS, server etc) have deviated from the baselines established by events. * To determine this, ThousandEyes takes the test results from all accounts groups within an organization, and analyzes that data. * Noisy test results (those that have too many errors in a short window) are removed until they stabilize, and the rest of the results are tagged with the components associated with that test result (for example, proxy, network, or server). * Next, any increase in failures from the test results and each component helps in determining the problem domain and which component may be at fault. * When this failure rate increases beyond a pre-defined threshold (set by the algorithm), an event is triggered and an email notification is sent to the user (if they've enabled email alerts). With the Events API, you can perform the following tasks on the ThousandEyes platform: * **Retrieve Events**: Obtain a list of events and detailed information for each event. For more information about events, see [Event Detection](https://docs.thousandeyes.com/product-documentation/event-detection). Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/models/self_links.py b/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/models/self_links.py index 5a584b76..4d96cb48 100644 --- a/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/models/self_links.py +++ b/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/models/self_links.py @@ -3,7 +3,7 @@ """ Event Detection API - Event detection occurs when ThousandEyes identifies that error signals related to a component (proxy, network node, AS, server etc) have deviated from the baselines established by events. * To determine this, ThousandEyes takes the test results from all accounts groups within an organization, and analyzes that data. * Noisy test results (those that have too many errors in a short window) are removed until they stabilize, and the rest of the results are tagged with the components associated with that test result (for example, proxy, network, or server). * Next, any increase in failures from the test results and each component helps in determining the problem domain and which component may be at fault. * When this failure rate increases beyond a pre-defined threshold (set by the algorithm), an event is triggered and an email notification is sent to the user (if they've enabled email alerts). With the Events API, you can perform the following tasks on the ThousandEyes platform: * **Retrieve Events**: Obtain a list of events and detailed information for each event. For more information about events, see [Event Detection](https://docs.thousandeyes.com/product-documentation/event-detection). + Event detection occurs when ThousandEyes identifies that error signals related to a component (proxy, network node, AS, server etc) have deviated from the baselines established by events. * To determine this, ThousandEyes takes the test results from all accounts groups within an organization, and analyzes that data. * Noisy test results (those that have too many errors in a short window) are removed until they stabilize, and the rest of the results are tagged with the components associated with that test result (for example, proxy, network, or server). * Next, any increase in failures from the test results and each component helps in determining the problem domain and which component may be at fault. * When this failure rate increases beyond a pre-defined threshold (set by the algorithm), an event is triggered and an email notification is sent to the user (if they've enabled email alerts). With the Events API, you can perform the following tasks on the ThousandEyes platform: * **Retrieve Events**: Obtain a list of events and detailed information for each event. For more information about events, see [Event Detection](https://docs.thousandeyes.com/product-documentation/event-detection). Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/models/simple_event_detail.py b/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/models/simple_event_detail.py index 87505bb7..5d6e39b0 100644 --- a/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/models/simple_event_detail.py +++ b/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/models/simple_event_detail.py @@ -3,7 +3,7 @@ """ Event Detection API - Event detection occurs when ThousandEyes identifies that error signals related to a component (proxy, network node, AS, server etc) have deviated from the baselines established by events. * To determine this, ThousandEyes takes the test results from all accounts groups within an organization, and analyzes that data. * Noisy test results (those that have too many errors in a short window) are removed until they stabilize, and the rest of the results are tagged with the components associated with that test result (for example, proxy, network, or server). * Next, any increase in failures from the test results and each component helps in determining the problem domain and which component may be at fault. * When this failure rate increases beyond a pre-defined threshold (set by the algorithm), an event is triggered and an email notification is sent to the user (if they've enabled email alerts). With the Events API, you can perform the following tasks on the ThousandEyes platform: * **Retrieve Events**: Obtain a list of events and detailed information for each event. For more information about events, see [Event Detection](https://docs.thousandeyes.com/product-documentation/event-detection). + Event detection occurs when ThousandEyes identifies that error signals related to a component (proxy, network node, AS, server etc) have deviated from the baselines established by events. * To determine this, ThousandEyes takes the test results from all accounts groups within an organization, and analyzes that data. * Noisy test results (those that have too many errors in a short window) are removed until they stabilize, and the rest of the results are tagged with the components associated with that test result (for example, proxy, network, or server). * Next, any increase in failures from the test results and each component helps in determining the problem domain and which component may be at fault. * When this failure rate increases beyond a pre-defined threshold (set by the algorithm), an event is triggered and an email notification is sent to the user (if they've enabled email alerts). With the Events API, you can perform the following tasks on the ThousandEyes platform: * **Retrieve Events**: Obtain a list of events and detailed information for each event. For more information about events, see [Event Detection](https://docs.thousandeyes.com/product-documentation/event-detection). Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/models/target_event_detail.py b/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/models/target_event_detail.py index ffec8024..ef1117a5 100644 --- a/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/models/target_event_detail.py +++ b/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/models/target_event_detail.py @@ -3,7 +3,7 @@ """ Event Detection API - Event detection occurs when ThousandEyes identifies that error signals related to a component (proxy, network node, AS, server etc) have deviated from the baselines established by events. * To determine this, ThousandEyes takes the test results from all accounts groups within an organization, and analyzes that data. * Noisy test results (those that have too many errors in a short window) are removed until they stabilize, and the rest of the results are tagged with the components associated with that test result (for example, proxy, network, or server). * Next, any increase in failures from the test results and each component helps in determining the problem domain and which component may be at fault. * When this failure rate increases beyond a pre-defined threshold (set by the algorithm), an event is triggered and an email notification is sent to the user (if they've enabled email alerts). With the Events API, you can perform the following tasks on the ThousandEyes platform: * **Retrieve Events**: Obtain a list of events and detailed information for each event. For more information about events, see [Event Detection](https://docs.thousandeyes.com/product-documentation/event-detection). + Event detection occurs when ThousandEyes identifies that error signals related to a component (proxy, network node, AS, server etc) have deviated from the baselines established by events. * To determine this, ThousandEyes takes the test results from all accounts groups within an organization, and analyzes that data. * Noisy test results (those that have too many errors in a short window) are removed until they stabilize, and the rest of the results are tagged with the components associated with that test result (for example, proxy, network, or server). * Next, any increase in failures from the test results and each component helps in determining the problem domain and which component may be at fault. * When this failure rate increases beyond a pre-defined threshold (set by the algorithm), an event is triggered and an email notification is sent to the user (if they've enabled email alerts). With the Events API, you can perform the following tasks on the ThousandEyes platform: * **Retrieve Events**: Obtain a list of events and detailed information for each event. For more information about events, see [Event Detection](https://docs.thousandeyes.com/product-documentation/event-detection). Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/models/target_event_grouping.py b/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/models/target_event_grouping.py index 6bebce00..19f1dcb4 100644 --- a/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/models/target_event_grouping.py +++ b/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/models/target_event_grouping.py @@ -3,7 +3,7 @@ """ Event Detection API - Event detection occurs when ThousandEyes identifies that error signals related to a component (proxy, network node, AS, server etc) have deviated from the baselines established by events. * To determine this, ThousandEyes takes the test results from all accounts groups within an organization, and analyzes that data. * Noisy test results (those that have too many errors in a short window) are removed until they stabilize, and the rest of the results are tagged with the components associated with that test result (for example, proxy, network, or server). * Next, any increase in failures from the test results and each component helps in determining the problem domain and which component may be at fault. * When this failure rate increases beyond a pre-defined threshold (set by the algorithm), an event is triggered and an email notification is sent to the user (if they've enabled email alerts). With the Events API, you can perform the following tasks on the ThousandEyes platform: * **Retrieve Events**: Obtain a list of events and detailed information for each event. For more information about events, see [Event Detection](https://docs.thousandeyes.com/product-documentation/event-detection). + Event detection occurs when ThousandEyes identifies that error signals related to a component (proxy, network node, AS, server etc) have deviated from the baselines established by events. * To determine this, ThousandEyes takes the test results from all accounts groups within an organization, and analyzes that data. * Noisy test results (those that have too many errors in a short window) are removed until they stabilize, and the rest of the results are tagged with the components associated with that test result (for example, proxy, network, or server). * Next, any increase in failures from the test results and each component helps in determining the problem domain and which component may be at fault. * When this failure rate increases beyond a pre-defined threshold (set by the algorithm), an event is triggered and an email notification is sent to the user (if they've enabled email alerts). With the Events API, you can perform the following tasks on the ThousandEyes platform: * **Retrieve Events**: Obtain a list of events and detailed information for each event. For more information about events, see [Event Detection](https://docs.thousandeyes.com/product-documentation/event-detection). Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/models/target_network_event_detail.py b/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/models/target_network_event_detail.py index 9e0f15df..038c06c2 100644 --- a/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/models/target_network_event_detail.py +++ b/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/models/target_network_event_detail.py @@ -3,7 +3,7 @@ """ Event Detection API - Event detection occurs when ThousandEyes identifies that error signals related to a component (proxy, network node, AS, server etc) have deviated from the baselines established by events. * To determine this, ThousandEyes takes the test results from all accounts groups within an organization, and analyzes that data. * Noisy test results (those that have too many errors in a short window) are removed until they stabilize, and the rest of the results are tagged with the components associated with that test result (for example, proxy, network, or server). * Next, any increase in failures from the test results and each component helps in determining the problem domain and which component may be at fault. * When this failure rate increases beyond a pre-defined threshold (set by the algorithm), an event is triggered and an email notification is sent to the user (if they've enabled email alerts). With the Events API, you can perform the following tasks on the ThousandEyes platform: * **Retrieve Events**: Obtain a list of events and detailed information for each event. For more information about events, see [Event Detection](https://docs.thousandeyes.com/product-documentation/event-detection). + Event detection occurs when ThousandEyes identifies that error signals related to a component (proxy, network node, AS, server etc) have deviated from the baselines established by events. * To determine this, ThousandEyes takes the test results from all accounts groups within an organization, and analyzes that data. * Noisy test results (those that have too many errors in a short window) are removed until they stabilize, and the rest of the results are tagged with the components associated with that test result (for example, proxy, network, or server). * Next, any increase in failures from the test results and each component helps in determining the problem domain and which component may be at fault. * When this failure rate increases beyond a pre-defined threshold (set by the algorithm), an event is triggered and an email notification is sent to the user (if they've enabled email alerts). With the Events API, you can perform the following tasks on the ThousandEyes platform: * **Retrieve Events**: Obtain a list of events and detailed information for each event. For more information about events, see [Event Detection](https://docs.thousandeyes.com/product-documentation/event-detection). Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/models/target_network_event_grouping.py b/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/models/target_network_event_grouping.py index f1ff83ae..9dc7d2aa 100644 --- a/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/models/target_network_event_grouping.py +++ b/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/models/target_network_event_grouping.py @@ -3,7 +3,7 @@ """ Event Detection API - Event detection occurs when ThousandEyes identifies that error signals related to a component (proxy, network node, AS, server etc) have deviated from the baselines established by events. * To determine this, ThousandEyes takes the test results from all accounts groups within an organization, and analyzes that data. * Noisy test results (those that have too many errors in a short window) are removed until they stabilize, and the rest of the results are tagged with the components associated with that test result (for example, proxy, network, or server). * Next, any increase in failures from the test results and each component helps in determining the problem domain and which component may be at fault. * When this failure rate increases beyond a pre-defined threshold (set by the algorithm), an event is triggered and an email notification is sent to the user (if they've enabled email alerts). With the Events API, you can perform the following tasks on the ThousandEyes platform: * **Retrieve Events**: Obtain a list of events and detailed information for each event. For more information about events, see [Event Detection](https://docs.thousandeyes.com/product-documentation/event-detection). + Event detection occurs when ThousandEyes identifies that error signals related to a component (proxy, network node, AS, server etc) have deviated from the baselines established by events. * To determine this, ThousandEyes takes the test results from all accounts groups within an organization, and analyzes that data. * Noisy test results (those that have too many errors in a short window) are removed until they stabilize, and the rest of the results are tagged with the components associated with that test result (for example, proxy, network, or server). * Next, any increase in failures from the test results and each component helps in determining the problem domain and which component may be at fault. * When this failure rate increases beyond a pre-defined threshold (set by the algorithm), an event is triggered and an email notification is sent to the user (if they've enabled email alerts). With the Events API, you can perform the following tasks on the ThousandEyes platform: * **Retrieve Events**: Obtain a list of events and detailed information for each event. For more information about events, see [Event Detection](https://docs.thousandeyes.com/product-documentation/event-detection). Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/models/test_type.py b/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/models/test_type.py index 881095a4..22474310 100644 --- a/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/models/test_type.py +++ b/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/models/test_type.py @@ -3,7 +3,7 @@ """ Event Detection API - Event detection occurs when ThousandEyes identifies that error signals related to a component (proxy, network node, AS, server etc) have deviated from the baselines established by events. * To determine this, ThousandEyes takes the test results from all accounts groups within an organization, and analyzes that data. * Noisy test results (those that have too many errors in a short window) are removed until they stabilize, and the rest of the results are tagged with the components associated with that test result (for example, proxy, network, or server). * Next, any increase in failures from the test results and each component helps in determining the problem domain and which component may be at fault. * When this failure rate increases beyond a pre-defined threshold (set by the algorithm), an event is triggered and an email notification is sent to the user (if they've enabled email alerts). With the Events API, you can perform the following tasks on the ThousandEyes platform: * **Retrieve Events**: Obtain a list of events and detailed information for each event. For more information about events, see [Event Detection](https://docs.thousandeyes.com/product-documentation/event-detection). + Event detection occurs when ThousandEyes identifies that error signals related to a component (proxy, network node, AS, server etc) have deviated from the baselines established by events. * To determine this, ThousandEyes takes the test results from all accounts groups within an organization, and analyzes that data. * Noisy test results (those that have too many errors in a short window) are removed until they stabilize, and the rest of the results are tagged with the components associated with that test result (for example, proxy, network, or server). * Next, any increase in failures from the test results and each component helps in determining the problem domain and which component may be at fault. * When this failure rate increases beyond a pre-defined threshold (set by the algorithm), an event is triggered and an email notification is sent to the user (if they've enabled email alerts). With the Events API, you can perform the following tasks on the ThousandEyes platform: * **Retrieve Events**: Obtain a list of events and detailed information for each event. For more information about events, see [Event Detection](https://docs.thousandeyes.com/product-documentation/event-detection). Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/models/unauthorized_error.py b/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/models/unauthorized_error.py index 5788a83f..0e7bf008 100644 --- a/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/models/unauthorized_error.py +++ b/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/models/unauthorized_error.py @@ -3,7 +3,7 @@ """ Event Detection API - Event detection occurs when ThousandEyes identifies that error signals related to a component (proxy, network node, AS, server etc) have deviated from the baselines established by events. * To determine this, ThousandEyes takes the test results from all accounts groups within an organization, and analyzes that data. * Noisy test results (those that have too many errors in a short window) are removed until they stabilize, and the rest of the results are tagged with the components associated with that test result (for example, proxy, network, or server). * Next, any increase in failures from the test results and each component helps in determining the problem domain and which component may be at fault. * When this failure rate increases beyond a pre-defined threshold (set by the algorithm), an event is triggered and an email notification is sent to the user (if they've enabled email alerts). With the Events API, you can perform the following tasks on the ThousandEyes platform: * **Retrieve Events**: Obtain a list of events and detailed information for each event. For more information about events, see [Event Detection](https://docs.thousandeyes.com/product-documentation/event-detection). + Event detection occurs when ThousandEyes identifies that error signals related to a component (proxy, network node, AS, server etc) have deviated from the baselines established by events. * To determine this, ThousandEyes takes the test results from all accounts groups within an organization, and analyzes that data. * Noisy test results (those that have too many errors in a short window) are removed until they stabilize, and the rest of the results are tagged with the components associated with that test result (for example, proxy, network, or server). * Next, any increase in failures from the test results and each component helps in determining the problem domain and which component may be at fault. * When this failure rate increases beyond a pre-defined threshold (set by the algorithm), an event is triggered and an email notification is sent to the user (if they've enabled email alerts). With the Events API, you can perform the following tasks on the ThousandEyes platform: * **Retrieve Events**: Obtain a list of events and detailed information for each event. For more information about events, see [Event Detection](https://docs.thousandeyes.com/product-documentation/event-detection). Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/models/validation_error.py b/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/models/validation_error.py index a8b74816..9f918ba2 100644 --- a/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/models/validation_error.py +++ b/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/models/validation_error.py @@ -3,7 +3,7 @@ """ Event Detection API - Event detection occurs when ThousandEyes identifies that error signals related to a component (proxy, network node, AS, server etc) have deviated from the baselines established by events. * To determine this, ThousandEyes takes the test results from all accounts groups within an organization, and analyzes that data. * Noisy test results (those that have too many errors in a short window) are removed until they stabilize, and the rest of the results are tagged with the components associated with that test result (for example, proxy, network, or server). * Next, any increase in failures from the test results and each component helps in determining the problem domain and which component may be at fault. * When this failure rate increases beyond a pre-defined threshold (set by the algorithm), an event is triggered and an email notification is sent to the user (if they've enabled email alerts). With the Events API, you can perform the following tasks on the ThousandEyes platform: * **Retrieve Events**: Obtain a list of events and detailed information for each event. For more information about events, see [Event Detection](https://docs.thousandeyes.com/product-documentation/event-detection). + Event detection occurs when ThousandEyes identifies that error signals related to a component (proxy, network node, AS, server etc) have deviated from the baselines established by events. * To determine this, ThousandEyes takes the test results from all accounts groups within an organization, and analyzes that data. * Noisy test results (those that have too many errors in a short window) are removed until they stabilize, and the rest of the results are tagged with the components associated with that test result (for example, proxy, network, or server). * Next, any increase in failures from the test results and each component helps in determining the problem domain and which component may be at fault. * When this failure rate increases beyond a pre-defined threshold (set by the algorithm), an event is triggered and an email notification is sent to the user (if they've enabled email alerts). With the Events API, you can perform the following tasks on the ThousandEyes platform: * **Retrieve Events**: Obtain a list of events and detailed information for each event. For more information about events, see [Event Detection](https://docs.thousandeyes.com/product-documentation/event-detection). Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/models/validation_error_item.py b/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/models/validation_error_item.py index e2632ca8..8a8c6f88 100644 --- a/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/models/validation_error_item.py +++ b/thousandeyes-sdk-event-detection/src/thousandeyes_sdk/event_detection/models/validation_error_item.py @@ -3,7 +3,7 @@ """ Event Detection API - Event detection occurs when ThousandEyes identifies that error signals related to a component (proxy, network node, AS, server etc) have deviated from the baselines established by events. * To determine this, ThousandEyes takes the test results from all accounts groups within an organization, and analyzes that data. * Noisy test results (those that have too many errors in a short window) are removed until they stabilize, and the rest of the results are tagged with the components associated with that test result (for example, proxy, network, or server). * Next, any increase in failures from the test results and each component helps in determining the problem domain and which component may be at fault. * When this failure rate increases beyond a pre-defined threshold (set by the algorithm), an event is triggered and an email notification is sent to the user (if they've enabled email alerts). With the Events API, you can perform the following tasks on the ThousandEyes platform: * **Retrieve Events**: Obtain a list of events and detailed information for each event. For more information about events, see [Event Detection](https://docs.thousandeyes.com/product-documentation/event-detection). + Event detection occurs when ThousandEyes identifies that error signals related to a component (proxy, network node, AS, server etc) have deviated from the baselines established by events. * To determine this, ThousandEyes takes the test results from all accounts groups within an organization, and analyzes that data. * Noisy test results (those that have too many errors in a short window) are removed until they stabilize, and the rest of the results are tagged with the components associated with that test result (for example, proxy, network, or server). * Next, any increase in failures from the test results and each component helps in determining the problem domain and which component may be at fault. * When this failure rate increases beyond a pre-defined threshold (set by the algorithm), an event is triggered and an email notification is sent to the user (if they've enabled email alerts). With the Events API, you can perform the following tasks on the ThousandEyes platform: * **Retrieve Events**: Obtain a list of events and detailed information for each event. For more information about events, see [Event Detection](https://docs.thousandeyes.com/product-documentation/event-detection). Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/thousandeyes-sdk-event-detection/test/test_events_api.py b/thousandeyes-sdk-event-detection/test/test_events_api.py index faa281c5..aed81efb 100644 --- a/thousandeyes-sdk-event-detection/test/test_events_api.py +++ b/thousandeyes-sdk-event-detection/test/test_events_api.py @@ -3,7 +3,7 @@ """ Event Detection API - Event detection occurs when ThousandEyes identifies that error signals related to a component (proxy, network node, AS, server etc) have deviated from the baselines established by events. * To determine this, ThousandEyes takes the test results from all accounts groups within an organization, and analyzes that data. * Noisy test results (those that have too many errors in a short window) are removed until they stabilize, and the rest of the results are tagged with the components associated with that test result (for example, proxy, network, or server). * Next, any increase in failures from the test results and each component helps in determining the problem domain and which component may be at fault. * When this failure rate increases beyond a pre-defined threshold (set by the algorithm), an event is triggered and an email notification is sent to the user (if they've enabled email alerts). With the Events API, you can perform the following tasks on the ThousandEyes platform: * **Retrieve Events**: Obtain a list of events and detailed information for each event. For more information about events, see [Event Detection](https://docs.thousandeyes.com/product-documentation/event-detection). + Event detection occurs when ThousandEyes identifies that error signals related to a component (proxy, network node, AS, server etc) have deviated from the baselines established by events. * To determine this, ThousandEyes takes the test results from all accounts groups within an organization, and analyzes that data. * Noisy test results (those that have too many errors in a short window) are removed until they stabilize, and the rest of the results are tagged with the components associated with that test result (for example, proxy, network, or server). * Next, any increase in failures from the test results and each component helps in determining the problem domain and which component may be at fault. * When this failure rate increases beyond a pre-defined threshold (set by the algorithm), an event is triggered and an email notification is sent to the user (if they've enabled email alerts). With the Events API, you can perform the following tasks on the ThousandEyes platform: * **Retrieve Events**: Obtain a list of events and detailed information for each event. For more information about events, see [Event Detection](https://docs.thousandeyes.com/product-documentation/event-detection). Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/thousandeyes-sdk-instant-tests/.openapi-generator/FILES b/thousandeyes-sdk-instant-tests/.openapi-generator/FILES index 07ca4cc5..fa33a7c1 100644 --- a/thousandeyes-sdk-instant-tests/.openapi-generator/FILES +++ b/thousandeyes-sdk-instant-tests/.openapi-generator/FILES @@ -45,7 +45,7 @@ docs/DnsServerInstantTest.md docs/DnsServerInstantTestRequest.md docs/DnsServerInstantTestResponse.md docs/DnsServerProperties.md -docs/DnsServersRequest.md +docs/DnsServerRequestProperties.md docs/DnsTraceInstantTest.md docs/DnsTraceInstantTestRequest.md docs/DnsTraceInstantTestResponse.md @@ -69,16 +69,19 @@ docs/InstantTest.md docs/InstantTestRequest.md docs/InstantTestsApi.md docs/Link.md +docs/NetworkProviderInfo.md +docs/NetworkProviderType.md docs/OAuth.md docs/OAuthAuthType.md -docs/OAuthRequestMethod.md docs/PageLoadInstantTest.md docs/PageLoadInstantTestRequest.md docs/PageLoadInstantTestResponse.md docs/PageLoadProperties.md +docs/RequestMethod.md docs/SIPServerInstantTestsApi.md docs/SharedWithAccount.md docs/SimpleAgent.md +docs/SimpleAgentAllOfNetworkProviderInfo.md docs/SipServerInstantTest.md docs/SipServerInstantTestRequest.md docs/SipServerInstantTestResponse.md @@ -101,7 +104,10 @@ docs/TestProtocol.md docs/TestSelfLink.md docs/TestSipCredentials.md docs/TestSslVersionId.md +docs/TestTag.md docs/TestType.md +docs/TestVaultCredential.md +docs/TestVaultCredentialTarget.md docs/UnauthorizedError.md docs/UnexpandedInstantTest.md docs/ValidationError.md @@ -172,7 +178,7 @@ src/thousandeyes_sdk/instant_tests/models/dns_server_instant_test.py src/thousandeyes_sdk/instant_tests/models/dns_server_instant_test_request.py src/thousandeyes_sdk/instant_tests/models/dns_server_instant_test_response.py src/thousandeyes_sdk/instant_tests/models/dns_server_properties.py -src/thousandeyes_sdk/instant_tests/models/dns_servers_request.py +src/thousandeyes_sdk/instant_tests/models/dns_server_request_properties.py src/thousandeyes_sdk/instant_tests/models/dns_trace_instant_test.py src/thousandeyes_sdk/instant_tests/models/dns_trace_instant_test_request.py src/thousandeyes_sdk/instant_tests/models/dns_trace_instant_test_response.py @@ -192,15 +198,18 @@ src/thousandeyes_sdk/instant_tests/models/http_server_properties.py src/thousandeyes_sdk/instant_tests/models/instant_test.py src/thousandeyes_sdk/instant_tests/models/instant_test_request.py src/thousandeyes_sdk/instant_tests/models/link.py +src/thousandeyes_sdk/instant_tests/models/network_provider_info.py +src/thousandeyes_sdk/instant_tests/models/network_provider_type.py src/thousandeyes_sdk/instant_tests/models/o_auth.py src/thousandeyes_sdk/instant_tests/models/o_auth_auth_type.py -src/thousandeyes_sdk/instant_tests/models/o_auth_request_method.py src/thousandeyes_sdk/instant_tests/models/page_load_instant_test.py src/thousandeyes_sdk/instant_tests/models/page_load_instant_test_request.py src/thousandeyes_sdk/instant_tests/models/page_load_instant_test_response.py src/thousandeyes_sdk/instant_tests/models/page_load_properties.py +src/thousandeyes_sdk/instant_tests/models/request_method.py src/thousandeyes_sdk/instant_tests/models/shared_with_account.py src/thousandeyes_sdk/instant_tests/models/simple_agent.py +src/thousandeyes_sdk/instant_tests/models/simple_agent_all_of_network_provider_info.py src/thousandeyes_sdk/instant_tests/models/sip_server_instant_test.py src/thousandeyes_sdk/instant_tests/models/sip_server_instant_test_request.py src/thousandeyes_sdk/instant_tests/models/sip_server_instant_test_response.py @@ -223,7 +232,10 @@ src/thousandeyes_sdk/instant_tests/models/test_protocol.py src/thousandeyes_sdk/instant_tests/models/test_self_link.py src/thousandeyes_sdk/instant_tests/models/test_sip_credentials.py src/thousandeyes_sdk/instant_tests/models/test_ssl_version_id.py +src/thousandeyes_sdk/instant_tests/models/test_tag.py src/thousandeyes_sdk/instant_tests/models/test_type.py +src/thousandeyes_sdk/instant_tests/models/test_vault_credential.py +src/thousandeyes_sdk/instant_tests/models/test_vault_credential_target.py src/thousandeyes_sdk/instant_tests/models/unauthorized_error.py src/thousandeyes_sdk/instant_tests/models/unexpanded_instant_test.py src/thousandeyes_sdk/instant_tests/models/validation_error.py diff --git a/thousandeyes-sdk-instant-tests/README.md b/thousandeyes-sdk-instant-tests/README.md index a0c579a3..ed6e0658 100644 --- a/thousandeyes-sdk-instant-tests/README.md +++ b/thousandeyes-sdk-instant-tests/README.md @@ -6,7 +6,7 @@ The response does not include the immediate test results. Use the Test Results e This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project: -- API version: 7.0.84 +- API version: 7.0.92 - Generator version: 7.6.0 - Build package: com.thousandeyes.api.codegen.ThousandeyesPythonGenerator @@ -154,7 +154,7 @@ Class | Method | HTTP request | Description - [DnsServerInstantTestRequest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-instant-tests/docs/DnsServerInstantTestRequest.md) - [DnsServerInstantTestResponse](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-instant-tests/docs/DnsServerInstantTestResponse.md) - [DnsServerProperties](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-instant-tests/docs/DnsServerProperties.md) - - [DnsServersRequest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-instant-tests/docs/DnsServersRequest.md) + - [DnsServerRequestProperties](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-instant-tests/docs/DnsServerRequestProperties.md) - [DnsTraceInstantTest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-instant-tests/docs/DnsTraceInstantTest.md) - [DnsTraceInstantTestRequest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-instant-tests/docs/DnsTraceInstantTestRequest.md) - [DnsTraceInstantTestResponse](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-instant-tests/docs/DnsTraceInstantTestResponse.md) @@ -174,15 +174,18 @@ Class | Method | HTTP request | Description - [InstantTest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-instant-tests/docs/InstantTest.md) - [InstantTestRequest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-instant-tests/docs/InstantTestRequest.md) - [Link](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-instant-tests/docs/Link.md) + - [NetworkProviderInfo](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-instant-tests/docs/NetworkProviderInfo.md) + - [NetworkProviderType](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-instant-tests/docs/NetworkProviderType.md) - [OAuth](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-instant-tests/docs/OAuth.md) - [OAuthAuthType](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-instant-tests/docs/OAuthAuthType.md) - - [OAuthRequestMethod](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-instant-tests/docs/OAuthRequestMethod.md) - [PageLoadInstantTest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-instant-tests/docs/PageLoadInstantTest.md) - [PageLoadInstantTestRequest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-instant-tests/docs/PageLoadInstantTestRequest.md) - [PageLoadInstantTestResponse](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-instant-tests/docs/PageLoadInstantTestResponse.md) - [PageLoadProperties](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-instant-tests/docs/PageLoadProperties.md) + - [RequestMethod](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-instant-tests/docs/RequestMethod.md) - [SharedWithAccount](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-instant-tests/docs/SharedWithAccount.md) - [SimpleAgent](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-instant-tests/docs/SimpleAgent.md) + - [SimpleAgentAllOfNetworkProviderInfo](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-instant-tests/docs/SimpleAgentAllOfNetworkProviderInfo.md) - [SipServerInstantTest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-instant-tests/docs/SipServerInstantTest.md) - [SipServerInstantTestRequest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-instant-tests/docs/SipServerInstantTestRequest.md) - [SipServerInstantTestResponse](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-instant-tests/docs/SipServerInstantTestResponse.md) @@ -205,7 +208,10 @@ Class | Method | HTTP request | Description - [TestSelfLink](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-instant-tests/docs/TestSelfLink.md) - [TestSipCredentials](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-instant-tests/docs/TestSipCredentials.md) - [TestSslVersionId](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-instant-tests/docs/TestSslVersionId.md) + - [TestTag](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-instant-tests/docs/TestTag.md) - [TestType](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-instant-tests/docs/TestType.md) + - [TestVaultCredential](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-instant-tests/docs/TestVaultCredential.md) + - [TestVaultCredentialTarget](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-instant-tests/docs/TestVaultCredentialTarget.md) - [UnauthorizedError](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-instant-tests/docs/UnauthorizedError.md) - [UnexpandedInstantTest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-instant-tests/docs/UnexpandedInstantTest.md) - [ValidationError](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-instant-tests/docs/ValidationError.md) diff --git a/thousandeyes-sdk-instant-tests/docs/AgentResponse.md b/thousandeyes-sdk-instant-tests/docs/AgentResponse.md index 50333bdd..22da7993 100644 --- a/thousandeyes-sdk-instant-tests/docs/AgentResponse.md +++ b/thousandeyes-sdk-instant-tests/docs/AgentResponse.md @@ -13,9 +13,10 @@ Name | Type | Description | Notes **location** | **str** | Location of the agent. | [optional] [readonly] **country_id** | **str** | 2-digit ISO country code | [optional] [readonly] **coordinates** | [**Coordinates**](Coordinates.md) | | [optional] +**network_provider_info** | [**SimpleAgentAllOfNetworkProviderInfo**](SimpleAgentAllOfNetworkProviderInfo.md) | | [optional] **enabled** | **bool** | Flag indicating if the agent is enabled. | [optional] -**prefix** | **str** | Prefix containing agents public IP address. | [optional] [readonly] **verify_ssl_certificates** | **bool** | Flag indicating if has normal SSL operations or if instead it's set to ignore SSL errors on browserbot-based tests. | [optional] [readonly] +**prefix** | **str** | Prefix containing agents public IP address. | [optional] [readonly] **agent_type** | [**CloudEnterpriseAgentType**](CloudEnterpriseAgentType.md) | | ## Example diff --git a/thousandeyes-sdk-instant-tests/docs/AgentToAgentInstantTest.md b/thousandeyes-sdk-instant-tests/docs/AgentToAgentInstantTest.md index e099837d..a033bf03 100644 --- a/thousandeyes-sdk-instant-tests/docs/AgentToAgentInstantTest.md +++ b/thousandeyes-sdk-instant-tests/docs/AgentToAgentInstantTest.md @@ -17,6 +17,7 @@ Name | Type | Description | Notes **type** | **str** | | [optional] [readonly] **links** | [**TestLinks**](TestLinks.md) | | [optional] **labels** | [**List[TestLabel]**](TestLabel.md) | Labels to which the test is assigned. This field is not returned for Instant Tests. | [optional] [readonly] +**tags** | [**List[TestTag]**](TestTag.md) | Tags assigned to the test. Returned only when `expand=tag` is specified. This field is not returned for Instant Tests. For more information, see `/tags`. | [optional] [readonly] **shared_with_accounts** | [**List[SharedWithAccount]**](SharedWithAccount.md) | | [optional] [readonly] **direction** | [**TestDirection**](TestDirection.md) | | [optional] **dscp** | **str** | DSCP label. | [optional] [readonly] diff --git a/thousandeyes-sdk-instant-tests/docs/AgentToAgentInstantTestRequest.md b/thousandeyes-sdk-instant-tests/docs/AgentToAgentInstantTestRequest.md index d63d0755..8c9f2cd6 100644 --- a/thousandeyes-sdk-instant-tests/docs/AgentToAgentInstantTestRequest.md +++ b/thousandeyes-sdk-instant-tests/docs/AgentToAgentInstantTestRequest.md @@ -16,8 +16,6 @@ Name | Type | Description | Notes **test_name** | **str** | The name of the test. Test name must be unique. | [optional] **type** | **str** | | [optional] [readonly] **links** | [**TestLinks**](TestLinks.md) | | [optional] -**labels** | **List[str]** | A list of test label identifiers (get `labelId` from `/labels` endpoint). | [optional] -**shared_with_accounts** | **List[str]** | A list of account group identifiers that the test is shared with (get `aid` from `/account-groups` endpoint). | [optional] **direction** | [**TestDirection**](TestDirection.md) | | [optional] **dscp** | **str** | DSCP label. | [optional] [readonly] **dscp_id** | [**TestDscpId**](TestDscpId.md) | | [optional] @@ -32,7 +30,9 @@ Name | Type | Description | Notes **throughput_duration** | **int** | The throughput duration. | [optional] [default to 10000] **throughput_rate** | **int** | The throughput rate, only applicable for UDP protocol. | [optional] **fixed_packet_rate** | **int** | Sets packets rate sent to measure the network in packets per second. | [optional] +**labels** | **List[str]** | A list of test label identifiers (get `labelId` from `/labels` endpoint). | [optional] **tags** | **List[str]** | A list of test tag identifiers (get `id` from `/tags` endpoint). | [optional] +**shared_with_accounts** | **List[str]** | A list of account group identifiers that the test is shared with (get `aid` from `/account-groups` endpoint). | [optional] **agents** | [**List[TestAgent]**](TestAgent.md) | A list of objects with `agentId` (required) and `sourceIpAddress` (optional). | ## Example diff --git a/thousandeyes-sdk-instant-tests/docs/AgentToAgentInstantTestResponse.md b/thousandeyes-sdk-instant-tests/docs/AgentToAgentInstantTestResponse.md index bed1feb9..e1ec7484 100644 --- a/thousandeyes-sdk-instant-tests/docs/AgentToAgentInstantTestResponse.md +++ b/thousandeyes-sdk-instant-tests/docs/AgentToAgentInstantTestResponse.md @@ -17,6 +17,7 @@ Name | Type | Description | Notes **type** | **str** | | [optional] [readonly] **links** | [**TestLinks**](TestLinks.md) | | [optional] **labels** | [**List[TestLabel]**](TestLabel.md) | Labels to which the test is assigned. This field is not returned for Instant Tests. | [optional] [readonly] +**tags** | [**List[TestTag]**](TestTag.md) | Tags assigned to the test. Returned only when `expand=tag` is specified. This field is not returned for Instant Tests. For more information, see `/tags`. | [optional] [readonly] **shared_with_accounts** | [**List[SharedWithAccount]**](SharedWithAccount.md) | | [optional] [readonly] **direction** | [**TestDirection**](TestDirection.md) | | [optional] **dscp** | **str** | DSCP label. | [optional] [readonly] diff --git a/thousandeyes-sdk-instant-tests/docs/AgentToServerInstantTest.md b/thousandeyes-sdk-instant-tests/docs/AgentToServerInstantTest.md index 4ff0f14b..6ec9ffd2 100644 --- a/thousandeyes-sdk-instant-tests/docs/AgentToServerInstantTest.md +++ b/thousandeyes-sdk-instant-tests/docs/AgentToServerInstantTest.md @@ -17,6 +17,7 @@ Name | Type | Description | Notes **type** | **str** | | [optional] [readonly] **links** | [**TestLinks**](TestLinks.md) | | [optional] **labels** | [**List[TestLabel]**](TestLabel.md) | Labels to which the test is assigned. This field is not returned for Instant Tests. | [optional] [readonly] +**tags** | [**List[TestTag]**](TestTag.md) | Tags assigned to the test. Returned only when `expand=tag` is specified. This field is not returned for Instant Tests. For more information, see `/tags`. | [optional] [readonly] **shared_with_accounts** | [**List[SharedWithAccount]**](SharedWithAccount.md) | | [optional] [readonly] **bandwidth_measurements** | **bool** | Set to `true` to enable bandwidth measurements, only applies to Enterprise agents assigned to the test. | [optional] **continuous_mode** | **bool** | To enable continuous monitoring, set this parameter to `true` to. When continuous monitoring is enabled, the following actions occur: * `fixedPacketRate` is enforced * `bandwidthMeasurements` are disabled * If the `protocol` is set to `tcp`, `probeMode` is set to `syn`. | [optional] diff --git a/thousandeyes-sdk-instant-tests/docs/AgentToServerInstantTestRequest.md b/thousandeyes-sdk-instant-tests/docs/AgentToServerInstantTestRequest.md index 8e0024d1..6e24e35e 100644 --- a/thousandeyes-sdk-instant-tests/docs/AgentToServerInstantTestRequest.md +++ b/thousandeyes-sdk-instant-tests/docs/AgentToServerInstantTestRequest.md @@ -16,8 +16,6 @@ Name | Type | Description | Notes **test_name** | **str** | The name of the test. Test name must be unique. | [optional] **type** | **str** | | [optional] [readonly] **links** | [**TestLinks**](TestLinks.md) | | [optional] -**labels** | **List[str]** | A list of test label identifiers (get `labelId` from `/labels` endpoint). | [optional] -**shared_with_accounts** | **List[str]** | A list of account group identifiers that the test is shared with (get `aid` from `/account-groups` endpoint). | [optional] **bandwidth_measurements** | **bool** | Set to `true` to enable bandwidth measurements, only applies to Enterprise agents assigned to the test. | [optional] **continuous_mode** | **bool** | To enable continuous monitoring, set this parameter to `true` to. When continuous monitoring is enabled, the following actions occur: * `fixedPacketRate` is enforced * `bandwidthMeasurements` are disabled * If the `protocol` is set to `tcp`, `probeMode` is set to `syn`. | [optional] **fixed_packet_rate** | **int** | If continuousMode is `false`, set the fixedPacketRate to a value between 10-100. If `continuousMode` is `true`, set the `fixedPacketRate` to `1` | [optional] @@ -33,7 +31,9 @@ Name | Type | Description | Notes **ipv6_policy** | [**TestIpv6Policy**](TestIpv6Policy.md) | | [optional] **ping_payload_size** | **int** | Payload size (not total packet size) for the end-to-end metric's probes, ping payload size allows values from 0 to 1400 bytes. When set to null, payload sizes are 0 bytes for ICMP-based tests and 1 byte for TCP-based tests. | [optional] **network_measurements** | **bool** | View packet loss in 1-second intervals. This is only available for 1-minute interval tests. Set to `true` to enable network measurements. | [optional] [default to False] +**labels** | **List[str]** | A list of test label identifiers (get `labelId` from `/labels` endpoint). | [optional] **tags** | **List[str]** | A list of test tag identifiers (get `id` from `/tags` endpoint). | [optional] +**shared_with_accounts** | **List[str]** | A list of account group identifiers that the test is shared with (get `aid` from `/account-groups` endpoint). | [optional] **agents** | [**List[TestAgent]**](TestAgent.md) | A list of objects with `agentId` (required) and `sourceIpAddress` (optional). | ## Example diff --git a/thousandeyes-sdk-instant-tests/docs/AgentToServerInstantTestResponse.md b/thousandeyes-sdk-instant-tests/docs/AgentToServerInstantTestResponse.md index a8f7990e..e16e34f0 100644 --- a/thousandeyes-sdk-instant-tests/docs/AgentToServerInstantTestResponse.md +++ b/thousandeyes-sdk-instant-tests/docs/AgentToServerInstantTestResponse.md @@ -17,6 +17,7 @@ Name | Type | Description | Notes **type** | **str** | | [optional] [readonly] **links** | [**TestLinks**](TestLinks.md) | | [optional] **labels** | [**List[TestLabel]**](TestLabel.md) | Labels to which the test is assigned. This field is not returned for Instant Tests. | [optional] [readonly] +**tags** | [**List[TestTag]**](TestTag.md) | Tags assigned to the test. Returned only when `expand=tag` is specified. This field is not returned for Instant Tests. For more information, see `/tags`. | [optional] [readonly] **shared_with_accounts** | [**List[SharedWithAccount]**](SharedWithAccount.md) | | [optional] [readonly] **bandwidth_measurements** | **bool** | Set to `true` to enable bandwidth measurements, only applies to Enterprise agents assigned to the test. | [optional] **continuous_mode** | **bool** | To enable continuous monitoring, set this parameter to `true` to. When continuous monitoring is enabled, the following actions occur: * `fixedPacketRate` is enforced * `bandwidthMeasurements` are disabled * If the `protocol` is set to `tcp`, `probeMode` is set to `syn`. | [optional] diff --git a/thousandeyes-sdk-instant-tests/docs/ApiInstantTest.md b/thousandeyes-sdk-instant-tests/docs/ApiInstantTest.md index ca458b50..967c759f 100644 --- a/thousandeyes-sdk-instant-tests/docs/ApiInstantTest.md +++ b/thousandeyes-sdk-instant-tests/docs/ApiInstantTest.md @@ -17,6 +17,7 @@ Name | Type | Description | Notes **type** | **str** | | [optional] [readonly] **links** | [**TestLinks**](TestLinks.md) | | [optional] **labels** | [**List[TestLabel]**](TestLabel.md) | Labels to which the test is assigned. This field is not returned for Instant Tests. | [optional] [readonly] +**tags** | [**List[TestTag]**](TestTag.md) | Tags assigned to the test. Returned only when `expand=tag` is specified. This field is not returned for Instant Tests. For more information, see `/tags`. | [optional] [readonly] **shared_with_accounts** | [**List[SharedWithAccount]**](SharedWithAccount.md) | | [optional] [readonly] **client_certificate** | **str** | String representation (containing newline characters) of client certificate, the private key must be placed first, then the certificate. | [optional] **client_cert_domains_allow_list** | **str** | Comma separated list of domains to send the client certificate. | [optional] @@ -39,6 +40,7 @@ Name | Type | Description | Notes **time_limit** | **int** | Time limit for transaction in seconds. Exceeding this limit will result in a Timeout error. | [optional] [default to 30] **url** | **str** | Target for the test. | **credentials** | **List[str]** | Contains a list of credential IDs (get `credentialId` from `/credentials` endpoint). | [optional] +**vault_credentials** | [**List[TestVaultCredential]**](TestVaultCredential.md) | List of credential IDs that are stored in an external vault. | [optional] ## Example diff --git a/thousandeyes-sdk-instant-tests/docs/ApiInstantTestRequest.md b/thousandeyes-sdk-instant-tests/docs/ApiInstantTestRequest.md index 6f2882dd..dadebb5f 100644 --- a/thousandeyes-sdk-instant-tests/docs/ApiInstantTestRequest.md +++ b/thousandeyes-sdk-instant-tests/docs/ApiInstantTestRequest.md @@ -16,8 +16,6 @@ Name | Type | Description | Notes **test_name** | **str** | The name of the test. Test name must be unique. | [optional] **type** | **str** | | [optional] [readonly] **links** | [**TestLinks**](TestLinks.md) | | [optional] -**labels** | **List[str]** | A list of test label identifiers (get `labelId` from `/labels` endpoint). | [optional] -**shared_with_accounts** | **List[str]** | A list of account group identifiers that the test is shared with (get `aid` from `/account-groups` endpoint). | [optional] **client_certificate** | **str** | String representation (containing newline characters) of client certificate, the private key must be placed first, then the certificate. | [optional] **client_cert_domains_allow_list** | **str** | Comma separated list of domains to send the client certificate. | [optional] **collect_proxy_network_data** | **bool** | Indicates whether network data to the proxy should be collected. | [optional] [default to False] @@ -38,9 +36,12 @@ Name | Type | Description | Notes **target_time** | **int** | Target time for completion metric, defaults to 50% of time limit specified in seconds. (0 means default behavior) | [optional] **time_limit** | **int** | Time limit for transaction in seconds. Exceeding this limit will result in a Timeout error. | [optional] [default to 30] **url** | **str** | Target for the test. | -**credentials** | **List[str]** | Contains a list of credential IDs (get `credentialId` from `/credentials` endpoint). | [optional] +**labels** | **List[str]** | A list of test label identifiers (get `labelId` from `/labels` endpoint). | [optional] **tags** | **List[str]** | A list of test tag identifiers (get `id` from `/tags` endpoint). | [optional] +**shared_with_accounts** | **List[str]** | A list of account group identifiers that the test is shared with (get `aid` from `/account-groups` endpoint). | [optional] **agents** | [**List[TestAgent]**](TestAgent.md) | A list of objects with `agentId` (required) and `sourceIpAddress` (optional). | +**credentials** | **List[str]** | Contains a list of credential IDs (get `credentialId` from `/credentials` endpoint). | [optional] +**vault_credentials** | [**List[TestVaultCredential]**](TestVaultCredential.md) | List of credential IDs that are stored in an external vault. | [optional] ## Example diff --git a/thousandeyes-sdk-instant-tests/docs/ApiInstantTestResponse.md b/thousandeyes-sdk-instant-tests/docs/ApiInstantTestResponse.md index 3ef2b6f3..cff276ab 100644 --- a/thousandeyes-sdk-instant-tests/docs/ApiInstantTestResponse.md +++ b/thousandeyes-sdk-instant-tests/docs/ApiInstantTestResponse.md @@ -17,6 +17,7 @@ Name | Type | Description | Notes **type** | **str** | | [optional] [readonly] **links** | [**TestLinks**](TestLinks.md) | | [optional] **labels** | [**List[TestLabel]**](TestLabel.md) | Labels to which the test is assigned. This field is not returned for Instant Tests. | [optional] [readonly] +**tags** | [**List[TestTag]**](TestTag.md) | Tags assigned to the test. Returned only when `expand=tag` is specified. This field is not returned for Instant Tests. For more information, see `/tags`. | [optional] [readonly] **shared_with_accounts** | [**List[SharedWithAccount]**](SharedWithAccount.md) | | [optional] [readonly] **client_certificate** | **str** | String representation (containing newline characters) of client certificate, the private key must be placed first, then the certificate. | [optional] **client_cert_domains_allow_list** | **str** | Comma separated list of domains to send the client certificate. | [optional] @@ -39,6 +40,7 @@ Name | Type | Description | Notes **time_limit** | **int** | Time limit for transaction in seconds. Exceeding this limit will result in a Timeout error. | [optional] [default to 30] **url** | **str** | Target for the test. | **credentials** | **List[str]** | Contains a list of credential IDs (get `credentialId` from `/credentials` endpoint). | [optional] +**vault_credentials** | [**List[TestVaultCredential]**](TestVaultCredential.md) | List of credential IDs that are stored in an external vault. | [optional] **agents** | [**List[AgentResponse]**](AgentResponse.md) | Contains list of agents. | [optional] ## Example diff --git a/thousandeyes-sdk-instant-tests/docs/DnsSecInstantTest.md b/thousandeyes-sdk-instant-tests/docs/DnsSecInstantTest.md index 733df243..fb0e1cdb 100644 --- a/thousandeyes-sdk-instant-tests/docs/DnsSecInstantTest.md +++ b/thousandeyes-sdk-instant-tests/docs/DnsSecInstantTest.md @@ -17,6 +17,7 @@ Name | Type | Description | Notes **type** | **str** | | [optional] [readonly] **links** | [**TestLinks**](TestLinks.md) | | [optional] **labels** | [**List[TestLabel]**](TestLabel.md) | Labels to which the test is assigned. This field is not returned for Instant Tests. | [optional] [readonly] +**tags** | [**List[TestTag]**](TestTag.md) | Tags assigned to the test. Returned only when `expand=tag` is specified. This field is not returned for Instant Tests. For more information, see `/tags`. | [optional] [readonly] **shared_with_accounts** | [**List[SharedWithAccount]**](SharedWithAccount.md) | | [optional] [readonly] **domain** | **str** | The target record for the test, with the record type suffixed. If no record type is specified, the test defaults to an ANY record. | **dns_query_class** | [**DnsQueryClass**](DnsQueryClass.md) | | [optional] diff --git a/thousandeyes-sdk-instant-tests/docs/DnsSecInstantTestRequest.md b/thousandeyes-sdk-instant-tests/docs/DnsSecInstantTestRequest.md index 58b03f19..563ec353 100644 --- a/thousandeyes-sdk-instant-tests/docs/DnsSecInstantTestRequest.md +++ b/thousandeyes-sdk-instant-tests/docs/DnsSecInstantTestRequest.md @@ -16,12 +16,12 @@ Name | Type | Description | Notes **test_name** | **str** | The name of the test. Test name must be unique. | [optional] **type** | **str** | | [optional] [readonly] **links** | [**TestLinks**](TestLinks.md) | | [optional] -**labels** | **List[str]** | A list of test label identifiers (get `labelId` from `/labels` endpoint). | [optional] -**shared_with_accounts** | **List[str]** | A list of account group identifiers that the test is shared with (get `aid` from `/account-groups` endpoint). | [optional] **domain** | **str** | The target record for the test, with the record type suffixed. If no record type is specified, the test defaults to an ANY record. | **dns_query_class** | [**DnsQueryClass**](DnsQueryClass.md) | | [optional] **randomized_start_time** | **bool** | Indicates whether agents should randomize the start time in each test round. | [optional] [default to False] +**labels** | **List[str]** | A list of test label identifiers (get `labelId` from `/labels` endpoint). | [optional] **tags** | **List[str]** | A list of test tag identifiers (get `id` from `/tags` endpoint). | [optional] +**shared_with_accounts** | **List[str]** | A list of account group identifiers that the test is shared with (get `aid` from `/account-groups` endpoint). | [optional] **agents** | [**List[TestAgent]**](TestAgent.md) | A list of objects with `agentId` (required) and `sourceIpAddress` (optional). | ## Example diff --git a/thousandeyes-sdk-instant-tests/docs/DnsSecInstantTestResponse.md b/thousandeyes-sdk-instant-tests/docs/DnsSecInstantTestResponse.md index db2d589b..3dc15f19 100644 --- a/thousandeyes-sdk-instant-tests/docs/DnsSecInstantTestResponse.md +++ b/thousandeyes-sdk-instant-tests/docs/DnsSecInstantTestResponse.md @@ -17,6 +17,7 @@ Name | Type | Description | Notes **type** | **str** | | [optional] [readonly] **links** | [**TestLinks**](TestLinks.md) | | [optional] **labels** | [**List[TestLabel]**](TestLabel.md) | Labels to which the test is assigned. This field is not returned for Instant Tests. | [optional] [readonly] +**tags** | [**List[TestTag]**](TestTag.md) | Tags assigned to the test. Returned only when `expand=tag` is specified. This field is not returned for Instant Tests. For more information, see `/tags`. | [optional] [readonly] **shared_with_accounts** | [**List[SharedWithAccount]**](SharedWithAccount.md) | | [optional] [readonly] **domain** | **str** | The target record for the test, with the record type suffixed. If no record type is specified, the test defaults to an ANY record. | **dns_query_class** | [**DnsQueryClass**](DnsQueryClass.md) | | [optional] diff --git a/thousandeyes-sdk-instant-tests/docs/DnsServerInstantTest.md b/thousandeyes-sdk-instant-tests/docs/DnsServerInstantTest.md index a8b389fe..7ea28bca 100644 --- a/thousandeyes-sdk-instant-tests/docs/DnsServerInstantTest.md +++ b/thousandeyes-sdk-instant-tests/docs/DnsServerInstantTest.md @@ -17,6 +17,7 @@ Name | Type | Description | Notes **type** | **str** | | [optional] [readonly] **links** | [**TestLinks**](TestLinks.md) | | [optional] **labels** | [**List[TestLabel]**](TestLabel.md) | Labels to which the test is assigned. This field is not returned for Instant Tests. | [optional] [readonly] +**tags** | [**List[TestTag]**](TestTag.md) | Tags assigned to the test. Returned only when `expand=tag` is specified. This field is not returned for Instant Tests. For more information, see `/tags`. | [optional] [readonly] **shared_with_accounts** | [**List[SharedWithAccount]**](SharedWithAccount.md) | | [optional] [readonly] **bandwidth_measurements** | **bool** | Set to `true` to enable bandwidth measurements, only applies to Enterprise agents assigned to the test. | [optional] **dns_servers** | [**List[TestDnsServer]**](TestDnsServer.md) | | diff --git a/thousandeyes-sdk-instant-tests/docs/DnsServerInstantTestRequest.md b/thousandeyes-sdk-instant-tests/docs/DnsServerInstantTestRequest.md index bd7919d8..47eb8219 100644 --- a/thousandeyes-sdk-instant-tests/docs/DnsServerInstantTestRequest.md +++ b/thousandeyes-sdk-instant-tests/docs/DnsServerInstantTestRequest.md @@ -16,8 +16,6 @@ Name | Type | Description | Notes **test_name** | **str** | The name of the test. Test name must be unique. | [optional] **type** | **str** | | [optional] [readonly] **links** | [**TestLinks**](TestLinks.md) | | [optional] -**labels** | **List[str]** | A list of test label identifiers (get `labelId` from `/labels` endpoint). | [optional] -**shared_with_accounts** | **List[str]** | A list of account group identifiers that the test is shared with (get `aid` from `/account-groups` endpoint). | [optional] **bandwidth_measurements** | **bool** | Set to `true` to enable bandwidth measurements, only applies to Enterprise agents assigned to the test. | [optional] **dns_servers** | **List[str]** | A list of DNS server FQDN. | **dns_transport_protocol** | [**TestDnsTransportProtocol**](TestDnsTransportProtocol.md) | | [optional] @@ -33,7 +31,9 @@ Name | Type | Description | Notes **ipv6_policy** | [**TestIpv6Policy**](TestIpv6Policy.md) | | [optional] **fixed_packet_rate** | **int** | Sets packets rate sent to measure the network in packets per second. | [optional] **dns_query_class** | [**DnsQueryClass**](DnsQueryClass.md) | | [optional] +**labels** | **List[str]** | A list of test label identifiers (get `labelId` from `/labels` endpoint). | [optional] **tags** | **List[str]** | A list of test tag identifiers (get `id` from `/tags` endpoint). | [optional] +**shared_with_accounts** | **List[str]** | A list of account group identifiers that the test is shared with (get `aid` from `/account-groups` endpoint). | [optional] **agents** | [**List[TestAgent]**](TestAgent.md) | A list of objects with `agentId` (required) and `sourceIpAddress` (optional). | ## Example diff --git a/thousandeyes-sdk-instant-tests/docs/DnsServerInstantTestResponse.md b/thousandeyes-sdk-instant-tests/docs/DnsServerInstantTestResponse.md index d5136436..c94e1d56 100644 --- a/thousandeyes-sdk-instant-tests/docs/DnsServerInstantTestResponse.md +++ b/thousandeyes-sdk-instant-tests/docs/DnsServerInstantTestResponse.md @@ -17,6 +17,7 @@ Name | Type | Description | Notes **type** | **str** | | [optional] [readonly] **links** | [**TestLinks**](TestLinks.md) | | [optional] **labels** | [**List[TestLabel]**](TestLabel.md) | Labels to which the test is assigned. This field is not returned for Instant Tests. | [optional] [readonly] +**tags** | [**List[TestTag]**](TestTag.md) | Tags assigned to the test. Returned only when `expand=tag` is specified. This field is not returned for Instant Tests. For more information, see `/tags`. | [optional] [readonly] **shared_with_accounts** | [**List[SharedWithAccount]**](SharedWithAccount.md) | | [optional] [readonly] **bandwidth_measurements** | **bool** | Set to `true` to enable bandwidth measurements, only applies to Enterprise agents assigned to the test. | [optional] **dns_servers** | [**List[TestDnsServer]**](TestDnsServer.md) | | diff --git a/thousandeyes-sdk-instant-tests/docs/DnsServerRequestProperties.md b/thousandeyes-sdk-instant-tests/docs/DnsServerRequestProperties.md new file mode 100644 index 00000000..3276effa --- /dev/null +++ b/thousandeyes-sdk-instant-tests/docs/DnsServerRequestProperties.md @@ -0,0 +1,44 @@ +# DnsServerRequestProperties + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**bandwidth_measurements** | **bool** | Set to `true` to enable bandwidth measurements, only applies to Enterprise agents assigned to the test. | [optional] +**dns_servers** | **List[str]** | A list of DNS server FQDN. | +**dns_transport_protocol** | [**TestDnsTransportProtocol**](TestDnsTransportProtocol.md) | | [optional] +**domain** | **str** | The target record for the test, with the record type suffixed. If no record type is specified, the test defaults to an ANY record. | +**mtu_measurements** | **bool** | Set `true` to measure MTU sizes on network from agents to the target. | [optional] +**network_measurements** | **bool** | Enable or disable network measurements. Set to true to enable or false to disable network measurements. | [optional] [default to True] +**num_path_traces** | **int** | Number of path traces executed by the agent. | [optional] [default to 3] +**path_trace_mode** | [**TestPathTraceMode**](TestPathTraceMode.md) | | [optional] +**probe_mode** | [**TestProbeMode**](TestProbeMode.md) | | [optional] +**protocol** | [**TestProtocol**](TestProtocol.md) | | [optional] +**randomized_start_time** | **bool** | Indicates whether agents should randomize the start time in each test round. | [optional] [default to False] +**recursive_queries** | **bool** | Set true to run query with RD (recursion desired) flag enabled. | [optional] +**ipv6_policy** | [**TestIpv6Policy**](TestIpv6Policy.md) | | [optional] +**fixed_packet_rate** | **int** | Sets packets rate sent to measure the network in packets per second. | [optional] +**dns_query_class** | [**DnsQueryClass**](DnsQueryClass.md) | | [optional] +**type** | **str** | | [optional] [readonly] + +## Example + +```python +from thousandeyes_sdk.instant_tests.models.dns_server_request_properties import DnsServerRequestProperties + +# TODO update the JSON string below +json = "{}" +# create an instance of DnsServerRequestProperties from a JSON string +dns_server_request_properties_instance = DnsServerRequestProperties.from_json(json) +# print the JSON string representation of the object +print(DnsServerRequestProperties.to_json()) + +# convert the object into a dict +dns_server_request_properties_dict = dns_server_request_properties_instance.to_dict() +# create an instance of DnsServerRequestProperties from a dict +dns_server_request_properties_from_dict = DnsServerRequestProperties.from_dict(dns_server_request_properties_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/thousandeyes-sdk-instant-tests/docs/DnsServersRequest.md b/thousandeyes-sdk-instant-tests/docs/DnsServersRequest.md deleted file mode 100644 index 87c119f5..00000000 --- a/thousandeyes-sdk-instant-tests/docs/DnsServersRequest.md +++ /dev/null @@ -1,29 +0,0 @@ -# DnsServersRequest - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**dns_servers** | **List[str]** | A list of DNS server FQDN. | [optional] - -## Example - -```python -from thousandeyes_sdk.instant_tests.models.dns_servers_request import DnsServersRequest - -# TODO update the JSON string below -json = "{}" -# create an instance of DnsServersRequest from a JSON string -dns_servers_request_instance = DnsServersRequest.from_json(json) -# print the JSON string representation of the object -print(DnsServersRequest.to_json()) - -# convert the object into a dict -dns_servers_request_dict = dns_servers_request_instance.to_dict() -# create an instance of DnsServersRequest from a dict -dns_servers_request_from_dict = DnsServersRequest.from_dict(dns_servers_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/thousandeyes-sdk-instant-tests/docs/DnsTraceInstantTest.md b/thousandeyes-sdk-instant-tests/docs/DnsTraceInstantTest.md index e003f5e3..d3809bba 100644 --- a/thousandeyes-sdk-instant-tests/docs/DnsTraceInstantTest.md +++ b/thousandeyes-sdk-instant-tests/docs/DnsTraceInstantTest.md @@ -17,6 +17,7 @@ Name | Type | Description | Notes **type** | **str** | | [optional] [readonly] **links** | [**TestLinks**](TestLinks.md) | | [optional] **labels** | [**List[TestLabel]**](TestLabel.md) | Labels to which the test is assigned. This field is not returned for Instant Tests. | [optional] [readonly] +**tags** | [**List[TestTag]**](TestTag.md) | Tags assigned to the test. Returned only when `expand=tag` is specified. This field is not returned for Instant Tests. For more information, see `/tags`. | [optional] [readonly] **shared_with_accounts** | [**List[SharedWithAccount]**](SharedWithAccount.md) | | [optional] [readonly] **dns_transport_protocol** | [**TestDnsTransportProtocol**](TestDnsTransportProtocol.md) | | [optional] **domain** | **str** | The target record for the test, with the record type suffixed. If no record type is specified, the test defaults to an ANY record. | diff --git a/thousandeyes-sdk-instant-tests/docs/DnsTraceInstantTestRequest.md b/thousandeyes-sdk-instant-tests/docs/DnsTraceInstantTestRequest.md index 9be9e6a0..8b2c0a51 100644 --- a/thousandeyes-sdk-instant-tests/docs/DnsTraceInstantTestRequest.md +++ b/thousandeyes-sdk-instant-tests/docs/DnsTraceInstantTestRequest.md @@ -16,13 +16,13 @@ Name | Type | Description | Notes **test_name** | **str** | The name of the test. Test name must be unique. | [optional] **type** | **str** | | [optional] [readonly] **links** | [**TestLinks**](TestLinks.md) | | [optional] -**labels** | **List[str]** | A list of test label identifiers (get `labelId` from `/labels` endpoint). | [optional] -**shared_with_accounts** | **List[str]** | A list of account group identifiers that the test is shared with (get `aid` from `/account-groups` endpoint). | [optional] **dns_transport_protocol** | [**TestDnsTransportProtocol**](TestDnsTransportProtocol.md) | | [optional] **domain** | **str** | The target record for the test, with the record type suffixed. If no record type is specified, the test defaults to an ANY record. | **dns_query_class** | [**DnsQueryClass**](DnsQueryClass.md) | | [optional] **randomized_start_time** | **bool** | Indicates whether agents should randomize the start time in each test round. | [optional] [default to False] +**labels** | **List[str]** | A list of test label identifiers (get `labelId` from `/labels` endpoint). | [optional] **tags** | **List[str]** | A list of test tag identifiers (get `id` from `/tags` endpoint). | [optional] +**shared_with_accounts** | **List[str]** | A list of account group identifiers that the test is shared with (get `aid` from `/account-groups` endpoint). | [optional] **agents** | [**List[TestAgent]**](TestAgent.md) | A list of objects with `agentId` (required) and `sourceIpAddress` (optional). | ## Example diff --git a/thousandeyes-sdk-instant-tests/docs/DnsTraceInstantTestResponse.md b/thousandeyes-sdk-instant-tests/docs/DnsTraceInstantTestResponse.md index d8f02b7e..41ce900a 100644 --- a/thousandeyes-sdk-instant-tests/docs/DnsTraceInstantTestResponse.md +++ b/thousandeyes-sdk-instant-tests/docs/DnsTraceInstantTestResponse.md @@ -17,6 +17,7 @@ Name | Type | Description | Notes **type** | **str** | | [optional] [readonly] **links** | [**TestLinks**](TestLinks.md) | | [optional] **labels** | [**List[TestLabel]**](TestLabel.md) | Labels to which the test is assigned. This field is not returned for Instant Tests. | [optional] [readonly] +**tags** | [**List[TestTag]**](TestTag.md) | Tags assigned to the test. Returned only when `expand=tag` is specified. This field is not returned for Instant Tests. For more information, see `/tags`. | [optional] [readonly] **shared_with_accounts** | [**List[SharedWithAccount]**](SharedWithAccount.md) | | [optional] [readonly] **dns_transport_protocol** | [**TestDnsTransportProtocol**](TestDnsTransportProtocol.md) | | [optional] **domain** | **str** | The target record for the test, with the record type suffixed. If no record type is specified, the test defaults to an ANY record. | diff --git a/thousandeyes-sdk-instant-tests/docs/FtpServerInstantTest.md b/thousandeyes-sdk-instant-tests/docs/FtpServerInstantTest.md index 8edf48fa..55b80a8f 100644 --- a/thousandeyes-sdk-instant-tests/docs/FtpServerInstantTest.md +++ b/thousandeyes-sdk-instant-tests/docs/FtpServerInstantTest.md @@ -17,6 +17,7 @@ Name | Type | Description | Notes **type** | **str** | | [optional] [readonly] **links** | [**TestLinks**](TestLinks.md) | | [optional] **labels** | [**List[TestLabel]**](TestLabel.md) | Labels to which the test is assigned. This field is not returned for Instant Tests. | [optional] [readonly] +**tags** | [**List[TestTag]**](TestTag.md) | Tags assigned to the test. Returned only when `expand=tag` is specified. This field is not returned for Instant Tests. For more information, see `/tags`. | [optional] [readonly] **shared_with_accounts** | [**List[SharedWithAccount]**](SharedWithAccount.md) | | [optional] [readonly] **bandwidth_measurements** | **bool** | Set to `true` to enable bandwidth measurements, only applies to Enterprise agents assigned to the test. | [optional] **download_limit** | **int** | Specify maximum number of bytes to download from the target object. | [optional] diff --git a/thousandeyes-sdk-instant-tests/docs/FtpServerInstantTestRequest.md b/thousandeyes-sdk-instant-tests/docs/FtpServerInstantTestRequest.md index 0b10e5d1..f10ec756 100644 --- a/thousandeyes-sdk-instant-tests/docs/FtpServerInstantTestRequest.md +++ b/thousandeyes-sdk-instant-tests/docs/FtpServerInstantTestRequest.md @@ -16,8 +16,6 @@ Name | Type | Description | Notes **test_name** | **str** | The name of the test. Test name must be unique. | [optional] **type** | **str** | | [optional] [readonly] **links** | [**TestLinks**](TestLinks.md) | | [optional] -**labels** | **List[str]** | A list of test label identifiers (get `labelId` from `/labels` endpoint). | [optional] -**shared_with_accounts** | **List[str]** | A list of account group identifiers that the test is shared with (get `aid` from `/account-groups` endpoint). | [optional] **bandwidth_measurements** | **bool** | Set to `true` to enable bandwidth measurements, only applies to Enterprise agents assigned to the test. | [optional] **download_limit** | **int** | Specify maximum number of bytes to download from the target object. | [optional] **ftp_target_time** | **int** | Target time for operation completion; specified in milliseconds. | [optional] @@ -37,7 +35,9 @@ Name | Type | Description | Notes **username** | **str** | Username for Basic/NTLM authentication. | **fixed_packet_rate** | **int** | Sets packets rate sent to measure the network in packets per second. | [optional] **ipv6_policy** | [**TestIpv6Policy**](TestIpv6Policy.md) | | [optional] +**labels** | **List[str]** | A list of test label identifiers (get `labelId` from `/labels` endpoint). | [optional] **tags** | **List[str]** | A list of test tag identifiers (get `id` from `/tags` endpoint). | [optional] +**shared_with_accounts** | **List[str]** | A list of account group identifiers that the test is shared with (get `aid` from `/account-groups` endpoint). | [optional] **agents** | [**List[TestAgent]**](TestAgent.md) | A list of objects with `agentId` (required) and `sourceIpAddress` (optional). | ## Example diff --git a/thousandeyes-sdk-instant-tests/docs/FtpServerInstantTestResponse.md b/thousandeyes-sdk-instant-tests/docs/FtpServerInstantTestResponse.md index 6ce27977..dcb7db2f 100644 --- a/thousandeyes-sdk-instant-tests/docs/FtpServerInstantTestResponse.md +++ b/thousandeyes-sdk-instant-tests/docs/FtpServerInstantTestResponse.md @@ -17,6 +17,7 @@ Name | Type | Description | Notes **type** | **str** | | [optional] [readonly] **links** | [**TestLinks**](TestLinks.md) | | [optional] **labels** | [**List[TestLabel]**](TestLabel.md) | Labels to which the test is assigned. This field is not returned for Instant Tests. | [optional] [readonly] +**tags** | [**List[TestTag]**](TestTag.md) | Tags assigned to the test. Returned only when `expand=tag` is specified. This field is not returned for Instant Tests. For more information, see `/tags`. | [optional] [readonly] **shared_with_accounts** | [**List[SharedWithAccount]**](SharedWithAccount.md) | | [optional] [readonly] **bandwidth_measurements** | **bool** | Set to `true` to enable bandwidth measurements, only applies to Enterprise agents assigned to the test. | [optional] **download_limit** | **int** | Specify maximum number of bytes to download from the target object. | [optional] diff --git a/thousandeyes-sdk-instant-tests/docs/HttpServerBaseProperties.md b/thousandeyes-sdk-instant-tests/docs/HttpServerBaseProperties.md index 2e6093a2..5fdd42b3 100644 --- a/thousandeyes-sdk-instant-tests/docs/HttpServerBaseProperties.md +++ b/thousandeyes-sdk-instant-tests/docs/HttpServerBaseProperties.md @@ -40,6 +40,7 @@ Name | Type | Description | Notes **override_agent_proxy** | **bool** | Flag indicating if a proxy other than the default should be used. To override the default proxy for agents, set to `true` and specify a value for `overrideProxyId`. | [optional] [default to False] **override_proxy_id** | **str** | ID of the proxy to be used if the default proxy is overridden. | [optional] **collect_proxy_network_data** | **bool** | Indicates whether network data to the proxy should be collected. | [optional] [default to False] +**vault_credentials** | [**List[TestVaultCredential]**](TestVaultCredential.md) | List of credential IDs that are stored in an external vault. | [optional] ## Example diff --git a/thousandeyes-sdk-instant-tests/docs/HttpServerInstantTest.md b/thousandeyes-sdk-instant-tests/docs/HttpServerInstantTest.md index 4c1ff62c..58560eba 100644 --- a/thousandeyes-sdk-instant-tests/docs/HttpServerInstantTest.md +++ b/thousandeyes-sdk-instant-tests/docs/HttpServerInstantTest.md @@ -17,6 +17,7 @@ Name | Type | Description | Notes **type** | **str** | | [optional] [readonly] **links** | [**TestLinks**](TestLinks.md) | | [optional] **labels** | [**List[TestLabel]**](TestLabel.md) | Labels to which the test is assigned. This field is not returned for Instant Tests. | [optional] [readonly] +**tags** | [**List[TestTag]**](TestTag.md) | Tags assigned to the test. Returned only when `expand=tag` is specified. This field is not returned for Instant Tests. For more information, see `/tags`. | [optional] [readonly] **shared_with_accounts** | [**List[SharedWithAccount]**](SharedWithAccount.md) | | [optional] [readonly] **auth_type** | [**TestAuthType**](TestAuthType.md) | | [optional] **agent_interfaces** | [**AgentInterfaces**](AgentInterfaces.md) | | [optional] @@ -53,9 +54,11 @@ Name | Type | Description | Notes **override_agent_proxy** | **bool** | Flag indicating if a proxy other than the default should be used. To override the default proxy for agents, set to `true` and specify a value for `overrideProxyId`. | [optional] [default to False] **override_proxy_id** | **str** | ID of the proxy to be used if the default proxy is overridden. | [optional] **collect_proxy_network_data** | **bool** | Indicates whether network data to the proxy should be collected. | [optional] [default to False] +**vault_credentials** | [**List[TestVaultCredential]**](TestVaultCredential.md) | List of credential IDs that are stored in an external vault. | [optional] **headers** | **List[str]** | HTTP request headers used. | [optional] **randomized_start_time** | **bool** | Indicates whether agents should randomize the start time in each test round. | [optional] [default to False] -**post_body** | **str** | Enter the body for the HTTP POST request in this field. No special escaping is necessary. If the post body is provided with content, the `requestMethod` is automatically set to POST. | [optional] +**request_method** | [**RequestMethod**](RequestMethod.md) | | [optional] +**post_body** | **str** | Enter the body for the HTTP POST request in this field. No special escaping is required. If content is provided and `requestMethod` is not specified, `requestMethod` is automatically set to `post`. | [optional] **ipv6_policy** | [**TestIpv6Policy**](TestIpv6Policy.md) | | [optional] ## Example diff --git a/thousandeyes-sdk-instant-tests/docs/HttpServerInstantTestRequest.md b/thousandeyes-sdk-instant-tests/docs/HttpServerInstantTestRequest.md index 38fc7931..34581fb5 100644 --- a/thousandeyes-sdk-instant-tests/docs/HttpServerInstantTestRequest.md +++ b/thousandeyes-sdk-instant-tests/docs/HttpServerInstantTestRequest.md @@ -16,8 +16,6 @@ Name | Type | Description | Notes **test_name** | **str** | The name of the test. Test name must be unique. | [optional] **type** | **str** | | [optional] [readonly] **links** | [**TestLinks**](TestLinks.md) | | [optional] -**labels** | **List[str]** | A list of test label identifiers (get `labelId` from `/labels` endpoint). | [optional] -**shared_with_accounts** | **List[str]** | A list of account group identifiers that the test is shared with (get `aid` from `/account-groups` endpoint). | [optional] **auth_type** | [**TestAuthType**](TestAuthType.md) | | [optional] **agent_interfaces** | [**AgentInterfaces**](AgentInterfaces.md) | | [optional] **bandwidth_measurements** | **bool** | Set to `true` to enable bandwidth measurements, only applies to Enterprise agents assigned to the test. | [optional] @@ -53,11 +51,15 @@ Name | Type | Description | Notes **override_agent_proxy** | **bool** | Flag indicating if a proxy other than the default should be used. To override the default proxy for agents, set to `true` and specify a value for `overrideProxyId`. | [optional] [default to False] **override_proxy_id** | **str** | ID of the proxy to be used if the default proxy is overridden. | [optional] **collect_proxy_network_data** | **bool** | Indicates whether network data to the proxy should be collected. | [optional] [default to False] +**vault_credentials** | [**List[TestVaultCredential]**](TestVaultCredential.md) | List of credential IDs that are stored in an external vault. | [optional] **headers** | **List[str]** | HTTP request headers used. | [optional] **randomized_start_time** | **bool** | Indicates whether agents should randomize the start time in each test round. | [optional] [default to False] -**post_body** | **str** | Enter the body for the HTTP POST request in this field. No special escaping is necessary. If the post body is provided with content, the `requestMethod` is automatically set to POST. | [optional] +**request_method** | [**RequestMethod**](RequestMethod.md) | | [optional] +**post_body** | **str** | Enter the body for the HTTP POST request in this field. No special escaping is required. If content is provided and `requestMethod` is not specified, `requestMethod` is automatically set to `post`. | [optional] **ipv6_policy** | [**TestIpv6Policy**](TestIpv6Policy.md) | | [optional] +**labels** | **List[str]** | A list of test label identifiers (get `labelId` from `/labels` endpoint). | [optional] **tags** | **List[str]** | A list of test tag identifiers (get `id` from `/tags` endpoint). | [optional] +**shared_with_accounts** | **List[str]** | A list of account group identifiers that the test is shared with (get `aid` from `/account-groups` endpoint). | [optional] **agents** | [**List[TestAgent]**](TestAgent.md) | A list of objects with `agentId` (required) and `sourceIpAddress` (optional). | ## Example diff --git a/thousandeyes-sdk-instant-tests/docs/HttpServerInstantTestResponse.md b/thousandeyes-sdk-instant-tests/docs/HttpServerInstantTestResponse.md index 6c6bcad1..a93defc0 100644 --- a/thousandeyes-sdk-instant-tests/docs/HttpServerInstantTestResponse.md +++ b/thousandeyes-sdk-instant-tests/docs/HttpServerInstantTestResponse.md @@ -17,6 +17,7 @@ Name | Type | Description | Notes **type** | **str** | | [optional] [readonly] **links** | [**TestLinks**](TestLinks.md) | | [optional] **labels** | [**List[TestLabel]**](TestLabel.md) | Labels to which the test is assigned. This field is not returned for Instant Tests. | [optional] [readonly] +**tags** | [**List[TestTag]**](TestTag.md) | Tags assigned to the test. Returned only when `expand=tag` is specified. This field is not returned for Instant Tests. For more information, see `/tags`. | [optional] [readonly] **shared_with_accounts** | [**List[SharedWithAccount]**](SharedWithAccount.md) | | [optional] [readonly] **auth_type** | [**TestAuthType**](TestAuthType.md) | | [optional] **agent_interfaces** | [**AgentInterfaces**](AgentInterfaces.md) | | [optional] @@ -53,9 +54,11 @@ Name | Type | Description | Notes **override_agent_proxy** | **bool** | Flag indicating if a proxy other than the default should be used. To override the default proxy for agents, set to `true` and specify a value for `overrideProxyId`. | [optional] [default to False] **override_proxy_id** | **str** | ID of the proxy to be used if the default proxy is overridden. | [optional] **collect_proxy_network_data** | **bool** | Indicates whether network data to the proxy should be collected. | [optional] [default to False] +**vault_credentials** | [**List[TestVaultCredential]**](TestVaultCredential.md) | List of credential IDs that are stored in an external vault. | [optional] **headers** | **List[str]** | HTTP request headers used. | [optional] **randomized_start_time** | **bool** | Indicates whether agents should randomize the start time in each test round. | [optional] [default to False] -**post_body** | **str** | Enter the body for the HTTP POST request in this field. No special escaping is necessary. If the post body is provided with content, the `requestMethod` is automatically set to POST. | [optional] +**request_method** | [**RequestMethod**](RequestMethod.md) | | [optional] +**post_body** | **str** | Enter the body for the HTTP POST request in this field. No special escaping is required. If content is provided and `requestMethod` is not specified, `requestMethod` is automatically set to `post`. | [optional] **ipv6_policy** | [**TestIpv6Policy**](TestIpv6Policy.md) | | [optional] **agents** | [**List[AgentResponse]**](AgentResponse.md) | Contains list of agents. | [optional] diff --git a/thousandeyes-sdk-instant-tests/docs/HttpServerProperties.md b/thousandeyes-sdk-instant-tests/docs/HttpServerProperties.md index cf92c045..0e1283b6 100644 --- a/thousandeyes-sdk-instant-tests/docs/HttpServerProperties.md +++ b/thousandeyes-sdk-instant-tests/docs/HttpServerProperties.md @@ -40,9 +40,11 @@ Name | Type | Description | Notes **override_agent_proxy** | **bool** | Flag indicating if a proxy other than the default should be used. To override the default proxy for agents, set to `true` and specify a value for `overrideProxyId`. | [optional] [default to False] **override_proxy_id** | **str** | ID of the proxy to be used if the default proxy is overridden. | [optional] **collect_proxy_network_data** | **bool** | Indicates whether network data to the proxy should be collected. | [optional] [default to False] +**vault_credentials** | [**List[TestVaultCredential]**](TestVaultCredential.md) | List of credential IDs that are stored in an external vault. | [optional] **headers** | **List[str]** | HTTP request headers used. | [optional] **randomized_start_time** | **bool** | Indicates whether agents should randomize the start time in each test round. | [optional] [default to False] -**post_body** | **str** | Enter the body for the HTTP POST request in this field. No special escaping is necessary. If the post body is provided with content, the `requestMethod` is automatically set to POST. | [optional] +**request_method** | [**RequestMethod**](RequestMethod.md) | | [optional] +**post_body** | **str** | Enter the body for the HTTP POST request in this field. No special escaping is required. If content is provided and `requestMethod` is not specified, `requestMethod` is automatically set to `post`. | [optional] **ipv6_policy** | [**TestIpv6Policy**](TestIpv6Policy.md) | | [optional] **type** | **str** | | [optional] [readonly] diff --git a/thousandeyes-sdk-instant-tests/docs/InstantTest.md b/thousandeyes-sdk-instant-tests/docs/InstantTest.md index 649c1889..e3a4b748 100644 --- a/thousandeyes-sdk-instant-tests/docs/InstantTest.md +++ b/thousandeyes-sdk-instant-tests/docs/InstantTest.md @@ -17,6 +17,7 @@ Name | Type | Description | Notes **type** | [**TestType**](TestType.md) | | [optional] **links** | [**TestLinks**](TestLinks.md) | | [optional] **labels** | [**List[TestLabel]**](TestLabel.md) | Labels to which the test is assigned. This field is not returned for Instant Tests. | [optional] [readonly] +**tags** | [**List[TestTag]**](TestTag.md) | Tags assigned to the test. Returned only when `expand=tag` is specified. This field is not returned for Instant Tests. For more information, see `/tags`. | [optional] [readonly] **shared_with_accounts** | [**List[SharedWithAccount]**](SharedWithAccount.md) | | [optional] [readonly] ## Example diff --git a/thousandeyes-sdk-instant-tests/docs/NetworkProviderInfo.md b/thousandeyes-sdk-instant-tests/docs/NetworkProviderInfo.md new file mode 100644 index 00000000..a436435b --- /dev/null +++ b/thousandeyes-sdk-instant-tests/docs/NetworkProviderInfo.md @@ -0,0 +1,32 @@ +# NetworkProviderInfo + +Information about the network provider that owns the agent's public IP prefix. + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**asn** | **int** | Autonomous System Number (ASN) announcing the agent's public IP prefix. | [optional] [readonly] +**name** | **str** | Name of the network provider organization. | [optional] [readonly] +**type** | [**NetworkProviderType**](NetworkProviderType.md) | | [optional] + +## Example + +```python +from thousandeyes_sdk.instant_tests.models.network_provider_info import NetworkProviderInfo + +# TODO update the JSON string below +json = "{}" +# create an instance of NetworkProviderInfo from a JSON string +network_provider_info_instance = NetworkProviderInfo.from_json(json) +# print the JSON string representation of the object +print(NetworkProviderInfo.to_json()) + +# convert the object into a dict +network_provider_info_dict = network_provider_info_instance.to_dict() +# create an instance of NetworkProviderInfo from a dict +network_provider_info_from_dict = NetworkProviderInfo.from_dict(network_provider_info_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/thousandeyes-sdk-instant-tests/docs/NetworkProviderType.md b/thousandeyes-sdk-instant-tests/docs/NetworkProviderType.md new file mode 100644 index 00000000..efc6dd07 --- /dev/null +++ b/thousandeyes-sdk-instant-tests/docs/NetworkProviderType.md @@ -0,0 +1,12 @@ +# NetworkProviderType + +Classification of the agent's network provider. + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- + +[[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/thousandeyes-sdk-instant-tests/docs/OAuth.md b/thousandeyes-sdk-instant-tests/docs/OAuth.md index e884ed05..bab271d7 100644 --- a/thousandeyes-sdk-instant-tests/docs/OAuth.md +++ b/thousandeyes-sdk-instant-tests/docs/OAuth.md @@ -7,7 +7,7 @@ Use this only if you want to use OAuth as the authentication mechanism. Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **test_url** | **str** | Target for the test. | [optional] -**request_method** | [**OAuthRequestMethod**](OAuthRequestMethod.md) | | [optional] +**request_method** | [**RequestMethod**](RequestMethod.md) | | [optional] **post_body** | **str** | Enter the OAuth body for the HTTP POST request in this field when using OAuth as the authentication mechanism. No special escaping is required. The value is saved only when `requestMethod` is set to `post`. | [optional] **headers** | **str** | Request headers used for OAuth. | [optional] **auth_type** | [**OAuthAuthType**](OAuthAuthType.md) | | [optional] diff --git a/thousandeyes-sdk-instant-tests/docs/OAuthRequestMethod.md b/thousandeyes-sdk-instant-tests/docs/OAuthRequestMethod.md deleted file mode 100644 index cabf8fa5..00000000 --- a/thousandeyes-sdk-instant-tests/docs/OAuthRequestMethod.md +++ /dev/null @@ -1,12 +0,0 @@ -# OAuthRequestMethod - -HTTP request method used for the OAuth request. - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - -[[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/thousandeyes-sdk-instant-tests/docs/PageLoadInstantTest.md b/thousandeyes-sdk-instant-tests/docs/PageLoadInstantTest.md index 6526a0be..15851e35 100644 --- a/thousandeyes-sdk-instant-tests/docs/PageLoadInstantTest.md +++ b/thousandeyes-sdk-instant-tests/docs/PageLoadInstantTest.md @@ -17,6 +17,7 @@ Name | Type | Description | Notes **type** | **str** | | [optional] [readonly] **links** | [**TestLinks**](TestLinks.md) | | [optional] **labels** | [**List[TestLabel]**](TestLabel.md) | Labels to which the test is assigned. This field is not returned for Instant Tests. | [optional] [readonly] +**tags** | [**List[TestTag]**](TestTag.md) | Tags assigned to the test. Returned only when `expand=tag` is specified. This field is not returned for Instant Tests. For more information, see `/tags`. | [optional] [readonly] **shared_with_accounts** | [**List[SharedWithAccount]**](SharedWithAccount.md) | | [optional] [readonly] **auth_type** | [**TestAuthType**](TestAuthType.md) | | [optional] **agent_interfaces** | [**AgentInterfaces**](AgentInterfaces.md) | | [optional] @@ -53,6 +54,7 @@ Name | Type | Description | Notes **override_agent_proxy** | **bool** | Flag indicating if a proxy other than the default should be used. To override the default proxy for agents, set to `true` and specify a value for `overrideProxyId`. | [optional] [default to False] **override_proxy_id** | **str** | ID of the proxy to be used if the default proxy is overridden. | [optional] **collect_proxy_network_data** | **bool** | Indicates whether network data to the proxy should be collected. | [optional] [default to False] +**vault_credentials** | [**List[TestVaultCredential]**](TestVaultCredential.md) | List of credential IDs that are stored in an external vault. | [optional] **emulated_device_id** | **str** | ID of the emulated device, if one was given when the test was created. | [optional] **page_load_target_time** | **int** | Target time for page load completion, specified in seconds and cannot exceed the `pageLoadTimeLimit`. | [optional] **page_load_time_limit** | **int** | Page load time limit. Must be larger than the `httpTimeLimit`. | [optional] [default to 10] diff --git a/thousandeyes-sdk-instant-tests/docs/PageLoadInstantTestRequest.md b/thousandeyes-sdk-instant-tests/docs/PageLoadInstantTestRequest.md index 17e32f29..7eb63689 100644 --- a/thousandeyes-sdk-instant-tests/docs/PageLoadInstantTestRequest.md +++ b/thousandeyes-sdk-instant-tests/docs/PageLoadInstantTestRequest.md @@ -16,8 +16,6 @@ Name | Type | Description | Notes **test_name** | **str** | The name of the test. Test name must be unique. | [optional] **type** | **str** | | [optional] [readonly] **links** | [**TestLinks**](TestLinks.md) | | [optional] -**labels** | **List[str]** | A list of test label identifiers (get `labelId` from `/labels` endpoint). | [optional] -**shared_with_accounts** | **List[str]** | A list of account group identifiers that the test is shared with (get `aid` from `/account-groups` endpoint). | [optional] **auth_type** | [**TestAuthType**](TestAuthType.md) | | [optional] **agent_interfaces** | [**AgentInterfaces**](AgentInterfaces.md) | | [optional] **bandwidth_measurements** | **bool** | Set to `true` to enable bandwidth measurements, only applies to Enterprise agents assigned to the test. | [optional] @@ -53,6 +51,7 @@ Name | Type | Description | Notes **override_agent_proxy** | **bool** | Flag indicating if a proxy other than the default should be used. To override the default proxy for agents, set to `true` and specify a value for `overrideProxyId`. | [optional] [default to False] **override_proxy_id** | **str** | ID of the proxy to be used if the default proxy is overridden. | [optional] **collect_proxy_network_data** | **bool** | Indicates whether network data to the proxy should be collected. | [optional] [default to False] +**vault_credentials** | [**List[TestVaultCredential]**](TestVaultCredential.md) | List of credential IDs that are stored in an external vault. | [optional] **emulated_device_id** | **str** | ID of the emulated device, if one was given when the test was created. | [optional] **page_load_target_time** | **int** | Target time for page load completion, specified in seconds and cannot exceed the `pageLoadTimeLimit`. | [optional] **page_load_time_limit** | **int** | Page load time limit. Must be larger than the `httpTimeLimit`. | [optional] [default to 10] @@ -66,7 +65,9 @@ Name | Type | Description | Notes **page_loading_strategy** | [**TestPageLoadingStrategy**](TestPageLoadingStrategy.md) | | [optional] **randomized_start_time** | **bool** | Indicates whether agents should randomize the start time in each test round. | [optional] [default to False] **identify_agent_traffic_with_user_agent** | **bool** | Determines how agent traffic is identified: * `false`: Adds the `x-thousandeyes-agent: yes` header. * `true`: Appends `(ThousandEyes Agent)` to the `user-agent` header. For more information, see [Notes on Agent ID Strategy](https://docs.thousandeyes.com/product-documentation/browser-synthetics/test-settings-page-load-transaction#notes-on-agent-id-strategy). | [optional] [default to False] +**labels** | **List[str]** | A list of test label identifiers (get `labelId` from `/labels` endpoint). | [optional] **tags** | **List[str]** | A list of test tag identifiers (get `id` from `/tags` endpoint). | [optional] +**shared_with_accounts** | **List[str]** | A list of account group identifiers that the test is shared with (get `aid` from `/account-groups` endpoint). | [optional] **agents** | [**List[TestAgent]**](TestAgent.md) | A list of objects with `agentId` (required) and `sourceIpAddress` (optional). | ## Example diff --git a/thousandeyes-sdk-instant-tests/docs/PageLoadInstantTestResponse.md b/thousandeyes-sdk-instant-tests/docs/PageLoadInstantTestResponse.md index d9be0814..5d975ec0 100644 --- a/thousandeyes-sdk-instant-tests/docs/PageLoadInstantTestResponse.md +++ b/thousandeyes-sdk-instant-tests/docs/PageLoadInstantTestResponse.md @@ -17,6 +17,7 @@ Name | Type | Description | Notes **type** | **str** | | [optional] [readonly] **links** | [**TestLinks**](TestLinks.md) | | [optional] **labels** | [**List[TestLabel]**](TestLabel.md) | Labels to which the test is assigned. This field is not returned for Instant Tests. | [optional] [readonly] +**tags** | [**List[TestTag]**](TestTag.md) | Tags assigned to the test. Returned only when `expand=tag` is specified. This field is not returned for Instant Tests. For more information, see `/tags`. | [optional] [readonly] **shared_with_accounts** | [**List[SharedWithAccount]**](SharedWithAccount.md) | | [optional] [readonly] **auth_type** | [**TestAuthType**](TestAuthType.md) | | [optional] **agent_interfaces** | [**AgentInterfaces**](AgentInterfaces.md) | | [optional] @@ -53,6 +54,7 @@ Name | Type | Description | Notes **override_agent_proxy** | **bool** | Flag indicating if a proxy other than the default should be used. To override the default proxy for agents, set to `true` and specify a value for `overrideProxyId`. | [optional] [default to False] **override_proxy_id** | **str** | ID of the proxy to be used if the default proxy is overridden. | [optional] **collect_proxy_network_data** | **bool** | Indicates whether network data to the proxy should be collected. | [optional] [default to False] +**vault_credentials** | [**List[TestVaultCredential]**](TestVaultCredential.md) | List of credential IDs that are stored in an external vault. | [optional] **emulated_device_id** | **str** | ID of the emulated device, if one was given when the test was created. | [optional] **page_load_target_time** | **int** | Target time for page load completion, specified in seconds and cannot exceed the `pageLoadTimeLimit`. | [optional] **page_load_time_limit** | **int** | Page load time limit. Must be larger than the `httpTimeLimit`. | [optional] [default to 10] diff --git a/thousandeyes-sdk-instant-tests/docs/PageLoadProperties.md b/thousandeyes-sdk-instant-tests/docs/PageLoadProperties.md index e3de8e24..84f9ef7c 100644 --- a/thousandeyes-sdk-instant-tests/docs/PageLoadProperties.md +++ b/thousandeyes-sdk-instant-tests/docs/PageLoadProperties.md @@ -40,6 +40,7 @@ Name | Type | Description | Notes **override_agent_proxy** | **bool** | Flag indicating if a proxy other than the default should be used. To override the default proxy for agents, set to `true` and specify a value for `overrideProxyId`. | [optional] [default to False] **override_proxy_id** | **str** | ID of the proxy to be used if the default proxy is overridden. | [optional] **collect_proxy_network_data** | **bool** | Indicates whether network data to the proxy should be collected. | [optional] [default to False] +**vault_credentials** | [**List[TestVaultCredential]**](TestVaultCredential.md) | List of credential IDs that are stored in an external vault. | [optional] **emulated_device_id** | **str** | ID of the emulated device, if one was given when the test was created. | [optional] **page_load_target_time** | **int** | Target time for page load completion, specified in seconds and cannot exceed the `pageLoadTimeLimit`. | [optional] **page_load_time_limit** | **int** | Page load time limit. Must be larger than the `httpTimeLimit`. | [optional] [default to 10] diff --git a/thousandeyes-sdk-dashboards/docs/WidgetType.md b/thousandeyes-sdk-instant-tests/docs/RequestMethod.md similarity index 88% rename from thousandeyes-sdk-dashboards/docs/WidgetType.md rename to thousandeyes-sdk-instant-tests/docs/RequestMethod.md index fa6104a7..06eb0c1c 100644 --- a/thousandeyes-sdk-dashboards/docs/WidgetType.md +++ b/thousandeyes-sdk-instant-tests/docs/RequestMethod.md @@ -1,6 +1,6 @@ -# WidgetType +# RequestMethod -Type of the Widget +HTTP request method. ## Properties diff --git a/thousandeyes-sdk-instant-tests/docs/SimpleAgent.md b/thousandeyes-sdk-instant-tests/docs/SimpleAgent.md index 2acd11c4..b859c708 100644 --- a/thousandeyes-sdk-instant-tests/docs/SimpleAgent.md +++ b/thousandeyes-sdk-instant-tests/docs/SimpleAgent.md @@ -13,9 +13,10 @@ Name | Type | Description | Notes **location** | **str** | Location of the agent. | [optional] [readonly] **country_id** | **str** | 2-digit ISO country code | [optional] [readonly] **coordinates** | [**Coordinates**](Coordinates.md) | | [optional] +**network_provider_info** | [**SimpleAgentAllOfNetworkProviderInfo**](SimpleAgentAllOfNetworkProviderInfo.md) | | [optional] **enabled** | **bool** | Flag indicating if the agent is enabled. | [optional] -**prefix** | **str** | Prefix containing agents public IP address. | [optional] [readonly] **verify_ssl_certificates** | **bool** | Flag indicating if has normal SSL operations or if instead it's set to ignore SSL errors on browserbot-based tests. | [optional] [readonly] +**prefix** | **str** | Prefix containing agents public IP address. | [optional] [readonly] ## Example diff --git a/thousandeyes-sdk-instant-tests/docs/SimpleAgentAllOfNetworkProviderInfo.md b/thousandeyes-sdk-instant-tests/docs/SimpleAgentAllOfNetworkProviderInfo.md new file mode 100644 index 00000000..09e57fde --- /dev/null +++ b/thousandeyes-sdk-instant-tests/docs/SimpleAgentAllOfNetworkProviderInfo.md @@ -0,0 +1,31 @@ +# SimpleAgentAllOfNetworkProviderInfo + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**asn** | **int** | Autonomous System Number (ASN) announcing the agent's public IP prefix. | [optional] [readonly] +**name** | **str** | Name of the network provider organization. | [optional] [readonly] +**type** | [**NetworkProviderType**](NetworkProviderType.md) | | [optional] + +## Example + +```python +from thousandeyes_sdk.instant_tests.models.simple_agent_all_of_network_provider_info import SimpleAgentAllOfNetworkProviderInfo + +# TODO update the JSON string below +json = "{}" +# create an instance of SimpleAgentAllOfNetworkProviderInfo from a JSON string +simple_agent_all_of_network_provider_info_instance = SimpleAgentAllOfNetworkProviderInfo.from_json(json) +# print the JSON string representation of the object +print(SimpleAgentAllOfNetworkProviderInfo.to_json()) + +# convert the object into a dict +simple_agent_all_of_network_provider_info_dict = simple_agent_all_of_network_provider_info_instance.to_dict() +# create an instance of SimpleAgentAllOfNetworkProviderInfo from a dict +simple_agent_all_of_network_provider_info_from_dict = SimpleAgentAllOfNetworkProviderInfo.from_dict(simple_agent_all_of_network_provider_info_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/thousandeyes-sdk-instant-tests/docs/SipServerInstantTest.md b/thousandeyes-sdk-instant-tests/docs/SipServerInstantTest.md index 39e5c92c..b4b7494f 100644 --- a/thousandeyes-sdk-instant-tests/docs/SipServerInstantTest.md +++ b/thousandeyes-sdk-instant-tests/docs/SipServerInstantTest.md @@ -17,6 +17,7 @@ Name | Type | Description | Notes **type** | **str** | | [optional] [readonly] **links** | [**TestLinks**](TestLinks.md) | | [optional] **labels** | [**List[TestLabel]**](TestLabel.md) | Labels to which the test is assigned. This field is not returned for Instant Tests. | [optional] [readonly] +**tags** | [**List[TestTag]**](TestTag.md) | Tags assigned to the test. Returned only when `expand=tag` is specified. This field is not returned for Instant Tests. For more information, see `/tags`. | [optional] [readonly] **shared_with_accounts** | [**List[SharedWithAccount]**](SharedWithAccount.md) | | [optional] [readonly] **mtu_measurements** | **bool** | Set `true` to measure MTU sizes on network from agents to the target. | [optional] **network_measurements** | **bool** | Enable or disable network measurements. Set to true to enable or false to disable network measurements. | [optional] [default to True] diff --git a/thousandeyes-sdk-instant-tests/docs/SipServerInstantTestRequest.md b/thousandeyes-sdk-instant-tests/docs/SipServerInstantTestRequest.md index 5f308712..16019423 100644 --- a/thousandeyes-sdk-instant-tests/docs/SipServerInstantTestRequest.md +++ b/thousandeyes-sdk-instant-tests/docs/SipServerInstantTestRequest.md @@ -16,8 +16,6 @@ Name | Type | Description | Notes **test_name** | **str** | The name of the test. Test name must be unique. | [optional] **type** | **str** | | [optional] [readonly] **links** | [**TestLinks**](TestLinks.md) | | [optional] -**labels** | **List[str]** | A list of test label identifiers (get `labelId` from `/labels` endpoint). | [optional] -**shared_with_accounts** | **List[str]** | A list of account group identifiers that the test is shared with (get `aid` from `/account-groups` endpoint). | [optional] **mtu_measurements** | **bool** | Set `true` to measure MTU sizes on network from agents to the target. | [optional] **network_measurements** | **bool** | Enable or disable network measurements. Set to true to enable or false to disable network measurements. | [optional] [default to True] **num_path_traces** | **int** | Number of path traces executed by the agent. | [optional] [default to 3] @@ -30,7 +28,9 @@ Name | Type | Description | Notes **sip_time_limit** | **int** | Time limit in milliseconds. | [optional] [default to 5] **fixed_packet_rate** | **int** | Sets packets rate sent to measure the network in packets per second. | [optional] **ipv6_policy** | [**TestIpv6Policy**](TestIpv6Policy.md) | | [optional] +**labels** | **List[str]** | A list of test label identifiers (get `labelId` from `/labels` endpoint). | [optional] **tags** | **List[str]** | A list of test tag identifiers (get `id` from `/tags` endpoint). | [optional] +**shared_with_accounts** | **List[str]** | A list of account group identifiers that the test is shared with (get `aid` from `/account-groups` endpoint). | [optional] **agents** | [**List[TestAgent]**](TestAgent.md) | A list of objects with `agentId` (required) and `sourceIpAddress` (optional). | **target_sip_credentials** | [**TestSipCredentials**](TestSipCredentials.md) | | diff --git a/thousandeyes-sdk-instant-tests/docs/SipServerInstantTestResponse.md b/thousandeyes-sdk-instant-tests/docs/SipServerInstantTestResponse.md index 50e1869b..158da0dd 100644 --- a/thousandeyes-sdk-instant-tests/docs/SipServerInstantTestResponse.md +++ b/thousandeyes-sdk-instant-tests/docs/SipServerInstantTestResponse.md @@ -17,6 +17,7 @@ Name | Type | Description | Notes **type** | **str** | | [optional] [readonly] **links** | [**TestLinks**](TestLinks.md) | | [optional] **labels** | [**List[TestLabel]**](TestLabel.md) | Labels to which the test is assigned. This field is not returned for Instant Tests. | [optional] [readonly] +**tags** | [**List[TestTag]**](TestTag.md) | Tags assigned to the test. Returned only when `expand=tag` is specified. This field is not returned for Instant Tests. For more information, see `/tags`. | [optional] [readonly] **shared_with_accounts** | [**List[SharedWithAccount]**](SharedWithAccount.md) | | [optional] [readonly] **mtu_measurements** | **bool** | Set `true` to measure MTU sizes on network from agents to the target. | [optional] **network_measurements** | **bool** | Enable or disable network measurements. Set to true to enable or false to disable network measurements. | [optional] [default to True] diff --git a/thousandeyes-sdk-instant-tests/docs/TestTag.md b/thousandeyes-sdk-instant-tests/docs/TestTag.md new file mode 100644 index 00000000..f5336498 --- /dev/null +++ b/thousandeyes-sdk-instant-tests/docs/TestTag.md @@ -0,0 +1,31 @@ +# TestTag + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**id** | **str** | Unique tag ID. | [optional] +**key** | **str** | Tag key. For example, \"Location\" or \"Department\". | [optional] +**value** | **str** | Tag value. For example, \"San Francisco\" or \"Engineering\". | [optional] + +## Example + +```python +from thousandeyes_sdk.instant_tests.models.test_tag import TestTag + +# TODO update the JSON string below +json = "{}" +# create an instance of TestTag from a JSON string +test_tag_instance = TestTag.from_json(json) +# print the JSON string representation of the object +print(TestTag.to_json()) + +# convert the object into a dict +test_tag_dict = test_tag_instance.to_dict() +# create an instance of TestTag from a dict +test_tag_from_dict = TestTag.from_dict(test_tag_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/thousandeyes-sdk-instant-tests/docs/TestVaultCredential.md b/thousandeyes-sdk-instant-tests/docs/TestVaultCredential.md new file mode 100644 index 00000000..56667fbb --- /dev/null +++ b/thousandeyes-sdk-instant-tests/docs/TestVaultCredential.md @@ -0,0 +1,30 @@ +# TestVaultCredential + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**secret_id** | **str** | UUID of the configured secret. | [optional] +**target** | [**TestVaultCredentialTarget**](TestVaultCredentialTarget.md) | | [optional] + +## Example + +```python +from thousandeyes_sdk.instant_tests.models.test_vault_credential import TestVaultCredential + +# TODO update the JSON string below +json = "{}" +# create an instance of TestVaultCredential from a JSON string +test_vault_credential_instance = TestVaultCredential.from_json(json) +# print the JSON string representation of the object +print(TestVaultCredential.to_json()) + +# convert the object into a dict +test_vault_credential_dict = test_vault_credential_instance.to_dict() +# create an instance of TestVaultCredential from a dict +test_vault_credential_from_dict = TestVaultCredential.from_dict(test_vault_credential_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/thousandeyes-sdk-dashboards/docs/ApiWidgetSortDirection.md b/thousandeyes-sdk-instant-tests/docs/TestVaultCredentialTarget.md similarity index 76% rename from thousandeyes-sdk-dashboards/docs/ApiWidgetSortDirection.md rename to thousandeyes-sdk-instant-tests/docs/TestVaultCredentialTarget.md index 5945898b..02df9f4f 100644 --- a/thousandeyes-sdk-dashboards/docs/ApiWidgetSortDirection.md +++ b/thousandeyes-sdk-instant-tests/docs/TestVaultCredentialTarget.md @@ -1,6 +1,6 @@ -# ApiWidgetSortDirection +# TestVaultCredentialTarget -Specifies the order in which cards are sorted. +The target setting that the credential should be used for. ## Properties diff --git a/thousandeyes-sdk-instant-tests/docs/VoiceInstantTest.md b/thousandeyes-sdk-instant-tests/docs/VoiceInstantTest.md index 84dd2925..554d80b4 100644 --- a/thousandeyes-sdk-instant-tests/docs/VoiceInstantTest.md +++ b/thousandeyes-sdk-instant-tests/docs/VoiceInstantTest.md @@ -17,9 +17,10 @@ Name | Type | Description | Notes **type** | **str** | | [optional] [readonly] **links** | [**TestLinks**](TestLinks.md) | | [optional] **labels** | [**List[TestLabel]**](TestLabel.md) | Labels to which the test is assigned. This field is not returned for Instant Tests. | [optional] [readonly] +**tags** | [**List[TestTag]**](TestTag.md) | Tags assigned to the test. Returned only when `expand=tag` is specified. This field is not returned for Instant Tests. For more information, see `/tags`. | [optional] [readonly] **shared_with_accounts** | [**List[SharedWithAccount]**](SharedWithAccount.md) | | [optional] [readonly] **codec** | **str** | Codec label | [optional] [readonly] -**codec_id** | **str** | Coded ID, [see the list of acceptable values](https://docs.thousandeyes.com/product-documentation/internet-and-wan-monitoring/tests/working-with-test-settings#rtp-stream-advanced-settings-tab) | [optional] +**codec_id** | **str** | Codec identifier for the RTP stream. Valid values: * `0`: G.711 @ 64 Kbps * `1`: G.722.1 @ 24 Kbps (WB) * `2`: G.722.1 @ 32 Kbps (WB) * `3`: G.726 @ 32 Kbps * `4`: G.723.1 @ 6.4 Kbps * `5`: G.729a @ 8 Kbps * `6`: RTAudio @ 45 Kbps (WB) * `7`: RTAudio @ 27.8 Kbps * `8`: SILK @ 36 Kbps (WB) * `9`: G.722 @ 64 Kbps (WB) | [optional] **dscp** | **str** | DSCP label. | [optional] [readonly] **dscp_id** | [**TestDscpId**](TestDscpId.md) | | [optional] **duration** | **int** | Duration of the test in seconds. | [optional] [default to 5] diff --git a/thousandeyes-sdk-instant-tests/docs/VoiceInstantTestRequest.md b/thousandeyes-sdk-instant-tests/docs/VoiceInstantTestRequest.md index 40e2f94d..6fc67da3 100644 --- a/thousandeyes-sdk-instant-tests/docs/VoiceInstantTestRequest.md +++ b/thousandeyes-sdk-instant-tests/docs/VoiceInstantTestRequest.md @@ -16,10 +16,8 @@ Name | Type | Description | Notes **test_name** | **str** | The name of the test. Test name must be unique. | [optional] **type** | **str** | | [optional] [readonly] **links** | [**TestLinks**](TestLinks.md) | | [optional] -**labels** | **List[str]** | A list of test label identifiers (get `labelId` from `/labels` endpoint). | [optional] -**shared_with_accounts** | **List[str]** | A list of account group identifiers that the test is shared with (get `aid` from `/account-groups` endpoint). | [optional] **codec** | **str** | Codec label | [optional] [readonly] -**codec_id** | **str** | Coded ID, [see the list of acceptable values](https://docs.thousandeyes.com/product-documentation/internet-and-wan-monitoring/tests/working-with-test-settings#rtp-stream-advanced-settings-tab) | [optional] +**codec_id** | **str** | Codec identifier for the RTP stream. Valid values: * `0`: G.711 @ 64 Kbps * `1`: G.722.1 @ 24 Kbps (WB) * `2`: G.722.1 @ 32 Kbps (WB) * `3`: G.726 @ 32 Kbps * `4`: G.723.1 @ 6.4 Kbps * `5`: G.729a @ 8 Kbps * `6`: RTAudio @ 45 Kbps (WB) * `7`: RTAudio @ 27.8 Kbps * `8`: SILK @ 36 Kbps (WB) * `9`: G.722 @ 64 Kbps (WB) | [optional] **dscp** | **str** | DSCP label. | [optional] [readonly] **dscp_id** | [**TestDscpId**](TestDscpId.md) | | [optional] **duration** | **int** | Duration of the test in seconds. | [optional] [default to 5] @@ -28,7 +26,9 @@ Name | Type | Description | Notes **port** | **int** | Port number for the chosen protocol. | [optional] **randomized_start_time** | **bool** | Indicates whether agents should randomize the start time in each test round. | [optional] [default to False] **target_agent_id** | **str** | Agent ID of the target agent for the test. | +**labels** | **List[str]** | A list of test label identifiers (get `labelId` from `/labels` endpoint). | [optional] **tags** | **List[str]** | A list of test tag identifiers (get `id` from `/tags` endpoint). | [optional] +**shared_with_accounts** | **List[str]** | A list of account group identifiers that the test is shared with (get `aid` from `/account-groups` endpoint). | [optional] **agents** | [**List[TestAgent]**](TestAgent.md) | A list of objects with `agentId` (required) and `sourceIpAddress` (optional). | ## Example diff --git a/thousandeyes-sdk-instant-tests/docs/VoiceInstantTestResponse.md b/thousandeyes-sdk-instant-tests/docs/VoiceInstantTestResponse.md index 99a6f123..52801576 100644 --- a/thousandeyes-sdk-instant-tests/docs/VoiceInstantTestResponse.md +++ b/thousandeyes-sdk-instant-tests/docs/VoiceInstantTestResponse.md @@ -17,9 +17,10 @@ Name | Type | Description | Notes **type** | **str** | | [optional] [readonly] **links** | [**TestLinks**](TestLinks.md) | | [optional] **labels** | [**List[TestLabel]**](TestLabel.md) | Labels to which the test is assigned. This field is not returned for Instant Tests. | [optional] [readonly] +**tags** | [**List[TestTag]**](TestTag.md) | Tags assigned to the test. Returned only when `expand=tag` is specified. This field is not returned for Instant Tests. For more information, see `/tags`. | [optional] [readonly] **shared_with_accounts** | [**List[SharedWithAccount]**](SharedWithAccount.md) | | [optional] [readonly] **codec** | **str** | Codec label | [optional] [readonly] -**codec_id** | **str** | Coded ID, [see the list of acceptable values](https://docs.thousandeyes.com/product-documentation/internet-and-wan-monitoring/tests/working-with-test-settings#rtp-stream-advanced-settings-tab) | [optional] +**codec_id** | **str** | Codec identifier for the RTP stream. Valid values: * `0`: G.711 @ 64 Kbps * `1`: G.722.1 @ 24 Kbps (WB) * `2`: G.722.1 @ 32 Kbps (WB) * `3`: G.726 @ 32 Kbps * `4`: G.723.1 @ 6.4 Kbps * `5`: G.729a @ 8 Kbps * `6`: RTAudio @ 45 Kbps (WB) * `7`: RTAudio @ 27.8 Kbps * `8`: SILK @ 36 Kbps (WB) * `9`: G.722 @ 64 Kbps (WB) | [optional] **dscp** | **str** | DSCP label. | [optional] [readonly] **dscp_id** | [**TestDscpId**](TestDscpId.md) | | [optional] **duration** | **int** | Duration of the test in seconds. | [optional] [default to 5] diff --git a/thousandeyes-sdk-instant-tests/docs/VoiceProperties.md b/thousandeyes-sdk-instant-tests/docs/VoiceProperties.md index 43534c8f..3f76534f 100644 --- a/thousandeyes-sdk-instant-tests/docs/VoiceProperties.md +++ b/thousandeyes-sdk-instant-tests/docs/VoiceProperties.md @@ -6,7 +6,7 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **codec** | **str** | Codec label | [optional] [readonly] -**codec_id** | **str** | Coded ID, [see the list of acceptable values](https://docs.thousandeyes.com/product-documentation/internet-and-wan-monitoring/tests/working-with-test-settings#rtp-stream-advanced-settings-tab) | [optional] +**codec_id** | **str** | Codec identifier for the RTP stream. Valid values: * `0`: G.711 @ 64 Kbps * `1`: G.722.1 @ 24 Kbps (WB) * `2`: G.722.1 @ 32 Kbps (WB) * `3`: G.726 @ 32 Kbps * `4`: G.723.1 @ 6.4 Kbps * `5`: G.729a @ 8 Kbps * `6`: RTAudio @ 45 Kbps (WB) * `7`: RTAudio @ 27.8 Kbps * `8`: SILK @ 36 Kbps (WB) * `9`: G.722 @ 64 Kbps (WB) | [optional] **dscp** | **str** | DSCP label. | [optional] [readonly] **dscp_id** | [**TestDscpId**](TestDscpId.md) | | [optional] **duration** | **int** | Duration of the test in seconds. | [optional] [default to 5] diff --git a/thousandeyes-sdk-instant-tests/docs/WebTransactionInstantTest.md b/thousandeyes-sdk-instant-tests/docs/WebTransactionInstantTest.md index fd712787..992916d5 100644 --- a/thousandeyes-sdk-instant-tests/docs/WebTransactionInstantTest.md +++ b/thousandeyes-sdk-instant-tests/docs/WebTransactionInstantTest.md @@ -17,6 +17,7 @@ Name | Type | Description | Notes **type** | **str** | | [optional] [readonly] **links** | [**TestLinks**](TestLinks.md) | | [optional] **labels** | [**List[TestLabel]**](TestLabel.md) | Labels to which the test is assigned. This field is not returned for Instant Tests. | [optional] [readonly] +**tags** | [**List[TestTag]**](TestTag.md) | Tags assigned to the test. Returned only when `expand=tag` is specified. This field is not returned for Instant Tests. For more information, see `/tags`. | [optional] [readonly] **shared_with_accounts** | [**List[SharedWithAccount]**](SharedWithAccount.md) | | [optional] [readonly] **auth_type** | [**TestAuthType**](TestAuthType.md) | | [optional] **agent_interfaces** | [**AgentInterfaces**](AgentInterfaces.md) | | [optional] @@ -53,6 +54,7 @@ Name | Type | Description | Notes **override_agent_proxy** | **bool** | Flag indicating if a proxy other than the default should be used. To override the default proxy for agents, set to `true` and specify a value for `overrideProxyId`. | [optional] [default to False] **override_proxy_id** | **str** | ID of the proxy to be used if the default proxy is overridden. | [optional] **collect_proxy_network_data** | **bool** | Indicates whether network data to the proxy should be collected. | [optional] [default to False] +**vault_credentials** | [**List[TestVaultCredential]**](TestVaultCredential.md) | List of credential IDs that are stored in an external vault. | [optional] **emulated_device_id** | **str** | ID of the emulated device, if specified when the test was created. | [optional] **target_time** | **int** | Target completion time, in seconds. Defaults to 10. Cannot exceed the `timeLimit` value. | [optional] [default to 10] **time_limit** | **int** | Time limit for transaction in seconds. | [optional] [default to 30] diff --git a/thousandeyes-sdk-instant-tests/docs/WebTransactionInstantTestRequest.md b/thousandeyes-sdk-instant-tests/docs/WebTransactionInstantTestRequest.md index c8b5e025..e24b9e8f 100644 --- a/thousandeyes-sdk-instant-tests/docs/WebTransactionInstantTestRequest.md +++ b/thousandeyes-sdk-instant-tests/docs/WebTransactionInstantTestRequest.md @@ -16,8 +16,6 @@ Name | Type | Description | Notes **test_name** | **str** | The name of the test. Test name must be unique. | [optional] **type** | **str** | | [optional] [readonly] **links** | [**TestLinks**](TestLinks.md) | | [optional] -**labels** | **List[str]** | A list of test label identifiers (get `labelId` from `/labels` endpoint). | [optional] -**shared_with_accounts** | **List[str]** | A list of account group identifiers that the test is shared with (get `aid` from `/account-groups` endpoint). | [optional] **auth_type** | [**TestAuthType**](TestAuthType.md) | | [optional] **agent_interfaces** | [**AgentInterfaces**](AgentInterfaces.md) | | [optional] **bandwidth_measurements** | **bool** | Set to `true` to enable bandwidth measurements, only applies to Enterprise agents assigned to the test. | [optional] @@ -53,6 +51,7 @@ Name | Type | Description | Notes **override_agent_proxy** | **bool** | Flag indicating if a proxy other than the default should be used. To override the default proxy for agents, set to `true` and specify a value for `overrideProxyId`. | [optional] [default to False] **override_proxy_id** | **str** | ID of the proxy to be used if the default proxy is overridden. | [optional] **collect_proxy_network_data** | **bool** | Indicates whether network data to the proxy should be collected. | [optional] [default to False] +**vault_credentials** | [**List[TestVaultCredential]**](TestVaultCredential.md) | List of credential IDs that are stored in an external vault. | [optional] **emulated_device_id** | **str** | ID of the emulated device, if specified when the test was created. | [optional] **target_time** | **int** | Target completion time, in seconds. Defaults to 10. Cannot exceed the `timeLimit` value. | [optional] [default to 10] **time_limit** | **int** | Time limit for transaction in seconds. | [optional] [default to 30] @@ -67,9 +66,11 @@ Name | Type | Description | Notes **page_loading_strategy** | [**TestPageLoadingStrategy**](TestPageLoadingStrategy.md) | | [optional] **randomized_start_time** | **bool** | Indicates whether agents should randomize the start time in each test round. | [optional] [default to False] **identify_agent_traffic_with_user_agent** | **bool** | Determines how agent traffic is identified: * `false`: Adds the `x-thousandeyes-agent: yes` header. * `true`: Appends `(ThousandEyes Agent)` to the `user-agent` header. For more information, see [Notes on Agent ID Strategy](https://docs.thousandeyes.com/product-documentation/browser-synthetics/test-settings-page-load-transaction#notes-on-agent-id-strategy). | [optional] [default to False] -**credentials** | **List[str]** | Contains a list of credential IDs (get `credentialId` from `/credentials` endpoint). | [optional] +**labels** | **List[str]** | A list of test label identifiers (get `labelId` from `/labels` endpoint). | [optional] **tags** | **List[str]** | A list of test tag identifiers (get `id` from `/tags` endpoint). | [optional] +**shared_with_accounts** | **List[str]** | A list of account group identifiers that the test is shared with (get `aid` from `/account-groups` endpoint). | [optional] **agents** | [**List[TestAgent]**](TestAgent.md) | A list of objects with `agentId` (required) and `sourceIpAddress` (optional). | +**credentials** | **List[str]** | Contains a list of credential IDs (get `credentialId` from `/credentials` endpoint). | [optional] ## Example diff --git a/thousandeyes-sdk-instant-tests/docs/WebTransactionInstantTestResponse.md b/thousandeyes-sdk-instant-tests/docs/WebTransactionInstantTestResponse.md index 5386ba9c..b2ee39ad 100644 --- a/thousandeyes-sdk-instant-tests/docs/WebTransactionInstantTestResponse.md +++ b/thousandeyes-sdk-instant-tests/docs/WebTransactionInstantTestResponse.md @@ -17,6 +17,7 @@ Name | Type | Description | Notes **type** | **str** | | [optional] [readonly] **links** | [**TestLinks**](TestLinks.md) | | [optional] **labels** | [**List[TestLabel]**](TestLabel.md) | Labels to which the test is assigned. This field is not returned for Instant Tests. | [optional] [readonly] +**tags** | [**List[TestTag]**](TestTag.md) | Tags assigned to the test. Returned only when `expand=tag` is specified. This field is not returned for Instant Tests. For more information, see `/tags`. | [optional] [readonly] **shared_with_accounts** | [**List[SharedWithAccount]**](SharedWithAccount.md) | | [optional] [readonly] **auth_type** | [**TestAuthType**](TestAuthType.md) | | [optional] **agent_interfaces** | [**AgentInterfaces**](AgentInterfaces.md) | | [optional] @@ -53,6 +54,7 @@ Name | Type | Description | Notes **override_agent_proxy** | **bool** | Flag indicating if a proxy other than the default should be used. To override the default proxy for agents, set to `true` and specify a value for `overrideProxyId`. | [optional] [default to False] **override_proxy_id** | **str** | ID of the proxy to be used if the default proxy is overridden. | [optional] **collect_proxy_network_data** | **bool** | Indicates whether network data to the proxy should be collected. | [optional] [default to False] +**vault_credentials** | [**List[TestVaultCredential]**](TestVaultCredential.md) | List of credential IDs that are stored in an external vault. | [optional] **emulated_device_id** | **str** | ID of the emulated device, if specified when the test was created. | [optional] **target_time** | **int** | Target completion time, in seconds. Defaults to 10. Cannot exceed the `timeLimit` value. | [optional] [default to 10] **time_limit** | **int** | Time limit for transaction in seconds. | [optional] [default to 30] diff --git a/thousandeyes-sdk-instant-tests/docs/WebTransactionProperties.md b/thousandeyes-sdk-instant-tests/docs/WebTransactionProperties.md index 1d769a3d..5357d7ad 100644 --- a/thousandeyes-sdk-instant-tests/docs/WebTransactionProperties.md +++ b/thousandeyes-sdk-instant-tests/docs/WebTransactionProperties.md @@ -40,6 +40,7 @@ Name | Type | Description | Notes **override_agent_proxy** | **bool** | Flag indicating if a proxy other than the default should be used. To override the default proxy for agents, set to `true` and specify a value for `overrideProxyId`. | [optional] [default to False] **override_proxy_id** | **str** | ID of the proxy to be used if the default proxy is overridden. | [optional] **collect_proxy_network_data** | **bool** | Indicates whether network data to the proxy should be collected. | [optional] [default to False] +**vault_credentials** | [**List[TestVaultCredential]**](TestVaultCredential.md) | List of credential IDs that are stored in an external vault. | [optional] **emulated_device_id** | **str** | ID of the emulated device, if specified when the test was created. | [optional] **target_time** | **int** | Target completion time, in seconds. Defaults to 10. Cannot exceed the `timeLimit` value. | [optional] [default to 10] **time_limit** | **int** | Time limit for transaction in seconds. | [optional] [default to 30] diff --git a/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/__init__.py b/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/__init__.py index 3cb3e20d..1bef8043 100644 --- a/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/__init__.py +++ b/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/__init__.py @@ -68,7 +68,7 @@ from thousandeyes_sdk.instant_tests.models.dns_server_instant_test import DnsSer from thousandeyes_sdk.instant_tests.models.dns_server_instant_test_request import DnsServerInstantTestRequest from thousandeyes_sdk.instant_tests.models.dns_server_instant_test_response import DnsServerInstantTestResponse from thousandeyes_sdk.instant_tests.models.dns_server_properties import DnsServerProperties -from thousandeyes_sdk.instant_tests.models.dns_servers_request import DnsServersRequest +from thousandeyes_sdk.instant_tests.models.dns_server_request_properties import DnsServerRequestProperties from thousandeyes_sdk.instant_tests.models.dns_trace_instant_test import DnsTraceInstantTest from thousandeyes_sdk.instant_tests.models.dns_trace_instant_test_request import DnsTraceInstantTestRequest from thousandeyes_sdk.instant_tests.models.dns_trace_instant_test_response import DnsTraceInstantTestResponse @@ -88,15 +88,18 @@ from thousandeyes_sdk.instant_tests.models.http_server_properties import HttpSer from thousandeyes_sdk.instant_tests.models.instant_test import InstantTest from thousandeyes_sdk.instant_tests.models.instant_test_request import InstantTestRequest from thousandeyes_sdk.instant_tests.models.link import Link +from thousandeyes_sdk.instant_tests.models.network_provider_info import NetworkProviderInfo +from thousandeyes_sdk.instant_tests.models.network_provider_type import NetworkProviderType from thousandeyes_sdk.instant_tests.models.o_auth import OAuth from thousandeyes_sdk.instant_tests.models.o_auth_auth_type import OAuthAuthType -from thousandeyes_sdk.instant_tests.models.o_auth_request_method import OAuthRequestMethod from thousandeyes_sdk.instant_tests.models.page_load_instant_test import PageLoadInstantTest from thousandeyes_sdk.instant_tests.models.page_load_instant_test_request import PageLoadInstantTestRequest from thousandeyes_sdk.instant_tests.models.page_load_instant_test_response import PageLoadInstantTestResponse from thousandeyes_sdk.instant_tests.models.page_load_properties import PageLoadProperties +from thousandeyes_sdk.instant_tests.models.request_method import RequestMethod from thousandeyes_sdk.instant_tests.models.shared_with_account import SharedWithAccount from thousandeyes_sdk.instant_tests.models.simple_agent import SimpleAgent +from thousandeyes_sdk.instant_tests.models.simple_agent_all_of_network_provider_info import SimpleAgentAllOfNetworkProviderInfo from thousandeyes_sdk.instant_tests.models.sip_server_instant_test import SipServerInstantTest from thousandeyes_sdk.instant_tests.models.sip_server_instant_test_request import SipServerInstantTestRequest from thousandeyes_sdk.instant_tests.models.sip_server_instant_test_response import SipServerInstantTestResponse @@ -119,7 +122,10 @@ from thousandeyes_sdk.instant_tests.models.test_protocol import TestProtocol from thousandeyes_sdk.instant_tests.models.test_self_link import TestSelfLink from thousandeyes_sdk.instant_tests.models.test_sip_credentials import TestSipCredentials from thousandeyes_sdk.instant_tests.models.test_ssl_version_id import TestSslVersionId +from thousandeyes_sdk.instant_tests.models.test_tag import TestTag from thousandeyes_sdk.instant_tests.models.test_type import TestType +from thousandeyes_sdk.instant_tests.models.test_vault_credential import TestVaultCredential +from thousandeyes_sdk.instant_tests.models.test_vault_credential_target import TestVaultCredentialTarget from thousandeyes_sdk.instant_tests.models.unauthorized_error import UnauthorizedError from thousandeyes_sdk.instant_tests.models.unexpanded_instant_test import UnexpandedInstantTest from thousandeyes_sdk.instant_tests.models.validation_error import ValidationError diff --git a/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/__init__.py b/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/__init__.py index 38916aed..e4b9258e 100644 --- a/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/__init__.py +++ b/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/__init__.py @@ -51,7 +51,7 @@ from thousandeyes_sdk.instant_tests.models.dns_server_instant_test import DnsSer from thousandeyes_sdk.instant_tests.models.dns_server_instant_test_request import DnsServerInstantTestRequest from thousandeyes_sdk.instant_tests.models.dns_server_instant_test_response import DnsServerInstantTestResponse from thousandeyes_sdk.instant_tests.models.dns_server_properties import DnsServerProperties -from thousandeyes_sdk.instant_tests.models.dns_servers_request import DnsServersRequest +from thousandeyes_sdk.instant_tests.models.dns_server_request_properties import DnsServerRequestProperties from thousandeyes_sdk.instant_tests.models.dns_trace_instant_test import DnsTraceInstantTest from thousandeyes_sdk.instant_tests.models.dns_trace_instant_test_request import DnsTraceInstantTestRequest from thousandeyes_sdk.instant_tests.models.dns_trace_instant_test_response import DnsTraceInstantTestResponse @@ -71,15 +71,18 @@ from thousandeyes_sdk.instant_tests.models.http_server_properties import HttpSer from thousandeyes_sdk.instant_tests.models.instant_test import InstantTest from thousandeyes_sdk.instant_tests.models.instant_test_request import InstantTestRequest from thousandeyes_sdk.instant_tests.models.link import Link +from thousandeyes_sdk.instant_tests.models.network_provider_info import NetworkProviderInfo +from thousandeyes_sdk.instant_tests.models.network_provider_type import NetworkProviderType from thousandeyes_sdk.instant_tests.models.o_auth import OAuth from thousandeyes_sdk.instant_tests.models.o_auth_auth_type import OAuthAuthType -from thousandeyes_sdk.instant_tests.models.o_auth_request_method import OAuthRequestMethod from thousandeyes_sdk.instant_tests.models.page_load_instant_test import PageLoadInstantTest from thousandeyes_sdk.instant_tests.models.page_load_instant_test_request import PageLoadInstantTestRequest from thousandeyes_sdk.instant_tests.models.page_load_instant_test_response import PageLoadInstantTestResponse from thousandeyes_sdk.instant_tests.models.page_load_properties import PageLoadProperties +from thousandeyes_sdk.instant_tests.models.request_method import RequestMethod from thousandeyes_sdk.instant_tests.models.shared_with_account import SharedWithAccount from thousandeyes_sdk.instant_tests.models.simple_agent import SimpleAgent +from thousandeyes_sdk.instant_tests.models.simple_agent_all_of_network_provider_info import SimpleAgentAllOfNetworkProviderInfo from thousandeyes_sdk.instant_tests.models.sip_server_instant_test import SipServerInstantTest from thousandeyes_sdk.instant_tests.models.sip_server_instant_test_request import SipServerInstantTestRequest from thousandeyes_sdk.instant_tests.models.sip_server_instant_test_response import SipServerInstantTestResponse @@ -102,7 +105,10 @@ from thousandeyes_sdk.instant_tests.models.test_protocol import TestProtocol from thousandeyes_sdk.instant_tests.models.test_self_link import TestSelfLink from thousandeyes_sdk.instant_tests.models.test_sip_credentials import TestSipCredentials from thousandeyes_sdk.instant_tests.models.test_ssl_version_id import TestSslVersionId +from thousandeyes_sdk.instant_tests.models.test_tag import TestTag from thousandeyes_sdk.instant_tests.models.test_type import TestType +from thousandeyes_sdk.instant_tests.models.test_vault_credential import TestVaultCredential +from thousandeyes_sdk.instant_tests.models.test_vault_credential_target import TestVaultCredentialTarget from thousandeyes_sdk.instant_tests.models.unauthorized_error import UnauthorizedError from thousandeyes_sdk.instant_tests.models.unexpanded_instant_test import UnexpandedInstantTest from thousandeyes_sdk.instant_tests.models.validation_error import ValidationError diff --git a/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/agent_response.py b/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/agent_response.py index 79ee02fc..7452a223 100644 --- a/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/agent_response.py +++ b/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/agent_response.py @@ -20,6 +20,7 @@ from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr from typing import Any, ClassVar, Dict, List, Optional from thousandeyes_sdk.instant_tests.models.cloud_enterprise_agent_type import CloudEnterpriseAgentType from thousandeyes_sdk.instant_tests.models.coordinates import Coordinates +from thousandeyes_sdk.instant_tests.models.simple_agent_all_of_network_provider_info import SimpleAgentAllOfNetworkProviderInfo from typing import Optional, Set from typing_extensions import Self @@ -35,11 +36,12 @@ class AgentResponse(BaseModel): location: Optional[StrictStr] = Field(default=None, description="Location of the agent.") country_id: Optional[StrictStr] = Field(default=None, description="2-digit ISO country code", alias="countryId") coordinates: Optional[Coordinates] = None + network_provider_info: Optional[SimpleAgentAllOfNetworkProviderInfo] = Field(default=None, alias="networkProviderInfo") enabled: Optional[StrictBool] = Field(default=None, description="Flag indicating if the agent is enabled.") - prefix: Optional[StrictStr] = Field(default=None, description="Prefix containing agents public IP address.") verify_ssl_certificates: Optional[StrictBool] = Field(default=None, description="Flag indicating if has normal SSL operations or if instead it's set to ignore SSL errors on browserbot-based tests.", alias="verifySslCertificates") + prefix: Optional[StrictStr] = Field(default=None, description="Prefix containing agents public IP address.") agent_type: CloudEnterpriseAgentType = Field(alias="agentType") - __properties: ClassVar[List[str]] = ["ipAddresses", "publicIpAddresses", "network", "agentId", "agentName", "location", "countryId", "coordinates", "enabled", "prefix", "verifySslCertificates", "agentType"] + __properties: ClassVar[List[str]] = ["ipAddresses", "publicIpAddresses", "network", "agentId", "agentName", "location", "countryId", "coordinates", "networkProviderInfo", "enabled", "verifySslCertificates", "prefix", "agentType"] model_config = ConfigDict( populate_by_name=True, @@ -88,8 +90,8 @@ class AgentResponse(BaseModel): "agent_id", "location", "country_id", - "prefix", "verify_ssl_certificates", + "prefix", ]) _dict = self.model_dump( @@ -100,6 +102,9 @@ class AgentResponse(BaseModel): # override the default output from pydantic by calling `to_dict()` of coordinates if self.coordinates: _dict['coordinates'] = self.coordinates.to_dict() + # override the default output from pydantic by calling `to_dict()` of network_provider_info + if self.network_provider_info: + _dict['networkProviderInfo'] = self.network_provider_info.to_dict() return _dict @classmethod @@ -120,9 +125,10 @@ class AgentResponse(BaseModel): "location": obj.get("location"), "countryId": obj.get("countryId"), "coordinates": Coordinates.from_dict(obj["coordinates"]) if obj.get("coordinates") is not None else None, + "networkProviderInfo": SimpleAgentAllOfNetworkProviderInfo.from_dict(obj["networkProviderInfo"]) if obj.get("networkProviderInfo") is not None else None, "enabled": obj.get("enabled"), - "prefix": obj.get("prefix"), "verifySslCertificates": obj.get("verifySslCertificates"), + "prefix": obj.get("prefix"), "agentType": obj.get("agentType") }) return _obj diff --git a/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/agent_to_agent_instant_test.py b/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/agent_to_agent_instant_test.py index 04c2e0ad..2a3695c9 100644 --- a/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/agent_to_agent_instant_test.py +++ b/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/agent_to_agent_instant_test.py @@ -27,6 +27,7 @@ from thousandeyes_sdk.instant_tests.models.test_dscp_id import TestDscpId from thousandeyes_sdk.instant_tests.models.test_label import TestLabel from thousandeyes_sdk.instant_tests.models.test_links import TestLinks from thousandeyes_sdk.instant_tests.models.test_path_trace_mode import TestPathTraceMode +from thousandeyes_sdk.instant_tests.models.test_tag import TestTag from typing import Optional, Set from typing_extensions import Self @@ -46,6 +47,7 @@ class AgentToAgentInstantTest(BaseModel): type: Optional[StrictStr] = None links: Optional[TestLinks] = Field(default=None, alias="_links") labels: Optional[List[TestLabel]] = Field(default=None, description="Labels to which the test is assigned. This field is not returned for Instant Tests.") + tags: Optional[List[TestTag]] = Field(default=None, description="Tags assigned to the test. Returned only when `expand=tag` is specified. This field is not returned for Instant Tests. For more information, see `/tags`.") shared_with_accounts: Optional[List[SharedWithAccount]] = Field(default=None, alias="sharedWithAccounts") direction: Optional[TestDirection] = None dscp: Optional[StrictStr] = Field(default=None, description="DSCP label.") @@ -61,7 +63,7 @@ class AgentToAgentInstantTest(BaseModel): throughput_duration: Optional[Annotated[int, Field(le=30000, strict=True, ge=5000)]] = Field(default=10000, description="The throughput duration.", alias="throughputDuration") throughput_rate: Optional[Annotated[int, Field(le=1000, strict=True, ge=8)]] = Field(default=None, description="The throughput rate, only applicable for UDP protocol.", alias="throughputRate") fixed_packet_rate: Optional[Annotated[int, Field(le=100, strict=True, ge=0)]] = Field(default=None, description="Sets packets rate sent to measure the network in packets per second.", alias="fixedPacketRate") - __properties: ClassVar[List[str]] = ["createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "sharedWithAccounts", "direction", "dscp", "dscpId", "mss", "numPathTraces", "pathTraceMode", "port", "protocol", "randomizedStartTime", "targetAgentId", "throughputMeasurements", "throughputDuration", "throughputRate", "fixedPacketRate"] + __properties: ClassVar[List[str]] = ["createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "tags", "sharedWithAccounts", "direction", "dscp", "dscpId", "mss", "numPathTraces", "pathTraceMode", "port", "protocol", "randomizedStartTime", "targetAgentId", "throughputMeasurements", "throughputDuration", "throughputRate", "fixedPacketRate"] model_config = ConfigDict( populate_by_name=True, @@ -105,6 +107,7 @@ class AgentToAgentInstantTest(BaseModel): * 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([ "created_by", @@ -116,6 +119,7 @@ class AgentToAgentInstantTest(BaseModel): "test_id", "type", "labels", + "tags", "shared_with_accounts", "dscp", ]) @@ -135,6 +139,13 @@ class AgentToAgentInstantTest(BaseModel): if _item: _items.append(_item.to_dict()) _dict['labels'] = _items + # override the default output from pydantic by calling `to_dict()` of each item in tags (list) + _items = [] + if self.tags: + for _item in self.tags: + if _item: + _items.append(_item.to_dict()) + _dict['tags'] = _items # override the default output from pydantic by calling `to_dict()` of each item in shared_with_accounts (list) _items = [] if self.shared_with_accounts: @@ -166,6 +177,7 @@ class AgentToAgentInstantTest(BaseModel): "type": obj.get("type"), "_links": TestLinks.from_dict(obj["_links"]) if obj.get("_links") is not None else None, "labels": [TestLabel.from_dict(_item) for _item in obj["labels"]] if obj.get("labels") is not None else None, + "tags": [TestTag.from_dict(_item) for _item in obj["tags"]] if obj.get("tags") is not None else None, "sharedWithAccounts": [SharedWithAccount.from_dict(_item) for _item in obj["sharedWithAccounts"]] if obj.get("sharedWithAccounts") is not None else None, "direction": obj.get("direction"), "dscp": obj.get("dscp"), diff --git a/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/agent_to_agent_instant_test_request.py b/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/agent_to_agent_instant_test_request.py index b965b969..9c8b8635 100644 --- a/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/agent_to_agent_instant_test_request.py +++ b/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/agent_to_agent_instant_test_request.py @@ -44,8 +44,6 @@ class AgentToAgentInstantTestRequest(BaseModel): test_name: Optional[StrictStr] = Field(default=None, description="The name of the test. Test name must be unique.", alias="testName") type: Optional[StrictStr] = None links: Optional[TestLinks] = Field(default=None, alias="_links") - labels: Optional[List[StrictStr]] = Field(default=None, description="A list of test label identifiers (get `labelId` from `/labels` endpoint).") - shared_with_accounts: Optional[List[StrictStr]] = Field(default=None, description="A list of account group identifiers that the test is shared with (get `aid` from `/account-groups` endpoint).", alias="sharedWithAccounts") direction: Optional[TestDirection] = None dscp: Optional[StrictStr] = Field(default=None, description="DSCP label.") dscp_id: Optional[TestDscpId] = Field(default=None, alias="dscpId") @@ -60,9 +58,11 @@ class AgentToAgentInstantTestRequest(BaseModel): throughput_duration: Optional[Annotated[int, Field(le=30000, strict=True, ge=5000)]] = Field(default=10000, description="The throughput duration.", alias="throughputDuration") throughput_rate: Optional[Annotated[int, Field(le=1000, strict=True, ge=8)]] = Field(default=None, description="The throughput rate, only applicable for UDP protocol.", alias="throughputRate") fixed_packet_rate: Optional[Annotated[int, Field(le=100, strict=True, ge=0)]] = Field(default=None, description="Sets packets rate sent to measure the network in packets per second.", alias="fixedPacketRate") + labels: Optional[List[StrictStr]] = Field(default=None, description="A list of test label identifiers (get `labelId` from `/labels` endpoint).") tags: Optional[List[StrictStr]] = Field(default=None, description="A list of test tag identifiers (get `id` from `/tags` endpoint).") + shared_with_accounts: Optional[List[StrictStr]] = Field(default=None, description="A list of account group identifiers that the test is shared with (get `aid` from `/account-groups` endpoint).", alias="sharedWithAccounts") agents: List[TestAgent] = Field(description="A list of objects with `agentId` (required) and `sourceIpAddress` (optional).") - __properties: ClassVar[List[str]] = ["createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "sharedWithAccounts", "direction", "dscp", "dscpId", "mss", "numPathTraces", "pathTraceMode", "port", "protocol", "randomizedStartTime", "targetAgentId", "throughputMeasurements", "throughputDuration", "throughputRate", "fixedPacketRate", "tags", "agents"] + __properties: ClassVar[List[str]] = ["createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "direction", "dscp", "dscpId", "mss", "numPathTraces", "pathTraceMode", "port", "protocol", "randomizedStartTime", "targetAgentId", "throughputMeasurements", "throughputDuration", "throughputRate", "fixedPacketRate", "labels", "tags", "sharedWithAccounts", "agents"] model_config = ConfigDict( populate_by_name=True, @@ -155,8 +155,6 @@ class AgentToAgentInstantTestRequest(BaseModel): "testName": obj.get("testName"), "type": obj.get("type"), "_links": TestLinks.from_dict(obj["_links"]) if obj.get("_links") is not None else None, - "labels": obj.get("labels"), - "sharedWithAccounts": obj.get("sharedWithAccounts"), "direction": obj.get("direction"), "dscp": obj.get("dscp"), "dscpId": obj.get("dscpId"), @@ -171,7 +169,9 @@ class AgentToAgentInstantTestRequest(BaseModel): "throughputDuration": obj.get("throughputDuration") if obj.get("throughputDuration") is not None else 10000, "throughputRate": obj.get("throughputRate"), "fixedPacketRate": obj.get("fixedPacketRate"), + "labels": obj.get("labels"), "tags": obj.get("tags"), + "sharedWithAccounts": obj.get("sharedWithAccounts"), "agents": [TestAgent.from_dict(_item) for _item in obj["agents"]] if obj.get("agents") is not None else None }) return _obj diff --git a/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/agent_to_agent_instant_test_response.py b/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/agent_to_agent_instant_test_response.py index 797346cd..a8f50635 100644 --- a/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/agent_to_agent_instant_test_response.py +++ b/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/agent_to_agent_instant_test_response.py @@ -28,6 +28,7 @@ from thousandeyes_sdk.instant_tests.models.test_dscp_id import TestDscpId from thousandeyes_sdk.instant_tests.models.test_label import TestLabel from thousandeyes_sdk.instant_tests.models.test_links import TestLinks from thousandeyes_sdk.instant_tests.models.test_path_trace_mode import TestPathTraceMode +from thousandeyes_sdk.instant_tests.models.test_tag import TestTag from typing import Optional, Set from typing_extensions import Self @@ -47,6 +48,7 @@ class AgentToAgentInstantTestResponse(BaseModel): type: Optional[StrictStr] = None links: Optional[TestLinks] = Field(default=None, alias="_links") labels: Optional[List[TestLabel]] = Field(default=None, description="Labels to which the test is assigned. This field is not returned for Instant Tests.") + tags: Optional[List[TestTag]] = Field(default=None, description="Tags assigned to the test. Returned only when `expand=tag` is specified. This field is not returned for Instant Tests. For more information, see `/tags`.") shared_with_accounts: Optional[List[SharedWithAccount]] = Field(default=None, alias="sharedWithAccounts") direction: Optional[TestDirection] = None dscp: Optional[StrictStr] = Field(default=None, description="DSCP label.") @@ -63,7 +65,7 @@ class AgentToAgentInstantTestResponse(BaseModel): throughput_rate: Optional[Annotated[int, Field(le=1000, strict=True, ge=8)]] = Field(default=None, description="The throughput rate, only applicable for UDP protocol.", alias="throughputRate") fixed_packet_rate: Optional[Annotated[int, Field(le=100, strict=True, ge=0)]] = Field(default=None, description="Sets packets rate sent to measure the network in packets per second.", alias="fixedPacketRate") agents: Optional[List[AgentResponse]] = Field(default=None, description="Contains list of agents.") - __properties: ClassVar[List[str]] = ["createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "sharedWithAccounts", "direction", "dscp", "dscpId", "mss", "numPathTraces", "pathTraceMode", "port", "protocol", "randomizedStartTime", "targetAgentId", "throughputMeasurements", "throughputDuration", "throughputRate", "fixedPacketRate", "agents"] + __properties: ClassVar[List[str]] = ["createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "tags", "sharedWithAccounts", "direction", "dscp", "dscpId", "mss", "numPathTraces", "pathTraceMode", "port", "protocol", "randomizedStartTime", "targetAgentId", "throughputMeasurements", "throughputDuration", "throughputRate", "fixedPacketRate", "agents"] model_config = ConfigDict( populate_by_name=True, @@ -107,6 +109,7 @@ class AgentToAgentInstantTestResponse(BaseModel): * 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([ "created_by", @@ -118,6 +121,7 @@ class AgentToAgentInstantTestResponse(BaseModel): "test_id", "type", "labels", + "tags", "shared_with_accounts", "dscp", ]) @@ -137,6 +141,13 @@ class AgentToAgentInstantTestResponse(BaseModel): if _item: _items.append(_item.to_dict()) _dict['labels'] = _items + # override the default output from pydantic by calling `to_dict()` of each item in tags (list) + _items = [] + if self.tags: + for _item in self.tags: + if _item: + _items.append(_item.to_dict()) + _dict['tags'] = _items # override the default output from pydantic by calling `to_dict()` of each item in shared_with_accounts (list) _items = [] if self.shared_with_accounts: @@ -175,6 +186,7 @@ class AgentToAgentInstantTestResponse(BaseModel): "type": obj.get("type"), "_links": TestLinks.from_dict(obj["_links"]) if obj.get("_links") is not None else None, "labels": [TestLabel.from_dict(_item) for _item in obj["labels"]] if obj.get("labels") is not None else None, + "tags": [TestTag.from_dict(_item) for _item in obj["tags"]] if obj.get("tags") is not None else None, "sharedWithAccounts": [SharedWithAccount.from_dict(_item) for _item in obj["sharedWithAccounts"]] if obj.get("sharedWithAccounts") is not None else None, "direction": obj.get("direction"), "dscp": obj.get("dscp"), diff --git a/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/agent_to_server_instant_test.py b/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/agent_to_server_instant_test.py index 6d0bb3a2..dbfa6f7f 100644 --- a/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/agent_to_server_instant_test.py +++ b/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/agent_to_server_instant_test.py @@ -28,6 +28,7 @@ from thousandeyes_sdk.instant_tests.models.test_links import TestLinks from thousandeyes_sdk.instant_tests.models.test_path_trace_mode import TestPathTraceMode from thousandeyes_sdk.instant_tests.models.test_probe_mode import TestProbeMode from thousandeyes_sdk.instant_tests.models.test_protocol import TestProtocol +from thousandeyes_sdk.instant_tests.models.test_tag import TestTag from typing import Optional, Set from typing_extensions import Self @@ -47,6 +48,7 @@ class AgentToServerInstantTest(BaseModel): type: Optional[StrictStr] = None links: Optional[TestLinks] = Field(default=None, alias="_links") labels: Optional[List[TestLabel]] = Field(default=None, description="Labels to which the test is assigned. This field is not returned for Instant Tests.") + tags: Optional[List[TestTag]] = Field(default=None, description="Tags assigned to the test. Returned only when `expand=tag` is specified. This field is not returned for Instant Tests. For more information, see `/tags`.") shared_with_accounts: Optional[List[SharedWithAccount]] = Field(default=None, alias="sharedWithAccounts") bandwidth_measurements: Optional[StrictBool] = Field(default=None, description="Set to `true` to enable bandwidth measurements, only applies to Enterprise agents assigned to the test.", alias="bandwidthMeasurements") continuous_mode: Optional[StrictBool] = Field(default=None, description="To enable continuous monitoring, set this parameter to `true` to. When continuous monitoring is enabled, the following actions occur: * `fixedPacketRate` is enforced * `bandwidthMeasurements` are disabled * If the `protocol` is set to `tcp`, `probeMode` is set to `syn`. ", alias="continuousMode") @@ -63,7 +65,7 @@ class AgentToServerInstantTest(BaseModel): ipv6_policy: Optional[TestIpv6Policy] = Field(default=None, alias="ipv6Policy") ping_payload_size: Optional[Annotated[int, Field(le=1400, strict=True, ge=0)]] = Field(default=None, description="Payload size (not total packet size) for the end-to-end metric's probes, ping payload size allows values from 0 to 1400 bytes. When set to null, payload sizes are 0 bytes for ICMP-based tests and 1 byte for TCP-based tests.", alias="pingPayloadSize") network_measurements: Optional[StrictBool] = Field(default=False, description="View packet loss in 1-second intervals. This is only available for 1-minute interval tests. Set to `true` to enable network measurements.", alias="networkMeasurements") - __properties: ClassVar[List[str]] = ["createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "sharedWithAccounts", "bandwidthMeasurements", "continuousMode", "fixedPacketRate", "mtuMeasurements", "numPathTraces", "pathTraceMode", "probeMode", "protocol", "randomizedStartTime", "server", "dscp", "dscpId", "ipv6Policy", "pingPayloadSize", "networkMeasurements"] + __properties: ClassVar[List[str]] = ["createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "tags", "sharedWithAccounts", "bandwidthMeasurements", "continuousMode", "fixedPacketRate", "mtuMeasurements", "numPathTraces", "pathTraceMode", "probeMode", "protocol", "randomizedStartTime", "server", "dscp", "dscpId", "ipv6Policy", "pingPayloadSize", "networkMeasurements"] model_config = ConfigDict( populate_by_name=True, @@ -107,6 +109,7 @@ class AgentToServerInstantTest(BaseModel): * 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([ "created_by", @@ -118,6 +121,7 @@ class AgentToServerInstantTest(BaseModel): "test_id", "type", "labels", + "tags", "shared_with_accounts", "dscp", ]) @@ -137,6 +141,13 @@ class AgentToServerInstantTest(BaseModel): if _item: _items.append(_item.to_dict()) _dict['labels'] = _items + # override the default output from pydantic by calling `to_dict()` of each item in tags (list) + _items = [] + if self.tags: + for _item in self.tags: + if _item: + _items.append(_item.to_dict()) + _dict['tags'] = _items # override the default output from pydantic by calling `to_dict()` of each item in shared_with_accounts (list) _items = [] if self.shared_with_accounts: @@ -168,6 +179,7 @@ class AgentToServerInstantTest(BaseModel): "type": obj.get("type"), "_links": TestLinks.from_dict(obj["_links"]) if obj.get("_links") is not None else None, "labels": [TestLabel.from_dict(_item) for _item in obj["labels"]] if obj.get("labels") is not None else None, + "tags": [TestTag.from_dict(_item) for _item in obj["tags"]] if obj.get("tags") is not None else None, "sharedWithAccounts": [SharedWithAccount.from_dict(_item) for _item in obj["sharedWithAccounts"]] if obj.get("sharedWithAccounts") is not None else None, "bandwidthMeasurements": obj.get("bandwidthMeasurements"), "continuousMode": obj.get("continuousMode"), diff --git a/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/agent_to_server_instant_test_request.py b/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/agent_to_server_instant_test_request.py index 412fd539..a8cd6df0 100644 --- a/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/agent_to_server_instant_test_request.py +++ b/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/agent_to_server_instant_test_request.py @@ -45,8 +45,6 @@ class AgentToServerInstantTestRequest(BaseModel): test_name: Optional[StrictStr] = Field(default=None, description="The name of the test. Test name must be unique.", alias="testName") type: Optional[StrictStr] = None links: Optional[TestLinks] = Field(default=None, alias="_links") - labels: Optional[List[StrictStr]] = Field(default=None, description="A list of test label identifiers (get `labelId` from `/labels` endpoint).") - shared_with_accounts: Optional[List[StrictStr]] = Field(default=None, description="A list of account group identifiers that the test is shared with (get `aid` from `/account-groups` endpoint).", alias="sharedWithAccounts") bandwidth_measurements: Optional[StrictBool] = Field(default=None, description="Set to `true` to enable bandwidth measurements, only applies to Enterprise agents assigned to the test.", alias="bandwidthMeasurements") continuous_mode: Optional[StrictBool] = Field(default=None, description="To enable continuous monitoring, set this parameter to `true` to. When continuous monitoring is enabled, the following actions occur: * `fixedPacketRate` is enforced * `bandwidthMeasurements` are disabled * If the `protocol` is set to `tcp`, `probeMode` is set to `syn`. ", alias="continuousMode") fixed_packet_rate: Optional[Annotated[int, Field(le=100, strict=True, ge=0)]] = Field(default=None, description="If continuousMode is `false`, set the fixedPacketRate to a value between 10-100. If `continuousMode` is `true`, set the `fixedPacketRate` to `1`", alias="fixedPacketRate") @@ -62,9 +60,11 @@ class AgentToServerInstantTestRequest(BaseModel): ipv6_policy: Optional[TestIpv6Policy] = Field(default=None, alias="ipv6Policy") ping_payload_size: Optional[Annotated[int, Field(le=1400, strict=True, ge=0)]] = Field(default=None, description="Payload size (not total packet size) for the end-to-end metric's probes, ping payload size allows values from 0 to 1400 bytes. When set to null, payload sizes are 0 bytes for ICMP-based tests and 1 byte for TCP-based tests.", alias="pingPayloadSize") network_measurements: Optional[StrictBool] = Field(default=False, description="View packet loss in 1-second intervals. This is only available for 1-minute interval tests. Set to `true` to enable network measurements.", alias="networkMeasurements") + labels: Optional[List[StrictStr]] = Field(default=None, description="A list of test label identifiers (get `labelId` from `/labels` endpoint).") tags: Optional[List[StrictStr]] = Field(default=None, description="A list of test tag identifiers (get `id` from `/tags` endpoint).") + shared_with_accounts: Optional[List[StrictStr]] = Field(default=None, description="A list of account group identifiers that the test is shared with (get `aid` from `/account-groups` endpoint).", alias="sharedWithAccounts") agents: List[TestAgent] = Field(description="A list of objects with `agentId` (required) and `sourceIpAddress` (optional).") - __properties: ClassVar[List[str]] = ["createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "sharedWithAccounts", "bandwidthMeasurements", "continuousMode", "fixedPacketRate", "mtuMeasurements", "numPathTraces", "pathTraceMode", "probeMode", "protocol", "randomizedStartTime", "server", "dscp", "dscpId", "ipv6Policy", "pingPayloadSize", "networkMeasurements", "tags", "agents"] + __properties: ClassVar[List[str]] = ["createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "bandwidthMeasurements", "continuousMode", "fixedPacketRate", "mtuMeasurements", "numPathTraces", "pathTraceMode", "probeMode", "protocol", "randomizedStartTime", "server", "dscp", "dscpId", "ipv6Policy", "pingPayloadSize", "networkMeasurements", "labels", "tags", "sharedWithAccounts", "agents"] model_config = ConfigDict( populate_by_name=True, @@ -157,8 +157,6 @@ class AgentToServerInstantTestRequest(BaseModel): "testName": obj.get("testName"), "type": obj.get("type"), "_links": TestLinks.from_dict(obj["_links"]) if obj.get("_links") is not None else None, - "labels": obj.get("labels"), - "sharedWithAccounts": obj.get("sharedWithAccounts"), "bandwidthMeasurements": obj.get("bandwidthMeasurements"), "continuousMode": obj.get("continuousMode"), "fixedPacketRate": obj.get("fixedPacketRate"), @@ -174,7 +172,9 @@ class AgentToServerInstantTestRequest(BaseModel): "ipv6Policy": obj.get("ipv6Policy"), "pingPayloadSize": obj.get("pingPayloadSize"), "networkMeasurements": obj.get("networkMeasurements") if obj.get("networkMeasurements") is not None else False, + "labels": obj.get("labels"), "tags": obj.get("tags"), + "sharedWithAccounts": obj.get("sharedWithAccounts"), "agents": [TestAgent.from_dict(_item) for _item in obj["agents"]] if obj.get("agents") is not None else None }) return _obj diff --git a/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/agent_to_server_instant_test_response.py b/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/agent_to_server_instant_test_response.py index 804fc724..387fffa6 100644 --- a/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/agent_to_server_instant_test_response.py +++ b/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/agent_to_server_instant_test_response.py @@ -29,6 +29,7 @@ from thousandeyes_sdk.instant_tests.models.test_links import TestLinks from thousandeyes_sdk.instant_tests.models.test_path_trace_mode import TestPathTraceMode from thousandeyes_sdk.instant_tests.models.test_probe_mode import TestProbeMode from thousandeyes_sdk.instant_tests.models.test_protocol import TestProtocol +from thousandeyes_sdk.instant_tests.models.test_tag import TestTag from typing import Optional, Set from typing_extensions import Self @@ -48,6 +49,7 @@ class AgentToServerInstantTestResponse(BaseModel): type: Optional[StrictStr] = None links: Optional[TestLinks] = Field(default=None, alias="_links") labels: Optional[List[TestLabel]] = Field(default=None, description="Labels to which the test is assigned. This field is not returned for Instant Tests.") + tags: Optional[List[TestTag]] = Field(default=None, description="Tags assigned to the test. Returned only when `expand=tag` is specified. This field is not returned for Instant Tests. For more information, see `/tags`.") shared_with_accounts: Optional[List[SharedWithAccount]] = Field(default=None, alias="sharedWithAccounts") bandwidth_measurements: Optional[StrictBool] = Field(default=None, description="Set to `true` to enable bandwidth measurements, only applies to Enterprise agents assigned to the test.", alias="bandwidthMeasurements") continuous_mode: Optional[StrictBool] = Field(default=None, description="To enable continuous monitoring, set this parameter to `true` to. When continuous monitoring is enabled, the following actions occur: * `fixedPacketRate` is enforced * `bandwidthMeasurements` are disabled * If the `protocol` is set to `tcp`, `probeMode` is set to `syn`. ", alias="continuousMode") @@ -65,7 +67,7 @@ class AgentToServerInstantTestResponse(BaseModel): ping_payload_size: Optional[Annotated[int, Field(le=1400, strict=True, ge=0)]] = Field(default=None, description="Payload size (not total packet size) for the end-to-end metric's probes, ping payload size allows values from 0 to 1400 bytes. When set to null, payload sizes are 0 bytes for ICMP-based tests and 1 byte for TCP-based tests.", alias="pingPayloadSize") network_measurements: Optional[StrictBool] = Field(default=False, description="View packet loss in 1-second intervals. This is only available for 1-minute interval tests. Set to `true` to enable network measurements.", alias="networkMeasurements") agents: Optional[List[AgentResponse]] = Field(default=None, description="Contains list of agents.") - __properties: ClassVar[List[str]] = ["createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "sharedWithAccounts", "bandwidthMeasurements", "continuousMode", "fixedPacketRate", "mtuMeasurements", "numPathTraces", "pathTraceMode", "probeMode", "protocol", "randomizedStartTime", "server", "dscp", "dscpId", "ipv6Policy", "pingPayloadSize", "networkMeasurements", "agents"] + __properties: ClassVar[List[str]] = ["createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "tags", "sharedWithAccounts", "bandwidthMeasurements", "continuousMode", "fixedPacketRate", "mtuMeasurements", "numPathTraces", "pathTraceMode", "probeMode", "protocol", "randomizedStartTime", "server", "dscp", "dscpId", "ipv6Policy", "pingPayloadSize", "networkMeasurements", "agents"] model_config = ConfigDict( populate_by_name=True, @@ -109,6 +111,7 @@ class AgentToServerInstantTestResponse(BaseModel): * 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([ "created_by", @@ -120,6 +123,7 @@ class AgentToServerInstantTestResponse(BaseModel): "test_id", "type", "labels", + "tags", "shared_with_accounts", "dscp", ]) @@ -139,6 +143,13 @@ class AgentToServerInstantTestResponse(BaseModel): if _item: _items.append(_item.to_dict()) _dict['labels'] = _items + # override the default output from pydantic by calling `to_dict()` of each item in tags (list) + _items = [] + if self.tags: + for _item in self.tags: + if _item: + _items.append(_item.to_dict()) + _dict['tags'] = _items # override the default output from pydantic by calling `to_dict()` of each item in shared_with_accounts (list) _items = [] if self.shared_with_accounts: @@ -177,6 +188,7 @@ class AgentToServerInstantTestResponse(BaseModel): "type": obj.get("type"), "_links": TestLinks.from_dict(obj["_links"]) if obj.get("_links") is not None else None, "labels": [TestLabel.from_dict(_item) for _item in obj["labels"]] if obj.get("labels") is not None else None, + "tags": [TestTag.from_dict(_item) for _item in obj["tags"]] if obj.get("tags") is not None else None, "sharedWithAccounts": [SharedWithAccount.from_dict(_item) for _item in obj["sharedWithAccounts"]] if obj.get("sharedWithAccounts") is not None else None, "bandwidthMeasurements": obj.get("bandwidthMeasurements"), "continuousMode": obj.get("continuousMode"), diff --git a/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/api_instant_test.py b/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/api_instant_test.py index 2d243de7..4a0adaf4 100644 --- a/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/api_instant_test.py +++ b/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/api_instant_test.py @@ -29,6 +29,8 @@ from thousandeyes_sdk.instant_tests.models.test_path_trace_mode import TestPathT from thousandeyes_sdk.instant_tests.models.test_probe_mode import TestProbeMode from thousandeyes_sdk.instant_tests.models.test_protocol import TestProtocol from thousandeyes_sdk.instant_tests.models.test_ssl_version_id import TestSslVersionId +from thousandeyes_sdk.instant_tests.models.test_tag import TestTag +from thousandeyes_sdk.instant_tests.models.test_vault_credential import TestVaultCredential from typing import Optional, Set from typing_extensions import Self @@ -48,6 +50,7 @@ class ApiInstantTest(BaseModel): type: Optional[StrictStr] = None links: Optional[TestLinks] = Field(default=None, alias="_links") labels: Optional[List[TestLabel]] = Field(default=None, description="Labels to which the test is assigned. This field is not returned for Instant Tests.") + tags: Optional[List[TestTag]] = Field(default=None, description="Tags assigned to the test. Returned only when `expand=tag` is specified. This field is not returned for Instant Tests. For more information, see `/tags`.") shared_with_accounts: Optional[List[SharedWithAccount]] = Field(default=None, alias="sharedWithAccounts") client_certificate: Optional[StrictStr] = Field(default=None, description="String representation (containing newline characters) of client certificate, the private key must be placed first, then the certificate.", alias="clientCertificate") client_cert_domains_allow_list: Optional[StrictStr] = Field(default=None, description="Comma separated list of domains to send the client certificate.", alias="clientCertDomainsAllowList") @@ -70,7 +73,8 @@ class ApiInstantTest(BaseModel): time_limit: Optional[Annotated[int, Field(le=180, strict=True, ge=5)]] = Field(default=30, description="Time limit for transaction in seconds. Exceeding this limit will result in a Timeout error.", alias="timeLimit") url: StrictStr = Field(description="Target for the test.") credentials: Optional[List[StrictStr]] = Field(default=None, description="Contains a list of credential IDs (get `credentialId` from `/credentials` endpoint).") - __properties: ClassVar[List[str]] = ["createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "sharedWithAccounts", "clientCertificate", "clientCertDomainsAllowList", "collectProxyNetworkData", "distributedTracing", "followRedirects", "mtuMeasurements", "networkMeasurements", "numPathTraces", "overrideAgentProxy", "overrideProxyId", "pathTraceMode", "predefinedVariables", "probeMode", "protocol", "randomizedStartTime", "requests", "sslVersionId", "targetTime", "timeLimit", "url", "credentials"] + vault_credentials: Optional[List[TestVaultCredential]] = Field(default=None, description="List of credential IDs that are stored in an external vault.", alias="vaultCredentials") + __properties: ClassVar[List[str]] = ["createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "tags", "sharedWithAccounts", "clientCertificate", "clientCertDomainsAllowList", "collectProxyNetworkData", "distributedTracing", "followRedirects", "mtuMeasurements", "networkMeasurements", "numPathTraces", "overrideAgentProxy", "overrideProxyId", "pathTraceMode", "predefinedVariables", "probeMode", "protocol", "randomizedStartTime", "requests", "sslVersionId", "targetTime", "timeLimit", "url", "credentials", "vaultCredentials"] model_config = ConfigDict( populate_by_name=True, @@ -113,6 +117,7 @@ class ApiInstantTest(BaseModel): * 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([ "created_by", @@ -124,6 +129,7 @@ class ApiInstantTest(BaseModel): "test_id", "type", "labels", + "tags", "shared_with_accounts", ]) @@ -142,6 +148,13 @@ class ApiInstantTest(BaseModel): if _item: _items.append(_item.to_dict()) _dict['labels'] = _items + # override the default output from pydantic by calling `to_dict()` of each item in tags (list) + _items = [] + if self.tags: + for _item in self.tags: + if _item: + _items.append(_item.to_dict()) + _dict['tags'] = _items # override the default output from pydantic by calling `to_dict()` of each item in shared_with_accounts (list) _items = [] if self.shared_with_accounts: @@ -163,6 +176,13 @@ class ApiInstantTest(BaseModel): if _item: _items.append(_item.to_dict()) _dict['requests'] = _items + # override the default output from pydantic by calling `to_dict()` of each item in vault_credentials (list) + _items = [] + if self.vault_credentials: + for _item in self.vault_credentials: + if _item: + _items.append(_item.to_dict()) + _dict['vaultCredentials'] = _items return _dict @classmethod @@ -187,6 +207,7 @@ class ApiInstantTest(BaseModel): "type": obj.get("type"), "_links": TestLinks.from_dict(obj["_links"]) if obj.get("_links") is not None else None, "labels": [TestLabel.from_dict(_item) for _item in obj["labels"]] if obj.get("labels") is not None else None, + "tags": [TestTag.from_dict(_item) for _item in obj["tags"]] if obj.get("tags") is not None else None, "sharedWithAccounts": [SharedWithAccount.from_dict(_item) for _item in obj["sharedWithAccounts"]] if obj.get("sharedWithAccounts") is not None else None, "clientCertificate": obj.get("clientCertificate"), "clientCertDomainsAllowList": obj.get("clientCertDomainsAllowList"), @@ -208,7 +229,8 @@ class ApiInstantTest(BaseModel): "targetTime": obj.get("targetTime"), "timeLimit": obj.get("timeLimit") if obj.get("timeLimit") is not None else 30, "url": obj.get("url"), - "credentials": obj.get("credentials") + "credentials": obj.get("credentials"), + "vaultCredentials": [TestVaultCredential.from_dict(_item) for _item in obj["vaultCredentials"]] if obj.get("vaultCredentials") is not None else None }) return _obj diff --git a/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/api_instant_test_request.py b/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/api_instant_test_request.py index cab56137..3ff15820 100644 --- a/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/api_instant_test_request.py +++ b/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/api_instant_test_request.py @@ -28,6 +28,7 @@ from thousandeyes_sdk.instant_tests.models.test_path_trace_mode import TestPathT from thousandeyes_sdk.instant_tests.models.test_probe_mode import TestProbeMode from thousandeyes_sdk.instant_tests.models.test_protocol import TestProtocol from thousandeyes_sdk.instant_tests.models.test_ssl_version_id import TestSslVersionId +from thousandeyes_sdk.instant_tests.models.test_vault_credential import TestVaultCredential from typing import Optional, Set from typing_extensions import Self @@ -46,8 +47,6 @@ class ApiInstantTestRequest(BaseModel): test_name: Optional[StrictStr] = Field(default=None, description="The name of the test. Test name must be unique.", alias="testName") type: Optional[StrictStr] = None links: Optional[TestLinks] = Field(default=None, alias="_links") - labels: Optional[List[StrictStr]] = Field(default=None, description="A list of test label identifiers (get `labelId` from `/labels` endpoint).") - shared_with_accounts: Optional[List[StrictStr]] = Field(default=None, description="A list of account group identifiers that the test is shared with (get `aid` from `/account-groups` endpoint).", alias="sharedWithAccounts") client_certificate: Optional[StrictStr] = Field(default=None, description="String representation (containing newline characters) of client certificate, the private key must be placed first, then the certificate.", alias="clientCertificate") client_cert_domains_allow_list: Optional[StrictStr] = Field(default=None, description="Comma separated list of domains to send the client certificate.", alias="clientCertDomainsAllowList") collect_proxy_network_data: Optional[StrictBool] = Field(default=False, description="Indicates whether network data to the proxy should be collected.", alias="collectProxyNetworkData") @@ -68,10 +67,13 @@ class ApiInstantTestRequest(BaseModel): target_time: Optional[Annotated[int, Field(le=60, strict=True, ge=0)]] = Field(default=None, description="Target time for completion metric, defaults to 50% of time limit specified in seconds. (0 means default behavior)", alias="targetTime") time_limit: Optional[Annotated[int, Field(le=180, strict=True, ge=5)]] = Field(default=30, description="Time limit for transaction in seconds. Exceeding this limit will result in a Timeout error.", alias="timeLimit") url: StrictStr = Field(description="Target for the test.") - credentials: Optional[List[StrictStr]] = Field(default=None, description="Contains a list of credential IDs (get `credentialId` from `/credentials` endpoint).") + labels: Optional[List[StrictStr]] = Field(default=None, description="A list of test label identifiers (get `labelId` from `/labels` endpoint).") tags: Optional[List[StrictStr]] = Field(default=None, description="A list of test tag identifiers (get `id` from `/tags` endpoint).") + shared_with_accounts: Optional[List[StrictStr]] = Field(default=None, description="A list of account group identifiers that the test is shared with (get `aid` from `/account-groups` endpoint).", alias="sharedWithAccounts") agents: List[TestAgent] = Field(description="A list of objects with `agentId` (required) and `sourceIpAddress` (optional).") - __properties: ClassVar[List[str]] = ["createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "sharedWithAccounts", "clientCertificate", "clientCertDomainsAllowList", "collectProxyNetworkData", "distributedTracing", "followRedirects", "mtuMeasurements", "networkMeasurements", "numPathTraces", "overrideAgentProxy", "overrideProxyId", "pathTraceMode", "predefinedVariables", "probeMode", "protocol", "randomizedStartTime", "requests", "sslVersionId", "targetTime", "timeLimit", "url", "credentials", "tags", "agents"] + credentials: Optional[List[StrictStr]] = Field(default=None, description="Contains a list of credential IDs (get `credentialId` from `/credentials` endpoint).") + vault_credentials: Optional[List[TestVaultCredential]] = Field(default=None, description="List of credential IDs that are stored in an external vault.", alias="vaultCredentials") + __properties: ClassVar[List[str]] = ["createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "clientCertificate", "clientCertDomainsAllowList", "collectProxyNetworkData", "distributedTracing", "followRedirects", "mtuMeasurements", "networkMeasurements", "numPathTraces", "overrideAgentProxy", "overrideProxyId", "pathTraceMode", "predefinedVariables", "probeMode", "protocol", "randomizedStartTime", "requests", "sslVersionId", "targetTime", "timeLimit", "url", "labels", "tags", "sharedWithAccounts", "agents", "credentials", "vaultCredentials"] model_config = ConfigDict( populate_by_name=True, @@ -153,6 +155,13 @@ class ApiInstantTestRequest(BaseModel): if _item: _items.append(_item.to_dict()) _dict['agents'] = _items + # override the default output from pydantic by calling `to_dict()` of each item in vault_credentials (list) + _items = [] + if self.vault_credentials: + for _item in self.vault_credentials: + if _item: + _items.append(_item.to_dict()) + _dict['vaultCredentials'] = _items return _dict @classmethod @@ -176,8 +185,6 @@ class ApiInstantTestRequest(BaseModel): "testName": obj.get("testName"), "type": obj.get("type"), "_links": TestLinks.from_dict(obj["_links"]) if obj.get("_links") is not None else None, - "labels": obj.get("labels"), - "sharedWithAccounts": obj.get("sharedWithAccounts"), "clientCertificate": obj.get("clientCertificate"), "clientCertDomainsAllowList": obj.get("clientCertDomainsAllowList"), "collectProxyNetworkData": obj.get("collectProxyNetworkData") if obj.get("collectProxyNetworkData") is not None else False, @@ -198,9 +205,12 @@ class ApiInstantTestRequest(BaseModel): "targetTime": obj.get("targetTime"), "timeLimit": obj.get("timeLimit") if obj.get("timeLimit") is not None else 30, "url": obj.get("url"), - "credentials": obj.get("credentials"), + "labels": obj.get("labels"), "tags": obj.get("tags"), - "agents": [TestAgent.from_dict(_item) for _item in obj["agents"]] if obj.get("agents") is not None else None + "sharedWithAccounts": obj.get("sharedWithAccounts"), + "agents": [TestAgent.from_dict(_item) for _item in obj["agents"]] if obj.get("agents") is not None else None, + "credentials": obj.get("credentials"), + "vaultCredentials": [TestVaultCredential.from_dict(_item) for _item in obj["vaultCredentials"]] if obj.get("vaultCredentials") is not None else None }) return _obj diff --git a/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/api_instant_test_response.py b/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/api_instant_test_response.py index 9ce1ea1e..1cf59bf3 100644 --- a/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/api_instant_test_response.py +++ b/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/api_instant_test_response.py @@ -30,6 +30,8 @@ from thousandeyes_sdk.instant_tests.models.test_path_trace_mode import TestPathT from thousandeyes_sdk.instant_tests.models.test_probe_mode import TestProbeMode from thousandeyes_sdk.instant_tests.models.test_protocol import TestProtocol from thousandeyes_sdk.instant_tests.models.test_ssl_version_id import TestSslVersionId +from thousandeyes_sdk.instant_tests.models.test_tag import TestTag +from thousandeyes_sdk.instant_tests.models.test_vault_credential import TestVaultCredential from typing import Optional, Set from typing_extensions import Self @@ -49,6 +51,7 @@ class ApiInstantTestResponse(BaseModel): type: Optional[StrictStr] = None links: Optional[TestLinks] = Field(default=None, alias="_links") labels: Optional[List[TestLabel]] = Field(default=None, description="Labels to which the test is assigned. This field is not returned for Instant Tests.") + tags: Optional[List[TestTag]] = Field(default=None, description="Tags assigned to the test. Returned only when `expand=tag` is specified. This field is not returned for Instant Tests. For more information, see `/tags`.") shared_with_accounts: Optional[List[SharedWithAccount]] = Field(default=None, alias="sharedWithAccounts") client_certificate: Optional[StrictStr] = Field(default=None, description="String representation (containing newline characters) of client certificate, the private key must be placed first, then the certificate.", alias="clientCertificate") client_cert_domains_allow_list: Optional[StrictStr] = Field(default=None, description="Comma separated list of domains to send the client certificate.", alias="clientCertDomainsAllowList") @@ -71,8 +74,9 @@ class ApiInstantTestResponse(BaseModel): time_limit: Optional[Annotated[int, Field(le=180, strict=True, ge=5)]] = Field(default=30, description="Time limit for transaction in seconds. Exceeding this limit will result in a Timeout error.", alias="timeLimit") url: StrictStr = Field(description="Target for the test.") credentials: Optional[List[StrictStr]] = Field(default=None, description="Contains a list of credential IDs (get `credentialId` from `/credentials` endpoint).") + vault_credentials: Optional[List[TestVaultCredential]] = Field(default=None, description="List of credential IDs that are stored in an external vault.", alias="vaultCredentials") agents: Optional[List[AgentResponse]] = Field(default=None, description="Contains list of agents.") - __properties: ClassVar[List[str]] = ["createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "sharedWithAccounts", "clientCertificate", "clientCertDomainsAllowList", "collectProxyNetworkData", "distributedTracing", "followRedirects", "mtuMeasurements", "networkMeasurements", "numPathTraces", "overrideAgentProxy", "overrideProxyId", "pathTraceMode", "predefinedVariables", "probeMode", "protocol", "randomizedStartTime", "requests", "sslVersionId", "targetTime", "timeLimit", "url", "credentials", "agents"] + __properties: ClassVar[List[str]] = ["createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "tags", "sharedWithAccounts", "clientCertificate", "clientCertDomainsAllowList", "collectProxyNetworkData", "distributedTracing", "followRedirects", "mtuMeasurements", "networkMeasurements", "numPathTraces", "overrideAgentProxy", "overrideProxyId", "pathTraceMode", "predefinedVariables", "probeMode", "protocol", "randomizedStartTime", "requests", "sslVersionId", "targetTime", "timeLimit", "url", "credentials", "vaultCredentials", "agents"] model_config = ConfigDict( populate_by_name=True, @@ -115,6 +119,7 @@ class ApiInstantTestResponse(BaseModel): * 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([ "created_by", @@ -126,6 +131,7 @@ class ApiInstantTestResponse(BaseModel): "test_id", "type", "labels", + "tags", "shared_with_accounts", ]) @@ -144,6 +150,13 @@ class ApiInstantTestResponse(BaseModel): if _item: _items.append(_item.to_dict()) _dict['labels'] = _items + # override the default output from pydantic by calling `to_dict()` of each item in tags (list) + _items = [] + if self.tags: + for _item in self.tags: + if _item: + _items.append(_item.to_dict()) + _dict['tags'] = _items # override the default output from pydantic by calling `to_dict()` of each item in shared_with_accounts (list) _items = [] if self.shared_with_accounts: @@ -165,6 +178,13 @@ class ApiInstantTestResponse(BaseModel): if _item: _items.append(_item.to_dict()) _dict['requests'] = _items + # override the default output from pydantic by calling `to_dict()` of each item in vault_credentials (list) + _items = [] + if self.vault_credentials: + for _item in self.vault_credentials: + if _item: + _items.append(_item.to_dict()) + _dict['vaultCredentials'] = _items # override the default output from pydantic by calling `to_dict()` of each item in agents (list) _items = [] if self.agents: @@ -196,6 +216,7 @@ class ApiInstantTestResponse(BaseModel): "type": obj.get("type"), "_links": TestLinks.from_dict(obj["_links"]) if obj.get("_links") is not None else None, "labels": [TestLabel.from_dict(_item) for _item in obj["labels"]] if obj.get("labels") is not None else None, + "tags": [TestTag.from_dict(_item) for _item in obj["tags"]] if obj.get("tags") is not None else None, "sharedWithAccounts": [SharedWithAccount.from_dict(_item) for _item in obj["sharedWithAccounts"]] if obj.get("sharedWithAccounts") is not None else None, "clientCertificate": obj.get("clientCertificate"), "clientCertDomainsAllowList": obj.get("clientCertDomainsAllowList"), @@ -218,6 +239,7 @@ class ApiInstantTestResponse(BaseModel): "timeLimit": obj.get("timeLimit") if obj.get("timeLimit") is not None else 30, "url": obj.get("url"), "credentials": obj.get("credentials"), + "vaultCredentials": [TestVaultCredential.from_dict(_item) for _item in obj["vaultCredentials"]] if obj.get("vaultCredentials") is not None else None, "agents": [AgentResponse.from_dict(_item) for _item in obj["agents"]] if obj.get("agents") is not None else None }) return _obj diff --git a/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/dns_sec_instant_test.py b/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/dns_sec_instant_test.py index 61dd9003..24686d7a 100644 --- a/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/dns_sec_instant_test.py +++ b/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/dns_sec_instant_test.py @@ -23,6 +23,7 @@ from thousandeyes_sdk.instant_tests.models.dns_query_class import DnsQueryClass from thousandeyes_sdk.instant_tests.models.shared_with_account import SharedWithAccount from thousandeyes_sdk.instant_tests.models.test_label import TestLabel from thousandeyes_sdk.instant_tests.models.test_links import TestLinks +from thousandeyes_sdk.instant_tests.models.test_tag import TestTag from typing import Optional, Set from typing_extensions import Self @@ -42,11 +43,12 @@ class DnsSecInstantTest(BaseModel): type: Optional[StrictStr] = None links: Optional[TestLinks] = Field(default=None, alias="_links") labels: Optional[List[TestLabel]] = Field(default=None, description="Labels to which the test is assigned. This field is not returned for Instant Tests.") + tags: Optional[List[TestTag]] = Field(default=None, description="Tags assigned to the test. Returned only when `expand=tag` is specified. This field is not returned for Instant Tests. For more information, see `/tags`.") shared_with_accounts: Optional[List[SharedWithAccount]] = Field(default=None, alias="sharedWithAccounts") domain: StrictStr = Field(description="The target record for the test, with the record type suffixed. If no record type is specified, the test defaults to an ANY record.") dns_query_class: Optional[DnsQueryClass] = Field(default=None, alias="dnsQueryClass") randomized_start_time: Optional[StrictBool] = Field(default=False, description="Indicates whether agents should randomize the start time in each test round.", alias="randomizedStartTime") - __properties: ClassVar[List[str]] = ["createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "sharedWithAccounts", "domain", "dnsQueryClass", "randomizedStartTime"] + __properties: ClassVar[List[str]] = ["createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "tags", "sharedWithAccounts", "domain", "dnsQueryClass", "randomizedStartTime"] model_config = ConfigDict( populate_by_name=True, @@ -89,6 +91,7 @@ class DnsSecInstantTest(BaseModel): * 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([ "created_by", @@ -100,6 +103,7 @@ class DnsSecInstantTest(BaseModel): "test_id", "type", "labels", + "tags", "shared_with_accounts", ]) @@ -118,6 +122,13 @@ class DnsSecInstantTest(BaseModel): if _item: _items.append(_item.to_dict()) _dict['labels'] = _items + # override the default output from pydantic by calling `to_dict()` of each item in tags (list) + _items = [] + if self.tags: + for _item in self.tags: + if _item: + _items.append(_item.to_dict()) + _dict['tags'] = _items # override the default output from pydantic by calling `to_dict()` of each item in shared_with_accounts (list) _items = [] if self.shared_with_accounts: @@ -149,6 +160,7 @@ class DnsSecInstantTest(BaseModel): "type": obj.get("type"), "_links": TestLinks.from_dict(obj["_links"]) if obj.get("_links") is not None else None, "labels": [TestLabel.from_dict(_item) for _item in obj["labels"]] if obj.get("labels") is not None else None, + "tags": [TestTag.from_dict(_item) for _item in obj["tags"]] if obj.get("tags") is not None else None, "sharedWithAccounts": [SharedWithAccount.from_dict(_item) for _item in obj["sharedWithAccounts"]] if obj.get("sharedWithAccounts") is not None else None, "domain": obj.get("domain"), "dnsQueryClass": obj.get("dnsQueryClass"), diff --git a/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/dns_sec_instant_test_request.py b/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/dns_sec_instant_test_request.py index f6b30647..15e37bd1 100644 --- a/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/dns_sec_instant_test_request.py +++ b/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/dns_sec_instant_test_request.py @@ -40,14 +40,14 @@ class DnsSecInstantTestRequest(BaseModel): test_name: Optional[StrictStr] = Field(default=None, description="The name of the test. Test name must be unique.", alias="testName") type: Optional[StrictStr] = None links: Optional[TestLinks] = Field(default=None, alias="_links") - labels: Optional[List[StrictStr]] = Field(default=None, description="A list of test label identifiers (get `labelId` from `/labels` endpoint).") - shared_with_accounts: Optional[List[StrictStr]] = Field(default=None, description="A list of account group identifiers that the test is shared with (get `aid` from `/account-groups` endpoint).", alias="sharedWithAccounts") domain: StrictStr = Field(description="The target record for the test, with the record type suffixed. If no record type is specified, the test defaults to an ANY record.") dns_query_class: Optional[DnsQueryClass] = Field(default=None, alias="dnsQueryClass") randomized_start_time: Optional[StrictBool] = Field(default=False, description="Indicates whether agents should randomize the start time in each test round.", alias="randomizedStartTime") + labels: Optional[List[StrictStr]] = Field(default=None, description="A list of test label identifiers (get `labelId` from `/labels` endpoint).") tags: Optional[List[StrictStr]] = Field(default=None, description="A list of test tag identifiers (get `id` from `/tags` endpoint).") + shared_with_accounts: Optional[List[StrictStr]] = Field(default=None, description="A list of account group identifiers that the test is shared with (get `aid` from `/account-groups` endpoint).", alias="sharedWithAccounts") agents: List[TestAgent] = Field(description="A list of objects with `agentId` (required) and `sourceIpAddress` (optional).") - __properties: ClassVar[List[str]] = ["createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "sharedWithAccounts", "domain", "dnsQueryClass", "randomizedStartTime", "tags", "agents"] + __properties: ClassVar[List[str]] = ["createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "domain", "dnsQueryClass", "randomizedStartTime", "labels", "tags", "sharedWithAccounts", "agents"] model_config = ConfigDict( populate_by_name=True, @@ -138,12 +138,12 @@ class DnsSecInstantTestRequest(BaseModel): "testName": obj.get("testName"), "type": obj.get("type"), "_links": TestLinks.from_dict(obj["_links"]) if obj.get("_links") is not None else None, - "labels": obj.get("labels"), - "sharedWithAccounts": obj.get("sharedWithAccounts"), "domain": obj.get("domain"), "dnsQueryClass": obj.get("dnsQueryClass"), "randomizedStartTime": obj.get("randomizedStartTime") if obj.get("randomizedStartTime") is not None else False, + "labels": obj.get("labels"), "tags": obj.get("tags"), + "sharedWithAccounts": obj.get("sharedWithAccounts"), "agents": [TestAgent.from_dict(_item) for _item in obj["agents"]] if obj.get("agents") is not None else None }) return _obj diff --git a/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/dns_sec_instant_test_response.py b/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/dns_sec_instant_test_response.py index 5a0fcdf3..8760eaa9 100644 --- a/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/dns_sec_instant_test_response.py +++ b/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/dns_sec_instant_test_response.py @@ -24,6 +24,7 @@ from thousandeyes_sdk.instant_tests.models.dns_query_class import DnsQueryClass from thousandeyes_sdk.instant_tests.models.shared_with_account import SharedWithAccount from thousandeyes_sdk.instant_tests.models.test_label import TestLabel from thousandeyes_sdk.instant_tests.models.test_links import TestLinks +from thousandeyes_sdk.instant_tests.models.test_tag import TestTag from typing import Optional, Set from typing_extensions import Self @@ -43,12 +44,13 @@ class DnsSecInstantTestResponse(BaseModel): type: Optional[StrictStr] = None links: Optional[TestLinks] = Field(default=None, alias="_links") labels: Optional[List[TestLabel]] = Field(default=None, description="Labels to which the test is assigned. This field is not returned for Instant Tests.") + tags: Optional[List[TestTag]] = Field(default=None, description="Tags assigned to the test. Returned only when `expand=tag` is specified. This field is not returned for Instant Tests. For more information, see `/tags`.") shared_with_accounts: Optional[List[SharedWithAccount]] = Field(default=None, alias="sharedWithAccounts") domain: StrictStr = Field(description="The target record for the test, with the record type suffixed. If no record type is specified, the test defaults to an ANY record.") dns_query_class: Optional[DnsQueryClass] = Field(default=None, alias="dnsQueryClass") randomized_start_time: Optional[StrictBool] = Field(default=False, description="Indicates whether agents should randomize the start time in each test round.", alias="randomizedStartTime") agents: Optional[List[AgentResponse]] = Field(default=None, description="Contains list of agents.") - __properties: ClassVar[List[str]] = ["createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "sharedWithAccounts", "domain", "dnsQueryClass", "randomizedStartTime", "agents"] + __properties: ClassVar[List[str]] = ["createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "tags", "sharedWithAccounts", "domain", "dnsQueryClass", "randomizedStartTime", "agents"] model_config = ConfigDict( populate_by_name=True, @@ -91,6 +93,7 @@ class DnsSecInstantTestResponse(BaseModel): * 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([ "created_by", @@ -102,6 +105,7 @@ class DnsSecInstantTestResponse(BaseModel): "test_id", "type", "labels", + "tags", "shared_with_accounts", ]) @@ -120,6 +124,13 @@ class DnsSecInstantTestResponse(BaseModel): if _item: _items.append(_item.to_dict()) _dict['labels'] = _items + # override the default output from pydantic by calling `to_dict()` of each item in tags (list) + _items = [] + if self.tags: + for _item in self.tags: + if _item: + _items.append(_item.to_dict()) + _dict['tags'] = _items # override the default output from pydantic by calling `to_dict()` of each item in shared_with_accounts (list) _items = [] if self.shared_with_accounts: @@ -158,6 +169,7 @@ class DnsSecInstantTestResponse(BaseModel): "type": obj.get("type"), "_links": TestLinks.from_dict(obj["_links"]) if obj.get("_links") is not None else None, "labels": [TestLabel.from_dict(_item) for _item in obj["labels"]] if obj.get("labels") is not None else None, + "tags": [TestTag.from_dict(_item) for _item in obj["tags"]] if obj.get("tags") is not None else None, "sharedWithAccounts": [SharedWithAccount.from_dict(_item) for _item in obj["sharedWithAccounts"]] if obj.get("sharedWithAccounts") is not None else None, "domain": obj.get("domain"), "dnsQueryClass": obj.get("dnsQueryClass"), diff --git a/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/dns_server_instant_test.py b/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/dns_server_instant_test.py index ed778f59..64cfa712 100644 --- a/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/dns_server_instant_test.py +++ b/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/dns_server_instant_test.py @@ -30,6 +30,7 @@ from thousandeyes_sdk.instant_tests.models.test_links import TestLinks from thousandeyes_sdk.instant_tests.models.test_path_trace_mode import TestPathTraceMode from thousandeyes_sdk.instant_tests.models.test_probe_mode import TestProbeMode from thousandeyes_sdk.instant_tests.models.test_protocol import TestProtocol +from thousandeyes_sdk.instant_tests.models.test_tag import TestTag from typing import Optional, Set from typing_extensions import Self @@ -49,6 +50,7 @@ class DnsServerInstantTest(BaseModel): type: Optional[StrictStr] = None links: Optional[TestLinks] = Field(default=None, alias="_links") labels: Optional[List[TestLabel]] = Field(default=None, description="Labels to which the test is assigned. This field is not returned for Instant Tests.") + tags: Optional[List[TestTag]] = Field(default=None, description="Tags assigned to the test. Returned only when `expand=tag` is specified. This field is not returned for Instant Tests. For more information, see `/tags`.") shared_with_accounts: Optional[List[SharedWithAccount]] = Field(default=None, alias="sharedWithAccounts") bandwidth_measurements: Optional[StrictBool] = Field(default=None, description="Set to `true` to enable bandwidth measurements, only applies to Enterprise agents assigned to the test.", alias="bandwidthMeasurements") dns_servers: List[TestDnsServer] = Field(alias="dnsServers") @@ -65,7 +67,7 @@ class DnsServerInstantTest(BaseModel): ipv6_policy: Optional[TestIpv6Policy] = Field(default=None, alias="ipv6Policy") fixed_packet_rate: Optional[Annotated[int, Field(le=100, strict=True, ge=0)]] = Field(default=None, description="Sets packets rate sent to measure the network in packets per second.", alias="fixedPacketRate") dns_query_class: Optional[DnsQueryClass] = Field(default=None, alias="dnsQueryClass") - __properties: ClassVar[List[str]] = ["createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "sharedWithAccounts", "bandwidthMeasurements", "dnsServers", "dnsTransportProtocol", "domain", "mtuMeasurements", "networkMeasurements", "numPathTraces", "pathTraceMode", "probeMode", "protocol", "randomizedStartTime", "recursiveQueries", "ipv6Policy", "fixedPacketRate", "dnsQueryClass"] + __properties: ClassVar[List[str]] = ["createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "tags", "sharedWithAccounts", "bandwidthMeasurements", "dnsServers", "dnsTransportProtocol", "domain", "mtuMeasurements", "networkMeasurements", "numPathTraces", "pathTraceMode", "probeMode", "protocol", "randomizedStartTime", "recursiveQueries", "ipv6Policy", "fixedPacketRate", "dnsQueryClass"] model_config = ConfigDict( populate_by_name=True, @@ -108,6 +110,7 @@ class DnsServerInstantTest(BaseModel): * 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([ "created_by", @@ -119,6 +122,7 @@ class DnsServerInstantTest(BaseModel): "test_id", "type", "labels", + "tags", "shared_with_accounts", ]) @@ -137,6 +141,13 @@ class DnsServerInstantTest(BaseModel): if _item: _items.append(_item.to_dict()) _dict['labels'] = _items + # override the default output from pydantic by calling `to_dict()` of each item in tags (list) + _items = [] + if self.tags: + for _item in self.tags: + if _item: + _items.append(_item.to_dict()) + _dict['tags'] = _items # override the default output from pydantic by calling `to_dict()` of each item in shared_with_accounts (list) _items = [] if self.shared_with_accounts: @@ -175,6 +186,7 @@ class DnsServerInstantTest(BaseModel): "type": obj.get("type"), "_links": TestLinks.from_dict(obj["_links"]) if obj.get("_links") is not None else None, "labels": [TestLabel.from_dict(_item) for _item in obj["labels"]] if obj.get("labels") is not None else None, + "tags": [TestTag.from_dict(_item) for _item in obj["tags"]] if obj.get("tags") is not None else None, "sharedWithAccounts": [SharedWithAccount.from_dict(_item) for _item in obj["sharedWithAccounts"]] if obj.get("sharedWithAccounts") is not None else None, "bandwidthMeasurements": obj.get("bandwidthMeasurements"), "dnsServers": [TestDnsServer.from_dict(_item) for _item in obj["dnsServers"]] if obj.get("dnsServers") is not None else None, diff --git a/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/dns_server_instant_test_request.py b/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/dns_server_instant_test_request.py index b8afe673..f9f6ab11 100644 --- a/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/dns_server_instant_test_request.py +++ b/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/dns_server_instant_test_request.py @@ -46,8 +46,6 @@ class DnsServerInstantTestRequest(BaseModel): test_name: Optional[StrictStr] = Field(default=None, description="The name of the test. Test name must be unique.", alias="testName") type: Optional[StrictStr] = None links: Optional[TestLinks] = Field(default=None, alias="_links") - labels: Optional[List[StrictStr]] = Field(default=None, description="A list of test label identifiers (get `labelId` from `/labels` endpoint).") - shared_with_accounts: Optional[List[StrictStr]] = Field(default=None, description="A list of account group identifiers that the test is shared with (get `aid` from `/account-groups` endpoint).", alias="sharedWithAccounts") bandwidth_measurements: Optional[StrictBool] = Field(default=None, description="Set to `true` to enable bandwidth measurements, only applies to Enterprise agents assigned to the test.", alias="bandwidthMeasurements") dns_servers: List[StrictStr] = Field(description="A list of DNS server FQDN.", alias="dnsServers") dns_transport_protocol: Optional[TestDnsTransportProtocol] = Field(default=None, alias="dnsTransportProtocol") @@ -63,9 +61,11 @@ class DnsServerInstantTestRequest(BaseModel): ipv6_policy: Optional[TestIpv6Policy] = Field(default=None, alias="ipv6Policy") fixed_packet_rate: Optional[Annotated[int, Field(le=100, strict=True, ge=0)]] = Field(default=None, description="Sets packets rate sent to measure the network in packets per second.", alias="fixedPacketRate") dns_query_class: Optional[DnsQueryClass] = Field(default=None, alias="dnsQueryClass") + labels: Optional[List[StrictStr]] = Field(default=None, description="A list of test label identifiers (get `labelId` from `/labels` endpoint).") tags: Optional[List[StrictStr]] = Field(default=None, description="A list of test tag identifiers (get `id` from `/tags` endpoint).") + shared_with_accounts: Optional[List[StrictStr]] = Field(default=None, description="A list of account group identifiers that the test is shared with (get `aid` from `/account-groups` endpoint).", alias="sharedWithAccounts") agents: List[TestAgent] = Field(description="A list of objects with `agentId` (required) and `sourceIpAddress` (optional).") - __properties: ClassVar[List[str]] = ["createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "sharedWithAccounts", "bandwidthMeasurements", "dnsServers", "dnsTransportProtocol", "domain", "mtuMeasurements", "networkMeasurements", "numPathTraces", "pathTraceMode", "probeMode", "protocol", "randomizedStartTime", "recursiveQueries", "ipv6Policy", "fixedPacketRate", "dnsQueryClass", "tags", "agents"] + __properties: ClassVar[List[str]] = ["createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "bandwidthMeasurements", "dnsServers", "dnsTransportProtocol", "domain", "mtuMeasurements", "networkMeasurements", "numPathTraces", "pathTraceMode", "probeMode", "protocol", "randomizedStartTime", "recursiveQueries", "ipv6Policy", "fixedPacketRate", "dnsQueryClass", "labels", "tags", "sharedWithAccounts", "agents"] model_config = ConfigDict( populate_by_name=True, @@ -156,8 +156,6 @@ class DnsServerInstantTestRequest(BaseModel): "testName": obj.get("testName"), "type": obj.get("type"), "_links": TestLinks.from_dict(obj["_links"]) if obj.get("_links") is not None else None, - "labels": obj.get("labels"), - "sharedWithAccounts": obj.get("sharedWithAccounts"), "bandwidthMeasurements": obj.get("bandwidthMeasurements"), "dnsServers": obj.get("dnsServers"), "dnsTransportProtocol": obj.get("dnsTransportProtocol"), @@ -173,7 +171,9 @@ class DnsServerInstantTestRequest(BaseModel): "ipv6Policy": obj.get("ipv6Policy"), "fixedPacketRate": obj.get("fixedPacketRate"), "dnsQueryClass": obj.get("dnsQueryClass"), + "labels": obj.get("labels"), "tags": obj.get("tags"), + "sharedWithAccounts": obj.get("sharedWithAccounts"), "agents": [TestAgent.from_dict(_item) for _item in obj["agents"]] if obj.get("agents") is not None else None }) return _obj diff --git a/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/dns_server_instant_test_response.py b/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/dns_server_instant_test_response.py index 475806eb..f10f45b3 100644 --- a/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/dns_server_instant_test_response.py +++ b/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/dns_server_instant_test_response.py @@ -31,6 +31,7 @@ from thousandeyes_sdk.instant_tests.models.test_links import TestLinks from thousandeyes_sdk.instant_tests.models.test_path_trace_mode import TestPathTraceMode from thousandeyes_sdk.instant_tests.models.test_probe_mode import TestProbeMode from thousandeyes_sdk.instant_tests.models.test_protocol import TestProtocol +from thousandeyes_sdk.instant_tests.models.test_tag import TestTag from typing import Optional, Set from typing_extensions import Self @@ -50,6 +51,7 @@ class DnsServerInstantTestResponse(BaseModel): type: Optional[StrictStr] = None links: Optional[TestLinks] = Field(default=None, alias="_links") labels: Optional[List[TestLabel]] = Field(default=None, description="Labels to which the test is assigned. This field is not returned for Instant Tests.") + tags: Optional[List[TestTag]] = Field(default=None, description="Tags assigned to the test. Returned only when `expand=tag` is specified. This field is not returned for Instant Tests. For more information, see `/tags`.") shared_with_accounts: Optional[List[SharedWithAccount]] = Field(default=None, alias="sharedWithAccounts") bandwidth_measurements: Optional[StrictBool] = Field(default=None, description="Set to `true` to enable bandwidth measurements, only applies to Enterprise agents assigned to the test.", alias="bandwidthMeasurements") dns_servers: List[TestDnsServer] = Field(alias="dnsServers") @@ -67,7 +69,7 @@ class DnsServerInstantTestResponse(BaseModel): fixed_packet_rate: Optional[Annotated[int, Field(le=100, strict=True, ge=0)]] = Field(default=None, description="Sets packets rate sent to measure the network in packets per second.", alias="fixedPacketRate") dns_query_class: Optional[DnsQueryClass] = Field(default=None, alias="dnsQueryClass") agents: Optional[List[AgentResponse]] = Field(default=None, description="Contains list of agents.") - __properties: ClassVar[List[str]] = ["createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "sharedWithAccounts", "bandwidthMeasurements", "dnsServers", "dnsTransportProtocol", "domain", "mtuMeasurements", "networkMeasurements", "numPathTraces", "pathTraceMode", "probeMode", "protocol", "randomizedStartTime", "recursiveQueries", "ipv6Policy", "fixedPacketRate", "dnsQueryClass", "agents"] + __properties: ClassVar[List[str]] = ["createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "tags", "sharedWithAccounts", "bandwidthMeasurements", "dnsServers", "dnsTransportProtocol", "domain", "mtuMeasurements", "networkMeasurements", "numPathTraces", "pathTraceMode", "probeMode", "protocol", "randomizedStartTime", "recursiveQueries", "ipv6Policy", "fixedPacketRate", "dnsQueryClass", "agents"] model_config = ConfigDict( populate_by_name=True, @@ -110,6 +112,7 @@ class DnsServerInstantTestResponse(BaseModel): * 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([ "created_by", @@ -121,6 +124,7 @@ class DnsServerInstantTestResponse(BaseModel): "test_id", "type", "labels", + "tags", "shared_with_accounts", ]) @@ -139,6 +143,13 @@ class DnsServerInstantTestResponse(BaseModel): if _item: _items.append(_item.to_dict()) _dict['labels'] = _items + # override the default output from pydantic by calling `to_dict()` of each item in tags (list) + _items = [] + if self.tags: + for _item in self.tags: + if _item: + _items.append(_item.to_dict()) + _dict['tags'] = _items # override the default output from pydantic by calling `to_dict()` of each item in shared_with_accounts (list) _items = [] if self.shared_with_accounts: @@ -184,6 +195,7 @@ class DnsServerInstantTestResponse(BaseModel): "type": obj.get("type"), "_links": TestLinks.from_dict(obj["_links"]) if obj.get("_links") is not None else None, "labels": [TestLabel.from_dict(_item) for _item in obj["labels"]] if obj.get("labels") is not None else None, + "tags": [TestTag.from_dict(_item) for _item in obj["tags"]] if obj.get("tags") is not None else None, "sharedWithAccounts": [SharedWithAccount.from_dict(_item) for _item in obj["sharedWithAccounts"]] if obj.get("sharedWithAccounts") is not None else None, "bandwidthMeasurements": obj.get("bandwidthMeasurements"), "dnsServers": [TestDnsServer.from_dict(_item) for _item in obj["dnsServers"]] if obj.get("dnsServers") is not None else None, diff --git a/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/dns_server_request_properties.py b/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/dns_server_request_properties.py new file mode 100644 index 00000000..c121d529 --- /dev/null +++ b/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/dns_server_request_properties.py @@ -0,0 +1,126 @@ +# coding: utf-8 + +""" + Instant Tests API + + The Instant Tests API operations lets you create and run new instant tests. You will need to be an Account Admin. The response does not include the immediate test results. Use the Test Results endpoints to get test results after creating and executing an instant test. You can find the URLs for these endpoints in the _links section of the test definition that is returned when you create the instant test. + + 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 thousandeyes_sdk.instant_tests.models.dns_query_class import DnsQueryClass +from thousandeyes_sdk.instant_tests.models.test_dns_transport_protocol import TestDnsTransportProtocol +from thousandeyes_sdk.instant_tests.models.test_ipv6_policy import TestIpv6Policy +from thousandeyes_sdk.instant_tests.models.test_path_trace_mode import TestPathTraceMode +from thousandeyes_sdk.instant_tests.models.test_probe_mode import TestProbeMode +from thousandeyes_sdk.instant_tests.models.test_protocol import TestProtocol +from typing import Optional, Set +from typing_extensions import Self + +class DnsServerRequestProperties(BaseModel): + """ + DnsServerRequestProperties + """ # noqa: E501 + bandwidth_measurements: Optional[StrictBool] = Field(default=None, description="Set to `true` to enable bandwidth measurements, only applies to Enterprise agents assigned to the test.", alias="bandwidthMeasurements") + dns_servers: List[StrictStr] = Field(description="A list of DNS server FQDN.", alias="dnsServers") + dns_transport_protocol: Optional[TestDnsTransportProtocol] = Field(default=None, alias="dnsTransportProtocol") + domain: StrictStr = Field(description="The target record for the test, with the record type suffixed. If no record type is specified, the test defaults to an ANY record.") + mtu_measurements: Optional[StrictBool] = Field(default=None, description="Set `true` to measure MTU sizes on network from agents to the target.", alias="mtuMeasurements") + network_measurements: Optional[StrictBool] = Field(default=True, description="Enable or disable network measurements. Set to true to enable or false to disable network measurements.", alias="networkMeasurements") + num_path_traces: Optional[Annotated[int, Field(le=10, strict=True, ge=1)]] = Field(default=3, description="Number of path traces executed by the agent.", alias="numPathTraces") + path_trace_mode: Optional[TestPathTraceMode] = Field(default=None, alias="pathTraceMode") + probe_mode: Optional[TestProbeMode] = Field(default=None, alias="probeMode") + protocol: Optional[TestProtocol] = None + randomized_start_time: Optional[StrictBool] = Field(default=False, description="Indicates whether agents should randomize the start time in each test round.", alias="randomizedStartTime") + recursive_queries: Optional[StrictBool] = Field(default=None, description="Set true to run query with RD (recursion desired) flag enabled.", alias="recursiveQueries") + ipv6_policy: Optional[TestIpv6Policy] = Field(default=None, alias="ipv6Policy") + fixed_packet_rate: Optional[Annotated[int, Field(le=100, strict=True, ge=0)]] = Field(default=None, description="Sets packets rate sent to measure the network in packets per second.", alias="fixedPacketRate") + dns_query_class: Optional[DnsQueryClass] = Field(default=None, alias="dnsQueryClass") + type: Optional[StrictStr] = None + __properties: ClassVar[List[str]] = ["bandwidthMeasurements", "dnsServers", "dnsTransportProtocol", "domain", "mtuMeasurements", "networkMeasurements", "numPathTraces", "pathTraceMode", "probeMode", "protocol", "randomizedStartTime", "recursiveQueries", "ipv6Policy", "fixedPacketRate", "dnsQueryClass", "type"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + extra="allow", + ) + + + 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 self.model_dump_json(by_alias=True, exclude_unset=True, exclude_none=True) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of DnsServerRequestProperties 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. + * OpenAPI `readOnly` fields are excluded. + """ + excluded_fields: Set[str] = set([ + "type", + ]) + + _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 DnsServerRequestProperties from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "bandwidthMeasurements": obj.get("bandwidthMeasurements"), + "dnsServers": obj.get("dnsServers"), + "dnsTransportProtocol": obj.get("dnsTransportProtocol"), + "domain": obj.get("domain"), + "mtuMeasurements": obj.get("mtuMeasurements"), + "networkMeasurements": obj.get("networkMeasurements") if obj.get("networkMeasurements") is not None else True, + "numPathTraces": obj.get("numPathTraces") if obj.get("numPathTraces") is not None else 3, + "pathTraceMode": obj.get("pathTraceMode"), + "probeMode": obj.get("probeMode"), + "protocol": obj.get("protocol"), + "randomizedStartTime": obj.get("randomizedStartTime") if obj.get("randomizedStartTime") is not None else False, + "recursiveQueries": obj.get("recursiveQueries"), + "ipv6Policy": obj.get("ipv6Policy"), + "fixedPacketRate": obj.get("fixedPacketRate"), + "dnsQueryClass": obj.get("dnsQueryClass"), + "type": obj.get("type") + }) + return _obj + + diff --git a/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/dns_trace_instant_test.py b/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/dns_trace_instant_test.py index 1bbb7069..24dd4b13 100644 --- a/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/dns_trace_instant_test.py +++ b/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/dns_trace_instant_test.py @@ -24,6 +24,7 @@ from thousandeyes_sdk.instant_tests.models.shared_with_account import SharedWith from thousandeyes_sdk.instant_tests.models.test_dns_transport_protocol import TestDnsTransportProtocol from thousandeyes_sdk.instant_tests.models.test_label import TestLabel from thousandeyes_sdk.instant_tests.models.test_links import TestLinks +from thousandeyes_sdk.instant_tests.models.test_tag import TestTag from typing import Optional, Set from typing_extensions import Self @@ -43,12 +44,13 @@ class DnsTraceInstantTest(BaseModel): type: Optional[StrictStr] = None links: Optional[TestLinks] = Field(default=None, alias="_links") labels: Optional[List[TestLabel]] = Field(default=None, description="Labels to which the test is assigned. This field is not returned for Instant Tests.") + tags: Optional[List[TestTag]] = Field(default=None, description="Tags assigned to the test. Returned only when `expand=tag` is specified. This field is not returned for Instant Tests. For more information, see `/tags`.") shared_with_accounts: Optional[List[SharedWithAccount]] = Field(default=None, alias="sharedWithAccounts") dns_transport_protocol: Optional[TestDnsTransportProtocol] = Field(default=None, alias="dnsTransportProtocol") domain: StrictStr = Field(description="The target record for the test, with the record type suffixed. If no record type is specified, the test defaults to an ANY record.") dns_query_class: Optional[DnsQueryClass] = Field(default=None, alias="dnsQueryClass") randomized_start_time: Optional[StrictBool] = Field(default=False, description="Indicates whether agents should randomize the start time in each test round.", alias="randomizedStartTime") - __properties: ClassVar[List[str]] = ["createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "sharedWithAccounts", "dnsTransportProtocol", "domain", "dnsQueryClass", "randomizedStartTime"] + __properties: ClassVar[List[str]] = ["createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "tags", "sharedWithAccounts", "dnsTransportProtocol", "domain", "dnsQueryClass", "randomizedStartTime"] model_config = ConfigDict( populate_by_name=True, @@ -91,6 +93,7 @@ class DnsTraceInstantTest(BaseModel): * 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([ "created_by", @@ -102,6 +105,7 @@ class DnsTraceInstantTest(BaseModel): "test_id", "type", "labels", + "tags", "shared_with_accounts", ]) @@ -120,6 +124,13 @@ class DnsTraceInstantTest(BaseModel): if _item: _items.append(_item.to_dict()) _dict['labels'] = _items + # override the default output from pydantic by calling `to_dict()` of each item in tags (list) + _items = [] + if self.tags: + for _item in self.tags: + if _item: + _items.append(_item.to_dict()) + _dict['tags'] = _items # override the default output from pydantic by calling `to_dict()` of each item in shared_with_accounts (list) _items = [] if self.shared_with_accounts: @@ -151,6 +162,7 @@ class DnsTraceInstantTest(BaseModel): "type": obj.get("type"), "_links": TestLinks.from_dict(obj["_links"]) if obj.get("_links") is not None else None, "labels": [TestLabel.from_dict(_item) for _item in obj["labels"]] if obj.get("labels") is not None else None, + "tags": [TestTag.from_dict(_item) for _item in obj["tags"]] if obj.get("tags") is not None else None, "sharedWithAccounts": [SharedWithAccount.from_dict(_item) for _item in obj["sharedWithAccounts"]] if obj.get("sharedWithAccounts") is not None else None, "dnsTransportProtocol": obj.get("dnsTransportProtocol"), "domain": obj.get("domain"), diff --git a/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/dns_trace_instant_test_request.py b/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/dns_trace_instant_test_request.py index b6e9380e..0b0646fe 100644 --- a/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/dns_trace_instant_test_request.py +++ b/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/dns_trace_instant_test_request.py @@ -41,15 +41,15 @@ class DnsTraceInstantTestRequest(BaseModel): test_name: Optional[StrictStr] = Field(default=None, description="The name of the test. Test name must be unique.", alias="testName") type: Optional[StrictStr] = None links: Optional[TestLinks] = Field(default=None, alias="_links") - labels: Optional[List[StrictStr]] = Field(default=None, description="A list of test label identifiers (get `labelId` from `/labels` endpoint).") - shared_with_accounts: Optional[List[StrictStr]] = Field(default=None, description="A list of account group identifiers that the test is shared with (get `aid` from `/account-groups` endpoint).", alias="sharedWithAccounts") dns_transport_protocol: Optional[TestDnsTransportProtocol] = Field(default=None, alias="dnsTransportProtocol") domain: StrictStr = Field(description="The target record for the test, with the record type suffixed. If no record type is specified, the test defaults to an ANY record.") dns_query_class: Optional[DnsQueryClass] = Field(default=None, alias="dnsQueryClass") randomized_start_time: Optional[StrictBool] = Field(default=False, description="Indicates whether agents should randomize the start time in each test round.", alias="randomizedStartTime") + labels: Optional[List[StrictStr]] = Field(default=None, description="A list of test label identifiers (get `labelId` from `/labels` endpoint).") tags: Optional[List[StrictStr]] = Field(default=None, description="A list of test tag identifiers (get `id` from `/tags` endpoint).") + shared_with_accounts: Optional[List[StrictStr]] = Field(default=None, description="A list of account group identifiers that the test is shared with (get `aid` from `/account-groups` endpoint).", alias="sharedWithAccounts") agents: List[TestAgent] = Field(description="A list of objects with `agentId` (required) and `sourceIpAddress` (optional).") - __properties: ClassVar[List[str]] = ["createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "sharedWithAccounts", "dnsTransportProtocol", "domain", "dnsQueryClass", "randomizedStartTime", "tags", "agents"] + __properties: ClassVar[List[str]] = ["createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "dnsTransportProtocol", "domain", "dnsQueryClass", "randomizedStartTime", "labels", "tags", "sharedWithAccounts", "agents"] model_config = ConfigDict( populate_by_name=True, @@ -140,13 +140,13 @@ class DnsTraceInstantTestRequest(BaseModel): "testName": obj.get("testName"), "type": obj.get("type"), "_links": TestLinks.from_dict(obj["_links"]) if obj.get("_links") is not None else None, - "labels": obj.get("labels"), - "sharedWithAccounts": obj.get("sharedWithAccounts"), "dnsTransportProtocol": obj.get("dnsTransportProtocol"), "domain": obj.get("domain"), "dnsQueryClass": obj.get("dnsQueryClass"), "randomizedStartTime": obj.get("randomizedStartTime") if obj.get("randomizedStartTime") is not None else False, + "labels": obj.get("labels"), "tags": obj.get("tags"), + "sharedWithAccounts": obj.get("sharedWithAccounts"), "agents": [TestAgent.from_dict(_item) for _item in obj["agents"]] if obj.get("agents") is not None else None }) return _obj diff --git a/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/dns_trace_instant_test_response.py b/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/dns_trace_instant_test_response.py index 5e721136..c1c5aa3a 100644 --- a/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/dns_trace_instant_test_response.py +++ b/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/dns_trace_instant_test_response.py @@ -25,6 +25,7 @@ from thousandeyes_sdk.instant_tests.models.shared_with_account import SharedWith from thousandeyes_sdk.instant_tests.models.test_dns_transport_protocol import TestDnsTransportProtocol from thousandeyes_sdk.instant_tests.models.test_label import TestLabel from thousandeyes_sdk.instant_tests.models.test_links import TestLinks +from thousandeyes_sdk.instant_tests.models.test_tag import TestTag from typing import Optional, Set from typing_extensions import Self @@ -44,13 +45,14 @@ class DnsTraceInstantTestResponse(BaseModel): type: Optional[StrictStr] = None links: Optional[TestLinks] = Field(default=None, alias="_links") labels: Optional[List[TestLabel]] = Field(default=None, description="Labels to which the test is assigned. This field is not returned for Instant Tests.") + tags: Optional[List[TestTag]] = Field(default=None, description="Tags assigned to the test. Returned only when `expand=tag` is specified. This field is not returned for Instant Tests. For more information, see `/tags`.") shared_with_accounts: Optional[List[SharedWithAccount]] = Field(default=None, alias="sharedWithAccounts") dns_transport_protocol: Optional[TestDnsTransportProtocol] = Field(default=None, alias="dnsTransportProtocol") domain: StrictStr = Field(description="The target record for the test, with the record type suffixed. If no record type is specified, the test defaults to an ANY record.") dns_query_class: Optional[DnsQueryClass] = Field(default=None, alias="dnsQueryClass") randomized_start_time: Optional[StrictBool] = Field(default=False, description="Indicates whether agents should randomize the start time in each test round.", alias="randomizedStartTime") agents: Optional[List[AgentResponse]] = Field(default=None, description="Contains list of agents.") - __properties: ClassVar[List[str]] = ["createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "sharedWithAccounts", "dnsTransportProtocol", "domain", "dnsQueryClass", "randomizedStartTime", "agents"] + __properties: ClassVar[List[str]] = ["createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "tags", "sharedWithAccounts", "dnsTransportProtocol", "domain", "dnsQueryClass", "randomizedStartTime", "agents"] model_config = ConfigDict( populate_by_name=True, @@ -93,6 +95,7 @@ class DnsTraceInstantTestResponse(BaseModel): * 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([ "created_by", @@ -104,6 +107,7 @@ class DnsTraceInstantTestResponse(BaseModel): "test_id", "type", "labels", + "tags", "shared_with_accounts", ]) @@ -122,6 +126,13 @@ class DnsTraceInstantTestResponse(BaseModel): if _item: _items.append(_item.to_dict()) _dict['labels'] = _items + # override the default output from pydantic by calling `to_dict()` of each item in tags (list) + _items = [] + if self.tags: + for _item in self.tags: + if _item: + _items.append(_item.to_dict()) + _dict['tags'] = _items # override the default output from pydantic by calling `to_dict()` of each item in shared_with_accounts (list) _items = [] if self.shared_with_accounts: @@ -160,6 +171,7 @@ class DnsTraceInstantTestResponse(BaseModel): "type": obj.get("type"), "_links": TestLinks.from_dict(obj["_links"]) if obj.get("_links") is not None else None, "labels": [TestLabel.from_dict(_item) for _item in obj["labels"]] if obj.get("labels") is not None else None, + "tags": [TestTag.from_dict(_item) for _item in obj["tags"]] if obj.get("tags") is not None else None, "sharedWithAccounts": [SharedWithAccount.from_dict(_item) for _item in obj["sharedWithAccounts"]] if obj.get("sharedWithAccounts") is not None else None, "dnsTransportProtocol": obj.get("dnsTransportProtocol"), "domain": obj.get("domain"), diff --git a/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/ftp_server_instant_test.py b/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/ftp_server_instant_test.py index 65c6e462..ec0bf9b8 100644 --- a/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/ftp_server_instant_test.py +++ b/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/ftp_server_instant_test.py @@ -28,6 +28,7 @@ from thousandeyes_sdk.instant_tests.models.test_links import TestLinks from thousandeyes_sdk.instant_tests.models.test_path_trace_mode import TestPathTraceMode from thousandeyes_sdk.instant_tests.models.test_probe_mode import TestProbeMode from thousandeyes_sdk.instant_tests.models.test_protocol import TestProtocol +from thousandeyes_sdk.instant_tests.models.test_tag import TestTag from typing import Optional, Set from typing_extensions import Self @@ -47,6 +48,7 @@ class FtpServerInstantTest(BaseModel): type: Optional[StrictStr] = None links: Optional[TestLinks] = Field(default=None, alias="_links") labels: Optional[List[TestLabel]] = Field(default=None, description="Labels to which the test is assigned. This field is not returned for Instant Tests.") + tags: Optional[List[TestTag]] = Field(default=None, description="Tags assigned to the test. Returned only when `expand=tag` is specified. This field is not returned for Instant Tests. For more information, see `/tags`.") shared_with_accounts: Optional[List[SharedWithAccount]] = Field(default=None, alias="sharedWithAccounts") bandwidth_measurements: Optional[StrictBool] = Field(default=None, description="Set to `true` to enable bandwidth measurements, only applies to Enterprise agents assigned to the test.", alias="bandwidthMeasurements") download_limit: Optional[StrictInt] = Field(default=None, description="Specify maximum number of bytes to download from the target object.", alias="downloadLimit") @@ -67,7 +69,7 @@ class FtpServerInstantTest(BaseModel): username: StrictStr = Field(description="Username for Basic/NTLM authentication.") fixed_packet_rate: Optional[Annotated[int, Field(le=100, strict=True, ge=0)]] = Field(default=None, description="Sets packets rate sent to measure the network in packets per second.", alias="fixedPacketRate") ipv6_policy: Optional[TestIpv6Policy] = Field(default=None, alias="ipv6Policy") - __properties: ClassVar[List[str]] = ["createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "sharedWithAccounts", "bandwidthMeasurements", "downloadLimit", "ftpTargetTime", "ftpTimeLimit", "mtuMeasurements", "networkMeasurements", "numPathTraces", "password", "pathTraceMode", "probeMode", "protocol", "randomizedStartTime", "requestType", "url", "useActiveFtp", "useExplicitFtps", "username", "fixedPacketRate", "ipv6Policy"] + __properties: ClassVar[List[str]] = ["createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "tags", "sharedWithAccounts", "bandwidthMeasurements", "downloadLimit", "ftpTargetTime", "ftpTimeLimit", "mtuMeasurements", "networkMeasurements", "numPathTraces", "password", "pathTraceMode", "probeMode", "protocol", "randomizedStartTime", "requestType", "url", "useActiveFtp", "useExplicitFtps", "username", "fixedPacketRate", "ipv6Policy"] model_config = ConfigDict( populate_by_name=True, @@ -110,6 +112,7 @@ class FtpServerInstantTest(BaseModel): * 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([ "created_by", @@ -121,6 +124,7 @@ class FtpServerInstantTest(BaseModel): "test_id", "type", "labels", + "tags", "shared_with_accounts", ]) @@ -139,6 +143,13 @@ class FtpServerInstantTest(BaseModel): if _item: _items.append(_item.to_dict()) _dict['labels'] = _items + # override the default output from pydantic by calling `to_dict()` of each item in tags (list) + _items = [] + if self.tags: + for _item in self.tags: + if _item: + _items.append(_item.to_dict()) + _dict['tags'] = _items # override the default output from pydantic by calling `to_dict()` of each item in shared_with_accounts (list) _items = [] if self.shared_with_accounts: @@ -170,6 +181,7 @@ class FtpServerInstantTest(BaseModel): "type": obj.get("type"), "_links": TestLinks.from_dict(obj["_links"]) if obj.get("_links") is not None else None, "labels": [TestLabel.from_dict(_item) for _item in obj["labels"]] if obj.get("labels") is not None else None, + "tags": [TestTag.from_dict(_item) for _item in obj["tags"]] if obj.get("tags") is not None else None, "sharedWithAccounts": [SharedWithAccount.from_dict(_item) for _item in obj["sharedWithAccounts"]] if obj.get("sharedWithAccounts") is not None else None, "bandwidthMeasurements": obj.get("bandwidthMeasurements"), "downloadLimit": obj.get("downloadLimit"), diff --git a/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/ftp_server_instant_test_request.py b/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/ftp_server_instant_test_request.py index 1a0c940f..51942624 100644 --- a/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/ftp_server_instant_test_request.py +++ b/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/ftp_server_instant_test_request.py @@ -45,8 +45,6 @@ class FtpServerInstantTestRequest(BaseModel): test_name: Optional[StrictStr] = Field(default=None, description="The name of the test. Test name must be unique.", alias="testName") type: Optional[StrictStr] = None links: Optional[TestLinks] = Field(default=None, alias="_links") - labels: Optional[List[StrictStr]] = Field(default=None, description="A list of test label identifiers (get `labelId` from `/labels` endpoint).") - shared_with_accounts: Optional[List[StrictStr]] = Field(default=None, description="A list of account group identifiers that the test is shared with (get `aid` from `/account-groups` endpoint).", alias="sharedWithAccounts") bandwidth_measurements: Optional[StrictBool] = Field(default=None, description="Set to `true` to enable bandwidth measurements, only applies to Enterprise agents assigned to the test.", alias="bandwidthMeasurements") download_limit: Optional[StrictInt] = Field(default=None, description="Specify maximum number of bytes to download from the target object.", alias="downloadLimit") ftp_target_time: Optional[Annotated[int, Field(le=6000, strict=True, ge=1000)]] = Field(default=None, description="Target time for operation completion; specified in milliseconds.", alias="ftpTargetTime") @@ -66,9 +64,11 @@ class FtpServerInstantTestRequest(BaseModel): username: StrictStr = Field(description="Username for Basic/NTLM authentication.") fixed_packet_rate: Optional[Annotated[int, Field(le=100, strict=True, ge=0)]] = Field(default=None, description="Sets packets rate sent to measure the network in packets per second.", alias="fixedPacketRate") ipv6_policy: Optional[TestIpv6Policy] = Field(default=None, alias="ipv6Policy") + labels: Optional[List[StrictStr]] = Field(default=None, description="A list of test label identifiers (get `labelId` from `/labels` endpoint).") tags: Optional[List[StrictStr]] = Field(default=None, description="A list of test tag identifiers (get `id` from `/tags` endpoint).") + shared_with_accounts: Optional[List[StrictStr]] = Field(default=None, description="A list of account group identifiers that the test is shared with (get `aid` from `/account-groups` endpoint).", alias="sharedWithAccounts") agents: List[TestAgent] = Field(description="A list of objects with `agentId` (required) and `sourceIpAddress` (optional).") - __properties: ClassVar[List[str]] = ["createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "sharedWithAccounts", "bandwidthMeasurements", "downloadLimit", "ftpTargetTime", "ftpTimeLimit", "mtuMeasurements", "networkMeasurements", "numPathTraces", "password", "pathTraceMode", "probeMode", "protocol", "randomizedStartTime", "requestType", "url", "useActiveFtp", "useExplicitFtps", "username", "fixedPacketRate", "ipv6Policy", "tags", "agents"] + __properties: ClassVar[List[str]] = ["createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "bandwidthMeasurements", "downloadLimit", "ftpTargetTime", "ftpTimeLimit", "mtuMeasurements", "networkMeasurements", "numPathTraces", "password", "pathTraceMode", "probeMode", "protocol", "randomizedStartTime", "requestType", "url", "useActiveFtp", "useExplicitFtps", "username", "fixedPacketRate", "ipv6Policy", "labels", "tags", "sharedWithAccounts", "agents"] model_config = ConfigDict( populate_by_name=True, @@ -159,8 +159,6 @@ class FtpServerInstantTestRequest(BaseModel): "testName": obj.get("testName"), "type": obj.get("type"), "_links": TestLinks.from_dict(obj["_links"]) if obj.get("_links") is not None else None, - "labels": obj.get("labels"), - "sharedWithAccounts": obj.get("sharedWithAccounts"), "bandwidthMeasurements": obj.get("bandwidthMeasurements"), "downloadLimit": obj.get("downloadLimit"), "ftpTargetTime": obj.get("ftpTargetTime"), @@ -180,7 +178,9 @@ class FtpServerInstantTestRequest(BaseModel): "username": obj.get("username"), "fixedPacketRate": obj.get("fixedPacketRate"), "ipv6Policy": obj.get("ipv6Policy"), + "labels": obj.get("labels"), "tags": obj.get("tags"), + "sharedWithAccounts": obj.get("sharedWithAccounts"), "agents": [TestAgent.from_dict(_item) for _item in obj["agents"]] if obj.get("agents") is not None else None }) return _obj diff --git a/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/ftp_server_instant_test_response.py b/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/ftp_server_instant_test_response.py index 403e49a9..905b71c9 100644 --- a/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/ftp_server_instant_test_response.py +++ b/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/ftp_server_instant_test_response.py @@ -29,6 +29,7 @@ from thousandeyes_sdk.instant_tests.models.test_links import TestLinks from thousandeyes_sdk.instant_tests.models.test_path_trace_mode import TestPathTraceMode from thousandeyes_sdk.instant_tests.models.test_probe_mode import TestProbeMode from thousandeyes_sdk.instant_tests.models.test_protocol import TestProtocol +from thousandeyes_sdk.instant_tests.models.test_tag import TestTag from typing import Optional, Set from typing_extensions import Self @@ -48,6 +49,7 @@ class FtpServerInstantTestResponse(BaseModel): type: Optional[StrictStr] = None links: Optional[TestLinks] = Field(default=None, alias="_links") labels: Optional[List[TestLabel]] = Field(default=None, description="Labels to which the test is assigned. This field is not returned for Instant Tests.") + tags: Optional[List[TestTag]] = Field(default=None, description="Tags assigned to the test. Returned only when `expand=tag` is specified. This field is not returned for Instant Tests. For more information, see `/tags`.") shared_with_accounts: Optional[List[SharedWithAccount]] = Field(default=None, alias="sharedWithAccounts") bandwidth_measurements: Optional[StrictBool] = Field(default=None, description="Set to `true` to enable bandwidth measurements, only applies to Enterprise agents assigned to the test.", alias="bandwidthMeasurements") download_limit: Optional[StrictInt] = Field(default=None, description="Specify maximum number of bytes to download from the target object.", alias="downloadLimit") @@ -69,7 +71,7 @@ class FtpServerInstantTestResponse(BaseModel): fixed_packet_rate: Optional[Annotated[int, Field(le=100, strict=True, ge=0)]] = Field(default=None, description="Sets packets rate sent to measure the network in packets per second.", alias="fixedPacketRate") ipv6_policy: Optional[TestIpv6Policy] = Field(default=None, alias="ipv6Policy") agents: Optional[List[AgentResponse]] = Field(default=None, description="Contains list of agents.") - __properties: ClassVar[List[str]] = ["createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "sharedWithAccounts", "bandwidthMeasurements", "downloadLimit", "ftpTargetTime", "ftpTimeLimit", "mtuMeasurements", "networkMeasurements", "numPathTraces", "password", "pathTraceMode", "probeMode", "protocol", "randomizedStartTime", "requestType", "url", "useActiveFtp", "useExplicitFtps", "username", "fixedPacketRate", "ipv6Policy", "agents"] + __properties: ClassVar[List[str]] = ["createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "tags", "sharedWithAccounts", "bandwidthMeasurements", "downloadLimit", "ftpTargetTime", "ftpTimeLimit", "mtuMeasurements", "networkMeasurements", "numPathTraces", "password", "pathTraceMode", "probeMode", "protocol", "randomizedStartTime", "requestType", "url", "useActiveFtp", "useExplicitFtps", "username", "fixedPacketRate", "ipv6Policy", "agents"] model_config = ConfigDict( populate_by_name=True, @@ -112,6 +114,7 @@ class FtpServerInstantTestResponse(BaseModel): * 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([ "created_by", @@ -123,6 +126,7 @@ class FtpServerInstantTestResponse(BaseModel): "test_id", "type", "labels", + "tags", "shared_with_accounts", ]) @@ -141,6 +145,13 @@ class FtpServerInstantTestResponse(BaseModel): if _item: _items.append(_item.to_dict()) _dict['labels'] = _items + # override the default output from pydantic by calling `to_dict()` of each item in tags (list) + _items = [] + if self.tags: + for _item in self.tags: + if _item: + _items.append(_item.to_dict()) + _dict['tags'] = _items # override the default output from pydantic by calling `to_dict()` of each item in shared_with_accounts (list) _items = [] if self.shared_with_accounts: @@ -179,6 +190,7 @@ class FtpServerInstantTestResponse(BaseModel): "type": obj.get("type"), "_links": TestLinks.from_dict(obj["_links"]) if obj.get("_links") is not None else None, "labels": [TestLabel.from_dict(_item) for _item in obj["labels"]] if obj.get("labels") is not None else None, + "tags": [TestTag.from_dict(_item) for _item in obj["tags"]] if obj.get("tags") is not None else None, "sharedWithAccounts": [SharedWithAccount.from_dict(_item) for _item in obj["sharedWithAccounts"]] if obj.get("sharedWithAccounts") is not None else None, "bandwidthMeasurements": obj.get("bandwidthMeasurements"), "downloadLimit": obj.get("downloadLimit"), diff --git a/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/http_server_base_properties.py b/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/http_server_base_properties.py index 4941f12d..ca4f02ae 100644 --- a/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/http_server_base_properties.py +++ b/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/http_server_base_properties.py @@ -27,6 +27,7 @@ from thousandeyes_sdk.instant_tests.models.test_path_trace_mode import TestPathT from thousandeyes_sdk.instant_tests.models.test_probe_mode import TestProbeMode from thousandeyes_sdk.instant_tests.models.test_protocol import TestProtocol from thousandeyes_sdk.instant_tests.models.test_ssl_version_id import TestSslVersionId +from thousandeyes_sdk.instant_tests.models.test_vault_credential import TestVaultCredential from typing import Optional, Set from typing_extensions import Self @@ -69,7 +70,8 @@ class HttpServerBaseProperties(BaseModel): override_agent_proxy: Optional[StrictBool] = Field(default=False, description="Flag indicating if a proxy other than the default should be used. To override the default proxy for agents, set to `true` and specify a value for `overrideProxyId`.", alias="overrideAgentProxy") override_proxy_id: Optional[StrictStr] = Field(default=None, description="ID of the proxy to be used if the default proxy is overridden.", alias="overrideProxyId") collect_proxy_network_data: Optional[StrictBool] = Field(default=False, description="Indicates whether network data to the proxy should be collected.", alias="collectProxyNetworkData") - __properties: ClassVar[List[str]] = ["authType", "agentInterfaces", "bandwidthMeasurements", "clientCertificate", "contentRegex", "customHeaders", "desiredStatusCode", "distributedTracing", "downloadLimit", "dnsOverride", "httpTargetTime", "httpTimeLimit", "httpVersion", "includeHeaders", "mtuMeasurements", "networkMeasurements", "numPathTraces", "oAuth", "password", "pathTraceMode", "probeMode", "protocol", "sslVersion", "sslVersionId", "url", "useNtlm", "userAgent", "username", "verifyCertificate", "allowUnsafeLegacyRenegotiation", "followRedirects", "fixedPacketRate", "overrideAgentProxy", "overrideProxyId", "collectProxyNetworkData"] + vault_credentials: Optional[List[TestVaultCredential]] = Field(default=None, description="List of credential IDs that are stored in an external vault.", alias="vaultCredentials") + __properties: ClassVar[List[str]] = ["authType", "agentInterfaces", "bandwidthMeasurements", "clientCertificate", "contentRegex", "customHeaders", "desiredStatusCode", "distributedTracing", "downloadLimit", "dnsOverride", "httpTargetTime", "httpTimeLimit", "httpVersion", "includeHeaders", "mtuMeasurements", "networkMeasurements", "numPathTraces", "oAuth", "password", "pathTraceMode", "probeMode", "protocol", "sslVersion", "sslVersionId", "url", "useNtlm", "userAgent", "username", "verifyCertificate", "allowUnsafeLegacyRenegotiation", "followRedirects", "fixedPacketRate", "overrideAgentProxy", "overrideProxyId", "collectProxyNetworkData", "vaultCredentials"] model_config = ConfigDict( populate_by_name=True, @@ -122,6 +124,13 @@ class HttpServerBaseProperties(BaseModel): # override the default output from pydantic by calling `to_dict()` of o_auth if self.o_auth: _dict['oAuth'] = self.o_auth.to_dict() + # override the default output from pydantic by calling `to_dict()` of each item in vault_credentials (list) + _items = [] + if self.vault_credentials: + for _item in self.vault_credentials: + if _item: + _items.append(_item.to_dict()) + _dict['vaultCredentials'] = _items return _dict @classmethod @@ -168,7 +177,8 @@ class HttpServerBaseProperties(BaseModel): "fixedPacketRate": obj.get("fixedPacketRate"), "overrideAgentProxy": obj.get("overrideAgentProxy") if obj.get("overrideAgentProxy") is not None else False, "overrideProxyId": obj.get("overrideProxyId"), - "collectProxyNetworkData": obj.get("collectProxyNetworkData") if obj.get("collectProxyNetworkData") is not None else False + "collectProxyNetworkData": obj.get("collectProxyNetworkData") if obj.get("collectProxyNetworkData") is not None else False, + "vaultCredentials": [TestVaultCredential.from_dict(_item) for _item in obj["vaultCredentials"]] if obj.get("vaultCredentials") is not None else None }) return _obj diff --git a/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/http_server_instant_test.py b/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/http_server_instant_test.py index e09471b7..1bddeca4 100644 --- a/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/http_server_instant_test.py +++ b/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/http_server_instant_test.py @@ -22,6 +22,7 @@ from typing import Any, ClassVar, Dict, List, Optional from typing_extensions import Annotated from thousandeyes_sdk.instant_tests.models.agent_interfaces import AgentInterfaces from thousandeyes_sdk.instant_tests.models.o_auth import OAuth +from thousandeyes_sdk.instant_tests.models.request_method import RequestMethod from thousandeyes_sdk.instant_tests.models.shared_with_account import SharedWithAccount from thousandeyes_sdk.instant_tests.models.test_auth_type import TestAuthType from thousandeyes_sdk.instant_tests.models.test_custom_headers import TestCustomHeaders @@ -32,6 +33,8 @@ from thousandeyes_sdk.instant_tests.models.test_path_trace_mode import TestPathT from thousandeyes_sdk.instant_tests.models.test_probe_mode import TestProbeMode from thousandeyes_sdk.instant_tests.models.test_protocol import TestProtocol from thousandeyes_sdk.instant_tests.models.test_ssl_version_id import TestSslVersionId +from thousandeyes_sdk.instant_tests.models.test_tag import TestTag +from thousandeyes_sdk.instant_tests.models.test_vault_credential import TestVaultCredential from typing import Optional, Set from typing_extensions import Self @@ -51,6 +54,7 @@ class HttpServerInstantTest(BaseModel): type: Optional[StrictStr] = None links: Optional[TestLinks] = Field(default=None, alias="_links") labels: Optional[List[TestLabel]] = Field(default=None, description="Labels to which the test is assigned. This field is not returned for Instant Tests.") + tags: Optional[List[TestTag]] = Field(default=None, description="Tags assigned to the test. Returned only when `expand=tag` is specified. This field is not returned for Instant Tests. For more information, see `/tags`.") shared_with_accounts: Optional[List[SharedWithAccount]] = Field(default=None, alias="sharedWithAccounts") auth_type: Optional[TestAuthType] = Field(default=None, alias="authType") agent_interfaces: Optional[AgentInterfaces] = Field(default=None, alias="agentInterfaces") @@ -87,11 +91,13 @@ class HttpServerInstantTest(BaseModel): override_agent_proxy: Optional[StrictBool] = Field(default=False, description="Flag indicating if a proxy other than the default should be used. To override the default proxy for agents, set to `true` and specify a value for `overrideProxyId`.", alias="overrideAgentProxy") override_proxy_id: Optional[StrictStr] = Field(default=None, description="ID of the proxy to be used if the default proxy is overridden.", alias="overrideProxyId") collect_proxy_network_data: Optional[StrictBool] = Field(default=False, description="Indicates whether network data to the proxy should be collected.", alias="collectProxyNetworkData") + vault_credentials: Optional[List[TestVaultCredential]] = Field(default=None, description="List of credential IDs that are stored in an external vault.", alias="vaultCredentials") headers: Optional[List[StrictStr]] = Field(default=None, description="HTTP request headers used.") randomized_start_time: Optional[StrictBool] = Field(default=False, description="Indicates whether agents should randomize the start time in each test round.", alias="randomizedStartTime") - post_body: Optional[StrictStr] = Field(default=None, description="Enter the body for the HTTP POST request in this field. No special escaping is necessary. If the post body is provided with content, the `requestMethod` is automatically set to POST.", alias="postBody") + request_method: Optional[RequestMethod] = Field(default=None, alias="requestMethod") + post_body: Optional[StrictStr] = Field(default=None, description="Enter the body for the HTTP POST request in this field. No special escaping is required. If content is provided and `requestMethod` is not specified, `requestMethod` is automatically set to `post`.", alias="postBody") ipv6_policy: Optional[TestIpv6Policy] = Field(default=None, alias="ipv6Policy") - __properties: ClassVar[List[str]] = ["createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "sharedWithAccounts", "authType", "agentInterfaces", "bandwidthMeasurements", "clientCertificate", "contentRegex", "customHeaders", "desiredStatusCode", "distributedTracing", "downloadLimit", "dnsOverride", "httpTargetTime", "httpTimeLimit", "httpVersion", "includeHeaders", "mtuMeasurements", "networkMeasurements", "numPathTraces", "oAuth", "password", "pathTraceMode", "probeMode", "protocol", "sslVersion", "sslVersionId", "url", "useNtlm", "userAgent", "username", "verifyCertificate", "allowUnsafeLegacyRenegotiation", "followRedirects", "fixedPacketRate", "overrideAgentProxy", "overrideProxyId", "collectProxyNetworkData", "headers", "randomizedStartTime", "postBody", "ipv6Policy"] + __properties: ClassVar[List[str]] = ["createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "tags", "sharedWithAccounts", "authType", "agentInterfaces", "bandwidthMeasurements", "clientCertificate", "contentRegex", "customHeaders", "desiredStatusCode", "distributedTracing", "downloadLimit", "dnsOverride", "httpTargetTime", "httpTimeLimit", "httpVersion", "includeHeaders", "mtuMeasurements", "networkMeasurements", "numPathTraces", "oAuth", "password", "pathTraceMode", "probeMode", "protocol", "sslVersion", "sslVersionId", "url", "useNtlm", "userAgent", "username", "verifyCertificate", "allowUnsafeLegacyRenegotiation", "followRedirects", "fixedPacketRate", "overrideAgentProxy", "overrideProxyId", "collectProxyNetworkData", "vaultCredentials", "headers", "randomizedStartTime", "requestMethod", "postBody", "ipv6Policy"] model_config = ConfigDict( populate_by_name=True, @@ -135,6 +141,7 @@ class HttpServerInstantTest(BaseModel): * 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([ "created_by", @@ -146,6 +153,7 @@ class HttpServerInstantTest(BaseModel): "test_id", "type", "labels", + "tags", "shared_with_accounts", "ssl_version", ]) @@ -165,6 +173,13 @@ class HttpServerInstantTest(BaseModel): if _item: _items.append(_item.to_dict()) _dict['labels'] = _items + # override the default output from pydantic by calling `to_dict()` of each item in tags (list) + _items = [] + if self.tags: + for _item in self.tags: + if _item: + _items.append(_item.to_dict()) + _dict['tags'] = _items # override the default output from pydantic by calling `to_dict()` of each item in shared_with_accounts (list) _items = [] if self.shared_with_accounts: @@ -181,6 +196,13 @@ class HttpServerInstantTest(BaseModel): # override the default output from pydantic by calling `to_dict()` of o_auth if self.o_auth: _dict['oAuth'] = self.o_auth.to_dict() + # override the default output from pydantic by calling `to_dict()` of each item in vault_credentials (list) + _items = [] + if self.vault_credentials: + for _item in self.vault_credentials: + if _item: + _items.append(_item.to_dict()) + _dict['vaultCredentials'] = _items return _dict @classmethod @@ -205,6 +227,7 @@ class HttpServerInstantTest(BaseModel): "type": obj.get("type"), "_links": TestLinks.from_dict(obj["_links"]) if obj.get("_links") is not None else None, "labels": [TestLabel.from_dict(_item) for _item in obj["labels"]] if obj.get("labels") is not None else None, + "tags": [TestTag.from_dict(_item) for _item in obj["tags"]] if obj.get("tags") is not None else None, "sharedWithAccounts": [SharedWithAccount.from_dict(_item) for _item in obj["sharedWithAccounts"]] if obj.get("sharedWithAccounts") is not None else None, "authType": obj.get("authType"), "agentInterfaces": AgentInterfaces.from_dict(obj["agentInterfaces"]) if obj.get("agentInterfaces") is not None else None, @@ -241,8 +264,10 @@ class HttpServerInstantTest(BaseModel): "overrideAgentProxy": obj.get("overrideAgentProxy") if obj.get("overrideAgentProxy") is not None else False, "overrideProxyId": obj.get("overrideProxyId"), "collectProxyNetworkData": obj.get("collectProxyNetworkData") if obj.get("collectProxyNetworkData") is not None else False, + "vaultCredentials": [TestVaultCredential.from_dict(_item) for _item in obj["vaultCredentials"]] if obj.get("vaultCredentials") is not None else None, "headers": obj.get("headers"), "randomizedStartTime": obj.get("randomizedStartTime") if obj.get("randomizedStartTime") is not None else False, + "requestMethod": obj.get("requestMethod"), "postBody": obj.get("postBody"), "ipv6Policy": obj.get("ipv6Policy") }) diff --git a/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/http_server_instant_test_request.py b/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/http_server_instant_test_request.py index 60c111d0..fe25eaa4 100644 --- a/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/http_server_instant_test_request.py +++ b/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/http_server_instant_test_request.py @@ -22,6 +22,7 @@ from typing import Any, ClassVar, Dict, List, Optional from typing_extensions import Annotated from thousandeyes_sdk.instant_tests.models.agent_interfaces import AgentInterfaces from thousandeyes_sdk.instant_tests.models.o_auth import OAuth +from thousandeyes_sdk.instant_tests.models.request_method import RequestMethod from thousandeyes_sdk.instant_tests.models.test_agent import TestAgent from thousandeyes_sdk.instant_tests.models.test_auth_type import TestAuthType from thousandeyes_sdk.instant_tests.models.test_custom_headers import TestCustomHeaders @@ -31,6 +32,7 @@ from thousandeyes_sdk.instant_tests.models.test_path_trace_mode import TestPathT from thousandeyes_sdk.instant_tests.models.test_probe_mode import TestProbeMode from thousandeyes_sdk.instant_tests.models.test_protocol import TestProtocol from thousandeyes_sdk.instant_tests.models.test_ssl_version_id import TestSslVersionId +from thousandeyes_sdk.instant_tests.models.test_vault_credential import TestVaultCredential from typing import Optional, Set from typing_extensions import Self @@ -49,8 +51,6 @@ class HttpServerInstantTestRequest(BaseModel): test_name: Optional[StrictStr] = Field(default=None, description="The name of the test. Test name must be unique.", alias="testName") type: Optional[StrictStr] = None links: Optional[TestLinks] = Field(default=None, alias="_links") - labels: Optional[List[StrictStr]] = Field(default=None, description="A list of test label identifiers (get `labelId` from `/labels` endpoint).") - shared_with_accounts: Optional[List[StrictStr]] = Field(default=None, description="A list of account group identifiers that the test is shared with (get `aid` from `/account-groups` endpoint).", alias="sharedWithAccounts") auth_type: Optional[TestAuthType] = Field(default=None, alias="authType") agent_interfaces: Optional[AgentInterfaces] = Field(default=None, alias="agentInterfaces") bandwidth_measurements: Optional[StrictBool] = Field(default=None, description="Set to `true` to enable bandwidth measurements, only applies to Enterprise agents assigned to the test.", alias="bandwidthMeasurements") @@ -86,13 +86,17 @@ class HttpServerInstantTestRequest(BaseModel): override_agent_proxy: Optional[StrictBool] = Field(default=False, description="Flag indicating if a proxy other than the default should be used. To override the default proxy for agents, set to `true` and specify a value for `overrideProxyId`.", alias="overrideAgentProxy") override_proxy_id: Optional[StrictStr] = Field(default=None, description="ID of the proxy to be used if the default proxy is overridden.", alias="overrideProxyId") collect_proxy_network_data: Optional[StrictBool] = Field(default=False, description="Indicates whether network data to the proxy should be collected.", alias="collectProxyNetworkData") + vault_credentials: Optional[List[TestVaultCredential]] = Field(default=None, description="List of credential IDs that are stored in an external vault.", alias="vaultCredentials") headers: Optional[List[StrictStr]] = Field(default=None, description="HTTP request headers used.") randomized_start_time: Optional[StrictBool] = Field(default=False, description="Indicates whether agents should randomize the start time in each test round.", alias="randomizedStartTime") - post_body: Optional[StrictStr] = Field(default=None, description="Enter the body for the HTTP POST request in this field. No special escaping is necessary. If the post body is provided with content, the `requestMethod` is automatically set to POST.", alias="postBody") + request_method: Optional[RequestMethod] = Field(default=None, alias="requestMethod") + post_body: Optional[StrictStr] = Field(default=None, description="Enter the body for the HTTP POST request in this field. No special escaping is required. If content is provided and `requestMethod` is not specified, `requestMethod` is automatically set to `post`.", alias="postBody") ipv6_policy: Optional[TestIpv6Policy] = Field(default=None, alias="ipv6Policy") + labels: Optional[List[StrictStr]] = Field(default=None, description="A list of test label identifiers (get `labelId` from `/labels` endpoint).") tags: Optional[List[StrictStr]] = Field(default=None, description="A list of test tag identifiers (get `id` from `/tags` endpoint).") + shared_with_accounts: Optional[List[StrictStr]] = Field(default=None, description="A list of account group identifiers that the test is shared with (get `aid` from `/account-groups` endpoint).", alias="sharedWithAccounts") agents: List[TestAgent] = Field(description="A list of objects with `agentId` (required) and `sourceIpAddress` (optional).") - __properties: ClassVar[List[str]] = ["createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "sharedWithAccounts", "authType", "agentInterfaces", "bandwidthMeasurements", "clientCertificate", "contentRegex", "customHeaders", "desiredStatusCode", "distributedTracing", "downloadLimit", "dnsOverride", "httpTargetTime", "httpTimeLimit", "httpVersion", "includeHeaders", "mtuMeasurements", "networkMeasurements", "numPathTraces", "oAuth", "password", "pathTraceMode", "probeMode", "protocol", "sslVersion", "sslVersionId", "url", "useNtlm", "userAgent", "username", "verifyCertificate", "allowUnsafeLegacyRenegotiation", "followRedirects", "fixedPacketRate", "overrideAgentProxy", "overrideProxyId", "collectProxyNetworkData", "headers", "randomizedStartTime", "postBody", "ipv6Policy", "tags", "agents"] + __properties: ClassVar[List[str]] = ["createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "authType", "agentInterfaces", "bandwidthMeasurements", "clientCertificate", "contentRegex", "customHeaders", "desiredStatusCode", "distributedTracing", "downloadLimit", "dnsOverride", "httpTargetTime", "httpTimeLimit", "httpVersion", "includeHeaders", "mtuMeasurements", "networkMeasurements", "numPathTraces", "oAuth", "password", "pathTraceMode", "probeMode", "protocol", "sslVersion", "sslVersionId", "url", "useNtlm", "userAgent", "username", "verifyCertificate", "allowUnsafeLegacyRenegotiation", "followRedirects", "fixedPacketRate", "overrideAgentProxy", "overrideProxyId", "collectProxyNetworkData", "vaultCredentials", "headers", "randomizedStartTime", "requestMethod", "postBody", "ipv6Policy", "labels", "tags", "sharedWithAccounts", "agents"] model_config = ConfigDict( populate_by_name=True, @@ -164,6 +168,13 @@ class HttpServerInstantTestRequest(BaseModel): # override the default output from pydantic by calling `to_dict()` of o_auth if self.o_auth: _dict['oAuth'] = self.o_auth.to_dict() + # override the default output from pydantic by calling `to_dict()` of each item in vault_credentials (list) + _items = [] + if self.vault_credentials: + for _item in self.vault_credentials: + if _item: + _items.append(_item.to_dict()) + _dict['vaultCredentials'] = _items # override the default output from pydantic by calling `to_dict()` of each item in agents (list) _items = [] if self.agents: @@ -194,8 +205,6 @@ class HttpServerInstantTestRequest(BaseModel): "testName": obj.get("testName"), "type": obj.get("type"), "_links": TestLinks.from_dict(obj["_links"]) if obj.get("_links") is not None else None, - "labels": obj.get("labels"), - "sharedWithAccounts": obj.get("sharedWithAccounts"), "authType": obj.get("authType"), "agentInterfaces": AgentInterfaces.from_dict(obj["agentInterfaces"]) if obj.get("agentInterfaces") is not None else None, "bandwidthMeasurements": obj.get("bandwidthMeasurements"), @@ -231,11 +240,15 @@ class HttpServerInstantTestRequest(BaseModel): "overrideAgentProxy": obj.get("overrideAgentProxy") if obj.get("overrideAgentProxy") is not None else False, "overrideProxyId": obj.get("overrideProxyId"), "collectProxyNetworkData": obj.get("collectProxyNetworkData") if obj.get("collectProxyNetworkData") is not None else False, + "vaultCredentials": [TestVaultCredential.from_dict(_item) for _item in obj["vaultCredentials"]] if obj.get("vaultCredentials") is not None else None, "headers": obj.get("headers"), "randomizedStartTime": obj.get("randomizedStartTime") if obj.get("randomizedStartTime") is not None else False, + "requestMethod": obj.get("requestMethod"), "postBody": obj.get("postBody"), "ipv6Policy": obj.get("ipv6Policy"), + "labels": obj.get("labels"), "tags": obj.get("tags"), + "sharedWithAccounts": obj.get("sharedWithAccounts"), "agents": [TestAgent.from_dict(_item) for _item in obj["agents"]] if obj.get("agents") is not None else None }) return _obj diff --git a/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/http_server_instant_test_response.py b/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/http_server_instant_test_response.py index 259c9259..99b5c8f9 100644 --- a/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/http_server_instant_test_response.py +++ b/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/http_server_instant_test_response.py @@ -23,6 +23,7 @@ from typing_extensions import Annotated from thousandeyes_sdk.instant_tests.models.agent_interfaces import AgentInterfaces from thousandeyes_sdk.instant_tests.models.agent_response import AgentResponse from thousandeyes_sdk.instant_tests.models.o_auth import OAuth +from thousandeyes_sdk.instant_tests.models.request_method import RequestMethod from thousandeyes_sdk.instant_tests.models.shared_with_account import SharedWithAccount from thousandeyes_sdk.instant_tests.models.test_auth_type import TestAuthType from thousandeyes_sdk.instant_tests.models.test_custom_headers import TestCustomHeaders @@ -33,6 +34,8 @@ from thousandeyes_sdk.instant_tests.models.test_path_trace_mode import TestPathT from thousandeyes_sdk.instant_tests.models.test_probe_mode import TestProbeMode from thousandeyes_sdk.instant_tests.models.test_protocol import TestProtocol from thousandeyes_sdk.instant_tests.models.test_ssl_version_id import TestSslVersionId +from thousandeyes_sdk.instant_tests.models.test_tag import TestTag +from thousandeyes_sdk.instant_tests.models.test_vault_credential import TestVaultCredential from typing import Optional, Set from typing_extensions import Self @@ -52,6 +55,7 @@ class HttpServerInstantTestResponse(BaseModel): type: Optional[StrictStr] = None links: Optional[TestLinks] = Field(default=None, alias="_links") labels: Optional[List[TestLabel]] = Field(default=None, description="Labels to which the test is assigned. This field is not returned for Instant Tests.") + tags: Optional[List[TestTag]] = Field(default=None, description="Tags assigned to the test. Returned only when `expand=tag` is specified. This field is not returned for Instant Tests. For more information, see `/tags`.") shared_with_accounts: Optional[List[SharedWithAccount]] = Field(default=None, alias="sharedWithAccounts") auth_type: Optional[TestAuthType] = Field(default=None, alias="authType") agent_interfaces: Optional[AgentInterfaces] = Field(default=None, alias="agentInterfaces") @@ -88,12 +92,14 @@ class HttpServerInstantTestResponse(BaseModel): override_agent_proxy: Optional[StrictBool] = Field(default=False, description="Flag indicating if a proxy other than the default should be used. To override the default proxy for agents, set to `true` and specify a value for `overrideProxyId`.", alias="overrideAgentProxy") override_proxy_id: Optional[StrictStr] = Field(default=None, description="ID of the proxy to be used if the default proxy is overridden.", alias="overrideProxyId") collect_proxy_network_data: Optional[StrictBool] = Field(default=False, description="Indicates whether network data to the proxy should be collected.", alias="collectProxyNetworkData") + vault_credentials: Optional[List[TestVaultCredential]] = Field(default=None, description="List of credential IDs that are stored in an external vault.", alias="vaultCredentials") headers: Optional[List[StrictStr]] = Field(default=None, description="HTTP request headers used.") randomized_start_time: Optional[StrictBool] = Field(default=False, description="Indicates whether agents should randomize the start time in each test round.", alias="randomizedStartTime") - post_body: Optional[StrictStr] = Field(default=None, description="Enter the body for the HTTP POST request in this field. No special escaping is necessary. If the post body is provided with content, the `requestMethod` is automatically set to POST.", alias="postBody") + request_method: Optional[RequestMethod] = Field(default=None, alias="requestMethod") + post_body: Optional[StrictStr] = Field(default=None, description="Enter the body for the HTTP POST request in this field. No special escaping is required. If content is provided and `requestMethod` is not specified, `requestMethod` is automatically set to `post`.", alias="postBody") ipv6_policy: Optional[TestIpv6Policy] = Field(default=None, alias="ipv6Policy") agents: Optional[List[AgentResponse]] = Field(default=None, description="Contains list of agents.") - __properties: ClassVar[List[str]] = ["createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "sharedWithAccounts", "authType", "agentInterfaces", "bandwidthMeasurements", "clientCertificate", "contentRegex", "customHeaders", "desiredStatusCode", "distributedTracing", "downloadLimit", "dnsOverride", "httpTargetTime", "httpTimeLimit", "httpVersion", "includeHeaders", "mtuMeasurements", "networkMeasurements", "numPathTraces", "oAuth", "password", "pathTraceMode", "probeMode", "protocol", "sslVersion", "sslVersionId", "url", "useNtlm", "userAgent", "username", "verifyCertificate", "allowUnsafeLegacyRenegotiation", "followRedirects", "fixedPacketRate", "overrideAgentProxy", "overrideProxyId", "collectProxyNetworkData", "headers", "randomizedStartTime", "postBody", "ipv6Policy", "agents"] + __properties: ClassVar[List[str]] = ["createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "tags", "sharedWithAccounts", "authType", "agentInterfaces", "bandwidthMeasurements", "clientCertificate", "contentRegex", "customHeaders", "desiredStatusCode", "distributedTracing", "downloadLimit", "dnsOverride", "httpTargetTime", "httpTimeLimit", "httpVersion", "includeHeaders", "mtuMeasurements", "networkMeasurements", "numPathTraces", "oAuth", "password", "pathTraceMode", "probeMode", "protocol", "sslVersion", "sslVersionId", "url", "useNtlm", "userAgent", "username", "verifyCertificate", "allowUnsafeLegacyRenegotiation", "followRedirects", "fixedPacketRate", "overrideAgentProxy", "overrideProxyId", "collectProxyNetworkData", "vaultCredentials", "headers", "randomizedStartTime", "requestMethod", "postBody", "ipv6Policy", "agents"] model_config = ConfigDict( populate_by_name=True, @@ -137,6 +143,7 @@ class HttpServerInstantTestResponse(BaseModel): * 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([ "created_by", @@ -148,6 +155,7 @@ class HttpServerInstantTestResponse(BaseModel): "test_id", "type", "labels", + "tags", "shared_with_accounts", "ssl_version", ]) @@ -167,6 +175,13 @@ class HttpServerInstantTestResponse(BaseModel): if _item: _items.append(_item.to_dict()) _dict['labels'] = _items + # override the default output from pydantic by calling `to_dict()` of each item in tags (list) + _items = [] + if self.tags: + for _item in self.tags: + if _item: + _items.append(_item.to_dict()) + _dict['tags'] = _items # override the default output from pydantic by calling `to_dict()` of each item in shared_with_accounts (list) _items = [] if self.shared_with_accounts: @@ -183,6 +198,13 @@ class HttpServerInstantTestResponse(BaseModel): # override the default output from pydantic by calling `to_dict()` of o_auth if self.o_auth: _dict['oAuth'] = self.o_auth.to_dict() + # override the default output from pydantic by calling `to_dict()` of each item in vault_credentials (list) + _items = [] + if self.vault_credentials: + for _item in self.vault_credentials: + if _item: + _items.append(_item.to_dict()) + _dict['vaultCredentials'] = _items # override the default output from pydantic by calling `to_dict()` of each item in agents (list) _items = [] if self.agents: @@ -214,6 +236,7 @@ class HttpServerInstantTestResponse(BaseModel): "type": obj.get("type"), "_links": TestLinks.from_dict(obj["_links"]) if obj.get("_links") is not None else None, "labels": [TestLabel.from_dict(_item) for _item in obj["labels"]] if obj.get("labels") is not None else None, + "tags": [TestTag.from_dict(_item) for _item in obj["tags"]] if obj.get("tags") is not None else None, "sharedWithAccounts": [SharedWithAccount.from_dict(_item) for _item in obj["sharedWithAccounts"]] if obj.get("sharedWithAccounts") is not None else None, "authType": obj.get("authType"), "agentInterfaces": AgentInterfaces.from_dict(obj["agentInterfaces"]) if obj.get("agentInterfaces") is not None else None, @@ -250,8 +273,10 @@ class HttpServerInstantTestResponse(BaseModel): "overrideAgentProxy": obj.get("overrideAgentProxy") if obj.get("overrideAgentProxy") is not None else False, "overrideProxyId": obj.get("overrideProxyId"), "collectProxyNetworkData": obj.get("collectProxyNetworkData") if obj.get("collectProxyNetworkData") is not None else False, + "vaultCredentials": [TestVaultCredential.from_dict(_item) for _item in obj["vaultCredentials"]] if obj.get("vaultCredentials") is not None else None, "headers": obj.get("headers"), "randomizedStartTime": obj.get("randomizedStartTime") if obj.get("randomizedStartTime") is not None else False, + "requestMethod": obj.get("requestMethod"), "postBody": obj.get("postBody"), "ipv6Policy": obj.get("ipv6Policy"), "agents": [AgentResponse.from_dict(_item) for _item in obj["agents"]] if obj.get("agents") is not None else None diff --git a/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/http_server_properties.py b/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/http_server_properties.py index c14adf84..70b97baa 100644 --- a/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/http_server_properties.py +++ b/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/http_server_properties.py @@ -21,6 +21,7 @@ from typing import Any, ClassVar, Dict, List, Optional from typing_extensions import Annotated from thousandeyes_sdk.instant_tests.models.agent_interfaces import AgentInterfaces from thousandeyes_sdk.instant_tests.models.o_auth import OAuth +from thousandeyes_sdk.instant_tests.models.request_method import RequestMethod from thousandeyes_sdk.instant_tests.models.test_auth_type import TestAuthType from thousandeyes_sdk.instant_tests.models.test_custom_headers import TestCustomHeaders from thousandeyes_sdk.instant_tests.models.test_ipv6_policy import TestIpv6Policy @@ -28,6 +29,7 @@ from thousandeyes_sdk.instant_tests.models.test_path_trace_mode import TestPathT from thousandeyes_sdk.instant_tests.models.test_probe_mode import TestProbeMode from thousandeyes_sdk.instant_tests.models.test_protocol import TestProtocol from thousandeyes_sdk.instant_tests.models.test_ssl_version_id import TestSslVersionId +from thousandeyes_sdk.instant_tests.models.test_vault_credential import TestVaultCredential from typing import Optional, Set from typing_extensions import Self @@ -70,12 +72,14 @@ class HttpServerProperties(BaseModel): override_agent_proxy: Optional[StrictBool] = Field(default=False, description="Flag indicating if a proxy other than the default should be used. To override the default proxy for agents, set to `true` and specify a value for `overrideProxyId`.", alias="overrideAgentProxy") override_proxy_id: Optional[StrictStr] = Field(default=None, description="ID of the proxy to be used if the default proxy is overridden.", alias="overrideProxyId") collect_proxy_network_data: Optional[StrictBool] = Field(default=False, description="Indicates whether network data to the proxy should be collected.", alias="collectProxyNetworkData") + vault_credentials: Optional[List[TestVaultCredential]] = Field(default=None, description="List of credential IDs that are stored in an external vault.", alias="vaultCredentials") headers: Optional[List[StrictStr]] = Field(default=None, description="HTTP request headers used.") randomized_start_time: Optional[StrictBool] = Field(default=False, description="Indicates whether agents should randomize the start time in each test round.", alias="randomizedStartTime") - post_body: Optional[StrictStr] = Field(default=None, description="Enter the body for the HTTP POST request in this field. No special escaping is necessary. If the post body is provided with content, the `requestMethod` is automatically set to POST.", alias="postBody") + request_method: Optional[RequestMethod] = Field(default=None, alias="requestMethod") + post_body: Optional[StrictStr] = Field(default=None, description="Enter the body for the HTTP POST request in this field. No special escaping is required. If content is provided and `requestMethod` is not specified, `requestMethod` is automatically set to `post`.", alias="postBody") ipv6_policy: Optional[TestIpv6Policy] = Field(default=None, alias="ipv6Policy") type: Optional[StrictStr] = None - __properties: ClassVar[List[str]] = ["authType", "agentInterfaces", "bandwidthMeasurements", "clientCertificate", "contentRegex", "customHeaders", "desiredStatusCode", "distributedTracing", "downloadLimit", "dnsOverride", "httpTargetTime", "httpTimeLimit", "httpVersion", "includeHeaders", "mtuMeasurements", "networkMeasurements", "numPathTraces", "oAuth", "password", "pathTraceMode", "probeMode", "protocol", "sslVersion", "sslVersionId", "url", "useNtlm", "userAgent", "username", "verifyCertificate", "allowUnsafeLegacyRenegotiation", "followRedirects", "fixedPacketRate", "overrideAgentProxy", "overrideProxyId", "collectProxyNetworkData", "headers", "randomizedStartTime", "postBody", "ipv6Policy", "type"] + __properties: ClassVar[List[str]] = ["authType", "agentInterfaces", "bandwidthMeasurements", "clientCertificate", "contentRegex", "customHeaders", "desiredStatusCode", "distributedTracing", "downloadLimit", "dnsOverride", "httpTargetTime", "httpTimeLimit", "httpVersion", "includeHeaders", "mtuMeasurements", "networkMeasurements", "numPathTraces", "oAuth", "password", "pathTraceMode", "probeMode", "protocol", "sslVersion", "sslVersionId", "url", "useNtlm", "userAgent", "username", "verifyCertificate", "allowUnsafeLegacyRenegotiation", "followRedirects", "fixedPacketRate", "overrideAgentProxy", "overrideProxyId", "collectProxyNetworkData", "vaultCredentials", "headers", "randomizedStartTime", "requestMethod", "postBody", "ipv6Policy", "type"] model_config = ConfigDict( populate_by_name=True, @@ -130,6 +134,13 @@ class HttpServerProperties(BaseModel): # override the default output from pydantic by calling `to_dict()` of o_auth if self.o_auth: _dict['oAuth'] = self.o_auth.to_dict() + # override the default output from pydantic by calling `to_dict()` of each item in vault_credentials (list) + _items = [] + if self.vault_credentials: + for _item in self.vault_credentials: + if _item: + _items.append(_item.to_dict()) + _dict['vaultCredentials'] = _items return _dict @classmethod @@ -177,8 +188,10 @@ class HttpServerProperties(BaseModel): "overrideAgentProxy": obj.get("overrideAgentProxy") if obj.get("overrideAgentProxy") is not None else False, "overrideProxyId": obj.get("overrideProxyId"), "collectProxyNetworkData": obj.get("collectProxyNetworkData") if obj.get("collectProxyNetworkData") is not None else False, + "vaultCredentials": [TestVaultCredential.from_dict(_item) for _item in obj["vaultCredentials"]] if obj.get("vaultCredentials") is not None else None, "headers": obj.get("headers"), "randomizedStartTime": obj.get("randomizedStartTime") if obj.get("randomizedStartTime") is not None else False, + "requestMethod": obj.get("requestMethod"), "postBody": obj.get("postBody"), "ipv6Policy": obj.get("ipv6Policy"), "type": obj.get("type") diff --git a/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/instant_test.py b/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/instant_test.py index 876c8c27..0d58020f 100644 --- a/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/instant_test.py +++ b/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/instant_test.py @@ -22,6 +22,7 @@ from typing import Any, ClassVar, Dict, List, Optional from thousandeyes_sdk.instant_tests.models.shared_with_account import SharedWithAccount from thousandeyes_sdk.instant_tests.models.test_label import TestLabel from thousandeyes_sdk.instant_tests.models.test_links import TestLinks +from thousandeyes_sdk.instant_tests.models.test_tag import TestTag from thousandeyes_sdk.instant_tests.models.test_type import TestType from typing import Optional, Set from typing_extensions import Self @@ -42,8 +43,9 @@ class InstantTest(BaseModel): type: Optional[TestType] = None links: Optional[TestLinks] = Field(default=None, alias="_links") labels: Optional[List[TestLabel]] = Field(default=None, description="Labels to which the test is assigned. This field is not returned for Instant Tests.") + tags: Optional[List[TestTag]] = Field(default=None, description="Tags assigned to the test. Returned only when `expand=tag` is specified. This field is not returned for Instant Tests. For more information, see `/tags`.") shared_with_accounts: Optional[List[SharedWithAccount]] = Field(default=None, alias="sharedWithAccounts") - __properties: ClassVar[List[str]] = ["createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "sharedWithAccounts"] + __properties: ClassVar[List[str]] = ["createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "tags", "sharedWithAccounts"] model_config = ConfigDict( populate_by_name=True, @@ -85,6 +87,7 @@ class InstantTest(BaseModel): * 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([ "created_by", @@ -95,6 +98,7 @@ class InstantTest(BaseModel): "saved_event", "test_id", "labels", + "tags", "shared_with_accounts", ]) @@ -113,6 +117,13 @@ class InstantTest(BaseModel): if _item: _items.append(_item.to_dict()) _dict['labels'] = _items + # override the default output from pydantic by calling `to_dict()` of each item in tags (list) + _items = [] + if self.tags: + for _item in self.tags: + if _item: + _items.append(_item.to_dict()) + _dict['tags'] = _items # override the default output from pydantic by calling `to_dict()` of each item in shared_with_accounts (list) _items = [] if self.shared_with_accounts: @@ -144,6 +155,7 @@ class InstantTest(BaseModel): "type": obj.get("type"), "_links": TestLinks.from_dict(obj["_links"]) if obj.get("_links") is not None else None, "labels": [TestLabel.from_dict(_item) for _item in obj["labels"]] if obj.get("labels") is not None else None, + "tags": [TestTag.from_dict(_item) for _item in obj["tags"]] if obj.get("tags") is not None else None, "sharedWithAccounts": [SharedWithAccount.from_dict(_item) for _item in obj["sharedWithAccounts"]] if obj.get("sharedWithAccounts") is not None else None }) return _obj diff --git a/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/network_provider_info.py b/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/network_provider_info.py new file mode 100644 index 00000000..79db916f --- /dev/null +++ b/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/network_provider_info.py @@ -0,0 +1,96 @@ +# coding: utf-8 + +""" + Instant Tests API + + The Instant Tests API operations lets you create and run new instant tests. You will need to be an Account Admin. The response does not include the immediate test results. Use the Test Results endpoints to get test results after creating and executing an instant test. You can find the URLs for these endpoints in the _links section of the test definition that is returned when you create the instant test. + + 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 thousandeyes_sdk.instant_tests.models.network_provider_type import NetworkProviderType +from typing import Optional, Set +from typing_extensions import Self + +class NetworkProviderInfo(BaseModel): + """ + Information about the network provider that owns the agent's public IP prefix. + """ # noqa: E501 + asn: Optional[StrictInt] = Field(default=None, description="Autonomous System Number (ASN) announcing the agent's public IP prefix.") + name: Optional[StrictStr] = Field(default=None, description="Name of the network provider organization.") + type: Optional[NetworkProviderType] = None + __properties: ClassVar[List[str]] = ["asn", "name", "type"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + extra="allow", + ) + + + 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 self.model_dump_json(by_alias=True, exclude_unset=True, exclude_none=True) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of NetworkProviderInfo 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. + * OpenAPI `readOnly` fields are excluded. + * OpenAPI `readOnly` fields are excluded. + """ + excluded_fields: Set[str] = set([ + "asn", + "name", + ]) + + _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 NetworkProviderInfo from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "asn": obj.get("asn"), + "name": obj.get("name"), + "type": obj.get("type") + }) + return _obj + + diff --git a/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/network_provider_type.py b/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/network_provider_type.py new file mode 100644 index 00000000..575d327c --- /dev/null +++ b/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/network_provider_type.py @@ -0,0 +1,44 @@ +# coding: utf-8 + +""" + Instant Tests API + + The Instant Tests API operations lets you create and run new instant tests. You will need to be an Account Admin. The response does not include the immediate test results. Use the Test Results endpoints to get test results after creating and executing an instant test. You can find the URLs for these endpoints in the _links section of the test definition that is returned when you create the instant test. + + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import json +from enum import Enum +from typing_extensions import Self + + +class NetworkProviderType(str, Enum): + """ + Classification of the agent's network provider. + """ + + """ + allowed enum values + """ + UNKNOWN = 'unknown' + ISP = 'isp' + CDN = 'cdn' + STUB = 'stub' + CLOUD_MINUS_PROVIDER = 'cloud-provider' + CARRIER = 'carrier' + + @classmethod + def from_json(cls, json_str: str) -> Self: + """Create an instance of NetworkProviderType from a JSON string""" + return cls(json.loads(json_str)) + + @classmethod + def _missing_(cls, value): + """Handle unknown values""" + return cls.UNKNOWN + diff --git a/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/o_auth.py b/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/o_auth.py index 02e31c25..eed19de1 100644 --- a/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/o_auth.py +++ b/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/o_auth.py @@ -19,7 +19,7 @@ import json from pydantic import BaseModel, ConfigDict, Field, StrictStr from typing import Any, ClassVar, Dict, List, Optional from thousandeyes_sdk.instant_tests.models.o_auth_auth_type import OAuthAuthType -from thousandeyes_sdk.instant_tests.models.o_auth_request_method import OAuthRequestMethod +from thousandeyes_sdk.instant_tests.models.request_method import RequestMethod from typing import Optional, Set from typing_extensions import Self @@ -28,7 +28,7 @@ class OAuth(BaseModel): Use this only if you want to use OAuth as the authentication mechanism. """ # noqa: E501 test_url: Optional[StrictStr] = Field(default=None, description="Target for the test.", alias="testUrl") - request_method: Optional[OAuthRequestMethod] = Field(default=None, alias="requestMethod") + request_method: Optional[RequestMethod] = Field(default=None, alias="requestMethod") post_body: Optional[StrictStr] = Field(default=None, description="Enter the OAuth body for the HTTP POST request in this field when using OAuth as the authentication mechanism. No special escaping is required. The value is saved only when `requestMethod` is set to `post`.", alias="postBody") headers: Optional[StrictStr] = Field(default=None, description="Request headers used for OAuth.") auth_type: Optional[OAuthAuthType] = Field(default=None, alias="authType") diff --git a/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/page_load_instant_test.py b/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/page_load_instant_test.py index cbc1d27b..1cabf1a9 100644 --- a/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/page_load_instant_test.py +++ b/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/page_load_instant_test.py @@ -32,6 +32,8 @@ from thousandeyes_sdk.instant_tests.models.test_path_trace_mode import TestPathT from thousandeyes_sdk.instant_tests.models.test_probe_mode import TestProbeMode from thousandeyes_sdk.instant_tests.models.test_protocol import TestProtocol from thousandeyes_sdk.instant_tests.models.test_ssl_version_id import TestSslVersionId +from thousandeyes_sdk.instant_tests.models.test_tag import TestTag +from thousandeyes_sdk.instant_tests.models.test_vault_credential import TestVaultCredential from typing import Optional, Set from typing_extensions import Self @@ -51,6 +53,7 @@ class PageLoadInstantTest(BaseModel): type: Optional[StrictStr] = None links: Optional[TestLinks] = Field(default=None, alias="_links") labels: Optional[List[TestLabel]] = Field(default=None, description="Labels to which the test is assigned. This field is not returned for Instant Tests.") + tags: Optional[List[TestTag]] = Field(default=None, description="Tags assigned to the test. Returned only when `expand=tag` is specified. This field is not returned for Instant Tests. For more information, see `/tags`.") shared_with_accounts: Optional[List[SharedWithAccount]] = Field(default=None, alias="sharedWithAccounts") auth_type: Optional[TestAuthType] = Field(default=None, alias="authType") agent_interfaces: Optional[AgentInterfaces] = Field(default=None, alias="agentInterfaces") @@ -87,6 +90,7 @@ class PageLoadInstantTest(BaseModel): override_agent_proxy: Optional[StrictBool] = Field(default=False, description="Flag indicating if a proxy other than the default should be used. To override the default proxy for agents, set to `true` and specify a value for `overrideProxyId`.", alias="overrideAgentProxy") override_proxy_id: Optional[StrictStr] = Field(default=None, description="ID of the proxy to be used if the default proxy is overridden.", alias="overrideProxyId") collect_proxy_network_data: Optional[StrictBool] = Field(default=False, description="Indicates whether network data to the proxy should be collected.", alias="collectProxyNetworkData") + vault_credentials: Optional[List[TestVaultCredential]] = Field(default=None, description="List of credential IDs that are stored in an external vault.", alias="vaultCredentials") emulated_device_id: Optional[StrictStr] = Field(default=None, description="ID of the emulated device, if one was given when the test was created.", alias="emulatedDeviceId") page_load_target_time: Optional[Annotated[int, Field(le=60, strict=True, ge=1)]] = Field(default=None, description="Target time for page load completion, specified in seconds and cannot exceed the `pageLoadTimeLimit`.", alias="pageLoadTargetTime") page_load_time_limit: Optional[Annotated[int, Field(le=60, strict=True, ge=5)]] = Field(default=10, description="Page load time limit. Must be larger than the `httpTimeLimit`.", alias="pageLoadTimeLimit") @@ -100,7 +104,7 @@ class PageLoadInstantTest(BaseModel): page_loading_strategy: Optional[TestPageLoadingStrategy] = Field(default=None, alias="pageLoadingStrategy") randomized_start_time: Optional[StrictBool] = Field(default=False, description="Indicates whether agents should randomize the start time in each test round.", alias="randomizedStartTime") identify_agent_traffic_with_user_agent: Optional[StrictBool] = Field(default=False, description="Determines how agent traffic is identified: * `false`: Adds the `x-thousandeyes-agent: yes` header. * `true`: Appends `(ThousandEyes Agent)` to the `user-agent` header. For more information, see [Notes on Agent ID Strategy](https://docs.thousandeyes.com/product-documentation/browser-synthetics/test-settings-page-load-transaction#notes-on-agent-id-strategy). ", alias="identifyAgentTrafficWithUserAgent") - __properties: ClassVar[List[str]] = ["createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "sharedWithAccounts", "authType", "agentInterfaces", "bandwidthMeasurements", "clientCertificate", "contentRegex", "customHeaders", "desiredStatusCode", "distributedTracing", "downloadLimit", "dnsOverride", "httpTargetTime", "httpTimeLimit", "httpVersion", "includeHeaders", "mtuMeasurements", "networkMeasurements", "numPathTraces", "oAuth", "password", "pathTraceMode", "probeMode", "protocol", "sslVersion", "sslVersionId", "url", "useNtlm", "userAgent", "username", "verifyCertificate", "allowUnsafeLegacyRenegotiation", "followRedirects", "fixedPacketRate", "overrideAgentProxy", "overrideProxyId", "collectProxyNetworkData", "emulatedDeviceId", "pageLoadTargetTime", "pageLoadTimeLimit", "blockDomains", "disableScreenshot", "allowMicAndCamera", "allowGeolocation", "browserLanguage", "chromeOptions", "chromePolicies", "pageLoadingStrategy", "randomizedStartTime", "identifyAgentTrafficWithUserAgent"] + __properties: ClassVar[List[str]] = ["createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "tags", "sharedWithAccounts", "authType", "agentInterfaces", "bandwidthMeasurements", "clientCertificate", "contentRegex", "customHeaders", "desiredStatusCode", "distributedTracing", "downloadLimit", "dnsOverride", "httpTargetTime", "httpTimeLimit", "httpVersion", "includeHeaders", "mtuMeasurements", "networkMeasurements", "numPathTraces", "oAuth", "password", "pathTraceMode", "probeMode", "protocol", "sslVersion", "sslVersionId", "url", "useNtlm", "userAgent", "username", "verifyCertificate", "allowUnsafeLegacyRenegotiation", "followRedirects", "fixedPacketRate", "overrideAgentProxy", "overrideProxyId", "collectProxyNetworkData", "vaultCredentials", "emulatedDeviceId", "pageLoadTargetTime", "pageLoadTimeLimit", "blockDomains", "disableScreenshot", "allowMicAndCamera", "allowGeolocation", "browserLanguage", "chromeOptions", "chromePolicies", "pageLoadingStrategy", "randomizedStartTime", "identifyAgentTrafficWithUserAgent"] model_config = ConfigDict( populate_by_name=True, @@ -144,6 +148,7 @@ class PageLoadInstantTest(BaseModel): * 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([ "created_by", @@ -155,6 +160,7 @@ class PageLoadInstantTest(BaseModel): "test_id", "type", "labels", + "tags", "shared_with_accounts", "ssl_version", ]) @@ -174,6 +180,13 @@ class PageLoadInstantTest(BaseModel): if _item: _items.append(_item.to_dict()) _dict['labels'] = _items + # override the default output from pydantic by calling `to_dict()` of each item in tags (list) + _items = [] + if self.tags: + for _item in self.tags: + if _item: + _items.append(_item.to_dict()) + _dict['tags'] = _items # override the default output from pydantic by calling `to_dict()` of each item in shared_with_accounts (list) _items = [] if self.shared_with_accounts: @@ -190,6 +203,13 @@ class PageLoadInstantTest(BaseModel): # override the default output from pydantic by calling `to_dict()` of o_auth if self.o_auth: _dict['oAuth'] = self.o_auth.to_dict() + # override the default output from pydantic by calling `to_dict()` of each item in vault_credentials (list) + _items = [] + if self.vault_credentials: + for _item in self.vault_credentials: + if _item: + _items.append(_item.to_dict()) + _dict['vaultCredentials'] = _items return _dict @classmethod @@ -214,6 +234,7 @@ class PageLoadInstantTest(BaseModel): "type": obj.get("type"), "_links": TestLinks.from_dict(obj["_links"]) if obj.get("_links") is not None else None, "labels": [TestLabel.from_dict(_item) for _item in obj["labels"]] if obj.get("labels") is not None else None, + "tags": [TestTag.from_dict(_item) for _item in obj["tags"]] if obj.get("tags") is not None else None, "sharedWithAccounts": [SharedWithAccount.from_dict(_item) for _item in obj["sharedWithAccounts"]] if obj.get("sharedWithAccounts") is not None else None, "authType": obj.get("authType"), "agentInterfaces": AgentInterfaces.from_dict(obj["agentInterfaces"]) if obj.get("agentInterfaces") is not None else None, @@ -250,6 +271,7 @@ class PageLoadInstantTest(BaseModel): "overrideAgentProxy": obj.get("overrideAgentProxy") if obj.get("overrideAgentProxy") is not None else False, "overrideProxyId": obj.get("overrideProxyId"), "collectProxyNetworkData": obj.get("collectProxyNetworkData") if obj.get("collectProxyNetworkData") is not None else False, + "vaultCredentials": [TestVaultCredential.from_dict(_item) for _item in obj["vaultCredentials"]] if obj.get("vaultCredentials") is not None else None, "emulatedDeviceId": obj.get("emulatedDeviceId"), "pageLoadTargetTime": obj.get("pageLoadTargetTime"), "pageLoadTimeLimit": obj.get("pageLoadTimeLimit") if obj.get("pageLoadTimeLimit") is not None else 10, diff --git a/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/page_load_instant_test_request.py b/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/page_load_instant_test_request.py index 3822db20..6dd037d4 100644 --- a/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/page_load_instant_test_request.py +++ b/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/page_load_instant_test_request.py @@ -31,6 +31,7 @@ from thousandeyes_sdk.instant_tests.models.test_path_trace_mode import TestPathT from thousandeyes_sdk.instant_tests.models.test_probe_mode import TestProbeMode from thousandeyes_sdk.instant_tests.models.test_protocol import TestProtocol from thousandeyes_sdk.instant_tests.models.test_ssl_version_id import TestSslVersionId +from thousandeyes_sdk.instant_tests.models.test_vault_credential import TestVaultCredential from typing import Optional, Set from typing_extensions import Self @@ -49,8 +50,6 @@ class PageLoadInstantTestRequest(BaseModel): test_name: Optional[StrictStr] = Field(default=None, description="The name of the test. Test name must be unique.", alias="testName") type: Optional[StrictStr] = None links: Optional[TestLinks] = Field(default=None, alias="_links") - labels: Optional[List[StrictStr]] = Field(default=None, description="A list of test label identifiers (get `labelId` from `/labels` endpoint).") - shared_with_accounts: Optional[List[StrictStr]] = Field(default=None, description="A list of account group identifiers that the test is shared with (get `aid` from `/account-groups` endpoint).", alias="sharedWithAccounts") auth_type: Optional[TestAuthType] = Field(default=None, alias="authType") agent_interfaces: Optional[AgentInterfaces] = Field(default=None, alias="agentInterfaces") bandwidth_measurements: Optional[StrictBool] = Field(default=None, description="Set to `true` to enable bandwidth measurements, only applies to Enterprise agents assigned to the test.", alias="bandwidthMeasurements") @@ -86,6 +85,7 @@ class PageLoadInstantTestRequest(BaseModel): override_agent_proxy: Optional[StrictBool] = Field(default=False, description="Flag indicating if a proxy other than the default should be used. To override the default proxy for agents, set to `true` and specify a value for `overrideProxyId`.", alias="overrideAgentProxy") override_proxy_id: Optional[StrictStr] = Field(default=None, description="ID of the proxy to be used if the default proxy is overridden.", alias="overrideProxyId") collect_proxy_network_data: Optional[StrictBool] = Field(default=False, description="Indicates whether network data to the proxy should be collected.", alias="collectProxyNetworkData") + vault_credentials: Optional[List[TestVaultCredential]] = Field(default=None, description="List of credential IDs that are stored in an external vault.", alias="vaultCredentials") emulated_device_id: Optional[StrictStr] = Field(default=None, description="ID of the emulated device, if one was given when the test was created.", alias="emulatedDeviceId") page_load_target_time: Optional[Annotated[int, Field(le=60, strict=True, ge=1)]] = Field(default=None, description="Target time for page load completion, specified in seconds and cannot exceed the `pageLoadTimeLimit`.", alias="pageLoadTargetTime") page_load_time_limit: Optional[Annotated[int, Field(le=60, strict=True, ge=5)]] = Field(default=10, description="Page load time limit. Must be larger than the `httpTimeLimit`.", alias="pageLoadTimeLimit") @@ -99,9 +99,11 @@ class PageLoadInstantTestRequest(BaseModel): page_loading_strategy: Optional[TestPageLoadingStrategy] = Field(default=None, alias="pageLoadingStrategy") randomized_start_time: Optional[StrictBool] = Field(default=False, description="Indicates whether agents should randomize the start time in each test round.", alias="randomizedStartTime") identify_agent_traffic_with_user_agent: Optional[StrictBool] = Field(default=False, description="Determines how agent traffic is identified: * `false`: Adds the `x-thousandeyes-agent: yes` header. * `true`: Appends `(ThousandEyes Agent)` to the `user-agent` header. For more information, see [Notes on Agent ID Strategy](https://docs.thousandeyes.com/product-documentation/browser-synthetics/test-settings-page-load-transaction#notes-on-agent-id-strategy). ", alias="identifyAgentTrafficWithUserAgent") + labels: Optional[List[StrictStr]] = Field(default=None, description="A list of test label identifiers (get `labelId` from `/labels` endpoint).") tags: Optional[List[StrictStr]] = Field(default=None, description="A list of test tag identifiers (get `id` from `/tags` endpoint).") + shared_with_accounts: Optional[List[StrictStr]] = Field(default=None, description="A list of account group identifiers that the test is shared with (get `aid` from `/account-groups` endpoint).", alias="sharedWithAccounts") agents: List[TestAgent] = Field(description="A list of objects with `agentId` (required) and `sourceIpAddress` (optional).") - __properties: ClassVar[List[str]] = ["createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "sharedWithAccounts", "authType", "agentInterfaces", "bandwidthMeasurements", "clientCertificate", "contentRegex", "customHeaders", "desiredStatusCode", "distributedTracing", "downloadLimit", "dnsOverride", "httpTargetTime", "httpTimeLimit", "httpVersion", "includeHeaders", "mtuMeasurements", "networkMeasurements", "numPathTraces", "oAuth", "password", "pathTraceMode", "probeMode", "protocol", "sslVersion", "sslVersionId", "url", "useNtlm", "userAgent", "username", "verifyCertificate", "allowUnsafeLegacyRenegotiation", "followRedirects", "fixedPacketRate", "overrideAgentProxy", "overrideProxyId", "collectProxyNetworkData", "emulatedDeviceId", "pageLoadTargetTime", "pageLoadTimeLimit", "blockDomains", "disableScreenshot", "allowMicAndCamera", "allowGeolocation", "browserLanguage", "chromeOptions", "chromePolicies", "pageLoadingStrategy", "randomizedStartTime", "identifyAgentTrafficWithUserAgent", "tags", "agents"] + __properties: ClassVar[List[str]] = ["createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "authType", "agentInterfaces", "bandwidthMeasurements", "clientCertificate", "contentRegex", "customHeaders", "desiredStatusCode", "distributedTracing", "downloadLimit", "dnsOverride", "httpTargetTime", "httpTimeLimit", "httpVersion", "includeHeaders", "mtuMeasurements", "networkMeasurements", "numPathTraces", "oAuth", "password", "pathTraceMode", "probeMode", "protocol", "sslVersion", "sslVersionId", "url", "useNtlm", "userAgent", "username", "verifyCertificate", "allowUnsafeLegacyRenegotiation", "followRedirects", "fixedPacketRate", "overrideAgentProxy", "overrideProxyId", "collectProxyNetworkData", "vaultCredentials", "emulatedDeviceId", "pageLoadTargetTime", "pageLoadTimeLimit", "blockDomains", "disableScreenshot", "allowMicAndCamera", "allowGeolocation", "browserLanguage", "chromeOptions", "chromePolicies", "pageLoadingStrategy", "randomizedStartTime", "identifyAgentTrafficWithUserAgent", "labels", "tags", "sharedWithAccounts", "agents"] model_config = ConfigDict( populate_by_name=True, @@ -173,6 +175,13 @@ class PageLoadInstantTestRequest(BaseModel): # override the default output from pydantic by calling `to_dict()` of o_auth if self.o_auth: _dict['oAuth'] = self.o_auth.to_dict() + # override the default output from pydantic by calling `to_dict()` of each item in vault_credentials (list) + _items = [] + if self.vault_credentials: + for _item in self.vault_credentials: + if _item: + _items.append(_item.to_dict()) + _dict['vaultCredentials'] = _items # override the default output from pydantic by calling `to_dict()` of each item in agents (list) _items = [] if self.agents: @@ -203,8 +212,6 @@ class PageLoadInstantTestRequest(BaseModel): "testName": obj.get("testName"), "type": obj.get("type"), "_links": TestLinks.from_dict(obj["_links"]) if obj.get("_links") is not None else None, - "labels": obj.get("labels"), - "sharedWithAccounts": obj.get("sharedWithAccounts"), "authType": obj.get("authType"), "agentInterfaces": AgentInterfaces.from_dict(obj["agentInterfaces"]) if obj.get("agentInterfaces") is not None else None, "bandwidthMeasurements": obj.get("bandwidthMeasurements"), @@ -240,6 +247,7 @@ class PageLoadInstantTestRequest(BaseModel): "overrideAgentProxy": obj.get("overrideAgentProxy") if obj.get("overrideAgentProxy") is not None else False, "overrideProxyId": obj.get("overrideProxyId"), "collectProxyNetworkData": obj.get("collectProxyNetworkData") if obj.get("collectProxyNetworkData") is not None else False, + "vaultCredentials": [TestVaultCredential.from_dict(_item) for _item in obj["vaultCredentials"]] if obj.get("vaultCredentials") is not None else None, "emulatedDeviceId": obj.get("emulatedDeviceId"), "pageLoadTargetTime": obj.get("pageLoadTargetTime"), "pageLoadTimeLimit": obj.get("pageLoadTimeLimit") if obj.get("pageLoadTimeLimit") is not None else 10, @@ -253,7 +261,9 @@ class PageLoadInstantTestRequest(BaseModel): "pageLoadingStrategy": obj.get("pageLoadingStrategy"), "randomizedStartTime": obj.get("randomizedStartTime") if obj.get("randomizedStartTime") is not None else False, "identifyAgentTrafficWithUserAgent": obj.get("identifyAgentTrafficWithUserAgent") if obj.get("identifyAgentTrafficWithUserAgent") is not None else False, + "labels": obj.get("labels"), "tags": obj.get("tags"), + "sharedWithAccounts": obj.get("sharedWithAccounts"), "agents": [TestAgent.from_dict(_item) for _item in obj["agents"]] if obj.get("agents") is not None else None }) return _obj diff --git a/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/page_load_instant_test_response.py b/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/page_load_instant_test_response.py index ead00254..45eec0c2 100644 --- a/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/page_load_instant_test_response.py +++ b/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/page_load_instant_test_response.py @@ -33,6 +33,8 @@ from thousandeyes_sdk.instant_tests.models.test_path_trace_mode import TestPathT from thousandeyes_sdk.instant_tests.models.test_probe_mode import TestProbeMode from thousandeyes_sdk.instant_tests.models.test_protocol import TestProtocol from thousandeyes_sdk.instant_tests.models.test_ssl_version_id import TestSslVersionId +from thousandeyes_sdk.instant_tests.models.test_tag import TestTag +from thousandeyes_sdk.instant_tests.models.test_vault_credential import TestVaultCredential from typing import Optional, Set from typing_extensions import Self @@ -52,6 +54,7 @@ class PageLoadInstantTestResponse(BaseModel): type: Optional[StrictStr] = None links: Optional[TestLinks] = Field(default=None, alias="_links") labels: Optional[List[TestLabel]] = Field(default=None, description="Labels to which the test is assigned. This field is not returned for Instant Tests.") + tags: Optional[List[TestTag]] = Field(default=None, description="Tags assigned to the test. Returned only when `expand=tag` is specified. This field is not returned for Instant Tests. For more information, see `/tags`.") shared_with_accounts: Optional[List[SharedWithAccount]] = Field(default=None, alias="sharedWithAccounts") auth_type: Optional[TestAuthType] = Field(default=None, alias="authType") agent_interfaces: Optional[AgentInterfaces] = Field(default=None, alias="agentInterfaces") @@ -88,6 +91,7 @@ class PageLoadInstantTestResponse(BaseModel): override_agent_proxy: Optional[StrictBool] = Field(default=False, description="Flag indicating if a proxy other than the default should be used. To override the default proxy for agents, set to `true` and specify a value for `overrideProxyId`.", alias="overrideAgentProxy") override_proxy_id: Optional[StrictStr] = Field(default=None, description="ID of the proxy to be used if the default proxy is overridden.", alias="overrideProxyId") collect_proxy_network_data: Optional[StrictBool] = Field(default=False, description="Indicates whether network data to the proxy should be collected.", alias="collectProxyNetworkData") + vault_credentials: Optional[List[TestVaultCredential]] = Field(default=None, description="List of credential IDs that are stored in an external vault.", alias="vaultCredentials") emulated_device_id: Optional[StrictStr] = Field(default=None, description="ID of the emulated device, if one was given when the test was created.", alias="emulatedDeviceId") page_load_target_time: Optional[Annotated[int, Field(le=60, strict=True, ge=1)]] = Field(default=None, description="Target time for page load completion, specified in seconds and cannot exceed the `pageLoadTimeLimit`.", alias="pageLoadTargetTime") page_load_time_limit: Optional[Annotated[int, Field(le=60, strict=True, ge=5)]] = Field(default=10, description="Page load time limit. Must be larger than the `httpTimeLimit`.", alias="pageLoadTimeLimit") @@ -102,7 +106,7 @@ class PageLoadInstantTestResponse(BaseModel): randomized_start_time: Optional[StrictBool] = Field(default=False, description="Indicates whether agents should randomize the start time in each test round.", alias="randomizedStartTime") identify_agent_traffic_with_user_agent: Optional[StrictBool] = Field(default=False, description="Determines how agent traffic is identified: * `false`: Adds the `x-thousandeyes-agent: yes` header. * `true`: Appends `(ThousandEyes Agent)` to the `user-agent` header. For more information, see [Notes on Agent ID Strategy](https://docs.thousandeyes.com/product-documentation/browser-synthetics/test-settings-page-load-transaction#notes-on-agent-id-strategy). ", alias="identifyAgentTrafficWithUserAgent") agents: Optional[List[AgentResponse]] = Field(default=None, description="Contains list of agents.") - __properties: ClassVar[List[str]] = ["createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "sharedWithAccounts", "authType", "agentInterfaces", "bandwidthMeasurements", "clientCertificate", "contentRegex", "customHeaders", "desiredStatusCode", "distributedTracing", "downloadLimit", "dnsOverride", "httpTargetTime", "httpTimeLimit", "httpVersion", "includeHeaders", "mtuMeasurements", "networkMeasurements", "numPathTraces", "oAuth", "password", "pathTraceMode", "probeMode", "protocol", "sslVersion", "sslVersionId", "url", "useNtlm", "userAgent", "username", "verifyCertificate", "allowUnsafeLegacyRenegotiation", "followRedirects", "fixedPacketRate", "overrideAgentProxy", "overrideProxyId", "collectProxyNetworkData", "emulatedDeviceId", "pageLoadTargetTime", "pageLoadTimeLimit", "blockDomains", "disableScreenshot", "allowMicAndCamera", "allowGeolocation", "browserLanguage", "chromeOptions", "chromePolicies", "pageLoadingStrategy", "randomizedStartTime", "identifyAgentTrafficWithUserAgent", "agents"] + __properties: ClassVar[List[str]] = ["createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "tags", "sharedWithAccounts", "authType", "agentInterfaces", "bandwidthMeasurements", "clientCertificate", "contentRegex", "customHeaders", "desiredStatusCode", "distributedTracing", "downloadLimit", "dnsOverride", "httpTargetTime", "httpTimeLimit", "httpVersion", "includeHeaders", "mtuMeasurements", "networkMeasurements", "numPathTraces", "oAuth", "password", "pathTraceMode", "probeMode", "protocol", "sslVersion", "sslVersionId", "url", "useNtlm", "userAgent", "username", "verifyCertificate", "allowUnsafeLegacyRenegotiation", "followRedirects", "fixedPacketRate", "overrideAgentProxy", "overrideProxyId", "collectProxyNetworkData", "vaultCredentials", "emulatedDeviceId", "pageLoadTargetTime", "pageLoadTimeLimit", "blockDomains", "disableScreenshot", "allowMicAndCamera", "allowGeolocation", "browserLanguage", "chromeOptions", "chromePolicies", "pageLoadingStrategy", "randomizedStartTime", "identifyAgentTrafficWithUserAgent", "agents"] model_config = ConfigDict( populate_by_name=True, @@ -146,6 +150,7 @@ class PageLoadInstantTestResponse(BaseModel): * 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([ "created_by", @@ -157,6 +162,7 @@ class PageLoadInstantTestResponse(BaseModel): "test_id", "type", "labels", + "tags", "shared_with_accounts", "ssl_version", ]) @@ -176,6 +182,13 @@ class PageLoadInstantTestResponse(BaseModel): if _item: _items.append(_item.to_dict()) _dict['labels'] = _items + # override the default output from pydantic by calling `to_dict()` of each item in tags (list) + _items = [] + if self.tags: + for _item in self.tags: + if _item: + _items.append(_item.to_dict()) + _dict['tags'] = _items # override the default output from pydantic by calling `to_dict()` of each item in shared_with_accounts (list) _items = [] if self.shared_with_accounts: @@ -192,6 +205,13 @@ class PageLoadInstantTestResponse(BaseModel): # override the default output from pydantic by calling `to_dict()` of o_auth if self.o_auth: _dict['oAuth'] = self.o_auth.to_dict() + # override the default output from pydantic by calling `to_dict()` of each item in vault_credentials (list) + _items = [] + if self.vault_credentials: + for _item in self.vault_credentials: + if _item: + _items.append(_item.to_dict()) + _dict['vaultCredentials'] = _items # override the default output from pydantic by calling `to_dict()` of each item in agents (list) _items = [] if self.agents: @@ -223,6 +243,7 @@ class PageLoadInstantTestResponse(BaseModel): "type": obj.get("type"), "_links": TestLinks.from_dict(obj["_links"]) if obj.get("_links") is not None else None, "labels": [TestLabel.from_dict(_item) for _item in obj["labels"]] if obj.get("labels") is not None else None, + "tags": [TestTag.from_dict(_item) for _item in obj["tags"]] if obj.get("tags") is not None else None, "sharedWithAccounts": [SharedWithAccount.from_dict(_item) for _item in obj["sharedWithAccounts"]] if obj.get("sharedWithAccounts") is not None else None, "authType": obj.get("authType"), "agentInterfaces": AgentInterfaces.from_dict(obj["agentInterfaces"]) if obj.get("agentInterfaces") is not None else None, @@ -259,6 +280,7 @@ class PageLoadInstantTestResponse(BaseModel): "overrideAgentProxy": obj.get("overrideAgentProxy") if obj.get("overrideAgentProxy") is not None else False, "overrideProxyId": obj.get("overrideProxyId"), "collectProxyNetworkData": obj.get("collectProxyNetworkData") if obj.get("collectProxyNetworkData") is not None else False, + "vaultCredentials": [TestVaultCredential.from_dict(_item) for _item in obj["vaultCredentials"]] if obj.get("vaultCredentials") is not None else None, "emulatedDeviceId": obj.get("emulatedDeviceId"), "pageLoadTargetTime": obj.get("pageLoadTargetTime"), "pageLoadTimeLimit": obj.get("pageLoadTimeLimit") if obj.get("pageLoadTimeLimit") is not None else 10, diff --git a/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/page_load_properties.py b/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/page_load_properties.py index f65e4fd1..de6fcf39 100644 --- a/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/page_load_properties.py +++ b/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/page_load_properties.py @@ -28,6 +28,7 @@ from thousandeyes_sdk.instant_tests.models.test_path_trace_mode import TestPathT from thousandeyes_sdk.instant_tests.models.test_probe_mode import TestProbeMode from thousandeyes_sdk.instant_tests.models.test_protocol import TestProtocol from thousandeyes_sdk.instant_tests.models.test_ssl_version_id import TestSslVersionId +from thousandeyes_sdk.instant_tests.models.test_vault_credential import TestVaultCredential from typing import Optional, Set from typing_extensions import Self @@ -70,6 +71,7 @@ class PageLoadProperties(BaseModel): override_agent_proxy: Optional[StrictBool] = Field(default=False, description="Flag indicating if a proxy other than the default should be used. To override the default proxy for agents, set to `true` and specify a value for `overrideProxyId`.", alias="overrideAgentProxy") override_proxy_id: Optional[StrictStr] = Field(default=None, description="ID of the proxy to be used if the default proxy is overridden.", alias="overrideProxyId") collect_proxy_network_data: Optional[StrictBool] = Field(default=False, description="Indicates whether network data to the proxy should be collected.", alias="collectProxyNetworkData") + vault_credentials: Optional[List[TestVaultCredential]] = Field(default=None, description="List of credential IDs that are stored in an external vault.", alias="vaultCredentials") emulated_device_id: Optional[StrictStr] = Field(default=None, description="ID of the emulated device, if one was given when the test was created.", alias="emulatedDeviceId") page_load_target_time: Optional[Annotated[int, Field(le=60, strict=True, ge=1)]] = Field(default=None, description="Target time for page load completion, specified in seconds and cannot exceed the `pageLoadTimeLimit`.", alias="pageLoadTargetTime") page_load_time_limit: Optional[Annotated[int, Field(le=60, strict=True, ge=5)]] = Field(default=10, description="Page load time limit. Must be larger than the `httpTimeLimit`.", alias="pageLoadTimeLimit") @@ -84,7 +86,7 @@ class PageLoadProperties(BaseModel): randomized_start_time: Optional[StrictBool] = Field(default=False, description="Indicates whether agents should randomize the start time in each test round.", alias="randomizedStartTime") type: Optional[StrictStr] = None identify_agent_traffic_with_user_agent: Optional[StrictBool] = Field(default=False, description="Determines how agent traffic is identified: * `false`: Adds the `x-thousandeyes-agent: yes` header. * `true`: Appends `(ThousandEyes Agent)` to the `user-agent` header. For more information, see [Notes on Agent ID Strategy](https://docs.thousandeyes.com/product-documentation/browser-synthetics/test-settings-page-load-transaction#notes-on-agent-id-strategy). ", alias="identifyAgentTrafficWithUserAgent") - __properties: ClassVar[List[str]] = ["authType", "agentInterfaces", "bandwidthMeasurements", "clientCertificate", "contentRegex", "customHeaders", "desiredStatusCode", "distributedTracing", "downloadLimit", "dnsOverride", "httpTargetTime", "httpTimeLimit", "httpVersion", "includeHeaders", "mtuMeasurements", "networkMeasurements", "numPathTraces", "oAuth", "password", "pathTraceMode", "probeMode", "protocol", "sslVersion", "sslVersionId", "url", "useNtlm", "userAgent", "username", "verifyCertificate", "allowUnsafeLegacyRenegotiation", "followRedirects", "fixedPacketRate", "overrideAgentProxy", "overrideProxyId", "collectProxyNetworkData", "emulatedDeviceId", "pageLoadTargetTime", "pageLoadTimeLimit", "blockDomains", "disableScreenshot", "allowMicAndCamera", "allowGeolocation", "browserLanguage", "chromeOptions", "chromePolicies", "pageLoadingStrategy", "randomizedStartTime", "type", "identifyAgentTrafficWithUserAgent"] + __properties: ClassVar[List[str]] = ["authType", "agentInterfaces", "bandwidthMeasurements", "clientCertificate", "contentRegex", "customHeaders", "desiredStatusCode", "distributedTracing", "downloadLimit", "dnsOverride", "httpTargetTime", "httpTimeLimit", "httpVersion", "includeHeaders", "mtuMeasurements", "networkMeasurements", "numPathTraces", "oAuth", "password", "pathTraceMode", "probeMode", "protocol", "sslVersion", "sslVersionId", "url", "useNtlm", "userAgent", "username", "verifyCertificate", "allowUnsafeLegacyRenegotiation", "followRedirects", "fixedPacketRate", "overrideAgentProxy", "overrideProxyId", "collectProxyNetworkData", "vaultCredentials", "emulatedDeviceId", "pageLoadTargetTime", "pageLoadTimeLimit", "blockDomains", "disableScreenshot", "allowMicAndCamera", "allowGeolocation", "browserLanguage", "chromeOptions", "chromePolicies", "pageLoadingStrategy", "randomizedStartTime", "type", "identifyAgentTrafficWithUserAgent"] model_config = ConfigDict( populate_by_name=True, @@ -139,6 +141,13 @@ class PageLoadProperties(BaseModel): # override the default output from pydantic by calling `to_dict()` of o_auth if self.o_auth: _dict['oAuth'] = self.o_auth.to_dict() + # override the default output from pydantic by calling `to_dict()` of each item in vault_credentials (list) + _items = [] + if self.vault_credentials: + for _item in self.vault_credentials: + if _item: + _items.append(_item.to_dict()) + _dict['vaultCredentials'] = _items return _dict @classmethod @@ -186,6 +195,7 @@ class PageLoadProperties(BaseModel): "overrideAgentProxy": obj.get("overrideAgentProxy") if obj.get("overrideAgentProxy") is not None else False, "overrideProxyId": obj.get("overrideProxyId"), "collectProxyNetworkData": obj.get("collectProxyNetworkData") if obj.get("collectProxyNetworkData") is not None else False, + "vaultCredentials": [TestVaultCredential.from_dict(_item) for _item in obj["vaultCredentials"]] if obj.get("vaultCredentials") is not None else None, "emulatedDeviceId": obj.get("emulatedDeviceId"), "pageLoadTargetTime": obj.get("pageLoadTargetTime"), "pageLoadTimeLimit": obj.get("pageLoadTimeLimit") if obj.get("pageLoadTimeLimit") is not None else 10, diff --git a/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/o_auth_request_method.py b/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/request_method.py similarity index 86% rename from thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/o_auth_request_method.py rename to thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/request_method.py index b5af74fc..318fe174 100644 --- a/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/o_auth_request_method.py +++ b/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/request_method.py @@ -17,9 +17,9 @@ from enum import Enum from typing_extensions import Self -class OAuthRequestMethod(str, Enum): +class RequestMethod(str, Enum): """ - HTTP request method used for the OAuth request. + HTTP request method. """ """ @@ -31,7 +31,7 @@ class OAuthRequestMethod(str, Enum): @classmethod def from_json(cls, json_str: str) -> Self: - """Create an instance of OAuthRequestMethod from a JSON string""" + """Create an instance of RequestMethod from a JSON string""" return cls(json.loads(json_str)) @classmethod diff --git a/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/simple_agent.py b/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/simple_agent.py index 8a010b58..fb3a97b7 100644 --- a/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/simple_agent.py +++ b/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/simple_agent.py @@ -19,6 +19,7 @@ import json from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr from typing import Any, ClassVar, Dict, List, Optional from thousandeyes_sdk.instant_tests.models.coordinates import Coordinates +from thousandeyes_sdk.instant_tests.models.simple_agent_all_of_network_provider_info import SimpleAgentAllOfNetworkProviderInfo from typing import Optional, Set from typing_extensions import Self @@ -34,10 +35,11 @@ class SimpleAgent(BaseModel): location: Optional[StrictStr] = Field(default=None, description="Location of the agent.") country_id: Optional[StrictStr] = Field(default=None, description="2-digit ISO country code", alias="countryId") coordinates: Optional[Coordinates] = None + network_provider_info: Optional[SimpleAgentAllOfNetworkProviderInfo] = Field(default=None, alias="networkProviderInfo") enabled: Optional[StrictBool] = Field(default=None, description="Flag indicating if the agent is enabled.") - prefix: Optional[StrictStr] = Field(default=None, description="Prefix containing agents public IP address.") verify_ssl_certificates: Optional[StrictBool] = Field(default=None, description="Flag indicating if has normal SSL operations or if instead it's set to ignore SSL errors on browserbot-based tests.", alias="verifySslCertificates") - __properties: ClassVar[List[str]] = ["ipAddresses", "publicIpAddresses", "network", "agentId", "agentName", "location", "countryId", "coordinates", "enabled", "prefix", "verifySslCertificates"] + prefix: Optional[StrictStr] = Field(default=None, description="Prefix containing agents public IP address.") + __properties: ClassVar[List[str]] = ["ipAddresses", "publicIpAddresses", "network", "agentId", "agentName", "location", "countryId", "coordinates", "networkProviderInfo", "enabled", "verifySslCertificates", "prefix"] model_config = ConfigDict( populate_by_name=True, @@ -86,8 +88,8 @@ class SimpleAgent(BaseModel): "agent_id", "location", "country_id", - "prefix", "verify_ssl_certificates", + "prefix", ]) _dict = self.model_dump( @@ -98,6 +100,9 @@ class SimpleAgent(BaseModel): # override the default output from pydantic by calling `to_dict()` of coordinates if self.coordinates: _dict['coordinates'] = self.coordinates.to_dict() + # override the default output from pydantic by calling `to_dict()` of network_provider_info + if self.network_provider_info: + _dict['networkProviderInfo'] = self.network_provider_info.to_dict() return _dict @classmethod @@ -118,9 +123,10 @@ class SimpleAgent(BaseModel): "location": obj.get("location"), "countryId": obj.get("countryId"), "coordinates": Coordinates.from_dict(obj["coordinates"]) if obj.get("coordinates") is not None else None, + "networkProviderInfo": SimpleAgentAllOfNetworkProviderInfo.from_dict(obj["networkProviderInfo"]) if obj.get("networkProviderInfo") is not None else None, "enabled": obj.get("enabled"), - "prefix": obj.get("prefix"), - "verifySslCertificates": obj.get("verifySslCertificates") + "verifySslCertificates": obj.get("verifySslCertificates"), + "prefix": obj.get("prefix") }) return _obj diff --git a/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/simple_agent_all_of_network_provider_info.py b/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/simple_agent_all_of_network_provider_info.py new file mode 100644 index 00000000..85089162 --- /dev/null +++ b/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/simple_agent_all_of_network_provider_info.py @@ -0,0 +1,96 @@ +# coding: utf-8 + +""" + Instant Tests API + + The Instant Tests API operations lets you create and run new instant tests. You will need to be an Account Admin. The response does not include the immediate test results. Use the Test Results endpoints to get test results after creating and executing an instant test. You can find the URLs for these endpoints in the _links section of the test definition that is returned when you create the instant test. + + 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 thousandeyes_sdk.instant_tests.models.network_provider_type import NetworkProviderType +from typing import Optional, Set +from typing_extensions import Self + +class SimpleAgentAllOfNetworkProviderInfo(BaseModel): + """ + SimpleAgentAllOfNetworkProviderInfo + """ # noqa: E501 + asn: Optional[StrictInt] = Field(default=None, description="Autonomous System Number (ASN) announcing the agent's public IP prefix.") + name: Optional[StrictStr] = Field(default=None, description="Name of the network provider organization.") + type: Optional[NetworkProviderType] = None + __properties: ClassVar[List[str]] = ["asn", "name", "type"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + extra="allow", + ) + + + 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 self.model_dump_json(by_alias=True, exclude_unset=True, exclude_none=True) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of SimpleAgentAllOfNetworkProviderInfo 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. + * OpenAPI `readOnly` fields are excluded. + * OpenAPI `readOnly` fields are excluded. + """ + excluded_fields: Set[str] = set([ + "asn", + "name", + ]) + + _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 SimpleAgentAllOfNetworkProviderInfo from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "asn": obj.get("asn"), + "name": obj.get("name"), + "type": obj.get("type") + }) + return _obj + + diff --git a/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/sip_server_instant_test.py b/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/sip_server_instant_test.py index 1ac70a4a..bce2d799 100644 --- a/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/sip_server_instant_test.py +++ b/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/sip_server_instant_test.py @@ -26,6 +26,7 @@ from thousandeyes_sdk.instant_tests.models.test_label import TestLabel from thousandeyes_sdk.instant_tests.models.test_links import TestLinks from thousandeyes_sdk.instant_tests.models.test_path_trace_mode import TestPathTraceMode from thousandeyes_sdk.instant_tests.models.test_probe_mode import TestProbeMode +from thousandeyes_sdk.instant_tests.models.test_tag import TestTag from typing import Optional, Set from typing_extensions import Self @@ -45,6 +46,7 @@ class SipServerInstantTest(BaseModel): type: Optional[StrictStr] = None links: Optional[TestLinks] = Field(default=None, alias="_links") labels: Optional[List[TestLabel]] = Field(default=None, description="Labels to which the test is assigned. This field is not returned for Instant Tests.") + tags: Optional[List[TestTag]] = Field(default=None, description="Tags assigned to the test. Returned only when `expand=tag` is specified. This field is not returned for Instant Tests. For more information, see `/tags`.") shared_with_accounts: Optional[List[SharedWithAccount]] = Field(default=None, alias="sharedWithAccounts") mtu_measurements: Optional[StrictBool] = Field(default=None, description="Set `true` to measure MTU sizes on network from agents to the target.", alias="mtuMeasurements") network_measurements: Optional[StrictBool] = Field(default=True, description="Enable or disable network measurements. Set to true to enable or false to disable network measurements.", alias="networkMeasurements") @@ -58,7 +60,7 @@ class SipServerInstantTest(BaseModel): sip_time_limit: Optional[Annotated[int, Field(le=10, strict=True, ge=5)]] = Field(default=5, description="Time limit in milliseconds.", alias="sipTimeLimit") fixed_packet_rate: Optional[Annotated[int, Field(le=100, strict=True, ge=0)]] = Field(default=None, description="Sets packets rate sent to measure the network in packets per second.", alias="fixedPacketRate") ipv6_policy: Optional[TestIpv6Policy] = Field(default=None, alias="ipv6Policy") - __properties: ClassVar[List[str]] = ["createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "sharedWithAccounts", "mtuMeasurements", "networkMeasurements", "numPathTraces", "optionsRegex", "pathTraceMode", "probeMode", "randomizedStartTime", "registerEnabled", "sipTargetTime", "sipTimeLimit", "fixedPacketRate", "ipv6Policy"] + __properties: ClassVar[List[str]] = ["createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "tags", "sharedWithAccounts", "mtuMeasurements", "networkMeasurements", "numPathTraces", "optionsRegex", "pathTraceMode", "probeMode", "randomizedStartTime", "registerEnabled", "sipTargetTime", "sipTimeLimit", "fixedPacketRate", "ipv6Policy"] model_config = ConfigDict( populate_by_name=True, @@ -101,6 +103,7 @@ class SipServerInstantTest(BaseModel): * 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([ "created_by", @@ -112,6 +115,7 @@ class SipServerInstantTest(BaseModel): "test_id", "type", "labels", + "tags", "shared_with_accounts", ]) @@ -130,6 +134,13 @@ class SipServerInstantTest(BaseModel): if _item: _items.append(_item.to_dict()) _dict['labels'] = _items + # override the default output from pydantic by calling `to_dict()` of each item in tags (list) + _items = [] + if self.tags: + for _item in self.tags: + if _item: + _items.append(_item.to_dict()) + _dict['tags'] = _items # override the default output from pydantic by calling `to_dict()` of each item in shared_with_accounts (list) _items = [] if self.shared_with_accounts: @@ -161,6 +172,7 @@ class SipServerInstantTest(BaseModel): "type": obj.get("type"), "_links": TestLinks.from_dict(obj["_links"]) if obj.get("_links") is not None else None, "labels": [TestLabel.from_dict(_item) for _item in obj["labels"]] if obj.get("labels") is not None else None, + "tags": [TestTag.from_dict(_item) for _item in obj["tags"]] if obj.get("tags") is not None else None, "sharedWithAccounts": [SharedWithAccount.from_dict(_item) for _item in obj["sharedWithAccounts"]] if obj.get("sharedWithAccounts") is not None else None, "mtuMeasurements": obj.get("mtuMeasurements"), "networkMeasurements": obj.get("networkMeasurements") if obj.get("networkMeasurements") is not None else True, diff --git a/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/sip_server_instant_test_request.py b/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/sip_server_instant_test_request.py index ee324ef4..9e0c54d1 100644 --- a/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/sip_server_instant_test_request.py +++ b/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/sip_server_instant_test_request.py @@ -44,8 +44,6 @@ class SipServerInstantTestRequest(BaseModel): test_name: Optional[StrictStr] = Field(default=None, description="The name of the test. Test name must be unique.", alias="testName") type: Optional[StrictStr] = None links: Optional[TestLinks] = Field(default=None, alias="_links") - labels: Optional[List[StrictStr]] = Field(default=None, description="A list of test label identifiers (get `labelId` from `/labels` endpoint).") - shared_with_accounts: Optional[List[StrictStr]] = Field(default=None, description="A list of account group identifiers that the test is shared with (get `aid` from `/account-groups` endpoint).", alias="sharedWithAccounts") mtu_measurements: Optional[StrictBool] = Field(default=None, description="Set `true` to measure MTU sizes on network from agents to the target.", alias="mtuMeasurements") network_measurements: Optional[StrictBool] = Field(default=True, description="Enable or disable network measurements. Set to true to enable or false to disable network measurements.", alias="networkMeasurements") num_path_traces: Optional[Annotated[int, Field(le=10, strict=True, ge=1)]] = Field(default=3, description="Number of path traces executed by the agent.", alias="numPathTraces") @@ -58,10 +56,12 @@ class SipServerInstantTestRequest(BaseModel): sip_time_limit: Optional[Annotated[int, Field(le=10, strict=True, ge=5)]] = Field(default=5, description="Time limit in milliseconds.", alias="sipTimeLimit") fixed_packet_rate: Optional[Annotated[int, Field(le=100, strict=True, ge=0)]] = Field(default=None, description="Sets packets rate sent to measure the network in packets per second.", alias="fixedPacketRate") ipv6_policy: Optional[TestIpv6Policy] = Field(default=None, alias="ipv6Policy") + labels: Optional[List[StrictStr]] = Field(default=None, description="A list of test label identifiers (get `labelId` from `/labels` endpoint).") tags: Optional[List[StrictStr]] = Field(default=None, description="A list of test tag identifiers (get `id` from `/tags` endpoint).") + shared_with_accounts: Optional[List[StrictStr]] = Field(default=None, description="A list of account group identifiers that the test is shared with (get `aid` from `/account-groups` endpoint).", alias="sharedWithAccounts") agents: List[TestAgent] = Field(description="A list of objects with `agentId` (required) and `sourceIpAddress` (optional).") target_sip_credentials: TestSipCredentials = Field(alias="targetSipCredentials") - __properties: ClassVar[List[str]] = ["createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "sharedWithAccounts", "mtuMeasurements", "networkMeasurements", "numPathTraces", "optionsRegex", "pathTraceMode", "probeMode", "randomizedStartTime", "registerEnabled", "sipTargetTime", "sipTimeLimit", "fixedPacketRate", "ipv6Policy", "tags", "agents", "targetSipCredentials"] + __properties: ClassVar[List[str]] = ["createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "mtuMeasurements", "networkMeasurements", "numPathTraces", "optionsRegex", "pathTraceMode", "probeMode", "randomizedStartTime", "registerEnabled", "sipTargetTime", "sipTimeLimit", "fixedPacketRate", "ipv6Policy", "labels", "tags", "sharedWithAccounts", "agents", "targetSipCredentials"] model_config = ConfigDict( populate_by_name=True, @@ -155,8 +155,6 @@ class SipServerInstantTestRequest(BaseModel): "testName": obj.get("testName"), "type": obj.get("type"), "_links": TestLinks.from_dict(obj["_links"]) if obj.get("_links") is not None else None, - "labels": obj.get("labels"), - "sharedWithAccounts": obj.get("sharedWithAccounts"), "mtuMeasurements": obj.get("mtuMeasurements"), "networkMeasurements": obj.get("networkMeasurements") if obj.get("networkMeasurements") is not None else True, "numPathTraces": obj.get("numPathTraces") if obj.get("numPathTraces") is not None else 3, @@ -169,7 +167,9 @@ class SipServerInstantTestRequest(BaseModel): "sipTimeLimit": obj.get("sipTimeLimit") if obj.get("sipTimeLimit") is not None else 5, "fixedPacketRate": obj.get("fixedPacketRate"), "ipv6Policy": obj.get("ipv6Policy"), + "labels": obj.get("labels"), "tags": obj.get("tags"), + "sharedWithAccounts": obj.get("sharedWithAccounts"), "agents": [TestAgent.from_dict(_item) for _item in obj["agents"]] if obj.get("agents") is not None else None, "targetSipCredentials": TestSipCredentials.from_dict(obj["targetSipCredentials"]) if obj.get("targetSipCredentials") is not None else None }) diff --git a/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/sip_server_instant_test_response.py b/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/sip_server_instant_test_response.py index 089bee16..072cc045 100644 --- a/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/sip_server_instant_test_response.py +++ b/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/sip_server_instant_test_response.py @@ -28,6 +28,7 @@ from thousandeyes_sdk.instant_tests.models.test_label import TestLabel from thousandeyes_sdk.instant_tests.models.test_links import TestLinks from thousandeyes_sdk.instant_tests.models.test_path_trace_mode import TestPathTraceMode from thousandeyes_sdk.instant_tests.models.test_probe_mode import TestProbeMode +from thousandeyes_sdk.instant_tests.models.test_tag import TestTag from typing import Optional, Set from typing_extensions import Self @@ -47,6 +48,7 @@ class SipServerInstantTestResponse(BaseModel): type: Optional[StrictStr] = None links: Optional[TestLinks] = Field(default=None, alias="_links") labels: Optional[List[TestLabel]] = Field(default=None, description="Labels to which the test is assigned. This field is not returned for Instant Tests.") + tags: Optional[List[TestTag]] = Field(default=None, description="Tags assigned to the test. Returned only when `expand=tag` is specified. This field is not returned for Instant Tests. For more information, see `/tags`.") shared_with_accounts: Optional[List[SharedWithAccount]] = Field(default=None, alias="sharedWithAccounts") mtu_measurements: Optional[StrictBool] = Field(default=None, description="Set `true` to measure MTU sizes on network from agents to the target.", alias="mtuMeasurements") network_measurements: Optional[StrictBool] = Field(default=True, description="Enable or disable network measurements. Set to true to enable or false to disable network measurements.", alias="networkMeasurements") @@ -67,7 +69,7 @@ class SipServerInstantTestResponse(BaseModel): sip_registrar: Optional[StrictStr] = Field(default=None, description="SIP server to be tested, specified by domain name or IP address.", alias="sipRegistrar") user: Optional[StrictStr] = Field(default=None, description="Username for SIP registration, should be unique within a ThousandEyes account group.") agents: Optional[List[AgentResponse]] = Field(default=None, description="Contains list of agents.") - __properties: ClassVar[List[str]] = ["createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "sharedWithAccounts", "mtuMeasurements", "networkMeasurements", "numPathTraces", "optionsRegex", "pathTraceMode", "probeMode", "randomizedStartTime", "registerEnabled", "sipTargetTime", "sipTimeLimit", "fixedPacketRate", "ipv6Policy", "authUser", "password", "port", "protocol", "sipRegistrar", "user", "agents"] + __properties: ClassVar[List[str]] = ["createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "tags", "sharedWithAccounts", "mtuMeasurements", "networkMeasurements", "numPathTraces", "optionsRegex", "pathTraceMode", "probeMode", "randomizedStartTime", "registerEnabled", "sipTargetTime", "sipTimeLimit", "fixedPacketRate", "ipv6Policy", "authUser", "password", "port", "protocol", "sipRegistrar", "user", "agents"] model_config = ConfigDict( populate_by_name=True, @@ -110,6 +112,7 @@ class SipServerInstantTestResponse(BaseModel): * 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([ "created_by", @@ -121,6 +124,7 @@ class SipServerInstantTestResponse(BaseModel): "test_id", "type", "labels", + "tags", "shared_with_accounts", ]) @@ -139,6 +143,13 @@ class SipServerInstantTestResponse(BaseModel): if _item: _items.append(_item.to_dict()) _dict['labels'] = _items + # override the default output from pydantic by calling `to_dict()` of each item in tags (list) + _items = [] + if self.tags: + for _item in self.tags: + if _item: + _items.append(_item.to_dict()) + _dict['tags'] = _items # override the default output from pydantic by calling `to_dict()` of each item in shared_with_accounts (list) _items = [] if self.shared_with_accounts: @@ -177,6 +188,7 @@ class SipServerInstantTestResponse(BaseModel): "type": obj.get("type"), "_links": TestLinks.from_dict(obj["_links"]) if obj.get("_links") is not None else None, "labels": [TestLabel.from_dict(_item) for _item in obj["labels"]] if obj.get("labels") is not None else None, + "tags": [TestTag.from_dict(_item) for _item in obj["tags"]] if obj.get("tags") is not None else None, "sharedWithAccounts": [SharedWithAccount.from_dict(_item) for _item in obj["sharedWithAccounts"]] if obj.get("sharedWithAccounts") is not None else None, "mtuMeasurements": obj.get("mtuMeasurements"), "networkMeasurements": obj.get("networkMeasurements") if obj.get("networkMeasurements") is not None else True, diff --git a/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/test_tag.py b/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/test_tag.py new file mode 100644 index 00000000..1bd66c3d --- /dev/null +++ b/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/test_tag.py @@ -0,0 +1,91 @@ +# coding: utf-8 + +""" + Instant Tests API + + The Instant Tests API operations lets you create and run new instant tests. You will need to be an Account Admin. The response does not include the immediate test results. Use the Test Results endpoints to get test results after creating and executing an instant test. You can find the URLs for these endpoints in the _links section of the test definition that is returned when you create the instant test. + + 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 TestTag(BaseModel): + """ + TestTag + """ # noqa: E501 + id: Optional[StrictStr] = Field(default=None, description="Unique tag ID.") + key: Optional[StrictStr] = Field(default=None, description="Tag key. For example, \"Location\" or \"Department\".") + value: Optional[StrictStr] = Field(default=None, description="Tag value. For example, \"San Francisco\" or \"Engineering\".") + __properties: ClassVar[List[str]] = ["id", "key", "value"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + extra="allow", + ) + + + 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 self.model_dump_json(by_alias=True, exclude_unset=True, exclude_none=True) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of TestTag 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 TestTag 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"), + "key": obj.get("key"), + "value": obj.get("value") + }) + return _obj + + diff --git a/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/dns_servers_request.py b/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/test_vault_credential.py similarity index 79% rename from thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/dns_servers_request.py rename to thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/test_vault_credential.py index 19ed8df5..d69e6a10 100644 --- a/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/dns_servers_request.py +++ b/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/test_vault_credential.py @@ -18,15 +18,17 @@ import json from pydantic import BaseModel, ConfigDict, Field, StrictStr from typing import Any, ClassVar, Dict, List, Optional +from thousandeyes_sdk.instant_tests.models.test_vault_credential_target import TestVaultCredentialTarget from typing import Optional, Set from typing_extensions import Self -class DnsServersRequest(BaseModel): +class TestVaultCredential(BaseModel): """ - DnsServersRequest + TestVaultCredential """ # noqa: E501 - dns_servers: Optional[List[StrictStr]] = Field(default=None, description="A list of DNS server FQDN.", alias="dnsServers") - __properties: ClassVar[List[str]] = ["dnsServers"] + secret_id: Optional[StrictStr] = Field(default=None, description="UUID of the configured secret.", alias="secretId") + target: Optional[TestVaultCredentialTarget] = None + __properties: ClassVar[List[str]] = ["secretId", "target"] model_config = ConfigDict( populate_by_name=True, @@ -47,7 +49,7 @@ class DnsServersRequest(BaseModel): @classmethod def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of DnsServersRequest from a JSON string""" + """Create an instance of TestVaultCredential from a JSON string""" return cls.from_dict(json.loads(json_str)) def to_dict(self) -> Dict[str, Any]: @@ -72,7 +74,7 @@ class DnsServersRequest(BaseModel): @classmethod def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of DnsServersRequest from a dict""" + """Create an instance of TestVaultCredential from a dict""" if obj is None: return None @@ -80,7 +82,8 @@ class DnsServersRequest(BaseModel): return cls.model_validate(obj) _obj = cls.model_validate({ - "dnsServers": obj.get("dnsServers") + "secretId": obj.get("secretId"), + "target": obj.get("target") }) return _obj diff --git a/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/test_vault_credential_target.py b/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/test_vault_credential_target.py new file mode 100644 index 00000000..01cb28eb --- /dev/null +++ b/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/test_vault_credential_target.py @@ -0,0 +1,42 @@ +# coding: utf-8 + +""" + Instant Tests API + + The Instant Tests API operations lets you create and run new instant tests. You will need to be an Account Admin. The response does not include the immediate test results. Use the Test Results endpoints to get test results after creating and executing an instant test. You can find the URLs for these endpoints in the _links section of the test definition that is returned when you create the instant test. + + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import json +from enum import Enum +from typing_extensions import Self + + +class TestVaultCredentialTarget(str, Enum): + """ + The target setting that the credential should be used for. + """ + + """ + allowed enum values + """ + USERNAME = 'username' + PASSWORD = 'password' + SCRIPT = 'script' + UNKNOWN = 'unknown' + + @classmethod + def from_json(cls, json_str: str) -> Self: + """Create an instance of TestVaultCredentialTarget from a JSON string""" + return cls(json.loads(json_str)) + + @classmethod + def _missing_(cls, value): + """Handle unknown values""" + return cls.UNKNOWN + diff --git a/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/voice_instant_test.py b/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/voice_instant_test.py index d4afb87b..98f6a857 100644 --- a/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/voice_instant_test.py +++ b/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/voice_instant_test.py @@ -24,6 +24,7 @@ from thousandeyes_sdk.instant_tests.models.shared_with_account import SharedWith from thousandeyes_sdk.instant_tests.models.test_dscp_id import TestDscpId from thousandeyes_sdk.instant_tests.models.test_label import TestLabel from thousandeyes_sdk.instant_tests.models.test_links import TestLinks +from thousandeyes_sdk.instant_tests.models.test_tag import TestTag from typing import Optional, Set from typing_extensions import Self @@ -43,9 +44,10 @@ class VoiceInstantTest(BaseModel): type: Optional[StrictStr] = None links: Optional[TestLinks] = Field(default=None, alias="_links") labels: Optional[List[TestLabel]] = Field(default=None, description="Labels to which the test is assigned. This field is not returned for Instant Tests.") + tags: Optional[List[TestTag]] = Field(default=None, description="Tags assigned to the test. Returned only when `expand=tag` is specified. This field is not returned for Instant Tests. For more information, see `/tags`.") shared_with_accounts: Optional[List[SharedWithAccount]] = Field(default=None, alias="sharedWithAccounts") codec: Optional[StrictStr] = Field(default=None, description="Codec label") - codec_id: Optional[StrictStr] = Field(default=None, description="Coded ID, [see the list of acceptable values](https://docs.thousandeyes.com/product-documentation/internet-and-wan-monitoring/tests/working-with-test-settings#rtp-stream-advanced-settings-tab)", alias="codecId") + codec_id: Optional[StrictStr] = Field(default=None, description="Codec identifier for the RTP stream. Valid values: * `0`: G.711 @ 64 Kbps * `1`: G.722.1 @ 24 Kbps (WB) * `2`: G.722.1 @ 32 Kbps (WB) * `3`: G.726 @ 32 Kbps * `4`: G.723.1 @ 6.4 Kbps * `5`: G.729a @ 8 Kbps * `6`: RTAudio @ 45 Kbps (WB) * `7`: RTAudio @ 27.8 Kbps * `8`: SILK @ 36 Kbps (WB) * `9`: G.722 @ 64 Kbps (WB) ", alias="codecId") dscp: Optional[StrictStr] = Field(default=None, description="DSCP label.") dscp_id: Optional[TestDscpId] = Field(default=None, alias="dscpId") duration: Optional[Annotated[int, Field(le=30, strict=True, ge=5)]] = Field(default=5, description="Duration of the test in seconds.") @@ -54,7 +56,7 @@ class VoiceInstantTest(BaseModel): port: Optional[Annotated[int, Field(le=65535, strict=True, ge=1024)]] = Field(default=None, description="Port number for the chosen protocol.") randomized_start_time: Optional[StrictBool] = Field(default=False, description="Indicates whether agents should randomize the start time in each test round.", alias="randomizedStartTime") target_agent_id: StrictStr = Field(description="Agent ID of the target agent for the test.", alias="targetAgentId") - __properties: ClassVar[List[str]] = ["createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "sharedWithAccounts", "codec", "codecId", "dscp", "dscpId", "duration", "jitterBuffer", "numPathTraces", "port", "randomizedStartTime", "targetAgentId"] + __properties: ClassVar[List[str]] = ["createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "tags", "sharedWithAccounts", "codec", "codecId", "dscp", "dscpId", "duration", "jitterBuffer", "numPathTraces", "port", "randomizedStartTime", "targetAgentId"] model_config = ConfigDict( populate_by_name=True, @@ -99,6 +101,7 @@ class VoiceInstantTest(BaseModel): * 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([ "created_by", @@ -110,6 +113,7 @@ class VoiceInstantTest(BaseModel): "test_id", "type", "labels", + "tags", "shared_with_accounts", "codec", "dscp", @@ -130,6 +134,13 @@ class VoiceInstantTest(BaseModel): if _item: _items.append(_item.to_dict()) _dict['labels'] = _items + # override the default output from pydantic by calling `to_dict()` of each item in tags (list) + _items = [] + if self.tags: + for _item in self.tags: + if _item: + _items.append(_item.to_dict()) + _dict['tags'] = _items # override the default output from pydantic by calling `to_dict()` of each item in shared_with_accounts (list) _items = [] if self.shared_with_accounts: @@ -161,6 +172,7 @@ class VoiceInstantTest(BaseModel): "type": obj.get("type"), "_links": TestLinks.from_dict(obj["_links"]) if obj.get("_links") is not None else None, "labels": [TestLabel.from_dict(_item) for _item in obj["labels"]] if obj.get("labels") is not None else None, + "tags": [TestTag.from_dict(_item) for _item in obj["tags"]] if obj.get("tags") is not None else None, "sharedWithAccounts": [SharedWithAccount.from_dict(_item) for _item in obj["sharedWithAccounts"]] if obj.get("sharedWithAccounts") is not None else None, "codec": obj.get("codec"), "codecId": obj.get("codecId"), diff --git a/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/voice_instant_test_request.py b/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/voice_instant_test_request.py index faf941b0..4e991960 100644 --- a/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/voice_instant_test_request.py +++ b/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/voice_instant_test_request.py @@ -41,10 +41,8 @@ class VoiceInstantTestRequest(BaseModel): test_name: Optional[StrictStr] = Field(default=None, description="The name of the test. Test name must be unique.", alias="testName") type: Optional[StrictStr] = None links: Optional[TestLinks] = Field(default=None, alias="_links") - labels: Optional[List[StrictStr]] = Field(default=None, description="A list of test label identifiers (get `labelId` from `/labels` endpoint).") - shared_with_accounts: Optional[List[StrictStr]] = Field(default=None, description="A list of account group identifiers that the test is shared with (get `aid` from `/account-groups` endpoint).", alias="sharedWithAccounts") codec: Optional[StrictStr] = Field(default=None, description="Codec label") - codec_id: Optional[StrictStr] = Field(default=None, description="Coded ID, [see the list of acceptable values](https://docs.thousandeyes.com/product-documentation/internet-and-wan-monitoring/tests/working-with-test-settings#rtp-stream-advanced-settings-tab)", alias="codecId") + codec_id: Optional[StrictStr] = Field(default=None, description="Codec identifier for the RTP stream. Valid values: * `0`: G.711 @ 64 Kbps * `1`: G.722.1 @ 24 Kbps (WB) * `2`: G.722.1 @ 32 Kbps (WB) * `3`: G.726 @ 32 Kbps * `4`: G.723.1 @ 6.4 Kbps * `5`: G.729a @ 8 Kbps * `6`: RTAudio @ 45 Kbps (WB) * `7`: RTAudio @ 27.8 Kbps * `8`: SILK @ 36 Kbps (WB) * `9`: G.722 @ 64 Kbps (WB) ", alias="codecId") dscp: Optional[StrictStr] = Field(default=None, description="DSCP label.") dscp_id: Optional[TestDscpId] = Field(default=None, alias="dscpId") duration: Optional[Annotated[int, Field(le=30, strict=True, ge=5)]] = Field(default=5, description="Duration of the test in seconds.") @@ -53,9 +51,11 @@ class VoiceInstantTestRequest(BaseModel): port: Optional[Annotated[int, Field(le=65535, strict=True, ge=1024)]] = Field(default=None, description="Port number for the chosen protocol.") randomized_start_time: Optional[StrictBool] = Field(default=False, description="Indicates whether agents should randomize the start time in each test round.", alias="randomizedStartTime") target_agent_id: StrictStr = Field(description="Agent ID of the target agent for the test.", alias="targetAgentId") + labels: Optional[List[StrictStr]] = Field(default=None, description="A list of test label identifiers (get `labelId` from `/labels` endpoint).") tags: Optional[List[StrictStr]] = Field(default=None, description="A list of test tag identifiers (get `id` from `/tags` endpoint).") + shared_with_accounts: Optional[List[StrictStr]] = Field(default=None, description="A list of account group identifiers that the test is shared with (get `aid` from `/account-groups` endpoint).", alias="sharedWithAccounts") agents: List[TestAgent] = Field(description="A list of objects with `agentId` (required) and `sourceIpAddress` (optional).") - __properties: ClassVar[List[str]] = ["createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "sharedWithAccounts", "codec", "codecId", "dscp", "dscpId", "duration", "jitterBuffer", "numPathTraces", "port", "randomizedStartTime", "targetAgentId", "tags", "agents"] + __properties: ClassVar[List[str]] = ["createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "codec", "codecId", "dscp", "dscpId", "duration", "jitterBuffer", "numPathTraces", "port", "randomizedStartTime", "targetAgentId", "labels", "tags", "sharedWithAccounts", "agents"] model_config = ConfigDict( populate_by_name=True, @@ -150,8 +150,6 @@ class VoiceInstantTestRequest(BaseModel): "testName": obj.get("testName"), "type": obj.get("type"), "_links": TestLinks.from_dict(obj["_links"]) if obj.get("_links") is not None else None, - "labels": obj.get("labels"), - "sharedWithAccounts": obj.get("sharedWithAccounts"), "codec": obj.get("codec"), "codecId": obj.get("codecId"), "dscp": obj.get("dscp"), @@ -162,7 +160,9 @@ class VoiceInstantTestRequest(BaseModel): "port": obj.get("port"), "randomizedStartTime": obj.get("randomizedStartTime") if obj.get("randomizedStartTime") is not None else False, "targetAgentId": obj.get("targetAgentId"), + "labels": obj.get("labels"), "tags": obj.get("tags"), + "sharedWithAccounts": obj.get("sharedWithAccounts"), "agents": [TestAgent.from_dict(_item) for _item in obj["agents"]] if obj.get("agents") is not None else None }) return _obj diff --git a/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/voice_instant_test_response.py b/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/voice_instant_test_response.py index 3c1b6f88..7207911f 100644 --- a/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/voice_instant_test_response.py +++ b/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/voice_instant_test_response.py @@ -25,6 +25,7 @@ from thousandeyes_sdk.instant_tests.models.shared_with_account import SharedWith from thousandeyes_sdk.instant_tests.models.test_dscp_id import TestDscpId from thousandeyes_sdk.instant_tests.models.test_label import TestLabel from thousandeyes_sdk.instant_tests.models.test_links import TestLinks +from thousandeyes_sdk.instant_tests.models.test_tag import TestTag from typing import Optional, Set from typing_extensions import Self @@ -44,9 +45,10 @@ class VoiceInstantTestResponse(BaseModel): type: Optional[StrictStr] = None links: Optional[TestLinks] = Field(default=None, alias="_links") labels: Optional[List[TestLabel]] = Field(default=None, description="Labels to which the test is assigned. This field is not returned for Instant Tests.") + tags: Optional[List[TestTag]] = Field(default=None, description="Tags assigned to the test. Returned only when `expand=tag` is specified. This field is not returned for Instant Tests. For more information, see `/tags`.") shared_with_accounts: Optional[List[SharedWithAccount]] = Field(default=None, alias="sharedWithAccounts") codec: Optional[StrictStr] = Field(default=None, description="Codec label") - codec_id: Optional[StrictStr] = Field(default=None, description="Coded ID, [see the list of acceptable values](https://docs.thousandeyes.com/product-documentation/internet-and-wan-monitoring/tests/working-with-test-settings#rtp-stream-advanced-settings-tab)", alias="codecId") + codec_id: Optional[StrictStr] = Field(default=None, description="Codec identifier for the RTP stream. Valid values: * `0`: G.711 @ 64 Kbps * `1`: G.722.1 @ 24 Kbps (WB) * `2`: G.722.1 @ 32 Kbps (WB) * `3`: G.726 @ 32 Kbps * `4`: G.723.1 @ 6.4 Kbps * `5`: G.729a @ 8 Kbps * `6`: RTAudio @ 45 Kbps (WB) * `7`: RTAudio @ 27.8 Kbps * `8`: SILK @ 36 Kbps (WB) * `9`: G.722 @ 64 Kbps (WB) ", alias="codecId") dscp: Optional[StrictStr] = Field(default=None, description="DSCP label.") dscp_id: Optional[TestDscpId] = Field(default=None, alias="dscpId") duration: Optional[Annotated[int, Field(le=30, strict=True, ge=5)]] = Field(default=5, description="Duration of the test in seconds.") @@ -56,7 +58,7 @@ class VoiceInstantTestResponse(BaseModel): randomized_start_time: Optional[StrictBool] = Field(default=False, description="Indicates whether agents should randomize the start time in each test round.", alias="randomizedStartTime") target_agent_id: StrictStr = Field(description="Agent ID of the target agent for the test.", alias="targetAgentId") agents: Optional[List[AgentResponse]] = Field(default=None, description="Contains list of agents.") - __properties: ClassVar[List[str]] = ["createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "sharedWithAccounts", "codec", "codecId", "dscp", "dscpId", "duration", "jitterBuffer", "numPathTraces", "port", "randomizedStartTime", "targetAgentId", "agents"] + __properties: ClassVar[List[str]] = ["createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "tags", "sharedWithAccounts", "codec", "codecId", "dscp", "dscpId", "duration", "jitterBuffer", "numPathTraces", "port", "randomizedStartTime", "targetAgentId", "agents"] model_config = ConfigDict( populate_by_name=True, @@ -101,6 +103,7 @@ class VoiceInstantTestResponse(BaseModel): * 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([ "created_by", @@ -112,6 +115,7 @@ class VoiceInstantTestResponse(BaseModel): "test_id", "type", "labels", + "tags", "shared_with_accounts", "codec", "dscp", @@ -132,6 +136,13 @@ class VoiceInstantTestResponse(BaseModel): if _item: _items.append(_item.to_dict()) _dict['labels'] = _items + # override the default output from pydantic by calling `to_dict()` of each item in tags (list) + _items = [] + if self.tags: + for _item in self.tags: + if _item: + _items.append(_item.to_dict()) + _dict['tags'] = _items # override the default output from pydantic by calling `to_dict()` of each item in shared_with_accounts (list) _items = [] if self.shared_with_accounts: @@ -170,6 +181,7 @@ class VoiceInstantTestResponse(BaseModel): "type": obj.get("type"), "_links": TestLinks.from_dict(obj["_links"]) if obj.get("_links") is not None else None, "labels": [TestLabel.from_dict(_item) for _item in obj["labels"]] if obj.get("labels") is not None else None, + "tags": [TestTag.from_dict(_item) for _item in obj["tags"]] if obj.get("tags") is not None else None, "sharedWithAccounts": [SharedWithAccount.from_dict(_item) for _item in obj["sharedWithAccounts"]] if obj.get("sharedWithAccounts") is not None else None, "codec": obj.get("codec"), "codecId": obj.get("codecId"), diff --git a/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/voice_properties.py b/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/voice_properties.py index 2a4e01d3..01a2345b 100644 --- a/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/voice_properties.py +++ b/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/voice_properties.py @@ -28,7 +28,7 @@ class VoiceProperties(BaseModel): VoiceProperties """ # noqa: E501 codec: Optional[StrictStr] = Field(default=None, description="Codec label") - codec_id: Optional[StrictStr] = Field(default=None, description="Coded ID, [see the list of acceptable values](https://docs.thousandeyes.com/product-documentation/internet-and-wan-monitoring/tests/working-with-test-settings#rtp-stream-advanced-settings-tab)", alias="codecId") + codec_id: Optional[StrictStr] = Field(default=None, description="Codec identifier for the RTP stream. Valid values: * `0`: G.711 @ 64 Kbps * `1`: G.722.1 @ 24 Kbps (WB) * `2`: G.722.1 @ 32 Kbps (WB) * `3`: G.726 @ 32 Kbps * `4`: G.723.1 @ 6.4 Kbps * `5`: G.729a @ 8 Kbps * `6`: RTAudio @ 45 Kbps (WB) * `7`: RTAudio @ 27.8 Kbps * `8`: SILK @ 36 Kbps (WB) * `9`: G.722 @ 64 Kbps (WB) ", alias="codecId") dscp: Optional[StrictStr] = Field(default=None, description="DSCP label.") dscp_id: Optional[TestDscpId] = Field(default=None, alias="dscpId") duration: Optional[Annotated[int, Field(le=30, strict=True, ge=5)]] = Field(default=5, description="Duration of the test in seconds.") diff --git a/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/web_transaction_instant_test.py b/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/web_transaction_instant_test.py index bf1e745a..8eec7ab5 100644 --- a/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/web_transaction_instant_test.py +++ b/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/web_transaction_instant_test.py @@ -32,6 +32,8 @@ from thousandeyes_sdk.instant_tests.models.test_path_trace_mode import TestPathT from thousandeyes_sdk.instant_tests.models.test_probe_mode import TestProbeMode from thousandeyes_sdk.instant_tests.models.test_protocol import TestProtocol from thousandeyes_sdk.instant_tests.models.test_ssl_version_id import TestSslVersionId +from thousandeyes_sdk.instant_tests.models.test_tag import TestTag +from thousandeyes_sdk.instant_tests.models.test_vault_credential import TestVaultCredential from typing import Optional, Set from typing_extensions import Self @@ -51,6 +53,7 @@ class WebTransactionInstantTest(BaseModel): type: Optional[StrictStr] = None links: Optional[TestLinks] = Field(default=None, alias="_links") labels: Optional[List[TestLabel]] = Field(default=None, description="Labels to which the test is assigned. This field is not returned for Instant Tests.") + tags: Optional[List[TestTag]] = Field(default=None, description="Tags assigned to the test. Returned only when `expand=tag` is specified. This field is not returned for Instant Tests. For more information, see `/tags`.") shared_with_accounts: Optional[List[SharedWithAccount]] = Field(default=None, alias="sharedWithAccounts") auth_type: Optional[TestAuthType] = Field(default=None, alias="authType") agent_interfaces: Optional[AgentInterfaces] = Field(default=None, alias="agentInterfaces") @@ -87,6 +90,7 @@ class WebTransactionInstantTest(BaseModel): override_agent_proxy: Optional[StrictBool] = Field(default=False, description="Flag indicating if a proxy other than the default should be used. To override the default proxy for agents, set to `true` and specify a value for `overrideProxyId`.", alias="overrideAgentProxy") override_proxy_id: Optional[StrictStr] = Field(default=None, description="ID of the proxy to be used if the default proxy is overridden.", alias="overrideProxyId") collect_proxy_network_data: Optional[StrictBool] = Field(default=False, description="Indicates whether network data to the proxy should be collected.", alias="collectProxyNetworkData") + vault_credentials: Optional[List[TestVaultCredential]] = Field(default=None, description="List of credential IDs that are stored in an external vault.", alias="vaultCredentials") emulated_device_id: Optional[StrictStr] = Field(default=None, description="ID of the emulated device, if specified when the test was created.", alias="emulatedDeviceId") target_time: Optional[Annotated[int, Field(le=180, strict=True, ge=1)]] = Field(default=10, description="Target completion time, in seconds. Defaults to 10. Cannot exceed the `timeLimit` value.", alias="targetTime") time_limit: Optional[Annotated[int, Field(le=180, strict=True, ge=5)]] = Field(default=30, description="Time limit for transaction in seconds.", alias="timeLimit") @@ -102,7 +106,7 @@ class WebTransactionInstantTest(BaseModel): randomized_start_time: Optional[StrictBool] = Field(default=False, description="Indicates whether agents should randomize the start time in each test round.", alias="randomizedStartTime") identify_agent_traffic_with_user_agent: Optional[StrictBool] = Field(default=False, description="Determines how agent traffic is identified: * `false`: Adds the `x-thousandeyes-agent: yes` header. * `true`: Appends `(ThousandEyes Agent)` to the `user-agent` header. For more information, see [Notes on Agent ID Strategy](https://docs.thousandeyes.com/product-documentation/browser-synthetics/test-settings-page-load-transaction#notes-on-agent-id-strategy). ", alias="identifyAgentTrafficWithUserAgent") credentials: Optional[List[StrictStr]] = Field(default=None, description="Contains a list of credential IDs (get `credentialId` from `/credentials` endpoint).") - __properties: ClassVar[List[str]] = ["createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "sharedWithAccounts", "authType", "agentInterfaces", "bandwidthMeasurements", "clientCertificate", "contentRegex", "customHeaders", "desiredStatusCode", "distributedTracing", "downloadLimit", "dnsOverride", "httpTargetTime", "httpTimeLimit", "httpVersion", "includeHeaders", "mtuMeasurements", "networkMeasurements", "numPathTraces", "oAuth", "password", "pathTraceMode", "probeMode", "protocol", "sslVersion", "sslVersionId", "url", "useNtlm", "userAgent", "username", "verifyCertificate", "allowUnsafeLegacyRenegotiation", "followRedirects", "fixedPacketRate", "overrideAgentProxy", "overrideProxyId", "collectProxyNetworkData", "emulatedDeviceId", "targetTime", "timeLimit", "transactionScript", "blockDomains", "disableScreenshot", "allowMicAndCamera", "allowGeolocation", "browserLanguage", "chromeOptions", "chromePolicies", "pageLoadingStrategy", "randomizedStartTime", "identifyAgentTrafficWithUserAgent", "credentials"] + __properties: ClassVar[List[str]] = ["createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "tags", "sharedWithAccounts", "authType", "agentInterfaces", "bandwidthMeasurements", "clientCertificate", "contentRegex", "customHeaders", "desiredStatusCode", "distributedTracing", "downloadLimit", "dnsOverride", "httpTargetTime", "httpTimeLimit", "httpVersion", "includeHeaders", "mtuMeasurements", "networkMeasurements", "numPathTraces", "oAuth", "password", "pathTraceMode", "probeMode", "protocol", "sslVersion", "sslVersionId", "url", "useNtlm", "userAgent", "username", "verifyCertificate", "allowUnsafeLegacyRenegotiation", "followRedirects", "fixedPacketRate", "overrideAgentProxy", "overrideProxyId", "collectProxyNetworkData", "vaultCredentials", "emulatedDeviceId", "targetTime", "timeLimit", "transactionScript", "blockDomains", "disableScreenshot", "allowMicAndCamera", "allowGeolocation", "browserLanguage", "chromeOptions", "chromePolicies", "pageLoadingStrategy", "randomizedStartTime", "identifyAgentTrafficWithUserAgent", "credentials"] model_config = ConfigDict( populate_by_name=True, @@ -146,6 +150,7 @@ class WebTransactionInstantTest(BaseModel): * 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([ "created_by", @@ -157,6 +162,7 @@ class WebTransactionInstantTest(BaseModel): "test_id", "type", "labels", + "tags", "shared_with_accounts", "ssl_version", ]) @@ -176,6 +182,13 @@ class WebTransactionInstantTest(BaseModel): if _item: _items.append(_item.to_dict()) _dict['labels'] = _items + # override the default output from pydantic by calling `to_dict()` of each item in tags (list) + _items = [] + if self.tags: + for _item in self.tags: + if _item: + _items.append(_item.to_dict()) + _dict['tags'] = _items # override the default output from pydantic by calling `to_dict()` of each item in shared_with_accounts (list) _items = [] if self.shared_with_accounts: @@ -192,6 +205,13 @@ class WebTransactionInstantTest(BaseModel): # override the default output from pydantic by calling `to_dict()` of o_auth if self.o_auth: _dict['oAuth'] = self.o_auth.to_dict() + # override the default output from pydantic by calling `to_dict()` of each item in vault_credentials (list) + _items = [] + if self.vault_credentials: + for _item in self.vault_credentials: + if _item: + _items.append(_item.to_dict()) + _dict['vaultCredentials'] = _items return _dict @classmethod @@ -216,6 +236,7 @@ class WebTransactionInstantTest(BaseModel): "type": obj.get("type"), "_links": TestLinks.from_dict(obj["_links"]) if obj.get("_links") is not None else None, "labels": [TestLabel.from_dict(_item) for _item in obj["labels"]] if obj.get("labels") is not None else None, + "tags": [TestTag.from_dict(_item) for _item in obj["tags"]] if obj.get("tags") is not None else None, "sharedWithAccounts": [SharedWithAccount.from_dict(_item) for _item in obj["sharedWithAccounts"]] if obj.get("sharedWithAccounts") is not None else None, "authType": obj.get("authType"), "agentInterfaces": AgentInterfaces.from_dict(obj["agentInterfaces"]) if obj.get("agentInterfaces") is not None else None, @@ -252,6 +273,7 @@ class WebTransactionInstantTest(BaseModel): "overrideAgentProxy": obj.get("overrideAgentProxy") if obj.get("overrideAgentProxy") is not None else False, "overrideProxyId": obj.get("overrideProxyId"), "collectProxyNetworkData": obj.get("collectProxyNetworkData") if obj.get("collectProxyNetworkData") is not None else False, + "vaultCredentials": [TestVaultCredential.from_dict(_item) for _item in obj["vaultCredentials"]] if obj.get("vaultCredentials") is not None else None, "emulatedDeviceId": obj.get("emulatedDeviceId"), "targetTime": obj.get("targetTime") if obj.get("targetTime") is not None else 10, "timeLimit": obj.get("timeLimit") if obj.get("timeLimit") is not None else 30, diff --git a/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/web_transaction_instant_test_request.py b/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/web_transaction_instant_test_request.py index 254211b4..6d201c13 100644 --- a/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/web_transaction_instant_test_request.py +++ b/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/web_transaction_instant_test_request.py @@ -31,6 +31,7 @@ from thousandeyes_sdk.instant_tests.models.test_path_trace_mode import TestPathT from thousandeyes_sdk.instant_tests.models.test_probe_mode import TestProbeMode from thousandeyes_sdk.instant_tests.models.test_protocol import TestProtocol from thousandeyes_sdk.instant_tests.models.test_ssl_version_id import TestSslVersionId +from thousandeyes_sdk.instant_tests.models.test_vault_credential import TestVaultCredential from typing import Optional, Set from typing_extensions import Self @@ -49,8 +50,6 @@ class WebTransactionInstantTestRequest(BaseModel): test_name: Optional[StrictStr] = Field(default=None, description="The name of the test. Test name must be unique.", alias="testName") type: Optional[StrictStr] = None links: Optional[TestLinks] = Field(default=None, alias="_links") - labels: Optional[List[StrictStr]] = Field(default=None, description="A list of test label identifiers (get `labelId` from `/labels` endpoint).") - shared_with_accounts: Optional[List[StrictStr]] = Field(default=None, description="A list of account group identifiers that the test is shared with (get `aid` from `/account-groups` endpoint).", alias="sharedWithAccounts") auth_type: Optional[TestAuthType] = Field(default=None, alias="authType") agent_interfaces: Optional[AgentInterfaces] = Field(default=None, alias="agentInterfaces") bandwidth_measurements: Optional[StrictBool] = Field(default=None, description="Set to `true` to enable bandwidth measurements, only applies to Enterprise agents assigned to the test.", alias="bandwidthMeasurements") @@ -86,6 +85,7 @@ class WebTransactionInstantTestRequest(BaseModel): override_agent_proxy: Optional[StrictBool] = Field(default=False, description="Flag indicating if a proxy other than the default should be used. To override the default proxy for agents, set to `true` and specify a value for `overrideProxyId`.", alias="overrideAgentProxy") override_proxy_id: Optional[StrictStr] = Field(default=None, description="ID of the proxy to be used if the default proxy is overridden.", alias="overrideProxyId") collect_proxy_network_data: Optional[StrictBool] = Field(default=False, description="Indicates whether network data to the proxy should be collected.", alias="collectProxyNetworkData") + vault_credentials: Optional[List[TestVaultCredential]] = Field(default=None, description="List of credential IDs that are stored in an external vault.", alias="vaultCredentials") emulated_device_id: Optional[StrictStr] = Field(default=None, description="ID of the emulated device, if specified when the test was created.", alias="emulatedDeviceId") target_time: Optional[Annotated[int, Field(le=180, strict=True, ge=1)]] = Field(default=10, description="Target completion time, in seconds. Defaults to 10. Cannot exceed the `timeLimit` value.", alias="targetTime") time_limit: Optional[Annotated[int, Field(le=180, strict=True, ge=5)]] = Field(default=30, description="Time limit for transaction in seconds.", alias="timeLimit") @@ -100,10 +100,12 @@ class WebTransactionInstantTestRequest(BaseModel): page_loading_strategy: Optional[TestPageLoadingStrategy] = Field(default=None, alias="pageLoadingStrategy") randomized_start_time: Optional[StrictBool] = Field(default=False, description="Indicates whether agents should randomize the start time in each test round.", alias="randomizedStartTime") identify_agent_traffic_with_user_agent: Optional[StrictBool] = Field(default=False, description="Determines how agent traffic is identified: * `false`: Adds the `x-thousandeyes-agent: yes` header. * `true`: Appends `(ThousandEyes Agent)` to the `user-agent` header. For more information, see [Notes on Agent ID Strategy](https://docs.thousandeyes.com/product-documentation/browser-synthetics/test-settings-page-load-transaction#notes-on-agent-id-strategy). ", alias="identifyAgentTrafficWithUserAgent") - credentials: Optional[List[StrictStr]] = Field(default=None, description="Contains a list of credential IDs (get `credentialId` from `/credentials` endpoint).") + labels: Optional[List[StrictStr]] = Field(default=None, description="A list of test label identifiers (get `labelId` from `/labels` endpoint).") tags: Optional[List[StrictStr]] = Field(default=None, description="A list of test tag identifiers (get `id` from `/tags` endpoint).") + shared_with_accounts: Optional[List[StrictStr]] = Field(default=None, description="A list of account group identifiers that the test is shared with (get `aid` from `/account-groups` endpoint).", alias="sharedWithAccounts") agents: List[TestAgent] = Field(description="A list of objects with `agentId` (required) and `sourceIpAddress` (optional).") - __properties: ClassVar[List[str]] = ["createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "sharedWithAccounts", "authType", "agentInterfaces", "bandwidthMeasurements", "clientCertificate", "contentRegex", "customHeaders", "desiredStatusCode", "distributedTracing", "downloadLimit", "dnsOverride", "httpTargetTime", "httpTimeLimit", "httpVersion", "includeHeaders", "mtuMeasurements", "networkMeasurements", "numPathTraces", "oAuth", "password", "pathTraceMode", "probeMode", "protocol", "sslVersion", "sslVersionId", "url", "useNtlm", "userAgent", "username", "verifyCertificate", "allowUnsafeLegacyRenegotiation", "followRedirects", "fixedPacketRate", "overrideAgentProxy", "overrideProxyId", "collectProxyNetworkData", "emulatedDeviceId", "targetTime", "timeLimit", "transactionScript", "blockDomains", "disableScreenshot", "allowMicAndCamera", "allowGeolocation", "browserLanguage", "chromeOptions", "chromePolicies", "pageLoadingStrategy", "randomizedStartTime", "identifyAgentTrafficWithUserAgent", "credentials", "tags", "agents"] + credentials: Optional[List[StrictStr]] = Field(default=None, description="Contains a list of credential IDs (get `credentialId` from `/credentials` endpoint).") + __properties: ClassVar[List[str]] = ["createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "authType", "agentInterfaces", "bandwidthMeasurements", "clientCertificate", "contentRegex", "customHeaders", "desiredStatusCode", "distributedTracing", "downloadLimit", "dnsOverride", "httpTargetTime", "httpTimeLimit", "httpVersion", "includeHeaders", "mtuMeasurements", "networkMeasurements", "numPathTraces", "oAuth", "password", "pathTraceMode", "probeMode", "protocol", "sslVersion", "sslVersionId", "url", "useNtlm", "userAgent", "username", "verifyCertificate", "allowUnsafeLegacyRenegotiation", "followRedirects", "fixedPacketRate", "overrideAgentProxy", "overrideProxyId", "collectProxyNetworkData", "vaultCredentials", "emulatedDeviceId", "targetTime", "timeLimit", "transactionScript", "blockDomains", "disableScreenshot", "allowMicAndCamera", "allowGeolocation", "browserLanguage", "chromeOptions", "chromePolicies", "pageLoadingStrategy", "randomizedStartTime", "identifyAgentTrafficWithUserAgent", "labels", "tags", "sharedWithAccounts", "agents", "credentials"] model_config = ConfigDict( populate_by_name=True, @@ -175,6 +177,13 @@ class WebTransactionInstantTestRequest(BaseModel): # override the default output from pydantic by calling `to_dict()` of o_auth if self.o_auth: _dict['oAuth'] = self.o_auth.to_dict() + # override the default output from pydantic by calling `to_dict()` of each item in vault_credentials (list) + _items = [] + if self.vault_credentials: + for _item in self.vault_credentials: + if _item: + _items.append(_item.to_dict()) + _dict['vaultCredentials'] = _items # override the default output from pydantic by calling `to_dict()` of each item in agents (list) _items = [] if self.agents: @@ -205,8 +214,6 @@ class WebTransactionInstantTestRequest(BaseModel): "testName": obj.get("testName"), "type": obj.get("type"), "_links": TestLinks.from_dict(obj["_links"]) if obj.get("_links") is not None else None, - "labels": obj.get("labels"), - "sharedWithAccounts": obj.get("sharedWithAccounts"), "authType": obj.get("authType"), "agentInterfaces": AgentInterfaces.from_dict(obj["agentInterfaces"]) if obj.get("agentInterfaces") is not None else None, "bandwidthMeasurements": obj.get("bandwidthMeasurements"), @@ -242,6 +249,7 @@ class WebTransactionInstantTestRequest(BaseModel): "overrideAgentProxy": obj.get("overrideAgentProxy") if obj.get("overrideAgentProxy") is not None else False, "overrideProxyId": obj.get("overrideProxyId"), "collectProxyNetworkData": obj.get("collectProxyNetworkData") if obj.get("collectProxyNetworkData") is not None else False, + "vaultCredentials": [TestVaultCredential.from_dict(_item) for _item in obj["vaultCredentials"]] if obj.get("vaultCredentials") is not None else None, "emulatedDeviceId": obj.get("emulatedDeviceId"), "targetTime": obj.get("targetTime") if obj.get("targetTime") is not None else 10, "timeLimit": obj.get("timeLimit") if obj.get("timeLimit") is not None else 30, @@ -256,9 +264,11 @@ class WebTransactionInstantTestRequest(BaseModel): "pageLoadingStrategy": obj.get("pageLoadingStrategy"), "randomizedStartTime": obj.get("randomizedStartTime") if obj.get("randomizedStartTime") is not None else False, "identifyAgentTrafficWithUserAgent": obj.get("identifyAgentTrafficWithUserAgent") if obj.get("identifyAgentTrafficWithUserAgent") is not None else False, - "credentials": obj.get("credentials"), + "labels": obj.get("labels"), "tags": obj.get("tags"), - "agents": [TestAgent.from_dict(_item) for _item in obj["agents"]] if obj.get("agents") is not None else None + "sharedWithAccounts": obj.get("sharedWithAccounts"), + "agents": [TestAgent.from_dict(_item) for _item in obj["agents"]] if obj.get("agents") is not None else None, + "credentials": obj.get("credentials") }) return _obj diff --git a/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/web_transaction_instant_test_response.py b/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/web_transaction_instant_test_response.py index d69dc66f..f73351f1 100644 --- a/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/web_transaction_instant_test_response.py +++ b/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/web_transaction_instant_test_response.py @@ -33,6 +33,8 @@ from thousandeyes_sdk.instant_tests.models.test_path_trace_mode import TestPathT from thousandeyes_sdk.instant_tests.models.test_probe_mode import TestProbeMode from thousandeyes_sdk.instant_tests.models.test_protocol import TestProtocol from thousandeyes_sdk.instant_tests.models.test_ssl_version_id import TestSslVersionId +from thousandeyes_sdk.instant_tests.models.test_tag import TestTag +from thousandeyes_sdk.instant_tests.models.test_vault_credential import TestVaultCredential from typing import Optional, Set from typing_extensions import Self @@ -52,6 +54,7 @@ class WebTransactionInstantTestResponse(BaseModel): type: Optional[StrictStr] = None links: Optional[TestLinks] = Field(default=None, alias="_links") labels: Optional[List[TestLabel]] = Field(default=None, description="Labels to which the test is assigned. This field is not returned for Instant Tests.") + tags: Optional[List[TestTag]] = Field(default=None, description="Tags assigned to the test. Returned only when `expand=tag` is specified. This field is not returned for Instant Tests. For more information, see `/tags`.") shared_with_accounts: Optional[List[SharedWithAccount]] = Field(default=None, alias="sharedWithAccounts") auth_type: Optional[TestAuthType] = Field(default=None, alias="authType") agent_interfaces: Optional[AgentInterfaces] = Field(default=None, alias="agentInterfaces") @@ -88,6 +91,7 @@ class WebTransactionInstantTestResponse(BaseModel): override_agent_proxy: Optional[StrictBool] = Field(default=False, description="Flag indicating if a proxy other than the default should be used. To override the default proxy for agents, set to `true` and specify a value for `overrideProxyId`.", alias="overrideAgentProxy") override_proxy_id: Optional[StrictStr] = Field(default=None, description="ID of the proxy to be used if the default proxy is overridden.", alias="overrideProxyId") collect_proxy_network_data: Optional[StrictBool] = Field(default=False, description="Indicates whether network data to the proxy should be collected.", alias="collectProxyNetworkData") + vault_credentials: Optional[List[TestVaultCredential]] = Field(default=None, description="List of credential IDs that are stored in an external vault.", alias="vaultCredentials") emulated_device_id: Optional[StrictStr] = Field(default=None, description="ID of the emulated device, if specified when the test was created.", alias="emulatedDeviceId") target_time: Optional[Annotated[int, Field(le=180, strict=True, ge=1)]] = Field(default=10, description="Target completion time, in seconds. Defaults to 10. Cannot exceed the `timeLimit` value.", alias="targetTime") time_limit: Optional[Annotated[int, Field(le=180, strict=True, ge=5)]] = Field(default=30, description="Time limit for transaction in seconds.", alias="timeLimit") @@ -104,7 +108,7 @@ class WebTransactionInstantTestResponse(BaseModel): identify_agent_traffic_with_user_agent: Optional[StrictBool] = Field(default=False, description="Determines how agent traffic is identified: * `false`: Adds the `x-thousandeyes-agent: yes` header. * `true`: Appends `(ThousandEyes Agent)` to the `user-agent` header. For more information, see [Notes on Agent ID Strategy](https://docs.thousandeyes.com/product-documentation/browser-synthetics/test-settings-page-load-transaction#notes-on-agent-id-strategy). ", alias="identifyAgentTrafficWithUserAgent") credentials: Optional[List[StrictStr]] = Field(default=None, description="Contains a list of credential IDs (get `credentialId` from `/credentials` endpoint).") agents: Optional[List[AgentResponse]] = Field(default=None, description="Contains list of agents.") - __properties: ClassVar[List[str]] = ["createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "sharedWithAccounts", "authType", "agentInterfaces", "bandwidthMeasurements", "clientCertificate", "contentRegex", "customHeaders", "desiredStatusCode", "distributedTracing", "downloadLimit", "dnsOverride", "httpTargetTime", "httpTimeLimit", "httpVersion", "includeHeaders", "mtuMeasurements", "networkMeasurements", "numPathTraces", "oAuth", "password", "pathTraceMode", "probeMode", "protocol", "sslVersion", "sslVersionId", "url", "useNtlm", "userAgent", "username", "verifyCertificate", "allowUnsafeLegacyRenegotiation", "followRedirects", "fixedPacketRate", "overrideAgentProxy", "overrideProxyId", "collectProxyNetworkData", "emulatedDeviceId", "targetTime", "timeLimit", "transactionScript", "blockDomains", "disableScreenshot", "allowMicAndCamera", "allowGeolocation", "browserLanguage", "chromeOptions", "chromePolicies", "pageLoadingStrategy", "randomizedStartTime", "identifyAgentTrafficWithUserAgent", "credentials", "agents"] + __properties: ClassVar[List[str]] = ["createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "tags", "sharedWithAccounts", "authType", "agentInterfaces", "bandwidthMeasurements", "clientCertificate", "contentRegex", "customHeaders", "desiredStatusCode", "distributedTracing", "downloadLimit", "dnsOverride", "httpTargetTime", "httpTimeLimit", "httpVersion", "includeHeaders", "mtuMeasurements", "networkMeasurements", "numPathTraces", "oAuth", "password", "pathTraceMode", "probeMode", "protocol", "sslVersion", "sslVersionId", "url", "useNtlm", "userAgent", "username", "verifyCertificate", "allowUnsafeLegacyRenegotiation", "followRedirects", "fixedPacketRate", "overrideAgentProxy", "overrideProxyId", "collectProxyNetworkData", "vaultCredentials", "emulatedDeviceId", "targetTime", "timeLimit", "transactionScript", "blockDomains", "disableScreenshot", "allowMicAndCamera", "allowGeolocation", "browserLanguage", "chromeOptions", "chromePolicies", "pageLoadingStrategy", "randomizedStartTime", "identifyAgentTrafficWithUserAgent", "credentials", "agents"] model_config = ConfigDict( populate_by_name=True, @@ -148,6 +152,7 @@ class WebTransactionInstantTestResponse(BaseModel): * 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([ "created_by", @@ -159,6 +164,7 @@ class WebTransactionInstantTestResponse(BaseModel): "test_id", "type", "labels", + "tags", "shared_with_accounts", "ssl_version", ]) @@ -178,6 +184,13 @@ class WebTransactionInstantTestResponse(BaseModel): if _item: _items.append(_item.to_dict()) _dict['labels'] = _items + # override the default output from pydantic by calling `to_dict()` of each item in tags (list) + _items = [] + if self.tags: + for _item in self.tags: + if _item: + _items.append(_item.to_dict()) + _dict['tags'] = _items # override the default output from pydantic by calling `to_dict()` of each item in shared_with_accounts (list) _items = [] if self.shared_with_accounts: @@ -194,6 +207,13 @@ class WebTransactionInstantTestResponse(BaseModel): # override the default output from pydantic by calling `to_dict()` of o_auth if self.o_auth: _dict['oAuth'] = self.o_auth.to_dict() + # override the default output from pydantic by calling `to_dict()` of each item in vault_credentials (list) + _items = [] + if self.vault_credentials: + for _item in self.vault_credentials: + if _item: + _items.append(_item.to_dict()) + _dict['vaultCredentials'] = _items # override the default output from pydantic by calling `to_dict()` of each item in agents (list) _items = [] if self.agents: @@ -225,6 +245,7 @@ class WebTransactionInstantTestResponse(BaseModel): "type": obj.get("type"), "_links": TestLinks.from_dict(obj["_links"]) if obj.get("_links") is not None else None, "labels": [TestLabel.from_dict(_item) for _item in obj["labels"]] if obj.get("labels") is not None else None, + "tags": [TestTag.from_dict(_item) for _item in obj["tags"]] if obj.get("tags") is not None else None, "sharedWithAccounts": [SharedWithAccount.from_dict(_item) for _item in obj["sharedWithAccounts"]] if obj.get("sharedWithAccounts") is not None else None, "authType": obj.get("authType"), "agentInterfaces": AgentInterfaces.from_dict(obj["agentInterfaces"]) if obj.get("agentInterfaces") is not None else None, @@ -261,6 +282,7 @@ class WebTransactionInstantTestResponse(BaseModel): "overrideAgentProxy": obj.get("overrideAgentProxy") if obj.get("overrideAgentProxy") is not None else False, "overrideProxyId": obj.get("overrideProxyId"), "collectProxyNetworkData": obj.get("collectProxyNetworkData") if obj.get("collectProxyNetworkData") is not None else False, + "vaultCredentials": [TestVaultCredential.from_dict(_item) for _item in obj["vaultCredentials"]] if obj.get("vaultCredentials") is not None else None, "emulatedDeviceId": obj.get("emulatedDeviceId"), "targetTime": obj.get("targetTime") if obj.get("targetTime") is not None else 10, "timeLimit": obj.get("timeLimit") if obj.get("timeLimit") is not None else 30, diff --git a/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/web_transaction_properties.py b/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/web_transaction_properties.py index a69a6a29..b1202b74 100644 --- a/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/web_transaction_properties.py +++ b/thousandeyes-sdk-instant-tests/src/thousandeyes_sdk/instant_tests/models/web_transaction_properties.py @@ -28,6 +28,7 @@ from thousandeyes_sdk.instant_tests.models.test_path_trace_mode import TestPathT from thousandeyes_sdk.instant_tests.models.test_probe_mode import TestProbeMode from thousandeyes_sdk.instant_tests.models.test_protocol import TestProtocol from thousandeyes_sdk.instant_tests.models.test_ssl_version_id import TestSslVersionId +from thousandeyes_sdk.instant_tests.models.test_vault_credential import TestVaultCredential from typing import Optional, Set from typing_extensions import Self @@ -70,6 +71,7 @@ class WebTransactionProperties(BaseModel): override_agent_proxy: Optional[StrictBool] = Field(default=False, description="Flag indicating if a proxy other than the default should be used. To override the default proxy for agents, set to `true` and specify a value for `overrideProxyId`.", alias="overrideAgentProxy") override_proxy_id: Optional[StrictStr] = Field(default=None, description="ID of the proxy to be used if the default proxy is overridden.", alias="overrideProxyId") collect_proxy_network_data: Optional[StrictBool] = Field(default=False, description="Indicates whether network data to the proxy should be collected.", alias="collectProxyNetworkData") + vault_credentials: Optional[List[TestVaultCredential]] = Field(default=None, description="List of credential IDs that are stored in an external vault.", alias="vaultCredentials") emulated_device_id: Optional[StrictStr] = Field(default=None, description="ID of the emulated device, if specified when the test was created.", alias="emulatedDeviceId") target_time: Optional[Annotated[int, Field(le=180, strict=True, ge=1)]] = Field(default=10, description="Target completion time, in seconds. Defaults to 10. Cannot exceed the `timeLimit` value.", alias="targetTime") time_limit: Optional[Annotated[int, Field(le=180, strict=True, ge=5)]] = Field(default=30, description="Time limit for transaction in seconds.", alias="timeLimit") @@ -85,7 +87,7 @@ class WebTransactionProperties(BaseModel): randomized_start_time: Optional[StrictBool] = Field(default=False, description="Indicates whether agents should randomize the start time in each test round.", alias="randomizedStartTime") type: Optional[StrictStr] = None identify_agent_traffic_with_user_agent: Optional[StrictBool] = Field(default=False, description="Determines how agent traffic is identified: * `false`: Adds the `x-thousandeyes-agent: yes` header. * `true`: Appends `(ThousandEyes Agent)` to the `user-agent` header. For more information, see [Notes on Agent ID Strategy](https://docs.thousandeyes.com/product-documentation/browser-synthetics/test-settings-page-load-transaction#notes-on-agent-id-strategy). ", alias="identifyAgentTrafficWithUserAgent") - __properties: ClassVar[List[str]] = ["authType", "agentInterfaces", "bandwidthMeasurements", "clientCertificate", "contentRegex", "customHeaders", "desiredStatusCode", "distributedTracing", "downloadLimit", "dnsOverride", "httpTargetTime", "httpTimeLimit", "httpVersion", "includeHeaders", "mtuMeasurements", "networkMeasurements", "numPathTraces", "oAuth", "password", "pathTraceMode", "probeMode", "protocol", "sslVersion", "sslVersionId", "url", "useNtlm", "userAgent", "username", "verifyCertificate", "allowUnsafeLegacyRenegotiation", "followRedirects", "fixedPacketRate", "overrideAgentProxy", "overrideProxyId", "collectProxyNetworkData", "emulatedDeviceId", "targetTime", "timeLimit", "transactionScript", "blockDomains", "disableScreenshot", "allowMicAndCamera", "allowGeolocation", "browserLanguage", "chromeOptions", "chromePolicies", "pageLoadingStrategy", "randomizedStartTime", "type", "identifyAgentTrafficWithUserAgent"] + __properties: ClassVar[List[str]] = ["authType", "agentInterfaces", "bandwidthMeasurements", "clientCertificate", "contentRegex", "customHeaders", "desiredStatusCode", "distributedTracing", "downloadLimit", "dnsOverride", "httpTargetTime", "httpTimeLimit", "httpVersion", "includeHeaders", "mtuMeasurements", "networkMeasurements", "numPathTraces", "oAuth", "password", "pathTraceMode", "probeMode", "protocol", "sslVersion", "sslVersionId", "url", "useNtlm", "userAgent", "username", "verifyCertificate", "allowUnsafeLegacyRenegotiation", "followRedirects", "fixedPacketRate", "overrideAgentProxy", "overrideProxyId", "collectProxyNetworkData", "vaultCredentials", "emulatedDeviceId", "targetTime", "timeLimit", "transactionScript", "blockDomains", "disableScreenshot", "allowMicAndCamera", "allowGeolocation", "browserLanguage", "chromeOptions", "chromePolicies", "pageLoadingStrategy", "randomizedStartTime", "type", "identifyAgentTrafficWithUserAgent"] model_config = ConfigDict( populate_by_name=True, @@ -140,6 +142,13 @@ class WebTransactionProperties(BaseModel): # override the default output from pydantic by calling `to_dict()` of o_auth if self.o_auth: _dict['oAuth'] = self.o_auth.to_dict() + # override the default output from pydantic by calling `to_dict()` of each item in vault_credentials (list) + _items = [] + if self.vault_credentials: + for _item in self.vault_credentials: + if _item: + _items.append(_item.to_dict()) + _dict['vaultCredentials'] = _items return _dict @classmethod @@ -187,6 +196,7 @@ class WebTransactionProperties(BaseModel): "overrideAgentProxy": obj.get("overrideAgentProxy") if obj.get("overrideAgentProxy") is not None else False, "overrideProxyId": obj.get("overrideProxyId"), "collectProxyNetworkData": obj.get("collectProxyNetworkData") if obj.get("collectProxyNetworkData") is not None else False, + "vaultCredentials": [TestVaultCredential.from_dict(_item) for _item in obj["vaultCredentials"]] if obj.get("vaultCredentials") is not None else None, "emulatedDeviceId": obj.get("emulatedDeviceId"), "targetTime": obj.get("targetTime") if obj.get("targetTime") is not None else 10, "timeLimit": obj.get("timeLimit") if obj.get("timeLimit") is not None else 30, diff --git a/thousandeyes-sdk-instant-tests/test/test_agent_to_agent_instant_tests_api.py b/thousandeyes-sdk-instant-tests/test/test_agent_to_agent_instant_tests_api.py index dea3b8ec..94b3a080 100644 --- a/thousandeyes-sdk-instant-tests/test/test_agent_to_agent_instant_tests_api.py +++ b/thousandeyes-sdk-instant-tests/test/test_agent_to_agent_instant_tests_api.py @@ -135,37 +135,56 @@ class TestAgentToAgentInstantTestsApi(unittest.TestCase): "name" : "Artem label", "isBuiltin" : false } ], + "tags" : [ { + "id" : "5aeab5d5-0d34-4d44-a7ac-fb440185295c", + "value" : "San Francisco", + "key" : "Location" + }, { + "id" : "5aeab5d5-0d34-4d44-a7ac-fb440185295c", + "value" : "San Francisco", + "key" : "Location" + } ], "agents" : [ { "agentId" : "281474976710706", "agentType" : "enterprise-cluster", - "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], "prefix" : "99.128.0.0/11", "coordinates" : { "latitude" : 37.77493, "longitude" : -122.41942 }, "agentName" : "thousandeyes-stg-va-254", - "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], - "location" : "San Francisco Bay Area", + "networkProviderInfo" : { + "asn" : 7018, + "name" : "AT&T Services, Inc.", + "type" : "isp" + }, "countryId" : "US", "enabled" : true, "network" : "AT&T Services, Inc. (AS 7018)", + "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], + "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], + "location" : "San Francisco Bay Area", "verifySslCertificates" : true }, { "agentId" : "281474976710706", "agentType" : "enterprise-cluster", - "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], "prefix" : "99.128.0.0/11", "coordinates" : { "latitude" : 37.77493, "longitude" : -122.41942 }, "agentName" : "thousandeyes-stg-va-254", - "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], - "location" : "San Francisco Bay Area", + "networkProviderInfo" : { + "asn" : 7018, + "name" : "AT&T Services, Inc.", + "type" : "isp" + }, "countryId" : "US", "enabled" : true, "network" : "AT&T Services, Inc. (AS 7018)", + "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], + "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], + "location" : "San Francisco Bay Area", "verifySslCertificates" : true } ], "createdDate" : "2022-07-17T22:00:54Z", diff --git a/thousandeyes-sdk-instant-tests/test/test_agent_to_server_instant_tests_api.py b/thousandeyes-sdk-instant-tests/test/test_agent_to_server_instant_tests_api.py index e89e0fab..4cbc0252 100644 --- a/thousandeyes-sdk-instant-tests/test/test_agent_to_server_instant_tests_api.py +++ b/thousandeyes-sdk-instant-tests/test/test_agent_to_server_instant_tests_api.py @@ -81,8 +81,8 @@ class TestAgentToServerInstantTestsApi(unittest.TestCase): "randomizedStartTime" : false, "modifiedDate" : "2022-07-17T22:00:54Z", "testId" : "281474976710706", - "sharedWithAccounts" : [ "1234", "12345" ], "pingPayloadSize" : 112, + "sharedWithAccounts" : [ "1234", "12345" ], "continuousMode" : false } """ @@ -137,37 +137,56 @@ class TestAgentToServerInstantTestsApi(unittest.TestCase): "name" : "Artem label", "isBuiltin" : false } ], + "tags" : [ { + "id" : "5aeab5d5-0d34-4d44-a7ac-fb440185295c", + "value" : "San Francisco", + "key" : "Location" + }, { + "id" : "5aeab5d5-0d34-4d44-a7ac-fb440185295c", + "value" : "San Francisco", + "key" : "Location" + } ], "agents" : [ { "agentId" : "281474976710706", "agentType" : "enterprise-cluster", - "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], "prefix" : "99.128.0.0/11", "coordinates" : { "latitude" : 37.77493, "longitude" : -122.41942 }, "agentName" : "thousandeyes-stg-va-254", - "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], - "location" : "San Francisco Bay Area", + "networkProviderInfo" : { + "asn" : 7018, + "name" : "AT&T Services, Inc.", + "type" : "isp" + }, "countryId" : "US", "enabled" : true, "network" : "AT&T Services, Inc. (AS 7018)", + "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], + "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], + "location" : "San Francisco Bay Area", "verifySslCertificates" : true }, { "agentId" : "281474976710706", "agentType" : "enterprise-cluster", - "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], "prefix" : "99.128.0.0/11", "coordinates" : { "latitude" : 37.77493, "longitude" : -122.41942 }, "agentName" : "thousandeyes-stg-va-254", - "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], - "location" : "San Francisco Bay Area", + "networkProviderInfo" : { + "asn" : 7018, + "name" : "AT&T Services, Inc.", + "type" : "isp" + }, "countryId" : "US", "enabled" : true, "network" : "AT&T Services, Inc. (AS 7018)", + "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], + "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], + "location" : "San Francisco Bay Area", "verifySslCertificates" : true } ], "createdDate" : "2022-07-17T22:00:54Z", diff --git a/thousandeyes-sdk-instant-tests/test/test_api_instant_tests_api.py b/thousandeyes-sdk-instant-tests/test/test_api_instant_tests_api.py index 5af8dcce..2786c920 100644 --- a/thousandeyes-sdk-instant-tests/test/test_api_instant_tests_api.py +++ b/thousandeyes-sdk-instant-tests/test/test_api_instant_tests_api.py @@ -136,6 +136,13 @@ class TestAPIInstantTestsApi(unittest.TestCase): "username" : "ThousandEyesUserName" } ], "type" : "api", + "vaultCredentials" : [ { + "secretId" : "f27e85b2-318b-4145-b5aa-c9dc8d8b0819", + "target" : "username" + }, { + "secretId" : "f27e85b2-318b-4145-b5aa-c9dc8d8b0819", + "target" : "username" + } ], "protocol" : "tcp", "collectProxyNetworkData" : false, "followRedirects" : true, @@ -289,6 +296,13 @@ class TestAPIInstantTestsApi(unittest.TestCase): "username" : "ThousandEyesUserName" } ], "type" : "api", + "vaultCredentials" : [ { + "secretId" : "f27e85b2-318b-4145-b5aa-c9dc8d8b0819", + "target" : "username" + }, { + "secretId" : "f27e85b2-318b-4145-b5aa-c9dc8d8b0819", + "target" : "username" + } ], "protocol" : "tcp", "collectProxyNetworkData" : false, "followRedirects" : true, @@ -319,37 +333,56 @@ class TestAPIInstantTestsApi(unittest.TestCase): "name" : "Artem label", "isBuiltin" : false } ], + "tags" : [ { + "id" : "5aeab5d5-0d34-4d44-a7ac-fb440185295c", + "value" : "San Francisco", + "key" : "Location" + }, { + "id" : "5aeab5d5-0d34-4d44-a7ac-fb440185295c", + "value" : "San Francisco", + "key" : "Location" + } ], "agents" : [ { "agentId" : "281474976710706", "agentType" : "enterprise-cluster", - "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], "prefix" : "99.128.0.0/11", "coordinates" : { "latitude" : 37.77493, "longitude" : -122.41942 }, "agentName" : "thousandeyes-stg-va-254", - "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], - "location" : "San Francisco Bay Area", + "networkProviderInfo" : { + "asn" : 7018, + "name" : "AT&T Services, Inc.", + "type" : "isp" + }, "countryId" : "US", "enabled" : true, "network" : "AT&T Services, Inc. (AS 7018)", + "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], + "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], + "location" : "San Francisco Bay Area", "verifySslCertificates" : true }, { "agentId" : "281474976710706", "agentType" : "enterprise-cluster", - "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], "prefix" : "99.128.0.0/11", "coordinates" : { "latitude" : 37.77493, "longitude" : -122.41942 }, "agentName" : "thousandeyes-stg-va-254", - "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], - "location" : "San Francisco Bay Area", + "networkProviderInfo" : { + "asn" : 7018, + "name" : "AT&T Services, Inc.", + "type" : "isp" + }, "countryId" : "US", "enabled" : true, "network" : "AT&T Services, Inc. (AS 7018)", + "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], + "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], + "location" : "San Francisco Bay Area", "verifySslCertificates" : true } ], "timeLimit" : 19, diff --git a/thousandeyes-sdk-instant-tests/test/test_dns_server_instant_tests_api.py b/thousandeyes-sdk-instant-tests/test/test_dns_server_instant_tests_api.py index 3deb41f4..a5cd6436 100644 --- a/thousandeyes-sdk-instant-tests/test/test_dns_server_instant_tests_api.py +++ b/thousandeyes-sdk-instant-tests/test/test_dns_server_instant_tests_api.py @@ -144,37 +144,56 @@ class TestDNSServerInstantTestsApi(unittest.TestCase): "name" : "Artem label", "isBuiltin" : false } ], + "tags" : [ { + "id" : "5aeab5d5-0d34-4d44-a7ac-fb440185295c", + "value" : "San Francisco", + "key" : "Location" + }, { + "id" : "5aeab5d5-0d34-4d44-a7ac-fb440185295c", + "value" : "San Francisco", + "key" : "Location" + } ], "agents" : [ { "agentId" : "281474976710706", "agentType" : "enterprise-cluster", - "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], "prefix" : "99.128.0.0/11", "coordinates" : { "latitude" : 37.77493, "longitude" : -122.41942 }, "agentName" : "thousandeyes-stg-va-254", - "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], - "location" : "San Francisco Bay Area", + "networkProviderInfo" : { + "asn" : 7018, + "name" : "AT&T Services, Inc.", + "type" : "isp" + }, "countryId" : "US", "enabled" : true, "network" : "AT&T Services, Inc. (AS 7018)", + "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], + "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], + "location" : "San Francisco Bay Area", "verifySslCertificates" : true }, { "agentId" : "281474976710706", "agentType" : "enterprise-cluster", - "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], "prefix" : "99.128.0.0/11", "coordinates" : { "latitude" : 37.77493, "longitude" : -122.41942 }, "agentName" : "thousandeyes-stg-va-254", - "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], - "location" : "San Francisco Bay Area", + "networkProviderInfo" : { + "asn" : 7018, + "name" : "AT&T Services, Inc.", + "type" : "isp" + }, "countryId" : "US", "enabled" : true, "network" : "AT&T Services, Inc. (AS 7018)", + "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], + "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], + "location" : "San Francisco Bay Area", "verifySslCertificates" : true } ], "createdDate" : "2022-07-17T22:00:54Z", diff --git a/thousandeyes-sdk-instant-tests/test/test_dns_trace_instant_tests_api.py b/thousandeyes-sdk-instant-tests/test/test_dns_trace_instant_tests_api.py index 6929da13..e66a50eb 100644 --- a/thousandeyes-sdk-instant-tests/test/test_dns_trace_instant_tests_api.py +++ b/thousandeyes-sdk-instant-tests/test/test_dns_trace_instant_tests_api.py @@ -114,37 +114,56 @@ class TestDNSTraceInstantTestsApi(unittest.TestCase): "name" : "Artem label", "isBuiltin" : false } ], + "tags" : [ { + "id" : "5aeab5d5-0d34-4d44-a7ac-fb440185295c", + "value" : "San Francisco", + "key" : "Location" + }, { + "id" : "5aeab5d5-0d34-4d44-a7ac-fb440185295c", + "value" : "San Francisco", + "key" : "Location" + } ], "agents" : [ { "agentId" : "281474976710706", "agentType" : "enterprise-cluster", - "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], "prefix" : "99.128.0.0/11", "coordinates" : { "latitude" : 37.77493, "longitude" : -122.41942 }, "agentName" : "thousandeyes-stg-va-254", - "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], - "location" : "San Francisco Bay Area", + "networkProviderInfo" : { + "asn" : 7018, + "name" : "AT&T Services, Inc.", + "type" : "isp" + }, "countryId" : "US", "enabled" : true, "network" : "AT&T Services, Inc. (AS 7018)", + "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], + "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], + "location" : "San Francisco Bay Area", "verifySslCertificates" : true }, { "agentId" : "281474976710706", "agentType" : "enterprise-cluster", - "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], "prefix" : "99.128.0.0/11", "coordinates" : { "latitude" : 37.77493, "longitude" : -122.41942 }, "agentName" : "thousandeyes-stg-va-254", - "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], - "location" : "San Francisco Bay Area", + "networkProviderInfo" : { + "asn" : 7018, + "name" : "AT&T Services, Inc.", + "type" : "isp" + }, "countryId" : "US", "enabled" : true, "network" : "AT&T Services, Inc. (AS 7018)", + "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], + "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], + "location" : "San Francisco Bay Area", "verifySslCertificates" : true } ], "createdDate" : "2022-07-17T22:00:54Z", diff --git a/thousandeyes-sdk-instant-tests/test/test_dnssec_instant_tests_api.py b/thousandeyes-sdk-instant-tests/test/test_dnssec_instant_tests_api.py index fc28e24c..34184aaa 100644 --- a/thousandeyes-sdk-instant-tests/test/test_dnssec_instant_tests_api.py +++ b/thousandeyes-sdk-instant-tests/test/test_dnssec_instant_tests_api.py @@ -112,37 +112,56 @@ class TestDNSSECInstantTestsApi(unittest.TestCase): "name" : "Artem label", "isBuiltin" : false } ], + "tags" : [ { + "id" : "5aeab5d5-0d34-4d44-a7ac-fb440185295c", + "value" : "San Francisco", + "key" : "Location" + }, { + "id" : "5aeab5d5-0d34-4d44-a7ac-fb440185295c", + "value" : "San Francisco", + "key" : "Location" + } ], "agents" : [ { "agentId" : "281474976710706", "agentType" : "enterprise-cluster", - "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], "prefix" : "99.128.0.0/11", "coordinates" : { "latitude" : 37.77493, "longitude" : -122.41942 }, "agentName" : "thousandeyes-stg-va-254", - "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], - "location" : "San Francisco Bay Area", + "networkProviderInfo" : { + "asn" : 7018, + "name" : "AT&T Services, Inc.", + "type" : "isp" + }, "countryId" : "US", "enabled" : true, "network" : "AT&T Services, Inc. (AS 7018)", + "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], + "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], + "location" : "San Francisco Bay Area", "verifySslCertificates" : true }, { "agentId" : "281474976710706", "agentType" : "enterprise-cluster", - "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], "prefix" : "99.128.0.0/11", "coordinates" : { "latitude" : 37.77493, "longitude" : -122.41942 }, "agentName" : "thousandeyes-stg-va-254", - "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], - "location" : "San Francisco Bay Area", + "networkProviderInfo" : { + "asn" : 7018, + "name" : "AT&T Services, Inc.", + "type" : "isp" + }, "countryId" : "US", "enabled" : true, "network" : "AT&T Services, Inc. (AS 7018)", + "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], + "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], + "location" : "San Francisco Bay Area", "verifySslCertificates" : true } ], "createdDate" : "2022-07-17T22:00:54Z", diff --git a/thousandeyes-sdk-instant-tests/test/test_ftp_server_instant_tests_api.py b/thousandeyes-sdk-instant-tests/test/test_ftp_server_instant_tests_api.py index ec2069ee..5bf8c6d6 100644 --- a/thousandeyes-sdk-instant-tests/test/test_ftp_server_instant_tests_api.py +++ b/thousandeyes-sdk-instant-tests/test/test_ftp_server_instant_tests_api.py @@ -144,37 +144,56 @@ class TestFTPServerInstantTestsApi(unittest.TestCase): "name" : "Artem label", "isBuiltin" : false } ], + "tags" : [ { + "id" : "5aeab5d5-0d34-4d44-a7ac-fb440185295c", + "value" : "San Francisco", + "key" : "Location" + }, { + "id" : "5aeab5d5-0d34-4d44-a7ac-fb440185295c", + "value" : "San Francisco", + "key" : "Location" + } ], "agents" : [ { "agentId" : "281474976710706", "agentType" : "enterprise-cluster", - "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], "prefix" : "99.128.0.0/11", "coordinates" : { "latitude" : 37.77493, "longitude" : -122.41942 }, "agentName" : "thousandeyes-stg-va-254", - "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], - "location" : "San Francisco Bay Area", + "networkProviderInfo" : { + "asn" : 7018, + "name" : "AT&T Services, Inc.", + "type" : "isp" + }, "countryId" : "US", "enabled" : true, "network" : "AT&T Services, Inc. (AS 7018)", + "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], + "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], + "location" : "San Francisco Bay Area", "verifySslCertificates" : true }, { "agentId" : "281474976710706", "agentType" : "enterprise-cluster", - "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], "prefix" : "99.128.0.0/11", "coordinates" : { "latitude" : 37.77493, "longitude" : -122.41942 }, "agentName" : "thousandeyes-stg-va-254", - "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], - "location" : "San Francisco Bay Area", + "networkProviderInfo" : { + "asn" : 7018, + "name" : "AT&T Services, Inc.", + "type" : "isp" + }, "countryId" : "US", "enabled" : true, "network" : "AT&T Services, Inc. (AS 7018)", + "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], + "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], + "location" : "San Francisco Bay Area", "verifySslCertificates" : true } ], "createdDate" : "2022-07-17T22:00:54Z", diff --git a/thousandeyes-sdk-instant-tests/test/test_http_page_load_instant_tests_api.py b/thousandeyes-sdk-instant-tests/test/test_http_page_load_instant_tests_api.py index aa6058d8..acc196f8 100644 --- a/thousandeyes-sdk-instant-tests/test/test_http_page_load_instant_tests_api.py +++ b/thousandeyes-sdk-instant-tests/test/test_http_page_load_instant_tests_api.py @@ -94,6 +94,13 @@ class TestHTTPPageLoadInstantTestsApi(unittest.TestCase): "description" : "ThousandEyes Test", "httpTimeLimit" : 5, "blockDomains" : "domain.com/", + "vaultCredentials" : [ { + "secretId" : "f27e85b2-318b-4145-b5aa-c9dc8d8b0819", + "target" : "username" + }, { + "secretId" : "f27e85b2-318b-4145-b5aa-c9dc8d8b0819", + "target" : "username" + } ], "allowGeolocation" : false, "allowUnsafeLegacyRenegotiation" : true, "fixedPacketRate" : 50, @@ -207,6 +214,15 @@ class TestHTTPPageLoadInstantTestsApi(unittest.TestCase): "name" : "Artem label", "isBuiltin" : false } ], + "tags" : [ { + "id" : "5aeab5d5-0d34-4d44-a7ac-fb440185295c", + "value" : "San Francisco", + "key" : "Location" + }, { + "id" : "5aeab5d5-0d34-4d44-a7ac-fb440185295c", + "value" : "San Francisco", + "key" : "Location" + } ], "randomizedStartTime" : false, "modifiedDate" : "2022-07-17T22:00:54Z", "emulatedDeviceId" : "2", @@ -224,6 +240,13 @@ class TestHTTPPageLoadInstantTestsApi(unittest.TestCase): "description" : "ThousandEyes Test", "httpTimeLimit" : 5, "blockDomains" : "domain.com/", + "vaultCredentials" : [ { + "secretId" : "f27e85b2-318b-4145-b5aa-c9dc8d8b0819", + "target" : "username" + }, { + "secretId" : "f27e85b2-318b-4145-b5aa-c9dc8d8b0819", + "target" : "username" + } ], "allowGeolocation" : false, "allowUnsafeLegacyRenegotiation" : true, "fixedPacketRate" : 50, @@ -257,34 +280,44 @@ class TestHTTPPageLoadInstantTestsApi(unittest.TestCase): "agents" : [ { "agentId" : "281474976710706", "agentType" : "enterprise-cluster", - "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], "prefix" : "99.128.0.0/11", "coordinates" : { "latitude" : 37.77493, "longitude" : -122.41942 }, "agentName" : "thousandeyes-stg-va-254", - "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], - "location" : "San Francisco Bay Area", + "networkProviderInfo" : { + "asn" : 7018, + "name" : "AT&T Services, Inc.", + "type" : "isp" + }, "countryId" : "US", "enabled" : true, "network" : "AT&T Services, Inc. (AS 7018)", + "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], + "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], + "location" : "San Francisco Bay Area", "verifySslCertificates" : true }, { "agentId" : "281474976710706", "agentType" : "enterprise-cluster", - "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], "prefix" : "99.128.0.0/11", "coordinates" : { "latitude" : 37.77493, "longitude" : -122.41942 }, "agentName" : "thousandeyes-stg-va-254", - "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], - "location" : "San Francisco Bay Area", + "networkProviderInfo" : { + "asn" : 7018, + "name" : "AT&T Services, Inc.", + "type" : "isp" + }, "countryId" : "US", "enabled" : true, "network" : "AT&T Services, Inc. (AS 7018)", + "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], + "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], + "location" : "San Francisco Bay Area", "verifySslCertificates" : true } ], "createdDate" : "2022-07-17T22:00:54Z", diff --git a/thousandeyes-sdk-instant-tests/test/test_http_server_instant_tests_api.py b/thousandeyes-sdk-instant-tests/test/test_http_server_instant_tests_api.py index ee067efb..4244690c 100644 --- a/thousandeyes-sdk-instant-tests/test/test_http_server_instant_tests_api.py +++ b/thousandeyes-sdk-instant-tests/test/test_http_server_instant_tests_api.py @@ -87,8 +87,16 @@ class TestHTTPServerInstantTestsApi(unittest.TestCase): "useNtlm" : false, "ipv6Policy" : "use-agent-policy", "downloadLimit" : 2048, + "requestMethod" : "get", "description" : "ThousandEyes Test", "httpTimeLimit" : 5, + "vaultCredentials" : [ { + "secretId" : "f27e85b2-318b-4145-b5aa-c9dc8d8b0819", + "target" : "username" + }, { + "secretId" : "f27e85b2-318b-4145-b5aa-c9dc8d8b0819", + "target" : "username" + } ], "allowUnsafeLegacyRenegotiation" : true, "fixedPacketRate" : 50, "httpVersion" : 2, @@ -194,6 +202,15 @@ class TestHTTPServerInstantTestsApi(unittest.TestCase): "name" : "Artem label", "isBuiltin" : false } ], + "tags" : [ { + "id" : "5aeab5d5-0d34-4d44-a7ac-fb440185295c", + "value" : "San Francisco", + "key" : "Location" + }, { + "id" : "5aeab5d5-0d34-4d44-a7ac-fb440185295c", + "value" : "San Francisco", + "key" : "Location" + } ], "randomizedStartTime" : false, "modifiedDate" : "2022-07-17T22:00:54Z", "sharedWithAccounts" : [ { @@ -208,8 +225,16 @@ class TestHTTPServerInstantTestsApi(unittest.TestCase): "useNtlm" : false, "ipv6Policy" : "use-agent-policy", "downloadLimit" : 2048, + "requestMethod" : "get", "description" : "ThousandEyes Test", "httpTimeLimit" : 5, + "vaultCredentials" : [ { + "secretId" : "f27e85b2-318b-4145-b5aa-c9dc8d8b0819", + "target" : "username" + }, { + "secretId" : "f27e85b2-318b-4145-b5aa-c9dc8d8b0819", + "target" : "username" + } ], "allowUnsafeLegacyRenegotiation" : true, "fixedPacketRate" : 50, "httpVersion" : 2, @@ -240,34 +265,44 @@ class TestHTTPServerInstantTestsApi(unittest.TestCase): "agents" : [ { "agentId" : "281474976710706", "agentType" : "enterprise-cluster", - "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], "prefix" : "99.128.0.0/11", "coordinates" : { "latitude" : 37.77493, "longitude" : -122.41942 }, "agentName" : "thousandeyes-stg-va-254", - "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], - "location" : "San Francisco Bay Area", + "networkProviderInfo" : { + "asn" : 7018, + "name" : "AT&T Services, Inc.", + "type" : "isp" + }, "countryId" : "US", "enabled" : true, "network" : "AT&T Services, Inc. (AS 7018)", + "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], + "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], + "location" : "San Francisco Bay Area", "verifySslCertificates" : true }, { "agentId" : "281474976710706", "agentType" : "enterprise-cluster", - "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], "prefix" : "99.128.0.0/11", "coordinates" : { "latitude" : 37.77493, "longitude" : -122.41942 }, "agentName" : "thousandeyes-stg-va-254", - "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], - "location" : "San Francisco Bay Area", + "networkProviderInfo" : { + "asn" : 7018, + "name" : "AT&T Services, Inc.", + "type" : "isp" + }, "countryId" : "US", "enabled" : true, "network" : "AT&T Services, Inc. (AS 7018)", + "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], + "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], + "location" : "San Francisco Bay Area", "verifySslCertificates" : true } ], "createdDate" : "2022-07-17T22:00:54Z", diff --git a/thousandeyes-sdk-instant-tests/test/test_sip_server_instant_tests_api.py b/thousandeyes-sdk-instant-tests/test/test_sip_server_instant_tests_api.py index b35ca6d8..5bb87910 100644 --- a/thousandeyes-sdk-instant-tests/test/test_sip_server_instant_tests_api.py +++ b/thousandeyes-sdk-instant-tests/test/test_sip_server_instant_tests_api.py @@ -144,37 +144,56 @@ class TestSIPServerInstantTestsApi(unittest.TestCase): "name" : "Artem label", "isBuiltin" : false } ], + "tags" : [ { + "id" : "5aeab5d5-0d34-4d44-a7ac-fb440185295c", + "value" : "San Francisco", + "key" : "Location" + }, { + "id" : "5aeab5d5-0d34-4d44-a7ac-fb440185295c", + "value" : "San Francisco", + "key" : "Location" + } ], "agents" : [ { "agentId" : "281474976710706", "agentType" : "enterprise-cluster", - "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], "prefix" : "99.128.0.0/11", "coordinates" : { "latitude" : 37.77493, "longitude" : -122.41942 }, "agentName" : "thousandeyes-stg-va-254", - "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], - "location" : "San Francisco Bay Area", + "networkProviderInfo" : { + "asn" : 7018, + "name" : "AT&T Services, Inc.", + "type" : "isp" + }, "countryId" : "US", "enabled" : true, "network" : "AT&T Services, Inc. (AS 7018)", + "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], + "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], + "location" : "San Francisco Bay Area", "verifySslCertificates" : true }, { "agentId" : "281474976710706", "agentType" : "enterprise-cluster", - "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], "prefix" : "99.128.0.0/11", "coordinates" : { "latitude" : 37.77493, "longitude" : -122.41942 }, "agentName" : "thousandeyes-stg-va-254", - "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], - "location" : "San Francisco Bay Area", + "networkProviderInfo" : { + "asn" : 7018, + "name" : "AT&T Services, Inc.", + "type" : "isp" + }, "countryId" : "US", "enabled" : true, "network" : "AT&T Services, Inc. (AS 7018)", + "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], + "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], + "location" : "San Francisco Bay Area", "verifySslCertificates" : true } ], "createdDate" : "2022-07-17T22:00:54Z", diff --git a/thousandeyes-sdk-instant-tests/test/test_voice_instant_tests_api.py b/thousandeyes-sdk-instant-tests/test/test_voice_instant_tests_api.py index 6cb0c7b6..91e2b8a6 100644 --- a/thousandeyes-sdk-instant-tests/test/test_voice_instant_tests_api.py +++ b/thousandeyes-sdk-instant-tests/test/test_voice_instant_tests_api.py @@ -88,7 +88,6 @@ class TestVoiceInstantTestsApi(unittest.TestCase): response_body_json = """ { - "numPathTraces" : 3, "_links" : { "testResults" : [ { "href" : "https://api.thousandeyes.com/v7/test-results/281474976710706/network" @@ -106,11 +105,17 @@ class TestVoiceInstantTestsApi(unittest.TestCase): "title" : "title" } }, - "liveShare" : false, - "savedEvent" : true, "description" : "ThousandEyes Test", "type" : "voice", "jitterBuffer" : 40, + "dscpId" : "0", + "duration" : 5, + "dscp" : "Best Effort (DSCP 0)", + "modifiedBy" : "user@user.com", + "testName" : "ThousandEyes Test", + "numPathTraces" : 3, + "liveShare" : false, + "savedEvent" : true, "labels" : [ { "labelId" : "961", "name" : "Artem label", @@ -120,51 +125,66 @@ class TestVoiceInstantTestsApi(unittest.TestCase): "name" : "Artem label", "isBuiltin" : false } ], + "tags" : [ { + "id" : "5aeab5d5-0d34-4d44-a7ac-fb440185295c", + "value" : "San Francisco", + "key" : "Location" + }, { + "id" : "5aeab5d5-0d34-4d44-a7ac-fb440185295c", + "value" : "San Francisco", + "key" : "Location" + } ], "agents" : [ { "agentId" : "281474976710706", "agentType" : "enterprise-cluster", - "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], "prefix" : "99.128.0.0/11", "coordinates" : { "latitude" : 37.77493, "longitude" : -122.41942 }, "agentName" : "thousandeyes-stg-va-254", - "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], - "location" : "San Francisco Bay Area", + "networkProviderInfo" : { + "asn" : 7018, + "name" : "AT&T Services, Inc.", + "type" : "isp" + }, "countryId" : "US", "enabled" : true, "network" : "AT&T Services, Inc. (AS 7018)", + "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], + "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], + "location" : "San Francisco Bay Area", "verifySslCertificates" : true }, { "agentId" : "281474976710706", "agentType" : "enterprise-cluster", - "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], "prefix" : "99.128.0.0/11", "coordinates" : { "latitude" : 37.77493, "longitude" : -122.41942 }, "agentName" : "thousandeyes-stg-va-254", - "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], - "location" : "San Francisco Bay Area", + "networkProviderInfo" : { + "asn" : 7018, + "name" : "AT&T Services, Inc.", + "type" : "isp" + }, "countryId" : "US", "enabled" : true, "network" : "AT&T Services, Inc. (AS 7018)", + "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], + "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], + "location" : "San Francisco Bay Area", "verifySslCertificates" : true } ], - "dscpId" : "0", - "duration" : 5, "codec" : "G.711 @ 64 Kbps", "codecId" : "0", "createdDate" : "2022-07-17T22:00:54Z", - "dscp" : "Best Effort (DSCP 0)", "createdBy" : "user@user.com", "port" : 1024, "randomizedStartTime" : false, "modifiedDate" : "2022-07-17T22:00:54Z", "targetAgentId" : "281474976710706", - "modifiedBy" : "user@user.com", "testId" : "281474976710706", "sharedWithAccounts" : [ { "name" : "Account name", @@ -172,8 +192,7 @@ class TestVoiceInstantTestsApi(unittest.TestCase): }, { "name" : "Account name", "aid" : "1234" - } ], - "testName" : "ThousandEyes Test" + } ] }""" response_loaded_json = json.loads(response_body_json) diff --git a/thousandeyes-sdk-instant-tests/test/test_web_transaction_instant_tests_api.py b/thousandeyes-sdk-instant-tests/test/test_web_transaction_instant_tests_api.py index 8600e3d8..42cc933a 100644 --- a/thousandeyes-sdk-instant-tests/test/test_web_transaction_instant_tests_api.py +++ b/thousandeyes-sdk-instant-tests/test/test_web_transaction_instant_tests_api.py @@ -95,6 +95,13 @@ class TestWebTransactionInstantTestsApi(unittest.TestCase): "description" : "ThousandEyes Test", "httpTimeLimit" : 5, "blockDomains" : "domain.com/", + "vaultCredentials" : [ { + "secretId" : "f27e85b2-318b-4145-b5aa-c9dc8d8b0819", + "target" : "username" + }, { + "secretId" : "f27e85b2-318b-4145-b5aa-c9dc8d8b0819", + "target" : "username" + } ], "allowGeolocation" : false, "allowUnsafeLegacyRenegotiation" : true, "fixedPacketRate" : 50, @@ -209,6 +216,15 @@ class TestWebTransactionInstantTestsApi(unittest.TestCase): "name" : "Artem label", "isBuiltin" : false } ], + "tags" : [ { + "id" : "5aeab5d5-0d34-4d44-a7ac-fb440185295c", + "value" : "San Francisco", + "key" : "Location" + }, { + "id" : "5aeab5d5-0d34-4d44-a7ac-fb440185295c", + "value" : "San Francisco", + "key" : "Location" + } ], "randomizedStartTime" : false, "modifiedDate" : "2022-07-17T22:00:54Z", "emulatedDeviceId" : "2", @@ -227,6 +243,13 @@ class TestWebTransactionInstantTestsApi(unittest.TestCase): "description" : "ThousandEyes Test", "httpTimeLimit" : 5, "blockDomains" : "domain.com/", + "vaultCredentials" : [ { + "secretId" : "f27e85b2-318b-4145-b5aa-c9dc8d8b0819", + "target" : "username" + }, { + "secretId" : "f27e85b2-318b-4145-b5aa-c9dc8d8b0819", + "target" : "username" + } ], "allowGeolocation" : false, "allowUnsafeLegacyRenegotiation" : true, "fixedPacketRate" : 50, @@ -259,34 +282,44 @@ class TestWebTransactionInstantTestsApi(unittest.TestCase): "agents" : [ { "agentId" : "281474976710706", "agentType" : "enterprise-cluster", - "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], "prefix" : "99.128.0.0/11", "coordinates" : { "latitude" : 37.77493, "longitude" : -122.41942 }, "agentName" : "thousandeyes-stg-va-254", - "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], - "location" : "San Francisco Bay Area", + "networkProviderInfo" : { + "asn" : 7018, + "name" : "AT&T Services, Inc.", + "type" : "isp" + }, "countryId" : "US", "enabled" : true, "network" : "AT&T Services, Inc. (AS 7018)", + "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], + "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], + "location" : "San Francisco Bay Area", "verifySslCertificates" : true }, { "agentId" : "281474976710706", "agentType" : "enterprise-cluster", - "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], "prefix" : "99.128.0.0/11", "coordinates" : { "latitude" : 37.77493, "longitude" : -122.41942 }, "agentName" : "thousandeyes-stg-va-254", - "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], - "location" : "San Francisco Bay Area", + "networkProviderInfo" : { + "asn" : 7018, + "name" : "AT&T Services, Inc.", + "type" : "isp" + }, "countryId" : "US", "enabled" : true, "network" : "AT&T Services, Inc. (AS 7018)", + "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], + "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], + "location" : "San Francisco Bay Area", "verifySslCertificates" : true } ], "timeLimit" : 30, diff --git a/thousandeyes-sdk-internet-insights/README.md b/thousandeyes-sdk-internet-insights/README.md index feac74e4..972ef1ac 100644 --- a/thousandeyes-sdk-internet-insights/README.md +++ b/thousandeyes-sdk-internet-insights/README.md @@ -16,7 +16,7 @@ For more information about Internet Insights, see the [Internet Insights](https: This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project: -- API version: 7.0.84 +- API version: 7.0.92 - Generator version: 7.6.0 - Build package: com.thousandeyes.api.codegen.ThousandeyesPythonGenerator diff --git a/thousandeyes-sdk-snapshots/README.md b/thousandeyes-sdk-snapshots/README.md index fec603d7..bc2d76cd 100644 --- a/thousandeyes-sdk-snapshots/README.md +++ b/thousandeyes-sdk-snapshots/README.md @@ -3,7 +3,7 @@ Creates a new test snapshot in ThousandEyes. This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project: -- API version: 7.0.84 +- API version: 7.0.92 - Generator version: 7.6.0 - Build package: com.thousandeyes.api.codegen.ThousandeyesPythonGenerator diff --git a/thousandeyes-sdk-streaming/.openapi-generator/FILES b/thousandeyes-sdk-streaming/.openapi-generator/FILES index c51b9381..fcda2a9e 100644 --- a/thousandeyes-sdk-streaming/.openapi-generator/FILES +++ b/thousandeyes-sdk-streaming/.openapi-generator/FILES @@ -9,6 +9,7 @@ docs/BadRequestError.md docs/CreateStreamResponse.md docs/DataModelVersion.md docs/EndpointAgentLabel.md +docs/EndpointAgentTag.md docs/EndpointType.md docs/ExporterConfig.md docs/ExporterConfigAuthorization.md @@ -28,7 +29,6 @@ docs/StreamStatusType.md docs/StreamType.md docs/StreamingApi.md docs/TagMatch.md -docs/TagMatchObjectType.md docs/TestMatch.md docs/TestMatchDomain.md docs/TestType.md @@ -47,6 +47,7 @@ src/thousandeyes_sdk/streaming/models/bad_request_error.py src/thousandeyes_sdk/streaming/models/create_stream_response.py src/thousandeyes_sdk/streaming/models/data_model_version.py src/thousandeyes_sdk/streaming/models/endpoint_agent_label.py +src/thousandeyes_sdk/streaming/models/endpoint_agent_tag.py src/thousandeyes_sdk/streaming/models/endpoint_type.py src/thousandeyes_sdk/streaming/models/exporter_config.py src/thousandeyes_sdk/streaming/models/exporter_config_authorization.py @@ -65,7 +66,6 @@ src/thousandeyes_sdk/streaming/models/stream_status.py src/thousandeyes_sdk/streaming/models/stream_status_type.py src/thousandeyes_sdk/streaming/models/stream_type.py src/thousandeyes_sdk/streaming/models/tag_match.py -src/thousandeyes_sdk/streaming/models/tag_match_object_type.py src/thousandeyes_sdk/streaming/models/test_match.py src/thousandeyes_sdk/streaming/models/test_match_domain.py src/thousandeyes_sdk/streaming/models/test_type.py diff --git a/thousandeyes-sdk-streaming/README.md b/thousandeyes-sdk-streaming/README.md index f3c503f2..28b46462 100644 --- a/thousandeyes-sdk-streaming/README.md +++ b/thousandeyes-sdk-streaming/README.md @@ -17,7 +17,7 @@ For more information about ThousandEyes for OpenTelemetry, see the [product docu This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project: -- API version: 7.0.84 +- API version: 7.0.92 - Generator version: 7.6.0 - Build package: com.thousandeyes.api.codegen.ThousandeyesPythonGenerator @@ -126,6 +126,7 @@ Class | Method | HTTP request | Description - [CreateStreamResponse](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-streaming/docs/CreateStreamResponse.md) - [DataModelVersion](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-streaming/docs/DataModelVersion.md) - [EndpointAgentLabel](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-streaming/docs/EndpointAgentLabel.md) + - [EndpointAgentTag](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-streaming/docs/EndpointAgentTag.md) - [EndpointType](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-streaming/docs/EndpointType.md) - [ExporterConfig](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-streaming/docs/ExporterConfig.md) - [ExporterConfigAuthorization](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-streaming/docs/ExporterConfigAuthorization.md) @@ -144,7 +145,6 @@ Class | Method | HTTP request | Description - [StreamStatusType](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-streaming/docs/StreamStatusType.md) - [StreamType](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-streaming/docs/StreamType.md) - [TagMatch](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-streaming/docs/TagMatch.md) - - [TagMatchObjectType](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-streaming/docs/TagMatchObjectType.md) - [TestMatch](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-streaming/docs/TestMatch.md) - [TestMatchDomain](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-streaming/docs/TestMatchDomain.md) - [TestType](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-streaming/docs/TestType.md) diff --git a/thousandeyes-sdk-streaming/docs/CreateStreamResponse.md b/thousandeyes-sdk-streaming/docs/CreateStreamResponse.md index 2520d8db..42c62a73 100644 --- a/thousandeyes-sdk-streaming/docs/CreateStreamResponse.md +++ b/thousandeyes-sdk-streaming/docs/CreateStreamResponse.md @@ -18,7 +18,8 @@ Name | Type | Description | Notes **test_match** | [**List[TestMatch]**](TestMatch.md) | A collection of tests to be included in the data stream. | [optional] **filters** | [**Filters**](Filters.md) | | [optional] **exporter_config** | [**ExporterConfig**](ExporterConfig.md) | | [optional] -**endpoint_agent_label** | [**List[EndpointAgentLabel]**](EndpointAgentLabel.md) | A collection of Endpoint Agent label IDs that determines what local network data is included in the data stream. | [optional] +**endpoint_agent_label** | [**List[EndpointAgentLabel]**](EndpointAgentLabel.md) | A collection of Endpoint Agent label IDs that determines what local network data is included in the data stream. `endpointAgentLabel` and `endpointAgentTag` represent the same data. Configure only one; both are synchronized. | [optional] +**endpoint_agent_tag** | [**List[EndpointAgentTag]**](EndpointAgentTag.md) | A collection of Endpoint Agent Tag IDs that determines what local network data is included in the data stream. `endpointAgentLabel` and `endpointAgentTag` represent the same data. Configure only one; both are synchronized. | [optional] **audit_operation** | [**AuditOperation**](AuditOperation.md) | | [optional] **stream_status** | [**StreamStatus**](StreamStatus.md) | | [optional] diff --git a/thousandeyes-sdk-streaming/docs/EndpointAgentLabel.md b/thousandeyes-sdk-streaming/docs/EndpointAgentLabel.md index 1dd0310a..46014b24 100644 --- a/thousandeyes-sdk-streaming/docs/EndpointAgentLabel.md +++ b/thousandeyes-sdk-streaming/docs/EndpointAgentLabel.md @@ -6,7 +6,7 @@ Endpoint Agent label configuration. Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- -**id** | **str** | The label ID of Endpoint Agent labels. | [optional] +**id** | **str** | The label ID of Endpoint Agent labels. | ## Example diff --git a/thousandeyes-sdk-streaming/docs/EndpointAgentTag.md b/thousandeyes-sdk-streaming/docs/EndpointAgentTag.md new file mode 100644 index 00000000..5b514e9d --- /dev/null +++ b/thousandeyes-sdk-streaming/docs/EndpointAgentTag.md @@ -0,0 +1,30 @@ +# EndpointAgentTag + +Endpoint Agent tag configuration. + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**id** | **str** | The tag ID of Endpoint Agent tags. | + +## Example + +```python +from thousandeyes_sdk.streaming.models.endpoint_agent_tag import EndpointAgentTag + +# TODO update the JSON string below +json = "{}" +# create an instance of EndpointAgentTag from a JSON string +endpoint_agent_tag_instance = EndpointAgentTag.from_json(json) +# print the JSON string representation of the object +print(EndpointAgentTag.to_json()) + +# convert the object into a dict +endpoint_agent_tag_dict = endpoint_agent_tag_instance.to_dict() +# create an instance of EndpointAgentTag from a dict +endpoint_agent_tag_from_dict = EndpointAgentTag.from_dict(endpoint_agent_tag_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/thousandeyes-sdk-streaming/docs/GetStreamResponse.md b/thousandeyes-sdk-streaming/docs/GetStreamResponse.md index 65cab8bd..65078eb9 100644 --- a/thousandeyes-sdk-streaming/docs/GetStreamResponse.md +++ b/thousandeyes-sdk-streaming/docs/GetStreamResponse.md @@ -18,7 +18,8 @@ Name | Type | Description | Notes **test_match** | [**List[TestMatch]**](TestMatch.md) | A collection of tests to be included in the data stream. | [optional] **filters** | [**Filters**](Filters.md) | | [optional] **exporter_config** | [**ExporterConfig**](ExporterConfig.md) | | [optional] -**endpoint_agent_label** | [**List[EndpointAgentLabel]**](EndpointAgentLabel.md) | A collection of Endpoint Agent label IDs that determines what local network data is included in the data stream. | [optional] +**endpoint_agent_label** | [**List[EndpointAgentLabel]**](EndpointAgentLabel.md) | A collection of Endpoint Agent label IDs that determines what local network data is included in the data stream. `endpointAgentLabel` and `endpointAgentTag` represent the same data. Configure only one; both are synchronized. | [optional] +**endpoint_agent_tag** | [**List[EndpointAgentTag]**](EndpointAgentTag.md) | A collection of Endpoint Agent Tag IDs that determines what local network data is included in the data stream. `endpointAgentLabel` and `endpointAgentTag` represent the same data. Configure only one; both are synchronized. | [optional] **audit_operation** | [**AuditOperationWithUpdate**](AuditOperationWithUpdate.md) | | [optional] **stream_status** | [**StreamStatus**](StreamStatus.md) | | [optional] diff --git a/thousandeyes-sdk-streaming/docs/PutStream.md b/thousandeyes-sdk-streaming/docs/PutStream.md index 519cfaf1..b2554a71 100644 --- a/thousandeyes-sdk-streaming/docs/PutStream.md +++ b/thousandeyes-sdk-streaming/docs/PutStream.md @@ -12,7 +12,8 @@ Name | Type | Description | Notes **enabled** | **bool** | Flag to enable or disable the stream integration. | [optional] **filters** | [**Filters**](Filters.md) | | [optional] **exporter_config** | [**ExporterConfig**](ExporterConfig.md) | | [optional] -**endpoint_agent_label** | [**List[EndpointAgentLabel]**](EndpointAgentLabel.md) | A collection of Endpoint Agent label IDs that determines what local network data is included in the data stream. | [optional] +**endpoint_agent_label** | [**List[EndpointAgentLabel]**](EndpointAgentLabel.md) | A collection of Endpoint Agent label IDs that determines what local network data is included in the data stream. `endpointAgentLabel` and `endpointAgentTag` represent the same data. Configure only one; both are synchronized. | [optional] +**endpoint_agent_tag** | [**List[EndpointAgentTag]**](EndpointAgentTag.md) | A collection of Endpoint Agent Tag IDs that determines what local network data is included in the data stream. `endpointAgentLabel` and `endpointAgentTag` represent the same data. Configure only one; both are synchronized. | [optional] ## Example diff --git a/thousandeyes-sdk-streaming/docs/Stream.md b/thousandeyes-sdk-streaming/docs/Stream.md index 4ba97f04..f754c1f3 100644 --- a/thousandeyes-sdk-streaming/docs/Stream.md +++ b/thousandeyes-sdk-streaming/docs/Stream.md @@ -12,7 +12,8 @@ Name | Type | Description | Notes **enabled** | **bool** | Flag to enable or disable the stream integration. | [optional] **filters** | [**Filters**](Filters.md) | | [optional] **exporter_config** | [**ExporterConfig**](ExporterConfig.md) | | [optional] -**endpoint_agent_label** | [**List[EndpointAgentLabel]**](EndpointAgentLabel.md) | A collection of Endpoint Agent label IDs that determines what local network data is included in the data stream. | [optional] +**endpoint_agent_label** | [**List[EndpointAgentLabel]**](EndpointAgentLabel.md) | A collection of Endpoint Agent label IDs that determines what local network data is included in the data stream. `endpointAgentLabel` and `endpointAgentTag` represent the same data. Configure only one; both are synchronized. | [optional] +**endpoint_agent_tag** | [**List[EndpointAgentTag]**](EndpointAgentTag.md) | A collection of Endpoint Agent Tag IDs that determines what local network data is included in the data stream. `endpointAgentLabel` and `endpointAgentTag` represent the same data. Configure only one; both are synchronized. | [optional] **type** | [**StreamType**](StreamType.md) | | [optional] **signal** | [**Signal**](Signal.md) | | [optional] **endpoint_type** | [**EndpointType**](EndpointType.md) | | [optional] diff --git a/thousandeyes-sdk-streaming/docs/TagMatchObjectType.md b/thousandeyes-sdk-streaming/docs/TagMatchObjectType.md deleted file mode 100644 index 62eb324e..00000000 --- a/thousandeyes-sdk-streaming/docs/TagMatchObjectType.md +++ /dev/null @@ -1,12 +0,0 @@ -# TagMatchObjectType - -The object type of tag - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - -[[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/thousandeyes-sdk-streaming/src/thousandeyes_sdk/streaming/__init__.py b/thousandeyes-sdk-streaming/src/thousandeyes_sdk/streaming/__init__.py index 1d2e5bba..c9b281e9 100644 --- a/thousandeyes-sdk-streaming/src/thousandeyes_sdk/streaming/__init__.py +++ b/thousandeyes-sdk-streaming/src/thousandeyes_sdk/streaming/__init__.py @@ -26,6 +26,7 @@ from thousandeyes_sdk.streaming.models.bad_request_error import BadRequestError from thousandeyes_sdk.streaming.models.create_stream_response import CreateStreamResponse from thousandeyes_sdk.streaming.models.data_model_version import DataModelVersion from thousandeyes_sdk.streaming.models.endpoint_agent_label import EndpointAgentLabel +from thousandeyes_sdk.streaming.models.endpoint_agent_tag import EndpointAgentTag from thousandeyes_sdk.streaming.models.endpoint_type import EndpointType from thousandeyes_sdk.streaming.models.exporter_config import ExporterConfig from thousandeyes_sdk.streaming.models.exporter_config_authorization import ExporterConfigAuthorization @@ -44,7 +45,6 @@ from thousandeyes_sdk.streaming.models.stream_status import StreamStatus from thousandeyes_sdk.streaming.models.stream_status_type import StreamStatusType from thousandeyes_sdk.streaming.models.stream_type import StreamType from thousandeyes_sdk.streaming.models.tag_match import TagMatch -from thousandeyes_sdk.streaming.models.tag_match_object_type import TagMatchObjectType from thousandeyes_sdk.streaming.models.test_match import TestMatch from thousandeyes_sdk.streaming.models.test_match_domain import TestMatchDomain from thousandeyes_sdk.streaming.models.test_type import TestType diff --git a/thousandeyes-sdk-streaming/src/thousandeyes_sdk/streaming/models/__init__.py b/thousandeyes-sdk-streaming/src/thousandeyes_sdk/streaming/models/__init__.py index b6d2d7cd..233b1bcc 100644 --- a/thousandeyes-sdk-streaming/src/thousandeyes_sdk/streaming/models/__init__.py +++ b/thousandeyes-sdk-streaming/src/thousandeyes_sdk/streaming/models/__init__.py @@ -21,6 +21,7 @@ from thousandeyes_sdk.streaming.models.bad_request_error import BadRequestError from thousandeyes_sdk.streaming.models.create_stream_response import CreateStreamResponse from thousandeyes_sdk.streaming.models.data_model_version import DataModelVersion from thousandeyes_sdk.streaming.models.endpoint_agent_label import EndpointAgentLabel +from thousandeyes_sdk.streaming.models.endpoint_agent_tag import EndpointAgentTag from thousandeyes_sdk.streaming.models.endpoint_type import EndpointType from thousandeyes_sdk.streaming.models.exporter_config import ExporterConfig from thousandeyes_sdk.streaming.models.exporter_config_authorization import ExporterConfigAuthorization @@ -39,7 +40,6 @@ from thousandeyes_sdk.streaming.models.stream_status import StreamStatus from thousandeyes_sdk.streaming.models.stream_status_type import StreamStatusType from thousandeyes_sdk.streaming.models.stream_type import StreamType from thousandeyes_sdk.streaming.models.tag_match import TagMatch -from thousandeyes_sdk.streaming.models.tag_match_object_type import TagMatchObjectType from thousandeyes_sdk.streaming.models.test_match import TestMatch from thousandeyes_sdk.streaming.models.test_match_domain import TestMatchDomain from thousandeyes_sdk.streaming.models.test_type import TestType diff --git a/thousandeyes-sdk-streaming/src/thousandeyes_sdk/streaming/models/create_stream_response.py b/thousandeyes-sdk-streaming/src/thousandeyes_sdk/streaming/models/create_stream_response.py index 9eb37331..edfe59d5 100644 --- a/thousandeyes-sdk-streaming/src/thousandeyes_sdk/streaming/models/create_stream_response.py +++ b/thousandeyes-sdk-streaming/src/thousandeyes_sdk/streaming/models/create_stream_response.py @@ -21,6 +21,7 @@ from typing import Any, ClassVar, Dict, List, Optional from thousandeyes_sdk.streaming.models.audit_operation import AuditOperation from thousandeyes_sdk.streaming.models.data_model_version import DataModelVersion from thousandeyes_sdk.streaming.models.endpoint_agent_label import EndpointAgentLabel +from thousandeyes_sdk.streaming.models.endpoint_agent_tag import EndpointAgentTag from thousandeyes_sdk.streaming.models.endpoint_type import EndpointType from thousandeyes_sdk.streaming.models.exporter_config import ExporterConfig from thousandeyes_sdk.streaming.models.filters import Filters @@ -50,10 +51,11 @@ class CreateStreamResponse(BaseModel): test_match: Optional[List[TestMatch]] = Field(default=None, description="A collection of tests to be included in the data stream.", alias="testMatch") filters: Optional[Filters] = None exporter_config: Optional[ExporterConfig] = Field(default=None, alias="exporterConfig") - endpoint_agent_label: Optional[List[EndpointAgentLabel]] = Field(default=None, description="A collection of Endpoint Agent label IDs that determines what local network data is included in the data stream.", alias="endpointAgentLabel") + endpoint_agent_label: Optional[List[EndpointAgentLabel]] = Field(default=None, description="A collection of Endpoint Agent label IDs that determines what local network data is included in the data stream. `endpointAgentLabel` and `endpointAgentTag` represent the same data. Configure only one; both are synchronized.", alias="endpointAgentLabel") + endpoint_agent_tag: Optional[List[EndpointAgentTag]] = Field(default=None, description="A collection of Endpoint Agent Tag IDs that determines what local network data is included in the data stream. `endpointAgentLabel` and `endpointAgentTag` represent the same data. Configure only one; both are synchronized.", alias="endpointAgentTag") audit_operation: Optional[AuditOperation] = Field(default=None, alias="auditOperation") stream_status: Optional[StreamStatus] = Field(default=None, alias="streamStatus") - __properties: ClassVar[List[str]] = ["id", "enabled", "_links", "type", "signal", "endpointType", "streamEndpointUrl", "dataModelVersion", "customHeaders", "tagMatch", "testMatch", "filters", "exporterConfig", "endpointAgentLabel", "auditOperation", "streamStatus"] + __properties: ClassVar[List[str]] = ["id", "enabled", "_links", "type", "signal", "endpointType", "streamEndpointUrl", "dataModelVersion", "customHeaders", "tagMatch", "testMatch", "filters", "exporterConfig", "endpointAgentLabel", "endpointAgentTag", "auditOperation", "streamStatus"] model_config = ConfigDict( populate_by_name=True, @@ -127,6 +129,13 @@ class CreateStreamResponse(BaseModel): if _item: _items.append(_item.to_dict()) _dict['endpointAgentLabel'] = _items + # override the default output from pydantic by calling `to_dict()` of each item in endpoint_agent_tag (list) + _items = [] + if self.endpoint_agent_tag: + for _item in self.endpoint_agent_tag: + if _item: + _items.append(_item.to_dict()) + _dict['endpointAgentTag'] = _items # override the default output from pydantic by calling `to_dict()` of audit_operation if self.audit_operation: _dict['auditOperation'] = self.audit_operation.to_dict() @@ -159,6 +168,7 @@ class CreateStreamResponse(BaseModel): "filters": Filters.from_dict(obj["filters"]) if obj.get("filters") is not None else None, "exporterConfig": ExporterConfig.from_dict(obj["exporterConfig"]) if obj.get("exporterConfig") is not None else None, "endpointAgentLabel": [EndpointAgentLabel.from_dict(_item) for _item in obj["endpointAgentLabel"]] if obj.get("endpointAgentLabel") is not None else None, + "endpointAgentTag": [EndpointAgentTag.from_dict(_item) for _item in obj["endpointAgentTag"]] if obj.get("endpointAgentTag") is not None else None, "auditOperation": AuditOperation.from_dict(obj["auditOperation"]) if obj.get("auditOperation") is not None else None, "streamStatus": StreamStatus.from_dict(obj["streamStatus"]) if obj.get("streamStatus") is not None else None }) diff --git a/thousandeyes-sdk-streaming/src/thousandeyes_sdk/streaming/models/endpoint_agent_label.py b/thousandeyes-sdk-streaming/src/thousandeyes_sdk/streaming/models/endpoint_agent_label.py index 453972a3..fcdefacb 100644 --- a/thousandeyes-sdk-streaming/src/thousandeyes_sdk/streaming/models/endpoint_agent_label.py +++ b/thousandeyes-sdk-streaming/src/thousandeyes_sdk/streaming/models/endpoint_agent_label.py @@ -17,7 +17,7 @@ import re # noqa: F401 import json from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List, Optional +from typing import Any, ClassVar, Dict, List from typing import Optional, Set from typing_extensions import Self @@ -25,7 +25,7 @@ class EndpointAgentLabel(BaseModel): """ Endpoint Agent label configuration. """ # noqa: E501 - id: Optional[StrictStr] = Field(default=None, description="The label ID of Endpoint Agent labels.") + id: StrictStr = Field(description="The label ID of Endpoint Agent labels.") __properties: ClassVar[List[str]] = ["id"] model_config = ConfigDict( diff --git a/thousandeyes-sdk-streaming/src/thousandeyes_sdk/streaming/models/endpoint_agent_tag.py b/thousandeyes-sdk-streaming/src/thousandeyes_sdk/streaming/models/endpoint_agent_tag.py new file mode 100644 index 00000000..77708a5d --- /dev/null +++ b/thousandeyes-sdk-streaming/src/thousandeyes_sdk/streaming/models/endpoint_agent_tag.py @@ -0,0 +1,87 @@ +# coding: utf-8 + +""" + ThousandEyes for OpenTelemetry API + + **Note:** All ThousandEyes for OpenTelemetry APIs are not available for ThousandEyes for Government instance. ThousandEyes for OpenTelemetry provides machine-to-machine integration between ThousandEyes and its customers. It allows you to export ThousandEyes telemetry data in OTel format, which is widely used in the industry. With ThousandEyes for OTel, you can leverage frameworks widely used in the observability domain - such as Splunk, Grafana, and Honeycomb - to capture and analyze ThousandEyes data. Any client that supports OTel can use ThousandEyes for OpenTelemetry. ThousandEyes for OTel is made up of the following components: * Data streaming APIs that you can use to configure and enable your ThousandEyes tests with OTel-compatible streams, in particular to configure how ThousandEyes telemetry data is exported to client integrations. * A set of streaming pipelines called _collectors_ that actively fetch ThousandEyes network test data, enrich the data with some additional detail, filter, and push the data to the customer-configured endpoints, depending on what you configure via the public APIs. * Third-party OTel collectors that receive, transform, filter, and export different metrics to client applications such as AppD, or any other OTel-capable client configuration. For more information about ThousandEyes for OpenTelemetry, see the [product documentation](https://docs.thousandeyes.com/product-documentation/integration-guides/opentelemetry). + + 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 +from typing import Optional, Set +from typing_extensions import Self + +class EndpointAgentTag(BaseModel): + """ + Endpoint Agent tag configuration. + """ # noqa: E501 + id: StrictStr = Field(description="The tag ID of Endpoint Agent tags.") + __properties: ClassVar[List[str]] = ["id"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + extra="allow", + ) + + + 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 self.model_dump_json(by_alias=True, exclude_unset=True, exclude_none=True) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of EndpointAgentTag 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 EndpointAgentTag 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") + }) + return _obj + + diff --git a/thousandeyes-sdk-streaming/src/thousandeyes_sdk/streaming/models/get_stream_response.py b/thousandeyes-sdk-streaming/src/thousandeyes_sdk/streaming/models/get_stream_response.py index 767b19a2..a1dc19fd 100644 --- a/thousandeyes-sdk-streaming/src/thousandeyes_sdk/streaming/models/get_stream_response.py +++ b/thousandeyes-sdk-streaming/src/thousandeyes_sdk/streaming/models/get_stream_response.py @@ -21,6 +21,7 @@ from typing import Any, ClassVar, Dict, List, Optional from thousandeyes_sdk.streaming.models.audit_operation_with_update import AuditOperationWithUpdate from thousandeyes_sdk.streaming.models.data_model_version import DataModelVersion from thousandeyes_sdk.streaming.models.endpoint_agent_label import EndpointAgentLabel +from thousandeyes_sdk.streaming.models.endpoint_agent_tag import EndpointAgentTag from thousandeyes_sdk.streaming.models.endpoint_type import EndpointType from thousandeyes_sdk.streaming.models.exporter_config import ExporterConfig from thousandeyes_sdk.streaming.models.filters import Filters @@ -50,10 +51,11 @@ class GetStreamResponse(BaseModel): test_match: Optional[List[TestMatch]] = Field(default=None, description="A collection of tests to be included in the data stream.", alias="testMatch") filters: Optional[Filters] = None exporter_config: Optional[ExporterConfig] = Field(default=None, alias="exporterConfig") - endpoint_agent_label: Optional[List[EndpointAgentLabel]] = Field(default=None, description="A collection of Endpoint Agent label IDs that determines what local network data is included in the data stream.", alias="endpointAgentLabel") + endpoint_agent_label: Optional[List[EndpointAgentLabel]] = Field(default=None, description="A collection of Endpoint Agent label IDs that determines what local network data is included in the data stream. `endpointAgentLabel` and `endpointAgentTag` represent the same data. Configure only one; both are synchronized.", alias="endpointAgentLabel") + endpoint_agent_tag: Optional[List[EndpointAgentTag]] = Field(default=None, description="A collection of Endpoint Agent Tag IDs that determines what local network data is included in the data stream. `endpointAgentLabel` and `endpointAgentTag` represent the same data. Configure only one; both are synchronized.", alias="endpointAgentTag") audit_operation: Optional[AuditOperationWithUpdate] = Field(default=None, alias="auditOperation") stream_status: Optional[StreamStatus] = Field(default=None, alias="streamStatus") - __properties: ClassVar[List[str]] = ["id", "enabled", "_links", "type", "signal", "endpointType", "streamEndpointUrl", "dataModelVersion", "customHeaders", "tagMatch", "testMatch", "filters", "exporterConfig", "endpointAgentLabel", "auditOperation", "streamStatus"] + __properties: ClassVar[List[str]] = ["id", "enabled", "_links", "type", "signal", "endpointType", "streamEndpointUrl", "dataModelVersion", "customHeaders", "tagMatch", "testMatch", "filters", "exporterConfig", "endpointAgentLabel", "endpointAgentTag", "auditOperation", "streamStatus"] model_config = ConfigDict( populate_by_name=True, @@ -127,6 +129,13 @@ class GetStreamResponse(BaseModel): if _item: _items.append(_item.to_dict()) _dict['endpointAgentLabel'] = _items + # override the default output from pydantic by calling `to_dict()` of each item in endpoint_agent_tag (list) + _items = [] + if self.endpoint_agent_tag: + for _item in self.endpoint_agent_tag: + if _item: + _items.append(_item.to_dict()) + _dict['endpointAgentTag'] = _items # override the default output from pydantic by calling `to_dict()` of audit_operation if self.audit_operation: _dict['auditOperation'] = self.audit_operation.to_dict() @@ -159,6 +168,7 @@ class GetStreamResponse(BaseModel): "filters": Filters.from_dict(obj["filters"]) if obj.get("filters") is not None else None, "exporterConfig": ExporterConfig.from_dict(obj["exporterConfig"]) if obj.get("exporterConfig") is not None else None, "endpointAgentLabel": [EndpointAgentLabel.from_dict(_item) for _item in obj["endpointAgentLabel"]] if obj.get("endpointAgentLabel") is not None else None, + "endpointAgentTag": [EndpointAgentTag.from_dict(_item) for _item in obj["endpointAgentTag"]] if obj.get("endpointAgentTag") is not None else None, "auditOperation": AuditOperationWithUpdate.from_dict(obj["auditOperation"]) if obj.get("auditOperation") is not None else None, "streamStatus": StreamStatus.from_dict(obj["streamStatus"]) if obj.get("streamStatus") is not None else None }) diff --git a/thousandeyes-sdk-streaming/src/thousandeyes_sdk/streaming/models/put_stream.py b/thousandeyes-sdk-streaming/src/thousandeyes_sdk/streaming/models/put_stream.py index f344229c..710f0f5f 100644 --- a/thousandeyes-sdk-streaming/src/thousandeyes_sdk/streaming/models/put_stream.py +++ b/thousandeyes-sdk-streaming/src/thousandeyes_sdk/streaming/models/put_stream.py @@ -19,6 +19,7 @@ import json from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr from typing import Any, ClassVar, Dict, List, Optional from thousandeyes_sdk.streaming.models.endpoint_agent_label import EndpointAgentLabel +from thousandeyes_sdk.streaming.models.endpoint_agent_tag import EndpointAgentTag from thousandeyes_sdk.streaming.models.exporter_config import ExporterConfig from thousandeyes_sdk.streaming.models.filters import Filters from thousandeyes_sdk.streaming.models.tag_match import TagMatch @@ -37,8 +38,9 @@ class PutStream(BaseModel): enabled: Optional[StrictBool] = Field(default=None, description="Flag to enable or disable the stream integration.") filters: Optional[Filters] = None exporter_config: Optional[ExporterConfig] = Field(default=None, alias="exporterConfig") - endpoint_agent_label: Optional[List[EndpointAgentLabel]] = Field(default=None, description="A collection of Endpoint Agent label IDs that determines what local network data is included in the data stream.", alias="endpointAgentLabel") - __properties: ClassVar[List[str]] = ["customHeaders", "streamEndpointUrl", "tagMatch", "testMatch", "enabled", "filters", "exporterConfig", "endpointAgentLabel"] + endpoint_agent_label: Optional[List[EndpointAgentLabel]] = Field(default=None, description="A collection of Endpoint Agent label IDs that determines what local network data is included in the data stream. `endpointAgentLabel` and `endpointAgentTag` represent the same data. Configure only one; both are synchronized.", alias="endpointAgentLabel") + endpoint_agent_tag: Optional[List[EndpointAgentTag]] = Field(default=None, description="A collection of Endpoint Agent Tag IDs that determines what local network data is included in the data stream. `endpointAgentLabel` and `endpointAgentTag` represent the same data. Configure only one; both are synchronized.", alias="endpointAgentTag") + __properties: ClassVar[List[str]] = ["customHeaders", "streamEndpointUrl", "tagMatch", "testMatch", "enabled", "filters", "exporterConfig", "endpointAgentLabel", "endpointAgentTag"] model_config = ConfigDict( populate_by_name=True, @@ -107,6 +109,13 @@ class PutStream(BaseModel): if _item: _items.append(_item.to_dict()) _dict['endpointAgentLabel'] = _items + # override the default output from pydantic by calling `to_dict()` of each item in endpoint_agent_tag (list) + _items = [] + if self.endpoint_agent_tag: + for _item in self.endpoint_agent_tag: + if _item: + _items.append(_item.to_dict()) + _dict['endpointAgentTag'] = _items return _dict @classmethod @@ -126,7 +135,8 @@ class PutStream(BaseModel): "enabled": obj.get("enabled"), "filters": Filters.from_dict(obj["filters"]) if obj.get("filters") is not None else None, "exporterConfig": ExporterConfig.from_dict(obj["exporterConfig"]) if obj.get("exporterConfig") is not None else None, - "endpointAgentLabel": [EndpointAgentLabel.from_dict(_item) for _item in obj["endpointAgentLabel"]] if obj.get("endpointAgentLabel") is not None else None + "endpointAgentLabel": [EndpointAgentLabel.from_dict(_item) for _item in obj["endpointAgentLabel"]] if obj.get("endpointAgentLabel") is not None else None, + "endpointAgentTag": [EndpointAgentTag.from_dict(_item) for _item in obj["endpointAgentTag"]] if obj.get("endpointAgentTag") is not None else None }) return _obj diff --git a/thousandeyes-sdk-streaming/src/thousandeyes_sdk/streaming/models/stream.py b/thousandeyes-sdk-streaming/src/thousandeyes_sdk/streaming/models/stream.py index 8ec5596d..79dfe7a3 100644 --- a/thousandeyes-sdk-streaming/src/thousandeyes_sdk/streaming/models/stream.py +++ b/thousandeyes-sdk-streaming/src/thousandeyes_sdk/streaming/models/stream.py @@ -20,6 +20,7 @@ from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr from typing import Any, ClassVar, Dict, List, Optional from thousandeyes_sdk.streaming.models.data_model_version import DataModelVersion from thousandeyes_sdk.streaming.models.endpoint_agent_label import EndpointAgentLabel +from thousandeyes_sdk.streaming.models.endpoint_agent_tag import EndpointAgentTag from thousandeyes_sdk.streaming.models.endpoint_type import EndpointType from thousandeyes_sdk.streaming.models.exporter_config import ExporterConfig from thousandeyes_sdk.streaming.models.filters import Filters @@ -41,12 +42,13 @@ class Stream(BaseModel): enabled: Optional[StrictBool] = Field(default=None, description="Flag to enable or disable the stream integration.") filters: Optional[Filters] = None exporter_config: Optional[ExporterConfig] = Field(default=None, alias="exporterConfig") - endpoint_agent_label: Optional[List[EndpointAgentLabel]] = Field(default=None, description="A collection of Endpoint Agent label IDs that determines what local network data is included in the data stream.", alias="endpointAgentLabel") + endpoint_agent_label: Optional[List[EndpointAgentLabel]] = Field(default=None, description="A collection of Endpoint Agent label IDs that determines what local network data is included in the data stream. `endpointAgentLabel` and `endpointAgentTag` represent the same data. Configure only one; both are synchronized.", alias="endpointAgentLabel") + endpoint_agent_tag: Optional[List[EndpointAgentTag]] = Field(default=None, description="A collection of Endpoint Agent Tag IDs that determines what local network data is included in the data stream. `endpointAgentLabel` and `endpointAgentTag` represent the same data. Configure only one; both are synchronized.", alias="endpointAgentTag") type: Optional[StreamType] = None signal: Optional[Signal] = None endpoint_type: Optional[EndpointType] = Field(default=None, alias="endpointType") data_model_version: Optional[DataModelVersion] = Field(default=None, alias="dataModelVersion") - __properties: ClassVar[List[str]] = ["customHeaders", "streamEndpointUrl", "tagMatch", "testMatch", "enabled", "filters", "exporterConfig", "endpointAgentLabel", "type", "signal", "endpointType", "dataModelVersion"] + __properties: ClassVar[List[str]] = ["customHeaders", "streamEndpointUrl", "tagMatch", "testMatch", "enabled", "filters", "exporterConfig", "endpointAgentLabel", "endpointAgentTag", "type", "signal", "endpointType", "dataModelVersion"] model_config = ConfigDict( populate_by_name=True, @@ -115,6 +117,13 @@ class Stream(BaseModel): if _item: _items.append(_item.to_dict()) _dict['endpointAgentLabel'] = _items + # override the default output from pydantic by calling `to_dict()` of each item in endpoint_agent_tag (list) + _items = [] + if self.endpoint_agent_tag: + for _item in self.endpoint_agent_tag: + if _item: + _items.append(_item.to_dict()) + _dict['endpointAgentTag'] = _items return _dict @classmethod @@ -135,6 +144,7 @@ class Stream(BaseModel): "filters": Filters.from_dict(obj["filters"]) if obj.get("filters") is not None else None, "exporterConfig": ExporterConfig.from_dict(obj["exporterConfig"]) if obj.get("exporterConfig") is not None else None, "endpointAgentLabel": [EndpointAgentLabel.from_dict(_item) for _item in obj["endpointAgentLabel"]] if obj.get("endpointAgentLabel") is not None else None, + "endpointAgentTag": [EndpointAgentTag.from_dict(_item) for _item in obj["endpointAgentTag"]] if obj.get("endpointAgentTag") is not None else None, "type": obj.get("type"), "signal": obj.get("signal"), "endpointType": obj.get("endpointType"), diff --git a/thousandeyes-sdk-streaming/src/thousandeyes_sdk/streaming/models/tag_match_object_type.py b/thousandeyes-sdk-streaming/src/thousandeyes_sdk/streaming/models/tag_match_object_type.py deleted file mode 100644 index fbc5112f..00000000 --- a/thousandeyes-sdk-streaming/src/thousandeyes_sdk/streaming/models/tag_match_object_type.py +++ /dev/null @@ -1,40 +0,0 @@ -# coding: utf-8 - -""" - ThousandEyes for OpenTelemetry API - - **Note:** All ThousandEyes for OpenTelemetry APIs are not available for ThousandEyes for Government instance. ThousandEyes for OpenTelemetry provides machine-to-machine integration between ThousandEyes and its customers. It allows you to export ThousandEyes telemetry data in OTel format, which is widely used in the industry. With ThousandEyes for OTel, you can leverage frameworks widely used in the observability domain - such as Splunk, Grafana, and Honeycomb - to capture and analyze ThousandEyes data. Any client that supports OTel can use ThousandEyes for OpenTelemetry. ThousandEyes for OTel is made up of the following components: * Data streaming APIs that you can use to configure and enable your ThousandEyes tests with OTel-compatible streams, in particular to configure how ThousandEyes telemetry data is exported to client integrations. * A set of streaming pipelines called _collectors_ that actively fetch ThousandEyes network test data, enrich the data with some additional detail, filter, and push the data to the customer-configured endpoints, depending on what you configure via the public APIs. * Third-party OTel collectors that receive, transform, filter, and export different metrics to client applications such as AppD, or any other OTel-capable client configuration. For more information about ThousandEyes for OpenTelemetry, see the [product documentation](https://docs.thousandeyes.com/product-documentation/integration-guides/opentelemetry). - - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -from enum import Enum -from typing_extensions import Self - - -class TagMatchObjectType(str, Enum): - """ - The object type of tag - """ - - """ - allowed enum values - """ - TEST = 'test' - UNKNOWN = 'unknown' - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Create an instance of TagMatchObjectType from a JSON string""" - return cls(json.loads(json_str)) - - @classmethod - def _missing_(cls, value): - """Handle unknown values""" - return cls.UNKNOWN - diff --git a/thousandeyes-sdk-streaming/test/test_streaming_api.py b/thousandeyes-sdk-streaming/test/test_streaming_api.py index e5450407..0dd60ace 100644 --- a/thousandeyes-sdk-streaming/test/test_streaming_api.py +++ b/thousandeyes-sdk-streaming/test/test_streaming_api.py @@ -37,13 +37,6 @@ class TestStreamingApi(unittest.TestCase): }, { "id" : "1234" } ], - "testMatch" : [ { - "id" : "1234", - "domain" : "cea" - }, { - "id" : "5678", - "domain" : "endpoint" - } ], "endpointType" : "grpc", "streamEndpointUrl" : "https://api.thousandeyes.otel-collector", "exporterConfig" : { @@ -62,6 +55,26 @@ class TestStreamingApi(unittest.TestCase): "token" : "d0a91307-be2f-4218-a9f8-71c02d98846b" } }, + "filters" : { + "testTypes" : { + "values" : [ "agent-to-server", "bgp", "http-server" ] + } + }, + "type" : "opentelemetry", + "dataModelVersion" : "v2", + "enabled" : true, + "endpointAgentTag" : [ { + "id" : "91863f70-e5a6-4a1c-a266-caf02db3607d" + }, { + "id" : "91863f70-e5a6-4a1c-a266-caf02db3607d" + } ], + "testMatch" : [ { + "id" : "1234", + "domain" : "cea" + }, { + "id" : "5678", + "domain" : "endpoint" + } ], "tagMatch" : [ { "key" : "keyA", "value" : "valueA" @@ -69,19 +82,11 @@ class TestStreamingApi(unittest.TestCase): "key" : "keyB", "value" : "valueB" } ], - "filters" : { - "testTypes" : { - "values" : [ "agent-to-server", "bgp", "http-server" ] - } - }, - "type" : "opentelemetry", "signal" : "metric", - "dataModelVersion" : "v2", "customHeaders" : { "Authorization" : "*****", "Content-Type" : "*****" - }, - "enabled" : true + } } """ @@ -127,6 +132,11 @@ class TestStreamingApi(unittest.TestCase): "type" : "opentelemetry", "enabled" : true, "dataModelVersion" : "v2", + "endpointAgentTag" : [ { + "id" : "91863f70-e5a6-4a1c-a266-caf02db3607d" + }, { + "id" : "91863f70-e5a6-4a1c-a266-caf02db3607d" + } ], "testMatch" : [ { "id" : "1234", "domain" : "cea" @@ -207,6 +217,11 @@ class TestStreamingApi(unittest.TestCase): "type" : "opentelemetry", "enabled" : true, "dataModelVersion" : "v2", + "endpointAgentTag" : [ { + "id" : "91863f70-e5a6-4a1c-a266-caf02db3607d" + }, { + "id" : "91863f70-e5a6-4a1c-a266-caf02db3607d" + } ], "testMatch" : [ { "id" : "1234", "domain" : "cea" @@ -285,6 +300,11 @@ class TestStreamingApi(unittest.TestCase): "type" : "opentelemetry", "enabled" : true, "dataModelVersion" : "v2", + "endpointAgentTag" : [ { + "id" : "91863f70-e5a6-4a1c-a266-caf02db3607d" + }, { + "id" : "91863f70-e5a6-4a1c-a266-caf02db3607d" + } ], "testMatch" : [ { "id" : "1234", "domain" : "cea" @@ -353,6 +373,11 @@ class TestStreamingApi(unittest.TestCase): "type" : "opentelemetry", "enabled" : true, "dataModelVersion" : "v2", + "endpointAgentTag" : [ { + "id" : "91863f70-e5a6-4a1c-a266-caf02db3607d" + }, { + "id" : "91863f70-e5a6-4a1c-a266-caf02db3607d" + } ], "testMatch" : [ { "id" : "1234", "domain" : "cea" @@ -402,6 +427,11 @@ class TestStreamingApi(unittest.TestCase): }, { "id" : "1234" } ], + "endpointAgentTag" : [ { + "id" : "91863f70-e5a6-4a1c-a266-caf02db3607d" + }, { + "id" : "91863f70-e5a6-4a1c-a266-caf02db3607d" + } ], "testMatch" : [ { "id" : "1234", "domain" : "cea" @@ -488,6 +518,11 @@ class TestStreamingApi(unittest.TestCase): "type" : "opentelemetry", "enabled" : true, "dataModelVersion" : "v2", + "endpointAgentTag" : [ { + "id" : "91863f70-e5a6-4a1c-a266-caf02db3607d" + }, { + "id" : "91863f70-e5a6-4a1c-a266-caf02db3607d" + } ], "testMatch" : [ { "id" : "1234", "domain" : "cea" diff --git a/thousandeyes-sdk-tags/.openapi-generator/FILES b/thousandeyes-sdk-tags/.openapi-generator/FILES index d183e74b..2bfbde68 100644 --- a/thousandeyes-sdk-tags/.openapi-generator/FILES +++ b/thousandeyes-sdk-tags/.openapi-generator/FILES @@ -19,7 +19,7 @@ docs/TagAssignmentApi.md docs/TagBulkCreateError.md docs/TagFilter.md docs/TagFilterMode.md -docs/TagFilterType.md +docs/TagFilterScope.md docs/TagInfo.md docs/TagMatchType.md docs/Tags.md @@ -52,7 +52,7 @@ src/thousandeyes_sdk/tags/models/tag_assignment.py src/thousandeyes_sdk/tags/models/tag_bulk_create_error.py src/thousandeyes_sdk/tags/models/tag_filter.py src/thousandeyes_sdk/tags/models/tag_filter_mode.py -src/thousandeyes_sdk/tags/models/tag_filter_type.py +src/thousandeyes_sdk/tags/models/tag_filter_scope.py src/thousandeyes_sdk/tags/models/tag_info.py src/thousandeyes_sdk/tags/models/tag_match_type.py src/thousandeyes_sdk/tags/models/tags.py diff --git a/thousandeyes-sdk-tags/README.md b/thousandeyes-sdk-tags/README.md index 945527e5..53a5c753 100644 --- a/thousandeyes-sdk-tags/README.md +++ b/thousandeyes-sdk-tags/README.md @@ -16,7 +16,7 @@ Things to note with the ThousandEyes Tags API: This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project: -- API version: 7.0.84 +- API version: 7.0.92 - Generator version: 7.6.0 - Build package: com.thousandeyes.api.codegen.ThousandeyesPythonGenerator @@ -140,7 +140,7 @@ Class | Method | HTTP request | Description - [TagBulkCreateError](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tags/docs/TagBulkCreateError.md) - [TagFilter](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tags/docs/TagFilter.md) - [TagFilterMode](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tags/docs/TagFilterMode.md) - - [TagFilterType](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tags/docs/TagFilterType.md) + - [TagFilterScope](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tags/docs/TagFilterScope.md) - [TagInfo](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tags/docs/TagInfo.md) - [TagMatchType](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tags/docs/TagMatchType.md) - [Tags](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tags/docs/Tags.md) diff --git a/thousandeyes-sdk-tags/docs/AccessType.md b/thousandeyes-sdk-tags/docs/AccessType.md index c37d6803..85ff52b0 100644 --- a/thousandeyes-sdk-tags/docs/AccessType.md +++ b/thousandeyes-sdk-tags/docs/AccessType.md @@ -1,6 +1,6 @@ # AccessType - The access level of the tag. The access level determines the label's visibility in the UI and the permissions required to modify it. Accepted values are: * `all`: The tag is visible and editable by any user in the account group with the standard **View tags** or **Edit tags** permission. Default for all user-created tags. * `partner`: The tag is owned by a specific integration partner. Only that partner can read or modify it. It's hidden from all regular account users and excluded from their GET responses. * `system`: Reserved for ThousandEyes internal use only. This value may appear in GET responses on internally managed tags but cannot be set by users or integration partners. +The access level of the tag. The access level determines the label's visibility in the UI and the permissions required to modify it. Accepted values are: * `all`: The tag is visible and editable by any user in the account group with the standard **View tags** or **Edit tags** permission. Default for all user-created tags. * `partner`: The tag is owned by a specific integration partner. Only that partner can read or modify it. It's hidden from all regular account users and excluded from their GET responses. * `system`: Reserved for ThousandEyes internal use only. This value may appear in GET responses on internally managed tags but cannot be set by users or integration partners. ## Properties diff --git a/thousandeyes-sdk-tags/docs/TagFilter.md b/thousandeyes-sdk-tags/docs/TagFilter.md index f5dd2a16..8a9744b7 100644 --- a/thousandeyes-sdk-tags/docs/TagFilter.md +++ b/thousandeyes-sdk-tags/docs/TagFilter.md @@ -5,9 +5,10 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- -**key** | [**TagFilterType**](TagFilterType.md) | | [optional] +**key** | **str** | Filter key used for filtering. When `scope` is `default`, accepted values are `agent-id`, `location`, `serial-number`, `public-network`, `local-network`, `connection`, `gateway`, `platform`, `nic-model`, `nic-driver-version`, `agent-type`, `proxy-target`, `vpn-vendor`, `vpn-gateway-address`, `vpn-target`, `vpn-client-network`, `vpn-client-address`, `ip-address-family`, `ssid`, `bssid`, `hostname`, `username`, and `asn`. When `scope` is `custom`, use a user-defined check-in metadata key. | [optional] **values** | **List[str]** | | [optional] **mode** | [**TagFilterMode**](TagFilterMode.md) | | [optional] +**scope** | [**TagFilterScope**](TagFilterScope.md) | | [optional] ## Example diff --git a/thousandeyes-sdk-tags/docs/TagFilterScope.md b/thousandeyes-sdk-tags/docs/TagFilterScope.md new file mode 100644 index 00000000..dd1132e8 --- /dev/null +++ b/thousandeyes-sdk-tags/docs/TagFilterScope.md @@ -0,0 +1,12 @@ +# TagFilterScope + +Scope of the filter. * `default`: The filter is from the default set provided by ThousandEyes. * `custom`: The filter is user-defined. Set in check-in metadata. + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- + +[[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/thousandeyes-sdk-tags/docs/TagFilterType.md b/thousandeyes-sdk-tags/docs/TagFilterType.md deleted file mode 100644 index 63f4b5b8..00000000 --- a/thousandeyes-sdk-tags/docs/TagFilterType.md +++ /dev/null @@ -1,12 +0,0 @@ -# TagFilterType - -Type of filter key - the data that will be used to filter. - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - -[[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/thousandeyes-sdk-tags/src/thousandeyes_sdk/tags/__init__.py b/thousandeyes-sdk-tags/src/thousandeyes_sdk/tags/__init__.py index 6db00121..4a3aa986 100644 --- a/thousandeyes-sdk-tags/src/thousandeyes_sdk/tags/__init__.py +++ b/thousandeyes-sdk-tags/src/thousandeyes_sdk/tags/__init__.py @@ -36,7 +36,7 @@ from thousandeyes_sdk.tags.models.tag_assignment import TagAssignment from thousandeyes_sdk.tags.models.tag_bulk_create_error import TagBulkCreateError from thousandeyes_sdk.tags.models.tag_filter import TagFilter from thousandeyes_sdk.tags.models.tag_filter_mode import TagFilterMode -from thousandeyes_sdk.tags.models.tag_filter_type import TagFilterType +from thousandeyes_sdk.tags.models.tag_filter_scope import TagFilterScope from thousandeyes_sdk.tags.models.tag_info import TagInfo from thousandeyes_sdk.tags.models.tag_match_type import TagMatchType from thousandeyes_sdk.tags.models.tags import Tags diff --git a/thousandeyes-sdk-tags/src/thousandeyes_sdk/tags/models/__init__.py b/thousandeyes-sdk-tags/src/thousandeyes_sdk/tags/models/__init__.py index 1c416ba9..0d2ea9b7 100644 --- a/thousandeyes-sdk-tags/src/thousandeyes_sdk/tags/models/__init__.py +++ b/thousandeyes-sdk-tags/src/thousandeyes_sdk/tags/models/__init__.py @@ -30,7 +30,7 @@ from thousandeyes_sdk.tags.models.tag_assignment import TagAssignment from thousandeyes_sdk.tags.models.tag_bulk_create_error import TagBulkCreateError from thousandeyes_sdk.tags.models.tag_filter import TagFilter from thousandeyes_sdk.tags.models.tag_filter_mode import TagFilterMode -from thousandeyes_sdk.tags.models.tag_filter_type import TagFilterType +from thousandeyes_sdk.tags.models.tag_filter_scope import TagFilterScope from thousandeyes_sdk.tags.models.tag_info import TagInfo from thousandeyes_sdk.tags.models.tag_match_type import TagMatchType from thousandeyes_sdk.tags.models.tags import Tags diff --git a/thousandeyes-sdk-tags/src/thousandeyes_sdk/tags/models/access_type.py b/thousandeyes-sdk-tags/src/thousandeyes_sdk/tags/models/access_type.py index f258c3b6..48267a73 100644 --- a/thousandeyes-sdk-tags/src/thousandeyes_sdk/tags/models/access_type.py +++ b/thousandeyes-sdk-tags/src/thousandeyes_sdk/tags/models/access_type.py @@ -19,7 +19,7 @@ from typing_extensions import Self class AccessType(str, Enum): """ - The access level of the tag. The access level determines the label's visibility in the UI and the permissions required to modify it. Accepted values are: * `all`: The tag is visible and editable by any user in the account group with the standard **View tags** or **Edit tags** permission. Default for all user-created tags. * `partner`: The tag is owned by a specific integration partner. Only that partner can read or modify it. It's hidden from all regular account users and excluded from their GET responses. * `system`: Reserved for ThousandEyes internal use only. This value may appear in GET responses on internally managed tags but cannot be set by users or integration partners. + The access level of the tag. The access level determines the label's visibility in the UI and the permissions required to modify it. Accepted values are: * `all`: The tag is visible and editable by any user in the account group with the standard **View tags** or **Edit tags** permission. Default for all user-created tags. * `partner`: The tag is owned by a specific integration partner. Only that partner can read or modify it. It's hidden from all regular account users and excluded from their GET responses. * `system`: Reserved for ThousandEyes internal use only. This value may appear in GET responses on internally managed tags but cannot be set by users or integration partners. """ """ diff --git a/thousandeyes-sdk-tags/src/thousandeyes_sdk/tags/models/assignment_type.py b/thousandeyes-sdk-tags/src/thousandeyes_sdk/tags/models/assignment_type.py index 3aaa153a..187d13d7 100644 --- a/thousandeyes-sdk-tags/src/thousandeyes_sdk/tags/models/assignment_type.py +++ b/thousandeyes-sdk-tags/src/thousandeyes_sdk/tags/models/assignment_type.py @@ -29,6 +29,7 @@ class AssignmentType(str, Enum): V_MINUS_AGENT = 'v-agent' ENDPOINT_MINUS_TEST = 'endpoint-test' DASHBOARD = 'dashboard' + CONNECTED_MINUS_DEVICES_MINUS_TEST = 'connected-devices-test' UNKNOWN = 'unknown' @classmethod diff --git a/thousandeyes-sdk-tags/src/thousandeyes_sdk/tags/models/tag_filter.py b/thousandeyes-sdk-tags/src/thousandeyes_sdk/tags/models/tag_filter.py index 014275e5..8aeabaf7 100644 --- a/thousandeyes-sdk-tags/src/thousandeyes_sdk/tags/models/tag_filter.py +++ b/thousandeyes-sdk-tags/src/thousandeyes_sdk/tags/models/tag_filter.py @@ -16,10 +16,10 @@ import pprint import re # noqa: F401 import json -from pydantic import BaseModel, ConfigDict, StrictStr +from pydantic import BaseModel, ConfigDict, Field, StrictStr from typing import Any, ClassVar, Dict, List, Optional from thousandeyes_sdk.tags.models.tag_filter_mode import TagFilterMode -from thousandeyes_sdk.tags.models.tag_filter_type import TagFilterType +from thousandeyes_sdk.tags.models.tag_filter_scope import TagFilterScope from typing import Optional, Set from typing_extensions import Self @@ -27,10 +27,11 @@ class TagFilter(BaseModel): """ TagFilter """ # noqa: E501 - key: Optional[TagFilterType] = None + key: Optional[StrictStr] = Field(default=None, description="Filter key used for filtering. When `scope` is `default`, accepted values are `agent-id`, `location`, `serial-number`, `public-network`, `local-network`, `connection`, `gateway`, `platform`, `nic-model`, `nic-driver-version`, `agent-type`, `proxy-target`, `vpn-vendor`, `vpn-gateway-address`, `vpn-target`, `vpn-client-network`, `vpn-client-address`, `ip-address-family`, `ssid`, `bssid`, `hostname`, `username`, and `asn`. When `scope` is `custom`, use a user-defined check-in metadata key. ") values: Optional[List[StrictStr]] = None mode: Optional[TagFilterMode] = None - __properties: ClassVar[List[str]] = ["key", "values", "mode"] + scope: Optional[TagFilterScope] = None + __properties: ClassVar[List[str]] = ["key", "values", "mode", "scope"] model_config = ConfigDict( populate_by_name=True, @@ -86,7 +87,8 @@ class TagFilter(BaseModel): _obj = cls.model_validate({ "key": obj.get("key"), "values": obj.get("values"), - "mode": obj.get("mode") + "mode": obj.get("mode"), + "scope": obj.get("scope") }) return _obj diff --git a/thousandeyes-sdk-tags/src/thousandeyes_sdk/tags/models/tag_filter_type.py b/thousandeyes-sdk-tags/src/thousandeyes_sdk/tags/models/tag_filter_scope.py similarity index 64% rename from thousandeyes-sdk-tags/src/thousandeyes_sdk/tags/models/tag_filter_type.py rename to thousandeyes-sdk-tags/src/thousandeyes_sdk/tags/models/tag_filter_scope.py index 16c94f4c..3f54e140 100644 --- a/thousandeyes-sdk-tags/src/thousandeyes_sdk/tags/models/tag_filter_type.py +++ b/thousandeyes-sdk-tags/src/thousandeyes_sdk/tags/models/tag_filter_scope.py @@ -17,36 +17,21 @@ from enum import Enum from typing_extensions import Self -class TagFilterType(str, Enum): +class TagFilterScope(str, Enum): """ - Type of filter key - the data that will be used to filter. + Scope of the filter. * `default`: The filter is from the default set provided by ThousandEyes. * `custom`: The filter is user-defined. Set in check-in metadata. """ """ allowed enum values """ - AGENT_MINUS_ID = 'agent-id' - PUBLIC_MINUS_NETWORK = 'public-network' - LOCAL_MINUS_NETWORK = 'local-network' - CONNECTION = 'connection' - GATEWAY = 'gateway' - PLATFORM = 'platform' - AGENT_MINUS_TYPE = 'agent-type' - VPN_MINUS_VENDOR = 'vpn-vendor' - VPN_MINUS_GATEWAY_MINUS_ADDRESS = 'vpn-gateway-address' - VPN_MINUS_CLIENT_MINUS_NETWORK = 'vpn-client-network' - VPN_MINUS_CLIENT_MINUS_ADDRESS = 'vpn-client-address' - IP_MINUS_ADDRESS_MINUS_FAMILY = 'ip-address-family' - SSID = 'ssid' - BSSID = 'bssid' - HOSTNAME = 'hostname' - USERNAME = 'username' - ASN = 'asn' + DEFAULT = 'default' + CUSTOM = 'custom' UNKNOWN = 'unknown' @classmethod def from_json(cls, json_str: str) -> Self: - """Create an instance of TagFilterType from a JSON string""" + """Create an instance of TagFilterScope from a JSON string""" return cls(json.loads(json_str)) @classmethod diff --git a/thousandeyes-sdk-tags/test/test_tags_api.py b/thousandeyes-sdk-tags/test/test_tags_api.py index 1caa980a..5bf8f49f 100644 --- a/thousandeyes-sdk-tags/test/test_tags_api.py +++ b/thousandeyes-sdk-tags/test/test_tags_api.py @@ -47,10 +47,12 @@ class TestTagsApi(unittest.TestCase): "filters" : [ { "mode" : "in", "values" : [ "10.1.1.0/24", "192.168.1.0/24" ], + "scope" : "custom", "key" : "vpn-client-network" }, { "mode" : "in", "values" : [ "10.1.1.0/24", "192.168.1.0/24" ], + "scope" : "custom", "key" : "vpn-client-network" } ], "type" : "static", @@ -99,10 +101,12 @@ class TestTagsApi(unittest.TestCase): "filters" : [ { "mode" : "in", "values" : [ "10.1.1.0/24", "192.168.1.0/24" ], + "scope" : "custom", "key" : "vpn-client-network" }, { "mode" : "in", "values" : [ "10.1.1.0/24", "192.168.1.0/24" ], + "scope" : "custom", "key" : "vpn-client-network" } ], "type" : "static", @@ -155,10 +159,12 @@ class TestTagsApi(unittest.TestCase): "filters" : [ { "mode" : "in", "values" : [ "10.1.1.0/24", "192.168.1.0/24" ], + "scope" : "custom", "key" : "vpn-client-network" }, { "mode" : "in", "values" : [ "10.1.1.0/24", "192.168.1.0/24" ], + "scope" : "custom", "key" : "vpn-client-network" } ], "type" : "static", @@ -193,10 +199,12 @@ class TestTagsApi(unittest.TestCase): "filters" : [ { "mode" : "in", "values" : [ "10.1.1.0/24", "192.168.1.0/24" ], + "scope" : "custom", "key" : "vpn-client-network" }, { "mode" : "in", "values" : [ "10.1.1.0/24", "192.168.1.0/24" ], + "scope" : "custom", "key" : "vpn-client-network" } ], "type" : "static", @@ -242,10 +250,12 @@ class TestTagsApi(unittest.TestCase): "filters" : [ { "mode" : "in", "values" : [ "10.1.1.0/24", "192.168.1.0/24" ], + "scope" : "custom", "key" : "vpn-client-network" }, { "mode" : "in", "values" : [ "10.1.1.0/24", "192.168.1.0/24" ], + "scope" : "custom", "key" : "vpn-client-network" } ], "type" : "static", @@ -286,10 +296,12 @@ class TestTagsApi(unittest.TestCase): "filters" : [ { "mode" : "in", "values" : [ "10.1.1.0/24", "192.168.1.0/24" ], + "scope" : "custom", "key" : "vpn-client-network" }, { "mode" : "in", "values" : [ "10.1.1.0/24", "192.168.1.0/24" ], + "scope" : "custom", "key" : "vpn-client-network" } ], "type" : "static", @@ -342,10 +354,12 @@ class TestTagsApi(unittest.TestCase): "filters" : [ { "mode" : "in", "values" : [ "10.1.1.0/24", "192.168.1.0/24" ], + "scope" : "custom", "key" : "vpn-client-network" }, { "mode" : "in", "values" : [ "10.1.1.0/24", "192.168.1.0/24" ], + "scope" : "custom", "key" : "vpn-client-network" } ], "type" : "static", @@ -380,10 +394,12 @@ class TestTagsApi(unittest.TestCase): "filters" : [ { "mode" : "in", "values" : [ "10.1.1.0/24", "192.168.1.0/24" ], + "scope" : "custom", "key" : "vpn-client-network" }, { "mode" : "in", "values" : [ "10.1.1.0/24", "192.168.1.0/24" ], + "scope" : "custom", "key" : "vpn-client-network" } ], "type" : "static", @@ -429,10 +445,12 @@ class TestTagsApi(unittest.TestCase): "filters" : [ { "mode" : "in", "values" : [ "10.1.1.0/24", "192.168.1.0/24" ], + "scope" : "custom", "key" : "vpn-client-network" }, { "mode" : "in", "values" : [ "10.1.1.0/24", "192.168.1.0/24" ], + "scope" : "custom", "key" : "vpn-client-network" } ], "type" : "static", @@ -473,10 +491,12 @@ class TestTagsApi(unittest.TestCase): "filters" : [ { "mode" : "in", "values" : [ "10.1.1.0/24", "192.168.1.0/24" ], + "scope" : "custom", "key" : "vpn-client-network" }, { "mode" : "in", "values" : [ "10.1.1.0/24", "192.168.1.0/24" ], + "scope" : "custom", "key" : "vpn-client-network" } ], "type" : "static", @@ -532,10 +552,12 @@ class TestTagsApi(unittest.TestCase): "filters" : [ { "mode" : "in", "values" : [ "10.1.1.0/24", "192.168.1.0/24" ], + "scope" : "custom", "key" : "vpn-client-network" }, { "mode" : "in", "values" : [ "10.1.1.0/24", "192.168.1.0/24" ], + "scope" : "custom", "key" : "vpn-client-network" } ], "type" : "static", @@ -599,10 +621,12 @@ class TestTagsApi(unittest.TestCase): "filters" : [ { "mode" : "in", "values" : [ "10.1.1.0/24", "192.168.1.0/24" ], + "scope" : "custom", "key" : "vpn-client-network" }, { "mode" : "in", "values" : [ "10.1.1.0/24", "192.168.1.0/24" ], + "scope" : "custom", "key" : "vpn-client-network" } ], "type" : "static", @@ -643,10 +667,12 @@ class TestTagsApi(unittest.TestCase): "filters" : [ { "mode" : "in", "values" : [ "10.1.1.0/24", "192.168.1.0/24" ], + "scope" : "custom", "key" : "vpn-client-network" }, { "mode" : "in", "values" : [ "10.1.1.0/24", "192.168.1.0/24" ], + "scope" : "custom", "key" : "vpn-client-network" } ], "type" : "static", @@ -685,10 +711,12 @@ class TestTagsApi(unittest.TestCase): "filters" : [ { "mode" : "in", "values" : [ "10.1.1.0/24", "192.168.1.0/24" ], + "scope" : "custom", "key" : "vpn-client-network" }, { "mode" : "in", "values" : [ "10.1.1.0/24", "192.168.1.0/24" ], + "scope" : "custom", "key" : "vpn-client-network" } ], "type" : "static", @@ -737,10 +765,12 @@ class TestTagsApi(unittest.TestCase): "filters" : [ { "mode" : "in", "values" : [ "10.1.1.0/24", "192.168.1.0/24" ], + "scope" : "custom", "key" : "vpn-client-network" }, { "mode" : "in", "values" : [ "10.1.1.0/24", "192.168.1.0/24" ], + "scope" : "custom", "key" : "vpn-client-network" } ], "type" : "static", diff --git a/thousandeyes-sdk-test-results/README.md b/thousandeyes-sdk-test-results/README.md index 1c721b30..60b4d43e 100644 --- a/thousandeyes-sdk-test-results/README.md +++ b/thousandeyes-sdk-test-results/README.md @@ -3,7 +3,7 @@ Get test result metrics for Network and Application Synthetics tests. This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project: -- API version: 7.0.84 +- API version: 7.0.92 - Generator version: 7.6.0 - Build package: com.thousandeyes.api.codegen.ThousandeyesPythonGenerator diff --git a/thousandeyes-sdk-test-results/test/test_api_test_results_api.py b/thousandeyes-sdk-test-results/test/test_api_test_results_api.py index 21929b15..84434837 100644 --- a/thousandeyes-sdk-test-results/test/test_api_test_results_api.py +++ b/thousandeyes-sdk-test-results/test/test_api_test_results_api.py @@ -99,7 +99,7 @@ class TestAPITestResultsApi(unittest.TestCase): }, "results" : [ { "date" : "2022-07-17T22:00:54Z", - "completion" : 100.0, + "completion" : 100, "agent" : { "agentId" : "281474976710706", "agentName" : "thousandeyes-stg-va-254", @@ -123,7 +123,7 @@ class TestAPITestResultsApi(unittest.TestCase): "startTime" : 1384309800, "endTime" : 1384309800, "requests" : [ { - "completion" : 100.0, + "completion" : 100, "stepType" : "default", "responseTime" : 440.8, "apiCallTime" : 900.9, @@ -147,7 +147,7 @@ class TestAPITestResultsApi(unittest.TestCase): "stepTime" : 990.1, "waitTime" : 18.1 }, { - "completion" : 100.0, + "completion" : 100, "stepType" : "default", "responseTime" : 440.8, "apiCallTime" : 900.9, @@ -175,7 +175,7 @@ class TestAPITestResultsApi(unittest.TestCase): "errorDetails" : "Connection error" }, { "date" : "2022-07-17T22:00:54Z", - "completion" : 100.0, + "completion" : 100, "agent" : { "agentId" : "281474976710706", "agentName" : "thousandeyes-stg-va-254", @@ -199,7 +199,7 @@ class TestAPITestResultsApi(unittest.TestCase): "startTime" : 1384309800, "endTime" : 1384309800, "requests" : [ { - "completion" : 100.0, + "completion" : 100, "stepType" : "default", "responseTime" : 440.8, "apiCallTime" : 900.9, @@ -223,7 +223,7 @@ class TestAPITestResultsApi(unittest.TestCase): "stepTime" : 990.1, "waitTime" : 18.1 }, { - "completion" : 100.0, + "completion" : 100, "stepType" : "default", "responseTime" : 440.8, "apiCallTime" : 900.9, @@ -328,7 +328,7 @@ class TestAPITestResultsApi(unittest.TestCase): }, "results" : [ { "date" : "2022-07-17T22:00:54Z", - "completion" : 100.0, + "completion" : 100, "agent" : { "agentId" : "281474976710706", "agentName" : "thousandeyes-stg-va-254", @@ -355,7 +355,7 @@ class TestAPITestResultsApi(unittest.TestCase): "errorDetails" : "Connection error" }, { "date" : "2022-07-17T22:00:54Z", - "completion" : 100.0, + "completion" : 100, "agent" : { "agentId" : "281474976710706", "agentName" : "thousandeyes-stg-va-254", diff --git a/thousandeyes-sdk-test-results/test/test_network_bgp_test_results_api.py b/thousandeyes-sdk-test-results/test/test_network_bgp_test_results_api.py index 152f4935..efd34ea5 100644 --- a/thousandeyes-sdk-test-results/test/test_network_bgp_test_results_api.py +++ b/thousandeyes-sdk-test-results/test/test_network_bgp_test_results_api.py @@ -120,9 +120,9 @@ class TestNetworkBGPTestResultsApi(unittest.TestCase): }, "startTime" : 1384309800, "endTime" : 1384309800, - "reachability" : 0.0, - "updates" : 0.0, - "pathChanges" : 0.0, + "reachability" : 0, + "updates" : 0, + "pathChanges" : 0, "roundId" : 1384309800, "prefixId" : "215" }, { @@ -147,9 +147,9 @@ class TestNetworkBGPTestResultsApi(unittest.TestCase): }, "startTime" : 1384309800, "endTime" : 1384309800, - "reachability" : 0.0, - "updates" : 0.0, - "pathChanges" : 0.0, + "reachability" : 0, + "updates" : 0, + "pathChanges" : 0, "roundId" : 1384309800, "prefixId" : "215" } ], diff --git a/thousandeyes-sdk-test-results/test/test_network_test_results_api.py b/thousandeyes-sdk-test-results/test/test_network_test_results_api.py index d0232f03..47142f1e 100644 --- a/thousandeyes-sdk-test-results/test/test_network_test_results_api.py +++ b/thousandeyes-sdk-test-results/test/test_network_test_results_api.py @@ -111,7 +111,7 @@ class TestNetworkTestResultsApi(unittest.TestCase): "packetsBySecond" : [ [ ], [ 0 ], [ 2 ], [ 2, 1 ], [ 1, 1 ] ], "avgLatency" : 167.04, "bandwidth" : 4.3313155, - "minLatency" : 167.0, + "minLatency" : 167, "_links" : { "appLink" : { "hreflang" : "hreflang", @@ -124,19 +124,19 @@ class TestNetworkTestResultsApi(unittest.TestCase): "title" : "title" } }, - "maxLatency" : 168.0, + "maxLatency" : 168, "proxyJitter" : 1.2, - "proxyAverageLatency" : 45.0, + "proxyAverageLatency" : 45, "proxyLoss" : 2.5, "healthScore" : 0.98, "capacity" : 210.10854, - "loss" : 0.0, - "proxyMinLatency" : 40.0, + "loss" : 0, + "proxyMinLatency" : 40, "jitter" : 0.076808, "serverIp" : "50.18.127.223", "startTime" : 1384309800, "endTime" : 1384309800, - "proxyMaxLatency" : 50.0, + "proxyMaxLatency" : 50, "roundId" : 1384309800, "direction" : "to-target" }, { @@ -152,7 +152,7 @@ class TestNetworkTestResultsApi(unittest.TestCase): "packetsBySecond" : [ [ ], [ 0 ], [ 2 ], [ 2, 1 ], [ 1, 1 ] ], "avgLatency" : 167.04, "bandwidth" : 4.3313155, - "minLatency" : 167.0, + "minLatency" : 167, "_links" : { "appLink" : { "hreflang" : "hreflang", @@ -165,19 +165,19 @@ class TestNetworkTestResultsApi(unittest.TestCase): "title" : "title" } }, - "maxLatency" : 168.0, + "maxLatency" : 168, "proxyJitter" : 1.2, - "proxyAverageLatency" : 45.0, + "proxyAverageLatency" : 45, "proxyLoss" : 2.5, "healthScore" : 0.98, "capacity" : 210.10854, - "loss" : 0.0, - "proxyMinLatency" : 40.0, + "loss" : 0, + "proxyMinLatency" : 40, "jitter" : 0.076808, "serverIp" : "50.18.127.223", "startTime" : 1384309800, "endTime" : 1384309800, - "proxyMaxLatency" : 50.0, + "proxyMaxLatency" : 50, "roundId" : 1384309800, "direction" : "to-target" } ], diff --git a/thousandeyes-sdk-test-results/test/test_voice_rtp_server_test_results_api.py b/thousandeyes-sdk-test-results/test/test_voice_rtp_server_test_results_api.py index f372646e..292e9784 100644 --- a/thousandeyes-sdk-test-results/test/test_voice_rtp_server_test_results_api.py +++ b/thousandeyes-sdk-test-results/test/test_voice_rtp_server_test_results_api.py @@ -122,10 +122,10 @@ class TestVoiceRTPServerTestResultsApi(unittest.TestCase): "dscpName" : "EF (DSCP 46)", "latency" : 103, "mos" : 4.351024, - "loss" : 0.0, + "loss" : 0, "dscp" : "46", "codecMaxMos" : 4.41, - "discards" : 0.0, + "discards" : 0, "serverIp" : "172.97.102.37", "errorDetail" : "Connection error", "startTime" : 1384309800, @@ -156,10 +156,10 @@ class TestVoiceRTPServerTestResultsApi(unittest.TestCase): "dscpName" : "EF (DSCP 46)", "latency" : 103, "mos" : 4.351024, - "loss" : 0.0, + "loss" : 0, "dscp" : "46", "codecMaxMos" : 4.41, - "discards" : 0.0, + "discards" : 0, "serverIp" : "172.97.102.37", "errorDetail" : "Connection error", "startTime" : 1384309800, diff --git a/thousandeyes-sdk-test-results/test/test_voice_sip_server_test_results_api.py b/thousandeyes-sdk-test-results/test/test_voice_sip_server_test_results_api.py index e026c8b8..aaa8d210 100644 --- a/thousandeyes-sdk-test-results/test/test_voice_sip_server_test_results_api.py +++ b/thousandeyes-sdk-test-results/test/test_voice_sip_server_test_results_api.py @@ -125,7 +125,7 @@ class TestVoiceSIPServerTestResultsApi(unittest.TestCase): "responseTime" : 12, "totalTime" : 40, "errorType" : "none", - "availability" : 100.0, + "availability" : 100, "responseCode" : 200, "optionsResponse" : "SIP/2.0 401 Unauthorized\\r\\nVia: SIP/2.0/TCP 38.140.61.68:55431;rport=55431;received=38.140.61.68;branch=z9hG4bKRTzPzMoVh0\\r\\nCall-ID: oO9WaL3av8@38.140.61.68\\r\\nFrom: ;tag=cGaJDNKQFE\\r\\nTo: ;tag=z9hG4bKRTzPzMoVh0\\r\\nCSeq: 3 OPTIONS\\r\\nWWW-Authenticate: Digest realm=\\"asterisk\\",nonce=\\"1598728080/4e3bef2c789bdfa45ce9123221e08c8f\\",opaque=\\"748ffa241d840721\\",algorithm=md5,qop=\\"auth\\"\\r\\nServer: Asterisk PBX 16.4.0\\r\\nContent-Length: 0\\r\\n\\r\\n\\nSIP/2.0 200 OK\\r\\nVia: SIP/2.0/TCP 38.140.61.68:55431;rport=55431;received=38.140.61.68;branch=z9hG4bKRTzPzMoVh0\\r\\nCall-ID: oO9WaL3av8@38.140.61.68\\r\\nFrom: ;tag=cGaJDNKQFE\\r\\nTo: ;tag=z9hG4bKRTzPzMoVh0\\r\\nCSeq: 4 OPTIONS\\r\\nAccept: application/xpidf+xml, application/cpim-pidf+xml, application/simple-message-summary, application/pidf+xml, application/dialog-info+xml, application/simple-message-summary, application/pidf+xml, application/dialog-info+xml, application/sdp, message/sipfrag;version=2.0\\r\\nAllow: OPTIONS, REGISTER, SUBSCRIBE, NOTIFY, PUBLISH, INVITE, ACK, BYE, CANCEL, UPDATE, PRACK, MESSAGE, REFER\\r\\nSupported: 100rel, timer, replaces, norefersub\\r\\nAccept-Encoding: text/plain\\r\\nAccept-Language: en\\r\\nServer: Asterisk PBX 16.4.0\\r\\nContent-Length: 0\\r\\n\\r\\n", "problemDetail" : "problemDetail", @@ -164,7 +164,7 @@ class TestVoiceSIPServerTestResultsApi(unittest.TestCase): "responseTime" : 12, "totalTime" : 40, "errorType" : "none", - "availability" : 100.0, + "availability" : 100, "responseCode" : 200, "optionsResponse" : "SIP/2.0 401 Unauthorized\\r\\nVia: SIP/2.0/TCP 38.140.61.68:55431;rport=55431;received=38.140.61.68;branch=z9hG4bKRTzPzMoVh0\\r\\nCall-ID: oO9WaL3av8@38.140.61.68\\r\\nFrom: ;tag=cGaJDNKQFE\\r\\nTo: ;tag=z9hG4bKRTzPzMoVh0\\r\\nCSeq: 3 OPTIONS\\r\\nWWW-Authenticate: Digest realm=\\"asterisk\\",nonce=\\"1598728080/4e3bef2c789bdfa45ce9123221e08c8f\\",opaque=\\"748ffa241d840721\\",algorithm=md5,qop=\\"auth\\"\\r\\nServer: Asterisk PBX 16.4.0\\r\\nContent-Length: 0\\r\\n\\r\\n\\nSIP/2.0 200 OK\\r\\nVia: SIP/2.0/TCP 38.140.61.68:55431;rport=55431;received=38.140.61.68;branch=z9hG4bKRTzPzMoVh0\\r\\nCall-ID: oO9WaL3av8@38.140.61.68\\r\\nFrom: ;tag=cGaJDNKQFE\\r\\nTo: ;tag=z9hG4bKRTzPzMoVh0\\r\\nCSeq: 4 OPTIONS\\r\\nAccept: application/xpidf+xml, application/cpim-pidf+xml, application/simple-message-summary, application/pidf+xml, application/dialog-info+xml, application/simple-message-summary, application/pidf+xml, application/dialog-info+xml, application/sdp, message/sipfrag;version=2.0\\r\\nAllow: OPTIONS, REGISTER, SUBSCRIBE, NOTIFY, PUBLISH, INVITE, ACK, BYE, CANCEL, UPDATE, PRACK, MESSAGE, REFER\\r\\nSupported: 100rel, timer, replaces, norefersub\\r\\nAccept-Encoding: text/plain\\r\\nAccept-Language: en\\r\\nServer: Asterisk PBX 16.4.0\\r\\nContent-Length: 0\\r\\n\\r\\n", "problemDetail" : "problemDetail", diff --git a/thousandeyes-sdk-test-results/test/test_web_http_server_test_results_api.py b/thousandeyes-sdk-test-results/test/test_web_http_server_test_results_api.py index abd833f5..b1010fc1 100644 --- a/thousandeyes-sdk-test-results/test/test_web_http_server_test_results_api.py +++ b/thousandeyes-sdk-test-results/test/test_web_http_server_test_results_api.py @@ -125,7 +125,7 @@ class TestWebHTTPServerTestResultsApi(unittest.TestCase): "responseCode" : 200, "connectTime" : 2, "startTime" : 1384309800, - "throughput" : 123.0, + "throughput" : 123, "roundId" : 1384309800, "headers" : { "requestHeaders" : "GET / HTTP/1.1\\r\\nHost: www.thousandeyes.com\\r\\nUser-Agent: curl/7.58.0-DEV\\r\\nAccept: */*\\r\\nAccept-Encoding: deflate, gzip\\r\\nX-ThousandEyes-Agent: yes\\r\\n", @@ -189,7 +189,7 @@ class TestWebHTTPServerTestResultsApi(unittest.TestCase): "responseCode" : 200, "connectTime" : 2, "startTime" : 1384309800, - "throughput" : 123.0, + "throughput" : 123, "roundId" : 1384309800, "headers" : { "requestHeaders" : "GET / HTTP/1.1\\r\\nHost: www.thousandeyes.com\\r\\nUser-Agent: curl/7.58.0-DEV\\r\\nAccept: */*\\r\\nAccept-Encoding: deflate, gzip\\r\\nX-ThousandEyes-Agent: yes\\r\\n", diff --git a/thousandeyes-sdk-test-results/test/test_web_transactions_test_results_api.py b/thousandeyes-sdk-test-results/test/test_web_transactions_test_results_api.py index e54624a2..77da637d 100644 --- a/thousandeyes-sdk-test-results/test/test_web_transactions_test_results_api.py +++ b/thousandeyes-sdk-test-results/test/test_web_transactions_test_results_api.py @@ -352,10 +352,10 @@ class TestWebTransactionsTestResultsApi(unittest.TestCase): "startTime" : 1384309800, "endTime" : 1384309800, "markers" : [ { - "duration" : 0, + "duration" : 1360, "name" : "SearchForWebdriver" }, { - "duration" : 0, + "duration" : 1360, "name" : "SearchForWebdriver" } ], "roundId" : 1384309800, @@ -615,10 +615,10 @@ class TestWebTransactionsTestResultsApi(unittest.TestCase): "startTime" : 1384309800, "endTime" : 1384309800, "markers" : [ { - "duration" : 0, + "duration" : 1360, "name" : "SearchForWebdriver" }, { - "duration" : 0, + "duration" : 1360, "name" : "SearchForWebdriver" } ], "roundId" : 1384309800, @@ -738,10 +738,10 @@ class TestWebTransactionsTestResultsApi(unittest.TestCase): "endTime" : 1384309800, "transactionTime" : 2379, "markers" : [ { - "duration" : 0, + "duration" : 1360, "name" : "SearchForWebdriver" }, { - "duration" : 0, + "duration" : 1360, "name" : "SearchForWebdriver" } ], "roundId" : 1384309800, @@ -785,10 +785,10 @@ class TestWebTransactionsTestResultsApi(unittest.TestCase): "endTime" : 1384309800, "transactionTime" : 2379, "markers" : [ { - "duration" : 0, + "duration" : 1360, "name" : "SearchForWebdriver" }, { - "duration" : 0, + "duration" : 1360, "name" : "SearchForWebdriver" } ], "roundId" : 1384309800, diff --git a/thousandeyes-sdk-tests/.openapi-generator/FILES b/thousandeyes-sdk-tests/.openapi-generator/FILES index 238c8b1b..60ca0c12 100644 --- a/thousandeyes-sdk-tests/.openapi-generator/FILES +++ b/thousandeyes-sdk-tests/.openapi-generator/FILES @@ -42,6 +42,7 @@ docs/ApiTestRequest.md docs/ApiTestResponse.md docs/ApiTests.md docs/BGPTestsApi.md +docs/BaseBgpRequest.md docs/BaseBgpTest.md docs/BaseRequest.md docs/BaseTest.md @@ -63,11 +64,11 @@ docs/DnsSecTestResponse.md docs/DnsSecTests.md docs/DnsServerInstantTest.md docs/DnsServerProperties.md +docs/DnsServerRequestProperties.md docs/DnsServerTest.md docs/DnsServerTestRequest.md docs/DnsServerTestResponse.md docs/DnsServerTests.md -docs/DnsServersRequest.md docs/DnsTraceInstantTest.md docs/DnsTraceProperties.md docs/DnsTraceTest.md @@ -100,9 +101,10 @@ docs/Link.md docs/Monitor.md docs/MonitorType.md docs/MonitorsRequest.md +docs/NetworkProviderInfo.md +docs/NetworkProviderType.md docs/OAuth.md docs/OAuthAuthType.md -docs/OAuthRequestMethod.md docs/PageLoadInstantTest.md docs/PageLoadProperties.md docs/PageLoadTest.md @@ -111,12 +113,14 @@ docs/PageLoadTestResponse.md docs/PageLoadTests.md docs/PageLoadTestsApi.md docs/PathVisualizationInterfaceGroupsApi.md +docs/RequestMethod.md docs/SIPServerTestsApi.md docs/SelfLinks.md docs/SensitivityLevel.md docs/Severity.md docs/SharedWithAccount.md docs/SimpleAgent.md +docs/SimpleAgentAllOfNetworkProviderInfo.md docs/SimpleTest.md docs/SipServerInstantTest.md docs/SipServerProperties.md @@ -147,7 +151,10 @@ docs/TestSelfLink.md docs/TestSipCredentials.md docs/TestSslVersionId.md docs/TestSubInterval.md +docs/TestTag.md docs/TestType.md +docs/TestVaultCredential.md +docs/TestVaultCredentialTarget.md docs/TestVersionHistory.md docs/TestVersionHistoryResponse.md docs/Tests.md @@ -158,6 +165,7 @@ docs/UnexpandedAgentToServerTest.md docs/UnexpandedApiTest.md docs/UnexpandedBgpTest.md docs/UnexpandedDnsSecTest.md +docs/UnexpandedDnsServerRequestTest.md docs/UnexpandedDnsServerTest.md docs/UnexpandedDnsTraceTest.md docs/UnexpandedFtpServerTest.md @@ -170,7 +178,6 @@ docs/UnexpandedVoiceTest.md docs/UnexpandedWebTransactionTest.md docs/UpdateAgentToServerTestRequest.md docs/UpdateBgpTestRequest.md -docs/UpdateSipServerTest.md docs/ValidationError.md docs/ValidationErrorItem.md docs/VoiceInstantTest.md @@ -244,6 +251,7 @@ src/thousandeyes_sdk/tests/models/api_test.py src/thousandeyes_sdk/tests/models/api_test_request.py src/thousandeyes_sdk/tests/models/api_test_response.py src/thousandeyes_sdk/tests/models/api_tests.py +src/thousandeyes_sdk/tests/models/base_bgp_request.py src/thousandeyes_sdk/tests/models/base_bgp_test.py src/thousandeyes_sdk/tests/models/base_request.py src/thousandeyes_sdk/tests/models/base_test.py @@ -262,11 +270,11 @@ src/thousandeyes_sdk/tests/models/dns_sec_test_response.py src/thousandeyes_sdk/tests/models/dns_sec_tests.py src/thousandeyes_sdk/tests/models/dns_server_instant_test.py src/thousandeyes_sdk/tests/models/dns_server_properties.py +src/thousandeyes_sdk/tests/models/dns_server_request_properties.py src/thousandeyes_sdk/tests/models/dns_server_test.py src/thousandeyes_sdk/tests/models/dns_server_test_request.py src/thousandeyes_sdk/tests/models/dns_server_test_response.py src/thousandeyes_sdk/tests/models/dns_server_tests.py -src/thousandeyes_sdk/tests/models/dns_servers_request.py src/thousandeyes_sdk/tests/models/dns_trace_instant_test.py src/thousandeyes_sdk/tests/models/dns_trace_properties.py src/thousandeyes_sdk/tests/models/dns_trace_test.py @@ -297,20 +305,23 @@ src/thousandeyes_sdk/tests/models/link.py src/thousandeyes_sdk/tests/models/monitor.py src/thousandeyes_sdk/tests/models/monitor_type.py src/thousandeyes_sdk/tests/models/monitors_request.py +src/thousandeyes_sdk/tests/models/network_provider_info.py +src/thousandeyes_sdk/tests/models/network_provider_type.py src/thousandeyes_sdk/tests/models/o_auth.py src/thousandeyes_sdk/tests/models/o_auth_auth_type.py -src/thousandeyes_sdk/tests/models/o_auth_request_method.py src/thousandeyes_sdk/tests/models/page_load_instant_test.py src/thousandeyes_sdk/tests/models/page_load_properties.py src/thousandeyes_sdk/tests/models/page_load_test.py src/thousandeyes_sdk/tests/models/page_load_test_request.py src/thousandeyes_sdk/tests/models/page_load_test_response.py src/thousandeyes_sdk/tests/models/page_load_tests.py +src/thousandeyes_sdk/tests/models/request_method.py src/thousandeyes_sdk/tests/models/self_links.py src/thousandeyes_sdk/tests/models/sensitivity_level.py src/thousandeyes_sdk/tests/models/severity.py src/thousandeyes_sdk/tests/models/shared_with_account.py src/thousandeyes_sdk/tests/models/simple_agent.py +src/thousandeyes_sdk/tests/models/simple_agent_all_of_network_provider_info.py src/thousandeyes_sdk/tests/models/simple_test.py src/thousandeyes_sdk/tests/models/sip_server_instant_test.py src/thousandeyes_sdk/tests/models/sip_server_properties.py @@ -341,7 +352,10 @@ src/thousandeyes_sdk/tests/models/test_self_link.py src/thousandeyes_sdk/tests/models/test_sip_credentials.py src/thousandeyes_sdk/tests/models/test_ssl_version_id.py src/thousandeyes_sdk/tests/models/test_sub_interval.py +src/thousandeyes_sdk/tests/models/test_tag.py src/thousandeyes_sdk/tests/models/test_type.py +src/thousandeyes_sdk/tests/models/test_vault_credential.py +src/thousandeyes_sdk/tests/models/test_vault_credential_target.py src/thousandeyes_sdk/tests/models/test_version_history.py src/thousandeyes_sdk/tests/models/test_version_history_response.py src/thousandeyes_sdk/tests/models/tests.py @@ -351,6 +365,7 @@ src/thousandeyes_sdk/tests/models/unexpanded_agent_to_server_test.py src/thousandeyes_sdk/tests/models/unexpanded_api_test.py src/thousandeyes_sdk/tests/models/unexpanded_bgp_test.py src/thousandeyes_sdk/tests/models/unexpanded_dns_sec_test.py +src/thousandeyes_sdk/tests/models/unexpanded_dns_server_request_test.py src/thousandeyes_sdk/tests/models/unexpanded_dns_server_test.py src/thousandeyes_sdk/tests/models/unexpanded_dns_trace_test.py src/thousandeyes_sdk/tests/models/unexpanded_ftp_server_test.py @@ -363,7 +378,6 @@ src/thousandeyes_sdk/tests/models/unexpanded_voice_test.py src/thousandeyes_sdk/tests/models/unexpanded_web_transaction_test.py src/thousandeyes_sdk/tests/models/update_agent_to_server_test_request.py src/thousandeyes_sdk/tests/models/update_bgp_test_request.py -src/thousandeyes_sdk/tests/models/update_sip_server_test.py src/thousandeyes_sdk/tests/models/validation_error.py src/thousandeyes_sdk/tests/models/validation_error_item.py src/thousandeyes_sdk/tests/models/voice_instant_test.py diff --git a/thousandeyes-sdk-tests/README.md b/thousandeyes-sdk-tests/README.md index 4d7dc294..ab689544 100644 --- a/thousandeyes-sdk-tests/README.md +++ b/thousandeyes-sdk-tests/README.md @@ -6,7 +6,7 @@ This API allows you to list, create, edit, and delete Network and Application Sy This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project: -- API version: 7.0.84 +- API version: 7.0.92 - Generator version: 7.6.0 - Build package: com.thousandeyes.api.codegen.ThousandeyesPythonGenerator @@ -211,6 +211,7 @@ Class | Method | HTTP request | Description - [ApiTestRequest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/ApiTestRequest.md) - [ApiTestResponse](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/ApiTestResponse.md) - [ApiTests](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/ApiTests.md) + - [BaseBgpRequest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/BaseBgpRequest.md) - [BaseBgpTest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/BaseBgpTest.md) - [BaseRequest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/BaseRequest.md) - [BaseTest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/BaseTest.md) @@ -229,11 +230,11 @@ Class | Method | HTTP request | Description - [DnsSecTests](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/DnsSecTests.md) - [DnsServerInstantTest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/DnsServerInstantTest.md) - [DnsServerProperties](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/DnsServerProperties.md) + - [DnsServerRequestProperties](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/DnsServerRequestProperties.md) - [DnsServerTest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/DnsServerTest.md) - [DnsServerTestRequest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/DnsServerTestRequest.md) - [DnsServerTestResponse](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/DnsServerTestResponse.md) - [DnsServerTests](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/DnsServerTests.md) - - [DnsServersRequest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/DnsServersRequest.md) - [DnsTraceInstantTest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/DnsTraceInstantTest.md) - [DnsTraceProperties](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/DnsTraceProperties.md) - [DnsTraceTest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/DnsTraceTest.md) @@ -264,20 +265,23 @@ Class | Method | HTTP request | Description - [Monitor](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/Monitor.md) - [MonitorType](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/MonitorType.md) - [MonitorsRequest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/MonitorsRequest.md) + - [NetworkProviderInfo](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/NetworkProviderInfo.md) + - [NetworkProviderType](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/NetworkProviderType.md) - [OAuth](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/OAuth.md) - [OAuthAuthType](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/OAuthAuthType.md) - - [OAuthRequestMethod](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/OAuthRequestMethod.md) - [PageLoadInstantTest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/PageLoadInstantTest.md) - [PageLoadProperties](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/PageLoadProperties.md) - [PageLoadTest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/PageLoadTest.md) - [PageLoadTestRequest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/PageLoadTestRequest.md) - [PageLoadTestResponse](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/PageLoadTestResponse.md) - [PageLoadTests](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/PageLoadTests.md) + - [RequestMethod](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/RequestMethod.md) - [SelfLinks](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/SelfLinks.md) - [SensitivityLevel](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/SensitivityLevel.md) - [Severity](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/Severity.md) - [SharedWithAccount](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/SharedWithAccount.md) - [SimpleAgent](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/SimpleAgent.md) + - [SimpleAgentAllOfNetworkProviderInfo](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/SimpleAgentAllOfNetworkProviderInfo.md) - [SimpleTest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/SimpleTest.md) - [SipServerInstantTest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/SipServerInstantTest.md) - [SipServerProperties](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/SipServerProperties.md) @@ -308,7 +312,10 @@ Class | Method | HTTP request | Description - [TestSipCredentials](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/TestSipCredentials.md) - [TestSslVersionId](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/TestSslVersionId.md) - [TestSubInterval](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/TestSubInterval.md) + - [TestTag](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/TestTag.md) - [TestType](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/TestType.md) + - [TestVaultCredential](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/TestVaultCredential.md) + - [TestVaultCredentialTarget](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/TestVaultCredentialTarget.md) - [TestVersionHistory](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/TestVersionHistory.md) - [TestVersionHistoryResponse](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/TestVersionHistoryResponse.md) - [Tests](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/Tests.md) @@ -318,6 +325,7 @@ Class | Method | HTTP request | Description - [UnexpandedApiTest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/UnexpandedApiTest.md) - [UnexpandedBgpTest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/UnexpandedBgpTest.md) - [UnexpandedDnsSecTest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/UnexpandedDnsSecTest.md) + - [UnexpandedDnsServerRequestTest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/UnexpandedDnsServerRequestTest.md) - [UnexpandedDnsServerTest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/UnexpandedDnsServerTest.md) - [UnexpandedDnsTraceTest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/UnexpandedDnsTraceTest.md) - [UnexpandedFtpServerTest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/UnexpandedFtpServerTest.md) @@ -330,7 +338,6 @@ Class | Method | HTTP request | Description - [UnexpandedWebTransactionTest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/UnexpandedWebTransactionTest.md) - [UpdateAgentToServerTestRequest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/UpdateAgentToServerTestRequest.md) - [UpdateBgpTestRequest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/UpdateBgpTestRequest.md) - - [UpdateSipServerTest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/UpdateSipServerTest.md) - [ValidationError](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/ValidationError.md) - [ValidationErrorItem](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/ValidationErrorItem.md) - [VoiceInstantTest](https://github.com/thousandeyes/thousandeyes-sdk-python//tree/main/thousandeyes-sdk-tests/docs/VoiceInstantTest.md) diff --git a/thousandeyes-sdk-tests/docs/AgentResponse.md b/thousandeyes-sdk-tests/docs/AgentResponse.md index 214a9a8e..d61dec06 100644 --- a/thousandeyes-sdk-tests/docs/AgentResponse.md +++ b/thousandeyes-sdk-tests/docs/AgentResponse.md @@ -13,9 +13,10 @@ Name | Type | Description | Notes **location** | **str** | Location of the agent. | [optional] [readonly] **country_id** | **str** | 2-digit ISO country code | [optional] [readonly] **coordinates** | [**Coordinates**](Coordinates.md) | | [optional] +**network_provider_info** | [**SimpleAgentAllOfNetworkProviderInfo**](SimpleAgentAllOfNetworkProviderInfo.md) | | [optional] **enabled** | **bool** | Flag indicating if the agent is enabled. | [optional] -**prefix** | **str** | Prefix containing agents public IP address. | [optional] [readonly] **verify_ssl_certificates** | **bool** | Flag indicating if has normal SSL operations or if instead it's set to ignore SSL errors on browserbot-based tests. | [optional] [readonly] +**prefix** | **str** | Prefix containing agents public IP address. | [optional] [readonly] **agent_type** | [**CloudEnterpriseAgentType**](CloudEnterpriseAgentType.md) | | ## Example diff --git a/thousandeyes-sdk-tests/docs/AgentToAgentInstantTest.md b/thousandeyes-sdk-tests/docs/AgentToAgentInstantTest.md index fb0a7502..df485b88 100644 --- a/thousandeyes-sdk-tests/docs/AgentToAgentInstantTest.md +++ b/thousandeyes-sdk-tests/docs/AgentToAgentInstantTest.md @@ -17,6 +17,7 @@ Name | Type | Description | Notes **type** | **str** | | [optional] [readonly] **links** | [**TestLinks**](TestLinks.md) | | [optional] **labels** | [**List[TestLabel]**](TestLabel.md) | Labels to which the test is assigned. This field is not returned for Instant Tests. | [optional] [readonly] +**tags** | [**List[TestTag]**](TestTag.md) | Tags assigned to the test. Returned only when `expand=tag` is specified. This field is not returned for Instant Tests. For more information, see `/tags`. | [optional] [readonly] **shared_with_accounts** | [**List[SharedWithAccount]**](SharedWithAccount.md) | | [optional] [readonly] **direction** | [**TestDirection**](TestDirection.md) | | [optional] **dscp** | **str** | DSCP label. | [optional] [readonly] diff --git a/thousandeyes-sdk-tests/docs/AgentToAgentTest.md b/thousandeyes-sdk-tests/docs/AgentToAgentTest.md index 82c787a3..2f7b4ee5 100644 --- a/thousandeyes-sdk-tests/docs/AgentToAgentTest.md +++ b/thousandeyes-sdk-tests/docs/AgentToAgentTest.md @@ -21,6 +21,7 @@ Name | Type | Description | Notes **type** | **str** | | [optional] [readonly] **links** | [**TestLinks**](TestLinks.md) | | [optional] **labels** | [**List[TestLabel]**](TestLabel.md) | Labels to which the test is assigned. This field is not returned for Instant Tests. | [optional] [readonly] +**tags** | [**List[TestTag]**](TestTag.md) | Tags assigned to the test. Returned only when `expand=tag` is specified. This field is not returned for Instant Tests. For more information, see `/tags`. | [optional] [readonly] **shared_with_accounts** | [**List[SharedWithAccount]**](SharedWithAccount.md) | | [optional] [readonly] **direction** | [**TestDirection**](TestDirection.md) | | [optional] **dscp** | **str** | DSCP label. | [optional] [readonly] diff --git a/thousandeyes-sdk-tests/docs/AgentToAgentTestRequest.md b/thousandeyes-sdk-tests/docs/AgentToAgentTestRequest.md index 59e0c756..7b3fc019 100644 --- a/thousandeyes-sdk-tests/docs/AgentToAgentTestRequest.md +++ b/thousandeyes-sdk-tests/docs/AgentToAgentTestRequest.md @@ -8,7 +8,6 @@ Name | Type | Description | Notes **interval** | [**TestInterval**](TestInterval.md) | | **alerts_enabled** | **bool** | Indicates if alerts are enabled. | [optional] **enabled** | **bool** | Test is enabled. | [optional] [default to True] -**alert_rules** | **List[str]** | List of alert rules IDs to apply to the test (get `ruleId` from `/alerts/rules` endpoint. If `alertsEnabled` is set to `true` and `alertRules` is not included on test creation or update, applicable user default alert rules will be used) | [optional] **created_by** | **str** | User that created the test. | [optional] [readonly] **created_date** | **datetime** | UTC created date (ISO date-time format). | [optional] [readonly] **description** | **str** | A description of the test. | [optional] @@ -20,8 +19,6 @@ Name | Type | Description | Notes **test_name** | **str** | The name of the test. Test name must be unique. | [optional] **type** | **str** | | [optional] [readonly] **links** | [**TestLinks**](TestLinks.md) | | [optional] -**labels** | **List[str]** | Contains list of test label IDs (get `labelId` from `/labels` endpoint) | [optional] -**shared_with_accounts** | **List[str]** | Contains list of account group IDs. Test is shared with the listed account groups (get `aid` from `/account-groups` endpoint) | [optional] **direction** | [**TestDirection**](TestDirection.md) | | [optional] **dscp** | **str** | DSCP label. | [optional] [readonly] **dscp_id** | [**TestDscpId**](TestDscpId.md) | | [optional] @@ -38,9 +35,12 @@ Name | Type | Description | Notes **fixed_packet_rate** | **int** | Sets packets rate sent to measure the network in packets per second. | [optional] **bgp_measurements** | **bool** | Set to `true` to enable bgp measurements. | [optional] [default to True] **use_public_bgp** | **bool** | Indicate if all available public BGP monitors should be used, when ommited defaults to `bgpMeasurements` value. | [optional] [default to True] -**monitors** | **List[str]** | Contains list of BGP monitor IDs (get `monitorId` from `/monitors` endpoint) | [optional] +**labels** | **List[str]** | Contains list of test label IDs (get `labelId` from `/labels` endpoint) | [optional] **tags** | **List[str]** | Contains list of test tag IDs (get `id` from `/tags` endpoint). | [optional] +**shared_with_accounts** | **List[str]** | Contains list of account group IDs. Test is shared with the listed account groups (get `aid` from `/account-groups` endpoint) | [optional] +**alert_rules** | **List[str]** | List of alert rules IDs to apply to the test (get `ruleId` from `/alerts/rules` endpoint. If `alertsEnabled` is set to `true` and `alertRules` is not included on test creation or update, applicable user default alert rules will be used) | [optional] **agents** | [**List[TestAgentRequest]**](TestAgentRequest.md) | Contains list of Agent IDs (get `agentId` from `/agents` endpoint). | +**monitors** | **List[str]** | Contains list of BGP monitor IDs (get `monitorId` from `/monitors` endpoint) | [optional] ## Example diff --git a/thousandeyes-sdk-tests/docs/AgentToAgentTestResponse.md b/thousandeyes-sdk-tests/docs/AgentToAgentTestResponse.md index e9b1e2df..67907a43 100644 --- a/thousandeyes-sdk-tests/docs/AgentToAgentTestResponse.md +++ b/thousandeyes-sdk-tests/docs/AgentToAgentTestResponse.md @@ -21,6 +21,7 @@ Name | Type | Description | Notes **type** | **str** | | [optional] [readonly] **links** | [**TestLinks**](TestLinks.md) | | [optional] **labels** | [**List[TestLabel]**](TestLabel.md) | Labels to which the test is assigned. This field is not returned for Instant Tests. | [optional] [readonly] +**tags** | [**List[TestTag]**](TestTag.md) | Tags assigned to the test. Returned only when `expand=tag` is specified. This field is not returned for Instant Tests. For more information, see `/tags`. | [optional] [readonly] **shared_with_accounts** | [**List[SharedWithAccount]**](SharedWithAccount.md) | | [optional] [readonly] **direction** | [**TestDirection**](TestDirection.md) | | [optional] **dscp** | **str** | DSCP label. | [optional] [readonly] diff --git a/thousandeyes-sdk-tests/docs/AgentToServerInstantTest.md b/thousandeyes-sdk-tests/docs/AgentToServerInstantTest.md index ac7d5fb6..332779da 100644 --- a/thousandeyes-sdk-tests/docs/AgentToServerInstantTest.md +++ b/thousandeyes-sdk-tests/docs/AgentToServerInstantTest.md @@ -17,6 +17,7 @@ Name | Type | Description | Notes **type** | **str** | | [optional] [readonly] **links** | [**TestLinks**](TestLinks.md) | | [optional] **labels** | [**List[TestLabel]**](TestLabel.md) | Labels to which the test is assigned. This field is not returned for Instant Tests. | [optional] [readonly] +**tags** | [**List[TestTag]**](TestTag.md) | Tags assigned to the test. Returned only when `expand=tag` is specified. This field is not returned for Instant Tests. For more information, see `/tags`. | [optional] [readonly] **shared_with_accounts** | [**List[SharedWithAccount]**](SharedWithAccount.md) | | [optional] [readonly] **bandwidth_measurements** | **bool** | Set to `true` to enable bandwidth measurements, only applies to Enterprise agents assigned to the test. | [optional] **continuous_mode** | **bool** | To enable continuous monitoring, set this parameter to `true` to. When continuous monitoring is enabled, the following actions occur: * `fixedPacketRate` is enforced * `bandwidthMeasurements` are disabled * If the `protocol` is set to `tcp`, `probeMode` is set to `syn`. | [optional] diff --git a/thousandeyes-sdk-tests/docs/AgentToServerTest.md b/thousandeyes-sdk-tests/docs/AgentToServerTest.md index ed44bba2..3b042789 100644 --- a/thousandeyes-sdk-tests/docs/AgentToServerTest.md +++ b/thousandeyes-sdk-tests/docs/AgentToServerTest.md @@ -21,6 +21,7 @@ Name | Type | Description | Notes **type** | **str** | | [optional] [readonly] **links** | [**TestLinks**](TestLinks.md) | | [optional] **labels** | [**List[TestLabel]**](TestLabel.md) | Labels to which the test is assigned. This field is not returned for Instant Tests. | [optional] [readonly] +**tags** | [**List[TestTag]**](TestTag.md) | Tags assigned to the test. Returned only when `expand=tag` is specified. This field is not returned for Instant Tests. For more information, see `/tags`. | [optional] [readonly] **shared_with_accounts** | [**List[SharedWithAccount]**](SharedWithAccount.md) | | [optional] [readonly] **bandwidth_measurements** | **bool** | Set to `true` to enable bandwidth measurements, only applies to Enterprise agents assigned to the test. | [optional] **continuous_mode** | **bool** | To enable continuous monitoring, set this parameter to `true` to. When continuous monitoring is enabled, the following actions occur: * `fixedPacketRate` is enforced * `bandwidthMeasurements` are disabled * If the `protocol` is set to `tcp`, `probeMode` is set to `syn`. | [optional] diff --git a/thousandeyes-sdk-tests/docs/AgentToServerTestRequest.md b/thousandeyes-sdk-tests/docs/AgentToServerTestRequest.md index c4d50fc3..79cfcf02 100644 --- a/thousandeyes-sdk-tests/docs/AgentToServerTestRequest.md +++ b/thousandeyes-sdk-tests/docs/AgentToServerTestRequest.md @@ -8,7 +8,6 @@ Name | Type | Description | Notes **interval** | [**TestInterval**](TestInterval.md) | | **alerts_enabled** | **bool** | Indicates if alerts are enabled. | [optional] **enabled** | **bool** | Test is enabled. | [optional] [default to True] -**alert_rules** | **List[str]** | List of alert rules IDs to apply to the test (get `ruleId` from `/alerts/rules` endpoint. If `alertsEnabled` is set to `true` and `alertRules` is not included on test creation or update, applicable user default alert rules will be used) | [optional] **created_by** | **str** | User that created the test. | [optional] [readonly] **created_date** | **datetime** | UTC created date (ISO date-time format). | [optional] [readonly] **description** | **str** | A description of the test. | [optional] @@ -20,8 +19,6 @@ Name | Type | Description | Notes **test_name** | **str** | The name of the test. Test name must be unique. | [optional] **type** | **str** | | [optional] [readonly] **links** | [**TestLinks**](TestLinks.md) | | [optional] -**labels** | **List[str]** | Contains list of test label IDs (get `labelId` from `/labels` endpoint) | [optional] -**shared_with_accounts** | **List[str]** | Contains list of account group IDs. Test is shared with the listed account groups (get `aid` from `/account-groups` endpoint) | [optional] **bandwidth_measurements** | **bool** | Set to `true` to enable bandwidth measurements, only applies to Enterprise agents assigned to the test. | [optional] **continuous_mode** | **bool** | To enable continuous monitoring, set this parameter to `true` to. When continuous monitoring is enabled, the following actions occur: * `fixedPacketRate` is enforced * `bandwidthMeasurements` are disabled * If the `protocol` is set to `tcp`, `probeMode` is set to `syn`. | [optional] **fixed_packet_rate** | **int** | If continuousMode is `false`, set the fixedPacketRate to a value between 10-100. If `continuousMode` is `true`, set the `fixedPacketRate` to `1` | [optional] @@ -39,9 +36,12 @@ Name | Type | Description | Notes **network_measurements** | **bool** | View packet loss in 1-second intervals. This is only available for 1-minute interval tests. Set to `true` to enable network measurements. | [optional] [default to False] **bgp_measurements** | **bool** | Set to `true` to enable bgp measurements. | [optional] [default to True] **use_public_bgp** | **bool** | Indicate if all available public BGP monitors should be used, when ommited defaults to `bgpMeasurements` value. | [optional] [default to True] -**monitors** | **List[str]** | Contains list of BGP monitor IDs (get `monitorId` from `/monitors` endpoint) | [optional] +**labels** | **List[str]** | Contains list of test label IDs (get `labelId` from `/labels` endpoint) | [optional] **tags** | **List[str]** | Contains list of test tag IDs (get `id` from `/tags` endpoint). | [optional] +**shared_with_accounts** | **List[str]** | Contains list of account group IDs. Test is shared with the listed account groups (get `aid` from `/account-groups` endpoint) | [optional] +**alert_rules** | **List[str]** | List of alert rules IDs to apply to the test (get `ruleId` from `/alerts/rules` endpoint. If `alertsEnabled` is set to `true` and `alertRules` is not included on test creation or update, applicable user default alert rules will be used) | [optional] **agents** | [**List[TestAgentRequest]**](TestAgentRequest.md) | Contains list of Agent IDs (get `agentId` from `/agents` endpoint). | +**monitors** | **List[str]** | Contains list of BGP monitor IDs (get `monitorId` from `/monitors` endpoint) | [optional] **port** | **int** | Port number to use for the test. The default port is 80. | [optional] ## Example diff --git a/thousandeyes-sdk-tests/docs/AgentToServerTestResponse.md b/thousandeyes-sdk-tests/docs/AgentToServerTestResponse.md index 4775187a..1db2ee14 100644 --- a/thousandeyes-sdk-tests/docs/AgentToServerTestResponse.md +++ b/thousandeyes-sdk-tests/docs/AgentToServerTestResponse.md @@ -21,6 +21,7 @@ Name | Type | Description | Notes **type** | **str** | | [optional] [readonly] **links** | [**TestLinks**](TestLinks.md) | | [optional] **labels** | [**List[TestLabel]**](TestLabel.md) | Labels to which the test is assigned. This field is not returned for Instant Tests. | [optional] [readonly] +**tags** | [**List[TestTag]**](TestTag.md) | Tags assigned to the test. Returned only when `expand=tag` is specified. This field is not returned for Instant Tests. For more information, see `/tags`. | [optional] [readonly] **shared_with_accounts** | [**List[SharedWithAccount]**](SharedWithAccount.md) | | [optional] [readonly] **bandwidth_measurements** | **bool** | Set to `true` to enable bandwidth measurements, only applies to Enterprise agents assigned to the test. | [optional] **continuous_mode** | **bool** | To enable continuous monitoring, set this parameter to `true` to. When continuous monitoring is enabled, the following actions occur: * `fixedPacketRate` is enforced * `bandwidthMeasurements` are disabled * If the `protocol` is set to `tcp`, `probeMode` is set to `syn`. | [optional] diff --git a/thousandeyes-sdk-tests/docs/ApiInstantTest.md b/thousandeyes-sdk-tests/docs/ApiInstantTest.md index d3fec024..940986db 100644 --- a/thousandeyes-sdk-tests/docs/ApiInstantTest.md +++ b/thousandeyes-sdk-tests/docs/ApiInstantTest.md @@ -17,6 +17,7 @@ Name | Type | Description | Notes **type** | **str** | | [optional] [readonly] **links** | [**TestLinks**](TestLinks.md) | | [optional] **labels** | [**List[TestLabel]**](TestLabel.md) | Labels to which the test is assigned. This field is not returned for Instant Tests. | [optional] [readonly] +**tags** | [**List[TestTag]**](TestTag.md) | Tags assigned to the test. Returned only when `expand=tag` is specified. This field is not returned for Instant Tests. For more information, see `/tags`. | [optional] [readonly] **shared_with_accounts** | [**List[SharedWithAccount]**](SharedWithAccount.md) | | [optional] [readonly] **client_certificate** | **str** | String representation (containing newline characters) of client certificate, the private key must be placed first, then the certificate. | [optional] **client_cert_domains_allow_list** | **str** | Comma separated list of domains to send the client certificate. | [optional] @@ -39,6 +40,7 @@ Name | Type | Description | Notes **time_limit** | **int** | Time limit for transaction in seconds. Exceeding this limit will result in a Timeout error. | [optional] [default to 30] **url** | **str** | Target for the test. | **credentials** | **List[str]** | Contains a list of credential IDs (get `credentialId` from `/credentials` endpoint). | [optional] +**vault_credentials** | [**List[TestVaultCredential]**](TestVaultCredential.md) | List of credential IDs that are stored in an external vault. | [optional] ## Example diff --git a/thousandeyes-sdk-tests/docs/ApiTest.md b/thousandeyes-sdk-tests/docs/ApiTest.md index f2c42570..e7326f97 100644 --- a/thousandeyes-sdk-tests/docs/ApiTest.md +++ b/thousandeyes-sdk-tests/docs/ApiTest.md @@ -21,6 +21,7 @@ Name | Type | Description | Notes **type** | **str** | | [optional] [readonly] **links** | [**TestLinks**](TestLinks.md) | | [optional] **labels** | [**List[TestLabel]**](TestLabel.md) | Labels to which the test is assigned. This field is not returned for Instant Tests. | [optional] [readonly] +**tags** | [**List[TestTag]**](TestTag.md) | Tags assigned to the test. Returned only when `expand=tag` is specified. This field is not returned for Instant Tests. For more information, see `/tags`. | [optional] [readonly] **shared_with_accounts** | [**List[SharedWithAccount]**](SharedWithAccount.md) | | [optional] [readonly] **client_certificate** | **str** | String representation (containing newline characters) of client certificate, the private key must be placed first, then the certificate. | [optional] **client_cert_domains_allow_list** | **str** | Comma separated list of domains to send the client certificate. | [optional] @@ -43,6 +44,7 @@ Name | Type | Description | Notes **time_limit** | **int** | Time limit for transaction in seconds. Exceeding this limit will result in a Timeout error. | [optional] [default to 30] **url** | **str** | Target for the test. | **credentials** | **List[str]** | Contains a list of credential IDs (get `credentialId` from `/credentials` endpoint). | [optional] +**vault_credentials** | [**List[TestVaultCredential]**](TestVaultCredential.md) | List of credential IDs that are stored in an external vault. | [optional] **bgp_measurements** | **bool** | Set to `true` to enable bgp measurements. | [optional] [default to True] **use_public_bgp** | **bool** | Indicate if all available public BGP monitors should be used, when ommited defaults to `bgpMeasurements` value. | [optional] [default to True] **monitors** | [**List[Monitor]**](Monitor.md) | Contains list of enabled BGP monitors. | [optional] [readonly] diff --git a/thousandeyes-sdk-tests/docs/ApiTestRequest.md b/thousandeyes-sdk-tests/docs/ApiTestRequest.md index 92d1a95d..a53ae093 100644 --- a/thousandeyes-sdk-tests/docs/ApiTestRequest.md +++ b/thousandeyes-sdk-tests/docs/ApiTestRequest.md @@ -8,7 +8,6 @@ Name | Type | Description | Notes **interval** | [**TestInterval**](TestInterval.md) | | **alerts_enabled** | **bool** | Indicates if alerts are enabled. | [optional] **enabled** | **bool** | Test is enabled. | [optional] [default to True] -**alert_rules** | **List[str]** | List of alert rules IDs to apply to the test (get `ruleId` from `/alerts/rules` endpoint. If `alertsEnabled` is set to `true` and `alertRules` is not included on test creation or update, applicable user default alert rules will be used) | [optional] **created_by** | **str** | User that created the test. | [optional] [readonly] **created_date** | **datetime** | UTC created date (ISO date-time format). | [optional] [readonly] **description** | **str** | A description of the test. | [optional] @@ -20,8 +19,6 @@ Name | Type | Description | Notes **test_name** | **str** | The name of the test. Test name must be unique. | [optional] **type** | **str** | | [optional] [readonly] **links** | [**TestLinks**](TestLinks.md) | | [optional] -**labels** | **List[str]** | Contains list of test label IDs (get `labelId` from `/labels` endpoint) | [optional] -**shared_with_accounts** | **List[str]** | Contains list of account group IDs. Test is shared with the listed account groups (get `aid` from `/account-groups` endpoint) | [optional] **client_certificate** | **str** | String representation (containing newline characters) of client certificate, the private key must be placed first, then the certificate. | [optional] **client_cert_domains_allow_list** | **str** | Comma separated list of domains to send the client certificate. | [optional] **collect_proxy_network_data** | **bool** | Indicates whether network data to the proxy should be collected. | [optional] [default to False] @@ -42,12 +39,16 @@ Name | Type | Description | Notes **target_time** | **int** | Target time for completion metric, defaults to 50% of time limit specified in seconds. (0 means default behavior) | [optional] **time_limit** | **int** | Time limit for transaction in seconds. Exceeding this limit will result in a Timeout error. | [optional] [default to 30] **url** | **str** | Target for the test. | -**credentials** | **List[str]** | Contains a list of credential IDs (get `credentialId` from `/credentials` endpoint). | [optional] **bgp_measurements** | **bool** | Set to `true` to enable bgp measurements. | [optional] [default to True] **use_public_bgp** | **bool** | Indicate if all available public BGP monitors should be used, when ommited defaults to `bgpMeasurements` value. | [optional] [default to True] -**monitors** | [**List[Monitor]**](Monitor.md) | Contains list of enabled BGP monitors. | [optional] [readonly] +**labels** | **List[str]** | Contains list of test label IDs (get `labelId` from `/labels` endpoint) | [optional] **tags** | **List[str]** | Contains list of test tag IDs (get `id` from `/tags` endpoint). | [optional] +**shared_with_accounts** | **List[str]** | Contains list of account group IDs. Test is shared with the listed account groups (get `aid` from `/account-groups` endpoint) | [optional] +**alert_rules** | **List[str]** | List of alert rules IDs to apply to the test (get `ruleId` from `/alerts/rules` endpoint. If `alertsEnabled` is set to `true` and `alertRules` is not included on test creation or update, applicable user default alert rules will be used) | [optional] **agents** | [**List[TestAgentRequest]**](TestAgentRequest.md) | Contains list of Agent IDs (get `agentId` from `/agents` endpoint). | +**monitors** | **List[str]** | Contains list of BGP monitor IDs (get `monitorId` from `/monitors` endpoint) | [optional] +**credentials** | **List[str]** | Contains a list of credential IDs (get `credentialId` from `/credentials` endpoint). | [optional] +**vault_credentials** | [**List[TestVaultCredential]**](TestVaultCredential.md) | List of credential IDs that are stored in an external vault. | [optional] ## Example diff --git a/thousandeyes-sdk-tests/docs/ApiTestResponse.md b/thousandeyes-sdk-tests/docs/ApiTestResponse.md index ff229c8c..d90b9c71 100644 --- a/thousandeyes-sdk-tests/docs/ApiTestResponse.md +++ b/thousandeyes-sdk-tests/docs/ApiTestResponse.md @@ -21,6 +21,7 @@ Name | Type | Description | Notes **type** | **str** | | [optional] [readonly] **links** | [**TestLinks**](TestLinks.md) | | [optional] **labels** | [**List[TestLabel]**](TestLabel.md) | Labels to which the test is assigned. This field is not returned for Instant Tests. | [optional] [readonly] +**tags** | [**List[TestTag]**](TestTag.md) | Tags assigned to the test. Returned only when `expand=tag` is specified. This field is not returned for Instant Tests. For more information, see `/tags`. | [optional] [readonly] **shared_with_accounts** | [**List[SharedWithAccount]**](SharedWithAccount.md) | | [optional] [readonly] **client_certificate** | **str** | String representation (containing newline characters) of client certificate, the private key must be placed first, then the certificate. | [optional] **client_cert_domains_allow_list** | **str** | Comma separated list of domains to send the client certificate. | [optional] @@ -43,6 +44,7 @@ Name | Type | Description | Notes **time_limit** | **int** | Time limit for transaction in seconds. Exceeding this limit will result in a Timeout error. | [optional] [default to 30] **url** | **str** | Target for the test. | **credentials** | **List[str]** | Contains a list of credential IDs (get `credentialId` from `/credentials` endpoint). | [optional] +**vault_credentials** | [**List[TestVaultCredential]**](TestVaultCredential.md) | List of credential IDs that are stored in an external vault. | [optional] **bgp_measurements** | **bool** | Set to `true` to enable bgp measurements. | [optional] [default to True] **use_public_bgp** | **bool** | Indicate if all available public BGP monitors should be used, when ommited defaults to `bgpMeasurements` value. | [optional] [default to True] **monitors** | [**List[Monitor]**](Monitor.md) | Contains list of enabled BGP monitors. | [optional] [readonly] diff --git a/thousandeyes-sdk-tests/docs/BaseBgpRequest.md b/thousandeyes-sdk-tests/docs/BaseBgpRequest.md new file mode 100644 index 00000000..c587dfe5 --- /dev/null +++ b/thousandeyes-sdk-tests/docs/BaseBgpRequest.md @@ -0,0 +1,43 @@ +# BaseBgpRequest + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**created_by** | **str** | User that created the test. | [optional] [readonly] +**created_date** | **datetime** | UTC created date (ISO date-time format). | [optional] [readonly] +**description** | **str** | A description of the test. | [optional] +**live_share** | **bool** | Indicates if the test is shared with the account group. | [optional] [readonly] +**modified_by** | **str** | User that modified the test. | [optional] [readonly] +**modified_date** | **datetime** | UTC last modification date (ISO date-time format). | [optional] [readonly] +**saved_event** | **bool** | Indicates if the test is a saved event. **Note**: **Saved Events** are now called **Private Snapshots** in the user interface. This change does not affect API. | [optional] [readonly] +**test_id** | **str** | Each test is assigned an unique ID; this is used to access test information and results from other endpoints. | [optional] [readonly] +**test_name** | **str** | The name of the test. Test name must be unique. | [optional] +**type** | **str** | | [optional] [readonly] +**links** | [**TestLinks**](TestLinks.md) | | [optional] +**enabled** | **bool** | Test is enabled. | [optional] [default to True] +**include_covered_prefixes** | **bool** | Indicate if queries for subprefixes detected under this prefix should included. | [optional] +**use_public_bgp** | **bool** | Indicate if all available public BGP monitors should be used, when ommited defaults to `bgpMeasurements` value. | [optional] [default to True] +**alerts_enabled** | **bool** | Indicates if alerts are enabled. | [optional] + +## Example + +```python +from thousandeyes_sdk.tests.models.base_bgp_request import BaseBgpRequest + +# TODO update the JSON string below +json = "{}" +# create an instance of BaseBgpRequest from a JSON string +base_bgp_request_instance = BaseBgpRequest.from_json(json) +# print the JSON string representation of the object +print(BaseBgpRequest.to_json()) + +# convert the object into a dict +base_bgp_request_dict = base_bgp_request_instance.to_dict() +# create an instance of BaseBgpRequest from a dict +base_bgp_request_from_dict = BaseBgpRequest.from_dict(base_bgp_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/thousandeyes-sdk-tests/docs/BaseBgpTest.md b/thousandeyes-sdk-tests/docs/BaseBgpTest.md index 5520abdd..752eda4f 100644 --- a/thousandeyes-sdk-tests/docs/BaseBgpTest.md +++ b/thousandeyes-sdk-tests/docs/BaseBgpTest.md @@ -17,6 +17,7 @@ Name | Type | Description | Notes **type** | **str** | | [optional] [readonly] **links** | [**TestLinks**](TestLinks.md) | | [optional] **labels** | [**List[TestLabel]**](TestLabel.md) | Labels to which the test is assigned. This field is not returned for Instant Tests. | [optional] [readonly] +**tags** | [**List[TestTag]**](TestTag.md) | Tags assigned to the test. Returned only when `expand=tag` is specified. This field is not returned for Instant Tests. For more information, see `/tags`. | [optional] [readonly] **shared_with_accounts** | [**List[SharedWithAccount]**](SharedWithAccount.md) | | [optional] [readonly] **enabled** | **bool** | Test is enabled. | [optional] [default to True] **monitors** | [**List[Monitor]**](Monitor.md) | Contains list of enabled BGP monitors. | [optional] [readonly] diff --git a/thousandeyes-sdk-tests/docs/BgpTest.md b/thousandeyes-sdk-tests/docs/BgpTest.md index c3d96aa8..93fcc73f 100644 --- a/thousandeyes-sdk-tests/docs/BgpTest.md +++ b/thousandeyes-sdk-tests/docs/BgpTest.md @@ -17,6 +17,7 @@ Name | Type | Description | Notes **type** | **str** | | [optional] [readonly] **links** | [**TestLinks**](TestLinks.md) | | [optional] **labels** | [**List[TestLabel]**](TestLabel.md) | Labels to which the test is assigned. This field is not returned for Instant Tests. | [optional] [readonly] +**tags** | [**List[TestTag]**](TestTag.md) | Tags assigned to the test. Returned only when `expand=tag` is specified. This field is not returned for Instant Tests. For more information, see `/tags`. | [optional] [readonly] **shared_with_accounts** | [**List[SharedWithAccount]**](SharedWithAccount.md) | | [optional] [readonly] **enabled** | **bool** | Test is enabled. | [optional] [default to True] **monitors** | [**List[Monitor]**](Monitor.md) | Contains list of enabled BGP monitors. | [optional] [readonly] diff --git a/thousandeyes-sdk-tests/docs/BgpTestRequest.md b/thousandeyes-sdk-tests/docs/BgpTestRequest.md index baf09c84..5c4d5554 100644 --- a/thousandeyes-sdk-tests/docs/BgpTestRequest.md +++ b/thousandeyes-sdk-tests/docs/BgpTestRequest.md @@ -16,16 +16,16 @@ Name | Type | Description | Notes **test_name** | **str** | The name of the test. Test name must be unique. | [optional] **type** | **str** | | [optional] [readonly] **links** | [**TestLinks**](TestLinks.md) | | [optional] -**labels** | **List[str]** | Contains list of test label IDs (get `labelId` from `/labels` endpoint) | [optional] -**shared_with_accounts** | **List[str]** | Contains list of account group IDs. Test is shared with the listed account groups (get `aid` from `/account-groups` endpoint) | [optional] **enabled** | **bool** | Test is enabled. | [optional] [default to True] -**monitors** | **List[str]** | Contains list of BGP monitor IDs (get `monitorId` from `/monitors` endpoint) | [optional] **include_covered_prefixes** | **bool** | Indicate if queries for subprefixes detected under this prefix should included. | [optional] **use_public_bgp** | **bool** | Indicate if all available public BGP monitors should be used, when ommited defaults to `bgpMeasurements` value. | [optional] [default to True] **alerts_enabled** | **bool** | Indicates if alerts are enabled. | [optional] -**alert_rules** | **List[str]** | List of alert rules IDs to apply to the test (get `ruleId` from `/alerts/rules` endpoint. If `alertsEnabled` is set to `true` and `alertRules` is not included on test creation or update, applicable user default alert rules will be used) | [optional] **prefix** | **str** | a.b.c.d is a network address, with the prefix length defined as e. Prefixes can be any length from 8 to 24. | +**labels** | **List[str]** | Contains list of test label IDs (get `labelId` from `/labels` endpoint) | [optional] **tags** | **List[str]** | Contains list of test tag IDs (get `id` from `/tags` endpoint). | [optional] +**shared_with_accounts** | **List[str]** | Contains list of account group IDs. Test is shared with the listed account groups (get `aid` from `/account-groups` endpoint) | [optional] +**alert_rules** | **List[str]** | List of alert rules IDs to apply to the test (get `ruleId` from `/alerts/rules` endpoint. If `alertsEnabled` is set to `true` and `alertRules` is not included on test creation or update, applicable user default alert rules will be used) | [optional] +**monitors** | **List[str]** | Contains list of BGP monitor IDs (get `monitorId` from `/monitors` endpoint) | [optional] ## Example diff --git a/thousandeyes-sdk-tests/docs/BgpTestResponse.md b/thousandeyes-sdk-tests/docs/BgpTestResponse.md index 39edf3ac..e16287ea 100644 --- a/thousandeyes-sdk-tests/docs/BgpTestResponse.md +++ b/thousandeyes-sdk-tests/docs/BgpTestResponse.md @@ -17,6 +17,7 @@ Name | Type | Description | Notes **type** | **str** | | [optional] [readonly] **links** | [**TestLinks**](TestLinks.md) | | [optional] **labels** | [**List[TestLabel]**](TestLabel.md) | Labels to which the test is assigned. This field is not returned for Instant Tests. | [optional] [readonly] +**tags** | [**List[TestTag]**](TestTag.md) | Tags assigned to the test. Returned only when `expand=tag` is specified. This field is not returned for Instant Tests. For more information, see `/tags`. | [optional] [readonly] **shared_with_accounts** | [**List[SharedWithAccount]**](SharedWithAccount.md) | | [optional] [readonly] **enabled** | **bool** | Test is enabled. | [optional] [default to True] **monitors** | [**List[Monitor]**](Monitor.md) | Contains list of enabled BGP monitors. | [optional] [readonly] diff --git a/thousandeyes-sdk-tests/docs/DnsSecInstantTest.md b/thousandeyes-sdk-tests/docs/DnsSecInstantTest.md index 75ccebdf..267f7df2 100644 --- a/thousandeyes-sdk-tests/docs/DnsSecInstantTest.md +++ b/thousandeyes-sdk-tests/docs/DnsSecInstantTest.md @@ -17,6 +17,7 @@ Name | Type | Description | Notes **type** | **str** | | [optional] [readonly] **links** | [**TestLinks**](TestLinks.md) | | [optional] **labels** | [**List[TestLabel]**](TestLabel.md) | Labels to which the test is assigned. This field is not returned for Instant Tests. | [optional] [readonly] +**tags** | [**List[TestTag]**](TestTag.md) | Tags assigned to the test. Returned only when `expand=tag` is specified. This field is not returned for Instant Tests. For more information, see `/tags`. | [optional] [readonly] **shared_with_accounts** | [**List[SharedWithAccount]**](SharedWithAccount.md) | | [optional] [readonly] **domain** | **str** | The target record for the test, with the record type suffixed. If no record type is specified, the test defaults to an ANY record. | **dns_query_class** | [**DnsQueryClass**](DnsQueryClass.md) | | [optional] diff --git a/thousandeyes-sdk-tests/docs/DnsSecTest.md b/thousandeyes-sdk-tests/docs/DnsSecTest.md index 65dcc73a..85dcb925 100644 --- a/thousandeyes-sdk-tests/docs/DnsSecTest.md +++ b/thousandeyes-sdk-tests/docs/DnsSecTest.md @@ -21,6 +21,7 @@ Name | Type | Description | Notes **type** | **str** | | [optional] [readonly] **links** | [**TestLinks**](TestLinks.md) | | [optional] **labels** | [**List[TestLabel]**](TestLabel.md) | Labels to which the test is assigned. This field is not returned for Instant Tests. | [optional] [readonly] +**tags** | [**List[TestTag]**](TestTag.md) | Tags assigned to the test. Returned only when `expand=tag` is specified. This field is not returned for Instant Tests. For more information, see `/tags`. | [optional] [readonly] **shared_with_accounts** | [**List[SharedWithAccount]**](SharedWithAccount.md) | | [optional] [readonly] **domain** | **str** | The target record for the test, with the record type suffixed. If no record type is specified, the test defaults to an ANY record. | **dns_query_class** | [**DnsQueryClass**](DnsQueryClass.md) | | [optional] diff --git a/thousandeyes-sdk-tests/docs/DnsSecTestRequest.md b/thousandeyes-sdk-tests/docs/DnsSecTestRequest.md index 1091282d..9bac0bd6 100644 --- a/thousandeyes-sdk-tests/docs/DnsSecTestRequest.md +++ b/thousandeyes-sdk-tests/docs/DnsSecTestRequest.md @@ -8,7 +8,6 @@ Name | Type | Description | Notes **interval** | [**TestInterval**](TestInterval.md) | | **alerts_enabled** | **bool** | Indicates if alerts are enabled. | [optional] **enabled** | **bool** | Test is enabled. | [optional] [default to True] -**alert_rules** | **List[str]** | List of alert rules IDs to apply to the test (get `ruleId` from `/alerts/rules` endpoint. If `alertsEnabled` is set to `true` and `alertRules` is not included on test creation or update, applicable user default alert rules will be used) | [optional] **created_by** | **str** | User that created the test. | [optional] [readonly] **created_date** | **datetime** | UTC created date (ISO date-time format). | [optional] [readonly] **description** | **str** | A description of the test. | [optional] @@ -20,12 +19,13 @@ Name | Type | Description | Notes **test_name** | **str** | The name of the test. Test name must be unique. | [optional] **type** | **str** | | [optional] [readonly] **links** | [**TestLinks**](TestLinks.md) | | [optional] -**labels** | **List[str]** | Contains list of test label IDs (get `labelId` from `/labels` endpoint) | [optional] -**shared_with_accounts** | **List[str]** | Contains list of account group IDs. Test is shared with the listed account groups (get `aid` from `/account-groups` endpoint) | [optional] **domain** | **str** | The target record for the test, with the record type suffixed. If no record type is specified, the test defaults to an ANY record. | **dns_query_class** | [**DnsQueryClass**](DnsQueryClass.md) | | [optional] **randomized_start_time** | **bool** | Indicates whether agents should randomize the start time in each test round. | [optional] [default to False] +**labels** | **List[str]** | Contains list of test label IDs (get `labelId` from `/labels` endpoint) | [optional] **tags** | **List[str]** | Contains list of test tag IDs (get `id` from `/tags` endpoint). | [optional] +**shared_with_accounts** | **List[str]** | Contains list of account group IDs. Test is shared with the listed account groups (get `aid` from `/account-groups` endpoint) | [optional] +**alert_rules** | **List[str]** | List of alert rules IDs to apply to the test (get `ruleId` from `/alerts/rules` endpoint. If `alertsEnabled` is set to `true` and `alertRules` is not included on test creation or update, applicable user default alert rules will be used) | [optional] **agents** | [**List[TestAgentRequest]**](TestAgentRequest.md) | Contains list of Agent IDs (get `agentId` from `/agents` endpoint). | ## Example diff --git a/thousandeyes-sdk-tests/docs/DnsSecTestResponse.md b/thousandeyes-sdk-tests/docs/DnsSecTestResponse.md index eac1d8de..03900c3e 100644 --- a/thousandeyes-sdk-tests/docs/DnsSecTestResponse.md +++ b/thousandeyes-sdk-tests/docs/DnsSecTestResponse.md @@ -21,6 +21,7 @@ Name | Type | Description | Notes **type** | **str** | | [optional] [readonly] **links** | [**TestLinks**](TestLinks.md) | | [optional] **labels** | [**List[TestLabel]**](TestLabel.md) | Labels to which the test is assigned. This field is not returned for Instant Tests. | [optional] [readonly] +**tags** | [**List[TestTag]**](TestTag.md) | Tags assigned to the test. Returned only when `expand=tag` is specified. This field is not returned for Instant Tests. For more information, see `/tags`. | [optional] [readonly] **shared_with_accounts** | [**List[SharedWithAccount]**](SharedWithAccount.md) | | [optional] [readonly] **domain** | **str** | The target record for the test, with the record type suffixed. If no record type is specified, the test defaults to an ANY record. | **dns_query_class** | [**DnsQueryClass**](DnsQueryClass.md) | | [optional] diff --git a/thousandeyes-sdk-tests/docs/DnsServerInstantTest.md b/thousandeyes-sdk-tests/docs/DnsServerInstantTest.md index ab333719..399e20a6 100644 --- a/thousandeyes-sdk-tests/docs/DnsServerInstantTest.md +++ b/thousandeyes-sdk-tests/docs/DnsServerInstantTest.md @@ -17,6 +17,7 @@ Name | Type | Description | Notes **type** | **str** | | [optional] [readonly] **links** | [**TestLinks**](TestLinks.md) | | [optional] **labels** | [**List[TestLabel]**](TestLabel.md) | Labels to which the test is assigned. This field is not returned for Instant Tests. | [optional] [readonly] +**tags** | [**List[TestTag]**](TestTag.md) | Tags assigned to the test. Returned only when `expand=tag` is specified. This field is not returned for Instant Tests. For more information, see `/tags`. | [optional] [readonly] **shared_with_accounts** | [**List[SharedWithAccount]**](SharedWithAccount.md) | | [optional] [readonly] **bandwidth_measurements** | **bool** | Set to `true` to enable bandwidth measurements, only applies to Enterprise agents assigned to the test. | [optional] **dns_servers** | [**List[TestDnsServer]**](TestDnsServer.md) | | diff --git a/thousandeyes-sdk-tests/docs/DnsServerRequestProperties.md b/thousandeyes-sdk-tests/docs/DnsServerRequestProperties.md new file mode 100644 index 00000000..3b08f2ad --- /dev/null +++ b/thousandeyes-sdk-tests/docs/DnsServerRequestProperties.md @@ -0,0 +1,44 @@ +# DnsServerRequestProperties + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**bandwidth_measurements** | **bool** | Set to `true` to enable bandwidth measurements, only applies to Enterprise agents assigned to the test. | [optional] +**dns_servers** | **List[str]** | A list of DNS server FQDN. | +**dns_transport_protocol** | [**TestDnsTransportProtocol**](TestDnsTransportProtocol.md) | | [optional] +**domain** | **str** | The target record for the test, with the record type suffixed. If no record type is specified, the test defaults to an ANY record. | +**mtu_measurements** | **bool** | Set `true` to measure MTU sizes on network from agents to the target. | [optional] +**network_measurements** | **bool** | Enable or disable network measurements. Set to true to enable or false to disable network measurements. | [optional] [default to True] +**num_path_traces** | **int** | Number of path traces executed by the agent. | [optional] [default to 3] +**path_trace_mode** | [**TestPathTraceMode**](TestPathTraceMode.md) | | [optional] +**probe_mode** | [**TestProbeMode**](TestProbeMode.md) | | [optional] +**protocol** | [**TestProtocol**](TestProtocol.md) | | [optional] +**randomized_start_time** | **bool** | Indicates whether agents should randomize the start time in each test round. | [optional] [default to False] +**recursive_queries** | **bool** | Set true to run query with RD (recursion desired) flag enabled. | [optional] +**ipv6_policy** | [**TestIpv6Policy**](TestIpv6Policy.md) | | [optional] +**fixed_packet_rate** | **int** | Sets packets rate sent to measure the network in packets per second. | [optional] +**dns_query_class** | [**DnsQueryClass**](DnsQueryClass.md) | | [optional] +**type** | **str** | | [optional] [readonly] + +## Example + +```python +from thousandeyes_sdk.tests.models.dns_server_request_properties import DnsServerRequestProperties + +# TODO update the JSON string below +json = "{}" +# create an instance of DnsServerRequestProperties from a JSON string +dns_server_request_properties_instance = DnsServerRequestProperties.from_json(json) +# print the JSON string representation of the object +print(DnsServerRequestProperties.to_json()) + +# convert the object into a dict +dns_server_request_properties_dict = dns_server_request_properties_instance.to_dict() +# create an instance of DnsServerRequestProperties from a dict +dns_server_request_properties_from_dict = DnsServerRequestProperties.from_dict(dns_server_request_properties_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/thousandeyes-sdk-tests/docs/DnsServerTest.md b/thousandeyes-sdk-tests/docs/DnsServerTest.md index 6a20df5c..de0ba2d0 100644 --- a/thousandeyes-sdk-tests/docs/DnsServerTest.md +++ b/thousandeyes-sdk-tests/docs/DnsServerTest.md @@ -21,6 +21,7 @@ Name | Type | Description | Notes **type** | **str** | | [optional] [readonly] **links** | [**TestLinks**](TestLinks.md) | | [optional] **labels** | [**List[TestLabel]**](TestLabel.md) | Labels to which the test is assigned. This field is not returned for Instant Tests. | [optional] [readonly] +**tags** | [**List[TestTag]**](TestTag.md) | Tags assigned to the test. Returned only when `expand=tag` is specified. This field is not returned for Instant Tests. For more information, see `/tags`. | [optional] [readonly] **shared_with_accounts** | [**List[SharedWithAccount]**](SharedWithAccount.md) | | [optional] [readonly] **bandwidth_measurements** | **bool** | Set to `true` to enable bandwidth measurements, only applies to Enterprise agents assigned to the test. | [optional] **dns_servers** | [**List[TestDnsServer]**](TestDnsServer.md) | | diff --git a/thousandeyes-sdk-tests/docs/DnsServerTestRequest.md b/thousandeyes-sdk-tests/docs/DnsServerTestRequest.md index e8032ac8..67f4afec 100644 --- a/thousandeyes-sdk-tests/docs/DnsServerTestRequest.md +++ b/thousandeyes-sdk-tests/docs/DnsServerTestRequest.md @@ -8,7 +8,6 @@ Name | Type | Description | Notes **interval** | [**TestInterval**](TestInterval.md) | | **alerts_enabled** | **bool** | Indicates if alerts are enabled. | [optional] **enabled** | **bool** | Test is enabled. | [optional] [default to True] -**alert_rules** | **List[str]** | List of alert rules IDs to apply to the test (get `ruleId` from `/alerts/rules` endpoint. If `alertsEnabled` is set to `true` and `alertRules` is not included on test creation or update, applicable user default alert rules will be used) | [optional] **created_by** | **str** | User that created the test. | [optional] [readonly] **created_date** | **datetime** | UTC created date (ISO date-time format). | [optional] [readonly] **description** | **str** | A description of the test. | [optional] @@ -20,8 +19,6 @@ Name | Type | Description | Notes **test_name** | **str** | The name of the test. Test name must be unique. | [optional] **type** | **str** | | [optional] [readonly] **links** | [**TestLinks**](TestLinks.md) | | [optional] -**labels** | **List[str]** | Contains list of test label IDs (get `labelId` from `/labels` endpoint) | [optional] -**shared_with_accounts** | **List[str]** | Contains list of account group IDs. Test is shared with the listed account groups (get `aid` from `/account-groups` endpoint) | [optional] **bandwidth_measurements** | **bool** | Set to `true` to enable bandwidth measurements, only applies to Enterprise agents assigned to the test. | [optional] **dns_servers** | **List[str]** | A list of DNS server FQDN. | **dns_transport_protocol** | [**TestDnsTransportProtocol**](TestDnsTransportProtocol.md) | | [optional] @@ -39,9 +36,12 @@ Name | Type | Description | Notes **dns_query_class** | [**DnsQueryClass**](DnsQueryClass.md) | | [optional] **bgp_measurements** | **bool** | Set to `true` to enable bgp measurements. | [optional] [default to True] **use_public_bgp** | **bool** | Indicate if all available public BGP monitors should be used, when ommited defaults to `bgpMeasurements` value. | [optional] [default to True] -**monitors** | **List[str]** | Contains list of BGP monitor IDs (get `monitorId` from `/monitors` endpoint) | [optional] +**labels** | **List[str]** | Contains list of test label IDs (get `labelId` from `/labels` endpoint) | [optional] **tags** | **List[str]** | Contains list of test tag IDs (get `id` from `/tags` endpoint). | [optional] +**shared_with_accounts** | **List[str]** | Contains list of account group IDs. Test is shared with the listed account groups (get `aid` from `/account-groups` endpoint) | [optional] +**alert_rules** | **List[str]** | List of alert rules IDs to apply to the test (get `ruleId` from `/alerts/rules` endpoint. If `alertsEnabled` is set to `true` and `alertRules` is not included on test creation or update, applicable user default alert rules will be used) | [optional] **agents** | [**List[TestAgentRequest]**](TestAgentRequest.md) | Contains list of Agent IDs (get `agentId` from `/agents` endpoint). | +**monitors** | **List[str]** | Contains list of BGP monitor IDs (get `monitorId` from `/monitors` endpoint) | [optional] ## Example diff --git a/thousandeyes-sdk-tests/docs/DnsServerTestResponse.md b/thousandeyes-sdk-tests/docs/DnsServerTestResponse.md index 6cd9e004..8a54da56 100644 --- a/thousandeyes-sdk-tests/docs/DnsServerTestResponse.md +++ b/thousandeyes-sdk-tests/docs/DnsServerTestResponse.md @@ -21,6 +21,7 @@ Name | Type | Description | Notes **type** | **str** | | [optional] [readonly] **links** | [**TestLinks**](TestLinks.md) | | [optional] **labels** | [**List[TestLabel]**](TestLabel.md) | Labels to which the test is assigned. This field is not returned for Instant Tests. | [optional] [readonly] +**tags** | [**List[TestTag]**](TestTag.md) | Tags assigned to the test. Returned only when `expand=tag` is specified. This field is not returned for Instant Tests. For more information, see `/tags`. | [optional] [readonly] **shared_with_accounts** | [**List[SharedWithAccount]**](SharedWithAccount.md) | | [optional] [readonly] **bandwidth_measurements** | **bool** | Set to `true` to enable bandwidth measurements, only applies to Enterprise agents assigned to the test. | [optional] **dns_servers** | [**List[TestDnsServer]**](TestDnsServer.md) | | diff --git a/thousandeyes-sdk-tests/docs/DnsServersRequest.md b/thousandeyes-sdk-tests/docs/DnsServersRequest.md deleted file mode 100644 index 5e941337..00000000 --- a/thousandeyes-sdk-tests/docs/DnsServersRequest.md +++ /dev/null @@ -1,29 +0,0 @@ -# DnsServersRequest - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**dns_servers** | **List[str]** | A list of DNS server FQDN. | [optional] - -## Example - -```python -from thousandeyes_sdk.tests.models.dns_servers_request import DnsServersRequest - -# TODO update the JSON string below -json = "{}" -# create an instance of DnsServersRequest from a JSON string -dns_servers_request_instance = DnsServersRequest.from_json(json) -# print the JSON string representation of the object -print(DnsServersRequest.to_json()) - -# convert the object into a dict -dns_servers_request_dict = dns_servers_request_instance.to_dict() -# create an instance of DnsServersRequest from a dict -dns_servers_request_from_dict = DnsServersRequest.from_dict(dns_servers_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/thousandeyes-sdk-tests/docs/DnsTraceInstantTest.md b/thousandeyes-sdk-tests/docs/DnsTraceInstantTest.md index 15a174ed..4eb26eb9 100644 --- a/thousandeyes-sdk-tests/docs/DnsTraceInstantTest.md +++ b/thousandeyes-sdk-tests/docs/DnsTraceInstantTest.md @@ -17,6 +17,7 @@ Name | Type | Description | Notes **type** | **str** | | [optional] [readonly] **links** | [**TestLinks**](TestLinks.md) | | [optional] **labels** | [**List[TestLabel]**](TestLabel.md) | Labels to which the test is assigned. This field is not returned for Instant Tests. | [optional] [readonly] +**tags** | [**List[TestTag]**](TestTag.md) | Tags assigned to the test. Returned only when `expand=tag` is specified. This field is not returned for Instant Tests. For more information, see `/tags`. | [optional] [readonly] **shared_with_accounts** | [**List[SharedWithAccount]**](SharedWithAccount.md) | | [optional] [readonly] **dns_transport_protocol** | [**TestDnsTransportProtocol**](TestDnsTransportProtocol.md) | | [optional] **domain** | **str** | The target record for the test, with the record type suffixed. If no record type is specified, the test defaults to an ANY record. | diff --git a/thousandeyes-sdk-tests/docs/DnsTraceTest.md b/thousandeyes-sdk-tests/docs/DnsTraceTest.md index a7fbee46..41fd7004 100644 --- a/thousandeyes-sdk-tests/docs/DnsTraceTest.md +++ b/thousandeyes-sdk-tests/docs/DnsTraceTest.md @@ -21,6 +21,7 @@ Name | Type | Description | Notes **type** | **str** | | [optional] [readonly] **links** | [**TestLinks**](TestLinks.md) | | [optional] **labels** | [**List[TestLabel]**](TestLabel.md) | Labels to which the test is assigned. This field is not returned for Instant Tests. | [optional] [readonly] +**tags** | [**List[TestTag]**](TestTag.md) | Tags assigned to the test. Returned only when `expand=tag` is specified. This field is not returned for Instant Tests. For more information, see `/tags`. | [optional] [readonly] **shared_with_accounts** | [**List[SharedWithAccount]**](SharedWithAccount.md) | | [optional] [readonly] **dns_transport_protocol** | [**TestDnsTransportProtocol**](TestDnsTransportProtocol.md) | | [optional] **domain** | **str** | The target record for the test, with the record type suffixed. If no record type is specified, the test defaults to an ANY record. | diff --git a/thousandeyes-sdk-tests/docs/DnsTraceTestRequest.md b/thousandeyes-sdk-tests/docs/DnsTraceTestRequest.md index 22c4c12e..d9b6a89a 100644 --- a/thousandeyes-sdk-tests/docs/DnsTraceTestRequest.md +++ b/thousandeyes-sdk-tests/docs/DnsTraceTestRequest.md @@ -8,7 +8,6 @@ Name | Type | Description | Notes **interval** | [**TestInterval**](TestInterval.md) | | **alerts_enabled** | **bool** | Indicates if alerts are enabled. | [optional] **enabled** | **bool** | Test is enabled. | [optional] [default to True] -**alert_rules** | **List[str]** | List of alert rules IDs to apply to the test (get `ruleId` from `/alerts/rules` endpoint. If `alertsEnabled` is set to `true` and `alertRules` is not included on test creation or update, applicable user default alert rules will be used) | [optional] **created_by** | **str** | User that created the test. | [optional] [readonly] **created_date** | **datetime** | UTC created date (ISO date-time format). | [optional] [readonly] **description** | **str** | A description of the test. | [optional] @@ -20,13 +19,14 @@ Name | Type | Description | Notes **test_name** | **str** | The name of the test. Test name must be unique. | [optional] **type** | **str** | | [optional] [readonly] **links** | [**TestLinks**](TestLinks.md) | | [optional] -**labels** | **List[str]** | Contains list of test label IDs (get `labelId` from `/labels` endpoint) | [optional] -**shared_with_accounts** | **List[str]** | Contains list of account group IDs. Test is shared with the listed account groups (get `aid` from `/account-groups` endpoint) | [optional] **dns_transport_protocol** | [**TestDnsTransportProtocol**](TestDnsTransportProtocol.md) | | [optional] **domain** | **str** | The target record for the test, with the record type suffixed. If no record type is specified, the test defaults to an ANY record. | **dns_query_class** | [**DnsQueryClass**](DnsQueryClass.md) | | [optional] **randomized_start_time** | **bool** | Indicates whether agents should randomize the start time in each test round. | [optional] [default to False] +**labels** | **List[str]** | Contains list of test label IDs (get `labelId` from `/labels` endpoint) | [optional] **tags** | **List[str]** | Contains list of test tag IDs (get `id` from `/tags` endpoint). | [optional] +**shared_with_accounts** | **List[str]** | Contains list of account group IDs. Test is shared with the listed account groups (get `aid` from `/account-groups` endpoint) | [optional] +**alert_rules** | **List[str]** | List of alert rules IDs to apply to the test (get `ruleId` from `/alerts/rules` endpoint. If `alertsEnabled` is set to `true` and `alertRules` is not included on test creation or update, applicable user default alert rules will be used) | [optional] **agents** | [**List[TestAgentRequest]**](TestAgentRequest.md) | Contains list of Agent IDs (get `agentId` from `/agents` endpoint). | ## Example diff --git a/thousandeyes-sdk-tests/docs/DnsTraceTestResponse.md b/thousandeyes-sdk-tests/docs/DnsTraceTestResponse.md index 9b54097d..21f5f005 100644 --- a/thousandeyes-sdk-tests/docs/DnsTraceTestResponse.md +++ b/thousandeyes-sdk-tests/docs/DnsTraceTestResponse.md @@ -21,6 +21,7 @@ Name | Type | Description | Notes **type** | **str** | | [optional] [readonly] **links** | [**TestLinks**](TestLinks.md) | | [optional] **labels** | [**List[TestLabel]**](TestLabel.md) | Labels to which the test is assigned. This field is not returned for Instant Tests. | [optional] [readonly] +**tags** | [**List[TestTag]**](TestTag.md) | Tags assigned to the test. Returned only when `expand=tag` is specified. This field is not returned for Instant Tests. For more information, see `/tags`. | [optional] [readonly] **shared_with_accounts** | [**List[SharedWithAccount]**](SharedWithAccount.md) | | [optional] [readonly] **dns_transport_protocol** | [**TestDnsTransportProtocol**](TestDnsTransportProtocol.md) | | [optional] **domain** | **str** | The target record for the test, with the record type suffixed. If no record type is specified, the test defaults to an ANY record. | diff --git a/thousandeyes-sdk-tests/docs/FtpServerInstantTest.md b/thousandeyes-sdk-tests/docs/FtpServerInstantTest.md index fee89211..f509732d 100644 --- a/thousandeyes-sdk-tests/docs/FtpServerInstantTest.md +++ b/thousandeyes-sdk-tests/docs/FtpServerInstantTest.md @@ -17,6 +17,7 @@ Name | Type | Description | Notes **type** | **str** | | [optional] [readonly] **links** | [**TestLinks**](TestLinks.md) | | [optional] **labels** | [**List[TestLabel]**](TestLabel.md) | Labels to which the test is assigned. This field is not returned for Instant Tests. | [optional] [readonly] +**tags** | [**List[TestTag]**](TestTag.md) | Tags assigned to the test. Returned only when `expand=tag` is specified. This field is not returned for Instant Tests. For more information, see `/tags`. | [optional] [readonly] **shared_with_accounts** | [**List[SharedWithAccount]**](SharedWithAccount.md) | | [optional] [readonly] **bandwidth_measurements** | **bool** | Set to `true` to enable bandwidth measurements, only applies to Enterprise agents assigned to the test. | [optional] **download_limit** | **int** | Specify maximum number of bytes to download from the target object. | [optional] diff --git a/thousandeyes-sdk-tests/docs/FtpServerTest.md b/thousandeyes-sdk-tests/docs/FtpServerTest.md index 1984c9d1..418876b1 100644 --- a/thousandeyes-sdk-tests/docs/FtpServerTest.md +++ b/thousandeyes-sdk-tests/docs/FtpServerTest.md @@ -21,6 +21,7 @@ Name | Type | Description | Notes **type** | **str** | | [optional] [readonly] **links** | [**TestLinks**](TestLinks.md) | | [optional] **labels** | [**List[TestLabel]**](TestLabel.md) | Labels to which the test is assigned. This field is not returned for Instant Tests. | [optional] [readonly] +**tags** | [**List[TestTag]**](TestTag.md) | Tags assigned to the test. Returned only when `expand=tag` is specified. This field is not returned for Instant Tests. For more information, see `/tags`. | [optional] [readonly] **shared_with_accounts** | [**List[SharedWithAccount]**](SharedWithAccount.md) | | [optional] [readonly] **bandwidth_measurements** | **bool** | Set to `true` to enable bandwidth measurements, only applies to Enterprise agents assigned to the test. | [optional] **download_limit** | **int** | Specify maximum number of bytes to download from the target object. | [optional] diff --git a/thousandeyes-sdk-tests/docs/FtpServerTestRequest.md b/thousandeyes-sdk-tests/docs/FtpServerTestRequest.md index 09410206..1d7e872f 100644 --- a/thousandeyes-sdk-tests/docs/FtpServerTestRequest.md +++ b/thousandeyes-sdk-tests/docs/FtpServerTestRequest.md @@ -8,7 +8,6 @@ Name | Type | Description | Notes **interval** | [**TestInterval**](TestInterval.md) | | **alerts_enabled** | **bool** | Indicates if alerts are enabled. | [optional] **enabled** | **bool** | Test is enabled. | [optional] [default to True] -**alert_rules** | **List[str]** | List of alert rules IDs to apply to the test (get `ruleId` from `/alerts/rules` endpoint. If `alertsEnabled` is set to `true` and `alertRules` is not included on test creation or update, applicable user default alert rules will be used) | [optional] **created_by** | **str** | User that created the test. | [optional] [readonly] **created_date** | **datetime** | UTC created date (ISO date-time format). | [optional] [readonly] **description** | **str** | A description of the test. | [optional] @@ -20,8 +19,6 @@ Name | Type | Description | Notes **test_name** | **str** | The name of the test. Test name must be unique. | [optional] **type** | **str** | | [optional] [readonly] **links** | [**TestLinks**](TestLinks.md) | | [optional] -**labels** | **List[str]** | Contains list of test label IDs (get `labelId` from `/labels` endpoint) | [optional] -**shared_with_accounts** | **List[str]** | Contains list of account group IDs. Test is shared with the listed account groups (get `aid` from `/account-groups` endpoint) | [optional] **bandwidth_measurements** | **bool** | Set to `true` to enable bandwidth measurements, only applies to Enterprise agents assigned to the test. | [optional] **download_limit** | **int** | Specify maximum number of bytes to download from the target object. | [optional] **ftp_target_time** | **int** | Target time for operation completion; specified in milliseconds. | [optional] @@ -43,9 +40,12 @@ Name | Type | Description | Notes **ipv6_policy** | [**TestIpv6Policy**](TestIpv6Policy.md) | | [optional] **bgp_measurements** | **bool** | Set to `true` to enable bgp measurements. | [optional] [default to True] **use_public_bgp** | **bool** | Indicate if all available public BGP monitors should be used, when ommited defaults to `bgpMeasurements` value. | [optional] [default to True] -**monitors** | **List[str]** | Contains list of BGP monitor IDs (get `monitorId` from `/monitors` endpoint) | [optional] +**labels** | **List[str]** | Contains list of test label IDs (get `labelId` from `/labels` endpoint) | [optional] **tags** | **List[str]** | Contains list of test tag IDs (get `id` from `/tags` endpoint). | [optional] +**shared_with_accounts** | **List[str]** | Contains list of account group IDs. Test is shared with the listed account groups (get `aid` from `/account-groups` endpoint) | [optional] +**alert_rules** | **List[str]** | List of alert rules IDs to apply to the test (get `ruleId` from `/alerts/rules` endpoint. If `alertsEnabled` is set to `true` and `alertRules` is not included on test creation or update, applicable user default alert rules will be used) | [optional] **agents** | [**List[TestAgentRequest]**](TestAgentRequest.md) | Contains list of Agent IDs (get `agentId` from `/agents` endpoint). | +**monitors** | **List[str]** | Contains list of BGP monitor IDs (get `monitorId` from `/monitors` endpoint) | [optional] ## Example diff --git a/thousandeyes-sdk-tests/docs/FtpServerTestResponse.md b/thousandeyes-sdk-tests/docs/FtpServerTestResponse.md index ca580920..67b6b3ae 100644 --- a/thousandeyes-sdk-tests/docs/FtpServerTestResponse.md +++ b/thousandeyes-sdk-tests/docs/FtpServerTestResponse.md @@ -21,6 +21,7 @@ Name | Type | Description | Notes **type** | **str** | | [optional] [readonly] **links** | [**TestLinks**](TestLinks.md) | | [optional] **labels** | [**List[TestLabel]**](TestLabel.md) | Labels to which the test is assigned. This field is not returned for Instant Tests. | [optional] [readonly] +**tags** | [**List[TestTag]**](TestTag.md) | Tags assigned to the test. Returned only when `expand=tag` is specified. This field is not returned for Instant Tests. For more information, see `/tags`. | [optional] [readonly] **shared_with_accounts** | [**List[SharedWithAccount]**](SharedWithAccount.md) | | [optional] [readonly] **bandwidth_measurements** | **bool** | Set to `true` to enable bandwidth measurements, only applies to Enterprise agents assigned to the test. | [optional] **download_limit** | **int** | Specify maximum number of bytes to download from the target object. | [optional] diff --git a/thousandeyes-sdk-tests/docs/HttpServerBaseProperties.md b/thousandeyes-sdk-tests/docs/HttpServerBaseProperties.md index 5500f85f..aa21cfdf 100644 --- a/thousandeyes-sdk-tests/docs/HttpServerBaseProperties.md +++ b/thousandeyes-sdk-tests/docs/HttpServerBaseProperties.md @@ -40,6 +40,7 @@ Name | Type | Description | Notes **override_agent_proxy** | **bool** | Flag indicating if a proxy other than the default should be used. To override the default proxy for agents, set to `true` and specify a value for `overrideProxyId`. | [optional] [default to False] **override_proxy_id** | **str** | ID of the proxy to be used if the default proxy is overridden. | [optional] **collect_proxy_network_data** | **bool** | Indicates whether network data to the proxy should be collected. | [optional] [default to False] +**vault_credentials** | [**List[TestVaultCredential]**](TestVaultCredential.md) | List of credential IDs that are stored in an external vault. | [optional] ## Example diff --git a/thousandeyes-sdk-tests/docs/HttpServerInstantTest.md b/thousandeyes-sdk-tests/docs/HttpServerInstantTest.md index 57316264..cee33ff0 100644 --- a/thousandeyes-sdk-tests/docs/HttpServerInstantTest.md +++ b/thousandeyes-sdk-tests/docs/HttpServerInstantTest.md @@ -17,6 +17,7 @@ Name | Type | Description | Notes **type** | **str** | | [optional] [readonly] **links** | [**TestLinks**](TestLinks.md) | | [optional] **labels** | [**List[TestLabel]**](TestLabel.md) | Labels to which the test is assigned. This field is not returned for Instant Tests. | [optional] [readonly] +**tags** | [**List[TestTag]**](TestTag.md) | Tags assigned to the test. Returned only when `expand=tag` is specified. This field is not returned for Instant Tests. For more information, see `/tags`. | [optional] [readonly] **shared_with_accounts** | [**List[SharedWithAccount]**](SharedWithAccount.md) | | [optional] [readonly] **auth_type** | [**TestAuthType**](TestAuthType.md) | | [optional] **agent_interfaces** | [**AgentInterfaces**](AgentInterfaces.md) | | [optional] @@ -53,9 +54,11 @@ Name | Type | Description | Notes **override_agent_proxy** | **bool** | Flag indicating if a proxy other than the default should be used. To override the default proxy for agents, set to `true` and specify a value for `overrideProxyId`. | [optional] [default to False] **override_proxy_id** | **str** | ID of the proxy to be used if the default proxy is overridden. | [optional] **collect_proxy_network_data** | **bool** | Indicates whether network data to the proxy should be collected. | [optional] [default to False] +**vault_credentials** | [**List[TestVaultCredential]**](TestVaultCredential.md) | List of credential IDs that are stored in an external vault. | [optional] **headers** | **List[str]** | HTTP request headers used. | [optional] **randomized_start_time** | **bool** | Indicates whether agents should randomize the start time in each test round. | [optional] [default to False] -**post_body** | **str** | Enter the body for the HTTP POST request in this field. No special escaping is necessary. If the post body is provided with content, the `requestMethod` is automatically set to POST. | [optional] +**request_method** | [**RequestMethod**](RequestMethod.md) | | [optional] +**post_body** | **str** | Enter the body for the HTTP POST request in this field. No special escaping is required. If content is provided and `requestMethod` is not specified, `requestMethod` is automatically set to `post`. | [optional] **ipv6_policy** | [**TestIpv6Policy**](TestIpv6Policy.md) | | [optional] ## Example diff --git a/thousandeyes-sdk-tests/docs/HttpServerProperties.md b/thousandeyes-sdk-tests/docs/HttpServerProperties.md index 52aa2599..125d0445 100644 --- a/thousandeyes-sdk-tests/docs/HttpServerProperties.md +++ b/thousandeyes-sdk-tests/docs/HttpServerProperties.md @@ -40,9 +40,11 @@ Name | Type | Description | Notes **override_agent_proxy** | **bool** | Flag indicating if a proxy other than the default should be used. To override the default proxy for agents, set to `true` and specify a value for `overrideProxyId`. | [optional] [default to False] **override_proxy_id** | **str** | ID of the proxy to be used if the default proxy is overridden. | [optional] **collect_proxy_network_data** | **bool** | Indicates whether network data to the proxy should be collected. | [optional] [default to False] +**vault_credentials** | [**List[TestVaultCredential]**](TestVaultCredential.md) | List of credential IDs that are stored in an external vault. | [optional] **headers** | **List[str]** | HTTP request headers used. | [optional] **randomized_start_time** | **bool** | Indicates whether agents should randomize the start time in each test round. | [optional] [default to False] -**post_body** | **str** | Enter the body for the HTTP POST request in this field. No special escaping is necessary. If the post body is provided with content, the `requestMethod` is automatically set to POST. | [optional] +**request_method** | [**RequestMethod**](RequestMethod.md) | | [optional] +**post_body** | **str** | Enter the body for the HTTP POST request in this field. No special escaping is required. If content is provided and `requestMethod` is not specified, `requestMethod` is automatically set to `post`. | [optional] **ipv6_policy** | [**TestIpv6Policy**](TestIpv6Policy.md) | | [optional] **type** | **str** | | [optional] [readonly] diff --git a/thousandeyes-sdk-tests/docs/HttpServerTest.md b/thousandeyes-sdk-tests/docs/HttpServerTest.md index 5d24b8bd..dc26e243 100644 --- a/thousandeyes-sdk-tests/docs/HttpServerTest.md +++ b/thousandeyes-sdk-tests/docs/HttpServerTest.md @@ -21,6 +21,7 @@ Name | Type | Description | Notes **type** | **str** | | [optional] [readonly] **links** | [**TestLinks**](TestLinks.md) | | [optional] **labels** | [**List[TestLabel]**](TestLabel.md) | Labels to which the test is assigned. This field is not returned for Instant Tests. | [optional] [readonly] +**tags** | [**List[TestTag]**](TestTag.md) | Tags assigned to the test. Returned only when `expand=tag` is specified. This field is not returned for Instant Tests. For more information, see `/tags`. | [optional] [readonly] **shared_with_accounts** | [**List[SharedWithAccount]**](SharedWithAccount.md) | | [optional] [readonly] **auth_type** | [**TestAuthType**](TestAuthType.md) | | [optional] **agent_interfaces** | [**AgentInterfaces**](AgentInterfaces.md) | | [optional] @@ -57,9 +58,11 @@ Name | Type | Description | Notes **override_agent_proxy** | **bool** | Flag indicating if a proxy other than the default should be used. To override the default proxy for agents, set to `true` and specify a value for `overrideProxyId`. | [optional] [default to False] **override_proxy_id** | **str** | ID of the proxy to be used if the default proxy is overridden. | [optional] **collect_proxy_network_data** | **bool** | Indicates whether network data to the proxy should be collected. | [optional] [default to False] +**vault_credentials** | [**List[TestVaultCredential]**](TestVaultCredential.md) | List of credential IDs that are stored in an external vault. | [optional] **headers** | **List[str]** | HTTP request headers used. | [optional] **randomized_start_time** | **bool** | Indicates whether agents should randomize the start time in each test round. | [optional] [default to False] -**post_body** | **str** | Enter the body for the HTTP POST request in this field. No special escaping is necessary. If the post body is provided with content, the `requestMethod` is automatically set to POST. | [optional] +**request_method** | [**RequestMethod**](RequestMethod.md) | | [optional] +**post_body** | **str** | Enter the body for the HTTP POST request in this field. No special escaping is required. If content is provided and `requestMethod` is not specified, `requestMethod` is automatically set to `post`. | [optional] **ipv6_policy** | [**TestIpv6Policy**](TestIpv6Policy.md) | | [optional] **bgp_measurements** | **bool** | Set to `true` to enable bgp measurements. | [optional] [default to True] **use_public_bgp** | **bool** | Indicate if all available public BGP monitors should be used, when ommited defaults to `bgpMeasurements` value. | [optional] [default to True] diff --git a/thousandeyes-sdk-tests/docs/HttpServerTestRequest.md b/thousandeyes-sdk-tests/docs/HttpServerTestRequest.md index 3895da49..a10bad0e 100644 --- a/thousandeyes-sdk-tests/docs/HttpServerTestRequest.md +++ b/thousandeyes-sdk-tests/docs/HttpServerTestRequest.md @@ -8,7 +8,6 @@ Name | Type | Description | Notes **interval** | [**TestInterval**](TestInterval.md) | | **alerts_enabled** | **bool** | Indicates if alerts are enabled. | [optional] **enabled** | **bool** | Test is enabled. | [optional] [default to True] -**alert_rules** | **List[str]** | List of alert rules IDs to apply to the test (get `ruleId` from `/alerts/rules` endpoint. If `alertsEnabled` is set to `true` and `alertRules` is not included on test creation or update, applicable user default alert rules will be used) | [optional] **created_by** | **str** | User that created the test. | [optional] [readonly] **created_date** | **datetime** | UTC created date (ISO date-time format). | [optional] [readonly] **description** | **str** | A description of the test. | [optional] @@ -20,8 +19,6 @@ Name | Type | Description | Notes **test_name** | **str** | The name of the test. Test name must be unique. | [optional] **type** | **str** | | [optional] [readonly] **links** | [**TestLinks**](TestLinks.md) | | [optional] -**labels** | **List[str]** | Contains list of test label IDs (get `labelId` from `/labels` endpoint) | [optional] -**shared_with_accounts** | **List[str]** | Contains list of account group IDs. Test is shared with the listed account groups (get `aid` from `/account-groups` endpoint) | [optional] **auth_type** | [**TestAuthType**](TestAuthType.md) | | [optional] **agent_interfaces** | [**AgentInterfaces**](AgentInterfaces.md) | | [optional] **bandwidth_measurements** | **bool** | Set to `true` to enable bandwidth measurements, only applies to Enterprise agents assigned to the test. | [optional] @@ -57,15 +54,20 @@ Name | Type | Description | Notes **override_agent_proxy** | **bool** | Flag indicating if a proxy other than the default should be used. To override the default proxy for agents, set to `true` and specify a value for `overrideProxyId`. | [optional] [default to False] **override_proxy_id** | **str** | ID of the proxy to be used if the default proxy is overridden. | [optional] **collect_proxy_network_data** | **bool** | Indicates whether network data to the proxy should be collected. | [optional] [default to False] +**vault_credentials** | [**List[TestVaultCredential]**](TestVaultCredential.md) | List of credential IDs that are stored in an external vault. | [optional] **headers** | **List[str]** | HTTP request headers used. | [optional] **randomized_start_time** | **bool** | Indicates whether agents should randomize the start time in each test round. | [optional] [default to False] -**post_body** | **str** | Enter the body for the HTTP POST request in this field. No special escaping is necessary. If the post body is provided with content, the `requestMethod` is automatically set to POST. | [optional] +**request_method** | [**RequestMethod**](RequestMethod.md) | | [optional] +**post_body** | **str** | Enter the body for the HTTP POST request in this field. No special escaping is required. If content is provided and `requestMethod` is not specified, `requestMethod` is automatically set to `post`. | [optional] **ipv6_policy** | [**TestIpv6Policy**](TestIpv6Policy.md) | | [optional] **bgp_measurements** | **bool** | Set to `true` to enable bgp measurements. | [optional] [default to True] **use_public_bgp** | **bool** | Indicate if all available public BGP monitors should be used, when ommited defaults to `bgpMeasurements` value. | [optional] [default to True] -**monitors** | **List[str]** | Contains list of BGP monitor IDs (get `monitorId` from `/monitors` endpoint) | [optional] +**labels** | **List[str]** | Contains list of test label IDs (get `labelId` from `/labels` endpoint) | [optional] **tags** | **List[str]** | Contains list of test tag IDs (get `id` from `/tags` endpoint). | [optional] +**shared_with_accounts** | **List[str]** | Contains list of account group IDs. Test is shared with the listed account groups (get `aid` from `/account-groups` endpoint) | [optional] +**alert_rules** | **List[str]** | List of alert rules IDs to apply to the test (get `ruleId` from `/alerts/rules` endpoint. If `alertsEnabled` is set to `true` and `alertRules` is not included on test creation or update, applicable user default alert rules will be used) | [optional] **agents** | [**List[TestAgentRequest]**](TestAgentRequest.md) | Contains list of Agent IDs (get `agentId` from `/agents` endpoint). | +**monitors** | **List[str]** | Contains list of BGP monitor IDs (get `monitorId` from `/monitors` endpoint) | [optional] ## Example diff --git a/thousandeyes-sdk-tests/docs/HttpServerTestResponse.md b/thousandeyes-sdk-tests/docs/HttpServerTestResponse.md index deaf9f8a..8a4f0d13 100644 --- a/thousandeyes-sdk-tests/docs/HttpServerTestResponse.md +++ b/thousandeyes-sdk-tests/docs/HttpServerTestResponse.md @@ -21,6 +21,7 @@ Name | Type | Description | Notes **type** | **str** | | [optional] [readonly] **links** | [**TestLinks**](TestLinks.md) | | [optional] **labels** | [**List[TestLabel]**](TestLabel.md) | Labels to which the test is assigned. This field is not returned for Instant Tests. | [optional] [readonly] +**tags** | [**List[TestTag]**](TestTag.md) | Tags assigned to the test. Returned only when `expand=tag` is specified. This field is not returned for Instant Tests. For more information, see `/tags`. | [optional] [readonly] **shared_with_accounts** | [**List[SharedWithAccount]**](SharedWithAccount.md) | | [optional] [readonly] **auth_type** | [**TestAuthType**](TestAuthType.md) | | [optional] **agent_interfaces** | [**AgentInterfaces**](AgentInterfaces.md) | | [optional] @@ -57,9 +58,11 @@ Name | Type | Description | Notes **override_agent_proxy** | **bool** | Flag indicating if a proxy other than the default should be used. To override the default proxy for agents, set to `true` and specify a value for `overrideProxyId`. | [optional] [default to False] **override_proxy_id** | **str** | ID of the proxy to be used if the default proxy is overridden. | [optional] **collect_proxy_network_data** | **bool** | Indicates whether network data to the proxy should be collected. | [optional] [default to False] +**vault_credentials** | [**List[TestVaultCredential]**](TestVaultCredential.md) | List of credential IDs that are stored in an external vault. | [optional] **headers** | **List[str]** | HTTP request headers used. | [optional] **randomized_start_time** | **bool** | Indicates whether agents should randomize the start time in each test round. | [optional] [default to False] -**post_body** | **str** | Enter the body for the HTTP POST request in this field. No special escaping is necessary. If the post body is provided with content, the `requestMethod` is automatically set to POST. | [optional] +**request_method** | [**RequestMethod**](RequestMethod.md) | | [optional] +**post_body** | **str** | Enter the body for the HTTP POST request in this field. No special escaping is required. If content is provided and `requestMethod` is not specified, `requestMethod` is automatically set to `post`. | [optional] **ipv6_policy** | [**TestIpv6Policy**](TestIpv6Policy.md) | | [optional] **bgp_measurements** | **bool** | Set to `true` to enable bgp measurements. | [optional] [default to True] **use_public_bgp** | **bool** | Indicate if all available public BGP monitors should be used, when ommited defaults to `bgpMeasurements` value. | [optional] [default to True] diff --git a/thousandeyes-sdk-tests/docs/InstantTest.md b/thousandeyes-sdk-tests/docs/InstantTest.md index 78f1ee18..ad0f1918 100644 --- a/thousandeyes-sdk-tests/docs/InstantTest.md +++ b/thousandeyes-sdk-tests/docs/InstantTest.md @@ -17,6 +17,7 @@ Name | Type | Description | Notes **type** | [**TestType**](TestType.md) | | [optional] **links** | [**TestLinks**](TestLinks.md) | | [optional] **labels** | [**List[TestLabel]**](TestLabel.md) | Labels to which the test is assigned. This field is not returned for Instant Tests. | [optional] [readonly] +**tags** | [**List[TestTag]**](TestTag.md) | Tags assigned to the test. Returned only when `expand=tag` is specified. This field is not returned for Instant Tests. For more information, see `/tags`. | [optional] [readonly] **shared_with_accounts** | [**List[SharedWithAccount]**](SharedWithAccount.md) | | [optional] [readonly] ## Example diff --git a/thousandeyes-sdk-tests/docs/NetworkProviderInfo.md b/thousandeyes-sdk-tests/docs/NetworkProviderInfo.md new file mode 100644 index 00000000..9ba2a3f5 --- /dev/null +++ b/thousandeyes-sdk-tests/docs/NetworkProviderInfo.md @@ -0,0 +1,32 @@ +# NetworkProviderInfo + +Information about the network provider that owns the agent's public IP prefix. + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**asn** | **int** | Autonomous System Number (ASN) announcing the agent's public IP prefix. | [optional] [readonly] +**name** | **str** | Name of the network provider organization. | [optional] [readonly] +**type** | [**NetworkProviderType**](NetworkProviderType.md) | | [optional] + +## Example + +```python +from thousandeyes_sdk.tests.models.network_provider_info import NetworkProviderInfo + +# TODO update the JSON string below +json = "{}" +# create an instance of NetworkProviderInfo from a JSON string +network_provider_info_instance = NetworkProviderInfo.from_json(json) +# print the JSON string representation of the object +print(NetworkProviderInfo.to_json()) + +# convert the object into a dict +network_provider_info_dict = network_provider_info_instance.to_dict() +# create an instance of NetworkProviderInfo from a dict +network_provider_info_from_dict = NetworkProviderInfo.from_dict(network_provider_info_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/thousandeyes-sdk-tests/docs/NetworkProviderType.md b/thousandeyes-sdk-tests/docs/NetworkProviderType.md new file mode 100644 index 00000000..efc6dd07 --- /dev/null +++ b/thousandeyes-sdk-tests/docs/NetworkProviderType.md @@ -0,0 +1,12 @@ +# NetworkProviderType + +Classification of the agent's network provider. + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- + +[[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/thousandeyes-sdk-tests/docs/OAuth.md b/thousandeyes-sdk-tests/docs/OAuth.md index 460840e8..5dc2733e 100644 --- a/thousandeyes-sdk-tests/docs/OAuth.md +++ b/thousandeyes-sdk-tests/docs/OAuth.md @@ -7,7 +7,7 @@ Use this only if you want to use OAuth as the authentication mechanism. Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **test_url** | **str** | Target for the test. | [optional] -**request_method** | [**OAuthRequestMethod**](OAuthRequestMethod.md) | | [optional] +**request_method** | [**RequestMethod**](RequestMethod.md) | | [optional] **post_body** | **str** | Enter the OAuth body for the HTTP POST request in this field when using OAuth as the authentication mechanism. No special escaping is required. The value is saved only when `requestMethod` is set to `post`. | [optional] **headers** | **str** | Request headers used for OAuth. | [optional] **auth_type** | [**OAuthAuthType**](OAuthAuthType.md) | | [optional] diff --git a/thousandeyes-sdk-tests/docs/OAuthRequestMethod.md b/thousandeyes-sdk-tests/docs/OAuthRequestMethod.md deleted file mode 100644 index cabf8fa5..00000000 --- a/thousandeyes-sdk-tests/docs/OAuthRequestMethod.md +++ /dev/null @@ -1,12 +0,0 @@ -# OAuthRequestMethod - -HTTP request method used for the OAuth request. - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - -[[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/thousandeyes-sdk-tests/docs/PageLoadInstantTest.md b/thousandeyes-sdk-tests/docs/PageLoadInstantTest.md index 6eb5602e..e68f7724 100644 --- a/thousandeyes-sdk-tests/docs/PageLoadInstantTest.md +++ b/thousandeyes-sdk-tests/docs/PageLoadInstantTest.md @@ -17,6 +17,7 @@ Name | Type | Description | Notes **type** | **str** | | [optional] [readonly] **links** | [**TestLinks**](TestLinks.md) | | [optional] **labels** | [**List[TestLabel]**](TestLabel.md) | Labels to which the test is assigned. This field is not returned for Instant Tests. | [optional] [readonly] +**tags** | [**List[TestTag]**](TestTag.md) | Tags assigned to the test. Returned only when `expand=tag` is specified. This field is not returned for Instant Tests. For more information, see `/tags`. | [optional] [readonly] **shared_with_accounts** | [**List[SharedWithAccount]**](SharedWithAccount.md) | | [optional] [readonly] **auth_type** | [**TestAuthType**](TestAuthType.md) | | [optional] **agent_interfaces** | [**AgentInterfaces**](AgentInterfaces.md) | | [optional] @@ -53,6 +54,7 @@ Name | Type | Description | Notes **override_agent_proxy** | **bool** | Flag indicating if a proxy other than the default should be used. To override the default proxy for agents, set to `true` and specify a value for `overrideProxyId`. | [optional] [default to False] **override_proxy_id** | **str** | ID of the proxy to be used if the default proxy is overridden. | [optional] **collect_proxy_network_data** | **bool** | Indicates whether network data to the proxy should be collected. | [optional] [default to False] +**vault_credentials** | [**List[TestVaultCredential]**](TestVaultCredential.md) | List of credential IDs that are stored in an external vault. | [optional] **emulated_device_id** | **str** | ID of the emulated device, if one was given when the test was created. | [optional] **page_load_target_time** | **int** | Target time for page load completion, specified in seconds and cannot exceed the `pageLoadTimeLimit`. | [optional] **page_load_time_limit** | **int** | Page load time limit. Must be larger than the `httpTimeLimit`. | [optional] [default to 10] diff --git a/thousandeyes-sdk-tests/docs/PageLoadProperties.md b/thousandeyes-sdk-tests/docs/PageLoadProperties.md index bf0d3c87..5e77ae88 100644 --- a/thousandeyes-sdk-tests/docs/PageLoadProperties.md +++ b/thousandeyes-sdk-tests/docs/PageLoadProperties.md @@ -40,6 +40,7 @@ Name | Type | Description | Notes **override_agent_proxy** | **bool** | Flag indicating if a proxy other than the default should be used. To override the default proxy for agents, set to `true` and specify a value for `overrideProxyId`. | [optional] [default to False] **override_proxy_id** | **str** | ID of the proxy to be used if the default proxy is overridden. | [optional] **collect_proxy_network_data** | **bool** | Indicates whether network data to the proxy should be collected. | [optional] [default to False] +**vault_credentials** | [**List[TestVaultCredential]**](TestVaultCredential.md) | List of credential IDs that are stored in an external vault. | [optional] **emulated_device_id** | **str** | ID of the emulated device, if one was given when the test was created. | [optional] **page_load_target_time** | **int** | Target time for page load completion, specified in seconds and cannot exceed the `pageLoadTimeLimit`. | [optional] **page_load_time_limit** | **int** | Page load time limit. Must be larger than the `httpTimeLimit`. | [optional] [default to 10] diff --git a/thousandeyes-sdk-tests/docs/PageLoadTest.md b/thousandeyes-sdk-tests/docs/PageLoadTest.md index e8991bc1..f6c5cf62 100644 --- a/thousandeyes-sdk-tests/docs/PageLoadTest.md +++ b/thousandeyes-sdk-tests/docs/PageLoadTest.md @@ -21,6 +21,7 @@ Name | Type | Description | Notes **type** | **str** | | [optional] [readonly] **links** | [**TestLinks**](TestLinks.md) | | [optional] **labels** | [**List[TestLabel]**](TestLabel.md) | Labels to which the test is assigned. This field is not returned for Instant Tests. | [optional] [readonly] +**tags** | [**List[TestTag]**](TestTag.md) | Tags assigned to the test. Returned only when `expand=tag` is specified. This field is not returned for Instant Tests. For more information, see `/tags`. | [optional] [readonly] **shared_with_accounts** | [**List[SharedWithAccount]**](SharedWithAccount.md) | | [optional] [readonly] **auth_type** | [**TestAuthType**](TestAuthType.md) | | [optional] **agent_interfaces** | [**AgentInterfaces**](AgentInterfaces.md) | | [optional] @@ -57,6 +58,7 @@ Name | Type | Description | Notes **override_agent_proxy** | **bool** | Flag indicating if a proxy other than the default should be used. To override the default proxy for agents, set to `true` and specify a value for `overrideProxyId`. | [optional] [default to False] **override_proxy_id** | **str** | ID of the proxy to be used if the default proxy is overridden. | [optional] **collect_proxy_network_data** | **bool** | Indicates whether network data to the proxy should be collected. | [optional] [default to False] +**vault_credentials** | [**List[TestVaultCredential]**](TestVaultCredential.md) | List of credential IDs that are stored in an external vault. | [optional] **emulated_device_id** | **str** | ID of the emulated device, if one was given when the test was created. | [optional] **page_load_target_time** | **int** | Target time for page load completion, specified in seconds and cannot exceed the `pageLoadTimeLimit`. | [optional] **page_load_time_limit** | **int** | Page load time limit. Must be larger than the `httpTimeLimit`. | [optional] [default to 10] diff --git a/thousandeyes-sdk-tests/docs/PageLoadTestRequest.md b/thousandeyes-sdk-tests/docs/PageLoadTestRequest.md index 5dd6feca..64ad095c 100644 --- a/thousandeyes-sdk-tests/docs/PageLoadTestRequest.md +++ b/thousandeyes-sdk-tests/docs/PageLoadTestRequest.md @@ -8,7 +8,6 @@ Name | Type | Description | Notes **interval** | [**TestInterval**](TestInterval.md) | | **alerts_enabled** | **bool** | Indicates if alerts are enabled. | [optional] **enabled** | **bool** | Test is enabled. | [optional] [default to True] -**alert_rules** | **List[str]** | List of alert rules IDs to apply to the test (get `ruleId` from `/alerts/rules` endpoint. If `alertsEnabled` is set to `true` and `alertRules` is not included on test creation or update, applicable user default alert rules will be used) | [optional] **created_by** | **str** | User that created the test. | [optional] [readonly] **created_date** | **datetime** | UTC created date (ISO date-time format). | [optional] [readonly] **description** | **str** | A description of the test. | [optional] @@ -20,8 +19,6 @@ Name | Type | Description | Notes **test_name** | **str** | The name of the test. Test name must be unique. | [optional] **type** | **str** | | [optional] [readonly] **links** | [**TestLinks**](TestLinks.md) | | [optional] -**labels** | **List[str]** | Contains list of test label IDs (get `labelId` from `/labels` endpoint) | [optional] -**shared_with_accounts** | **List[str]** | Contains list of account group IDs. Test is shared with the listed account groups (get `aid` from `/account-groups` endpoint) | [optional] **auth_type** | [**TestAuthType**](TestAuthType.md) | | [optional] **agent_interfaces** | [**AgentInterfaces**](AgentInterfaces.md) | | [optional] **bandwidth_measurements** | **bool** | Set to `true` to enable bandwidth measurements, only applies to Enterprise agents assigned to the test. | [optional] @@ -57,6 +54,7 @@ Name | Type | Description | Notes **override_agent_proxy** | **bool** | Flag indicating if a proxy other than the default should be used. To override the default proxy for agents, set to `true` and specify a value for `overrideProxyId`. | [optional] [default to False] **override_proxy_id** | **str** | ID of the proxy to be used if the default proxy is overridden. | [optional] **collect_proxy_network_data** | **bool** | Indicates whether network data to the proxy should be collected. | [optional] [default to False] +**vault_credentials** | [**List[TestVaultCredential]**](TestVaultCredential.md) | List of credential IDs that are stored in an external vault. | [optional] **emulated_device_id** | **str** | ID of the emulated device, if one was given when the test was created. | [optional] **page_load_target_time** | **int** | Target time for page load completion, specified in seconds and cannot exceed the `pageLoadTimeLimit`. | [optional] **page_load_time_limit** | **int** | Page load time limit. Must be larger than the `httpTimeLimit`. | [optional] [default to 10] @@ -70,13 +68,16 @@ Name | Type | Description | Notes **page_loading_strategy** | [**TestPageLoadingStrategy**](TestPageLoadingStrategy.md) | | [optional] **randomized_start_time** | **bool** | Indicates whether agents should randomize the start time in each test round. | [optional] [default to False] **identify_agent_traffic_with_user_agent** | **bool** | Determines how agent traffic is identified: * `false`: Adds the `x-thousandeyes-agent: yes` header. * `true`: Appends `(ThousandEyes Agent)` to the `user-agent` header. For more information, see [Notes on Agent ID Strategy](https://docs.thousandeyes.com/product-documentation/browser-synthetics/test-settings-page-load-transaction#notes-on-agent-id-strategy). | [optional] [default to False] -**bgp_measurements** | **bool** | Set to `true` to enable bgp measurements. | [optional] [default to True] -**use_public_bgp** | **bool** | Indicate if all available public BGP monitors should be used, when ommited defaults to `bgpMeasurements` value. | [optional] [default to True] -**monitors** | **List[str]** | Contains list of BGP monitor IDs (get `monitorId` from `/monitors` endpoint) | [optional] **http_interval** | [**TestHttpInterval**](TestHttpInterval.md) | | [optional] **subinterval** | [**TestSubInterval**](TestSubInterval.md) | | [optional] +**bgp_measurements** | **bool** | Set to `true` to enable bgp measurements. | [optional] [default to True] +**use_public_bgp** | **bool** | Indicate if all available public BGP monitors should be used, when ommited defaults to `bgpMeasurements` value. | [optional] [default to True] +**labels** | **List[str]** | Contains list of test label IDs (get `labelId` from `/labels` endpoint) | [optional] **tags** | **List[str]** | Contains list of test tag IDs (get `id` from `/tags` endpoint). | [optional] +**shared_with_accounts** | **List[str]** | Contains list of account group IDs. Test is shared with the listed account groups (get `aid` from `/account-groups` endpoint) | [optional] +**alert_rules** | **List[str]** | List of alert rules IDs to apply to the test (get `ruleId` from `/alerts/rules` endpoint. If `alertsEnabled` is set to `true` and `alertRules` is not included on test creation or update, applicable user default alert rules will be used) | [optional] **agents** | [**List[TestAgentRequest]**](TestAgentRequest.md) | Contains list of Agent IDs (get `agentId` from `/agents` endpoint). | +**monitors** | **List[str]** | Contains list of BGP monitor IDs (get `monitorId` from `/monitors` endpoint) | [optional] ## Example diff --git a/thousandeyes-sdk-tests/docs/PageLoadTestResponse.md b/thousandeyes-sdk-tests/docs/PageLoadTestResponse.md index 5ea5a744..17d6df1a 100644 --- a/thousandeyes-sdk-tests/docs/PageLoadTestResponse.md +++ b/thousandeyes-sdk-tests/docs/PageLoadTestResponse.md @@ -21,6 +21,7 @@ Name | Type | Description | Notes **type** | **str** | | [optional] [readonly] **links** | [**TestLinks**](TestLinks.md) | | [optional] **labels** | [**List[TestLabel]**](TestLabel.md) | Labels to which the test is assigned. This field is not returned for Instant Tests. | [optional] [readonly] +**tags** | [**List[TestTag]**](TestTag.md) | Tags assigned to the test. Returned only when `expand=tag` is specified. This field is not returned for Instant Tests. For more information, see `/tags`. | [optional] [readonly] **shared_with_accounts** | [**List[SharedWithAccount]**](SharedWithAccount.md) | | [optional] [readonly] **auth_type** | [**TestAuthType**](TestAuthType.md) | | [optional] **agent_interfaces** | [**AgentInterfaces**](AgentInterfaces.md) | | [optional] @@ -57,6 +58,7 @@ Name | Type | Description | Notes **override_agent_proxy** | **bool** | Flag indicating if a proxy other than the default should be used. To override the default proxy for agents, set to `true` and specify a value for `overrideProxyId`. | [optional] [default to False] **override_proxy_id** | **str** | ID of the proxy to be used if the default proxy is overridden. | [optional] **collect_proxy_network_data** | **bool** | Indicates whether network data to the proxy should be collected. | [optional] [default to False] +**vault_credentials** | [**List[TestVaultCredential]**](TestVaultCredential.md) | List of credential IDs that are stored in an external vault. | [optional] **emulated_device_id** | **str** | ID of the emulated device, if one was given when the test was created. | [optional] **page_load_target_time** | **int** | Target time for page load completion, specified in seconds and cannot exceed the `pageLoadTimeLimit`. | [optional] **page_load_time_limit** | **int** | Page load time limit. Must be larger than the `httpTimeLimit`. | [optional] [default to 10] diff --git a/thousandeyes-sdk-dashboards/docs/ApiAgentWidgetType.md b/thousandeyes-sdk-tests/docs/RequestMethod.md similarity index 87% rename from thousandeyes-sdk-dashboards/docs/ApiAgentWidgetType.md rename to thousandeyes-sdk-tests/docs/RequestMethod.md index 0be0c87f..06eb0c1c 100644 --- a/thousandeyes-sdk-dashboards/docs/ApiAgentWidgetType.md +++ b/thousandeyes-sdk-tests/docs/RequestMethod.md @@ -1,6 +1,6 @@ -# ApiAgentWidgetType +# RequestMethod -Type of the agent. +HTTP request method. ## Properties diff --git a/thousandeyes-sdk-tests/docs/SimpleAgent.md b/thousandeyes-sdk-tests/docs/SimpleAgent.md index 96e486de..8f659ae8 100644 --- a/thousandeyes-sdk-tests/docs/SimpleAgent.md +++ b/thousandeyes-sdk-tests/docs/SimpleAgent.md @@ -13,9 +13,10 @@ Name | Type | Description | Notes **location** | **str** | Location of the agent. | [optional] [readonly] **country_id** | **str** | 2-digit ISO country code | [optional] [readonly] **coordinates** | [**Coordinates**](Coordinates.md) | | [optional] +**network_provider_info** | [**SimpleAgentAllOfNetworkProviderInfo**](SimpleAgentAllOfNetworkProviderInfo.md) | | [optional] **enabled** | **bool** | Flag indicating if the agent is enabled. | [optional] -**prefix** | **str** | Prefix containing agents public IP address. | [optional] [readonly] **verify_ssl_certificates** | **bool** | Flag indicating if has normal SSL operations or if instead it's set to ignore SSL errors on browserbot-based tests. | [optional] [readonly] +**prefix** | **str** | Prefix containing agents public IP address. | [optional] [readonly] ## Example diff --git a/thousandeyes-sdk-tests/docs/SimpleAgentAllOfNetworkProviderInfo.md b/thousandeyes-sdk-tests/docs/SimpleAgentAllOfNetworkProviderInfo.md new file mode 100644 index 00000000..4cd1bc4d --- /dev/null +++ b/thousandeyes-sdk-tests/docs/SimpleAgentAllOfNetworkProviderInfo.md @@ -0,0 +1,31 @@ +# SimpleAgentAllOfNetworkProviderInfo + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**asn** | **int** | Autonomous System Number (ASN) announcing the agent's public IP prefix. | [optional] [readonly] +**name** | **str** | Name of the network provider organization. | [optional] [readonly] +**type** | [**NetworkProviderType**](NetworkProviderType.md) | | [optional] + +## Example + +```python +from thousandeyes_sdk.tests.models.simple_agent_all_of_network_provider_info import SimpleAgentAllOfNetworkProviderInfo + +# TODO update the JSON string below +json = "{}" +# create an instance of SimpleAgentAllOfNetworkProviderInfo from a JSON string +simple_agent_all_of_network_provider_info_instance = SimpleAgentAllOfNetworkProviderInfo.from_json(json) +# print the JSON string representation of the object +print(SimpleAgentAllOfNetworkProviderInfo.to_json()) + +# convert the object into a dict +simple_agent_all_of_network_provider_info_dict = simple_agent_all_of_network_provider_info_instance.to_dict() +# create an instance of SimpleAgentAllOfNetworkProviderInfo from a dict +simple_agent_all_of_network_provider_info_from_dict = SimpleAgentAllOfNetworkProviderInfo.from_dict(simple_agent_all_of_network_provider_info_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/thousandeyes-sdk-tests/docs/SipServerInstantTest.md b/thousandeyes-sdk-tests/docs/SipServerInstantTest.md index 83928e4b..33724ac0 100644 --- a/thousandeyes-sdk-tests/docs/SipServerInstantTest.md +++ b/thousandeyes-sdk-tests/docs/SipServerInstantTest.md @@ -17,6 +17,7 @@ Name | Type | Description | Notes **type** | **str** | | [optional] [readonly] **links** | [**TestLinks**](TestLinks.md) | | [optional] **labels** | [**List[TestLabel]**](TestLabel.md) | Labels to which the test is assigned. This field is not returned for Instant Tests. | [optional] [readonly] +**tags** | [**List[TestTag]**](TestTag.md) | Tags assigned to the test. Returned only when `expand=tag` is specified. This field is not returned for Instant Tests. For more information, see `/tags`. | [optional] [readonly] **shared_with_accounts** | [**List[SharedWithAccount]**](SharedWithAccount.md) | | [optional] [readonly] **mtu_measurements** | **bool** | Set `true` to measure MTU sizes on network from agents to the target. | [optional] **network_measurements** | **bool** | Enable or disable network measurements. Set to true to enable or false to disable network measurements. | [optional] [default to True] diff --git a/thousandeyes-sdk-tests/docs/SipServerTest.md b/thousandeyes-sdk-tests/docs/SipServerTest.md index 9a8ea478..f413c8d3 100644 --- a/thousandeyes-sdk-tests/docs/SipServerTest.md +++ b/thousandeyes-sdk-tests/docs/SipServerTest.md @@ -24,6 +24,7 @@ Name | Type | Description | Notes **type** | **str** | | [optional] [readonly] **links** | [**TestLinks**](TestLinks.md) | | [optional] **labels** | [**List[TestLabel]**](TestLabel.md) | Labels to which the test is assigned. This field is not returned for Instant Tests. | [optional] [readonly] +**tags** | [**List[TestTag]**](TestTag.md) | Tags assigned to the test. Returned only when `expand=tag` is specified. This field is not returned for Instant Tests. For more information, see `/tags`. | [optional] [readonly] **shared_with_accounts** | [**List[SharedWithAccount]**](SharedWithAccount.md) | | [optional] [readonly] **mtu_measurements** | **bool** | Set `true` to measure MTU sizes on network from agents to the target. | [optional] **network_measurements** | **bool** | Enable or disable network measurements. Set to true to enable or false to disable network measurements. | [optional] [default to True] diff --git a/thousandeyes-sdk-tests/docs/SipServerTestRequest.md b/thousandeyes-sdk-tests/docs/SipServerTestRequest.md index 0b8a58b0..620db3c6 100644 --- a/thousandeyes-sdk-tests/docs/SipServerTestRequest.md +++ b/thousandeyes-sdk-tests/docs/SipServerTestRequest.md @@ -8,7 +8,6 @@ Name | Type | Description | Notes **interval** | [**TestInterval**](TestInterval.md) | | **alerts_enabled** | **bool** | Indicates if alerts are enabled. | [optional] **enabled** | **bool** | Test is enabled. | [optional] [default to True] -**alert_rules** | **List[str]** | List of alert rules IDs to apply to the test (get `ruleId` from `/alerts/rules` endpoint. If `alertsEnabled` is set to `true` and `alertRules` is not included on test creation or update, applicable user default alert rules will be used) | [optional] **created_by** | **str** | User that created the test. | [optional] [readonly] **created_date** | **datetime** | UTC created date (ISO date-time format). | [optional] [readonly] **description** | **str** | A description of the test. | [optional] @@ -20,8 +19,6 @@ Name | Type | Description | Notes **test_name** | **str** | The name of the test. Test name must be unique. | [optional] **type** | **str** | | [optional] [readonly] **links** | [**TestLinks**](TestLinks.md) | | [optional] -**labels** | **List[str]** | Contains list of test label IDs (get `labelId` from `/labels` endpoint) | [optional] -**shared_with_accounts** | **List[str]** | Contains list of account group IDs. Test is shared with the listed account groups (get `aid` from `/account-groups` endpoint) | [optional] **mtu_measurements** | **bool** | Set `true` to measure MTU sizes on network from agents to the target. | [optional] **network_measurements** | **bool** | Enable or disable network measurements. Set to true to enable or false to disable network measurements. | [optional] [default to True] **num_path_traces** | **int** | Number of path traces executed by the agent. | [optional] [default to 3] @@ -34,12 +31,15 @@ Name | Type | Description | Notes **sip_time_limit** | **int** | Time limit in milliseconds. | [optional] [default to 5] **fixed_packet_rate** | **int** | Sets packets rate sent to measure the network in packets per second. | [optional] **ipv6_policy** | [**TestIpv6Policy**](TestIpv6Policy.md) | | [optional] +**labels** | **List[str]** | Contains list of test label IDs (get `labelId` from `/labels` endpoint) | [optional] +**tags** | **List[str]** | Contains list of test tag IDs (get `id` from `/tags` endpoint). | [optional] +**shared_with_accounts** | **List[str]** | Contains list of account group IDs. Test is shared with the listed account groups (get `aid` from `/account-groups` endpoint) | [optional] +**alert_rules** | **List[str]** | List of alert rules IDs to apply to the test (get `ruleId` from `/alerts/rules` endpoint. If `alertsEnabled` is set to `true` and `alertRules` is not included on test creation or update, applicable user default alert rules will be used) | [optional] +**agents** | [**List[TestAgentRequest]**](TestAgentRequest.md) | Contains list of Agent IDs (get `agentId` from `/agents` endpoint). | +**monitors** | **List[str]** | Contains list of BGP monitor IDs (get `monitorId` from `/monitors` endpoint) | [optional] +**target_sip_credentials** | [**TestSipCredentials**](TestSipCredentials.md) | | **bgp_measurements** | **bool** | Set to `true` to enable bgp measurements. | [optional] [default to True] **use_public_bgp** | **bool** | Indicate if all available public BGP monitors should be used, when ommited defaults to `bgpMeasurements` value. | [optional] [default to True] -**monitors** | [**List[Monitor]**](Monitor.md) | Contains list of enabled BGP monitors. | [optional] [readonly] -**target_sip_credentials** | [**TestSipCredentials**](TestSipCredentials.md) | | -**tags** | **List[str]** | Contains list of test tag IDs (get `id` from `/tags` endpoint). | [optional] -**agents** | [**List[TestAgentRequest]**](TestAgentRequest.md) | Contains list of Agent IDs (get `agentId` from `/agents` endpoint). | ## Example diff --git a/thousandeyes-sdk-tests/docs/SipServerTestResponse.md b/thousandeyes-sdk-tests/docs/SipServerTestResponse.md index 8137ab6a..458d4f80 100644 --- a/thousandeyes-sdk-tests/docs/SipServerTestResponse.md +++ b/thousandeyes-sdk-tests/docs/SipServerTestResponse.md @@ -24,6 +24,7 @@ Name | Type | Description | Notes **type** | **str** | | [optional] [readonly] **links** | [**TestLinks**](TestLinks.md) | | [optional] **labels** | [**List[TestLabel]**](TestLabel.md) | Labels to which the test is assigned. This field is not returned for Instant Tests. | [optional] [readonly] +**tags** | [**List[TestTag]**](TestTag.md) | Tags assigned to the test. Returned only when `expand=tag` is specified. This field is not returned for Instant Tests. For more information, see `/tags`. | [optional] [readonly] **shared_with_accounts** | [**List[SharedWithAccount]**](SharedWithAccount.md) | | [optional] [readonly] **mtu_measurements** | **bool** | Set `true` to measure MTU sizes on network from agents to the target. | [optional] **network_measurements** | **bool** | Enable or disable network measurements. Set to true to enable or false to disable network measurements. | [optional] [default to True] diff --git a/thousandeyes-sdk-tests/docs/TestTag.md b/thousandeyes-sdk-tests/docs/TestTag.md new file mode 100644 index 00000000..61b9ffa7 --- /dev/null +++ b/thousandeyes-sdk-tests/docs/TestTag.md @@ -0,0 +1,31 @@ +# TestTag + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**id** | **str** | Unique tag ID. | [optional] +**key** | **str** | Tag key. For example, \"Location\" or \"Department\". | [optional] +**value** | **str** | Tag value. For example, \"San Francisco\" or \"Engineering\". | [optional] + +## Example + +```python +from thousandeyes_sdk.tests.models.test_tag import TestTag + +# TODO update the JSON string below +json = "{}" +# create an instance of TestTag from a JSON string +test_tag_instance = TestTag.from_json(json) +# print the JSON string representation of the object +print(TestTag.to_json()) + +# convert the object into a dict +test_tag_dict = test_tag_instance.to_dict() +# create an instance of TestTag from a dict +test_tag_from_dict = TestTag.from_dict(test_tag_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/thousandeyes-sdk-tests/docs/TestVaultCredential.md b/thousandeyes-sdk-tests/docs/TestVaultCredential.md new file mode 100644 index 00000000..fc5cdb7e --- /dev/null +++ b/thousandeyes-sdk-tests/docs/TestVaultCredential.md @@ -0,0 +1,30 @@ +# TestVaultCredential + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**secret_id** | **str** | UUID of the configured secret. | [optional] +**target** | [**TestVaultCredentialTarget**](TestVaultCredentialTarget.md) | | [optional] + +## Example + +```python +from thousandeyes_sdk.tests.models.test_vault_credential import TestVaultCredential + +# TODO update the JSON string below +json = "{}" +# create an instance of TestVaultCredential from a JSON string +test_vault_credential_instance = TestVaultCredential.from_json(json) +# print the JSON string representation of the object +print(TestVaultCredential.to_json()) + +# convert the object into a dict +test_vault_credential_dict = test_vault_credential_instance.to_dict() +# create an instance of TestVaultCredential from a dict +test_vault_credential_from_dict = TestVaultCredential.from_dict(test_vault_credential_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/thousandeyes-sdk-tests/docs/TestVaultCredentialTarget.md b/thousandeyes-sdk-tests/docs/TestVaultCredentialTarget.md new file mode 100644 index 00000000..02df9f4f --- /dev/null +++ b/thousandeyes-sdk-tests/docs/TestVaultCredentialTarget.md @@ -0,0 +1,12 @@ +# TestVaultCredentialTarget + +The target setting that the credential should be used for. + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- + +[[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/thousandeyes-sdk-tests/docs/UpdateSipServerTest.md b/thousandeyes-sdk-tests/docs/UnexpandedDnsServerRequestTest.md similarity index 66% rename from thousandeyes-sdk-tests/docs/UpdateSipServerTest.md rename to thousandeyes-sdk-tests/docs/UnexpandedDnsServerRequestTest.md index ede5e3d3..2633550f 100644 --- a/thousandeyes-sdk-tests/docs/UpdateSipServerTest.md +++ b/thousandeyes-sdk-tests/docs/UnexpandedDnsServerRequestTest.md @@ -1,4 +1,4 @@ -# UpdateSipServerTest +# UnexpandedDnsServerRequestTest ## Properties @@ -8,7 +8,6 @@ Name | Type | Description | Notes **interval** | [**TestInterval**](TestInterval.md) | | **alerts_enabled** | **bool** | Indicates if alerts are enabled. | [optional] **enabled** | **bool** | Test is enabled. | [optional] [default to True] -**alert_rules** | [**List[AlertRule]**](AlertRule.md) | Contains list of enabled alert rule objects. | [optional] **created_by** | **str** | User that created the test. | [optional] [readonly] **created_date** | **datetime** | UTC created date (ISO date-time format). | [optional] [readonly] **description** | **str** | A description of the test. | [optional] @@ -20,41 +19,40 @@ Name | Type | Description | Notes **test_name** | **str** | The name of the test. Test name must be unique. | [optional] **type** | **str** | | [optional] [readonly] **links** | [**TestLinks**](TestLinks.md) | | [optional] -**labels** | [**List[TestLabel]**](TestLabel.md) | Labels to which the test is assigned. This field is not returned for Instant Tests. | [optional] [readonly] -**shared_with_accounts** | [**List[SharedWithAccount]**](SharedWithAccount.md) | | [optional] [readonly] +**bandwidth_measurements** | **bool** | Set to `true` to enable bandwidth measurements, only applies to Enterprise agents assigned to the test. | [optional] +**dns_servers** | **List[str]** | A list of DNS server FQDN. | +**dns_transport_protocol** | [**TestDnsTransportProtocol**](TestDnsTransportProtocol.md) | | [optional] +**domain** | **str** | The target record for the test, with the record type suffixed. If no record type is specified, the test defaults to an ANY record. | **mtu_measurements** | **bool** | Set `true` to measure MTU sizes on network from agents to the target. | [optional] **network_measurements** | **bool** | Enable or disable network measurements. Set to true to enable or false to disable network measurements. | [optional] [default to True] **num_path_traces** | **int** | Number of path traces executed by the agent. | [optional] [default to 3] -**options_regex** | **str** | Options regex, this field does not require escaping. | [optional] **path_trace_mode** | [**TestPathTraceMode**](TestPathTraceMode.md) | | [optional] **probe_mode** | [**TestProbeMode**](TestProbeMode.md) | | [optional] +**protocol** | [**TestProtocol**](TestProtocol.md) | | [optional] **randomized_start_time** | **bool** | Indicates whether agents should randomize the start time in each test round. | [optional] [default to False] -**register_enabled** | **bool** | Set to true to perform SIP registration on the test target with the SIP REGISTER command. | [optional] [default to False] -**sip_target_time** | **int** | Target time for test completion in milliseconds. | [optional] -**sip_time_limit** | **int** | Time limit in milliseconds. | [optional] [default to 5] -**fixed_packet_rate** | **int** | Sets packets rate sent to measure the network in packets per second. | [optional] +**recursive_queries** | **bool** | Set true to run query with RD (recursion desired) flag enabled. | [optional] **ipv6_policy** | [**TestIpv6Policy**](TestIpv6Policy.md) | | [optional] +**fixed_packet_rate** | **int** | Sets packets rate sent to measure the network in packets per second. | [optional] +**dns_query_class** | [**DnsQueryClass**](DnsQueryClass.md) | | [optional] **bgp_measurements** | **bool** | Set to `true` to enable bgp measurements. | [optional] [default to True] **use_public_bgp** | **bool** | Indicate if all available public BGP monitors should be used, when ommited defaults to `bgpMeasurements` value. | [optional] [default to True] -**monitors** | [**List[Monitor]**](Monitor.md) | Contains list of enabled BGP monitors. | [optional] [readonly] -**target_sip_credentials** | [**TestSipCredentials**](TestSipCredentials.md) | | ## Example ```python -from thousandeyes_sdk.tests.models.update_sip_server_test import UpdateSipServerTest +from thousandeyes_sdk.tests.models.unexpanded_dns_server_request_test import UnexpandedDnsServerRequestTest # TODO update the JSON string below json = "{}" -# create an instance of UpdateSipServerTest from a JSON string -update_sip_server_test_instance = UpdateSipServerTest.from_json(json) +# create an instance of UnexpandedDnsServerRequestTest from a JSON string +unexpanded_dns_server_request_test_instance = UnexpandedDnsServerRequestTest.from_json(json) # print the JSON string representation of the object -print(UpdateSipServerTest.to_json()) +print(UnexpandedDnsServerRequestTest.to_json()) # convert the object into a dict -update_sip_server_test_dict = update_sip_server_test_instance.to_dict() -# create an instance of UpdateSipServerTest from a dict -update_sip_server_test_from_dict = UpdateSipServerTest.from_dict(update_sip_server_test_dict) +unexpanded_dns_server_request_test_dict = unexpanded_dns_server_request_test_instance.to_dict() +# create an instance of UnexpandedDnsServerRequestTest from a dict +unexpanded_dns_server_request_test_from_dict = UnexpandedDnsServerRequestTest.from_dict(unexpanded_dns_server_request_test_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/thousandeyes-sdk-tests/docs/UnexpandedHttpServerTest.md b/thousandeyes-sdk-tests/docs/UnexpandedHttpServerTest.md index d13164b9..94e78008 100644 --- a/thousandeyes-sdk-tests/docs/UnexpandedHttpServerTest.md +++ b/thousandeyes-sdk-tests/docs/UnexpandedHttpServerTest.md @@ -54,9 +54,11 @@ Name | Type | Description | Notes **override_agent_proxy** | **bool** | Flag indicating if a proxy other than the default should be used. To override the default proxy for agents, set to `true` and specify a value for `overrideProxyId`. | [optional] [default to False] **override_proxy_id** | **str** | ID of the proxy to be used if the default proxy is overridden. | [optional] **collect_proxy_network_data** | **bool** | Indicates whether network data to the proxy should be collected. | [optional] [default to False] +**vault_credentials** | [**List[TestVaultCredential]**](TestVaultCredential.md) | List of credential IDs that are stored in an external vault. | [optional] **headers** | **List[str]** | HTTP request headers used. | [optional] **randomized_start_time** | **bool** | Indicates whether agents should randomize the start time in each test round. | [optional] [default to False] -**post_body** | **str** | Enter the body for the HTTP POST request in this field. No special escaping is necessary. If the post body is provided with content, the `requestMethod` is automatically set to POST. | [optional] +**request_method** | [**RequestMethod**](RequestMethod.md) | | [optional] +**post_body** | **str** | Enter the body for the HTTP POST request in this field. No special escaping is required. If content is provided and `requestMethod` is not specified, `requestMethod` is automatically set to `post`. | [optional] **ipv6_policy** | [**TestIpv6Policy**](TestIpv6Policy.md) | | [optional] **bgp_measurements** | **bool** | Set to `true` to enable bgp measurements. | [optional] [default to True] **use_public_bgp** | **bool** | Indicate if all available public BGP monitors should be used, when ommited defaults to `bgpMeasurements` value. | [optional] [default to True] diff --git a/thousandeyes-sdk-tests/docs/UnexpandedPageLoadTest.md b/thousandeyes-sdk-tests/docs/UnexpandedPageLoadTest.md index b482d010..6c1dfab8 100644 --- a/thousandeyes-sdk-tests/docs/UnexpandedPageLoadTest.md +++ b/thousandeyes-sdk-tests/docs/UnexpandedPageLoadTest.md @@ -54,6 +54,7 @@ Name | Type | Description | Notes **override_agent_proxy** | **bool** | Flag indicating if a proxy other than the default should be used. To override the default proxy for agents, set to `true` and specify a value for `overrideProxyId`. | [optional] [default to False] **override_proxy_id** | **str** | ID of the proxy to be used if the default proxy is overridden. | [optional] **collect_proxy_network_data** | **bool** | Indicates whether network data to the proxy should be collected. | [optional] [default to False] +**vault_credentials** | [**List[TestVaultCredential]**](TestVaultCredential.md) | List of credential IDs that are stored in an external vault. | [optional] **emulated_device_id** | **str** | ID of the emulated device, if one was given when the test was created. | [optional] **page_load_target_time** | **int** | Target time for page load completion, specified in seconds and cannot exceed the `pageLoadTimeLimit`. | [optional] **page_load_time_limit** | **int** | Page load time limit. Must be larger than the `httpTimeLimit`. | [optional] [default to 10] diff --git a/thousandeyes-sdk-tests/docs/UnexpandedVoiceTest.md b/thousandeyes-sdk-tests/docs/UnexpandedVoiceTest.md index eea3d985..55d4ff70 100644 --- a/thousandeyes-sdk-tests/docs/UnexpandedVoiceTest.md +++ b/thousandeyes-sdk-tests/docs/UnexpandedVoiceTest.md @@ -20,7 +20,7 @@ Name | Type | Description | Notes **type** | **str** | | [optional] [readonly] **links** | [**TestLinks**](TestLinks.md) | | [optional] **codec** | **str** | Codec label | [optional] [readonly] -**codec_id** | **str** | Coded ID, [see the list of acceptable values](https://docs.thousandeyes.com/product-documentation/internet-and-wan-monitoring/tests/working-with-test-settings#rtp-stream-advanced-settings-tab) | [optional] +**codec_id** | **str** | Codec identifier for the RTP stream. Valid values: * `0`: G.711 @ 64 Kbps * `1`: G.722.1 @ 24 Kbps (WB) * `2`: G.722.1 @ 32 Kbps (WB) * `3`: G.726 @ 32 Kbps * `4`: G.723.1 @ 6.4 Kbps * `5`: G.729a @ 8 Kbps * `6`: RTAudio @ 45 Kbps (WB) * `7`: RTAudio @ 27.8 Kbps * `8`: SILK @ 36 Kbps (WB) * `9`: G.722 @ 64 Kbps (WB) | [optional] **dscp** | **str** | DSCP label. | [optional] [readonly] **dscp_id** | [**TestDscpId**](TestDscpId.md) | | [optional] **duration** | **int** | Duration of the test in seconds. | [optional] [default to 5] diff --git a/thousandeyes-sdk-tests/docs/UnexpandedWebTransactionTest.md b/thousandeyes-sdk-tests/docs/UnexpandedWebTransactionTest.md index e1b4855c..e3f0fdfa 100644 --- a/thousandeyes-sdk-tests/docs/UnexpandedWebTransactionTest.md +++ b/thousandeyes-sdk-tests/docs/UnexpandedWebTransactionTest.md @@ -54,6 +54,7 @@ Name | Type | Description | Notes **override_agent_proxy** | **bool** | Flag indicating if a proxy other than the default should be used. To override the default proxy for agents, set to `true` and specify a value for `overrideProxyId`. | [optional] [default to False] **override_proxy_id** | **str** | ID of the proxy to be used if the default proxy is overridden. | [optional] **collect_proxy_network_data** | **bool** | Indicates whether network data to the proxy should be collected. | [optional] [default to False] +**vault_credentials** | [**List[TestVaultCredential]**](TestVaultCredential.md) | List of credential IDs that are stored in an external vault. | [optional] **emulated_device_id** | **str** | ID of the emulated device, if specified when the test was created. | [optional] **target_time** | **int** | Target completion time, in seconds. Defaults to 10. Cannot exceed the `timeLimit` value. | [optional] [default to 10] **time_limit** | **int** | Time limit for transaction in seconds. | [optional] [default to 30] diff --git a/thousandeyes-sdk-tests/docs/UpdateBgpTestRequest.md b/thousandeyes-sdk-tests/docs/UpdateBgpTestRequest.md index f9689f66..d69d8844 100644 --- a/thousandeyes-sdk-tests/docs/UpdateBgpTestRequest.md +++ b/thousandeyes-sdk-tests/docs/UpdateBgpTestRequest.md @@ -16,15 +16,15 @@ Name | Type | Description | Notes **test_name** | **str** | The name of the test. Test name must be unique. | [optional] **type** | **str** | | [optional] [readonly] **links** | [**TestLinks**](TestLinks.md) | | [optional] -**labels** | **List[str]** | Contains list of test label IDs (get `labelId` from `/labels` endpoint) | [optional] -**shared_with_accounts** | **List[str]** | Contains list of account group IDs. Test is shared with the listed account groups (get `aid` from `/account-groups` endpoint) | [optional] **enabled** | **bool** | Test is enabled. | [optional] [default to True] -**monitors** | **List[str]** | Contains list of BGP monitor IDs (get `monitorId` from `/monitors` endpoint) | [optional] **include_covered_prefixes** | **bool** | Indicate if queries for subprefixes detected under this prefix should included. | [optional] **use_public_bgp** | **bool** | Indicate if all available public BGP monitors should be used, when ommited defaults to `bgpMeasurements` value. | [optional] [default to True] **alerts_enabled** | **bool** | Indicates if alerts are enabled. | [optional] -**alert_rules** | **List[str]** | List of alert rules IDs to apply to the test (get `ruleId` from `/alerts/rules` endpoint. If `alertsEnabled` is set to `true` and `alertRules` is not included on test creation or update, applicable user default alert rules will be used) | [optional] +**labels** | **List[str]** | Contains list of test label IDs (get `labelId` from `/labels` endpoint) | [optional] **tags** | **List[str]** | Contains list of test tag IDs (get `id` from `/tags` endpoint). | [optional] +**shared_with_accounts** | **List[str]** | Contains list of account group IDs. Test is shared with the listed account groups (get `aid` from `/account-groups` endpoint) | [optional] +**alert_rules** | **List[str]** | List of alert rules IDs to apply to the test (get `ruleId` from `/alerts/rules` endpoint. If `alertsEnabled` is set to `true` and `alertRules` is not included on test creation or update, applicable user default alert rules will be used) | [optional] +**monitors** | **List[str]** | Contains list of BGP monitor IDs (get `monitorId` from `/monitors` endpoint) | [optional] ## Example diff --git a/thousandeyes-sdk-tests/docs/VoiceInstantTest.md b/thousandeyes-sdk-tests/docs/VoiceInstantTest.md index 47c7b88c..2eb582e2 100644 --- a/thousandeyes-sdk-tests/docs/VoiceInstantTest.md +++ b/thousandeyes-sdk-tests/docs/VoiceInstantTest.md @@ -17,9 +17,10 @@ Name | Type | Description | Notes **type** | **str** | | [optional] [readonly] **links** | [**TestLinks**](TestLinks.md) | | [optional] **labels** | [**List[TestLabel]**](TestLabel.md) | Labels to which the test is assigned. This field is not returned for Instant Tests. | [optional] [readonly] +**tags** | [**List[TestTag]**](TestTag.md) | Tags assigned to the test. Returned only when `expand=tag` is specified. This field is not returned for Instant Tests. For more information, see `/tags`. | [optional] [readonly] **shared_with_accounts** | [**List[SharedWithAccount]**](SharedWithAccount.md) | | [optional] [readonly] **codec** | **str** | Codec label | [optional] [readonly] -**codec_id** | **str** | Coded ID, [see the list of acceptable values](https://docs.thousandeyes.com/product-documentation/internet-and-wan-monitoring/tests/working-with-test-settings#rtp-stream-advanced-settings-tab) | [optional] +**codec_id** | **str** | Codec identifier for the RTP stream. Valid values: * `0`: G.711 @ 64 Kbps * `1`: G.722.1 @ 24 Kbps (WB) * `2`: G.722.1 @ 32 Kbps (WB) * `3`: G.726 @ 32 Kbps * `4`: G.723.1 @ 6.4 Kbps * `5`: G.729a @ 8 Kbps * `6`: RTAudio @ 45 Kbps (WB) * `7`: RTAudio @ 27.8 Kbps * `8`: SILK @ 36 Kbps (WB) * `9`: G.722 @ 64 Kbps (WB) | [optional] **dscp** | **str** | DSCP label. | [optional] [readonly] **dscp_id** | [**TestDscpId**](TestDscpId.md) | | [optional] **duration** | **int** | Duration of the test in seconds. | [optional] [default to 5] diff --git a/thousandeyes-sdk-tests/docs/VoiceProperties.md b/thousandeyes-sdk-tests/docs/VoiceProperties.md index c34bfc10..fd87cfcd 100644 --- a/thousandeyes-sdk-tests/docs/VoiceProperties.md +++ b/thousandeyes-sdk-tests/docs/VoiceProperties.md @@ -6,7 +6,7 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **codec** | **str** | Codec label | [optional] [readonly] -**codec_id** | **str** | Coded ID, [see the list of acceptable values](https://docs.thousandeyes.com/product-documentation/internet-and-wan-monitoring/tests/working-with-test-settings#rtp-stream-advanced-settings-tab) | [optional] +**codec_id** | **str** | Codec identifier for the RTP stream. Valid values: * `0`: G.711 @ 64 Kbps * `1`: G.722.1 @ 24 Kbps (WB) * `2`: G.722.1 @ 32 Kbps (WB) * `3`: G.726 @ 32 Kbps * `4`: G.723.1 @ 6.4 Kbps * `5`: G.729a @ 8 Kbps * `6`: RTAudio @ 45 Kbps (WB) * `7`: RTAudio @ 27.8 Kbps * `8`: SILK @ 36 Kbps (WB) * `9`: G.722 @ 64 Kbps (WB) | [optional] **dscp** | **str** | DSCP label. | [optional] [readonly] **dscp_id** | [**TestDscpId**](TestDscpId.md) | | [optional] **duration** | **int** | Duration of the test in seconds. | [optional] [default to 5] diff --git a/thousandeyes-sdk-tests/docs/VoiceTest.md b/thousandeyes-sdk-tests/docs/VoiceTest.md index 410d251d..35976354 100644 --- a/thousandeyes-sdk-tests/docs/VoiceTest.md +++ b/thousandeyes-sdk-tests/docs/VoiceTest.md @@ -21,9 +21,10 @@ Name | Type | Description | Notes **type** | **str** | | [optional] [readonly] **links** | [**TestLinks**](TestLinks.md) | | [optional] **labels** | [**List[TestLabel]**](TestLabel.md) | Labels to which the test is assigned. This field is not returned for Instant Tests. | [optional] [readonly] +**tags** | [**List[TestTag]**](TestTag.md) | Tags assigned to the test. Returned only when `expand=tag` is specified. This field is not returned for Instant Tests. For more information, see `/tags`. | [optional] [readonly] **shared_with_accounts** | [**List[SharedWithAccount]**](SharedWithAccount.md) | | [optional] [readonly] **codec** | **str** | Codec label | [optional] [readonly] -**codec_id** | **str** | Coded ID, [see the list of acceptable values](https://docs.thousandeyes.com/product-documentation/internet-and-wan-monitoring/tests/working-with-test-settings#rtp-stream-advanced-settings-tab) | [optional] +**codec_id** | **str** | Codec identifier for the RTP stream. Valid values: * `0`: G.711 @ 64 Kbps * `1`: G.722.1 @ 24 Kbps (WB) * `2`: G.722.1 @ 32 Kbps (WB) * `3`: G.726 @ 32 Kbps * `4`: G.723.1 @ 6.4 Kbps * `5`: G.729a @ 8 Kbps * `6`: RTAudio @ 45 Kbps (WB) * `7`: RTAudio @ 27.8 Kbps * `8`: SILK @ 36 Kbps (WB) * `9`: G.722 @ 64 Kbps (WB) | [optional] **dscp** | **str** | DSCP label. | [optional] [readonly] **dscp_id** | [**TestDscpId**](TestDscpId.md) | | [optional] **duration** | **int** | Duration of the test in seconds. | [optional] [default to 5] diff --git a/thousandeyes-sdk-tests/docs/VoiceTestRequest.md b/thousandeyes-sdk-tests/docs/VoiceTestRequest.md index 97253c07..5a8d666c 100644 --- a/thousandeyes-sdk-tests/docs/VoiceTestRequest.md +++ b/thousandeyes-sdk-tests/docs/VoiceTestRequest.md @@ -8,7 +8,6 @@ Name | Type | Description | Notes **interval** | [**TestInterval**](TestInterval.md) | | **alerts_enabled** | **bool** | Indicates if alerts are enabled. | [optional] **enabled** | **bool** | Test is enabled. | [optional] [default to True] -**alert_rules** | **List[str]** | List of alert rules IDs to apply to the test (get `ruleId` from `/alerts/rules` endpoint. If `alertsEnabled` is set to `true` and `alertRules` is not included on test creation or update, applicable user default alert rules will be used) | [optional] **created_by** | **str** | User that created the test. | [optional] [readonly] **created_date** | **datetime** | UTC created date (ISO date-time format). | [optional] [readonly] **description** | **str** | A description of the test. | [optional] @@ -20,10 +19,8 @@ Name | Type | Description | Notes **test_name** | **str** | The name of the test. Test name must be unique. | [optional] **type** | **str** | | [optional] [readonly] **links** | [**TestLinks**](TestLinks.md) | | [optional] -**labels** | **List[str]** | Contains list of test label IDs (get `labelId` from `/labels` endpoint) | [optional] -**shared_with_accounts** | **List[str]** | Contains list of account group IDs. Test is shared with the listed account groups (get `aid` from `/account-groups` endpoint) | [optional] **codec** | **str** | Codec label | [optional] [readonly] -**codec_id** | **str** | Coded ID, [see the list of acceptable values](https://docs.thousandeyes.com/product-documentation/internet-and-wan-monitoring/tests/working-with-test-settings#rtp-stream-advanced-settings-tab) | [optional] +**codec_id** | **str** | Codec identifier for the RTP stream. Valid values: * `0`: G.711 @ 64 Kbps * `1`: G.722.1 @ 24 Kbps (WB) * `2`: G.722.1 @ 32 Kbps (WB) * `3`: G.726 @ 32 Kbps * `4`: G.723.1 @ 6.4 Kbps * `5`: G.729a @ 8 Kbps * `6`: RTAudio @ 45 Kbps (WB) * `7`: RTAudio @ 27.8 Kbps * `8`: SILK @ 36 Kbps (WB) * `9`: G.722 @ 64 Kbps (WB) | [optional] **dscp** | **str** | DSCP label. | [optional] [readonly] **dscp_id** | [**TestDscpId**](TestDscpId.md) | | [optional] **duration** | **int** | Duration of the test in seconds. | [optional] [default to 5] @@ -34,9 +31,12 @@ Name | Type | Description | Notes **target_agent_id** | **str** | Agent ID of the target agent for the test. | **bgp_measurements** | **bool** | Set to `true` to enable bgp measurements. | [optional] [default to True] **use_public_bgp** | **bool** | Indicate if all available public BGP monitors should be used, when ommited defaults to `bgpMeasurements` value. | [optional] [default to True] -**monitors** | [**List[Monitor]**](Monitor.md) | Contains list of enabled BGP monitors. | [optional] [readonly] +**labels** | **List[str]** | Contains list of test label IDs (get `labelId` from `/labels` endpoint) | [optional] **tags** | **List[str]** | Contains list of test tag IDs (get `id` from `/tags` endpoint). | [optional] +**shared_with_accounts** | **List[str]** | Contains list of account group IDs. Test is shared with the listed account groups (get `aid` from `/account-groups` endpoint) | [optional] +**alert_rules** | **List[str]** | List of alert rules IDs to apply to the test (get `ruleId` from `/alerts/rules` endpoint. If `alertsEnabled` is set to `true` and `alertRules` is not included on test creation or update, applicable user default alert rules will be used) | [optional] **agents** | [**List[TestAgentRequest]**](TestAgentRequest.md) | Contains list of Agent IDs (get `agentId` from `/agents` endpoint). | +**monitors** | **List[str]** | Contains list of BGP monitor IDs (get `monitorId` from `/monitors` endpoint) | [optional] ## Example diff --git a/thousandeyes-sdk-tests/docs/VoiceTestResponse.md b/thousandeyes-sdk-tests/docs/VoiceTestResponse.md index 23b2919c..4303ccfb 100644 --- a/thousandeyes-sdk-tests/docs/VoiceTestResponse.md +++ b/thousandeyes-sdk-tests/docs/VoiceTestResponse.md @@ -21,9 +21,10 @@ Name | Type | Description | Notes **type** | **str** | | [optional] [readonly] **links** | [**TestLinks**](TestLinks.md) | | [optional] **labels** | [**List[TestLabel]**](TestLabel.md) | Labels to which the test is assigned. This field is not returned for Instant Tests. | [optional] [readonly] +**tags** | [**List[TestTag]**](TestTag.md) | Tags assigned to the test. Returned only when `expand=tag` is specified. This field is not returned for Instant Tests. For more information, see `/tags`. | [optional] [readonly] **shared_with_accounts** | [**List[SharedWithAccount]**](SharedWithAccount.md) | | [optional] [readonly] **codec** | **str** | Codec label | [optional] [readonly] -**codec_id** | **str** | Coded ID, [see the list of acceptable values](https://docs.thousandeyes.com/product-documentation/internet-and-wan-monitoring/tests/working-with-test-settings#rtp-stream-advanced-settings-tab) | [optional] +**codec_id** | **str** | Codec identifier for the RTP stream. Valid values: * `0`: G.711 @ 64 Kbps * `1`: G.722.1 @ 24 Kbps (WB) * `2`: G.722.1 @ 32 Kbps (WB) * `3`: G.726 @ 32 Kbps * `4`: G.723.1 @ 6.4 Kbps * `5`: G.729a @ 8 Kbps * `6`: RTAudio @ 45 Kbps (WB) * `7`: RTAudio @ 27.8 Kbps * `8`: SILK @ 36 Kbps (WB) * `9`: G.722 @ 64 Kbps (WB) | [optional] **dscp** | **str** | DSCP label. | [optional] [readonly] **dscp_id** | [**TestDscpId**](TestDscpId.md) | | [optional] **duration** | **int** | Duration of the test in seconds. | [optional] [default to 5] diff --git a/thousandeyes-sdk-tests/docs/WebTransactionInstantTest.md b/thousandeyes-sdk-tests/docs/WebTransactionInstantTest.md index b0e5b5d5..0ad3c4d9 100644 --- a/thousandeyes-sdk-tests/docs/WebTransactionInstantTest.md +++ b/thousandeyes-sdk-tests/docs/WebTransactionInstantTest.md @@ -17,6 +17,7 @@ Name | Type | Description | Notes **type** | **str** | | [optional] [readonly] **links** | [**TestLinks**](TestLinks.md) | | [optional] **labels** | [**List[TestLabel]**](TestLabel.md) | Labels to which the test is assigned. This field is not returned for Instant Tests. | [optional] [readonly] +**tags** | [**List[TestTag]**](TestTag.md) | Tags assigned to the test. Returned only when `expand=tag` is specified. This field is not returned for Instant Tests. For more information, see `/tags`. | [optional] [readonly] **shared_with_accounts** | [**List[SharedWithAccount]**](SharedWithAccount.md) | | [optional] [readonly] **auth_type** | [**TestAuthType**](TestAuthType.md) | | [optional] **agent_interfaces** | [**AgentInterfaces**](AgentInterfaces.md) | | [optional] @@ -53,6 +54,7 @@ Name | Type | Description | Notes **override_agent_proxy** | **bool** | Flag indicating if a proxy other than the default should be used. To override the default proxy for agents, set to `true` and specify a value for `overrideProxyId`. | [optional] [default to False] **override_proxy_id** | **str** | ID of the proxy to be used if the default proxy is overridden. | [optional] **collect_proxy_network_data** | **bool** | Indicates whether network data to the proxy should be collected. | [optional] [default to False] +**vault_credentials** | [**List[TestVaultCredential]**](TestVaultCredential.md) | List of credential IDs that are stored in an external vault. | [optional] **emulated_device_id** | **str** | ID of the emulated device, if specified when the test was created. | [optional] **target_time** | **int** | Target completion time, in seconds. Defaults to 10. Cannot exceed the `timeLimit` value. | [optional] [default to 10] **time_limit** | **int** | Time limit for transaction in seconds. | [optional] [default to 30] diff --git a/thousandeyes-sdk-tests/docs/WebTransactionProperties.md b/thousandeyes-sdk-tests/docs/WebTransactionProperties.md index 3e8197fb..9a4b7606 100644 --- a/thousandeyes-sdk-tests/docs/WebTransactionProperties.md +++ b/thousandeyes-sdk-tests/docs/WebTransactionProperties.md @@ -40,6 +40,7 @@ Name | Type | Description | Notes **override_agent_proxy** | **bool** | Flag indicating if a proxy other than the default should be used. To override the default proxy for agents, set to `true` and specify a value for `overrideProxyId`. | [optional] [default to False] **override_proxy_id** | **str** | ID of the proxy to be used if the default proxy is overridden. | [optional] **collect_proxy_network_data** | **bool** | Indicates whether network data to the proxy should be collected. | [optional] [default to False] +**vault_credentials** | [**List[TestVaultCredential]**](TestVaultCredential.md) | List of credential IDs that are stored in an external vault. | [optional] **emulated_device_id** | **str** | ID of the emulated device, if specified when the test was created. | [optional] **target_time** | **int** | Target completion time, in seconds. Defaults to 10. Cannot exceed the `timeLimit` value. | [optional] [default to 10] **time_limit** | **int** | Time limit for transaction in seconds. | [optional] [default to 30] diff --git a/thousandeyes-sdk-tests/docs/WebTransactionTest.md b/thousandeyes-sdk-tests/docs/WebTransactionTest.md index f1de1894..5fc42a67 100644 --- a/thousandeyes-sdk-tests/docs/WebTransactionTest.md +++ b/thousandeyes-sdk-tests/docs/WebTransactionTest.md @@ -21,6 +21,7 @@ Name | Type | Description | Notes **type** | **str** | | [optional] [readonly] **links** | [**TestLinks**](TestLinks.md) | | [optional] **labels** | [**List[TestLabel]**](TestLabel.md) | Labels to which the test is assigned. This field is not returned for Instant Tests. | [optional] [readonly] +**tags** | [**List[TestTag]**](TestTag.md) | Tags assigned to the test. Returned only when `expand=tag` is specified. This field is not returned for Instant Tests. For more information, see `/tags`. | [optional] [readonly] **shared_with_accounts** | [**List[SharedWithAccount]**](SharedWithAccount.md) | | [optional] [readonly] **auth_type** | [**TestAuthType**](TestAuthType.md) | | [optional] **agent_interfaces** | [**AgentInterfaces**](AgentInterfaces.md) | | [optional] @@ -57,6 +58,7 @@ Name | Type | Description | Notes **override_agent_proxy** | **bool** | Flag indicating if a proxy other than the default should be used. To override the default proxy for agents, set to `true` and specify a value for `overrideProxyId`. | [optional] [default to False] **override_proxy_id** | **str** | ID of the proxy to be used if the default proxy is overridden. | [optional] **collect_proxy_network_data** | **bool** | Indicates whether network data to the proxy should be collected. | [optional] [default to False] +**vault_credentials** | [**List[TestVaultCredential]**](TestVaultCredential.md) | List of credential IDs that are stored in an external vault. | [optional] **emulated_device_id** | **str** | ID of the emulated device, if specified when the test was created. | [optional] **target_time** | **int** | Target completion time, in seconds. Defaults to 10. Cannot exceed the `timeLimit` value. | [optional] [default to 10] **time_limit** | **int** | Time limit for transaction in seconds. | [optional] [default to 30] diff --git a/thousandeyes-sdk-tests/docs/WebTransactionTestRequest.md b/thousandeyes-sdk-tests/docs/WebTransactionTestRequest.md index 6a183b47..1a3aae13 100644 --- a/thousandeyes-sdk-tests/docs/WebTransactionTestRequest.md +++ b/thousandeyes-sdk-tests/docs/WebTransactionTestRequest.md @@ -8,7 +8,6 @@ Name | Type | Description | Notes **interval** | [**TestInterval**](TestInterval.md) | | **alerts_enabled** | **bool** | Indicates if alerts are enabled. | [optional] **enabled** | **bool** | Test is enabled. | [optional] [default to True] -**alert_rules** | **List[str]** | List of alert rules IDs to apply to the test (get `ruleId` from `/alerts/rules` endpoint. If `alertsEnabled` is set to `true` and `alertRules` is not included on test creation or update, applicable user default alert rules will be used) | [optional] **created_by** | **str** | User that created the test. | [optional] [readonly] **created_date** | **datetime** | UTC created date (ISO date-time format). | [optional] [readonly] **description** | **str** | A description of the test. | [optional] @@ -20,8 +19,6 @@ Name | Type | Description | Notes **test_name** | **str** | The name of the test. Test name must be unique. | [optional] **type** | **str** | | [optional] [readonly] **links** | [**TestLinks**](TestLinks.md) | | [optional] -**labels** | **List[str]** | Contains list of test label IDs (get `labelId` from `/labels` endpoint) | [optional] -**shared_with_accounts** | **List[str]** | Contains list of account group IDs. Test is shared with the listed account groups (get `aid` from `/account-groups` endpoint) | [optional] **auth_type** | [**TestAuthType**](TestAuthType.md) | | [optional] **agent_interfaces** | [**AgentInterfaces**](AgentInterfaces.md) | | [optional] **bandwidth_measurements** | **bool** | Set to `true` to enable bandwidth measurements, only applies to Enterprise agents assigned to the test. | [optional] @@ -57,6 +54,7 @@ Name | Type | Description | Notes **override_agent_proxy** | **bool** | Flag indicating if a proxy other than the default should be used. To override the default proxy for agents, set to `true` and specify a value for `overrideProxyId`. | [optional] [default to False] **override_proxy_id** | **str** | ID of the proxy to be used if the default proxy is overridden. | [optional] **collect_proxy_network_data** | **bool** | Indicates whether network data to the proxy should be collected. | [optional] [default to False] +**vault_credentials** | [**List[TestVaultCredential]**](TestVaultCredential.md) | List of credential IDs that are stored in an external vault. | [optional] **emulated_device_id** | **str** | ID of the emulated device, if specified when the test was created. | [optional] **target_time** | **int** | Target completion time, in seconds. Defaults to 10. Cannot exceed the `timeLimit` value. | [optional] [default to 10] **time_limit** | **int** | Time limit for transaction in seconds. | [optional] [default to 30] @@ -71,13 +69,16 @@ Name | Type | Description | Notes **page_loading_strategy** | [**TestPageLoadingStrategy**](TestPageLoadingStrategy.md) | | [optional] **randomized_start_time** | **bool** | Indicates whether agents should randomize the start time in each test round. | [optional] [default to False] **identify_agent_traffic_with_user_agent** | **bool** | Determines how agent traffic is identified: * `false`: Adds the `x-thousandeyes-agent: yes` header. * `true`: Appends `(ThousandEyes Agent)` to the `user-agent` header. For more information, see [Notes on Agent ID Strategy](https://docs.thousandeyes.com/product-documentation/browser-synthetics/test-settings-page-load-transaction#notes-on-agent-id-strategy). | [optional] [default to False] -**credentials** | **List[str]** | Contains a list of credential IDs (get `credentialId` from `/credentials` endpoint). | [optional] +**subinterval** | [**TestSubInterval**](TestSubInterval.md) | | [optional] **bgp_measurements** | **bool** | Set to `true` to enable bgp measurements. | [optional] [default to True] **use_public_bgp** | **bool** | Indicate if all available public BGP monitors should be used, when ommited defaults to `bgpMeasurements` value. | [optional] [default to True] -**monitors** | **List[str]** | Contains list of BGP monitor IDs (get `monitorId` from `/monitors` endpoint) | [optional] -**subinterval** | [**TestSubInterval**](TestSubInterval.md) | | [optional] +**labels** | **List[str]** | Contains list of test label IDs (get `labelId` from `/labels` endpoint) | [optional] **tags** | **List[str]** | Contains list of test tag IDs (get `id` from `/tags` endpoint). | [optional] +**shared_with_accounts** | **List[str]** | Contains list of account group IDs. Test is shared with the listed account groups (get `aid` from `/account-groups` endpoint) | [optional] +**alert_rules** | **List[str]** | List of alert rules IDs to apply to the test (get `ruleId` from `/alerts/rules` endpoint. If `alertsEnabled` is set to `true` and `alertRules` is not included on test creation or update, applicable user default alert rules will be used) | [optional] **agents** | [**List[TestAgentRequest]**](TestAgentRequest.md) | Contains list of Agent IDs (get `agentId` from `/agents` endpoint). | +**monitors** | **List[str]** | Contains list of BGP monitor IDs (get `monitorId` from `/monitors` endpoint) | [optional] +**credentials** | **List[str]** | Contains a list of credential IDs (get `credentialId` from `/credentials` endpoint). | [optional] ## Example diff --git a/thousandeyes-sdk-tests/docs/WebTransactionTestResponse.md b/thousandeyes-sdk-tests/docs/WebTransactionTestResponse.md index 65513159..d2c4b967 100644 --- a/thousandeyes-sdk-tests/docs/WebTransactionTestResponse.md +++ b/thousandeyes-sdk-tests/docs/WebTransactionTestResponse.md @@ -21,6 +21,7 @@ Name | Type | Description | Notes **type** | **str** | | [optional] [readonly] **links** | [**TestLinks**](TestLinks.md) | | [optional] **labels** | [**List[TestLabel]**](TestLabel.md) | Labels to which the test is assigned. This field is not returned for Instant Tests. | [optional] [readonly] +**tags** | [**List[TestTag]**](TestTag.md) | Tags assigned to the test. Returned only when `expand=tag` is specified. This field is not returned for Instant Tests. For more information, see `/tags`. | [optional] [readonly] **shared_with_accounts** | [**List[SharedWithAccount]**](SharedWithAccount.md) | | [optional] [readonly] **auth_type** | [**TestAuthType**](TestAuthType.md) | | [optional] **agent_interfaces** | [**AgentInterfaces**](AgentInterfaces.md) | | [optional] @@ -57,6 +58,7 @@ Name | Type | Description | Notes **override_agent_proxy** | **bool** | Flag indicating if a proxy other than the default should be used. To override the default proxy for agents, set to `true` and specify a value for `overrideProxyId`. | [optional] [default to False] **override_proxy_id** | **str** | ID of the proxy to be used if the default proxy is overridden. | [optional] **collect_proxy_network_data** | **bool** | Indicates whether network data to the proxy should be collected. | [optional] [default to False] +**vault_credentials** | [**List[TestVaultCredential]**](TestVaultCredential.md) | List of credential IDs that are stored in an external vault. | [optional] **emulated_device_id** | **str** | ID of the emulated device, if specified when the test was created. | [optional] **target_time** | **int** | Target completion time, in seconds. Defaults to 10. Cannot exceed the `timeLimit` value. | [optional] [default to 10] **time_limit** | **int** | Time limit for transaction in seconds. | [optional] [default to 30] diff --git a/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/__init__.py b/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/__init__.py index cd0ce27e..cd19aaec 100644 --- a/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/__init__.py +++ b/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/__init__.py @@ -69,6 +69,7 @@ from thousandeyes_sdk.tests.models.api_test import ApiTest from thousandeyes_sdk.tests.models.api_test_request import ApiTestRequest from thousandeyes_sdk.tests.models.api_test_response import ApiTestResponse from thousandeyes_sdk.tests.models.api_tests import ApiTests +from thousandeyes_sdk.tests.models.base_bgp_request import BaseBgpRequest from thousandeyes_sdk.tests.models.base_bgp_test import BaseBgpTest from thousandeyes_sdk.tests.models.base_request import BaseRequest from thousandeyes_sdk.tests.models.base_test import BaseTest @@ -87,11 +88,11 @@ from thousandeyes_sdk.tests.models.dns_sec_test_response import DnsSecTestRespon from thousandeyes_sdk.tests.models.dns_sec_tests import DnsSecTests from thousandeyes_sdk.tests.models.dns_server_instant_test import DnsServerInstantTest from thousandeyes_sdk.tests.models.dns_server_properties import DnsServerProperties +from thousandeyes_sdk.tests.models.dns_server_request_properties import DnsServerRequestProperties from thousandeyes_sdk.tests.models.dns_server_test import DnsServerTest from thousandeyes_sdk.tests.models.dns_server_test_request import DnsServerTestRequest from thousandeyes_sdk.tests.models.dns_server_test_response import DnsServerTestResponse from thousandeyes_sdk.tests.models.dns_server_tests import DnsServerTests -from thousandeyes_sdk.tests.models.dns_servers_request import DnsServersRequest from thousandeyes_sdk.tests.models.dns_trace_instant_test import DnsTraceInstantTest from thousandeyes_sdk.tests.models.dns_trace_properties import DnsTraceProperties from thousandeyes_sdk.tests.models.dns_trace_test import DnsTraceTest @@ -122,20 +123,23 @@ from thousandeyes_sdk.tests.models.link import Link from thousandeyes_sdk.tests.models.monitor import Monitor from thousandeyes_sdk.tests.models.monitor_type import MonitorType from thousandeyes_sdk.tests.models.monitors_request import MonitorsRequest +from thousandeyes_sdk.tests.models.network_provider_info import NetworkProviderInfo +from thousandeyes_sdk.tests.models.network_provider_type import NetworkProviderType from thousandeyes_sdk.tests.models.o_auth import OAuth from thousandeyes_sdk.tests.models.o_auth_auth_type import OAuthAuthType -from thousandeyes_sdk.tests.models.o_auth_request_method import OAuthRequestMethod from thousandeyes_sdk.tests.models.page_load_instant_test import PageLoadInstantTest from thousandeyes_sdk.tests.models.page_load_properties import PageLoadProperties from thousandeyes_sdk.tests.models.page_load_test import PageLoadTest from thousandeyes_sdk.tests.models.page_load_test_request import PageLoadTestRequest from thousandeyes_sdk.tests.models.page_load_test_response import PageLoadTestResponse from thousandeyes_sdk.tests.models.page_load_tests import PageLoadTests +from thousandeyes_sdk.tests.models.request_method import RequestMethod from thousandeyes_sdk.tests.models.self_links import SelfLinks from thousandeyes_sdk.tests.models.sensitivity_level import SensitivityLevel from thousandeyes_sdk.tests.models.severity import Severity from thousandeyes_sdk.tests.models.shared_with_account import SharedWithAccount from thousandeyes_sdk.tests.models.simple_agent import SimpleAgent +from thousandeyes_sdk.tests.models.simple_agent_all_of_network_provider_info import SimpleAgentAllOfNetworkProviderInfo from thousandeyes_sdk.tests.models.simple_test import SimpleTest from thousandeyes_sdk.tests.models.sip_server_instant_test import SipServerInstantTest from thousandeyes_sdk.tests.models.sip_server_properties import SipServerProperties @@ -166,7 +170,10 @@ from thousandeyes_sdk.tests.models.test_self_link import TestSelfLink from thousandeyes_sdk.tests.models.test_sip_credentials import TestSipCredentials from thousandeyes_sdk.tests.models.test_ssl_version_id import TestSslVersionId from thousandeyes_sdk.tests.models.test_sub_interval import TestSubInterval +from thousandeyes_sdk.tests.models.test_tag import TestTag from thousandeyes_sdk.tests.models.test_type import TestType +from thousandeyes_sdk.tests.models.test_vault_credential import TestVaultCredential +from thousandeyes_sdk.tests.models.test_vault_credential_target import TestVaultCredentialTarget from thousandeyes_sdk.tests.models.test_version_history import TestVersionHistory from thousandeyes_sdk.tests.models.test_version_history_response import TestVersionHistoryResponse from thousandeyes_sdk.tests.models.tests import Tests @@ -176,6 +183,7 @@ from thousandeyes_sdk.tests.models.unexpanded_agent_to_server_test import Unexpa from thousandeyes_sdk.tests.models.unexpanded_api_test import UnexpandedApiTest from thousandeyes_sdk.tests.models.unexpanded_bgp_test import UnexpandedBgpTest from thousandeyes_sdk.tests.models.unexpanded_dns_sec_test import UnexpandedDnsSecTest +from thousandeyes_sdk.tests.models.unexpanded_dns_server_request_test import UnexpandedDnsServerRequestTest from thousandeyes_sdk.tests.models.unexpanded_dns_server_test import UnexpandedDnsServerTest from thousandeyes_sdk.tests.models.unexpanded_dns_trace_test import UnexpandedDnsTraceTest from thousandeyes_sdk.tests.models.unexpanded_ftp_server_test import UnexpandedFtpServerTest @@ -188,7 +196,6 @@ from thousandeyes_sdk.tests.models.unexpanded_voice_test import UnexpandedVoiceT from thousandeyes_sdk.tests.models.unexpanded_web_transaction_test import UnexpandedWebTransactionTest from thousandeyes_sdk.tests.models.update_agent_to_server_test_request import UpdateAgentToServerTestRequest from thousandeyes_sdk.tests.models.update_bgp_test_request import UpdateBgpTestRequest -from thousandeyes_sdk.tests.models.update_sip_server_test import UpdateSipServerTest from thousandeyes_sdk.tests.models.validation_error import ValidationError from thousandeyes_sdk.tests.models.validation_error_item import ValidationErrorItem from thousandeyes_sdk.tests.models.voice_instant_test import VoiceInstantTest diff --git a/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/__init__.py b/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/__init__.py index 758e6890..c0a693ed 100644 --- a/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/__init__.py +++ b/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/__init__.py @@ -50,6 +50,7 @@ from thousandeyes_sdk.tests.models.api_test import ApiTest from thousandeyes_sdk.tests.models.api_test_request import ApiTestRequest from thousandeyes_sdk.tests.models.api_test_response import ApiTestResponse from thousandeyes_sdk.tests.models.api_tests import ApiTests +from thousandeyes_sdk.tests.models.base_bgp_request import BaseBgpRequest from thousandeyes_sdk.tests.models.base_bgp_test import BaseBgpTest from thousandeyes_sdk.tests.models.base_request import BaseRequest from thousandeyes_sdk.tests.models.base_test import BaseTest @@ -68,11 +69,11 @@ from thousandeyes_sdk.tests.models.dns_sec_test_response import DnsSecTestRespon from thousandeyes_sdk.tests.models.dns_sec_tests import DnsSecTests from thousandeyes_sdk.tests.models.dns_server_instant_test import DnsServerInstantTest from thousandeyes_sdk.tests.models.dns_server_properties import DnsServerProperties +from thousandeyes_sdk.tests.models.dns_server_request_properties import DnsServerRequestProperties from thousandeyes_sdk.tests.models.dns_server_test import DnsServerTest from thousandeyes_sdk.tests.models.dns_server_test_request import DnsServerTestRequest from thousandeyes_sdk.tests.models.dns_server_test_response import DnsServerTestResponse from thousandeyes_sdk.tests.models.dns_server_tests import DnsServerTests -from thousandeyes_sdk.tests.models.dns_servers_request import DnsServersRequest from thousandeyes_sdk.tests.models.dns_trace_instant_test import DnsTraceInstantTest from thousandeyes_sdk.tests.models.dns_trace_properties import DnsTraceProperties from thousandeyes_sdk.tests.models.dns_trace_test import DnsTraceTest @@ -103,20 +104,23 @@ from thousandeyes_sdk.tests.models.link import Link from thousandeyes_sdk.tests.models.monitor import Monitor from thousandeyes_sdk.tests.models.monitor_type import MonitorType from thousandeyes_sdk.tests.models.monitors_request import MonitorsRequest +from thousandeyes_sdk.tests.models.network_provider_info import NetworkProviderInfo +from thousandeyes_sdk.tests.models.network_provider_type import NetworkProviderType from thousandeyes_sdk.tests.models.o_auth import OAuth from thousandeyes_sdk.tests.models.o_auth_auth_type import OAuthAuthType -from thousandeyes_sdk.tests.models.o_auth_request_method import OAuthRequestMethod from thousandeyes_sdk.tests.models.page_load_instant_test import PageLoadInstantTest from thousandeyes_sdk.tests.models.page_load_properties import PageLoadProperties from thousandeyes_sdk.tests.models.page_load_test import PageLoadTest from thousandeyes_sdk.tests.models.page_load_test_request import PageLoadTestRequest from thousandeyes_sdk.tests.models.page_load_test_response import PageLoadTestResponse from thousandeyes_sdk.tests.models.page_load_tests import PageLoadTests +from thousandeyes_sdk.tests.models.request_method import RequestMethod from thousandeyes_sdk.tests.models.self_links import SelfLinks from thousandeyes_sdk.tests.models.sensitivity_level import SensitivityLevel from thousandeyes_sdk.tests.models.severity import Severity from thousandeyes_sdk.tests.models.shared_with_account import SharedWithAccount from thousandeyes_sdk.tests.models.simple_agent import SimpleAgent +from thousandeyes_sdk.tests.models.simple_agent_all_of_network_provider_info import SimpleAgentAllOfNetworkProviderInfo from thousandeyes_sdk.tests.models.simple_test import SimpleTest from thousandeyes_sdk.tests.models.sip_server_instant_test import SipServerInstantTest from thousandeyes_sdk.tests.models.sip_server_properties import SipServerProperties @@ -147,7 +151,10 @@ from thousandeyes_sdk.tests.models.test_self_link import TestSelfLink from thousandeyes_sdk.tests.models.test_sip_credentials import TestSipCredentials from thousandeyes_sdk.tests.models.test_ssl_version_id import TestSslVersionId from thousandeyes_sdk.tests.models.test_sub_interval import TestSubInterval +from thousandeyes_sdk.tests.models.test_tag import TestTag from thousandeyes_sdk.tests.models.test_type import TestType +from thousandeyes_sdk.tests.models.test_vault_credential import TestVaultCredential +from thousandeyes_sdk.tests.models.test_vault_credential_target import TestVaultCredentialTarget from thousandeyes_sdk.tests.models.test_version_history import TestVersionHistory from thousandeyes_sdk.tests.models.test_version_history_response import TestVersionHistoryResponse from thousandeyes_sdk.tests.models.tests import Tests @@ -157,6 +164,7 @@ from thousandeyes_sdk.tests.models.unexpanded_agent_to_server_test import Unexpa from thousandeyes_sdk.tests.models.unexpanded_api_test import UnexpandedApiTest from thousandeyes_sdk.tests.models.unexpanded_bgp_test import UnexpandedBgpTest from thousandeyes_sdk.tests.models.unexpanded_dns_sec_test import UnexpandedDnsSecTest +from thousandeyes_sdk.tests.models.unexpanded_dns_server_request_test import UnexpandedDnsServerRequestTest from thousandeyes_sdk.tests.models.unexpanded_dns_server_test import UnexpandedDnsServerTest from thousandeyes_sdk.tests.models.unexpanded_dns_trace_test import UnexpandedDnsTraceTest from thousandeyes_sdk.tests.models.unexpanded_ftp_server_test import UnexpandedFtpServerTest @@ -169,7 +177,6 @@ from thousandeyes_sdk.tests.models.unexpanded_voice_test import UnexpandedVoiceT from thousandeyes_sdk.tests.models.unexpanded_web_transaction_test import UnexpandedWebTransactionTest from thousandeyes_sdk.tests.models.update_agent_to_server_test_request import UpdateAgentToServerTestRequest from thousandeyes_sdk.tests.models.update_bgp_test_request import UpdateBgpTestRequest -from thousandeyes_sdk.tests.models.update_sip_server_test import UpdateSipServerTest from thousandeyes_sdk.tests.models.validation_error import ValidationError from thousandeyes_sdk.tests.models.validation_error_item import ValidationErrorItem from thousandeyes_sdk.tests.models.voice_instant_test import VoiceInstantTest diff --git a/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/agent_response.py b/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/agent_response.py index 2be9cc12..68905047 100644 --- a/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/agent_response.py +++ b/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/agent_response.py @@ -20,6 +20,7 @@ from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr from typing import Any, ClassVar, Dict, List, Optional from thousandeyes_sdk.tests.models.cloud_enterprise_agent_type import CloudEnterpriseAgentType from thousandeyes_sdk.tests.models.coordinates import Coordinates +from thousandeyes_sdk.tests.models.simple_agent_all_of_network_provider_info import SimpleAgentAllOfNetworkProviderInfo from typing import Optional, Set from typing_extensions import Self @@ -35,11 +36,12 @@ class AgentResponse(BaseModel): location: Optional[StrictStr] = Field(default=None, description="Location of the agent.") country_id: Optional[StrictStr] = Field(default=None, description="2-digit ISO country code", alias="countryId") coordinates: Optional[Coordinates] = None + network_provider_info: Optional[SimpleAgentAllOfNetworkProviderInfo] = Field(default=None, alias="networkProviderInfo") enabled: Optional[StrictBool] = Field(default=None, description="Flag indicating if the agent is enabled.") - prefix: Optional[StrictStr] = Field(default=None, description="Prefix containing agents public IP address.") verify_ssl_certificates: Optional[StrictBool] = Field(default=None, description="Flag indicating if has normal SSL operations or if instead it's set to ignore SSL errors on browserbot-based tests.", alias="verifySslCertificates") + prefix: Optional[StrictStr] = Field(default=None, description="Prefix containing agents public IP address.") agent_type: CloudEnterpriseAgentType = Field(alias="agentType") - __properties: ClassVar[List[str]] = ["ipAddresses", "publicIpAddresses", "network", "agentId", "agentName", "location", "countryId", "coordinates", "enabled", "prefix", "verifySslCertificates", "agentType"] + __properties: ClassVar[List[str]] = ["ipAddresses", "publicIpAddresses", "network", "agentId", "agentName", "location", "countryId", "coordinates", "networkProviderInfo", "enabled", "verifySslCertificates", "prefix", "agentType"] model_config = ConfigDict( populate_by_name=True, @@ -88,8 +90,8 @@ class AgentResponse(BaseModel): "agent_id", "location", "country_id", - "prefix", "verify_ssl_certificates", + "prefix", ]) _dict = self.model_dump( @@ -100,6 +102,9 @@ class AgentResponse(BaseModel): # override the default output from pydantic by calling `to_dict()` of coordinates if self.coordinates: _dict['coordinates'] = self.coordinates.to_dict() + # override the default output from pydantic by calling `to_dict()` of network_provider_info + if self.network_provider_info: + _dict['networkProviderInfo'] = self.network_provider_info.to_dict() return _dict @classmethod @@ -120,9 +125,10 @@ class AgentResponse(BaseModel): "location": obj.get("location"), "countryId": obj.get("countryId"), "coordinates": Coordinates.from_dict(obj["coordinates"]) if obj.get("coordinates") is not None else None, + "networkProviderInfo": SimpleAgentAllOfNetworkProviderInfo.from_dict(obj["networkProviderInfo"]) if obj.get("networkProviderInfo") is not None else None, "enabled": obj.get("enabled"), - "prefix": obj.get("prefix"), "verifySslCertificates": obj.get("verifySslCertificates"), + "prefix": obj.get("prefix"), "agentType": obj.get("agentType") }) return _obj diff --git a/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/agent_to_agent_instant_test.py b/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/agent_to_agent_instant_test.py index 7b7ef65e..4afcd9f9 100644 --- a/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/agent_to_agent_instant_test.py +++ b/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/agent_to_agent_instant_test.py @@ -27,6 +27,7 @@ from thousandeyes_sdk.tests.models.test_dscp_id import TestDscpId from thousandeyes_sdk.tests.models.test_label import TestLabel from thousandeyes_sdk.tests.models.test_links import TestLinks from thousandeyes_sdk.tests.models.test_path_trace_mode import TestPathTraceMode +from thousandeyes_sdk.tests.models.test_tag import TestTag from typing import Optional, Set from typing_extensions import Self @@ -46,6 +47,7 @@ class AgentToAgentInstantTest(BaseModel): type: Optional[StrictStr] = None links: Optional[TestLinks] = Field(default=None, alias="_links") labels: Optional[List[TestLabel]] = Field(default=None, description="Labels to which the test is assigned. This field is not returned for Instant Tests.") + tags: Optional[List[TestTag]] = Field(default=None, description="Tags assigned to the test. Returned only when `expand=tag` is specified. This field is not returned for Instant Tests. For more information, see `/tags`.") shared_with_accounts: Optional[List[SharedWithAccount]] = Field(default=None, alias="sharedWithAccounts") direction: Optional[TestDirection] = None dscp: Optional[StrictStr] = Field(default=None, description="DSCP label.") @@ -61,7 +63,7 @@ class AgentToAgentInstantTest(BaseModel): throughput_duration: Optional[Annotated[int, Field(le=30000, strict=True, ge=5000)]] = Field(default=10000, description="The throughput duration.", alias="throughputDuration") throughput_rate: Optional[Annotated[int, Field(le=1000, strict=True, ge=8)]] = Field(default=None, description="The throughput rate, only applicable for UDP protocol.", alias="throughputRate") fixed_packet_rate: Optional[Annotated[int, Field(le=100, strict=True, ge=0)]] = Field(default=None, description="Sets packets rate sent to measure the network in packets per second.", alias="fixedPacketRate") - __properties: ClassVar[List[str]] = ["createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "sharedWithAccounts", "direction", "dscp", "dscpId", "mss", "numPathTraces", "pathTraceMode", "port", "protocol", "randomizedStartTime", "targetAgentId", "throughputMeasurements", "throughputDuration", "throughputRate", "fixedPacketRate"] + __properties: ClassVar[List[str]] = ["createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "tags", "sharedWithAccounts", "direction", "dscp", "dscpId", "mss", "numPathTraces", "pathTraceMode", "port", "protocol", "randomizedStartTime", "targetAgentId", "throughputMeasurements", "throughputDuration", "throughputRate", "fixedPacketRate"] model_config = ConfigDict( populate_by_name=True, @@ -105,6 +107,7 @@ class AgentToAgentInstantTest(BaseModel): * 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([ "created_by", @@ -116,6 +119,7 @@ class AgentToAgentInstantTest(BaseModel): "test_id", "type", "labels", + "tags", "shared_with_accounts", "dscp", ]) @@ -135,6 +139,13 @@ class AgentToAgentInstantTest(BaseModel): if _item: _items.append(_item.to_dict()) _dict['labels'] = _items + # override the default output from pydantic by calling `to_dict()` of each item in tags (list) + _items = [] + if self.tags: + for _item in self.tags: + if _item: + _items.append(_item.to_dict()) + _dict['tags'] = _items # override the default output from pydantic by calling `to_dict()` of each item in shared_with_accounts (list) _items = [] if self.shared_with_accounts: @@ -166,6 +177,7 @@ class AgentToAgentInstantTest(BaseModel): "type": obj.get("type"), "_links": TestLinks.from_dict(obj["_links"]) if obj.get("_links") is not None else None, "labels": [TestLabel.from_dict(_item) for _item in obj["labels"]] if obj.get("labels") is not None else None, + "tags": [TestTag.from_dict(_item) for _item in obj["tags"]] if obj.get("tags") is not None else None, "sharedWithAccounts": [SharedWithAccount.from_dict(_item) for _item in obj["sharedWithAccounts"]] if obj.get("sharedWithAccounts") is not None else None, "direction": obj.get("direction"), "dscp": obj.get("dscp"), diff --git a/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/agent_to_agent_test.py b/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/agent_to_agent_test.py index 7cd3be39..a2f704b1 100644 --- a/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/agent_to_agent_test.py +++ b/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/agent_to_agent_test.py @@ -30,6 +30,7 @@ from thousandeyes_sdk.tests.models.test_interval import TestInterval from thousandeyes_sdk.tests.models.test_label import TestLabel from thousandeyes_sdk.tests.models.test_links import TestLinks from thousandeyes_sdk.tests.models.test_path_trace_mode import TestPathTraceMode +from thousandeyes_sdk.tests.models.test_tag import TestTag from typing import Optional, Set from typing_extensions import Self @@ -53,6 +54,7 @@ class AgentToAgentTest(BaseModel): type: Optional[StrictStr] = None links: Optional[TestLinks] = Field(default=None, alias="_links") labels: Optional[List[TestLabel]] = Field(default=None, description="Labels to which the test is assigned. This field is not returned for Instant Tests.") + tags: Optional[List[TestTag]] = Field(default=None, description="Tags assigned to the test. Returned only when `expand=tag` is specified. This field is not returned for Instant Tests. For more information, see `/tags`.") shared_with_accounts: Optional[List[SharedWithAccount]] = Field(default=None, alias="sharedWithAccounts") direction: Optional[TestDirection] = None dscp: Optional[StrictStr] = Field(default=None, description="DSCP label.") @@ -71,7 +73,7 @@ class AgentToAgentTest(BaseModel): bgp_measurements: Optional[StrictBool] = Field(default=True, description="Set to `true` to enable bgp measurements.", alias="bgpMeasurements") use_public_bgp: Optional[StrictBool] = Field(default=True, description="Indicate if all available public BGP monitors should be used, when ommited defaults to `bgpMeasurements` value.", alias="usePublicBgp") monitors: Optional[List[Monitor]] = Field(default=None, description="Contains list of enabled BGP monitors.") - __properties: ClassVar[List[str]] = ["interval", "alertsEnabled", "enabled", "alertRules", "createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "sharedWithAccounts", "direction", "dscp", "dscpId", "mss", "numPathTraces", "pathTraceMode", "port", "protocol", "randomizedStartTime", "targetAgentId", "throughputMeasurements", "throughputDuration", "throughputRate", "fixedPacketRate", "bgpMeasurements", "usePublicBgp", "monitors"] + __properties: ClassVar[List[str]] = ["interval", "alertsEnabled", "enabled", "alertRules", "createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "tags", "sharedWithAccounts", "direction", "dscp", "dscpId", "mss", "numPathTraces", "pathTraceMode", "port", "protocol", "randomizedStartTime", "targetAgentId", "throughputMeasurements", "throughputDuration", "throughputRate", "fixedPacketRate", "bgpMeasurements", "usePublicBgp", "monitors"] model_config = ConfigDict( populate_by_name=True, @@ -116,6 +118,7 @@ class AgentToAgentTest(BaseModel): * 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([ "created_by", @@ -127,6 +130,7 @@ class AgentToAgentTest(BaseModel): "test_id", "type", "labels", + "tags", "shared_with_accounts", "dscp", "monitors", @@ -154,6 +158,13 @@ class AgentToAgentTest(BaseModel): if _item: _items.append(_item.to_dict()) _dict['labels'] = _items + # override the default output from pydantic by calling `to_dict()` of each item in tags (list) + _items = [] + if self.tags: + for _item in self.tags: + if _item: + _items.append(_item.to_dict()) + _dict['tags'] = _items # override the default output from pydantic by calling `to_dict()` of each item in shared_with_accounts (list) _items = [] if self.shared_with_accounts: @@ -196,6 +207,7 @@ class AgentToAgentTest(BaseModel): "type": obj.get("type"), "_links": TestLinks.from_dict(obj["_links"]) if obj.get("_links") is not None else None, "labels": [TestLabel.from_dict(_item) for _item in obj["labels"]] if obj.get("labels") is not None else None, + "tags": [TestTag.from_dict(_item) for _item in obj["tags"]] if obj.get("tags") is not None else None, "sharedWithAccounts": [SharedWithAccount.from_dict(_item) for _item in obj["sharedWithAccounts"]] if obj.get("sharedWithAccounts") is not None else None, "direction": obj.get("direction"), "dscp": obj.get("dscp"), diff --git a/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/agent_to_agent_test_request.py b/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/agent_to_agent_test_request.py index 8fd01524..3b2eba1c 100644 --- a/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/agent_to_agent_test_request.py +++ b/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/agent_to_agent_test_request.py @@ -37,7 +37,6 @@ class AgentToAgentTestRequest(BaseModel): interval: TestInterval alerts_enabled: Optional[StrictBool] = Field(default=None, description="Indicates if alerts are enabled.", alias="alertsEnabled") enabled: Optional[StrictBool] = Field(default=True, description="Test is enabled.") - alert_rules: Optional[List[StrictStr]] = Field(default=None, description="List of alert rules IDs to apply to the test (get `ruleId` from `/alerts/rules` endpoint. If `alertsEnabled` is set to `true` and `alertRules` is not included on test creation or update, applicable user default alert rules will be used)", alias="alertRules") created_by: Optional[StrictStr] = Field(default=None, description="User that created the test.", alias="createdBy") created_date: Optional[datetime] = Field(default=None, description="UTC created date (ISO date-time format).", alias="createdDate") description: Optional[StrictStr] = Field(default=None, description="A description of the test.") @@ -49,8 +48,6 @@ class AgentToAgentTestRequest(BaseModel): test_name: Optional[StrictStr] = Field(default=None, description="The name of the test. Test name must be unique.", alias="testName") type: Optional[StrictStr] = None links: Optional[TestLinks] = Field(default=None, alias="_links") - labels: Optional[List[StrictStr]] = Field(default=None, description="Contains list of test label IDs (get `labelId` from `/labels` endpoint)") - shared_with_accounts: Optional[List[StrictStr]] = Field(default=None, description="Contains list of account group IDs. Test is shared with the listed account groups (get `aid` from `/account-groups` endpoint)", alias="sharedWithAccounts") direction: Optional[TestDirection] = None dscp: Optional[StrictStr] = Field(default=None, description="DSCP label.") dscp_id: Optional[TestDscpId] = Field(default=None, alias="dscpId") @@ -67,10 +64,13 @@ class AgentToAgentTestRequest(BaseModel): fixed_packet_rate: Optional[Annotated[int, Field(le=100, strict=True, ge=0)]] = Field(default=None, description="Sets packets rate sent to measure the network in packets per second.", alias="fixedPacketRate") bgp_measurements: Optional[StrictBool] = Field(default=True, description="Set to `true` to enable bgp measurements.", alias="bgpMeasurements") use_public_bgp: Optional[StrictBool] = Field(default=True, description="Indicate if all available public BGP monitors should be used, when ommited defaults to `bgpMeasurements` value.", alias="usePublicBgp") - monitors: Optional[List[StrictStr]] = Field(default=None, description="Contains list of BGP monitor IDs (get `monitorId` from `/monitors` endpoint)") + labels: Optional[List[StrictStr]] = Field(default=None, description="Contains list of test label IDs (get `labelId` from `/labels` endpoint)") tags: Optional[List[StrictStr]] = Field(default=None, description="Contains list of test tag IDs (get `id` from `/tags` endpoint).") + shared_with_accounts: Optional[List[StrictStr]] = Field(default=None, description="Contains list of account group IDs. Test is shared with the listed account groups (get `aid` from `/account-groups` endpoint)", alias="sharedWithAccounts") + alert_rules: Optional[List[StrictStr]] = Field(default=None, description="List of alert rules IDs to apply to the test (get `ruleId` from `/alerts/rules` endpoint. If `alertsEnabled` is set to `true` and `alertRules` is not included on test creation or update, applicable user default alert rules will be used)", alias="alertRules") agents: List[TestAgentRequest] = Field(description="Contains list of Agent IDs (get `agentId` from `/agents` endpoint).") - __properties: ClassVar[List[str]] = ["interval", "alertsEnabled", "enabled", "alertRules", "createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "sharedWithAccounts", "direction", "dscp", "dscpId", "mss", "numPathTraces", "pathTraceMode", "port", "protocol", "randomizedStartTime", "targetAgentId", "throughputMeasurements", "throughputDuration", "throughputRate", "fixedPacketRate", "bgpMeasurements", "usePublicBgp", "monitors", "tags", "agents"] + monitors: Optional[List[StrictStr]] = Field(default=None, description="Contains list of BGP monitor IDs (get `monitorId` from `/monitors` endpoint)") + __properties: ClassVar[List[str]] = ["interval", "alertsEnabled", "enabled", "createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "direction", "dscp", "dscpId", "mss", "numPathTraces", "pathTraceMode", "port", "protocol", "randomizedStartTime", "targetAgentId", "throughputMeasurements", "throughputDuration", "throughputRate", "fixedPacketRate", "bgpMeasurements", "usePublicBgp", "labels", "tags", "sharedWithAccounts", "alertRules", "agents", "monitors"] model_config = ConfigDict( populate_by_name=True, @@ -155,7 +155,6 @@ class AgentToAgentTestRequest(BaseModel): "interval": obj.get("interval"), "alertsEnabled": obj.get("alertsEnabled"), "enabled": obj.get("enabled") if obj.get("enabled") is not None else True, - "alertRules": obj.get("alertRules"), "createdBy": obj.get("createdBy"), "createdDate": obj.get("createdDate"), "description": obj.get("description"), @@ -167,8 +166,6 @@ class AgentToAgentTestRequest(BaseModel): "testName": obj.get("testName"), "type": obj.get("type"), "_links": TestLinks.from_dict(obj["_links"]) if obj.get("_links") is not None else None, - "labels": obj.get("labels"), - "sharedWithAccounts": obj.get("sharedWithAccounts"), "direction": obj.get("direction"), "dscp": obj.get("dscp"), "dscpId": obj.get("dscpId"), @@ -185,9 +182,12 @@ class AgentToAgentTestRequest(BaseModel): "fixedPacketRate": obj.get("fixedPacketRate"), "bgpMeasurements": obj.get("bgpMeasurements") if obj.get("bgpMeasurements") is not None else True, "usePublicBgp": obj.get("usePublicBgp") if obj.get("usePublicBgp") is not None else True, - "monitors": obj.get("monitors"), + "labels": obj.get("labels"), "tags": obj.get("tags"), - "agents": [TestAgentRequest.from_dict(_item) for _item in obj["agents"]] if obj.get("agents") is not None else None + "sharedWithAccounts": obj.get("sharedWithAccounts"), + "alertRules": obj.get("alertRules"), + "agents": [TestAgentRequest.from_dict(_item) for _item in obj["agents"]] if obj.get("agents") is not None else None, + "monitors": obj.get("monitors") }) return _obj diff --git a/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/agent_to_agent_test_response.py b/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/agent_to_agent_test_response.py index 07f9b403..18cc38d2 100644 --- a/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/agent_to_agent_test_response.py +++ b/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/agent_to_agent_test_response.py @@ -31,6 +31,7 @@ from thousandeyes_sdk.tests.models.test_interval import TestInterval from thousandeyes_sdk.tests.models.test_label import TestLabel from thousandeyes_sdk.tests.models.test_links import TestLinks from thousandeyes_sdk.tests.models.test_path_trace_mode import TestPathTraceMode +from thousandeyes_sdk.tests.models.test_tag import TestTag from typing import Optional, Set from typing_extensions import Self @@ -54,6 +55,7 @@ class AgentToAgentTestResponse(BaseModel): type: Optional[StrictStr] = None links: Optional[TestLinks] = Field(default=None, alias="_links") labels: Optional[List[TestLabel]] = Field(default=None, description="Labels to which the test is assigned. This field is not returned for Instant Tests.") + tags: Optional[List[TestTag]] = Field(default=None, description="Tags assigned to the test. Returned only when `expand=tag` is specified. This field is not returned for Instant Tests. For more information, see `/tags`.") shared_with_accounts: Optional[List[SharedWithAccount]] = Field(default=None, alias="sharedWithAccounts") direction: Optional[TestDirection] = None dscp: Optional[StrictStr] = Field(default=None, description="DSCP label.") @@ -73,7 +75,7 @@ class AgentToAgentTestResponse(BaseModel): use_public_bgp: Optional[StrictBool] = Field(default=True, description="Indicate if all available public BGP monitors should be used, when ommited defaults to `bgpMeasurements` value.", alias="usePublicBgp") monitors: Optional[List[Monitor]] = Field(default=None, description="Contains list of enabled BGP monitors.") agents: Optional[List[AgentResponse]] = Field(default=None, description="Contains list of agents.") - __properties: ClassVar[List[str]] = ["interval", "alertsEnabled", "enabled", "alertRules", "createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "sharedWithAccounts", "direction", "dscp", "dscpId", "mss", "numPathTraces", "pathTraceMode", "port", "protocol", "randomizedStartTime", "targetAgentId", "throughputMeasurements", "throughputDuration", "throughputRate", "fixedPacketRate", "bgpMeasurements", "usePublicBgp", "monitors", "agents"] + __properties: ClassVar[List[str]] = ["interval", "alertsEnabled", "enabled", "alertRules", "createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "tags", "sharedWithAccounts", "direction", "dscp", "dscpId", "mss", "numPathTraces", "pathTraceMode", "port", "protocol", "randomizedStartTime", "targetAgentId", "throughputMeasurements", "throughputDuration", "throughputRate", "fixedPacketRate", "bgpMeasurements", "usePublicBgp", "monitors", "agents"] model_config = ConfigDict( populate_by_name=True, @@ -118,6 +120,7 @@ class AgentToAgentTestResponse(BaseModel): * 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([ "created_by", @@ -129,6 +132,7 @@ class AgentToAgentTestResponse(BaseModel): "test_id", "type", "labels", + "tags", "shared_with_accounts", "dscp", "monitors", @@ -156,6 +160,13 @@ class AgentToAgentTestResponse(BaseModel): if _item: _items.append(_item.to_dict()) _dict['labels'] = _items + # override the default output from pydantic by calling `to_dict()` of each item in tags (list) + _items = [] + if self.tags: + for _item in self.tags: + if _item: + _items.append(_item.to_dict()) + _dict['tags'] = _items # override the default output from pydantic by calling `to_dict()` of each item in shared_with_accounts (list) _items = [] if self.shared_with_accounts: @@ -205,6 +216,7 @@ class AgentToAgentTestResponse(BaseModel): "type": obj.get("type"), "_links": TestLinks.from_dict(obj["_links"]) if obj.get("_links") is not None else None, "labels": [TestLabel.from_dict(_item) for _item in obj["labels"]] if obj.get("labels") is not None else None, + "tags": [TestTag.from_dict(_item) for _item in obj["tags"]] if obj.get("tags") is not None else None, "sharedWithAccounts": [SharedWithAccount.from_dict(_item) for _item in obj["sharedWithAccounts"]] if obj.get("sharedWithAccounts") is not None else None, "direction": obj.get("direction"), "dscp": obj.get("dscp"), diff --git a/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/agent_to_server_instant_test.py b/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/agent_to_server_instant_test.py index 487e74c1..afe380d4 100644 --- a/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/agent_to_server_instant_test.py +++ b/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/agent_to_server_instant_test.py @@ -28,6 +28,7 @@ from thousandeyes_sdk.tests.models.test_links import TestLinks from thousandeyes_sdk.tests.models.test_path_trace_mode import TestPathTraceMode from thousandeyes_sdk.tests.models.test_probe_mode import TestProbeMode from thousandeyes_sdk.tests.models.test_protocol import TestProtocol +from thousandeyes_sdk.tests.models.test_tag import TestTag from typing import Optional, Set from typing_extensions import Self @@ -47,6 +48,7 @@ class AgentToServerInstantTest(BaseModel): type: Optional[StrictStr] = None links: Optional[TestLinks] = Field(default=None, alias="_links") labels: Optional[List[TestLabel]] = Field(default=None, description="Labels to which the test is assigned. This field is not returned for Instant Tests.") + tags: Optional[List[TestTag]] = Field(default=None, description="Tags assigned to the test. Returned only when `expand=tag` is specified. This field is not returned for Instant Tests. For more information, see `/tags`.") shared_with_accounts: Optional[List[SharedWithAccount]] = Field(default=None, alias="sharedWithAccounts") bandwidth_measurements: Optional[StrictBool] = Field(default=None, description="Set to `true` to enable bandwidth measurements, only applies to Enterprise agents assigned to the test.", alias="bandwidthMeasurements") continuous_mode: Optional[StrictBool] = Field(default=None, description="To enable continuous monitoring, set this parameter to `true` to. When continuous monitoring is enabled, the following actions occur: * `fixedPacketRate` is enforced * `bandwidthMeasurements` are disabled * If the `protocol` is set to `tcp`, `probeMode` is set to `syn`. ", alias="continuousMode") @@ -63,7 +65,7 @@ class AgentToServerInstantTest(BaseModel): ipv6_policy: Optional[TestIpv6Policy] = Field(default=None, alias="ipv6Policy") ping_payload_size: Optional[Annotated[int, Field(le=1400, strict=True, ge=0)]] = Field(default=None, description="Payload size (not total packet size) for the end-to-end metric's probes, ping payload size allows values from 0 to 1400 bytes. When set to null, payload sizes are 0 bytes for ICMP-based tests and 1 byte for TCP-based tests.", alias="pingPayloadSize") network_measurements: Optional[StrictBool] = Field(default=False, description="View packet loss in 1-second intervals. This is only available for 1-minute interval tests. Set to `true` to enable network measurements.", alias="networkMeasurements") - __properties: ClassVar[List[str]] = ["createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "sharedWithAccounts", "bandwidthMeasurements", "continuousMode", "fixedPacketRate", "mtuMeasurements", "numPathTraces", "pathTraceMode", "probeMode", "protocol", "randomizedStartTime", "server", "dscp", "dscpId", "ipv6Policy", "pingPayloadSize", "networkMeasurements"] + __properties: ClassVar[List[str]] = ["createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "tags", "sharedWithAccounts", "bandwidthMeasurements", "continuousMode", "fixedPacketRate", "mtuMeasurements", "numPathTraces", "pathTraceMode", "probeMode", "protocol", "randomizedStartTime", "server", "dscp", "dscpId", "ipv6Policy", "pingPayloadSize", "networkMeasurements"] model_config = ConfigDict( populate_by_name=True, @@ -107,6 +109,7 @@ class AgentToServerInstantTest(BaseModel): * 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([ "created_by", @@ -118,6 +121,7 @@ class AgentToServerInstantTest(BaseModel): "test_id", "type", "labels", + "tags", "shared_with_accounts", "dscp", ]) @@ -137,6 +141,13 @@ class AgentToServerInstantTest(BaseModel): if _item: _items.append(_item.to_dict()) _dict['labels'] = _items + # override the default output from pydantic by calling `to_dict()` of each item in tags (list) + _items = [] + if self.tags: + for _item in self.tags: + if _item: + _items.append(_item.to_dict()) + _dict['tags'] = _items # override the default output from pydantic by calling `to_dict()` of each item in shared_with_accounts (list) _items = [] if self.shared_with_accounts: @@ -168,6 +179,7 @@ class AgentToServerInstantTest(BaseModel): "type": obj.get("type"), "_links": TestLinks.from_dict(obj["_links"]) if obj.get("_links") is not None else None, "labels": [TestLabel.from_dict(_item) for _item in obj["labels"]] if obj.get("labels") is not None else None, + "tags": [TestTag.from_dict(_item) for _item in obj["tags"]] if obj.get("tags") is not None else None, "sharedWithAccounts": [SharedWithAccount.from_dict(_item) for _item in obj["sharedWithAccounts"]] if obj.get("sharedWithAccounts") is not None else None, "bandwidthMeasurements": obj.get("bandwidthMeasurements"), "continuousMode": obj.get("continuousMode"), diff --git a/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/agent_to_server_test.py b/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/agent_to_server_test.py index 796f3285..8e91592b 100644 --- a/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/agent_to_server_test.py +++ b/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/agent_to_server_test.py @@ -31,6 +31,7 @@ from thousandeyes_sdk.tests.models.test_links import TestLinks from thousandeyes_sdk.tests.models.test_path_trace_mode import TestPathTraceMode from thousandeyes_sdk.tests.models.test_probe_mode import TestProbeMode from thousandeyes_sdk.tests.models.test_protocol import TestProtocol +from thousandeyes_sdk.tests.models.test_tag import TestTag from typing import Optional, Set from typing_extensions import Self @@ -54,6 +55,7 @@ class AgentToServerTest(BaseModel): type: Optional[StrictStr] = None links: Optional[TestLinks] = Field(default=None, alias="_links") labels: Optional[List[TestLabel]] = Field(default=None, description="Labels to which the test is assigned. This field is not returned for Instant Tests.") + tags: Optional[List[TestTag]] = Field(default=None, description="Tags assigned to the test. Returned only when `expand=tag` is specified. This field is not returned for Instant Tests. For more information, see `/tags`.") shared_with_accounts: Optional[List[SharedWithAccount]] = Field(default=None, alias="sharedWithAccounts") bandwidth_measurements: Optional[StrictBool] = Field(default=None, description="Set to `true` to enable bandwidth measurements, only applies to Enterprise agents assigned to the test.", alias="bandwidthMeasurements") continuous_mode: Optional[StrictBool] = Field(default=None, description="To enable continuous monitoring, set this parameter to `true` to. When continuous monitoring is enabled, the following actions occur: * `fixedPacketRate` is enforced * `bandwidthMeasurements` are disabled * If the `protocol` is set to `tcp`, `probeMode` is set to `syn`. ", alias="continuousMode") @@ -73,7 +75,7 @@ class AgentToServerTest(BaseModel): bgp_measurements: Optional[StrictBool] = Field(default=True, description="Set to `true` to enable bgp measurements.", alias="bgpMeasurements") use_public_bgp: Optional[StrictBool] = Field(default=True, description="Indicate if all available public BGP monitors should be used, when ommited defaults to `bgpMeasurements` value.", alias="usePublicBgp") monitors: Optional[List[Monitor]] = Field(default=None, description="Contains list of enabled BGP monitors.") - __properties: ClassVar[List[str]] = ["interval", "alertsEnabled", "enabled", "alertRules", "createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "sharedWithAccounts", "bandwidthMeasurements", "continuousMode", "fixedPacketRate", "mtuMeasurements", "numPathTraces", "pathTraceMode", "probeMode", "protocol", "randomizedStartTime", "server", "dscp", "dscpId", "ipv6Policy", "pingPayloadSize", "networkMeasurements", "bgpMeasurements", "usePublicBgp", "monitors"] + __properties: ClassVar[List[str]] = ["interval", "alertsEnabled", "enabled", "alertRules", "createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "tags", "sharedWithAccounts", "bandwidthMeasurements", "continuousMode", "fixedPacketRate", "mtuMeasurements", "numPathTraces", "pathTraceMode", "probeMode", "protocol", "randomizedStartTime", "server", "dscp", "dscpId", "ipv6Policy", "pingPayloadSize", "networkMeasurements", "bgpMeasurements", "usePublicBgp", "monitors"] model_config = ConfigDict( populate_by_name=True, @@ -118,6 +120,7 @@ class AgentToServerTest(BaseModel): * 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([ "created_by", @@ -129,6 +132,7 @@ class AgentToServerTest(BaseModel): "test_id", "type", "labels", + "tags", "shared_with_accounts", "dscp", "monitors", @@ -156,6 +160,13 @@ class AgentToServerTest(BaseModel): if _item: _items.append(_item.to_dict()) _dict['labels'] = _items + # override the default output from pydantic by calling `to_dict()` of each item in tags (list) + _items = [] + if self.tags: + for _item in self.tags: + if _item: + _items.append(_item.to_dict()) + _dict['tags'] = _items # override the default output from pydantic by calling `to_dict()` of each item in shared_with_accounts (list) _items = [] if self.shared_with_accounts: @@ -198,6 +209,7 @@ class AgentToServerTest(BaseModel): "type": obj.get("type"), "_links": TestLinks.from_dict(obj["_links"]) if obj.get("_links") is not None else None, "labels": [TestLabel.from_dict(_item) for _item in obj["labels"]] if obj.get("labels") is not None else None, + "tags": [TestTag.from_dict(_item) for _item in obj["tags"]] if obj.get("tags") is not None else None, "sharedWithAccounts": [SharedWithAccount.from_dict(_item) for _item in obj["sharedWithAccounts"]] if obj.get("sharedWithAccounts") is not None else None, "bandwidthMeasurements": obj.get("bandwidthMeasurements"), "continuousMode": obj.get("continuousMode"), diff --git a/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/agent_to_server_test_request.py b/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/agent_to_server_test_request.py index 83de0ac3..d8bd7f93 100644 --- a/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/agent_to_server_test_request.py +++ b/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/agent_to_server_test_request.py @@ -38,7 +38,6 @@ class AgentToServerTestRequest(BaseModel): interval: TestInterval alerts_enabled: Optional[StrictBool] = Field(default=None, description="Indicates if alerts are enabled.", alias="alertsEnabled") enabled: Optional[StrictBool] = Field(default=True, description="Test is enabled.") - alert_rules: Optional[List[StrictStr]] = Field(default=None, description="List of alert rules IDs to apply to the test (get `ruleId` from `/alerts/rules` endpoint. If `alertsEnabled` is set to `true` and `alertRules` is not included on test creation or update, applicable user default alert rules will be used)", alias="alertRules") created_by: Optional[StrictStr] = Field(default=None, description="User that created the test.", alias="createdBy") created_date: Optional[datetime] = Field(default=None, description="UTC created date (ISO date-time format).", alias="createdDate") description: Optional[StrictStr] = Field(default=None, description="A description of the test.") @@ -50,8 +49,6 @@ class AgentToServerTestRequest(BaseModel): test_name: Optional[StrictStr] = Field(default=None, description="The name of the test. Test name must be unique.", alias="testName") type: Optional[StrictStr] = None links: Optional[TestLinks] = Field(default=None, alias="_links") - labels: Optional[List[StrictStr]] = Field(default=None, description="Contains list of test label IDs (get `labelId` from `/labels` endpoint)") - shared_with_accounts: Optional[List[StrictStr]] = Field(default=None, description="Contains list of account group IDs. Test is shared with the listed account groups (get `aid` from `/account-groups` endpoint)", alias="sharedWithAccounts") bandwidth_measurements: Optional[StrictBool] = Field(default=None, description="Set to `true` to enable bandwidth measurements, only applies to Enterprise agents assigned to the test.", alias="bandwidthMeasurements") continuous_mode: Optional[StrictBool] = Field(default=None, description="To enable continuous monitoring, set this parameter to `true` to. When continuous monitoring is enabled, the following actions occur: * `fixedPacketRate` is enforced * `bandwidthMeasurements` are disabled * If the `protocol` is set to `tcp`, `probeMode` is set to `syn`. ", alias="continuousMode") fixed_packet_rate: Optional[Annotated[int, Field(le=100, strict=True, ge=0)]] = Field(default=None, description="If continuousMode is `false`, set the fixedPacketRate to a value between 10-100. If `continuousMode` is `true`, set the `fixedPacketRate` to `1`", alias="fixedPacketRate") @@ -69,11 +66,14 @@ class AgentToServerTestRequest(BaseModel): network_measurements: Optional[StrictBool] = Field(default=False, description="View packet loss in 1-second intervals. This is only available for 1-minute interval tests. Set to `true` to enable network measurements.", alias="networkMeasurements") bgp_measurements: Optional[StrictBool] = Field(default=True, description="Set to `true` to enable bgp measurements.", alias="bgpMeasurements") use_public_bgp: Optional[StrictBool] = Field(default=True, description="Indicate if all available public BGP monitors should be used, when ommited defaults to `bgpMeasurements` value.", alias="usePublicBgp") - monitors: Optional[List[StrictStr]] = Field(default=None, description="Contains list of BGP monitor IDs (get `monitorId` from `/monitors` endpoint)") + labels: Optional[List[StrictStr]] = Field(default=None, description="Contains list of test label IDs (get `labelId` from `/labels` endpoint)") tags: Optional[List[StrictStr]] = Field(default=None, description="Contains list of test tag IDs (get `id` from `/tags` endpoint).") + shared_with_accounts: Optional[List[StrictStr]] = Field(default=None, description="Contains list of account group IDs. Test is shared with the listed account groups (get `aid` from `/account-groups` endpoint)", alias="sharedWithAccounts") + alert_rules: Optional[List[StrictStr]] = Field(default=None, description="List of alert rules IDs to apply to the test (get `ruleId` from `/alerts/rules` endpoint. If `alertsEnabled` is set to `true` and `alertRules` is not included on test creation or update, applicable user default alert rules will be used)", alias="alertRules") agents: List[TestAgentRequest] = Field(description="Contains list of Agent IDs (get `agentId` from `/agents` endpoint).") + monitors: Optional[List[StrictStr]] = Field(default=None, description="Contains list of BGP monitor IDs (get `monitorId` from `/monitors` endpoint)") port: Optional[StrictInt] = Field(default=None, description="Port number to use for the test. The default port is 80.") - __properties: ClassVar[List[str]] = ["interval", "alertsEnabled", "enabled", "alertRules", "createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "sharedWithAccounts", "bandwidthMeasurements", "continuousMode", "fixedPacketRate", "mtuMeasurements", "numPathTraces", "pathTraceMode", "probeMode", "protocol", "randomizedStartTime", "server", "dscp", "dscpId", "ipv6Policy", "pingPayloadSize", "networkMeasurements", "bgpMeasurements", "usePublicBgp", "monitors", "tags", "agents", "port"] + __properties: ClassVar[List[str]] = ["interval", "alertsEnabled", "enabled", "createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "bandwidthMeasurements", "continuousMode", "fixedPacketRate", "mtuMeasurements", "numPathTraces", "pathTraceMode", "probeMode", "protocol", "randomizedStartTime", "server", "dscp", "dscpId", "ipv6Policy", "pingPayloadSize", "networkMeasurements", "bgpMeasurements", "usePublicBgp", "labels", "tags", "sharedWithAccounts", "alertRules", "agents", "monitors", "port"] model_config = ConfigDict( populate_by_name=True, @@ -158,7 +158,6 @@ class AgentToServerTestRequest(BaseModel): "interval": obj.get("interval"), "alertsEnabled": obj.get("alertsEnabled"), "enabled": obj.get("enabled") if obj.get("enabled") is not None else True, - "alertRules": obj.get("alertRules"), "createdBy": obj.get("createdBy"), "createdDate": obj.get("createdDate"), "description": obj.get("description"), @@ -170,8 +169,6 @@ class AgentToServerTestRequest(BaseModel): "testName": obj.get("testName"), "type": obj.get("type"), "_links": TestLinks.from_dict(obj["_links"]) if obj.get("_links") is not None else None, - "labels": obj.get("labels"), - "sharedWithAccounts": obj.get("sharedWithAccounts"), "bandwidthMeasurements": obj.get("bandwidthMeasurements"), "continuousMode": obj.get("continuousMode"), "fixedPacketRate": obj.get("fixedPacketRate"), @@ -189,9 +186,12 @@ class AgentToServerTestRequest(BaseModel): "networkMeasurements": obj.get("networkMeasurements") if obj.get("networkMeasurements") is not None else False, "bgpMeasurements": obj.get("bgpMeasurements") if obj.get("bgpMeasurements") is not None else True, "usePublicBgp": obj.get("usePublicBgp") if obj.get("usePublicBgp") is not None else True, - "monitors": obj.get("monitors"), + "labels": obj.get("labels"), "tags": obj.get("tags"), + "sharedWithAccounts": obj.get("sharedWithAccounts"), + "alertRules": obj.get("alertRules"), "agents": [TestAgentRequest.from_dict(_item) for _item in obj["agents"]] if obj.get("agents") is not None else None, + "monitors": obj.get("monitors"), "port": obj.get("port") }) return _obj diff --git a/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/agent_to_server_test_response.py b/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/agent_to_server_test_response.py index e6375e8c..8a0662a4 100644 --- a/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/agent_to_server_test_response.py +++ b/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/agent_to_server_test_response.py @@ -32,6 +32,7 @@ from thousandeyes_sdk.tests.models.test_links import TestLinks from thousandeyes_sdk.tests.models.test_path_trace_mode import TestPathTraceMode from thousandeyes_sdk.tests.models.test_probe_mode import TestProbeMode from thousandeyes_sdk.tests.models.test_protocol import TestProtocol +from thousandeyes_sdk.tests.models.test_tag import TestTag from typing import Optional, Set from typing_extensions import Self @@ -55,6 +56,7 @@ class AgentToServerTestResponse(BaseModel): type: Optional[StrictStr] = None links: Optional[TestLinks] = Field(default=None, alias="_links") labels: Optional[List[TestLabel]] = Field(default=None, description="Labels to which the test is assigned. This field is not returned for Instant Tests.") + tags: Optional[List[TestTag]] = Field(default=None, description="Tags assigned to the test. Returned only when `expand=tag` is specified. This field is not returned for Instant Tests. For more information, see `/tags`.") shared_with_accounts: Optional[List[SharedWithAccount]] = Field(default=None, alias="sharedWithAccounts") bandwidth_measurements: Optional[StrictBool] = Field(default=None, description="Set to `true` to enable bandwidth measurements, only applies to Enterprise agents assigned to the test.", alias="bandwidthMeasurements") continuous_mode: Optional[StrictBool] = Field(default=None, description="To enable continuous monitoring, set this parameter to `true` to. When continuous monitoring is enabled, the following actions occur: * `fixedPacketRate` is enforced * `bandwidthMeasurements` are disabled * If the `protocol` is set to `tcp`, `probeMode` is set to `syn`. ", alias="continuousMode") @@ -75,7 +77,7 @@ class AgentToServerTestResponse(BaseModel): use_public_bgp: Optional[StrictBool] = Field(default=True, description="Indicate if all available public BGP monitors should be used, when ommited defaults to `bgpMeasurements` value.", alias="usePublicBgp") monitors: Optional[List[Monitor]] = Field(default=None, description="Contains list of enabled BGP monitors.") agents: Optional[List[AgentResponse]] = Field(default=None, description="Contains list of agents.") - __properties: ClassVar[List[str]] = ["interval", "alertsEnabled", "enabled", "alertRules", "createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "sharedWithAccounts", "bandwidthMeasurements", "continuousMode", "fixedPacketRate", "mtuMeasurements", "numPathTraces", "pathTraceMode", "probeMode", "protocol", "randomizedStartTime", "server", "dscp", "dscpId", "ipv6Policy", "pingPayloadSize", "networkMeasurements", "bgpMeasurements", "usePublicBgp", "monitors", "agents"] + __properties: ClassVar[List[str]] = ["interval", "alertsEnabled", "enabled", "alertRules", "createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "tags", "sharedWithAccounts", "bandwidthMeasurements", "continuousMode", "fixedPacketRate", "mtuMeasurements", "numPathTraces", "pathTraceMode", "probeMode", "protocol", "randomizedStartTime", "server", "dscp", "dscpId", "ipv6Policy", "pingPayloadSize", "networkMeasurements", "bgpMeasurements", "usePublicBgp", "monitors", "agents"] model_config = ConfigDict( populate_by_name=True, @@ -120,6 +122,7 @@ class AgentToServerTestResponse(BaseModel): * 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([ "created_by", @@ -131,6 +134,7 @@ class AgentToServerTestResponse(BaseModel): "test_id", "type", "labels", + "tags", "shared_with_accounts", "dscp", "monitors", @@ -158,6 +162,13 @@ class AgentToServerTestResponse(BaseModel): if _item: _items.append(_item.to_dict()) _dict['labels'] = _items + # override the default output from pydantic by calling `to_dict()` of each item in tags (list) + _items = [] + if self.tags: + for _item in self.tags: + if _item: + _items.append(_item.to_dict()) + _dict['tags'] = _items # override the default output from pydantic by calling `to_dict()` of each item in shared_with_accounts (list) _items = [] if self.shared_with_accounts: @@ -207,6 +218,7 @@ class AgentToServerTestResponse(BaseModel): "type": obj.get("type"), "_links": TestLinks.from_dict(obj["_links"]) if obj.get("_links") is not None else None, "labels": [TestLabel.from_dict(_item) for _item in obj["labels"]] if obj.get("labels") is not None else None, + "tags": [TestTag.from_dict(_item) for _item in obj["tags"]] if obj.get("tags") is not None else None, "sharedWithAccounts": [SharedWithAccount.from_dict(_item) for _item in obj["sharedWithAccounts"]] if obj.get("sharedWithAccounts") is not None else None, "bandwidthMeasurements": obj.get("bandwidthMeasurements"), "continuousMode": obj.get("continuousMode"), diff --git a/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/api_instant_test.py b/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/api_instant_test.py index 474e118e..54aa0d26 100644 --- a/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/api_instant_test.py +++ b/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/api_instant_test.py @@ -29,6 +29,8 @@ from thousandeyes_sdk.tests.models.test_path_trace_mode import TestPathTraceMode from thousandeyes_sdk.tests.models.test_probe_mode import TestProbeMode from thousandeyes_sdk.tests.models.test_protocol import TestProtocol from thousandeyes_sdk.tests.models.test_ssl_version_id import TestSslVersionId +from thousandeyes_sdk.tests.models.test_tag import TestTag +from thousandeyes_sdk.tests.models.test_vault_credential import TestVaultCredential from typing import Optional, Set from typing_extensions import Self @@ -48,6 +50,7 @@ class ApiInstantTest(BaseModel): type: Optional[StrictStr] = None links: Optional[TestLinks] = Field(default=None, alias="_links") labels: Optional[List[TestLabel]] = Field(default=None, description="Labels to which the test is assigned. This field is not returned for Instant Tests.") + tags: Optional[List[TestTag]] = Field(default=None, description="Tags assigned to the test. Returned only when `expand=tag` is specified. This field is not returned for Instant Tests. For more information, see `/tags`.") shared_with_accounts: Optional[List[SharedWithAccount]] = Field(default=None, alias="sharedWithAccounts") client_certificate: Optional[StrictStr] = Field(default=None, description="String representation (containing newline characters) of client certificate, the private key must be placed first, then the certificate.", alias="clientCertificate") client_cert_domains_allow_list: Optional[StrictStr] = Field(default=None, description="Comma separated list of domains to send the client certificate.", alias="clientCertDomainsAllowList") @@ -70,7 +73,8 @@ class ApiInstantTest(BaseModel): time_limit: Optional[Annotated[int, Field(le=180, strict=True, ge=5)]] = Field(default=30, description="Time limit for transaction in seconds. Exceeding this limit will result in a Timeout error.", alias="timeLimit") url: StrictStr = Field(description="Target for the test.") credentials: Optional[List[StrictStr]] = Field(default=None, description="Contains a list of credential IDs (get `credentialId` from `/credentials` endpoint).") - __properties: ClassVar[List[str]] = ["createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "sharedWithAccounts", "clientCertificate", "clientCertDomainsAllowList", "collectProxyNetworkData", "distributedTracing", "followRedirects", "mtuMeasurements", "networkMeasurements", "numPathTraces", "overrideAgentProxy", "overrideProxyId", "pathTraceMode", "predefinedVariables", "probeMode", "protocol", "randomizedStartTime", "requests", "sslVersionId", "targetTime", "timeLimit", "url", "credentials"] + vault_credentials: Optional[List[TestVaultCredential]] = Field(default=None, description="List of credential IDs that are stored in an external vault.", alias="vaultCredentials") + __properties: ClassVar[List[str]] = ["createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "tags", "sharedWithAccounts", "clientCertificate", "clientCertDomainsAllowList", "collectProxyNetworkData", "distributedTracing", "followRedirects", "mtuMeasurements", "networkMeasurements", "numPathTraces", "overrideAgentProxy", "overrideProxyId", "pathTraceMode", "predefinedVariables", "probeMode", "protocol", "randomizedStartTime", "requests", "sslVersionId", "targetTime", "timeLimit", "url", "credentials", "vaultCredentials"] model_config = ConfigDict( populate_by_name=True, @@ -113,6 +117,7 @@ class ApiInstantTest(BaseModel): * 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([ "created_by", @@ -124,6 +129,7 @@ class ApiInstantTest(BaseModel): "test_id", "type", "labels", + "tags", "shared_with_accounts", ]) @@ -142,6 +148,13 @@ class ApiInstantTest(BaseModel): if _item: _items.append(_item.to_dict()) _dict['labels'] = _items + # override the default output from pydantic by calling `to_dict()` of each item in tags (list) + _items = [] + if self.tags: + for _item in self.tags: + if _item: + _items.append(_item.to_dict()) + _dict['tags'] = _items # override the default output from pydantic by calling `to_dict()` of each item in shared_with_accounts (list) _items = [] if self.shared_with_accounts: @@ -163,6 +176,13 @@ class ApiInstantTest(BaseModel): if _item: _items.append(_item.to_dict()) _dict['requests'] = _items + # override the default output from pydantic by calling `to_dict()` of each item in vault_credentials (list) + _items = [] + if self.vault_credentials: + for _item in self.vault_credentials: + if _item: + _items.append(_item.to_dict()) + _dict['vaultCredentials'] = _items return _dict @classmethod @@ -187,6 +207,7 @@ class ApiInstantTest(BaseModel): "type": obj.get("type"), "_links": TestLinks.from_dict(obj["_links"]) if obj.get("_links") is not None else None, "labels": [TestLabel.from_dict(_item) for _item in obj["labels"]] if obj.get("labels") is not None else None, + "tags": [TestTag.from_dict(_item) for _item in obj["tags"]] if obj.get("tags") is not None else None, "sharedWithAccounts": [SharedWithAccount.from_dict(_item) for _item in obj["sharedWithAccounts"]] if obj.get("sharedWithAccounts") is not None else None, "clientCertificate": obj.get("clientCertificate"), "clientCertDomainsAllowList": obj.get("clientCertDomainsAllowList"), @@ -208,7 +229,8 @@ class ApiInstantTest(BaseModel): "targetTime": obj.get("targetTime"), "timeLimit": obj.get("timeLimit") if obj.get("timeLimit") is not None else 30, "url": obj.get("url"), - "credentials": obj.get("credentials") + "credentials": obj.get("credentials"), + "vaultCredentials": [TestVaultCredential.from_dict(_item) for _item in obj["vaultCredentials"]] if obj.get("vaultCredentials") is not None else None }) return _obj diff --git a/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/api_test.py b/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/api_test.py index a46e1f20..837fbd2b 100644 --- a/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/api_test.py +++ b/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/api_test.py @@ -32,6 +32,8 @@ from thousandeyes_sdk.tests.models.test_path_trace_mode import TestPathTraceMode from thousandeyes_sdk.tests.models.test_probe_mode import TestProbeMode from thousandeyes_sdk.tests.models.test_protocol import TestProtocol from thousandeyes_sdk.tests.models.test_ssl_version_id import TestSslVersionId +from thousandeyes_sdk.tests.models.test_tag import TestTag +from thousandeyes_sdk.tests.models.test_vault_credential import TestVaultCredential from typing import Optional, Set from typing_extensions import Self @@ -55,6 +57,7 @@ class ApiTest(BaseModel): type: Optional[StrictStr] = None links: Optional[TestLinks] = Field(default=None, alias="_links") labels: Optional[List[TestLabel]] = Field(default=None, description="Labels to which the test is assigned. This field is not returned for Instant Tests.") + tags: Optional[List[TestTag]] = Field(default=None, description="Tags assigned to the test. Returned only when `expand=tag` is specified. This field is not returned for Instant Tests. For more information, see `/tags`.") shared_with_accounts: Optional[List[SharedWithAccount]] = Field(default=None, alias="sharedWithAccounts") client_certificate: Optional[StrictStr] = Field(default=None, description="String representation (containing newline characters) of client certificate, the private key must be placed first, then the certificate.", alias="clientCertificate") client_cert_domains_allow_list: Optional[StrictStr] = Field(default=None, description="Comma separated list of domains to send the client certificate.", alias="clientCertDomainsAllowList") @@ -77,10 +80,11 @@ class ApiTest(BaseModel): time_limit: Optional[Annotated[int, Field(le=180, strict=True, ge=5)]] = Field(default=30, description="Time limit for transaction in seconds. Exceeding this limit will result in a Timeout error.", alias="timeLimit") url: StrictStr = Field(description="Target for the test.") credentials: Optional[List[StrictStr]] = Field(default=None, description="Contains a list of credential IDs (get `credentialId` from `/credentials` endpoint).") + vault_credentials: Optional[List[TestVaultCredential]] = Field(default=None, description="List of credential IDs that are stored in an external vault.", alias="vaultCredentials") bgp_measurements: Optional[StrictBool] = Field(default=True, description="Set to `true` to enable bgp measurements.", alias="bgpMeasurements") use_public_bgp: Optional[StrictBool] = Field(default=True, description="Indicate if all available public BGP monitors should be used, when ommited defaults to `bgpMeasurements` value.", alias="usePublicBgp") monitors: Optional[List[Monitor]] = Field(default=None, description="Contains list of enabled BGP monitors.") - __properties: ClassVar[List[str]] = ["interval", "alertsEnabled", "enabled", "alertRules", "createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "sharedWithAccounts", "clientCertificate", "clientCertDomainsAllowList", "collectProxyNetworkData", "distributedTracing", "followRedirects", "mtuMeasurements", "networkMeasurements", "numPathTraces", "overrideAgentProxy", "overrideProxyId", "pathTraceMode", "predefinedVariables", "probeMode", "protocol", "randomizedStartTime", "requests", "sslVersionId", "targetTime", "timeLimit", "url", "credentials", "bgpMeasurements", "usePublicBgp", "monitors"] + __properties: ClassVar[List[str]] = ["interval", "alertsEnabled", "enabled", "alertRules", "createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "tags", "sharedWithAccounts", "clientCertificate", "clientCertDomainsAllowList", "collectProxyNetworkData", "distributedTracing", "followRedirects", "mtuMeasurements", "networkMeasurements", "numPathTraces", "overrideAgentProxy", "overrideProxyId", "pathTraceMode", "predefinedVariables", "probeMode", "protocol", "randomizedStartTime", "requests", "sslVersionId", "targetTime", "timeLimit", "url", "credentials", "vaultCredentials", "bgpMeasurements", "usePublicBgp", "monitors"] model_config = ConfigDict( populate_by_name=True, @@ -124,6 +128,7 @@ class ApiTest(BaseModel): * 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([ "created_by", @@ -135,6 +140,7 @@ class ApiTest(BaseModel): "test_id", "type", "labels", + "tags", "shared_with_accounts", "monitors", ]) @@ -161,6 +167,13 @@ class ApiTest(BaseModel): if _item: _items.append(_item.to_dict()) _dict['labels'] = _items + # override the default output from pydantic by calling `to_dict()` of each item in tags (list) + _items = [] + if self.tags: + for _item in self.tags: + if _item: + _items.append(_item.to_dict()) + _dict['tags'] = _items # override the default output from pydantic by calling `to_dict()` of each item in shared_with_accounts (list) _items = [] if self.shared_with_accounts: @@ -182,6 +195,13 @@ class ApiTest(BaseModel): if _item: _items.append(_item.to_dict()) _dict['requests'] = _items + # override the default output from pydantic by calling `to_dict()` of each item in vault_credentials (list) + _items = [] + if self.vault_credentials: + for _item in self.vault_credentials: + if _item: + _items.append(_item.to_dict()) + _dict['vaultCredentials'] = _items # override the default output from pydantic by calling `to_dict()` of each item in monitors (list) _items = [] if self.monitors: @@ -217,6 +237,7 @@ class ApiTest(BaseModel): "type": obj.get("type"), "_links": TestLinks.from_dict(obj["_links"]) if obj.get("_links") is not None else None, "labels": [TestLabel.from_dict(_item) for _item in obj["labels"]] if obj.get("labels") is not None else None, + "tags": [TestTag.from_dict(_item) for _item in obj["tags"]] if obj.get("tags") is not None else None, "sharedWithAccounts": [SharedWithAccount.from_dict(_item) for _item in obj["sharedWithAccounts"]] if obj.get("sharedWithAccounts") is not None else None, "clientCertificate": obj.get("clientCertificate"), "clientCertDomainsAllowList": obj.get("clientCertDomainsAllowList"), @@ -239,6 +260,7 @@ class ApiTest(BaseModel): "timeLimit": obj.get("timeLimit") if obj.get("timeLimit") is not None else 30, "url": obj.get("url"), "credentials": obj.get("credentials"), + "vaultCredentials": [TestVaultCredential.from_dict(_item) for _item in obj["vaultCredentials"]] if obj.get("vaultCredentials") is not None else None, "bgpMeasurements": obj.get("bgpMeasurements") if obj.get("bgpMeasurements") is not None else True, "usePublicBgp": obj.get("usePublicBgp") if obj.get("usePublicBgp") is not None else True, "monitors": [Monitor.from_dict(_item) for _item in obj["monitors"]] if obj.get("monitors") is not None else None diff --git a/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/api_test_request.py b/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/api_test_request.py index c85d0443..e5e81c8b 100644 --- a/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/api_test_request.py +++ b/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/api_test_request.py @@ -22,7 +22,6 @@ from typing import Any, ClassVar, Dict, List, Optional from typing_extensions import Annotated from thousandeyes_sdk.tests.models.api_predefined_variable import ApiPredefinedVariable from thousandeyes_sdk.tests.models.api_request import ApiRequest -from thousandeyes_sdk.tests.models.monitor import Monitor from thousandeyes_sdk.tests.models.test_agent_request import TestAgentRequest from thousandeyes_sdk.tests.models.test_interval import TestInterval from thousandeyes_sdk.tests.models.test_links import TestLinks @@ -30,6 +29,7 @@ from thousandeyes_sdk.tests.models.test_path_trace_mode import TestPathTraceMode from thousandeyes_sdk.tests.models.test_probe_mode import TestProbeMode from thousandeyes_sdk.tests.models.test_protocol import TestProtocol from thousandeyes_sdk.tests.models.test_ssl_version_id import TestSslVersionId +from thousandeyes_sdk.tests.models.test_vault_credential import TestVaultCredential from typing import Optional, Set from typing_extensions import Self @@ -40,7 +40,6 @@ class ApiTestRequest(BaseModel): interval: TestInterval alerts_enabled: Optional[StrictBool] = Field(default=None, description="Indicates if alerts are enabled.", alias="alertsEnabled") enabled: Optional[StrictBool] = Field(default=True, description="Test is enabled.") - alert_rules: Optional[List[StrictStr]] = Field(default=None, description="List of alert rules IDs to apply to the test (get `ruleId` from `/alerts/rules` endpoint. If `alertsEnabled` is set to `true` and `alertRules` is not included on test creation or update, applicable user default alert rules will be used)", alias="alertRules") created_by: Optional[StrictStr] = Field(default=None, description="User that created the test.", alias="createdBy") created_date: Optional[datetime] = Field(default=None, description="UTC created date (ISO date-time format).", alias="createdDate") description: Optional[StrictStr] = Field(default=None, description="A description of the test.") @@ -52,8 +51,6 @@ class ApiTestRequest(BaseModel): test_name: Optional[StrictStr] = Field(default=None, description="The name of the test. Test name must be unique.", alias="testName") type: Optional[StrictStr] = None links: Optional[TestLinks] = Field(default=None, alias="_links") - labels: Optional[List[StrictStr]] = Field(default=None, description="Contains list of test label IDs (get `labelId` from `/labels` endpoint)") - shared_with_accounts: Optional[List[StrictStr]] = Field(default=None, description="Contains list of account group IDs. Test is shared with the listed account groups (get `aid` from `/account-groups` endpoint)", alias="sharedWithAccounts") client_certificate: Optional[StrictStr] = Field(default=None, description="String representation (containing newline characters) of client certificate, the private key must be placed first, then the certificate.", alias="clientCertificate") client_cert_domains_allow_list: Optional[StrictStr] = Field(default=None, description="Comma separated list of domains to send the client certificate.", alias="clientCertDomainsAllowList") collect_proxy_network_data: Optional[StrictBool] = Field(default=False, description="Indicates whether network data to the proxy should be collected.", alias="collectProxyNetworkData") @@ -74,13 +71,17 @@ class ApiTestRequest(BaseModel): target_time: Optional[Annotated[int, Field(le=60, strict=True, ge=0)]] = Field(default=None, description="Target time for completion metric, defaults to 50% of time limit specified in seconds. (0 means default behavior)", alias="targetTime") time_limit: Optional[Annotated[int, Field(le=180, strict=True, ge=5)]] = Field(default=30, description="Time limit for transaction in seconds. Exceeding this limit will result in a Timeout error.", alias="timeLimit") url: StrictStr = Field(description="Target for the test.") - credentials: Optional[List[StrictStr]] = Field(default=None, description="Contains a list of credential IDs (get `credentialId` from `/credentials` endpoint).") bgp_measurements: Optional[StrictBool] = Field(default=True, description="Set to `true` to enable bgp measurements.", alias="bgpMeasurements") use_public_bgp: Optional[StrictBool] = Field(default=True, description="Indicate if all available public BGP monitors should be used, when ommited defaults to `bgpMeasurements` value.", alias="usePublicBgp") - monitors: Optional[List[Monitor]] = Field(default=None, description="Contains list of enabled BGP monitors.") + labels: Optional[List[StrictStr]] = Field(default=None, description="Contains list of test label IDs (get `labelId` from `/labels` endpoint)") tags: Optional[List[StrictStr]] = Field(default=None, description="Contains list of test tag IDs (get `id` from `/tags` endpoint).") + shared_with_accounts: Optional[List[StrictStr]] = Field(default=None, description="Contains list of account group IDs. Test is shared with the listed account groups (get `aid` from `/account-groups` endpoint)", alias="sharedWithAccounts") + alert_rules: Optional[List[StrictStr]] = Field(default=None, description="List of alert rules IDs to apply to the test (get `ruleId` from `/alerts/rules` endpoint. If `alertsEnabled` is set to `true` and `alertRules` is not included on test creation or update, applicable user default alert rules will be used)", alias="alertRules") agents: List[TestAgentRequest] = Field(description="Contains list of Agent IDs (get `agentId` from `/agents` endpoint).") - __properties: ClassVar[List[str]] = ["interval", "alertsEnabled", "enabled", "alertRules", "createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "sharedWithAccounts", "clientCertificate", "clientCertDomainsAllowList", "collectProxyNetworkData", "distributedTracing", "followRedirects", "mtuMeasurements", "networkMeasurements", "numPathTraces", "overrideAgentProxy", "overrideProxyId", "pathTraceMode", "predefinedVariables", "probeMode", "protocol", "randomizedStartTime", "requests", "sslVersionId", "targetTime", "timeLimit", "url", "credentials", "bgpMeasurements", "usePublicBgp", "monitors", "tags", "agents"] + monitors: Optional[List[StrictStr]] = Field(default=None, description="Contains list of BGP monitor IDs (get `monitorId` from `/monitors` endpoint)") + credentials: Optional[List[StrictStr]] = Field(default=None, description="Contains a list of credential IDs (get `credentialId` from `/credentials` endpoint).") + vault_credentials: Optional[List[TestVaultCredential]] = Field(default=None, description="List of credential IDs that are stored in an external vault.", alias="vaultCredentials") + __properties: ClassVar[List[str]] = ["interval", "alertsEnabled", "enabled", "createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "clientCertificate", "clientCertDomainsAllowList", "collectProxyNetworkData", "distributedTracing", "followRedirects", "mtuMeasurements", "networkMeasurements", "numPathTraces", "overrideAgentProxy", "overrideProxyId", "pathTraceMode", "predefinedVariables", "probeMode", "protocol", "randomizedStartTime", "requests", "sslVersionId", "targetTime", "timeLimit", "url", "bgpMeasurements", "usePublicBgp", "labels", "tags", "sharedWithAccounts", "alertRules", "agents", "monitors", "credentials", "vaultCredentials"] model_config = ConfigDict( populate_by_name=True, @@ -121,7 +122,6 @@ class ApiTestRequest(BaseModel): * 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([ "created_by", @@ -132,7 +132,6 @@ class ApiTestRequest(BaseModel): "saved_event", "test_id", "type", - "monitors", ]) _dict = self.model_dump( @@ -157,13 +156,6 @@ class ApiTestRequest(BaseModel): if _item: _items.append(_item.to_dict()) _dict['requests'] = _items - # override the default output from pydantic by calling `to_dict()` of each item in monitors (list) - _items = [] - if self.monitors: - for _item in self.monitors: - if _item: - _items.append(_item.to_dict()) - _dict['monitors'] = _items # override the default output from pydantic by calling `to_dict()` of each item in agents (list) _items = [] if self.agents: @@ -171,6 +163,13 @@ class ApiTestRequest(BaseModel): if _item: _items.append(_item.to_dict()) _dict['agents'] = _items + # override the default output from pydantic by calling `to_dict()` of each item in vault_credentials (list) + _items = [] + if self.vault_credentials: + for _item in self.vault_credentials: + if _item: + _items.append(_item.to_dict()) + _dict['vaultCredentials'] = _items return _dict @classmethod @@ -186,7 +185,6 @@ class ApiTestRequest(BaseModel): "interval": obj.get("interval"), "alertsEnabled": obj.get("alertsEnabled"), "enabled": obj.get("enabled") if obj.get("enabled") is not None else True, - "alertRules": obj.get("alertRules"), "createdBy": obj.get("createdBy"), "createdDate": obj.get("createdDate"), "description": obj.get("description"), @@ -198,8 +196,6 @@ class ApiTestRequest(BaseModel): "testName": obj.get("testName"), "type": obj.get("type"), "_links": TestLinks.from_dict(obj["_links"]) if obj.get("_links") is not None else None, - "labels": obj.get("labels"), - "sharedWithAccounts": obj.get("sharedWithAccounts"), "clientCertificate": obj.get("clientCertificate"), "clientCertDomainsAllowList": obj.get("clientCertDomainsAllowList"), "collectProxyNetworkData": obj.get("collectProxyNetworkData") if obj.get("collectProxyNetworkData") is not None else False, @@ -220,12 +216,16 @@ class ApiTestRequest(BaseModel): "targetTime": obj.get("targetTime"), "timeLimit": obj.get("timeLimit") if obj.get("timeLimit") is not None else 30, "url": obj.get("url"), - "credentials": obj.get("credentials"), "bgpMeasurements": obj.get("bgpMeasurements") if obj.get("bgpMeasurements") is not None else True, "usePublicBgp": obj.get("usePublicBgp") if obj.get("usePublicBgp") is not None else True, - "monitors": [Monitor.from_dict(_item) for _item in obj["monitors"]] if obj.get("monitors") is not None else None, + "labels": obj.get("labels"), "tags": obj.get("tags"), - "agents": [TestAgentRequest.from_dict(_item) for _item in obj["agents"]] if obj.get("agents") is not None else None + "sharedWithAccounts": obj.get("sharedWithAccounts"), + "alertRules": obj.get("alertRules"), + "agents": [TestAgentRequest.from_dict(_item) for _item in obj["agents"]] if obj.get("agents") is not None else None, + "monitors": obj.get("monitors"), + "credentials": obj.get("credentials"), + "vaultCredentials": [TestVaultCredential.from_dict(_item) for _item in obj["vaultCredentials"]] if obj.get("vaultCredentials") is not None else None }) return _obj diff --git a/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/api_test_response.py b/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/api_test_response.py index a084649c..670f95aa 100644 --- a/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/api_test_response.py +++ b/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/api_test_response.py @@ -33,6 +33,8 @@ from thousandeyes_sdk.tests.models.test_path_trace_mode import TestPathTraceMode from thousandeyes_sdk.tests.models.test_probe_mode import TestProbeMode from thousandeyes_sdk.tests.models.test_protocol import TestProtocol from thousandeyes_sdk.tests.models.test_ssl_version_id import TestSslVersionId +from thousandeyes_sdk.tests.models.test_tag import TestTag +from thousandeyes_sdk.tests.models.test_vault_credential import TestVaultCredential from typing import Optional, Set from typing_extensions import Self @@ -56,6 +58,7 @@ class ApiTestResponse(BaseModel): type: Optional[StrictStr] = None links: Optional[TestLinks] = Field(default=None, alias="_links") labels: Optional[List[TestLabel]] = Field(default=None, description="Labels to which the test is assigned. This field is not returned for Instant Tests.") + tags: Optional[List[TestTag]] = Field(default=None, description="Tags assigned to the test. Returned only when `expand=tag` is specified. This field is not returned for Instant Tests. For more information, see `/tags`.") shared_with_accounts: Optional[List[SharedWithAccount]] = Field(default=None, alias="sharedWithAccounts") client_certificate: Optional[StrictStr] = Field(default=None, description="String representation (containing newline characters) of client certificate, the private key must be placed first, then the certificate.", alias="clientCertificate") client_cert_domains_allow_list: Optional[StrictStr] = Field(default=None, description="Comma separated list of domains to send the client certificate.", alias="clientCertDomainsAllowList") @@ -78,11 +81,12 @@ class ApiTestResponse(BaseModel): time_limit: Optional[Annotated[int, Field(le=180, strict=True, ge=5)]] = Field(default=30, description="Time limit for transaction in seconds. Exceeding this limit will result in a Timeout error.", alias="timeLimit") url: StrictStr = Field(description="Target for the test.") credentials: Optional[List[StrictStr]] = Field(default=None, description="Contains a list of credential IDs (get `credentialId` from `/credentials` endpoint).") + vault_credentials: Optional[List[TestVaultCredential]] = Field(default=None, description="List of credential IDs that are stored in an external vault.", alias="vaultCredentials") bgp_measurements: Optional[StrictBool] = Field(default=True, description="Set to `true` to enable bgp measurements.", alias="bgpMeasurements") use_public_bgp: Optional[StrictBool] = Field(default=True, description="Indicate if all available public BGP monitors should be used, when ommited defaults to `bgpMeasurements` value.", alias="usePublicBgp") monitors: Optional[List[Monitor]] = Field(default=None, description="Contains list of enabled BGP monitors.") agents: Optional[List[AgentResponse]] = Field(default=None, description="Contains list of agents.") - __properties: ClassVar[List[str]] = ["interval", "alertsEnabled", "enabled", "alertRules", "createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "sharedWithAccounts", "clientCertificate", "clientCertDomainsAllowList", "collectProxyNetworkData", "distributedTracing", "followRedirects", "mtuMeasurements", "networkMeasurements", "numPathTraces", "overrideAgentProxy", "overrideProxyId", "pathTraceMode", "predefinedVariables", "probeMode", "protocol", "randomizedStartTime", "requests", "sslVersionId", "targetTime", "timeLimit", "url", "credentials", "bgpMeasurements", "usePublicBgp", "monitors", "agents"] + __properties: ClassVar[List[str]] = ["interval", "alertsEnabled", "enabled", "alertRules", "createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "tags", "sharedWithAccounts", "clientCertificate", "clientCertDomainsAllowList", "collectProxyNetworkData", "distributedTracing", "followRedirects", "mtuMeasurements", "networkMeasurements", "numPathTraces", "overrideAgentProxy", "overrideProxyId", "pathTraceMode", "predefinedVariables", "probeMode", "protocol", "randomizedStartTime", "requests", "sslVersionId", "targetTime", "timeLimit", "url", "credentials", "vaultCredentials", "bgpMeasurements", "usePublicBgp", "monitors", "agents"] model_config = ConfigDict( populate_by_name=True, @@ -126,6 +130,7 @@ class ApiTestResponse(BaseModel): * 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([ "created_by", @@ -137,6 +142,7 @@ class ApiTestResponse(BaseModel): "test_id", "type", "labels", + "tags", "shared_with_accounts", "monitors", ]) @@ -163,6 +169,13 @@ class ApiTestResponse(BaseModel): if _item: _items.append(_item.to_dict()) _dict['labels'] = _items + # override the default output from pydantic by calling `to_dict()` of each item in tags (list) + _items = [] + if self.tags: + for _item in self.tags: + if _item: + _items.append(_item.to_dict()) + _dict['tags'] = _items # override the default output from pydantic by calling `to_dict()` of each item in shared_with_accounts (list) _items = [] if self.shared_with_accounts: @@ -184,6 +197,13 @@ class ApiTestResponse(BaseModel): if _item: _items.append(_item.to_dict()) _dict['requests'] = _items + # override the default output from pydantic by calling `to_dict()` of each item in vault_credentials (list) + _items = [] + if self.vault_credentials: + for _item in self.vault_credentials: + if _item: + _items.append(_item.to_dict()) + _dict['vaultCredentials'] = _items # override the default output from pydantic by calling `to_dict()` of each item in monitors (list) _items = [] if self.monitors: @@ -226,6 +246,7 @@ class ApiTestResponse(BaseModel): "type": obj.get("type"), "_links": TestLinks.from_dict(obj["_links"]) if obj.get("_links") is not None else None, "labels": [TestLabel.from_dict(_item) for _item in obj["labels"]] if obj.get("labels") is not None else None, + "tags": [TestTag.from_dict(_item) for _item in obj["tags"]] if obj.get("tags") is not None else None, "sharedWithAccounts": [SharedWithAccount.from_dict(_item) for _item in obj["sharedWithAccounts"]] if obj.get("sharedWithAccounts") is not None else None, "clientCertificate": obj.get("clientCertificate"), "clientCertDomainsAllowList": obj.get("clientCertDomainsAllowList"), @@ -248,6 +269,7 @@ class ApiTestResponse(BaseModel): "timeLimit": obj.get("timeLimit") if obj.get("timeLimit") is not None else 30, "url": obj.get("url"), "credentials": obj.get("credentials"), + "vaultCredentials": [TestVaultCredential.from_dict(_item) for _item in obj["vaultCredentials"]] if obj.get("vaultCredentials") is not None else None, "bgpMeasurements": obj.get("bgpMeasurements") if obj.get("bgpMeasurements") is not None else True, "usePublicBgp": obj.get("usePublicBgp") if obj.get("usePublicBgp") is not None else True, "monitors": [Monitor.from_dict(_item) for _item in obj["monitors"]] if obj.get("monitors") is not None else None, diff --git a/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/base_bgp_request.py b/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/base_bgp_request.py new file mode 100644 index 00000000..62fa3845 --- /dev/null +++ b/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/base_bgp_request.py @@ -0,0 +1,136 @@ +# coding: utf-8 + +""" + Tests API + + **Note:** The Page Load Tests, API Tests, and Web Transaction Tests APIs are not available for ThousandEyes for Government instance. This API allows you to list, create, edit, and delete Network and Application Synthetics tests. + + 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 thousandeyes_sdk.tests.models.test_links import TestLinks +from typing import Optional, Set +from typing_extensions import Self + +class BaseBgpRequest(BaseModel): + """ + BaseBgpRequest + """ # noqa: E501 + created_by: Optional[StrictStr] = Field(default=None, description="User that created the test.", alias="createdBy") + created_date: Optional[datetime] = Field(default=None, description="UTC created date (ISO date-time format).", alias="createdDate") + description: Optional[StrictStr] = Field(default=None, description="A description of the test.") + live_share: Optional[StrictBool] = Field(default=None, description="Indicates if the test is shared with the account group.", alias="liveShare") + modified_by: Optional[StrictStr] = Field(default=None, description="User that modified the test.", alias="modifiedBy") + modified_date: Optional[datetime] = Field(default=None, description="UTC last modification date (ISO date-time format).", alias="modifiedDate") + saved_event: Optional[StrictBool] = Field(default=None, description="Indicates if the test is a saved event. **Note**: **Saved Events** are now called **Private Snapshots** in the user interface. This change does not affect API. ", alias="savedEvent") + test_id: Optional[StrictStr] = Field(default=None, description="Each test is assigned an unique ID; this is used to access test information and results from other endpoints.", alias="testId") + test_name: Optional[StrictStr] = Field(default=None, description="The name of the test. Test name must be unique.", alias="testName") + type: Optional[StrictStr] = None + links: Optional[TestLinks] = Field(default=None, alias="_links") + enabled: Optional[StrictBool] = Field(default=True, description="Test is enabled.") + include_covered_prefixes: Optional[StrictBool] = Field(default=None, description="Indicate if queries for subprefixes detected under this prefix should included.", alias="includeCoveredPrefixes") + use_public_bgp: Optional[StrictBool] = Field(default=True, description="Indicate if all available public BGP monitors should be used, when ommited defaults to `bgpMeasurements` value.", alias="usePublicBgp") + alerts_enabled: Optional[StrictBool] = Field(default=None, description="Indicates if alerts are enabled.", alias="alertsEnabled") + __properties: ClassVar[List[str]] = ["createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "enabled", "includeCoveredPrefixes", "usePublicBgp", "alertsEnabled"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + extra="allow", + ) + + + 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 self.model_dump_json(by_alias=True, exclude_unset=True, exclude_none=True) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of BaseBgpRequest 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. + * 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([ + "created_by", + "created_date", + "live_share", + "modified_by", + "modified_date", + "saved_event", + "test_id", + "type", + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + # override the default output from pydantic by calling `to_dict()` of links + if self.links: + _dict['_links'] = self.links.to_dict() + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of BaseBgpRequest from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "createdBy": obj.get("createdBy"), + "createdDate": obj.get("createdDate"), + "description": obj.get("description"), + "liveShare": obj.get("liveShare"), + "modifiedBy": obj.get("modifiedBy"), + "modifiedDate": obj.get("modifiedDate"), + "savedEvent": obj.get("savedEvent"), + "testId": obj.get("testId"), + "testName": obj.get("testName"), + "type": obj.get("type"), + "_links": TestLinks.from_dict(obj["_links"]) if obj.get("_links") is not None else None, + "enabled": obj.get("enabled") if obj.get("enabled") is not None else True, + "includeCoveredPrefixes": obj.get("includeCoveredPrefixes"), + "usePublicBgp": obj.get("usePublicBgp") if obj.get("usePublicBgp") is not None else True, + "alertsEnabled": obj.get("alertsEnabled") + }) + return _obj + + diff --git a/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/base_bgp_test.py b/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/base_bgp_test.py index 0d8b2516..d2a1447d 100644 --- a/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/base_bgp_test.py +++ b/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/base_bgp_test.py @@ -24,6 +24,7 @@ from thousandeyes_sdk.tests.models.monitor import Monitor from thousandeyes_sdk.tests.models.shared_with_account import SharedWithAccount from thousandeyes_sdk.tests.models.test_label import TestLabel from thousandeyes_sdk.tests.models.test_links import TestLinks +from thousandeyes_sdk.tests.models.test_tag import TestTag from typing import Optional, Set from typing_extensions import Self @@ -43,6 +44,7 @@ class BaseBgpTest(BaseModel): type: Optional[StrictStr] = None links: Optional[TestLinks] = Field(default=None, alias="_links") labels: Optional[List[TestLabel]] = Field(default=None, description="Labels to which the test is assigned. This field is not returned for Instant Tests.") + tags: Optional[List[TestTag]] = Field(default=None, description="Tags assigned to the test. Returned only when `expand=tag` is specified. This field is not returned for Instant Tests. For more information, see `/tags`.") shared_with_accounts: Optional[List[SharedWithAccount]] = Field(default=None, alias="sharedWithAccounts") enabled: Optional[StrictBool] = Field(default=True, description="Test is enabled.") monitors: Optional[List[Monitor]] = Field(default=None, description="Contains list of enabled BGP monitors.") @@ -50,7 +52,7 @@ class BaseBgpTest(BaseModel): use_public_bgp: Optional[StrictBool] = Field(default=True, description="Indicate if all available public BGP monitors should be used, when ommited defaults to `bgpMeasurements` value.", alias="usePublicBgp") alerts_enabled: Optional[StrictBool] = Field(default=None, description="Indicates if alerts are enabled.", alias="alertsEnabled") alert_rules: Optional[List[AlertRule]] = Field(default=None, description="A list of enabled alert rule objects.", alias="alertRules") - __properties: ClassVar[List[str]] = ["createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "sharedWithAccounts", "enabled", "monitors", "includeCoveredPrefixes", "usePublicBgp", "alertsEnabled", "alertRules"] + __properties: ClassVar[List[str]] = ["createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "tags", "sharedWithAccounts", "enabled", "monitors", "includeCoveredPrefixes", "usePublicBgp", "alertsEnabled", "alertRules"] model_config = ConfigDict( populate_by_name=True, @@ -94,6 +96,7 @@ class BaseBgpTest(BaseModel): * 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([ "created_by", @@ -105,6 +108,7 @@ class BaseBgpTest(BaseModel): "test_id", "type", "labels", + "tags", "shared_with_accounts", "monitors", ]) @@ -124,6 +128,13 @@ class BaseBgpTest(BaseModel): if _item: _items.append(_item.to_dict()) _dict['labels'] = _items + # override the default output from pydantic by calling `to_dict()` of each item in tags (list) + _items = [] + if self.tags: + for _item in self.tags: + if _item: + _items.append(_item.to_dict()) + _dict['tags'] = _items # override the default output from pydantic by calling `to_dict()` of each item in shared_with_accounts (list) _items = [] if self.shared_with_accounts: @@ -169,6 +180,7 @@ class BaseBgpTest(BaseModel): "type": obj.get("type"), "_links": TestLinks.from_dict(obj["_links"]) if obj.get("_links") is not None else None, "labels": [TestLabel.from_dict(_item) for _item in obj["labels"]] if obj.get("labels") is not None else None, + "tags": [TestTag.from_dict(_item) for _item in obj["tags"]] if obj.get("tags") is not None else None, "sharedWithAccounts": [SharedWithAccount.from_dict(_item) for _item in obj["sharedWithAccounts"]] if obj.get("sharedWithAccounts") is not None else None, "enabled": obj.get("enabled") if obj.get("enabled") is not None else True, "monitors": [Monitor.from_dict(_item) for _item in obj["monitors"]] if obj.get("monitors") is not None else None, diff --git a/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/bgp_test.py b/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/bgp_test.py index 689db6aa..61f5ec6a 100644 --- a/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/bgp_test.py +++ b/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/bgp_test.py @@ -24,6 +24,7 @@ from thousandeyes_sdk.tests.models.monitor import Monitor from thousandeyes_sdk.tests.models.shared_with_account import SharedWithAccount from thousandeyes_sdk.tests.models.test_label import TestLabel from thousandeyes_sdk.tests.models.test_links import TestLinks +from thousandeyes_sdk.tests.models.test_tag import TestTag from typing import Optional, Set from typing_extensions import Self @@ -43,6 +44,7 @@ class BgpTest(BaseModel): type: Optional[StrictStr] = None links: Optional[TestLinks] = Field(default=None, alias="_links") labels: Optional[List[TestLabel]] = Field(default=None, description="Labels to which the test is assigned. This field is not returned for Instant Tests.") + tags: Optional[List[TestTag]] = Field(default=None, description="Tags assigned to the test. Returned only when `expand=tag` is specified. This field is not returned for Instant Tests. For more information, see `/tags`.") shared_with_accounts: Optional[List[SharedWithAccount]] = Field(default=None, alias="sharedWithAccounts") enabled: Optional[StrictBool] = Field(default=True, description="Test is enabled.") monitors: Optional[List[Monitor]] = Field(default=None, description="Contains list of enabled BGP monitors.") @@ -51,7 +53,7 @@ class BgpTest(BaseModel): alerts_enabled: Optional[StrictBool] = Field(default=None, description="Indicates if alerts are enabled.", alias="alertsEnabled") alert_rules: Optional[List[AlertRule]] = Field(default=None, description="A list of enabled alert rule objects.", alias="alertRules") prefix: StrictStr = Field(description="a.b.c.d is a network address, with the prefix length defined as e. Prefixes can be any length from 8 to 24.") - __properties: ClassVar[List[str]] = ["createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "sharedWithAccounts", "enabled", "monitors", "includeCoveredPrefixes", "usePublicBgp", "alertsEnabled", "alertRules", "prefix"] + __properties: ClassVar[List[str]] = ["createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "tags", "sharedWithAccounts", "enabled", "monitors", "includeCoveredPrefixes", "usePublicBgp", "alertsEnabled", "alertRules", "prefix"] model_config = ConfigDict( populate_by_name=True, @@ -95,6 +97,7 @@ class BgpTest(BaseModel): * 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([ "created_by", @@ -106,6 +109,7 @@ class BgpTest(BaseModel): "test_id", "type", "labels", + "tags", "shared_with_accounts", "monitors", ]) @@ -125,6 +129,13 @@ class BgpTest(BaseModel): if _item: _items.append(_item.to_dict()) _dict['labels'] = _items + # override the default output from pydantic by calling `to_dict()` of each item in tags (list) + _items = [] + if self.tags: + for _item in self.tags: + if _item: + _items.append(_item.to_dict()) + _dict['tags'] = _items # override the default output from pydantic by calling `to_dict()` of each item in shared_with_accounts (list) _items = [] if self.shared_with_accounts: @@ -170,6 +181,7 @@ class BgpTest(BaseModel): "type": obj.get("type"), "_links": TestLinks.from_dict(obj["_links"]) if obj.get("_links") is not None else None, "labels": [TestLabel.from_dict(_item) for _item in obj["labels"]] if obj.get("labels") is not None else None, + "tags": [TestTag.from_dict(_item) for _item in obj["tags"]] if obj.get("tags") is not None else None, "sharedWithAccounts": [SharedWithAccount.from_dict(_item) for _item in obj["sharedWithAccounts"]] if obj.get("sharedWithAccounts") is not None else None, "enabled": obj.get("enabled") if obj.get("enabled") is not None else True, "monitors": [Monitor.from_dict(_item) for _item in obj["monitors"]] if obj.get("monitors") is not None else None, diff --git a/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/bgp_test_request.py b/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/bgp_test_request.py index 5a7eb9c5..cfe0eaf0 100644 --- a/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/bgp_test_request.py +++ b/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/bgp_test_request.py @@ -38,17 +38,17 @@ class BgpTestRequest(BaseModel): test_name: Optional[StrictStr] = Field(default=None, description="The name of the test. Test name must be unique.", alias="testName") type: Optional[StrictStr] = None links: Optional[TestLinks] = Field(default=None, alias="_links") - labels: Optional[List[StrictStr]] = Field(default=None, description="Contains list of test label IDs (get `labelId` from `/labels` endpoint)") - shared_with_accounts: Optional[List[StrictStr]] = Field(default=None, description="Contains list of account group IDs. Test is shared with the listed account groups (get `aid` from `/account-groups` endpoint)", alias="sharedWithAccounts") enabled: Optional[StrictBool] = Field(default=True, description="Test is enabled.") - monitors: Optional[List[StrictStr]] = Field(default=None, description="Contains list of BGP monitor IDs (get `monitorId` from `/monitors` endpoint)") include_covered_prefixes: Optional[StrictBool] = Field(default=None, description="Indicate if queries for subprefixes detected under this prefix should included.", alias="includeCoveredPrefixes") use_public_bgp: Optional[StrictBool] = Field(default=True, description="Indicate if all available public BGP monitors should be used, when ommited defaults to `bgpMeasurements` value.", alias="usePublicBgp") alerts_enabled: Optional[StrictBool] = Field(default=None, description="Indicates if alerts are enabled.", alias="alertsEnabled") - alert_rules: Optional[List[StrictStr]] = Field(default=None, description="List of alert rules IDs to apply to the test (get `ruleId` from `/alerts/rules` endpoint. If `alertsEnabled` is set to `true` and `alertRules` is not included on test creation or update, applicable user default alert rules will be used)", alias="alertRules") prefix: StrictStr = Field(description="a.b.c.d is a network address, with the prefix length defined as e. Prefixes can be any length from 8 to 24.") + labels: Optional[List[StrictStr]] = Field(default=None, description="Contains list of test label IDs (get `labelId` from `/labels` endpoint)") tags: Optional[List[StrictStr]] = Field(default=None, description="Contains list of test tag IDs (get `id` from `/tags` endpoint).") - __properties: ClassVar[List[str]] = ["createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "sharedWithAccounts", "enabled", "monitors", "includeCoveredPrefixes", "usePublicBgp", "alertsEnabled", "alertRules", "prefix", "tags"] + shared_with_accounts: Optional[List[StrictStr]] = Field(default=None, description="Contains list of account group IDs. Test is shared with the listed account groups (get `aid` from `/account-groups` endpoint)", alias="sharedWithAccounts") + alert_rules: Optional[List[StrictStr]] = Field(default=None, description="List of alert rules IDs to apply to the test (get `ruleId` from `/alerts/rules` endpoint. If `alertsEnabled` is set to `true` and `alertRules` is not included on test creation or update, applicable user default alert rules will be used)", alias="alertRules") + monitors: Optional[List[StrictStr]] = Field(default=None, description="Contains list of BGP monitor IDs (get `monitorId` from `/monitors` endpoint)") + __properties: ClassVar[List[str]] = ["createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "enabled", "includeCoveredPrefixes", "usePublicBgp", "alertsEnabled", "prefix", "labels", "tags", "sharedWithAccounts", "alertRules", "monitors"] model_config = ConfigDict( populate_by_name=True, @@ -132,16 +132,16 @@ class BgpTestRequest(BaseModel): "testName": obj.get("testName"), "type": obj.get("type"), "_links": TestLinks.from_dict(obj["_links"]) if obj.get("_links") is not None else None, - "labels": obj.get("labels"), - "sharedWithAccounts": obj.get("sharedWithAccounts"), "enabled": obj.get("enabled") if obj.get("enabled") is not None else True, - "monitors": obj.get("monitors"), "includeCoveredPrefixes": obj.get("includeCoveredPrefixes"), "usePublicBgp": obj.get("usePublicBgp") if obj.get("usePublicBgp") is not None else True, "alertsEnabled": obj.get("alertsEnabled"), - "alertRules": obj.get("alertRules"), "prefix": obj.get("prefix"), - "tags": obj.get("tags") + "labels": obj.get("labels"), + "tags": obj.get("tags"), + "sharedWithAccounts": obj.get("sharedWithAccounts"), + "alertRules": obj.get("alertRules"), + "monitors": obj.get("monitors") }) return _obj diff --git a/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/bgp_test_response.py b/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/bgp_test_response.py index cd9f2630..e50b3c3b 100644 --- a/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/bgp_test_response.py +++ b/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/bgp_test_response.py @@ -24,6 +24,7 @@ from thousandeyes_sdk.tests.models.monitor import Monitor from thousandeyes_sdk.tests.models.shared_with_account import SharedWithAccount from thousandeyes_sdk.tests.models.test_label import TestLabel from thousandeyes_sdk.tests.models.test_links import TestLinks +from thousandeyes_sdk.tests.models.test_tag import TestTag from typing import Optional, Set from typing_extensions import Self @@ -43,6 +44,7 @@ class BgpTestResponse(BaseModel): type: Optional[StrictStr] = None links: Optional[TestLinks] = Field(default=None, alias="_links") labels: Optional[List[TestLabel]] = Field(default=None, description="Labels to which the test is assigned. This field is not returned for Instant Tests.") + tags: Optional[List[TestTag]] = Field(default=None, description="Tags assigned to the test. Returned only when `expand=tag` is specified. This field is not returned for Instant Tests. For more information, see `/tags`.") shared_with_accounts: Optional[List[SharedWithAccount]] = Field(default=None, alias="sharedWithAccounts") enabled: Optional[StrictBool] = Field(default=True, description="Test is enabled.") monitors: Optional[List[Monitor]] = Field(default=None, description="Contains list of enabled BGP monitors.") @@ -51,7 +53,7 @@ class BgpTestResponse(BaseModel): alerts_enabled: Optional[StrictBool] = Field(default=None, description="Indicates if alerts are enabled.", alias="alertsEnabled") alert_rules: Optional[List[AlertRule]] = Field(default=None, description="A list of enabled alert rule objects.", alias="alertRules") prefix: StrictStr = Field(description="a.b.c.d is a network address, with the prefix length defined as e. Prefixes can be any length from 8 to 24.") - __properties: ClassVar[List[str]] = ["createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "sharedWithAccounts", "enabled", "monitors", "includeCoveredPrefixes", "usePublicBgp", "alertsEnabled", "alertRules", "prefix"] + __properties: ClassVar[List[str]] = ["createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "tags", "sharedWithAccounts", "enabled", "monitors", "includeCoveredPrefixes", "usePublicBgp", "alertsEnabled", "alertRules", "prefix"] model_config = ConfigDict( populate_by_name=True, @@ -95,6 +97,7 @@ class BgpTestResponse(BaseModel): * 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([ "created_by", @@ -106,6 +109,7 @@ class BgpTestResponse(BaseModel): "test_id", "type", "labels", + "tags", "shared_with_accounts", "monitors", ]) @@ -125,6 +129,13 @@ class BgpTestResponse(BaseModel): if _item: _items.append(_item.to_dict()) _dict['labels'] = _items + # override the default output from pydantic by calling `to_dict()` of each item in tags (list) + _items = [] + if self.tags: + for _item in self.tags: + if _item: + _items.append(_item.to_dict()) + _dict['tags'] = _items # override the default output from pydantic by calling `to_dict()` of each item in shared_with_accounts (list) _items = [] if self.shared_with_accounts: @@ -170,6 +181,7 @@ class BgpTestResponse(BaseModel): "type": obj.get("type"), "_links": TestLinks.from_dict(obj["_links"]) if obj.get("_links") is not None else None, "labels": [TestLabel.from_dict(_item) for _item in obj["labels"]] if obj.get("labels") is not None else None, + "tags": [TestTag.from_dict(_item) for _item in obj["tags"]] if obj.get("tags") is not None else None, "sharedWithAccounts": [SharedWithAccount.from_dict(_item) for _item in obj["sharedWithAccounts"]] if obj.get("sharedWithAccounts") is not None else None, "enabled": obj.get("enabled") if obj.get("enabled") is not None else True, "monitors": [Monitor.from_dict(_item) for _item in obj["monitors"]] if obj.get("monitors") is not None else None, diff --git a/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/dns_sec_instant_test.py b/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/dns_sec_instant_test.py index 1ad4e22b..5da4aa54 100644 --- a/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/dns_sec_instant_test.py +++ b/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/dns_sec_instant_test.py @@ -23,6 +23,7 @@ from thousandeyes_sdk.tests.models.dns_query_class import DnsQueryClass from thousandeyes_sdk.tests.models.shared_with_account import SharedWithAccount from thousandeyes_sdk.tests.models.test_label import TestLabel from thousandeyes_sdk.tests.models.test_links import TestLinks +from thousandeyes_sdk.tests.models.test_tag import TestTag from typing import Optional, Set from typing_extensions import Self @@ -42,11 +43,12 @@ class DnsSecInstantTest(BaseModel): type: Optional[StrictStr] = None links: Optional[TestLinks] = Field(default=None, alias="_links") labels: Optional[List[TestLabel]] = Field(default=None, description="Labels to which the test is assigned. This field is not returned for Instant Tests.") + tags: Optional[List[TestTag]] = Field(default=None, description="Tags assigned to the test. Returned only when `expand=tag` is specified. This field is not returned for Instant Tests. For more information, see `/tags`.") shared_with_accounts: Optional[List[SharedWithAccount]] = Field(default=None, alias="sharedWithAccounts") domain: StrictStr = Field(description="The target record for the test, with the record type suffixed. If no record type is specified, the test defaults to an ANY record.") dns_query_class: Optional[DnsQueryClass] = Field(default=None, alias="dnsQueryClass") randomized_start_time: Optional[StrictBool] = Field(default=False, description="Indicates whether agents should randomize the start time in each test round.", alias="randomizedStartTime") - __properties: ClassVar[List[str]] = ["createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "sharedWithAccounts", "domain", "dnsQueryClass", "randomizedStartTime"] + __properties: ClassVar[List[str]] = ["createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "tags", "sharedWithAccounts", "domain", "dnsQueryClass", "randomizedStartTime"] model_config = ConfigDict( populate_by_name=True, @@ -89,6 +91,7 @@ class DnsSecInstantTest(BaseModel): * 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([ "created_by", @@ -100,6 +103,7 @@ class DnsSecInstantTest(BaseModel): "test_id", "type", "labels", + "tags", "shared_with_accounts", ]) @@ -118,6 +122,13 @@ class DnsSecInstantTest(BaseModel): if _item: _items.append(_item.to_dict()) _dict['labels'] = _items + # override the default output from pydantic by calling `to_dict()` of each item in tags (list) + _items = [] + if self.tags: + for _item in self.tags: + if _item: + _items.append(_item.to_dict()) + _dict['tags'] = _items # override the default output from pydantic by calling `to_dict()` of each item in shared_with_accounts (list) _items = [] if self.shared_with_accounts: @@ -149,6 +160,7 @@ class DnsSecInstantTest(BaseModel): "type": obj.get("type"), "_links": TestLinks.from_dict(obj["_links"]) if obj.get("_links") is not None else None, "labels": [TestLabel.from_dict(_item) for _item in obj["labels"]] if obj.get("labels") is not None else None, + "tags": [TestTag.from_dict(_item) for _item in obj["tags"]] if obj.get("tags") is not None else None, "sharedWithAccounts": [SharedWithAccount.from_dict(_item) for _item in obj["sharedWithAccounts"]] if obj.get("sharedWithAccounts") is not None else None, "domain": obj.get("domain"), "dnsQueryClass": obj.get("dnsQueryClass"), diff --git a/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/dns_sec_test.py b/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/dns_sec_test.py index 5b2dc72b..34617c8a 100644 --- a/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/dns_sec_test.py +++ b/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/dns_sec_test.py @@ -25,6 +25,7 @@ from thousandeyes_sdk.tests.models.shared_with_account import SharedWithAccount from thousandeyes_sdk.tests.models.test_interval import TestInterval from thousandeyes_sdk.tests.models.test_label import TestLabel from thousandeyes_sdk.tests.models.test_links import TestLinks +from thousandeyes_sdk.tests.models.test_tag import TestTag from typing import Optional, Set from typing_extensions import Self @@ -48,11 +49,12 @@ class DnsSecTest(BaseModel): type: Optional[StrictStr] = None links: Optional[TestLinks] = Field(default=None, alias="_links") labels: Optional[List[TestLabel]] = Field(default=None, description="Labels to which the test is assigned. This field is not returned for Instant Tests.") + tags: Optional[List[TestTag]] = Field(default=None, description="Tags assigned to the test. Returned only when `expand=tag` is specified. This field is not returned for Instant Tests. For more information, see `/tags`.") shared_with_accounts: Optional[List[SharedWithAccount]] = Field(default=None, alias="sharedWithAccounts") domain: StrictStr = Field(description="The target record for the test, with the record type suffixed. If no record type is specified, the test defaults to an ANY record.") dns_query_class: Optional[DnsQueryClass] = Field(default=None, alias="dnsQueryClass") randomized_start_time: Optional[StrictBool] = Field(default=False, description="Indicates whether agents should randomize the start time in each test round.", alias="randomizedStartTime") - __properties: ClassVar[List[str]] = ["interval", "alertsEnabled", "enabled", "alertRules", "createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "sharedWithAccounts", "domain", "dnsQueryClass", "randomizedStartTime"] + __properties: ClassVar[List[str]] = ["interval", "alertsEnabled", "enabled", "alertRules", "createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "tags", "sharedWithAccounts", "domain", "dnsQueryClass", "randomizedStartTime"] model_config = ConfigDict( populate_by_name=True, @@ -95,6 +97,7 @@ class DnsSecTest(BaseModel): * 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([ "created_by", @@ -106,6 +109,7 @@ class DnsSecTest(BaseModel): "test_id", "type", "labels", + "tags", "shared_with_accounts", ]) @@ -131,6 +135,13 @@ class DnsSecTest(BaseModel): if _item: _items.append(_item.to_dict()) _dict['labels'] = _items + # override the default output from pydantic by calling `to_dict()` of each item in tags (list) + _items = [] + if self.tags: + for _item in self.tags: + if _item: + _items.append(_item.to_dict()) + _dict['tags'] = _items # override the default output from pydantic by calling `to_dict()` of each item in shared_with_accounts (list) _items = [] if self.shared_with_accounts: @@ -166,6 +177,7 @@ class DnsSecTest(BaseModel): "type": obj.get("type"), "_links": TestLinks.from_dict(obj["_links"]) if obj.get("_links") is not None else None, "labels": [TestLabel.from_dict(_item) for _item in obj["labels"]] if obj.get("labels") is not None else None, + "tags": [TestTag.from_dict(_item) for _item in obj["tags"]] if obj.get("tags") is not None else None, "sharedWithAccounts": [SharedWithAccount.from_dict(_item) for _item in obj["sharedWithAccounts"]] if obj.get("sharedWithAccounts") is not None else None, "domain": obj.get("domain"), "dnsQueryClass": obj.get("dnsQueryClass"), diff --git a/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/dns_sec_test_request.py b/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/dns_sec_test_request.py index cfc3605e..71002559 100644 --- a/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/dns_sec_test_request.py +++ b/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/dns_sec_test_request.py @@ -33,7 +33,6 @@ class DnsSecTestRequest(BaseModel): interval: TestInterval alerts_enabled: Optional[StrictBool] = Field(default=None, description="Indicates if alerts are enabled.", alias="alertsEnabled") enabled: Optional[StrictBool] = Field(default=True, description="Test is enabled.") - alert_rules: Optional[List[StrictStr]] = Field(default=None, description="List of alert rules IDs to apply to the test (get `ruleId` from `/alerts/rules` endpoint. If `alertsEnabled` is set to `true` and `alertRules` is not included on test creation or update, applicable user default alert rules will be used)", alias="alertRules") created_by: Optional[StrictStr] = Field(default=None, description="User that created the test.", alias="createdBy") created_date: Optional[datetime] = Field(default=None, description="UTC created date (ISO date-time format).", alias="createdDate") description: Optional[StrictStr] = Field(default=None, description="A description of the test.") @@ -45,14 +44,15 @@ class DnsSecTestRequest(BaseModel): test_name: Optional[StrictStr] = Field(default=None, description="The name of the test. Test name must be unique.", alias="testName") type: Optional[StrictStr] = None links: Optional[TestLinks] = Field(default=None, alias="_links") - labels: Optional[List[StrictStr]] = Field(default=None, description="Contains list of test label IDs (get `labelId` from `/labels` endpoint)") - shared_with_accounts: Optional[List[StrictStr]] = Field(default=None, description="Contains list of account group IDs. Test is shared with the listed account groups (get `aid` from `/account-groups` endpoint)", alias="sharedWithAccounts") domain: StrictStr = Field(description="The target record for the test, with the record type suffixed. If no record type is specified, the test defaults to an ANY record.") dns_query_class: Optional[DnsQueryClass] = Field(default=None, alias="dnsQueryClass") randomized_start_time: Optional[StrictBool] = Field(default=False, description="Indicates whether agents should randomize the start time in each test round.", alias="randomizedStartTime") + labels: Optional[List[StrictStr]] = Field(default=None, description="Contains list of test label IDs (get `labelId` from `/labels` endpoint)") tags: Optional[List[StrictStr]] = Field(default=None, description="Contains list of test tag IDs (get `id` from `/tags` endpoint).") + shared_with_accounts: Optional[List[StrictStr]] = Field(default=None, description="Contains list of account group IDs. Test is shared with the listed account groups (get `aid` from `/account-groups` endpoint)", alias="sharedWithAccounts") + alert_rules: Optional[List[StrictStr]] = Field(default=None, description="List of alert rules IDs to apply to the test (get `ruleId` from `/alerts/rules` endpoint. If `alertsEnabled` is set to `true` and `alertRules` is not included on test creation or update, applicable user default alert rules will be used)", alias="alertRules") agents: List[TestAgentRequest] = Field(description="Contains list of Agent IDs (get `agentId` from `/agents` endpoint).") - __properties: ClassVar[List[str]] = ["interval", "alertsEnabled", "enabled", "alertRules", "createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "sharedWithAccounts", "domain", "dnsQueryClass", "randomizedStartTime", "tags", "agents"] + __properties: ClassVar[List[str]] = ["interval", "alertsEnabled", "enabled", "createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "domain", "dnsQueryClass", "randomizedStartTime", "labels", "tags", "sharedWithAccounts", "alertRules", "agents"] model_config = ConfigDict( populate_by_name=True, @@ -135,7 +135,6 @@ class DnsSecTestRequest(BaseModel): "interval": obj.get("interval"), "alertsEnabled": obj.get("alertsEnabled"), "enabled": obj.get("enabled") if obj.get("enabled") is not None else True, - "alertRules": obj.get("alertRules"), "createdBy": obj.get("createdBy"), "createdDate": obj.get("createdDate"), "description": obj.get("description"), @@ -147,12 +146,13 @@ class DnsSecTestRequest(BaseModel): "testName": obj.get("testName"), "type": obj.get("type"), "_links": TestLinks.from_dict(obj["_links"]) if obj.get("_links") is not None else None, - "labels": obj.get("labels"), - "sharedWithAccounts": obj.get("sharedWithAccounts"), "domain": obj.get("domain"), "dnsQueryClass": obj.get("dnsQueryClass"), "randomizedStartTime": obj.get("randomizedStartTime") if obj.get("randomizedStartTime") is not None else False, + "labels": obj.get("labels"), "tags": obj.get("tags"), + "sharedWithAccounts": obj.get("sharedWithAccounts"), + "alertRules": obj.get("alertRules"), "agents": [TestAgentRequest.from_dict(_item) for _item in obj["agents"]] if obj.get("agents") is not None else None }) return _obj diff --git a/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/dns_sec_test_response.py b/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/dns_sec_test_response.py index a6768d4a..543f595f 100644 --- a/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/dns_sec_test_response.py +++ b/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/dns_sec_test_response.py @@ -26,6 +26,7 @@ from thousandeyes_sdk.tests.models.shared_with_account import SharedWithAccount from thousandeyes_sdk.tests.models.test_interval import TestInterval from thousandeyes_sdk.tests.models.test_label import TestLabel from thousandeyes_sdk.tests.models.test_links import TestLinks +from thousandeyes_sdk.tests.models.test_tag import TestTag from typing import Optional, Set from typing_extensions import Self @@ -49,12 +50,13 @@ class DnsSecTestResponse(BaseModel): type: Optional[StrictStr] = None links: Optional[TestLinks] = Field(default=None, alias="_links") labels: Optional[List[TestLabel]] = Field(default=None, description="Labels to which the test is assigned. This field is not returned for Instant Tests.") + tags: Optional[List[TestTag]] = Field(default=None, description="Tags assigned to the test. Returned only when `expand=tag` is specified. This field is not returned for Instant Tests. For more information, see `/tags`.") shared_with_accounts: Optional[List[SharedWithAccount]] = Field(default=None, alias="sharedWithAccounts") domain: StrictStr = Field(description="The target record for the test, with the record type suffixed. If no record type is specified, the test defaults to an ANY record.") dns_query_class: Optional[DnsQueryClass] = Field(default=None, alias="dnsQueryClass") randomized_start_time: Optional[StrictBool] = Field(default=False, description="Indicates whether agents should randomize the start time in each test round.", alias="randomizedStartTime") agents: Optional[List[AgentResponse]] = Field(default=None, description="Contains list of agents.") - __properties: ClassVar[List[str]] = ["interval", "alertsEnabled", "enabled", "alertRules", "createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "sharedWithAccounts", "domain", "dnsQueryClass", "randomizedStartTime", "agents"] + __properties: ClassVar[List[str]] = ["interval", "alertsEnabled", "enabled", "alertRules", "createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "tags", "sharedWithAccounts", "domain", "dnsQueryClass", "randomizedStartTime", "agents"] model_config = ConfigDict( populate_by_name=True, @@ -97,6 +99,7 @@ class DnsSecTestResponse(BaseModel): * 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([ "created_by", @@ -108,6 +111,7 @@ class DnsSecTestResponse(BaseModel): "test_id", "type", "labels", + "tags", "shared_with_accounts", ]) @@ -133,6 +137,13 @@ class DnsSecTestResponse(BaseModel): if _item: _items.append(_item.to_dict()) _dict['labels'] = _items + # override the default output from pydantic by calling `to_dict()` of each item in tags (list) + _items = [] + if self.tags: + for _item in self.tags: + if _item: + _items.append(_item.to_dict()) + _dict['tags'] = _items # override the default output from pydantic by calling `to_dict()` of each item in shared_with_accounts (list) _items = [] if self.shared_with_accounts: @@ -175,6 +186,7 @@ class DnsSecTestResponse(BaseModel): "type": obj.get("type"), "_links": TestLinks.from_dict(obj["_links"]) if obj.get("_links") is not None else None, "labels": [TestLabel.from_dict(_item) for _item in obj["labels"]] if obj.get("labels") is not None else None, + "tags": [TestTag.from_dict(_item) for _item in obj["tags"]] if obj.get("tags") is not None else None, "sharedWithAccounts": [SharedWithAccount.from_dict(_item) for _item in obj["sharedWithAccounts"]] if obj.get("sharedWithAccounts") is not None else None, "domain": obj.get("domain"), "dnsQueryClass": obj.get("dnsQueryClass"), diff --git a/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/dns_server_instant_test.py b/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/dns_server_instant_test.py index ef3d0697..96017e48 100644 --- a/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/dns_server_instant_test.py +++ b/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/dns_server_instant_test.py @@ -30,6 +30,7 @@ from thousandeyes_sdk.tests.models.test_links import TestLinks from thousandeyes_sdk.tests.models.test_path_trace_mode import TestPathTraceMode from thousandeyes_sdk.tests.models.test_probe_mode import TestProbeMode from thousandeyes_sdk.tests.models.test_protocol import TestProtocol +from thousandeyes_sdk.tests.models.test_tag import TestTag from typing import Optional, Set from typing_extensions import Self @@ -49,6 +50,7 @@ class DnsServerInstantTest(BaseModel): type: Optional[StrictStr] = None links: Optional[TestLinks] = Field(default=None, alias="_links") labels: Optional[List[TestLabel]] = Field(default=None, description="Labels to which the test is assigned. This field is not returned for Instant Tests.") + tags: Optional[List[TestTag]] = Field(default=None, description="Tags assigned to the test. Returned only when `expand=tag` is specified. This field is not returned for Instant Tests. For more information, see `/tags`.") shared_with_accounts: Optional[List[SharedWithAccount]] = Field(default=None, alias="sharedWithAccounts") bandwidth_measurements: Optional[StrictBool] = Field(default=None, description="Set to `true` to enable bandwidth measurements, only applies to Enterprise agents assigned to the test.", alias="bandwidthMeasurements") dns_servers: List[TestDnsServer] = Field(alias="dnsServers") @@ -65,7 +67,7 @@ class DnsServerInstantTest(BaseModel): ipv6_policy: Optional[TestIpv6Policy] = Field(default=None, alias="ipv6Policy") fixed_packet_rate: Optional[Annotated[int, Field(le=100, strict=True, ge=0)]] = Field(default=None, description="Sets packets rate sent to measure the network in packets per second.", alias="fixedPacketRate") dns_query_class: Optional[DnsQueryClass] = Field(default=None, alias="dnsQueryClass") - __properties: ClassVar[List[str]] = ["createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "sharedWithAccounts", "bandwidthMeasurements", "dnsServers", "dnsTransportProtocol", "domain", "mtuMeasurements", "networkMeasurements", "numPathTraces", "pathTraceMode", "probeMode", "protocol", "randomizedStartTime", "recursiveQueries", "ipv6Policy", "fixedPacketRate", "dnsQueryClass"] + __properties: ClassVar[List[str]] = ["createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "tags", "sharedWithAccounts", "bandwidthMeasurements", "dnsServers", "dnsTransportProtocol", "domain", "mtuMeasurements", "networkMeasurements", "numPathTraces", "pathTraceMode", "probeMode", "protocol", "randomizedStartTime", "recursiveQueries", "ipv6Policy", "fixedPacketRate", "dnsQueryClass"] model_config = ConfigDict( populate_by_name=True, @@ -108,6 +110,7 @@ class DnsServerInstantTest(BaseModel): * 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([ "created_by", @@ -119,6 +122,7 @@ class DnsServerInstantTest(BaseModel): "test_id", "type", "labels", + "tags", "shared_with_accounts", ]) @@ -137,6 +141,13 @@ class DnsServerInstantTest(BaseModel): if _item: _items.append(_item.to_dict()) _dict['labels'] = _items + # override the default output from pydantic by calling `to_dict()` of each item in tags (list) + _items = [] + if self.tags: + for _item in self.tags: + if _item: + _items.append(_item.to_dict()) + _dict['tags'] = _items # override the default output from pydantic by calling `to_dict()` of each item in shared_with_accounts (list) _items = [] if self.shared_with_accounts: @@ -175,6 +186,7 @@ class DnsServerInstantTest(BaseModel): "type": obj.get("type"), "_links": TestLinks.from_dict(obj["_links"]) if obj.get("_links") is not None else None, "labels": [TestLabel.from_dict(_item) for _item in obj["labels"]] if obj.get("labels") is not None else None, + "tags": [TestTag.from_dict(_item) for _item in obj["tags"]] if obj.get("tags") is not None else None, "sharedWithAccounts": [SharedWithAccount.from_dict(_item) for _item in obj["sharedWithAccounts"]] if obj.get("sharedWithAccounts") is not None else None, "bandwidthMeasurements": obj.get("bandwidthMeasurements"), "dnsServers": [TestDnsServer.from_dict(_item) for _item in obj["dnsServers"]] if obj.get("dnsServers") is not None else None, diff --git a/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/dns_server_request_properties.py b/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/dns_server_request_properties.py new file mode 100644 index 00000000..b3449662 --- /dev/null +++ b/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/dns_server_request_properties.py @@ -0,0 +1,126 @@ +# coding: utf-8 + +""" + Tests API + + **Note:** The Page Load Tests, API Tests, and Web Transaction Tests APIs are not available for ThousandEyes for Government instance. This API allows you to list, create, edit, and delete Network and Application Synthetics tests. + + 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 thousandeyes_sdk.tests.models.dns_query_class import DnsQueryClass +from thousandeyes_sdk.tests.models.test_dns_transport_protocol import TestDnsTransportProtocol +from thousandeyes_sdk.tests.models.test_ipv6_policy import TestIpv6Policy +from thousandeyes_sdk.tests.models.test_path_trace_mode import TestPathTraceMode +from thousandeyes_sdk.tests.models.test_probe_mode import TestProbeMode +from thousandeyes_sdk.tests.models.test_protocol import TestProtocol +from typing import Optional, Set +from typing_extensions import Self + +class DnsServerRequestProperties(BaseModel): + """ + DnsServerRequestProperties + """ # noqa: E501 + bandwidth_measurements: Optional[StrictBool] = Field(default=None, description="Set to `true` to enable bandwidth measurements, only applies to Enterprise agents assigned to the test.", alias="bandwidthMeasurements") + dns_servers: List[StrictStr] = Field(description="A list of DNS server FQDN.", alias="dnsServers") + dns_transport_protocol: Optional[TestDnsTransportProtocol] = Field(default=None, alias="dnsTransportProtocol") + domain: StrictStr = Field(description="The target record for the test, with the record type suffixed. If no record type is specified, the test defaults to an ANY record.") + mtu_measurements: Optional[StrictBool] = Field(default=None, description="Set `true` to measure MTU sizes on network from agents to the target.", alias="mtuMeasurements") + network_measurements: Optional[StrictBool] = Field(default=True, description="Enable or disable network measurements. Set to true to enable or false to disable network measurements.", alias="networkMeasurements") + num_path_traces: Optional[Annotated[int, Field(le=10, strict=True, ge=1)]] = Field(default=3, description="Number of path traces executed by the agent.", alias="numPathTraces") + path_trace_mode: Optional[TestPathTraceMode] = Field(default=None, alias="pathTraceMode") + probe_mode: Optional[TestProbeMode] = Field(default=None, alias="probeMode") + protocol: Optional[TestProtocol] = None + randomized_start_time: Optional[StrictBool] = Field(default=False, description="Indicates whether agents should randomize the start time in each test round.", alias="randomizedStartTime") + recursive_queries: Optional[StrictBool] = Field(default=None, description="Set true to run query with RD (recursion desired) flag enabled.", alias="recursiveQueries") + ipv6_policy: Optional[TestIpv6Policy] = Field(default=None, alias="ipv6Policy") + fixed_packet_rate: Optional[Annotated[int, Field(le=100, strict=True, ge=0)]] = Field(default=None, description="Sets packets rate sent to measure the network in packets per second.", alias="fixedPacketRate") + dns_query_class: Optional[DnsQueryClass] = Field(default=None, alias="dnsQueryClass") + type: Optional[StrictStr] = None + __properties: ClassVar[List[str]] = ["bandwidthMeasurements", "dnsServers", "dnsTransportProtocol", "domain", "mtuMeasurements", "networkMeasurements", "numPathTraces", "pathTraceMode", "probeMode", "protocol", "randomizedStartTime", "recursiveQueries", "ipv6Policy", "fixedPacketRate", "dnsQueryClass", "type"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + extra="allow", + ) + + + 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 self.model_dump_json(by_alias=True, exclude_unset=True, exclude_none=True) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of DnsServerRequestProperties 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. + * OpenAPI `readOnly` fields are excluded. + """ + excluded_fields: Set[str] = set([ + "type", + ]) + + _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 DnsServerRequestProperties from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "bandwidthMeasurements": obj.get("bandwidthMeasurements"), + "dnsServers": obj.get("dnsServers"), + "dnsTransportProtocol": obj.get("dnsTransportProtocol"), + "domain": obj.get("domain"), + "mtuMeasurements": obj.get("mtuMeasurements"), + "networkMeasurements": obj.get("networkMeasurements") if obj.get("networkMeasurements") is not None else True, + "numPathTraces": obj.get("numPathTraces") if obj.get("numPathTraces") is not None else 3, + "pathTraceMode": obj.get("pathTraceMode"), + "probeMode": obj.get("probeMode"), + "protocol": obj.get("protocol"), + "randomizedStartTime": obj.get("randomizedStartTime") if obj.get("randomizedStartTime") is not None else False, + "recursiveQueries": obj.get("recursiveQueries"), + "ipv6Policy": obj.get("ipv6Policy"), + "fixedPacketRate": obj.get("fixedPacketRate"), + "dnsQueryClass": obj.get("dnsQueryClass"), + "type": obj.get("type") + }) + return _obj + + diff --git a/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/dns_server_test.py b/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/dns_server_test.py index a41b4792..fa30780f 100644 --- a/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/dns_server_test.py +++ b/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/dns_server_test.py @@ -33,6 +33,7 @@ from thousandeyes_sdk.tests.models.test_links import TestLinks from thousandeyes_sdk.tests.models.test_path_trace_mode import TestPathTraceMode from thousandeyes_sdk.tests.models.test_probe_mode import TestProbeMode from thousandeyes_sdk.tests.models.test_protocol import TestProtocol +from thousandeyes_sdk.tests.models.test_tag import TestTag from typing import Optional, Set from typing_extensions import Self @@ -56,6 +57,7 @@ class DnsServerTest(BaseModel): type: Optional[StrictStr] = None links: Optional[TestLinks] = Field(default=None, alias="_links") labels: Optional[List[TestLabel]] = Field(default=None, description="Labels to which the test is assigned. This field is not returned for Instant Tests.") + tags: Optional[List[TestTag]] = Field(default=None, description="Tags assigned to the test. Returned only when `expand=tag` is specified. This field is not returned for Instant Tests. For more information, see `/tags`.") shared_with_accounts: Optional[List[SharedWithAccount]] = Field(default=None, alias="sharedWithAccounts") bandwidth_measurements: Optional[StrictBool] = Field(default=None, description="Set to `true` to enable bandwidth measurements, only applies to Enterprise agents assigned to the test.", alias="bandwidthMeasurements") dns_servers: List[TestDnsServer] = Field(alias="dnsServers") @@ -75,7 +77,7 @@ class DnsServerTest(BaseModel): bgp_measurements: Optional[StrictBool] = Field(default=True, description="Set to `true` to enable bgp measurements.", alias="bgpMeasurements") use_public_bgp: Optional[StrictBool] = Field(default=True, description="Indicate if all available public BGP monitors should be used, when ommited defaults to `bgpMeasurements` value.", alias="usePublicBgp") monitors: Optional[List[Monitor]] = Field(default=None, description="Contains list of enabled BGP monitors.") - __properties: ClassVar[List[str]] = ["interval", "alertsEnabled", "enabled", "alertRules", "createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "sharedWithAccounts", "bandwidthMeasurements", "dnsServers", "dnsTransportProtocol", "domain", "mtuMeasurements", "networkMeasurements", "numPathTraces", "pathTraceMode", "probeMode", "protocol", "randomizedStartTime", "recursiveQueries", "ipv6Policy", "fixedPacketRate", "dnsQueryClass", "bgpMeasurements", "usePublicBgp", "monitors"] + __properties: ClassVar[List[str]] = ["interval", "alertsEnabled", "enabled", "alertRules", "createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "tags", "sharedWithAccounts", "bandwidthMeasurements", "dnsServers", "dnsTransportProtocol", "domain", "mtuMeasurements", "networkMeasurements", "numPathTraces", "pathTraceMode", "probeMode", "protocol", "randomizedStartTime", "recursiveQueries", "ipv6Policy", "fixedPacketRate", "dnsQueryClass", "bgpMeasurements", "usePublicBgp", "monitors"] model_config = ConfigDict( populate_by_name=True, @@ -119,6 +121,7 @@ class DnsServerTest(BaseModel): * 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([ "created_by", @@ -130,6 +133,7 @@ class DnsServerTest(BaseModel): "test_id", "type", "labels", + "tags", "shared_with_accounts", "monitors", ]) @@ -156,6 +160,13 @@ class DnsServerTest(BaseModel): if _item: _items.append(_item.to_dict()) _dict['labels'] = _items + # override the default output from pydantic by calling `to_dict()` of each item in tags (list) + _items = [] + if self.tags: + for _item in self.tags: + if _item: + _items.append(_item.to_dict()) + _dict['tags'] = _items # override the default output from pydantic by calling `to_dict()` of each item in shared_with_accounts (list) _items = [] if self.shared_with_accounts: @@ -205,6 +216,7 @@ class DnsServerTest(BaseModel): "type": obj.get("type"), "_links": TestLinks.from_dict(obj["_links"]) if obj.get("_links") is not None else None, "labels": [TestLabel.from_dict(_item) for _item in obj["labels"]] if obj.get("labels") is not None else None, + "tags": [TestTag.from_dict(_item) for _item in obj["tags"]] if obj.get("tags") is not None else None, "sharedWithAccounts": [SharedWithAccount.from_dict(_item) for _item in obj["sharedWithAccounts"]] if obj.get("sharedWithAccounts") is not None else None, "bandwidthMeasurements": obj.get("bandwidthMeasurements"), "dnsServers": [TestDnsServer.from_dict(_item) for _item in obj["dnsServers"]] if obj.get("dnsServers") is not None else None, diff --git a/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/dns_server_test_request.py b/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/dns_server_test_request.py index 56d55b58..16752896 100644 --- a/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/dns_server_test_request.py +++ b/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/dns_server_test_request.py @@ -39,7 +39,6 @@ class DnsServerTestRequest(BaseModel): interval: TestInterval alerts_enabled: Optional[StrictBool] = Field(default=None, description="Indicates if alerts are enabled.", alias="alertsEnabled") enabled: Optional[StrictBool] = Field(default=True, description="Test is enabled.") - alert_rules: Optional[List[StrictStr]] = Field(default=None, description="List of alert rules IDs to apply to the test (get `ruleId` from `/alerts/rules` endpoint. If `alertsEnabled` is set to `true` and `alertRules` is not included on test creation or update, applicable user default alert rules will be used)", alias="alertRules") created_by: Optional[StrictStr] = Field(default=None, description="User that created the test.", alias="createdBy") created_date: Optional[datetime] = Field(default=None, description="UTC created date (ISO date-time format).", alias="createdDate") description: Optional[StrictStr] = Field(default=None, description="A description of the test.") @@ -51,8 +50,6 @@ class DnsServerTestRequest(BaseModel): test_name: Optional[StrictStr] = Field(default=None, description="The name of the test. Test name must be unique.", alias="testName") type: Optional[StrictStr] = None links: Optional[TestLinks] = Field(default=None, alias="_links") - labels: Optional[List[StrictStr]] = Field(default=None, description="Contains list of test label IDs (get `labelId` from `/labels` endpoint)") - shared_with_accounts: Optional[List[StrictStr]] = Field(default=None, description="Contains list of account group IDs. Test is shared with the listed account groups (get `aid` from `/account-groups` endpoint)", alias="sharedWithAccounts") bandwidth_measurements: Optional[StrictBool] = Field(default=None, description="Set to `true` to enable bandwidth measurements, only applies to Enterprise agents assigned to the test.", alias="bandwidthMeasurements") dns_servers: List[StrictStr] = Field(description="A list of DNS server FQDN.", alias="dnsServers") dns_transport_protocol: Optional[TestDnsTransportProtocol] = Field(default=None, alias="dnsTransportProtocol") @@ -70,10 +67,13 @@ class DnsServerTestRequest(BaseModel): dns_query_class: Optional[DnsQueryClass] = Field(default=None, alias="dnsQueryClass") bgp_measurements: Optional[StrictBool] = Field(default=True, description="Set to `true` to enable bgp measurements.", alias="bgpMeasurements") use_public_bgp: Optional[StrictBool] = Field(default=True, description="Indicate if all available public BGP monitors should be used, when ommited defaults to `bgpMeasurements` value.", alias="usePublicBgp") - monitors: Optional[List[StrictStr]] = Field(default=None, description="Contains list of BGP monitor IDs (get `monitorId` from `/monitors` endpoint)") + labels: Optional[List[StrictStr]] = Field(default=None, description="Contains list of test label IDs (get `labelId` from `/labels` endpoint)") tags: Optional[List[StrictStr]] = Field(default=None, description="Contains list of test tag IDs (get `id` from `/tags` endpoint).") + shared_with_accounts: Optional[List[StrictStr]] = Field(default=None, description="Contains list of account group IDs. Test is shared with the listed account groups (get `aid` from `/account-groups` endpoint)", alias="sharedWithAccounts") + alert_rules: Optional[List[StrictStr]] = Field(default=None, description="List of alert rules IDs to apply to the test (get `ruleId` from `/alerts/rules` endpoint. If `alertsEnabled` is set to `true` and `alertRules` is not included on test creation or update, applicable user default alert rules will be used)", alias="alertRules") agents: List[TestAgentRequest] = Field(description="Contains list of Agent IDs (get `agentId` from `/agents` endpoint).") - __properties: ClassVar[List[str]] = ["interval", "alertsEnabled", "enabled", "alertRules", "createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "sharedWithAccounts", "bandwidthMeasurements", "dnsServers", "dnsTransportProtocol", "domain", "mtuMeasurements", "networkMeasurements", "numPathTraces", "pathTraceMode", "probeMode", "protocol", "randomizedStartTime", "recursiveQueries", "ipv6Policy", "fixedPacketRate", "dnsQueryClass", "bgpMeasurements", "usePublicBgp", "monitors", "tags", "agents"] + monitors: Optional[List[StrictStr]] = Field(default=None, description="Contains list of BGP monitor IDs (get `monitorId` from `/monitors` endpoint)") + __properties: ClassVar[List[str]] = ["interval", "alertsEnabled", "enabled", "createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "bandwidthMeasurements", "dnsServers", "dnsTransportProtocol", "domain", "mtuMeasurements", "networkMeasurements", "numPathTraces", "pathTraceMode", "probeMode", "protocol", "randomizedStartTime", "recursiveQueries", "ipv6Policy", "fixedPacketRate", "dnsQueryClass", "bgpMeasurements", "usePublicBgp", "labels", "tags", "sharedWithAccounts", "alertRules", "agents", "monitors"] model_config = ConfigDict( populate_by_name=True, @@ -156,7 +156,6 @@ class DnsServerTestRequest(BaseModel): "interval": obj.get("interval"), "alertsEnabled": obj.get("alertsEnabled"), "enabled": obj.get("enabled") if obj.get("enabled") is not None else True, - "alertRules": obj.get("alertRules"), "createdBy": obj.get("createdBy"), "createdDate": obj.get("createdDate"), "description": obj.get("description"), @@ -168,8 +167,6 @@ class DnsServerTestRequest(BaseModel): "testName": obj.get("testName"), "type": obj.get("type"), "_links": TestLinks.from_dict(obj["_links"]) if obj.get("_links") is not None else None, - "labels": obj.get("labels"), - "sharedWithAccounts": obj.get("sharedWithAccounts"), "bandwidthMeasurements": obj.get("bandwidthMeasurements"), "dnsServers": obj.get("dnsServers"), "dnsTransportProtocol": obj.get("dnsTransportProtocol"), @@ -187,9 +184,12 @@ class DnsServerTestRequest(BaseModel): "dnsQueryClass": obj.get("dnsQueryClass"), "bgpMeasurements": obj.get("bgpMeasurements") if obj.get("bgpMeasurements") is not None else True, "usePublicBgp": obj.get("usePublicBgp") if obj.get("usePublicBgp") is not None else True, - "monitors": obj.get("monitors"), + "labels": obj.get("labels"), "tags": obj.get("tags"), - "agents": [TestAgentRequest.from_dict(_item) for _item in obj["agents"]] if obj.get("agents") is not None else None + "sharedWithAccounts": obj.get("sharedWithAccounts"), + "alertRules": obj.get("alertRules"), + "agents": [TestAgentRequest.from_dict(_item) for _item in obj["agents"]] if obj.get("agents") is not None else None, + "monitors": obj.get("monitors") }) return _obj diff --git a/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/dns_server_test_response.py b/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/dns_server_test_response.py index e2dcb726..e59619d5 100644 --- a/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/dns_server_test_response.py +++ b/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/dns_server_test_response.py @@ -34,6 +34,7 @@ from thousandeyes_sdk.tests.models.test_links import TestLinks from thousandeyes_sdk.tests.models.test_path_trace_mode import TestPathTraceMode from thousandeyes_sdk.tests.models.test_probe_mode import TestProbeMode from thousandeyes_sdk.tests.models.test_protocol import TestProtocol +from thousandeyes_sdk.tests.models.test_tag import TestTag from typing import Optional, Set from typing_extensions import Self @@ -57,6 +58,7 @@ class DnsServerTestResponse(BaseModel): type: Optional[StrictStr] = None links: Optional[TestLinks] = Field(default=None, alias="_links") labels: Optional[List[TestLabel]] = Field(default=None, description="Labels to which the test is assigned. This field is not returned for Instant Tests.") + tags: Optional[List[TestTag]] = Field(default=None, description="Tags assigned to the test. Returned only when `expand=tag` is specified. This field is not returned for Instant Tests. For more information, see `/tags`.") shared_with_accounts: Optional[List[SharedWithAccount]] = Field(default=None, alias="sharedWithAccounts") bandwidth_measurements: Optional[StrictBool] = Field(default=None, description="Set to `true` to enable bandwidth measurements, only applies to Enterprise agents assigned to the test.", alias="bandwidthMeasurements") dns_servers: List[TestDnsServer] = Field(alias="dnsServers") @@ -77,7 +79,7 @@ class DnsServerTestResponse(BaseModel): use_public_bgp: Optional[StrictBool] = Field(default=True, description="Indicate if all available public BGP monitors should be used, when ommited defaults to `bgpMeasurements` value.", alias="usePublicBgp") monitors: Optional[List[Monitor]] = Field(default=None, description="Contains list of enabled BGP monitors.") agents: Optional[List[AgentResponse]] = Field(default=None, description="Contains list of agents.") - __properties: ClassVar[List[str]] = ["interval", "alertsEnabled", "enabled", "alertRules", "createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "sharedWithAccounts", "bandwidthMeasurements", "dnsServers", "dnsTransportProtocol", "domain", "mtuMeasurements", "networkMeasurements", "numPathTraces", "pathTraceMode", "probeMode", "protocol", "randomizedStartTime", "recursiveQueries", "ipv6Policy", "fixedPacketRate", "dnsQueryClass", "bgpMeasurements", "usePublicBgp", "monitors", "agents"] + __properties: ClassVar[List[str]] = ["interval", "alertsEnabled", "enabled", "alertRules", "createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "tags", "sharedWithAccounts", "bandwidthMeasurements", "dnsServers", "dnsTransportProtocol", "domain", "mtuMeasurements", "networkMeasurements", "numPathTraces", "pathTraceMode", "probeMode", "protocol", "randomizedStartTime", "recursiveQueries", "ipv6Policy", "fixedPacketRate", "dnsQueryClass", "bgpMeasurements", "usePublicBgp", "monitors", "agents"] model_config = ConfigDict( populate_by_name=True, @@ -121,6 +123,7 @@ class DnsServerTestResponse(BaseModel): * 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([ "created_by", @@ -132,6 +135,7 @@ class DnsServerTestResponse(BaseModel): "test_id", "type", "labels", + "tags", "shared_with_accounts", "monitors", ]) @@ -158,6 +162,13 @@ class DnsServerTestResponse(BaseModel): if _item: _items.append(_item.to_dict()) _dict['labels'] = _items + # override the default output from pydantic by calling `to_dict()` of each item in tags (list) + _items = [] + if self.tags: + for _item in self.tags: + if _item: + _items.append(_item.to_dict()) + _dict['tags'] = _items # override the default output from pydantic by calling `to_dict()` of each item in shared_with_accounts (list) _items = [] if self.shared_with_accounts: @@ -214,6 +225,7 @@ class DnsServerTestResponse(BaseModel): "type": obj.get("type"), "_links": TestLinks.from_dict(obj["_links"]) if obj.get("_links") is not None else None, "labels": [TestLabel.from_dict(_item) for _item in obj["labels"]] if obj.get("labels") is not None else None, + "tags": [TestTag.from_dict(_item) for _item in obj["tags"]] if obj.get("tags") is not None else None, "sharedWithAccounts": [SharedWithAccount.from_dict(_item) for _item in obj["sharedWithAccounts"]] if obj.get("sharedWithAccounts") is not None else None, "bandwidthMeasurements": obj.get("bandwidthMeasurements"), "dnsServers": [TestDnsServer.from_dict(_item) for _item in obj["dnsServers"]] if obj.get("dnsServers") is not None else None, diff --git a/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/dns_trace_instant_test.py b/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/dns_trace_instant_test.py index c4d2c7a2..668f4039 100644 --- a/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/dns_trace_instant_test.py +++ b/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/dns_trace_instant_test.py @@ -24,6 +24,7 @@ from thousandeyes_sdk.tests.models.shared_with_account import SharedWithAccount from thousandeyes_sdk.tests.models.test_dns_transport_protocol import TestDnsTransportProtocol from thousandeyes_sdk.tests.models.test_label import TestLabel from thousandeyes_sdk.tests.models.test_links import TestLinks +from thousandeyes_sdk.tests.models.test_tag import TestTag from typing import Optional, Set from typing_extensions import Self @@ -43,12 +44,13 @@ class DnsTraceInstantTest(BaseModel): type: Optional[StrictStr] = None links: Optional[TestLinks] = Field(default=None, alias="_links") labels: Optional[List[TestLabel]] = Field(default=None, description="Labels to which the test is assigned. This field is not returned for Instant Tests.") + tags: Optional[List[TestTag]] = Field(default=None, description="Tags assigned to the test. Returned only when `expand=tag` is specified. This field is not returned for Instant Tests. For more information, see `/tags`.") shared_with_accounts: Optional[List[SharedWithAccount]] = Field(default=None, alias="sharedWithAccounts") dns_transport_protocol: Optional[TestDnsTransportProtocol] = Field(default=None, alias="dnsTransportProtocol") domain: StrictStr = Field(description="The target record for the test, with the record type suffixed. If no record type is specified, the test defaults to an ANY record.") dns_query_class: Optional[DnsQueryClass] = Field(default=None, alias="dnsQueryClass") randomized_start_time: Optional[StrictBool] = Field(default=False, description="Indicates whether agents should randomize the start time in each test round.", alias="randomizedStartTime") - __properties: ClassVar[List[str]] = ["createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "sharedWithAccounts", "dnsTransportProtocol", "domain", "dnsQueryClass", "randomizedStartTime"] + __properties: ClassVar[List[str]] = ["createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "tags", "sharedWithAccounts", "dnsTransportProtocol", "domain", "dnsQueryClass", "randomizedStartTime"] model_config = ConfigDict( populate_by_name=True, @@ -91,6 +93,7 @@ class DnsTraceInstantTest(BaseModel): * 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([ "created_by", @@ -102,6 +105,7 @@ class DnsTraceInstantTest(BaseModel): "test_id", "type", "labels", + "tags", "shared_with_accounts", ]) @@ -120,6 +124,13 @@ class DnsTraceInstantTest(BaseModel): if _item: _items.append(_item.to_dict()) _dict['labels'] = _items + # override the default output from pydantic by calling `to_dict()` of each item in tags (list) + _items = [] + if self.tags: + for _item in self.tags: + if _item: + _items.append(_item.to_dict()) + _dict['tags'] = _items # override the default output from pydantic by calling `to_dict()` of each item in shared_with_accounts (list) _items = [] if self.shared_with_accounts: @@ -151,6 +162,7 @@ class DnsTraceInstantTest(BaseModel): "type": obj.get("type"), "_links": TestLinks.from_dict(obj["_links"]) if obj.get("_links") is not None else None, "labels": [TestLabel.from_dict(_item) for _item in obj["labels"]] if obj.get("labels") is not None else None, + "tags": [TestTag.from_dict(_item) for _item in obj["tags"]] if obj.get("tags") is not None else None, "sharedWithAccounts": [SharedWithAccount.from_dict(_item) for _item in obj["sharedWithAccounts"]] if obj.get("sharedWithAccounts") is not None else None, "dnsTransportProtocol": obj.get("dnsTransportProtocol"), "domain": obj.get("domain"), diff --git a/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/dns_trace_test.py b/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/dns_trace_test.py index e6fa78d4..51738446 100644 --- a/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/dns_trace_test.py +++ b/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/dns_trace_test.py @@ -26,6 +26,7 @@ from thousandeyes_sdk.tests.models.test_dns_transport_protocol import TestDnsTra from thousandeyes_sdk.tests.models.test_interval import TestInterval from thousandeyes_sdk.tests.models.test_label import TestLabel from thousandeyes_sdk.tests.models.test_links import TestLinks +from thousandeyes_sdk.tests.models.test_tag import TestTag from typing import Optional, Set from typing_extensions import Self @@ -49,12 +50,13 @@ class DnsTraceTest(BaseModel): type: Optional[StrictStr] = None links: Optional[TestLinks] = Field(default=None, alias="_links") labels: Optional[List[TestLabel]] = Field(default=None, description="Labels to which the test is assigned. This field is not returned for Instant Tests.") + tags: Optional[List[TestTag]] = Field(default=None, description="Tags assigned to the test. Returned only when `expand=tag` is specified. This field is not returned for Instant Tests. For more information, see `/tags`.") shared_with_accounts: Optional[List[SharedWithAccount]] = Field(default=None, alias="sharedWithAccounts") dns_transport_protocol: Optional[TestDnsTransportProtocol] = Field(default=None, alias="dnsTransportProtocol") domain: StrictStr = Field(description="The target record for the test, with the record type suffixed. If no record type is specified, the test defaults to an ANY record.") dns_query_class: Optional[DnsQueryClass] = Field(default=None, alias="dnsQueryClass") randomized_start_time: Optional[StrictBool] = Field(default=False, description="Indicates whether agents should randomize the start time in each test round.", alias="randomizedStartTime") - __properties: ClassVar[List[str]] = ["interval", "alertsEnabled", "enabled", "alertRules", "createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "sharedWithAccounts", "dnsTransportProtocol", "domain", "dnsQueryClass", "randomizedStartTime"] + __properties: ClassVar[List[str]] = ["interval", "alertsEnabled", "enabled", "alertRules", "createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "tags", "sharedWithAccounts", "dnsTransportProtocol", "domain", "dnsQueryClass", "randomizedStartTime"] model_config = ConfigDict( populate_by_name=True, @@ -97,6 +99,7 @@ class DnsTraceTest(BaseModel): * 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([ "created_by", @@ -108,6 +111,7 @@ class DnsTraceTest(BaseModel): "test_id", "type", "labels", + "tags", "shared_with_accounts", ]) @@ -133,6 +137,13 @@ class DnsTraceTest(BaseModel): if _item: _items.append(_item.to_dict()) _dict['labels'] = _items + # override the default output from pydantic by calling `to_dict()` of each item in tags (list) + _items = [] + if self.tags: + for _item in self.tags: + if _item: + _items.append(_item.to_dict()) + _dict['tags'] = _items # override the default output from pydantic by calling `to_dict()` of each item in shared_with_accounts (list) _items = [] if self.shared_with_accounts: @@ -168,6 +179,7 @@ class DnsTraceTest(BaseModel): "type": obj.get("type"), "_links": TestLinks.from_dict(obj["_links"]) if obj.get("_links") is not None else None, "labels": [TestLabel.from_dict(_item) for _item in obj["labels"]] if obj.get("labels") is not None else None, + "tags": [TestTag.from_dict(_item) for _item in obj["tags"]] if obj.get("tags") is not None else None, "sharedWithAccounts": [SharedWithAccount.from_dict(_item) for _item in obj["sharedWithAccounts"]] if obj.get("sharedWithAccounts") is not None else None, "dnsTransportProtocol": obj.get("dnsTransportProtocol"), "domain": obj.get("domain"), diff --git a/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/dns_trace_test_request.py b/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/dns_trace_test_request.py index d8844878..0a25938c 100644 --- a/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/dns_trace_test_request.py +++ b/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/dns_trace_test_request.py @@ -34,7 +34,6 @@ class DnsTraceTestRequest(BaseModel): interval: TestInterval alerts_enabled: Optional[StrictBool] = Field(default=None, description="Indicates if alerts are enabled.", alias="alertsEnabled") enabled: Optional[StrictBool] = Field(default=True, description="Test is enabled.") - alert_rules: Optional[List[StrictStr]] = Field(default=None, description="List of alert rules IDs to apply to the test (get `ruleId` from `/alerts/rules` endpoint. If `alertsEnabled` is set to `true` and `alertRules` is not included on test creation or update, applicable user default alert rules will be used)", alias="alertRules") created_by: Optional[StrictStr] = Field(default=None, description="User that created the test.", alias="createdBy") created_date: Optional[datetime] = Field(default=None, description="UTC created date (ISO date-time format).", alias="createdDate") description: Optional[StrictStr] = Field(default=None, description="A description of the test.") @@ -46,15 +45,16 @@ class DnsTraceTestRequest(BaseModel): test_name: Optional[StrictStr] = Field(default=None, description="The name of the test. Test name must be unique.", alias="testName") type: Optional[StrictStr] = None links: Optional[TestLinks] = Field(default=None, alias="_links") - labels: Optional[List[StrictStr]] = Field(default=None, description="Contains list of test label IDs (get `labelId` from `/labels` endpoint)") - shared_with_accounts: Optional[List[StrictStr]] = Field(default=None, description="Contains list of account group IDs. Test is shared with the listed account groups (get `aid` from `/account-groups` endpoint)", alias="sharedWithAccounts") dns_transport_protocol: Optional[TestDnsTransportProtocol] = Field(default=None, alias="dnsTransportProtocol") domain: StrictStr = Field(description="The target record for the test, with the record type suffixed. If no record type is specified, the test defaults to an ANY record.") dns_query_class: Optional[DnsQueryClass] = Field(default=None, alias="dnsQueryClass") randomized_start_time: Optional[StrictBool] = Field(default=False, description="Indicates whether agents should randomize the start time in each test round.", alias="randomizedStartTime") + labels: Optional[List[StrictStr]] = Field(default=None, description="Contains list of test label IDs (get `labelId` from `/labels` endpoint)") tags: Optional[List[StrictStr]] = Field(default=None, description="Contains list of test tag IDs (get `id` from `/tags` endpoint).") + shared_with_accounts: Optional[List[StrictStr]] = Field(default=None, description="Contains list of account group IDs. Test is shared with the listed account groups (get `aid` from `/account-groups` endpoint)", alias="sharedWithAccounts") + alert_rules: Optional[List[StrictStr]] = Field(default=None, description="List of alert rules IDs to apply to the test (get `ruleId` from `/alerts/rules` endpoint. If `alertsEnabled` is set to `true` and `alertRules` is not included on test creation or update, applicable user default alert rules will be used)", alias="alertRules") agents: List[TestAgentRequest] = Field(description="Contains list of Agent IDs (get `agentId` from `/agents` endpoint).") - __properties: ClassVar[List[str]] = ["interval", "alertsEnabled", "enabled", "alertRules", "createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "sharedWithAccounts", "dnsTransportProtocol", "domain", "dnsQueryClass", "randomizedStartTime", "tags", "agents"] + __properties: ClassVar[List[str]] = ["interval", "alertsEnabled", "enabled", "createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "dnsTransportProtocol", "domain", "dnsQueryClass", "randomizedStartTime", "labels", "tags", "sharedWithAccounts", "alertRules", "agents"] model_config = ConfigDict( populate_by_name=True, @@ -137,7 +137,6 @@ class DnsTraceTestRequest(BaseModel): "interval": obj.get("interval"), "alertsEnabled": obj.get("alertsEnabled"), "enabled": obj.get("enabled") if obj.get("enabled") is not None else True, - "alertRules": obj.get("alertRules"), "createdBy": obj.get("createdBy"), "createdDate": obj.get("createdDate"), "description": obj.get("description"), @@ -149,13 +148,14 @@ class DnsTraceTestRequest(BaseModel): "testName": obj.get("testName"), "type": obj.get("type"), "_links": TestLinks.from_dict(obj["_links"]) if obj.get("_links") is not None else None, - "labels": obj.get("labels"), - "sharedWithAccounts": obj.get("sharedWithAccounts"), "dnsTransportProtocol": obj.get("dnsTransportProtocol"), "domain": obj.get("domain"), "dnsQueryClass": obj.get("dnsQueryClass"), "randomizedStartTime": obj.get("randomizedStartTime") if obj.get("randomizedStartTime") is not None else False, + "labels": obj.get("labels"), "tags": obj.get("tags"), + "sharedWithAccounts": obj.get("sharedWithAccounts"), + "alertRules": obj.get("alertRules"), "agents": [TestAgentRequest.from_dict(_item) for _item in obj["agents"]] if obj.get("agents") is not None else None }) return _obj diff --git a/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/dns_trace_test_response.py b/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/dns_trace_test_response.py index 62a6c0e4..81dbdff1 100644 --- a/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/dns_trace_test_response.py +++ b/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/dns_trace_test_response.py @@ -27,6 +27,7 @@ from thousandeyes_sdk.tests.models.test_dns_transport_protocol import TestDnsTra from thousandeyes_sdk.tests.models.test_interval import TestInterval from thousandeyes_sdk.tests.models.test_label import TestLabel from thousandeyes_sdk.tests.models.test_links import TestLinks +from thousandeyes_sdk.tests.models.test_tag import TestTag from typing import Optional, Set from typing_extensions import Self @@ -50,13 +51,14 @@ class DnsTraceTestResponse(BaseModel): type: Optional[StrictStr] = None links: Optional[TestLinks] = Field(default=None, alias="_links") labels: Optional[List[TestLabel]] = Field(default=None, description="Labels to which the test is assigned. This field is not returned for Instant Tests.") + tags: Optional[List[TestTag]] = Field(default=None, description="Tags assigned to the test. Returned only when `expand=tag` is specified. This field is not returned for Instant Tests. For more information, see `/tags`.") shared_with_accounts: Optional[List[SharedWithAccount]] = Field(default=None, alias="sharedWithAccounts") dns_transport_protocol: Optional[TestDnsTransportProtocol] = Field(default=None, alias="dnsTransportProtocol") domain: StrictStr = Field(description="The target record for the test, with the record type suffixed. If no record type is specified, the test defaults to an ANY record.") dns_query_class: Optional[DnsQueryClass] = Field(default=None, alias="dnsQueryClass") randomized_start_time: Optional[StrictBool] = Field(default=False, description="Indicates whether agents should randomize the start time in each test round.", alias="randomizedStartTime") agents: Optional[List[AgentResponse]] = Field(default=None, description="Contains list of agents.") - __properties: ClassVar[List[str]] = ["interval", "alertsEnabled", "enabled", "alertRules", "createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "sharedWithAccounts", "dnsTransportProtocol", "domain", "dnsQueryClass", "randomizedStartTime", "agents"] + __properties: ClassVar[List[str]] = ["interval", "alertsEnabled", "enabled", "alertRules", "createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "tags", "sharedWithAccounts", "dnsTransportProtocol", "domain", "dnsQueryClass", "randomizedStartTime", "agents"] model_config = ConfigDict( populate_by_name=True, @@ -99,6 +101,7 @@ class DnsTraceTestResponse(BaseModel): * 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([ "created_by", @@ -110,6 +113,7 @@ class DnsTraceTestResponse(BaseModel): "test_id", "type", "labels", + "tags", "shared_with_accounts", ]) @@ -135,6 +139,13 @@ class DnsTraceTestResponse(BaseModel): if _item: _items.append(_item.to_dict()) _dict['labels'] = _items + # override the default output from pydantic by calling `to_dict()` of each item in tags (list) + _items = [] + if self.tags: + for _item in self.tags: + if _item: + _items.append(_item.to_dict()) + _dict['tags'] = _items # override the default output from pydantic by calling `to_dict()` of each item in shared_with_accounts (list) _items = [] if self.shared_with_accounts: @@ -177,6 +188,7 @@ class DnsTraceTestResponse(BaseModel): "type": obj.get("type"), "_links": TestLinks.from_dict(obj["_links"]) if obj.get("_links") is not None else None, "labels": [TestLabel.from_dict(_item) for _item in obj["labels"]] if obj.get("labels") is not None else None, + "tags": [TestTag.from_dict(_item) for _item in obj["tags"]] if obj.get("tags") is not None else None, "sharedWithAccounts": [SharedWithAccount.from_dict(_item) for _item in obj["sharedWithAccounts"]] if obj.get("sharedWithAccounts") is not None else None, "dnsTransportProtocol": obj.get("dnsTransportProtocol"), "domain": obj.get("domain"), diff --git a/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/ftp_server_instant_test.py b/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/ftp_server_instant_test.py index f3a35a7f..104a0612 100644 --- a/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/ftp_server_instant_test.py +++ b/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/ftp_server_instant_test.py @@ -28,6 +28,7 @@ from thousandeyes_sdk.tests.models.test_links import TestLinks from thousandeyes_sdk.tests.models.test_path_trace_mode import TestPathTraceMode from thousandeyes_sdk.tests.models.test_probe_mode import TestProbeMode from thousandeyes_sdk.tests.models.test_protocol import TestProtocol +from thousandeyes_sdk.tests.models.test_tag import TestTag from typing import Optional, Set from typing_extensions import Self @@ -47,6 +48,7 @@ class FtpServerInstantTest(BaseModel): type: Optional[StrictStr] = None links: Optional[TestLinks] = Field(default=None, alias="_links") labels: Optional[List[TestLabel]] = Field(default=None, description="Labels to which the test is assigned. This field is not returned for Instant Tests.") + tags: Optional[List[TestTag]] = Field(default=None, description="Tags assigned to the test. Returned only when `expand=tag` is specified. This field is not returned for Instant Tests. For more information, see `/tags`.") shared_with_accounts: Optional[List[SharedWithAccount]] = Field(default=None, alias="sharedWithAccounts") bandwidth_measurements: Optional[StrictBool] = Field(default=None, description="Set to `true` to enable bandwidth measurements, only applies to Enterprise agents assigned to the test.", alias="bandwidthMeasurements") download_limit: Optional[StrictInt] = Field(default=None, description="Specify maximum number of bytes to download from the target object.", alias="downloadLimit") @@ -67,7 +69,7 @@ class FtpServerInstantTest(BaseModel): username: StrictStr = Field(description="Username for Basic/NTLM authentication.") fixed_packet_rate: Optional[Annotated[int, Field(le=100, strict=True, ge=0)]] = Field(default=None, description="Sets packets rate sent to measure the network in packets per second.", alias="fixedPacketRate") ipv6_policy: Optional[TestIpv6Policy] = Field(default=None, alias="ipv6Policy") - __properties: ClassVar[List[str]] = ["createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "sharedWithAccounts", "bandwidthMeasurements", "downloadLimit", "ftpTargetTime", "ftpTimeLimit", "mtuMeasurements", "networkMeasurements", "numPathTraces", "password", "pathTraceMode", "probeMode", "protocol", "randomizedStartTime", "requestType", "url", "useActiveFtp", "useExplicitFtps", "username", "fixedPacketRate", "ipv6Policy"] + __properties: ClassVar[List[str]] = ["createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "tags", "sharedWithAccounts", "bandwidthMeasurements", "downloadLimit", "ftpTargetTime", "ftpTimeLimit", "mtuMeasurements", "networkMeasurements", "numPathTraces", "password", "pathTraceMode", "probeMode", "protocol", "randomizedStartTime", "requestType", "url", "useActiveFtp", "useExplicitFtps", "username", "fixedPacketRate", "ipv6Policy"] model_config = ConfigDict( populate_by_name=True, @@ -110,6 +112,7 @@ class FtpServerInstantTest(BaseModel): * 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([ "created_by", @@ -121,6 +124,7 @@ class FtpServerInstantTest(BaseModel): "test_id", "type", "labels", + "tags", "shared_with_accounts", ]) @@ -139,6 +143,13 @@ class FtpServerInstantTest(BaseModel): if _item: _items.append(_item.to_dict()) _dict['labels'] = _items + # override the default output from pydantic by calling `to_dict()` of each item in tags (list) + _items = [] + if self.tags: + for _item in self.tags: + if _item: + _items.append(_item.to_dict()) + _dict['tags'] = _items # override the default output from pydantic by calling `to_dict()` of each item in shared_with_accounts (list) _items = [] if self.shared_with_accounts: @@ -170,6 +181,7 @@ class FtpServerInstantTest(BaseModel): "type": obj.get("type"), "_links": TestLinks.from_dict(obj["_links"]) if obj.get("_links") is not None else None, "labels": [TestLabel.from_dict(_item) for _item in obj["labels"]] if obj.get("labels") is not None else None, + "tags": [TestTag.from_dict(_item) for _item in obj["tags"]] if obj.get("tags") is not None else None, "sharedWithAccounts": [SharedWithAccount.from_dict(_item) for _item in obj["sharedWithAccounts"]] if obj.get("sharedWithAccounts") is not None else None, "bandwidthMeasurements": obj.get("bandwidthMeasurements"), "downloadLimit": obj.get("downloadLimit"), diff --git a/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/ftp_server_test.py b/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/ftp_server_test.py index 43c814ad..bfbed272 100644 --- a/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/ftp_server_test.py +++ b/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/ftp_server_test.py @@ -31,6 +31,7 @@ from thousandeyes_sdk.tests.models.test_links import TestLinks from thousandeyes_sdk.tests.models.test_path_trace_mode import TestPathTraceMode from thousandeyes_sdk.tests.models.test_probe_mode import TestProbeMode from thousandeyes_sdk.tests.models.test_protocol import TestProtocol +from thousandeyes_sdk.tests.models.test_tag import TestTag from typing import Optional, Set from typing_extensions import Self @@ -54,6 +55,7 @@ class FtpServerTest(BaseModel): type: Optional[StrictStr] = None links: Optional[TestLinks] = Field(default=None, alias="_links") labels: Optional[List[TestLabel]] = Field(default=None, description="Labels to which the test is assigned. This field is not returned for Instant Tests.") + tags: Optional[List[TestTag]] = Field(default=None, description="Tags assigned to the test. Returned only when `expand=tag` is specified. This field is not returned for Instant Tests. For more information, see `/tags`.") shared_with_accounts: Optional[List[SharedWithAccount]] = Field(default=None, alias="sharedWithAccounts") bandwidth_measurements: Optional[StrictBool] = Field(default=None, description="Set to `true` to enable bandwidth measurements, only applies to Enterprise agents assigned to the test.", alias="bandwidthMeasurements") download_limit: Optional[StrictInt] = Field(default=None, description="Specify maximum number of bytes to download from the target object.", alias="downloadLimit") @@ -77,7 +79,7 @@ class FtpServerTest(BaseModel): bgp_measurements: Optional[StrictBool] = Field(default=True, description="Set to `true` to enable bgp measurements.", alias="bgpMeasurements") use_public_bgp: Optional[StrictBool] = Field(default=True, description="Indicate if all available public BGP monitors should be used, when ommited defaults to `bgpMeasurements` value.", alias="usePublicBgp") monitors: Optional[List[Monitor]] = Field(default=None, description="Contains list of enabled BGP monitors.") - __properties: ClassVar[List[str]] = ["interval", "alertsEnabled", "enabled", "alertRules", "createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "sharedWithAccounts", "bandwidthMeasurements", "downloadLimit", "ftpTargetTime", "ftpTimeLimit", "mtuMeasurements", "networkMeasurements", "numPathTraces", "password", "pathTraceMode", "probeMode", "protocol", "randomizedStartTime", "requestType", "url", "useActiveFtp", "useExplicitFtps", "username", "fixedPacketRate", "ipv6Policy", "bgpMeasurements", "usePublicBgp", "monitors"] + __properties: ClassVar[List[str]] = ["interval", "alertsEnabled", "enabled", "alertRules", "createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "tags", "sharedWithAccounts", "bandwidthMeasurements", "downloadLimit", "ftpTargetTime", "ftpTimeLimit", "mtuMeasurements", "networkMeasurements", "numPathTraces", "password", "pathTraceMode", "probeMode", "protocol", "randomizedStartTime", "requestType", "url", "useActiveFtp", "useExplicitFtps", "username", "fixedPacketRate", "ipv6Policy", "bgpMeasurements", "usePublicBgp", "monitors"] model_config = ConfigDict( populate_by_name=True, @@ -121,6 +123,7 @@ class FtpServerTest(BaseModel): * 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([ "created_by", @@ -132,6 +135,7 @@ class FtpServerTest(BaseModel): "test_id", "type", "labels", + "tags", "shared_with_accounts", "monitors", ]) @@ -158,6 +162,13 @@ class FtpServerTest(BaseModel): if _item: _items.append(_item.to_dict()) _dict['labels'] = _items + # override the default output from pydantic by calling `to_dict()` of each item in tags (list) + _items = [] + if self.tags: + for _item in self.tags: + if _item: + _items.append(_item.to_dict()) + _dict['tags'] = _items # override the default output from pydantic by calling `to_dict()` of each item in shared_with_accounts (list) _items = [] if self.shared_with_accounts: @@ -200,6 +211,7 @@ class FtpServerTest(BaseModel): "type": obj.get("type"), "_links": TestLinks.from_dict(obj["_links"]) if obj.get("_links") is not None else None, "labels": [TestLabel.from_dict(_item) for _item in obj["labels"]] if obj.get("labels") is not None else None, + "tags": [TestTag.from_dict(_item) for _item in obj["tags"]] if obj.get("tags") is not None else None, "sharedWithAccounts": [SharedWithAccount.from_dict(_item) for _item in obj["sharedWithAccounts"]] if obj.get("sharedWithAccounts") is not None else None, "bandwidthMeasurements": obj.get("bandwidthMeasurements"), "downloadLimit": obj.get("downloadLimit"), diff --git a/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/ftp_server_test_request.py b/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/ftp_server_test_request.py index bf980a46..77f1c604 100644 --- a/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/ftp_server_test_request.py +++ b/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/ftp_server_test_request.py @@ -38,7 +38,6 @@ class FtpServerTestRequest(BaseModel): interval: TestInterval alerts_enabled: Optional[StrictBool] = Field(default=None, description="Indicates if alerts are enabled.", alias="alertsEnabled") enabled: Optional[StrictBool] = Field(default=True, description="Test is enabled.") - alert_rules: Optional[List[StrictStr]] = Field(default=None, description="List of alert rules IDs to apply to the test (get `ruleId` from `/alerts/rules` endpoint. If `alertsEnabled` is set to `true` and `alertRules` is not included on test creation or update, applicable user default alert rules will be used)", alias="alertRules") created_by: Optional[StrictStr] = Field(default=None, description="User that created the test.", alias="createdBy") created_date: Optional[datetime] = Field(default=None, description="UTC created date (ISO date-time format).", alias="createdDate") description: Optional[StrictStr] = Field(default=None, description="A description of the test.") @@ -50,8 +49,6 @@ class FtpServerTestRequest(BaseModel): test_name: Optional[StrictStr] = Field(default=None, description="The name of the test. Test name must be unique.", alias="testName") type: Optional[StrictStr] = None links: Optional[TestLinks] = Field(default=None, alias="_links") - labels: Optional[List[StrictStr]] = Field(default=None, description="Contains list of test label IDs (get `labelId` from `/labels` endpoint)") - shared_with_accounts: Optional[List[StrictStr]] = Field(default=None, description="Contains list of account group IDs. Test is shared with the listed account groups (get `aid` from `/account-groups` endpoint)", alias="sharedWithAccounts") bandwidth_measurements: Optional[StrictBool] = Field(default=None, description="Set to `true` to enable bandwidth measurements, only applies to Enterprise agents assigned to the test.", alias="bandwidthMeasurements") download_limit: Optional[StrictInt] = Field(default=None, description="Specify maximum number of bytes to download from the target object.", alias="downloadLimit") ftp_target_time: Optional[Annotated[int, Field(le=6000, strict=True, ge=1000)]] = Field(default=None, description="Target time for operation completion; specified in milliseconds.", alias="ftpTargetTime") @@ -73,10 +70,13 @@ class FtpServerTestRequest(BaseModel): ipv6_policy: Optional[TestIpv6Policy] = Field(default=None, alias="ipv6Policy") bgp_measurements: Optional[StrictBool] = Field(default=True, description="Set to `true` to enable bgp measurements.", alias="bgpMeasurements") use_public_bgp: Optional[StrictBool] = Field(default=True, description="Indicate if all available public BGP monitors should be used, when ommited defaults to `bgpMeasurements` value.", alias="usePublicBgp") - monitors: Optional[List[StrictStr]] = Field(default=None, description="Contains list of BGP monitor IDs (get `monitorId` from `/monitors` endpoint)") + labels: Optional[List[StrictStr]] = Field(default=None, description="Contains list of test label IDs (get `labelId` from `/labels` endpoint)") tags: Optional[List[StrictStr]] = Field(default=None, description="Contains list of test tag IDs (get `id` from `/tags` endpoint).") + shared_with_accounts: Optional[List[StrictStr]] = Field(default=None, description="Contains list of account group IDs. Test is shared with the listed account groups (get `aid` from `/account-groups` endpoint)", alias="sharedWithAccounts") + alert_rules: Optional[List[StrictStr]] = Field(default=None, description="List of alert rules IDs to apply to the test (get `ruleId` from `/alerts/rules` endpoint. If `alertsEnabled` is set to `true` and `alertRules` is not included on test creation or update, applicable user default alert rules will be used)", alias="alertRules") agents: List[TestAgentRequest] = Field(description="Contains list of Agent IDs (get `agentId` from `/agents` endpoint).") - __properties: ClassVar[List[str]] = ["interval", "alertsEnabled", "enabled", "alertRules", "createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "sharedWithAccounts", "bandwidthMeasurements", "downloadLimit", "ftpTargetTime", "ftpTimeLimit", "mtuMeasurements", "networkMeasurements", "numPathTraces", "password", "pathTraceMode", "probeMode", "protocol", "randomizedStartTime", "requestType", "url", "useActiveFtp", "useExplicitFtps", "username", "fixedPacketRate", "ipv6Policy", "bgpMeasurements", "usePublicBgp", "monitors", "tags", "agents"] + monitors: Optional[List[StrictStr]] = Field(default=None, description="Contains list of BGP monitor IDs (get `monitorId` from `/monitors` endpoint)") + __properties: ClassVar[List[str]] = ["interval", "alertsEnabled", "enabled", "createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "bandwidthMeasurements", "downloadLimit", "ftpTargetTime", "ftpTimeLimit", "mtuMeasurements", "networkMeasurements", "numPathTraces", "password", "pathTraceMode", "probeMode", "protocol", "randomizedStartTime", "requestType", "url", "useActiveFtp", "useExplicitFtps", "username", "fixedPacketRate", "ipv6Policy", "bgpMeasurements", "usePublicBgp", "labels", "tags", "sharedWithAccounts", "alertRules", "agents", "monitors"] model_config = ConfigDict( populate_by_name=True, @@ -159,7 +159,6 @@ class FtpServerTestRequest(BaseModel): "interval": obj.get("interval"), "alertsEnabled": obj.get("alertsEnabled"), "enabled": obj.get("enabled") if obj.get("enabled") is not None else True, - "alertRules": obj.get("alertRules"), "createdBy": obj.get("createdBy"), "createdDate": obj.get("createdDate"), "description": obj.get("description"), @@ -171,8 +170,6 @@ class FtpServerTestRequest(BaseModel): "testName": obj.get("testName"), "type": obj.get("type"), "_links": TestLinks.from_dict(obj["_links"]) if obj.get("_links") is not None else None, - "labels": obj.get("labels"), - "sharedWithAccounts": obj.get("sharedWithAccounts"), "bandwidthMeasurements": obj.get("bandwidthMeasurements"), "downloadLimit": obj.get("downloadLimit"), "ftpTargetTime": obj.get("ftpTargetTime"), @@ -194,9 +191,12 @@ class FtpServerTestRequest(BaseModel): "ipv6Policy": obj.get("ipv6Policy"), "bgpMeasurements": obj.get("bgpMeasurements") if obj.get("bgpMeasurements") is not None else True, "usePublicBgp": obj.get("usePublicBgp") if obj.get("usePublicBgp") is not None else True, - "monitors": obj.get("monitors"), + "labels": obj.get("labels"), "tags": obj.get("tags"), - "agents": [TestAgentRequest.from_dict(_item) for _item in obj["agents"]] if obj.get("agents") is not None else None + "sharedWithAccounts": obj.get("sharedWithAccounts"), + "alertRules": obj.get("alertRules"), + "agents": [TestAgentRequest.from_dict(_item) for _item in obj["agents"]] if obj.get("agents") is not None else None, + "monitors": obj.get("monitors") }) return _obj diff --git a/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/ftp_server_test_response.py b/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/ftp_server_test_response.py index 53481ef6..d050e842 100644 --- a/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/ftp_server_test_response.py +++ b/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/ftp_server_test_response.py @@ -32,6 +32,7 @@ from thousandeyes_sdk.tests.models.test_links import TestLinks from thousandeyes_sdk.tests.models.test_path_trace_mode import TestPathTraceMode from thousandeyes_sdk.tests.models.test_probe_mode import TestProbeMode from thousandeyes_sdk.tests.models.test_protocol import TestProtocol +from thousandeyes_sdk.tests.models.test_tag import TestTag from typing import Optional, Set from typing_extensions import Self @@ -55,6 +56,7 @@ class FtpServerTestResponse(BaseModel): type: Optional[StrictStr] = None links: Optional[TestLinks] = Field(default=None, alias="_links") labels: Optional[List[TestLabel]] = Field(default=None, description="Labels to which the test is assigned. This field is not returned for Instant Tests.") + tags: Optional[List[TestTag]] = Field(default=None, description="Tags assigned to the test. Returned only when `expand=tag` is specified. This field is not returned for Instant Tests. For more information, see `/tags`.") shared_with_accounts: Optional[List[SharedWithAccount]] = Field(default=None, alias="sharedWithAccounts") bandwidth_measurements: Optional[StrictBool] = Field(default=None, description="Set to `true` to enable bandwidth measurements, only applies to Enterprise agents assigned to the test.", alias="bandwidthMeasurements") download_limit: Optional[StrictInt] = Field(default=None, description="Specify maximum number of bytes to download from the target object.", alias="downloadLimit") @@ -79,7 +81,7 @@ class FtpServerTestResponse(BaseModel): use_public_bgp: Optional[StrictBool] = Field(default=True, description="Indicate if all available public BGP monitors should be used, when ommited defaults to `bgpMeasurements` value.", alias="usePublicBgp") monitors: Optional[List[Monitor]] = Field(default=None, description="Contains list of enabled BGP monitors.") agents: Optional[List[AgentResponse]] = Field(default=None, description="Contains list of agents.") - __properties: ClassVar[List[str]] = ["interval", "alertsEnabled", "enabled", "alertRules", "createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "sharedWithAccounts", "bandwidthMeasurements", "downloadLimit", "ftpTargetTime", "ftpTimeLimit", "mtuMeasurements", "networkMeasurements", "numPathTraces", "password", "pathTraceMode", "probeMode", "protocol", "randomizedStartTime", "requestType", "url", "useActiveFtp", "useExplicitFtps", "username", "fixedPacketRate", "ipv6Policy", "bgpMeasurements", "usePublicBgp", "monitors", "agents"] + __properties: ClassVar[List[str]] = ["interval", "alertsEnabled", "enabled", "alertRules", "createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "tags", "sharedWithAccounts", "bandwidthMeasurements", "downloadLimit", "ftpTargetTime", "ftpTimeLimit", "mtuMeasurements", "networkMeasurements", "numPathTraces", "password", "pathTraceMode", "probeMode", "protocol", "randomizedStartTime", "requestType", "url", "useActiveFtp", "useExplicitFtps", "username", "fixedPacketRate", "ipv6Policy", "bgpMeasurements", "usePublicBgp", "monitors", "agents"] model_config = ConfigDict( populate_by_name=True, @@ -123,6 +125,7 @@ class FtpServerTestResponse(BaseModel): * 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([ "created_by", @@ -134,6 +137,7 @@ class FtpServerTestResponse(BaseModel): "test_id", "type", "labels", + "tags", "shared_with_accounts", "monitors", ]) @@ -160,6 +164,13 @@ class FtpServerTestResponse(BaseModel): if _item: _items.append(_item.to_dict()) _dict['labels'] = _items + # override the default output from pydantic by calling `to_dict()` of each item in tags (list) + _items = [] + if self.tags: + for _item in self.tags: + if _item: + _items.append(_item.to_dict()) + _dict['tags'] = _items # override the default output from pydantic by calling `to_dict()` of each item in shared_with_accounts (list) _items = [] if self.shared_with_accounts: @@ -209,6 +220,7 @@ class FtpServerTestResponse(BaseModel): "type": obj.get("type"), "_links": TestLinks.from_dict(obj["_links"]) if obj.get("_links") is not None else None, "labels": [TestLabel.from_dict(_item) for _item in obj["labels"]] if obj.get("labels") is not None else None, + "tags": [TestTag.from_dict(_item) for _item in obj["tags"]] if obj.get("tags") is not None else None, "sharedWithAccounts": [SharedWithAccount.from_dict(_item) for _item in obj["sharedWithAccounts"]] if obj.get("sharedWithAccounts") is not None else None, "bandwidthMeasurements": obj.get("bandwidthMeasurements"), "downloadLimit": obj.get("downloadLimit"), diff --git a/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/http_server_base_properties.py b/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/http_server_base_properties.py index 099698f5..0f14502a 100644 --- a/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/http_server_base_properties.py +++ b/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/http_server_base_properties.py @@ -27,6 +27,7 @@ from thousandeyes_sdk.tests.models.test_path_trace_mode import TestPathTraceMode from thousandeyes_sdk.tests.models.test_probe_mode import TestProbeMode from thousandeyes_sdk.tests.models.test_protocol import TestProtocol from thousandeyes_sdk.tests.models.test_ssl_version_id import TestSslVersionId +from thousandeyes_sdk.tests.models.test_vault_credential import TestVaultCredential from typing import Optional, Set from typing_extensions import Self @@ -69,7 +70,8 @@ class HttpServerBaseProperties(BaseModel): override_agent_proxy: Optional[StrictBool] = Field(default=False, description="Flag indicating if a proxy other than the default should be used. To override the default proxy for agents, set to `true` and specify a value for `overrideProxyId`.", alias="overrideAgentProxy") override_proxy_id: Optional[StrictStr] = Field(default=None, description="ID of the proxy to be used if the default proxy is overridden.", alias="overrideProxyId") collect_proxy_network_data: Optional[StrictBool] = Field(default=False, description="Indicates whether network data to the proxy should be collected.", alias="collectProxyNetworkData") - __properties: ClassVar[List[str]] = ["authType", "agentInterfaces", "bandwidthMeasurements", "clientCertificate", "contentRegex", "customHeaders", "desiredStatusCode", "distributedTracing", "downloadLimit", "dnsOverride", "httpTargetTime", "httpTimeLimit", "httpVersion", "includeHeaders", "mtuMeasurements", "networkMeasurements", "numPathTraces", "oAuth", "password", "pathTraceMode", "probeMode", "protocol", "sslVersion", "sslVersionId", "url", "useNtlm", "userAgent", "username", "verifyCertificate", "allowUnsafeLegacyRenegotiation", "followRedirects", "fixedPacketRate", "overrideAgentProxy", "overrideProxyId", "collectProxyNetworkData"] + vault_credentials: Optional[List[TestVaultCredential]] = Field(default=None, description="List of credential IDs that are stored in an external vault.", alias="vaultCredentials") + __properties: ClassVar[List[str]] = ["authType", "agentInterfaces", "bandwidthMeasurements", "clientCertificate", "contentRegex", "customHeaders", "desiredStatusCode", "distributedTracing", "downloadLimit", "dnsOverride", "httpTargetTime", "httpTimeLimit", "httpVersion", "includeHeaders", "mtuMeasurements", "networkMeasurements", "numPathTraces", "oAuth", "password", "pathTraceMode", "probeMode", "protocol", "sslVersion", "sslVersionId", "url", "useNtlm", "userAgent", "username", "verifyCertificate", "allowUnsafeLegacyRenegotiation", "followRedirects", "fixedPacketRate", "overrideAgentProxy", "overrideProxyId", "collectProxyNetworkData", "vaultCredentials"] model_config = ConfigDict( populate_by_name=True, @@ -122,6 +124,13 @@ class HttpServerBaseProperties(BaseModel): # override the default output from pydantic by calling `to_dict()` of o_auth if self.o_auth: _dict['oAuth'] = self.o_auth.to_dict() + # override the default output from pydantic by calling `to_dict()` of each item in vault_credentials (list) + _items = [] + if self.vault_credentials: + for _item in self.vault_credentials: + if _item: + _items.append(_item.to_dict()) + _dict['vaultCredentials'] = _items return _dict @classmethod @@ -168,7 +177,8 @@ class HttpServerBaseProperties(BaseModel): "fixedPacketRate": obj.get("fixedPacketRate"), "overrideAgentProxy": obj.get("overrideAgentProxy") if obj.get("overrideAgentProxy") is not None else False, "overrideProxyId": obj.get("overrideProxyId"), - "collectProxyNetworkData": obj.get("collectProxyNetworkData") if obj.get("collectProxyNetworkData") is not None else False + "collectProxyNetworkData": obj.get("collectProxyNetworkData") if obj.get("collectProxyNetworkData") is not None else False, + "vaultCredentials": [TestVaultCredential.from_dict(_item) for _item in obj["vaultCredentials"]] if obj.get("vaultCredentials") is not None else None }) return _obj diff --git a/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/http_server_instant_test.py b/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/http_server_instant_test.py index f2b3243f..dd088555 100644 --- a/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/http_server_instant_test.py +++ b/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/http_server_instant_test.py @@ -22,6 +22,7 @@ from typing import Any, ClassVar, Dict, List, Optional from typing_extensions import Annotated from thousandeyes_sdk.tests.models.agent_interfaces import AgentInterfaces from thousandeyes_sdk.tests.models.o_auth import OAuth +from thousandeyes_sdk.tests.models.request_method import RequestMethod from thousandeyes_sdk.tests.models.shared_with_account import SharedWithAccount from thousandeyes_sdk.tests.models.test_auth_type import TestAuthType from thousandeyes_sdk.tests.models.test_custom_headers import TestCustomHeaders @@ -32,6 +33,8 @@ from thousandeyes_sdk.tests.models.test_path_trace_mode import TestPathTraceMode from thousandeyes_sdk.tests.models.test_probe_mode import TestProbeMode from thousandeyes_sdk.tests.models.test_protocol import TestProtocol from thousandeyes_sdk.tests.models.test_ssl_version_id import TestSslVersionId +from thousandeyes_sdk.tests.models.test_tag import TestTag +from thousandeyes_sdk.tests.models.test_vault_credential import TestVaultCredential from typing import Optional, Set from typing_extensions import Self @@ -51,6 +54,7 @@ class HttpServerInstantTest(BaseModel): type: Optional[StrictStr] = None links: Optional[TestLinks] = Field(default=None, alias="_links") labels: Optional[List[TestLabel]] = Field(default=None, description="Labels to which the test is assigned. This field is not returned for Instant Tests.") + tags: Optional[List[TestTag]] = Field(default=None, description="Tags assigned to the test. Returned only when `expand=tag` is specified. This field is not returned for Instant Tests. For more information, see `/tags`.") shared_with_accounts: Optional[List[SharedWithAccount]] = Field(default=None, alias="sharedWithAccounts") auth_type: Optional[TestAuthType] = Field(default=None, alias="authType") agent_interfaces: Optional[AgentInterfaces] = Field(default=None, alias="agentInterfaces") @@ -87,11 +91,13 @@ class HttpServerInstantTest(BaseModel): override_agent_proxy: Optional[StrictBool] = Field(default=False, description="Flag indicating if a proxy other than the default should be used. To override the default proxy for agents, set to `true` and specify a value for `overrideProxyId`.", alias="overrideAgentProxy") override_proxy_id: Optional[StrictStr] = Field(default=None, description="ID of the proxy to be used if the default proxy is overridden.", alias="overrideProxyId") collect_proxy_network_data: Optional[StrictBool] = Field(default=False, description="Indicates whether network data to the proxy should be collected.", alias="collectProxyNetworkData") + vault_credentials: Optional[List[TestVaultCredential]] = Field(default=None, description="List of credential IDs that are stored in an external vault.", alias="vaultCredentials") headers: Optional[List[StrictStr]] = Field(default=None, description="HTTP request headers used.") randomized_start_time: Optional[StrictBool] = Field(default=False, description="Indicates whether agents should randomize the start time in each test round.", alias="randomizedStartTime") - post_body: Optional[StrictStr] = Field(default=None, description="Enter the body for the HTTP POST request in this field. No special escaping is necessary. If the post body is provided with content, the `requestMethod` is automatically set to POST.", alias="postBody") + request_method: Optional[RequestMethod] = Field(default=None, alias="requestMethod") + post_body: Optional[StrictStr] = Field(default=None, description="Enter the body for the HTTP POST request in this field. No special escaping is required. If content is provided and `requestMethod` is not specified, `requestMethod` is automatically set to `post`.", alias="postBody") ipv6_policy: Optional[TestIpv6Policy] = Field(default=None, alias="ipv6Policy") - __properties: ClassVar[List[str]] = ["createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "sharedWithAccounts", "authType", "agentInterfaces", "bandwidthMeasurements", "clientCertificate", "contentRegex", "customHeaders", "desiredStatusCode", "distributedTracing", "downloadLimit", "dnsOverride", "httpTargetTime", "httpTimeLimit", "httpVersion", "includeHeaders", "mtuMeasurements", "networkMeasurements", "numPathTraces", "oAuth", "password", "pathTraceMode", "probeMode", "protocol", "sslVersion", "sslVersionId", "url", "useNtlm", "userAgent", "username", "verifyCertificate", "allowUnsafeLegacyRenegotiation", "followRedirects", "fixedPacketRate", "overrideAgentProxy", "overrideProxyId", "collectProxyNetworkData", "headers", "randomizedStartTime", "postBody", "ipv6Policy"] + __properties: ClassVar[List[str]] = ["createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "tags", "sharedWithAccounts", "authType", "agentInterfaces", "bandwidthMeasurements", "clientCertificate", "contentRegex", "customHeaders", "desiredStatusCode", "distributedTracing", "downloadLimit", "dnsOverride", "httpTargetTime", "httpTimeLimit", "httpVersion", "includeHeaders", "mtuMeasurements", "networkMeasurements", "numPathTraces", "oAuth", "password", "pathTraceMode", "probeMode", "protocol", "sslVersion", "sslVersionId", "url", "useNtlm", "userAgent", "username", "verifyCertificate", "allowUnsafeLegacyRenegotiation", "followRedirects", "fixedPacketRate", "overrideAgentProxy", "overrideProxyId", "collectProxyNetworkData", "vaultCredentials", "headers", "randomizedStartTime", "requestMethod", "postBody", "ipv6Policy"] model_config = ConfigDict( populate_by_name=True, @@ -135,6 +141,7 @@ class HttpServerInstantTest(BaseModel): * 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([ "created_by", @@ -146,6 +153,7 @@ class HttpServerInstantTest(BaseModel): "test_id", "type", "labels", + "tags", "shared_with_accounts", "ssl_version", ]) @@ -165,6 +173,13 @@ class HttpServerInstantTest(BaseModel): if _item: _items.append(_item.to_dict()) _dict['labels'] = _items + # override the default output from pydantic by calling `to_dict()` of each item in tags (list) + _items = [] + if self.tags: + for _item in self.tags: + if _item: + _items.append(_item.to_dict()) + _dict['tags'] = _items # override the default output from pydantic by calling `to_dict()` of each item in shared_with_accounts (list) _items = [] if self.shared_with_accounts: @@ -181,6 +196,13 @@ class HttpServerInstantTest(BaseModel): # override the default output from pydantic by calling `to_dict()` of o_auth if self.o_auth: _dict['oAuth'] = self.o_auth.to_dict() + # override the default output from pydantic by calling `to_dict()` of each item in vault_credentials (list) + _items = [] + if self.vault_credentials: + for _item in self.vault_credentials: + if _item: + _items.append(_item.to_dict()) + _dict['vaultCredentials'] = _items return _dict @classmethod @@ -205,6 +227,7 @@ class HttpServerInstantTest(BaseModel): "type": obj.get("type"), "_links": TestLinks.from_dict(obj["_links"]) if obj.get("_links") is not None else None, "labels": [TestLabel.from_dict(_item) for _item in obj["labels"]] if obj.get("labels") is not None else None, + "tags": [TestTag.from_dict(_item) for _item in obj["tags"]] if obj.get("tags") is not None else None, "sharedWithAccounts": [SharedWithAccount.from_dict(_item) for _item in obj["sharedWithAccounts"]] if obj.get("sharedWithAccounts") is not None else None, "authType": obj.get("authType"), "agentInterfaces": AgentInterfaces.from_dict(obj["agentInterfaces"]) if obj.get("agentInterfaces") is not None else None, @@ -241,8 +264,10 @@ class HttpServerInstantTest(BaseModel): "overrideAgentProxy": obj.get("overrideAgentProxy") if obj.get("overrideAgentProxy") is not None else False, "overrideProxyId": obj.get("overrideProxyId"), "collectProxyNetworkData": obj.get("collectProxyNetworkData") if obj.get("collectProxyNetworkData") is not None else False, + "vaultCredentials": [TestVaultCredential.from_dict(_item) for _item in obj["vaultCredentials"]] if obj.get("vaultCredentials") is not None else None, "headers": obj.get("headers"), "randomizedStartTime": obj.get("randomizedStartTime") if obj.get("randomizedStartTime") is not None else False, + "requestMethod": obj.get("requestMethod"), "postBody": obj.get("postBody"), "ipv6Policy": obj.get("ipv6Policy") }) diff --git a/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/http_server_properties.py b/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/http_server_properties.py index 3a6c4605..9a845e39 100644 --- a/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/http_server_properties.py +++ b/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/http_server_properties.py @@ -21,6 +21,7 @@ from typing import Any, ClassVar, Dict, List, Optional from typing_extensions import Annotated from thousandeyes_sdk.tests.models.agent_interfaces import AgentInterfaces from thousandeyes_sdk.tests.models.o_auth import OAuth +from thousandeyes_sdk.tests.models.request_method import RequestMethod from thousandeyes_sdk.tests.models.test_auth_type import TestAuthType from thousandeyes_sdk.tests.models.test_custom_headers import TestCustomHeaders from thousandeyes_sdk.tests.models.test_ipv6_policy import TestIpv6Policy @@ -28,6 +29,7 @@ from thousandeyes_sdk.tests.models.test_path_trace_mode import TestPathTraceMode from thousandeyes_sdk.tests.models.test_probe_mode import TestProbeMode from thousandeyes_sdk.tests.models.test_protocol import TestProtocol from thousandeyes_sdk.tests.models.test_ssl_version_id import TestSslVersionId +from thousandeyes_sdk.tests.models.test_vault_credential import TestVaultCredential from typing import Optional, Set from typing_extensions import Self @@ -70,12 +72,14 @@ class HttpServerProperties(BaseModel): override_agent_proxy: Optional[StrictBool] = Field(default=False, description="Flag indicating if a proxy other than the default should be used. To override the default proxy for agents, set to `true` and specify a value for `overrideProxyId`.", alias="overrideAgentProxy") override_proxy_id: Optional[StrictStr] = Field(default=None, description="ID of the proxy to be used if the default proxy is overridden.", alias="overrideProxyId") collect_proxy_network_data: Optional[StrictBool] = Field(default=False, description="Indicates whether network data to the proxy should be collected.", alias="collectProxyNetworkData") + vault_credentials: Optional[List[TestVaultCredential]] = Field(default=None, description="List of credential IDs that are stored in an external vault.", alias="vaultCredentials") headers: Optional[List[StrictStr]] = Field(default=None, description="HTTP request headers used.") randomized_start_time: Optional[StrictBool] = Field(default=False, description="Indicates whether agents should randomize the start time in each test round.", alias="randomizedStartTime") - post_body: Optional[StrictStr] = Field(default=None, description="Enter the body for the HTTP POST request in this field. No special escaping is necessary. If the post body is provided with content, the `requestMethod` is automatically set to POST.", alias="postBody") + request_method: Optional[RequestMethod] = Field(default=None, alias="requestMethod") + post_body: Optional[StrictStr] = Field(default=None, description="Enter the body for the HTTP POST request in this field. No special escaping is required. If content is provided and `requestMethod` is not specified, `requestMethod` is automatically set to `post`.", alias="postBody") ipv6_policy: Optional[TestIpv6Policy] = Field(default=None, alias="ipv6Policy") type: Optional[StrictStr] = None - __properties: ClassVar[List[str]] = ["authType", "agentInterfaces", "bandwidthMeasurements", "clientCertificate", "contentRegex", "customHeaders", "desiredStatusCode", "distributedTracing", "downloadLimit", "dnsOverride", "httpTargetTime", "httpTimeLimit", "httpVersion", "includeHeaders", "mtuMeasurements", "networkMeasurements", "numPathTraces", "oAuth", "password", "pathTraceMode", "probeMode", "protocol", "sslVersion", "sslVersionId", "url", "useNtlm", "userAgent", "username", "verifyCertificate", "allowUnsafeLegacyRenegotiation", "followRedirects", "fixedPacketRate", "overrideAgentProxy", "overrideProxyId", "collectProxyNetworkData", "headers", "randomizedStartTime", "postBody", "ipv6Policy", "type"] + __properties: ClassVar[List[str]] = ["authType", "agentInterfaces", "bandwidthMeasurements", "clientCertificate", "contentRegex", "customHeaders", "desiredStatusCode", "distributedTracing", "downloadLimit", "dnsOverride", "httpTargetTime", "httpTimeLimit", "httpVersion", "includeHeaders", "mtuMeasurements", "networkMeasurements", "numPathTraces", "oAuth", "password", "pathTraceMode", "probeMode", "protocol", "sslVersion", "sslVersionId", "url", "useNtlm", "userAgent", "username", "verifyCertificate", "allowUnsafeLegacyRenegotiation", "followRedirects", "fixedPacketRate", "overrideAgentProxy", "overrideProxyId", "collectProxyNetworkData", "vaultCredentials", "headers", "randomizedStartTime", "requestMethod", "postBody", "ipv6Policy", "type"] model_config = ConfigDict( populate_by_name=True, @@ -130,6 +134,13 @@ class HttpServerProperties(BaseModel): # override the default output from pydantic by calling `to_dict()` of o_auth if self.o_auth: _dict['oAuth'] = self.o_auth.to_dict() + # override the default output from pydantic by calling `to_dict()` of each item in vault_credentials (list) + _items = [] + if self.vault_credentials: + for _item in self.vault_credentials: + if _item: + _items.append(_item.to_dict()) + _dict['vaultCredentials'] = _items return _dict @classmethod @@ -177,8 +188,10 @@ class HttpServerProperties(BaseModel): "overrideAgentProxy": obj.get("overrideAgentProxy") if obj.get("overrideAgentProxy") is not None else False, "overrideProxyId": obj.get("overrideProxyId"), "collectProxyNetworkData": obj.get("collectProxyNetworkData") if obj.get("collectProxyNetworkData") is not None else False, + "vaultCredentials": [TestVaultCredential.from_dict(_item) for _item in obj["vaultCredentials"]] if obj.get("vaultCredentials") is not None else None, "headers": obj.get("headers"), "randomizedStartTime": obj.get("randomizedStartTime") if obj.get("randomizedStartTime") is not None else False, + "requestMethod": obj.get("requestMethod"), "postBody": obj.get("postBody"), "ipv6Policy": obj.get("ipv6Policy"), "type": obj.get("type") diff --git a/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/http_server_test.py b/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/http_server_test.py index 7ad8aa06..56bfb704 100644 --- a/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/http_server_test.py +++ b/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/http_server_test.py @@ -24,6 +24,7 @@ from thousandeyes_sdk.tests.models.agent_interfaces import AgentInterfaces from thousandeyes_sdk.tests.models.alert_rule import AlertRule from thousandeyes_sdk.tests.models.monitor import Monitor from thousandeyes_sdk.tests.models.o_auth import OAuth +from thousandeyes_sdk.tests.models.request_method import RequestMethod from thousandeyes_sdk.tests.models.shared_with_account import SharedWithAccount from thousandeyes_sdk.tests.models.test_auth_type import TestAuthType from thousandeyes_sdk.tests.models.test_custom_headers import TestCustomHeaders @@ -35,6 +36,8 @@ from thousandeyes_sdk.tests.models.test_path_trace_mode import TestPathTraceMode from thousandeyes_sdk.tests.models.test_probe_mode import TestProbeMode from thousandeyes_sdk.tests.models.test_protocol import TestProtocol from thousandeyes_sdk.tests.models.test_ssl_version_id import TestSslVersionId +from thousandeyes_sdk.tests.models.test_tag import TestTag +from thousandeyes_sdk.tests.models.test_vault_credential import TestVaultCredential from typing import Optional, Set from typing_extensions import Self @@ -58,6 +61,7 @@ class HttpServerTest(BaseModel): type: Optional[StrictStr] = None links: Optional[TestLinks] = Field(default=None, alias="_links") labels: Optional[List[TestLabel]] = Field(default=None, description="Labels to which the test is assigned. This field is not returned for Instant Tests.") + tags: Optional[List[TestTag]] = Field(default=None, description="Tags assigned to the test. Returned only when `expand=tag` is specified. This field is not returned for Instant Tests. For more information, see `/tags`.") shared_with_accounts: Optional[List[SharedWithAccount]] = Field(default=None, alias="sharedWithAccounts") auth_type: Optional[TestAuthType] = Field(default=None, alias="authType") agent_interfaces: Optional[AgentInterfaces] = Field(default=None, alias="agentInterfaces") @@ -94,14 +98,16 @@ class HttpServerTest(BaseModel): override_agent_proxy: Optional[StrictBool] = Field(default=False, description="Flag indicating if a proxy other than the default should be used. To override the default proxy for agents, set to `true` and specify a value for `overrideProxyId`.", alias="overrideAgentProxy") override_proxy_id: Optional[StrictStr] = Field(default=None, description="ID of the proxy to be used if the default proxy is overridden.", alias="overrideProxyId") collect_proxy_network_data: Optional[StrictBool] = Field(default=False, description="Indicates whether network data to the proxy should be collected.", alias="collectProxyNetworkData") + vault_credentials: Optional[List[TestVaultCredential]] = Field(default=None, description="List of credential IDs that are stored in an external vault.", alias="vaultCredentials") headers: Optional[List[StrictStr]] = Field(default=None, description="HTTP request headers used.") randomized_start_time: Optional[StrictBool] = Field(default=False, description="Indicates whether agents should randomize the start time in each test round.", alias="randomizedStartTime") - post_body: Optional[StrictStr] = Field(default=None, description="Enter the body for the HTTP POST request in this field. No special escaping is necessary. If the post body is provided with content, the `requestMethod` is automatically set to POST.", alias="postBody") + request_method: Optional[RequestMethod] = Field(default=None, alias="requestMethod") + post_body: Optional[StrictStr] = Field(default=None, description="Enter the body for the HTTP POST request in this field. No special escaping is required. If content is provided and `requestMethod` is not specified, `requestMethod` is automatically set to `post`.", alias="postBody") ipv6_policy: Optional[TestIpv6Policy] = Field(default=None, alias="ipv6Policy") bgp_measurements: Optional[StrictBool] = Field(default=True, description="Set to `true` to enable bgp measurements.", alias="bgpMeasurements") use_public_bgp: Optional[StrictBool] = Field(default=True, description="Indicate if all available public BGP monitors should be used, when ommited defaults to `bgpMeasurements` value.", alias="usePublicBgp") monitors: Optional[List[Monitor]] = Field(default=None, description="Contains list of enabled BGP monitors.") - __properties: ClassVar[List[str]] = ["interval", "alertsEnabled", "enabled", "alertRules", "createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "sharedWithAccounts", "authType", "agentInterfaces", "bandwidthMeasurements", "clientCertificate", "contentRegex", "customHeaders", "desiredStatusCode", "distributedTracing", "downloadLimit", "dnsOverride", "httpTargetTime", "httpTimeLimit", "httpVersion", "includeHeaders", "mtuMeasurements", "networkMeasurements", "numPathTraces", "oAuth", "password", "pathTraceMode", "probeMode", "protocol", "sslVersion", "sslVersionId", "url", "useNtlm", "userAgent", "username", "verifyCertificate", "allowUnsafeLegacyRenegotiation", "followRedirects", "fixedPacketRate", "overrideAgentProxy", "overrideProxyId", "collectProxyNetworkData", "headers", "randomizedStartTime", "postBody", "ipv6Policy", "bgpMeasurements", "usePublicBgp", "monitors"] + __properties: ClassVar[List[str]] = ["interval", "alertsEnabled", "enabled", "alertRules", "createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "tags", "sharedWithAccounts", "authType", "agentInterfaces", "bandwidthMeasurements", "clientCertificate", "contentRegex", "customHeaders", "desiredStatusCode", "distributedTracing", "downloadLimit", "dnsOverride", "httpTargetTime", "httpTimeLimit", "httpVersion", "includeHeaders", "mtuMeasurements", "networkMeasurements", "numPathTraces", "oAuth", "password", "pathTraceMode", "probeMode", "protocol", "sslVersion", "sslVersionId", "url", "useNtlm", "userAgent", "username", "verifyCertificate", "allowUnsafeLegacyRenegotiation", "followRedirects", "fixedPacketRate", "overrideAgentProxy", "overrideProxyId", "collectProxyNetworkData", "vaultCredentials", "headers", "randomizedStartTime", "requestMethod", "postBody", "ipv6Policy", "bgpMeasurements", "usePublicBgp", "monitors"] model_config = ConfigDict( populate_by_name=True, @@ -146,6 +152,7 @@ class HttpServerTest(BaseModel): * 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([ "created_by", @@ -157,6 +164,7 @@ class HttpServerTest(BaseModel): "test_id", "type", "labels", + "tags", "shared_with_accounts", "ssl_version", "monitors", @@ -184,6 +192,13 @@ class HttpServerTest(BaseModel): if _item: _items.append(_item.to_dict()) _dict['labels'] = _items + # override the default output from pydantic by calling `to_dict()` of each item in tags (list) + _items = [] + if self.tags: + for _item in self.tags: + if _item: + _items.append(_item.to_dict()) + _dict['tags'] = _items # override the default output from pydantic by calling `to_dict()` of each item in shared_with_accounts (list) _items = [] if self.shared_with_accounts: @@ -200,6 +215,13 @@ class HttpServerTest(BaseModel): # override the default output from pydantic by calling `to_dict()` of o_auth if self.o_auth: _dict['oAuth'] = self.o_auth.to_dict() + # override the default output from pydantic by calling `to_dict()` of each item in vault_credentials (list) + _items = [] + if self.vault_credentials: + for _item in self.vault_credentials: + if _item: + _items.append(_item.to_dict()) + _dict['vaultCredentials'] = _items # override the default output from pydantic by calling `to_dict()` of each item in monitors (list) _items = [] if self.monitors: @@ -235,6 +257,7 @@ class HttpServerTest(BaseModel): "type": obj.get("type"), "_links": TestLinks.from_dict(obj["_links"]) if obj.get("_links") is not None else None, "labels": [TestLabel.from_dict(_item) for _item in obj["labels"]] if obj.get("labels") is not None else None, + "tags": [TestTag.from_dict(_item) for _item in obj["tags"]] if obj.get("tags") is not None else None, "sharedWithAccounts": [SharedWithAccount.from_dict(_item) for _item in obj["sharedWithAccounts"]] if obj.get("sharedWithAccounts") is not None else None, "authType": obj.get("authType"), "agentInterfaces": AgentInterfaces.from_dict(obj["agentInterfaces"]) if obj.get("agentInterfaces") is not None else None, @@ -271,8 +294,10 @@ class HttpServerTest(BaseModel): "overrideAgentProxy": obj.get("overrideAgentProxy") if obj.get("overrideAgentProxy") is not None else False, "overrideProxyId": obj.get("overrideProxyId"), "collectProxyNetworkData": obj.get("collectProxyNetworkData") if obj.get("collectProxyNetworkData") is not None else False, + "vaultCredentials": [TestVaultCredential.from_dict(_item) for _item in obj["vaultCredentials"]] if obj.get("vaultCredentials") is not None else None, "headers": obj.get("headers"), "randomizedStartTime": obj.get("randomizedStartTime") if obj.get("randomizedStartTime") is not None else False, + "requestMethod": obj.get("requestMethod"), "postBody": obj.get("postBody"), "ipv6Policy": obj.get("ipv6Policy"), "bgpMeasurements": obj.get("bgpMeasurements") if obj.get("bgpMeasurements") is not None else True, diff --git a/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/http_server_test_request.py b/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/http_server_test_request.py index cac58905..64591715 100644 --- a/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/http_server_test_request.py +++ b/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/http_server_test_request.py @@ -22,6 +22,7 @@ from typing import Any, ClassVar, Dict, List, Optional from typing_extensions import Annotated from thousandeyes_sdk.tests.models.agent_interfaces import AgentInterfaces from thousandeyes_sdk.tests.models.o_auth import OAuth +from thousandeyes_sdk.tests.models.request_method import RequestMethod from thousandeyes_sdk.tests.models.test_agent_request import TestAgentRequest from thousandeyes_sdk.tests.models.test_auth_type import TestAuthType from thousandeyes_sdk.tests.models.test_custom_headers import TestCustomHeaders @@ -32,6 +33,7 @@ from thousandeyes_sdk.tests.models.test_path_trace_mode import TestPathTraceMode from thousandeyes_sdk.tests.models.test_probe_mode import TestProbeMode from thousandeyes_sdk.tests.models.test_protocol import TestProtocol from thousandeyes_sdk.tests.models.test_ssl_version_id import TestSslVersionId +from thousandeyes_sdk.tests.models.test_vault_credential import TestVaultCredential from typing import Optional, Set from typing_extensions import Self @@ -42,7 +44,6 @@ class HttpServerTestRequest(BaseModel): interval: TestInterval alerts_enabled: Optional[StrictBool] = Field(default=None, description="Indicates if alerts are enabled.", alias="alertsEnabled") enabled: Optional[StrictBool] = Field(default=True, description="Test is enabled.") - alert_rules: Optional[List[StrictStr]] = Field(default=None, description="List of alert rules IDs to apply to the test (get `ruleId` from `/alerts/rules` endpoint. If `alertsEnabled` is set to `true` and `alertRules` is not included on test creation or update, applicable user default alert rules will be used)", alias="alertRules") created_by: Optional[StrictStr] = Field(default=None, description="User that created the test.", alias="createdBy") created_date: Optional[datetime] = Field(default=None, description="UTC created date (ISO date-time format).", alias="createdDate") description: Optional[StrictStr] = Field(default=None, description="A description of the test.") @@ -54,8 +55,6 @@ class HttpServerTestRequest(BaseModel): test_name: Optional[StrictStr] = Field(default=None, description="The name of the test. Test name must be unique.", alias="testName") type: Optional[StrictStr] = None links: Optional[TestLinks] = Field(default=None, alias="_links") - labels: Optional[List[StrictStr]] = Field(default=None, description="Contains list of test label IDs (get `labelId` from `/labels` endpoint)") - shared_with_accounts: Optional[List[StrictStr]] = Field(default=None, description="Contains list of account group IDs. Test is shared with the listed account groups (get `aid` from `/account-groups` endpoint)", alias="sharedWithAccounts") auth_type: Optional[TestAuthType] = Field(default=None, alias="authType") agent_interfaces: Optional[AgentInterfaces] = Field(default=None, alias="agentInterfaces") bandwidth_measurements: Optional[StrictBool] = Field(default=None, description="Set to `true` to enable bandwidth measurements, only applies to Enterprise agents assigned to the test.", alias="bandwidthMeasurements") @@ -91,16 +90,21 @@ class HttpServerTestRequest(BaseModel): override_agent_proxy: Optional[StrictBool] = Field(default=False, description="Flag indicating if a proxy other than the default should be used. To override the default proxy for agents, set to `true` and specify a value for `overrideProxyId`.", alias="overrideAgentProxy") override_proxy_id: Optional[StrictStr] = Field(default=None, description="ID of the proxy to be used if the default proxy is overridden.", alias="overrideProxyId") collect_proxy_network_data: Optional[StrictBool] = Field(default=False, description="Indicates whether network data to the proxy should be collected.", alias="collectProxyNetworkData") + vault_credentials: Optional[List[TestVaultCredential]] = Field(default=None, description="List of credential IDs that are stored in an external vault.", alias="vaultCredentials") headers: Optional[List[StrictStr]] = Field(default=None, description="HTTP request headers used.") randomized_start_time: Optional[StrictBool] = Field(default=False, description="Indicates whether agents should randomize the start time in each test round.", alias="randomizedStartTime") - post_body: Optional[StrictStr] = Field(default=None, description="Enter the body for the HTTP POST request in this field. No special escaping is necessary. If the post body is provided with content, the `requestMethod` is automatically set to POST.", alias="postBody") + request_method: Optional[RequestMethod] = Field(default=None, alias="requestMethod") + post_body: Optional[StrictStr] = Field(default=None, description="Enter the body for the HTTP POST request in this field. No special escaping is required. If content is provided and `requestMethod` is not specified, `requestMethod` is automatically set to `post`.", alias="postBody") ipv6_policy: Optional[TestIpv6Policy] = Field(default=None, alias="ipv6Policy") bgp_measurements: Optional[StrictBool] = Field(default=True, description="Set to `true` to enable bgp measurements.", alias="bgpMeasurements") use_public_bgp: Optional[StrictBool] = Field(default=True, description="Indicate if all available public BGP monitors should be used, when ommited defaults to `bgpMeasurements` value.", alias="usePublicBgp") - monitors: Optional[List[StrictStr]] = Field(default=None, description="Contains list of BGP monitor IDs (get `monitorId` from `/monitors` endpoint)") + labels: Optional[List[StrictStr]] = Field(default=None, description="Contains list of test label IDs (get `labelId` from `/labels` endpoint)") tags: Optional[List[StrictStr]] = Field(default=None, description="Contains list of test tag IDs (get `id` from `/tags` endpoint).") + shared_with_accounts: Optional[List[StrictStr]] = Field(default=None, description="Contains list of account group IDs. Test is shared with the listed account groups (get `aid` from `/account-groups` endpoint)", alias="sharedWithAccounts") + alert_rules: Optional[List[StrictStr]] = Field(default=None, description="List of alert rules IDs to apply to the test (get `ruleId` from `/alerts/rules` endpoint. If `alertsEnabled` is set to `true` and `alertRules` is not included on test creation or update, applicable user default alert rules will be used)", alias="alertRules") agents: List[TestAgentRequest] = Field(description="Contains list of Agent IDs (get `agentId` from `/agents` endpoint).") - __properties: ClassVar[List[str]] = ["interval", "alertsEnabled", "enabled", "alertRules", "createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "sharedWithAccounts", "authType", "agentInterfaces", "bandwidthMeasurements", "clientCertificate", "contentRegex", "customHeaders", "desiredStatusCode", "distributedTracing", "downloadLimit", "dnsOverride", "httpTargetTime", "httpTimeLimit", "httpVersion", "includeHeaders", "mtuMeasurements", "networkMeasurements", "numPathTraces", "oAuth", "password", "pathTraceMode", "probeMode", "protocol", "sslVersion", "sslVersionId", "url", "useNtlm", "userAgent", "username", "verifyCertificate", "allowUnsafeLegacyRenegotiation", "followRedirects", "fixedPacketRate", "overrideAgentProxy", "overrideProxyId", "collectProxyNetworkData", "headers", "randomizedStartTime", "postBody", "ipv6Policy", "bgpMeasurements", "usePublicBgp", "monitors", "tags", "agents"] + monitors: Optional[List[StrictStr]] = Field(default=None, description="Contains list of BGP monitor IDs (get `monitorId` from `/monitors` endpoint)") + __properties: ClassVar[List[str]] = ["interval", "alertsEnabled", "enabled", "createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "authType", "agentInterfaces", "bandwidthMeasurements", "clientCertificate", "contentRegex", "customHeaders", "desiredStatusCode", "distributedTracing", "downloadLimit", "dnsOverride", "httpTargetTime", "httpTimeLimit", "httpVersion", "includeHeaders", "mtuMeasurements", "networkMeasurements", "numPathTraces", "oAuth", "password", "pathTraceMode", "probeMode", "protocol", "sslVersion", "sslVersionId", "url", "useNtlm", "userAgent", "username", "verifyCertificate", "allowUnsafeLegacyRenegotiation", "followRedirects", "fixedPacketRate", "overrideAgentProxy", "overrideProxyId", "collectProxyNetworkData", "vaultCredentials", "headers", "randomizedStartTime", "requestMethod", "postBody", "ipv6Policy", "bgpMeasurements", "usePublicBgp", "labels", "tags", "sharedWithAccounts", "alertRules", "agents", "monitors"] model_config = ConfigDict( populate_by_name=True, @@ -172,6 +176,13 @@ class HttpServerTestRequest(BaseModel): # override the default output from pydantic by calling `to_dict()` of o_auth if self.o_auth: _dict['oAuth'] = self.o_auth.to_dict() + # override the default output from pydantic by calling `to_dict()` of each item in vault_credentials (list) + _items = [] + if self.vault_credentials: + for _item in self.vault_credentials: + if _item: + _items.append(_item.to_dict()) + _dict['vaultCredentials'] = _items # override the default output from pydantic by calling `to_dict()` of each item in agents (list) _items = [] if self.agents: @@ -194,7 +205,6 @@ class HttpServerTestRequest(BaseModel): "interval": obj.get("interval"), "alertsEnabled": obj.get("alertsEnabled"), "enabled": obj.get("enabled") if obj.get("enabled") is not None else True, - "alertRules": obj.get("alertRules"), "createdBy": obj.get("createdBy"), "createdDate": obj.get("createdDate"), "description": obj.get("description"), @@ -206,8 +216,6 @@ class HttpServerTestRequest(BaseModel): "testName": obj.get("testName"), "type": obj.get("type"), "_links": TestLinks.from_dict(obj["_links"]) if obj.get("_links") is not None else None, - "labels": obj.get("labels"), - "sharedWithAccounts": obj.get("sharedWithAccounts"), "authType": obj.get("authType"), "agentInterfaces": AgentInterfaces.from_dict(obj["agentInterfaces"]) if obj.get("agentInterfaces") is not None else None, "bandwidthMeasurements": obj.get("bandwidthMeasurements"), @@ -243,15 +251,20 @@ class HttpServerTestRequest(BaseModel): "overrideAgentProxy": obj.get("overrideAgentProxy") if obj.get("overrideAgentProxy") is not None else False, "overrideProxyId": obj.get("overrideProxyId"), "collectProxyNetworkData": obj.get("collectProxyNetworkData") if obj.get("collectProxyNetworkData") is not None else False, + "vaultCredentials": [TestVaultCredential.from_dict(_item) for _item in obj["vaultCredentials"]] if obj.get("vaultCredentials") is not None else None, "headers": obj.get("headers"), "randomizedStartTime": obj.get("randomizedStartTime") if obj.get("randomizedStartTime") is not None else False, + "requestMethod": obj.get("requestMethod"), "postBody": obj.get("postBody"), "ipv6Policy": obj.get("ipv6Policy"), "bgpMeasurements": obj.get("bgpMeasurements") if obj.get("bgpMeasurements") is not None else True, "usePublicBgp": obj.get("usePublicBgp") if obj.get("usePublicBgp") is not None else True, - "monitors": obj.get("monitors"), + "labels": obj.get("labels"), "tags": obj.get("tags"), - "agents": [TestAgentRequest.from_dict(_item) for _item in obj["agents"]] if obj.get("agents") is not None else None + "sharedWithAccounts": obj.get("sharedWithAccounts"), + "alertRules": obj.get("alertRules"), + "agents": [TestAgentRequest.from_dict(_item) for _item in obj["agents"]] if obj.get("agents") is not None else None, + "monitors": obj.get("monitors") }) return _obj diff --git a/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/http_server_test_response.py b/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/http_server_test_response.py index 0fc8d35a..1c9dc28b 100644 --- a/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/http_server_test_response.py +++ b/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/http_server_test_response.py @@ -25,6 +25,7 @@ from thousandeyes_sdk.tests.models.agent_response import AgentResponse from thousandeyes_sdk.tests.models.alert_rule import AlertRule from thousandeyes_sdk.tests.models.monitor import Monitor from thousandeyes_sdk.tests.models.o_auth import OAuth +from thousandeyes_sdk.tests.models.request_method import RequestMethod from thousandeyes_sdk.tests.models.shared_with_account import SharedWithAccount from thousandeyes_sdk.tests.models.test_auth_type import TestAuthType from thousandeyes_sdk.tests.models.test_custom_headers import TestCustomHeaders @@ -36,6 +37,8 @@ from thousandeyes_sdk.tests.models.test_path_trace_mode import TestPathTraceMode from thousandeyes_sdk.tests.models.test_probe_mode import TestProbeMode from thousandeyes_sdk.tests.models.test_protocol import TestProtocol from thousandeyes_sdk.tests.models.test_ssl_version_id import TestSslVersionId +from thousandeyes_sdk.tests.models.test_tag import TestTag +from thousandeyes_sdk.tests.models.test_vault_credential import TestVaultCredential from typing import Optional, Set from typing_extensions import Self @@ -59,6 +62,7 @@ class HttpServerTestResponse(BaseModel): type: Optional[StrictStr] = None links: Optional[TestLinks] = Field(default=None, alias="_links") labels: Optional[List[TestLabel]] = Field(default=None, description="Labels to which the test is assigned. This field is not returned for Instant Tests.") + tags: Optional[List[TestTag]] = Field(default=None, description="Tags assigned to the test. Returned only when `expand=tag` is specified. This field is not returned for Instant Tests. For more information, see `/tags`.") shared_with_accounts: Optional[List[SharedWithAccount]] = Field(default=None, alias="sharedWithAccounts") auth_type: Optional[TestAuthType] = Field(default=None, alias="authType") agent_interfaces: Optional[AgentInterfaces] = Field(default=None, alias="agentInterfaces") @@ -95,15 +99,17 @@ class HttpServerTestResponse(BaseModel): override_agent_proxy: Optional[StrictBool] = Field(default=False, description="Flag indicating if a proxy other than the default should be used. To override the default proxy for agents, set to `true` and specify a value for `overrideProxyId`.", alias="overrideAgentProxy") override_proxy_id: Optional[StrictStr] = Field(default=None, description="ID of the proxy to be used if the default proxy is overridden.", alias="overrideProxyId") collect_proxy_network_data: Optional[StrictBool] = Field(default=False, description="Indicates whether network data to the proxy should be collected.", alias="collectProxyNetworkData") + vault_credentials: Optional[List[TestVaultCredential]] = Field(default=None, description="List of credential IDs that are stored in an external vault.", alias="vaultCredentials") headers: Optional[List[StrictStr]] = Field(default=None, description="HTTP request headers used.") randomized_start_time: Optional[StrictBool] = Field(default=False, description="Indicates whether agents should randomize the start time in each test round.", alias="randomizedStartTime") - post_body: Optional[StrictStr] = Field(default=None, description="Enter the body for the HTTP POST request in this field. No special escaping is necessary. If the post body is provided with content, the `requestMethod` is automatically set to POST.", alias="postBody") + request_method: Optional[RequestMethod] = Field(default=None, alias="requestMethod") + post_body: Optional[StrictStr] = Field(default=None, description="Enter the body for the HTTP POST request in this field. No special escaping is required. If content is provided and `requestMethod` is not specified, `requestMethod` is automatically set to `post`.", alias="postBody") ipv6_policy: Optional[TestIpv6Policy] = Field(default=None, alias="ipv6Policy") bgp_measurements: Optional[StrictBool] = Field(default=True, description="Set to `true` to enable bgp measurements.", alias="bgpMeasurements") use_public_bgp: Optional[StrictBool] = Field(default=True, description="Indicate if all available public BGP monitors should be used, when ommited defaults to `bgpMeasurements` value.", alias="usePublicBgp") monitors: Optional[List[Monitor]] = Field(default=None, description="Contains list of enabled BGP monitors.") agents: Optional[List[AgentResponse]] = Field(default=None, description="Contains list of agents.") - __properties: ClassVar[List[str]] = ["interval", "alertsEnabled", "enabled", "alertRules", "createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "sharedWithAccounts", "authType", "agentInterfaces", "bandwidthMeasurements", "clientCertificate", "contentRegex", "customHeaders", "desiredStatusCode", "distributedTracing", "downloadLimit", "dnsOverride", "httpTargetTime", "httpTimeLimit", "httpVersion", "includeHeaders", "mtuMeasurements", "networkMeasurements", "numPathTraces", "oAuth", "password", "pathTraceMode", "probeMode", "protocol", "sslVersion", "sslVersionId", "url", "useNtlm", "userAgent", "username", "verifyCertificate", "allowUnsafeLegacyRenegotiation", "followRedirects", "fixedPacketRate", "overrideAgentProxy", "overrideProxyId", "collectProxyNetworkData", "headers", "randomizedStartTime", "postBody", "ipv6Policy", "bgpMeasurements", "usePublicBgp", "monitors", "agents"] + __properties: ClassVar[List[str]] = ["interval", "alertsEnabled", "enabled", "alertRules", "createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "tags", "sharedWithAccounts", "authType", "agentInterfaces", "bandwidthMeasurements", "clientCertificate", "contentRegex", "customHeaders", "desiredStatusCode", "distributedTracing", "downloadLimit", "dnsOverride", "httpTargetTime", "httpTimeLimit", "httpVersion", "includeHeaders", "mtuMeasurements", "networkMeasurements", "numPathTraces", "oAuth", "password", "pathTraceMode", "probeMode", "protocol", "sslVersion", "sslVersionId", "url", "useNtlm", "userAgent", "username", "verifyCertificate", "allowUnsafeLegacyRenegotiation", "followRedirects", "fixedPacketRate", "overrideAgentProxy", "overrideProxyId", "collectProxyNetworkData", "vaultCredentials", "headers", "randomizedStartTime", "requestMethod", "postBody", "ipv6Policy", "bgpMeasurements", "usePublicBgp", "monitors", "agents"] model_config = ConfigDict( populate_by_name=True, @@ -148,6 +154,7 @@ class HttpServerTestResponse(BaseModel): * 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([ "created_by", @@ -159,6 +166,7 @@ class HttpServerTestResponse(BaseModel): "test_id", "type", "labels", + "tags", "shared_with_accounts", "ssl_version", "monitors", @@ -186,6 +194,13 @@ class HttpServerTestResponse(BaseModel): if _item: _items.append(_item.to_dict()) _dict['labels'] = _items + # override the default output from pydantic by calling `to_dict()` of each item in tags (list) + _items = [] + if self.tags: + for _item in self.tags: + if _item: + _items.append(_item.to_dict()) + _dict['tags'] = _items # override the default output from pydantic by calling `to_dict()` of each item in shared_with_accounts (list) _items = [] if self.shared_with_accounts: @@ -202,6 +217,13 @@ class HttpServerTestResponse(BaseModel): # override the default output from pydantic by calling `to_dict()` of o_auth if self.o_auth: _dict['oAuth'] = self.o_auth.to_dict() + # override the default output from pydantic by calling `to_dict()` of each item in vault_credentials (list) + _items = [] + if self.vault_credentials: + for _item in self.vault_credentials: + if _item: + _items.append(_item.to_dict()) + _dict['vaultCredentials'] = _items # override the default output from pydantic by calling `to_dict()` of each item in monitors (list) _items = [] if self.monitors: @@ -244,6 +266,7 @@ class HttpServerTestResponse(BaseModel): "type": obj.get("type"), "_links": TestLinks.from_dict(obj["_links"]) if obj.get("_links") is not None else None, "labels": [TestLabel.from_dict(_item) for _item in obj["labels"]] if obj.get("labels") is not None else None, + "tags": [TestTag.from_dict(_item) for _item in obj["tags"]] if obj.get("tags") is not None else None, "sharedWithAccounts": [SharedWithAccount.from_dict(_item) for _item in obj["sharedWithAccounts"]] if obj.get("sharedWithAccounts") is not None else None, "authType": obj.get("authType"), "agentInterfaces": AgentInterfaces.from_dict(obj["agentInterfaces"]) if obj.get("agentInterfaces") is not None else None, @@ -280,8 +303,10 @@ class HttpServerTestResponse(BaseModel): "overrideAgentProxy": obj.get("overrideAgentProxy") if obj.get("overrideAgentProxy") is not None else False, "overrideProxyId": obj.get("overrideProxyId"), "collectProxyNetworkData": obj.get("collectProxyNetworkData") if obj.get("collectProxyNetworkData") is not None else False, + "vaultCredentials": [TestVaultCredential.from_dict(_item) for _item in obj["vaultCredentials"]] if obj.get("vaultCredentials") is not None else None, "headers": obj.get("headers"), "randomizedStartTime": obj.get("randomizedStartTime") if obj.get("randomizedStartTime") is not None else False, + "requestMethod": obj.get("requestMethod"), "postBody": obj.get("postBody"), "ipv6Policy": obj.get("ipv6Policy"), "bgpMeasurements": obj.get("bgpMeasurements") if obj.get("bgpMeasurements") is not None else True, diff --git a/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/instant_test.py b/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/instant_test.py index e974f9d4..8e3d4979 100644 --- a/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/instant_test.py +++ b/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/instant_test.py @@ -22,6 +22,7 @@ from typing import Any, ClassVar, Dict, List, Optional from thousandeyes_sdk.tests.models.shared_with_account import SharedWithAccount from thousandeyes_sdk.tests.models.test_label import TestLabel from thousandeyes_sdk.tests.models.test_links import TestLinks +from thousandeyes_sdk.tests.models.test_tag import TestTag from thousandeyes_sdk.tests.models.test_type import TestType from typing import Optional, Set from typing_extensions import Self @@ -42,8 +43,9 @@ class InstantTest(BaseModel): type: Optional[TestType] = None links: Optional[TestLinks] = Field(default=None, alias="_links") labels: Optional[List[TestLabel]] = Field(default=None, description="Labels to which the test is assigned. This field is not returned for Instant Tests.") + tags: Optional[List[TestTag]] = Field(default=None, description="Tags assigned to the test. Returned only when `expand=tag` is specified. This field is not returned for Instant Tests. For more information, see `/tags`.") shared_with_accounts: Optional[List[SharedWithAccount]] = Field(default=None, alias="sharedWithAccounts") - __properties: ClassVar[List[str]] = ["createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "sharedWithAccounts"] + __properties: ClassVar[List[str]] = ["createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "tags", "sharedWithAccounts"] model_config = ConfigDict( populate_by_name=True, @@ -85,6 +87,7 @@ class InstantTest(BaseModel): * 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([ "created_by", @@ -95,6 +98,7 @@ class InstantTest(BaseModel): "saved_event", "test_id", "labels", + "tags", "shared_with_accounts", ]) @@ -113,6 +117,13 @@ class InstantTest(BaseModel): if _item: _items.append(_item.to_dict()) _dict['labels'] = _items + # override the default output from pydantic by calling `to_dict()` of each item in tags (list) + _items = [] + if self.tags: + for _item in self.tags: + if _item: + _items.append(_item.to_dict()) + _dict['tags'] = _items # override the default output from pydantic by calling `to_dict()` of each item in shared_with_accounts (list) _items = [] if self.shared_with_accounts: @@ -144,6 +155,7 @@ class InstantTest(BaseModel): "type": obj.get("type"), "_links": TestLinks.from_dict(obj["_links"]) if obj.get("_links") is not None else None, "labels": [TestLabel.from_dict(_item) for _item in obj["labels"]] if obj.get("labels") is not None else None, + "tags": [TestTag.from_dict(_item) for _item in obj["tags"]] if obj.get("tags") is not None else None, "sharedWithAccounts": [SharedWithAccount.from_dict(_item) for _item in obj["sharedWithAccounts"]] if obj.get("sharedWithAccounts") is not None else None }) return _obj diff --git a/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/network_provider_info.py b/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/network_provider_info.py new file mode 100644 index 00000000..bac7a774 --- /dev/null +++ b/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/network_provider_info.py @@ -0,0 +1,96 @@ +# coding: utf-8 + +""" + Tests API + + **Note:** The Page Load Tests, API Tests, and Web Transaction Tests APIs are not available for ThousandEyes for Government instance. This API allows you to list, create, edit, and delete Network and Application Synthetics tests. + + 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 thousandeyes_sdk.tests.models.network_provider_type import NetworkProviderType +from typing import Optional, Set +from typing_extensions import Self + +class NetworkProviderInfo(BaseModel): + """ + Information about the network provider that owns the agent's public IP prefix. + """ # noqa: E501 + asn: Optional[StrictInt] = Field(default=None, description="Autonomous System Number (ASN) announcing the agent's public IP prefix.") + name: Optional[StrictStr] = Field(default=None, description="Name of the network provider organization.") + type: Optional[NetworkProviderType] = None + __properties: ClassVar[List[str]] = ["asn", "name", "type"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + extra="allow", + ) + + + 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 self.model_dump_json(by_alias=True, exclude_unset=True, exclude_none=True) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of NetworkProviderInfo 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. + * OpenAPI `readOnly` fields are excluded. + * OpenAPI `readOnly` fields are excluded. + """ + excluded_fields: Set[str] = set([ + "asn", + "name", + ]) + + _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 NetworkProviderInfo from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "asn": obj.get("asn"), + "name": obj.get("name"), + "type": obj.get("type") + }) + return _obj + + diff --git a/thousandeyes-sdk-dashboards/src/thousandeyes_sdk/dashboards/models/api_widget_sort_direction.py b/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/network_provider_type.py similarity index 51% rename from thousandeyes-sdk-dashboards/src/thousandeyes_sdk/dashboards/models/api_widget_sort_direction.py rename to thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/network_provider_type.py index 2933de83..b93306c2 100644 --- a/thousandeyes-sdk-dashboards/src/thousandeyes_sdk/dashboards/models/api_widget_sort_direction.py +++ b/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/network_provider_type.py @@ -1,9 +1,9 @@ # coding: utf-8 """ - Dashboards API + Tests API - Manage ThousandEyes Dashboards. + **Note:** The Page Load Tests, API Tests, and Web Transaction Tests APIs are not available for ThousandEyes for Government instance. This API allows you to list, create, edit, and delete Network and Application Synthetics tests. Generated by OpenAPI Generator (https://openapi-generator.tech) @@ -17,21 +17,24 @@ from enum import Enum from typing_extensions import Self -class ApiWidgetSortDirection(str, Enum): +class NetworkProviderType(str, Enum): """ - Specifies the order in which cards are sorted. + Classification of the agent's network provider. """ """ allowed enum values """ - ASCENDING = 'ascending' - DESCENDING = 'descending' UNKNOWN = 'unknown' + ISP = 'isp' + CDN = 'cdn' + STUB = 'stub' + CLOUD_MINUS_PROVIDER = 'cloud-provider' + CARRIER = 'carrier' @classmethod def from_json(cls, json_str: str) -> Self: - """Create an instance of ApiWidgetSortDirection from a JSON string""" + """Create an instance of NetworkProviderType from a JSON string""" return cls(json.loads(json_str)) @classmethod diff --git a/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/o_auth.py b/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/o_auth.py index 6900e957..fe1a99eb 100644 --- a/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/o_auth.py +++ b/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/o_auth.py @@ -19,7 +19,7 @@ import json from pydantic import BaseModel, ConfigDict, Field, StrictStr from typing import Any, ClassVar, Dict, List, Optional from thousandeyes_sdk.tests.models.o_auth_auth_type import OAuthAuthType -from thousandeyes_sdk.tests.models.o_auth_request_method import OAuthRequestMethod +from thousandeyes_sdk.tests.models.request_method import RequestMethod from typing import Optional, Set from typing_extensions import Self @@ -28,7 +28,7 @@ class OAuth(BaseModel): Use this only if you want to use OAuth as the authentication mechanism. """ # noqa: E501 test_url: Optional[StrictStr] = Field(default=None, description="Target for the test.", alias="testUrl") - request_method: Optional[OAuthRequestMethod] = Field(default=None, alias="requestMethod") + request_method: Optional[RequestMethod] = Field(default=None, alias="requestMethod") post_body: Optional[StrictStr] = Field(default=None, description="Enter the OAuth body for the HTTP POST request in this field when using OAuth as the authentication mechanism. No special escaping is required. The value is saved only when `requestMethod` is set to `post`.", alias="postBody") headers: Optional[StrictStr] = Field(default=None, description="Request headers used for OAuth.") auth_type: Optional[OAuthAuthType] = Field(default=None, alias="authType") diff --git a/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/page_load_instant_test.py b/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/page_load_instant_test.py index c6e62aee..14cdcb86 100644 --- a/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/page_load_instant_test.py +++ b/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/page_load_instant_test.py @@ -32,6 +32,8 @@ from thousandeyes_sdk.tests.models.test_path_trace_mode import TestPathTraceMode from thousandeyes_sdk.tests.models.test_probe_mode import TestProbeMode from thousandeyes_sdk.tests.models.test_protocol import TestProtocol from thousandeyes_sdk.tests.models.test_ssl_version_id import TestSslVersionId +from thousandeyes_sdk.tests.models.test_tag import TestTag +from thousandeyes_sdk.tests.models.test_vault_credential import TestVaultCredential from typing import Optional, Set from typing_extensions import Self @@ -51,6 +53,7 @@ class PageLoadInstantTest(BaseModel): type: Optional[StrictStr] = None links: Optional[TestLinks] = Field(default=None, alias="_links") labels: Optional[List[TestLabel]] = Field(default=None, description="Labels to which the test is assigned. This field is not returned for Instant Tests.") + tags: Optional[List[TestTag]] = Field(default=None, description="Tags assigned to the test. Returned only when `expand=tag` is specified. This field is not returned for Instant Tests. For more information, see `/tags`.") shared_with_accounts: Optional[List[SharedWithAccount]] = Field(default=None, alias="sharedWithAccounts") auth_type: Optional[TestAuthType] = Field(default=None, alias="authType") agent_interfaces: Optional[AgentInterfaces] = Field(default=None, alias="agentInterfaces") @@ -87,6 +90,7 @@ class PageLoadInstantTest(BaseModel): override_agent_proxy: Optional[StrictBool] = Field(default=False, description="Flag indicating if a proxy other than the default should be used. To override the default proxy for agents, set to `true` and specify a value for `overrideProxyId`.", alias="overrideAgentProxy") override_proxy_id: Optional[StrictStr] = Field(default=None, description="ID of the proxy to be used if the default proxy is overridden.", alias="overrideProxyId") collect_proxy_network_data: Optional[StrictBool] = Field(default=False, description="Indicates whether network data to the proxy should be collected.", alias="collectProxyNetworkData") + vault_credentials: Optional[List[TestVaultCredential]] = Field(default=None, description="List of credential IDs that are stored in an external vault.", alias="vaultCredentials") emulated_device_id: Optional[StrictStr] = Field(default=None, description="ID of the emulated device, if one was given when the test was created.", alias="emulatedDeviceId") page_load_target_time: Optional[Annotated[int, Field(le=60, strict=True, ge=1)]] = Field(default=None, description="Target time for page load completion, specified in seconds and cannot exceed the `pageLoadTimeLimit`.", alias="pageLoadTargetTime") page_load_time_limit: Optional[Annotated[int, Field(le=60, strict=True, ge=5)]] = Field(default=10, description="Page load time limit. Must be larger than the `httpTimeLimit`.", alias="pageLoadTimeLimit") @@ -100,7 +104,7 @@ class PageLoadInstantTest(BaseModel): page_loading_strategy: Optional[TestPageLoadingStrategy] = Field(default=None, alias="pageLoadingStrategy") randomized_start_time: Optional[StrictBool] = Field(default=False, description="Indicates whether agents should randomize the start time in each test round.", alias="randomizedStartTime") identify_agent_traffic_with_user_agent: Optional[StrictBool] = Field(default=False, description="Determines how agent traffic is identified: * `false`: Adds the `x-thousandeyes-agent: yes` header. * `true`: Appends `(ThousandEyes Agent)` to the `user-agent` header. For more information, see [Notes on Agent ID Strategy](https://docs.thousandeyes.com/product-documentation/browser-synthetics/test-settings-page-load-transaction#notes-on-agent-id-strategy). ", alias="identifyAgentTrafficWithUserAgent") - __properties: ClassVar[List[str]] = ["createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "sharedWithAccounts", "authType", "agentInterfaces", "bandwidthMeasurements", "clientCertificate", "contentRegex", "customHeaders", "desiredStatusCode", "distributedTracing", "downloadLimit", "dnsOverride", "httpTargetTime", "httpTimeLimit", "httpVersion", "includeHeaders", "mtuMeasurements", "networkMeasurements", "numPathTraces", "oAuth", "password", "pathTraceMode", "probeMode", "protocol", "sslVersion", "sslVersionId", "url", "useNtlm", "userAgent", "username", "verifyCertificate", "allowUnsafeLegacyRenegotiation", "followRedirects", "fixedPacketRate", "overrideAgentProxy", "overrideProxyId", "collectProxyNetworkData", "emulatedDeviceId", "pageLoadTargetTime", "pageLoadTimeLimit", "blockDomains", "disableScreenshot", "allowMicAndCamera", "allowGeolocation", "browserLanguage", "chromeOptions", "chromePolicies", "pageLoadingStrategy", "randomizedStartTime", "identifyAgentTrafficWithUserAgent"] + __properties: ClassVar[List[str]] = ["createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "tags", "sharedWithAccounts", "authType", "agentInterfaces", "bandwidthMeasurements", "clientCertificate", "contentRegex", "customHeaders", "desiredStatusCode", "distributedTracing", "downloadLimit", "dnsOverride", "httpTargetTime", "httpTimeLimit", "httpVersion", "includeHeaders", "mtuMeasurements", "networkMeasurements", "numPathTraces", "oAuth", "password", "pathTraceMode", "probeMode", "protocol", "sslVersion", "sslVersionId", "url", "useNtlm", "userAgent", "username", "verifyCertificate", "allowUnsafeLegacyRenegotiation", "followRedirects", "fixedPacketRate", "overrideAgentProxy", "overrideProxyId", "collectProxyNetworkData", "vaultCredentials", "emulatedDeviceId", "pageLoadTargetTime", "pageLoadTimeLimit", "blockDomains", "disableScreenshot", "allowMicAndCamera", "allowGeolocation", "browserLanguage", "chromeOptions", "chromePolicies", "pageLoadingStrategy", "randomizedStartTime", "identifyAgentTrafficWithUserAgent"] model_config = ConfigDict( populate_by_name=True, @@ -144,6 +148,7 @@ class PageLoadInstantTest(BaseModel): * 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([ "created_by", @@ -155,6 +160,7 @@ class PageLoadInstantTest(BaseModel): "test_id", "type", "labels", + "tags", "shared_with_accounts", "ssl_version", ]) @@ -174,6 +180,13 @@ class PageLoadInstantTest(BaseModel): if _item: _items.append(_item.to_dict()) _dict['labels'] = _items + # override the default output from pydantic by calling `to_dict()` of each item in tags (list) + _items = [] + if self.tags: + for _item in self.tags: + if _item: + _items.append(_item.to_dict()) + _dict['tags'] = _items # override the default output from pydantic by calling `to_dict()` of each item in shared_with_accounts (list) _items = [] if self.shared_with_accounts: @@ -190,6 +203,13 @@ class PageLoadInstantTest(BaseModel): # override the default output from pydantic by calling `to_dict()` of o_auth if self.o_auth: _dict['oAuth'] = self.o_auth.to_dict() + # override the default output from pydantic by calling `to_dict()` of each item in vault_credentials (list) + _items = [] + if self.vault_credentials: + for _item in self.vault_credentials: + if _item: + _items.append(_item.to_dict()) + _dict['vaultCredentials'] = _items return _dict @classmethod @@ -214,6 +234,7 @@ class PageLoadInstantTest(BaseModel): "type": obj.get("type"), "_links": TestLinks.from_dict(obj["_links"]) if obj.get("_links") is not None else None, "labels": [TestLabel.from_dict(_item) for _item in obj["labels"]] if obj.get("labels") is not None else None, + "tags": [TestTag.from_dict(_item) for _item in obj["tags"]] if obj.get("tags") is not None else None, "sharedWithAccounts": [SharedWithAccount.from_dict(_item) for _item in obj["sharedWithAccounts"]] if obj.get("sharedWithAccounts") is not None else None, "authType": obj.get("authType"), "agentInterfaces": AgentInterfaces.from_dict(obj["agentInterfaces"]) if obj.get("agentInterfaces") is not None else None, @@ -250,6 +271,7 @@ class PageLoadInstantTest(BaseModel): "overrideAgentProxy": obj.get("overrideAgentProxy") if obj.get("overrideAgentProxy") is not None else False, "overrideProxyId": obj.get("overrideProxyId"), "collectProxyNetworkData": obj.get("collectProxyNetworkData") if obj.get("collectProxyNetworkData") is not None else False, + "vaultCredentials": [TestVaultCredential.from_dict(_item) for _item in obj["vaultCredentials"]] if obj.get("vaultCredentials") is not None else None, "emulatedDeviceId": obj.get("emulatedDeviceId"), "pageLoadTargetTime": obj.get("pageLoadTargetTime"), "pageLoadTimeLimit": obj.get("pageLoadTimeLimit") if obj.get("pageLoadTimeLimit") is not None else 10, diff --git a/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/page_load_properties.py b/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/page_load_properties.py index df6de4b5..a16d8189 100644 --- a/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/page_load_properties.py +++ b/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/page_load_properties.py @@ -28,6 +28,7 @@ from thousandeyes_sdk.tests.models.test_path_trace_mode import TestPathTraceMode from thousandeyes_sdk.tests.models.test_probe_mode import TestProbeMode from thousandeyes_sdk.tests.models.test_protocol import TestProtocol from thousandeyes_sdk.tests.models.test_ssl_version_id import TestSslVersionId +from thousandeyes_sdk.tests.models.test_vault_credential import TestVaultCredential from typing import Optional, Set from typing_extensions import Self @@ -70,6 +71,7 @@ class PageLoadProperties(BaseModel): override_agent_proxy: Optional[StrictBool] = Field(default=False, description="Flag indicating if a proxy other than the default should be used. To override the default proxy for agents, set to `true` and specify a value for `overrideProxyId`.", alias="overrideAgentProxy") override_proxy_id: Optional[StrictStr] = Field(default=None, description="ID of the proxy to be used if the default proxy is overridden.", alias="overrideProxyId") collect_proxy_network_data: Optional[StrictBool] = Field(default=False, description="Indicates whether network data to the proxy should be collected.", alias="collectProxyNetworkData") + vault_credentials: Optional[List[TestVaultCredential]] = Field(default=None, description="List of credential IDs that are stored in an external vault.", alias="vaultCredentials") emulated_device_id: Optional[StrictStr] = Field(default=None, description="ID of the emulated device, if one was given when the test was created.", alias="emulatedDeviceId") page_load_target_time: Optional[Annotated[int, Field(le=60, strict=True, ge=1)]] = Field(default=None, description="Target time for page load completion, specified in seconds and cannot exceed the `pageLoadTimeLimit`.", alias="pageLoadTargetTime") page_load_time_limit: Optional[Annotated[int, Field(le=60, strict=True, ge=5)]] = Field(default=10, description="Page load time limit. Must be larger than the `httpTimeLimit`.", alias="pageLoadTimeLimit") @@ -84,7 +86,7 @@ class PageLoadProperties(BaseModel): randomized_start_time: Optional[StrictBool] = Field(default=False, description="Indicates whether agents should randomize the start time in each test round.", alias="randomizedStartTime") type: Optional[StrictStr] = None identify_agent_traffic_with_user_agent: Optional[StrictBool] = Field(default=False, description="Determines how agent traffic is identified: * `false`: Adds the `x-thousandeyes-agent: yes` header. * `true`: Appends `(ThousandEyes Agent)` to the `user-agent` header. For more information, see [Notes on Agent ID Strategy](https://docs.thousandeyes.com/product-documentation/browser-synthetics/test-settings-page-load-transaction#notes-on-agent-id-strategy). ", alias="identifyAgentTrafficWithUserAgent") - __properties: ClassVar[List[str]] = ["authType", "agentInterfaces", "bandwidthMeasurements", "clientCertificate", "contentRegex", "customHeaders", "desiredStatusCode", "distributedTracing", "downloadLimit", "dnsOverride", "httpTargetTime", "httpTimeLimit", "httpVersion", "includeHeaders", "mtuMeasurements", "networkMeasurements", "numPathTraces", "oAuth", "password", "pathTraceMode", "probeMode", "protocol", "sslVersion", "sslVersionId", "url", "useNtlm", "userAgent", "username", "verifyCertificate", "allowUnsafeLegacyRenegotiation", "followRedirects", "fixedPacketRate", "overrideAgentProxy", "overrideProxyId", "collectProxyNetworkData", "emulatedDeviceId", "pageLoadTargetTime", "pageLoadTimeLimit", "blockDomains", "disableScreenshot", "allowMicAndCamera", "allowGeolocation", "browserLanguage", "chromeOptions", "chromePolicies", "pageLoadingStrategy", "randomizedStartTime", "type", "identifyAgentTrafficWithUserAgent"] + __properties: ClassVar[List[str]] = ["authType", "agentInterfaces", "bandwidthMeasurements", "clientCertificate", "contentRegex", "customHeaders", "desiredStatusCode", "distributedTracing", "downloadLimit", "dnsOverride", "httpTargetTime", "httpTimeLimit", "httpVersion", "includeHeaders", "mtuMeasurements", "networkMeasurements", "numPathTraces", "oAuth", "password", "pathTraceMode", "probeMode", "protocol", "sslVersion", "sslVersionId", "url", "useNtlm", "userAgent", "username", "verifyCertificate", "allowUnsafeLegacyRenegotiation", "followRedirects", "fixedPacketRate", "overrideAgentProxy", "overrideProxyId", "collectProxyNetworkData", "vaultCredentials", "emulatedDeviceId", "pageLoadTargetTime", "pageLoadTimeLimit", "blockDomains", "disableScreenshot", "allowMicAndCamera", "allowGeolocation", "browserLanguage", "chromeOptions", "chromePolicies", "pageLoadingStrategy", "randomizedStartTime", "type", "identifyAgentTrafficWithUserAgent"] model_config = ConfigDict( populate_by_name=True, @@ -139,6 +141,13 @@ class PageLoadProperties(BaseModel): # override the default output from pydantic by calling `to_dict()` of o_auth if self.o_auth: _dict['oAuth'] = self.o_auth.to_dict() + # override the default output from pydantic by calling `to_dict()` of each item in vault_credentials (list) + _items = [] + if self.vault_credentials: + for _item in self.vault_credentials: + if _item: + _items.append(_item.to_dict()) + _dict['vaultCredentials'] = _items return _dict @classmethod @@ -186,6 +195,7 @@ class PageLoadProperties(BaseModel): "overrideAgentProxy": obj.get("overrideAgentProxy") if obj.get("overrideAgentProxy") is not None else False, "overrideProxyId": obj.get("overrideProxyId"), "collectProxyNetworkData": obj.get("collectProxyNetworkData") if obj.get("collectProxyNetworkData") is not None else False, + "vaultCredentials": [TestVaultCredential.from_dict(_item) for _item in obj["vaultCredentials"]] if obj.get("vaultCredentials") is not None else None, "emulatedDeviceId": obj.get("emulatedDeviceId"), "pageLoadTargetTime": obj.get("pageLoadTargetTime"), "pageLoadTimeLimit": obj.get("pageLoadTimeLimit") if obj.get("pageLoadTimeLimit") is not None else 10, diff --git a/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/page_load_test.py b/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/page_load_test.py index c5d2a979..dfc11b63 100644 --- a/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/page_load_test.py +++ b/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/page_load_test.py @@ -37,6 +37,8 @@ from thousandeyes_sdk.tests.models.test_probe_mode import TestProbeMode from thousandeyes_sdk.tests.models.test_protocol import TestProtocol from thousandeyes_sdk.tests.models.test_ssl_version_id import TestSslVersionId from thousandeyes_sdk.tests.models.test_sub_interval import TestSubInterval +from thousandeyes_sdk.tests.models.test_tag import TestTag +from thousandeyes_sdk.tests.models.test_vault_credential import TestVaultCredential from typing import Optional, Set from typing_extensions import Self @@ -60,6 +62,7 @@ class PageLoadTest(BaseModel): type: Optional[StrictStr] = None links: Optional[TestLinks] = Field(default=None, alias="_links") labels: Optional[List[TestLabel]] = Field(default=None, description="Labels to which the test is assigned. This field is not returned for Instant Tests.") + tags: Optional[List[TestTag]] = Field(default=None, description="Tags assigned to the test. Returned only when `expand=tag` is specified. This field is not returned for Instant Tests. For more information, see `/tags`.") shared_with_accounts: Optional[List[SharedWithAccount]] = Field(default=None, alias="sharedWithAccounts") auth_type: Optional[TestAuthType] = Field(default=None, alias="authType") agent_interfaces: Optional[AgentInterfaces] = Field(default=None, alias="agentInterfaces") @@ -96,6 +99,7 @@ class PageLoadTest(BaseModel): override_agent_proxy: Optional[StrictBool] = Field(default=False, description="Flag indicating if a proxy other than the default should be used. To override the default proxy for agents, set to `true` and specify a value for `overrideProxyId`.", alias="overrideAgentProxy") override_proxy_id: Optional[StrictStr] = Field(default=None, description="ID of the proxy to be used if the default proxy is overridden.", alias="overrideProxyId") collect_proxy_network_data: Optional[StrictBool] = Field(default=False, description="Indicates whether network data to the proxy should be collected.", alias="collectProxyNetworkData") + vault_credentials: Optional[List[TestVaultCredential]] = Field(default=None, description="List of credential IDs that are stored in an external vault.", alias="vaultCredentials") emulated_device_id: Optional[StrictStr] = Field(default=None, description="ID of the emulated device, if one was given when the test was created.", alias="emulatedDeviceId") page_load_target_time: Optional[Annotated[int, Field(le=60, strict=True, ge=1)]] = Field(default=None, description="Target time for page load completion, specified in seconds and cannot exceed the `pageLoadTimeLimit`.", alias="pageLoadTargetTime") page_load_time_limit: Optional[Annotated[int, Field(le=60, strict=True, ge=5)]] = Field(default=10, description="Page load time limit. Must be larger than the `httpTimeLimit`.", alias="pageLoadTimeLimit") @@ -114,7 +118,7 @@ class PageLoadTest(BaseModel): monitors: Optional[List[Monitor]] = Field(default=None, description="Contains list of enabled BGP monitors.") http_interval: Optional[TestHttpInterval] = Field(default=None, alias="httpInterval") subinterval: Optional[TestSubInterval] = None - __properties: ClassVar[List[str]] = ["interval", "alertsEnabled", "enabled", "alertRules", "createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "sharedWithAccounts", "authType", "agentInterfaces", "bandwidthMeasurements", "clientCertificate", "contentRegex", "customHeaders", "desiredStatusCode", "distributedTracing", "downloadLimit", "dnsOverride", "httpTargetTime", "httpTimeLimit", "httpVersion", "includeHeaders", "mtuMeasurements", "networkMeasurements", "numPathTraces", "oAuth", "password", "pathTraceMode", "probeMode", "protocol", "sslVersion", "sslVersionId", "url", "useNtlm", "userAgent", "username", "verifyCertificate", "allowUnsafeLegacyRenegotiation", "followRedirects", "fixedPacketRate", "overrideAgentProxy", "overrideProxyId", "collectProxyNetworkData", "emulatedDeviceId", "pageLoadTargetTime", "pageLoadTimeLimit", "blockDomains", "disableScreenshot", "allowMicAndCamera", "allowGeolocation", "browserLanguage", "chromeOptions", "chromePolicies", "pageLoadingStrategy", "randomizedStartTime", "identifyAgentTrafficWithUserAgent", "bgpMeasurements", "usePublicBgp", "monitors", "httpInterval", "subinterval"] + __properties: ClassVar[List[str]] = ["interval", "alertsEnabled", "enabled", "alertRules", "createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "tags", "sharedWithAccounts", "authType", "agentInterfaces", "bandwidthMeasurements", "clientCertificate", "contentRegex", "customHeaders", "desiredStatusCode", "distributedTracing", "downloadLimit", "dnsOverride", "httpTargetTime", "httpTimeLimit", "httpVersion", "includeHeaders", "mtuMeasurements", "networkMeasurements", "numPathTraces", "oAuth", "password", "pathTraceMode", "probeMode", "protocol", "sslVersion", "sslVersionId", "url", "useNtlm", "userAgent", "username", "verifyCertificate", "allowUnsafeLegacyRenegotiation", "followRedirects", "fixedPacketRate", "overrideAgentProxy", "overrideProxyId", "collectProxyNetworkData", "vaultCredentials", "emulatedDeviceId", "pageLoadTargetTime", "pageLoadTimeLimit", "blockDomains", "disableScreenshot", "allowMicAndCamera", "allowGeolocation", "browserLanguage", "chromeOptions", "chromePolicies", "pageLoadingStrategy", "randomizedStartTime", "identifyAgentTrafficWithUserAgent", "bgpMeasurements", "usePublicBgp", "monitors", "httpInterval", "subinterval"] model_config = ConfigDict( populate_by_name=True, @@ -159,6 +163,7 @@ class PageLoadTest(BaseModel): * 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([ "created_by", @@ -170,6 +175,7 @@ class PageLoadTest(BaseModel): "test_id", "type", "labels", + "tags", "shared_with_accounts", "ssl_version", "monitors", @@ -197,6 +203,13 @@ class PageLoadTest(BaseModel): if _item: _items.append(_item.to_dict()) _dict['labels'] = _items + # override the default output from pydantic by calling `to_dict()` of each item in tags (list) + _items = [] + if self.tags: + for _item in self.tags: + if _item: + _items.append(_item.to_dict()) + _dict['tags'] = _items # override the default output from pydantic by calling `to_dict()` of each item in shared_with_accounts (list) _items = [] if self.shared_with_accounts: @@ -213,6 +226,13 @@ class PageLoadTest(BaseModel): # override the default output from pydantic by calling `to_dict()` of o_auth if self.o_auth: _dict['oAuth'] = self.o_auth.to_dict() + # override the default output from pydantic by calling `to_dict()` of each item in vault_credentials (list) + _items = [] + if self.vault_credentials: + for _item in self.vault_credentials: + if _item: + _items.append(_item.to_dict()) + _dict['vaultCredentials'] = _items # override the default output from pydantic by calling `to_dict()` of each item in monitors (list) _items = [] if self.monitors: @@ -248,6 +268,7 @@ class PageLoadTest(BaseModel): "type": obj.get("type"), "_links": TestLinks.from_dict(obj["_links"]) if obj.get("_links") is not None else None, "labels": [TestLabel.from_dict(_item) for _item in obj["labels"]] if obj.get("labels") is not None else None, + "tags": [TestTag.from_dict(_item) for _item in obj["tags"]] if obj.get("tags") is not None else None, "sharedWithAccounts": [SharedWithAccount.from_dict(_item) for _item in obj["sharedWithAccounts"]] if obj.get("sharedWithAccounts") is not None else None, "authType": obj.get("authType"), "agentInterfaces": AgentInterfaces.from_dict(obj["agentInterfaces"]) if obj.get("agentInterfaces") is not None else None, @@ -284,6 +305,7 @@ class PageLoadTest(BaseModel): "overrideAgentProxy": obj.get("overrideAgentProxy") if obj.get("overrideAgentProxy") is not None else False, "overrideProxyId": obj.get("overrideProxyId"), "collectProxyNetworkData": obj.get("collectProxyNetworkData") if obj.get("collectProxyNetworkData") is not None else False, + "vaultCredentials": [TestVaultCredential.from_dict(_item) for _item in obj["vaultCredentials"]] if obj.get("vaultCredentials") is not None else None, "emulatedDeviceId": obj.get("emulatedDeviceId"), "pageLoadTargetTime": obj.get("pageLoadTargetTime"), "pageLoadTimeLimit": obj.get("pageLoadTimeLimit") if obj.get("pageLoadTimeLimit") is not None else 10, diff --git a/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/page_load_test_request.py b/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/page_load_test_request.py index 35bbaf35..08134992 100644 --- a/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/page_load_test_request.py +++ b/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/page_load_test_request.py @@ -34,6 +34,7 @@ from thousandeyes_sdk.tests.models.test_probe_mode import TestProbeMode from thousandeyes_sdk.tests.models.test_protocol import TestProtocol from thousandeyes_sdk.tests.models.test_ssl_version_id import TestSslVersionId from thousandeyes_sdk.tests.models.test_sub_interval import TestSubInterval +from thousandeyes_sdk.tests.models.test_vault_credential import TestVaultCredential from typing import Optional, Set from typing_extensions import Self @@ -44,7 +45,6 @@ class PageLoadTestRequest(BaseModel): interval: TestInterval alerts_enabled: Optional[StrictBool] = Field(default=None, description="Indicates if alerts are enabled.", alias="alertsEnabled") enabled: Optional[StrictBool] = Field(default=True, description="Test is enabled.") - alert_rules: Optional[List[StrictStr]] = Field(default=None, description="List of alert rules IDs to apply to the test (get `ruleId` from `/alerts/rules` endpoint. If `alertsEnabled` is set to `true` and `alertRules` is not included on test creation or update, applicable user default alert rules will be used)", alias="alertRules") created_by: Optional[StrictStr] = Field(default=None, description="User that created the test.", alias="createdBy") created_date: Optional[datetime] = Field(default=None, description="UTC created date (ISO date-time format).", alias="createdDate") description: Optional[StrictStr] = Field(default=None, description="A description of the test.") @@ -56,8 +56,6 @@ class PageLoadTestRequest(BaseModel): test_name: Optional[StrictStr] = Field(default=None, description="The name of the test. Test name must be unique.", alias="testName") type: Optional[StrictStr] = None links: Optional[TestLinks] = Field(default=None, alias="_links") - labels: Optional[List[StrictStr]] = Field(default=None, description="Contains list of test label IDs (get `labelId` from `/labels` endpoint)") - shared_with_accounts: Optional[List[StrictStr]] = Field(default=None, description="Contains list of account group IDs. Test is shared with the listed account groups (get `aid` from `/account-groups` endpoint)", alias="sharedWithAccounts") auth_type: Optional[TestAuthType] = Field(default=None, alias="authType") agent_interfaces: Optional[AgentInterfaces] = Field(default=None, alias="agentInterfaces") bandwidth_measurements: Optional[StrictBool] = Field(default=None, description="Set to `true` to enable bandwidth measurements, only applies to Enterprise agents assigned to the test.", alias="bandwidthMeasurements") @@ -93,6 +91,7 @@ class PageLoadTestRequest(BaseModel): override_agent_proxy: Optional[StrictBool] = Field(default=False, description="Flag indicating if a proxy other than the default should be used. To override the default proxy for agents, set to `true` and specify a value for `overrideProxyId`.", alias="overrideAgentProxy") override_proxy_id: Optional[StrictStr] = Field(default=None, description="ID of the proxy to be used if the default proxy is overridden.", alias="overrideProxyId") collect_proxy_network_data: Optional[StrictBool] = Field(default=False, description="Indicates whether network data to the proxy should be collected.", alias="collectProxyNetworkData") + vault_credentials: Optional[List[TestVaultCredential]] = Field(default=None, description="List of credential IDs that are stored in an external vault.", alias="vaultCredentials") emulated_device_id: Optional[StrictStr] = Field(default=None, description="ID of the emulated device, if one was given when the test was created.", alias="emulatedDeviceId") page_load_target_time: Optional[Annotated[int, Field(le=60, strict=True, ge=1)]] = Field(default=None, description="Target time for page load completion, specified in seconds and cannot exceed the `pageLoadTimeLimit`.", alias="pageLoadTargetTime") page_load_time_limit: Optional[Annotated[int, Field(le=60, strict=True, ge=5)]] = Field(default=10, description="Page load time limit. Must be larger than the `httpTimeLimit`.", alias="pageLoadTimeLimit") @@ -106,14 +105,17 @@ class PageLoadTestRequest(BaseModel): page_loading_strategy: Optional[TestPageLoadingStrategy] = Field(default=None, alias="pageLoadingStrategy") randomized_start_time: Optional[StrictBool] = Field(default=False, description="Indicates whether agents should randomize the start time in each test round.", alias="randomizedStartTime") identify_agent_traffic_with_user_agent: Optional[StrictBool] = Field(default=False, description="Determines how agent traffic is identified: * `false`: Adds the `x-thousandeyes-agent: yes` header. * `true`: Appends `(ThousandEyes Agent)` to the `user-agent` header. For more information, see [Notes on Agent ID Strategy](https://docs.thousandeyes.com/product-documentation/browser-synthetics/test-settings-page-load-transaction#notes-on-agent-id-strategy). ", alias="identifyAgentTrafficWithUserAgent") - bgp_measurements: Optional[StrictBool] = Field(default=True, description="Set to `true` to enable bgp measurements.", alias="bgpMeasurements") - use_public_bgp: Optional[StrictBool] = Field(default=True, description="Indicate if all available public BGP monitors should be used, when ommited defaults to `bgpMeasurements` value.", alias="usePublicBgp") - monitors: Optional[List[StrictStr]] = Field(default=None, description="Contains list of BGP monitor IDs (get `monitorId` from `/monitors` endpoint)") http_interval: Optional[TestHttpInterval] = Field(default=None, alias="httpInterval") subinterval: Optional[TestSubInterval] = None + bgp_measurements: Optional[StrictBool] = Field(default=True, description="Set to `true` to enable bgp measurements.", alias="bgpMeasurements") + use_public_bgp: Optional[StrictBool] = Field(default=True, description="Indicate if all available public BGP monitors should be used, when ommited defaults to `bgpMeasurements` value.", alias="usePublicBgp") + labels: Optional[List[StrictStr]] = Field(default=None, description="Contains list of test label IDs (get `labelId` from `/labels` endpoint)") tags: Optional[List[StrictStr]] = Field(default=None, description="Contains list of test tag IDs (get `id` from `/tags` endpoint).") + shared_with_accounts: Optional[List[StrictStr]] = Field(default=None, description="Contains list of account group IDs. Test is shared with the listed account groups (get `aid` from `/account-groups` endpoint)", alias="sharedWithAccounts") + alert_rules: Optional[List[StrictStr]] = Field(default=None, description="List of alert rules IDs to apply to the test (get `ruleId` from `/alerts/rules` endpoint. If `alertsEnabled` is set to `true` and `alertRules` is not included on test creation or update, applicable user default alert rules will be used)", alias="alertRules") agents: List[TestAgentRequest] = Field(description="Contains list of Agent IDs (get `agentId` from `/agents` endpoint).") - __properties: ClassVar[List[str]] = ["interval", "alertsEnabled", "enabled", "alertRules", "createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "sharedWithAccounts", "authType", "agentInterfaces", "bandwidthMeasurements", "clientCertificate", "contentRegex", "customHeaders", "desiredStatusCode", "distributedTracing", "downloadLimit", "dnsOverride", "httpTargetTime", "httpTimeLimit", "httpVersion", "includeHeaders", "mtuMeasurements", "networkMeasurements", "numPathTraces", "oAuth", "password", "pathTraceMode", "probeMode", "protocol", "sslVersion", "sslVersionId", "url", "useNtlm", "userAgent", "username", "verifyCertificate", "allowUnsafeLegacyRenegotiation", "followRedirects", "fixedPacketRate", "overrideAgentProxy", "overrideProxyId", "collectProxyNetworkData", "emulatedDeviceId", "pageLoadTargetTime", "pageLoadTimeLimit", "blockDomains", "disableScreenshot", "allowMicAndCamera", "allowGeolocation", "browserLanguage", "chromeOptions", "chromePolicies", "pageLoadingStrategy", "randomizedStartTime", "identifyAgentTrafficWithUserAgent", "bgpMeasurements", "usePublicBgp", "monitors", "httpInterval", "subinterval", "tags", "agents"] + monitors: Optional[List[StrictStr]] = Field(default=None, description="Contains list of BGP monitor IDs (get `monitorId` from `/monitors` endpoint)") + __properties: ClassVar[List[str]] = ["interval", "alertsEnabled", "enabled", "createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "authType", "agentInterfaces", "bandwidthMeasurements", "clientCertificate", "contentRegex", "customHeaders", "desiredStatusCode", "distributedTracing", "downloadLimit", "dnsOverride", "httpTargetTime", "httpTimeLimit", "httpVersion", "includeHeaders", "mtuMeasurements", "networkMeasurements", "numPathTraces", "oAuth", "password", "pathTraceMode", "probeMode", "protocol", "sslVersion", "sslVersionId", "url", "useNtlm", "userAgent", "username", "verifyCertificate", "allowUnsafeLegacyRenegotiation", "followRedirects", "fixedPacketRate", "overrideAgentProxy", "overrideProxyId", "collectProxyNetworkData", "vaultCredentials", "emulatedDeviceId", "pageLoadTargetTime", "pageLoadTimeLimit", "blockDomains", "disableScreenshot", "allowMicAndCamera", "allowGeolocation", "browserLanguage", "chromeOptions", "chromePolicies", "pageLoadingStrategy", "randomizedStartTime", "identifyAgentTrafficWithUserAgent", "httpInterval", "subinterval", "bgpMeasurements", "usePublicBgp", "labels", "tags", "sharedWithAccounts", "alertRules", "agents", "monitors"] model_config = ConfigDict( populate_by_name=True, @@ -185,6 +187,13 @@ class PageLoadTestRequest(BaseModel): # override the default output from pydantic by calling `to_dict()` of o_auth if self.o_auth: _dict['oAuth'] = self.o_auth.to_dict() + # override the default output from pydantic by calling `to_dict()` of each item in vault_credentials (list) + _items = [] + if self.vault_credentials: + for _item in self.vault_credentials: + if _item: + _items.append(_item.to_dict()) + _dict['vaultCredentials'] = _items # override the default output from pydantic by calling `to_dict()` of each item in agents (list) _items = [] if self.agents: @@ -207,7 +216,6 @@ class PageLoadTestRequest(BaseModel): "interval": obj.get("interval"), "alertsEnabled": obj.get("alertsEnabled"), "enabled": obj.get("enabled") if obj.get("enabled") is not None else True, - "alertRules": obj.get("alertRules"), "createdBy": obj.get("createdBy"), "createdDate": obj.get("createdDate"), "description": obj.get("description"), @@ -219,8 +227,6 @@ class PageLoadTestRequest(BaseModel): "testName": obj.get("testName"), "type": obj.get("type"), "_links": TestLinks.from_dict(obj["_links"]) if obj.get("_links") is not None else None, - "labels": obj.get("labels"), - "sharedWithAccounts": obj.get("sharedWithAccounts"), "authType": obj.get("authType"), "agentInterfaces": AgentInterfaces.from_dict(obj["agentInterfaces"]) if obj.get("agentInterfaces") is not None else None, "bandwidthMeasurements": obj.get("bandwidthMeasurements"), @@ -256,6 +262,7 @@ class PageLoadTestRequest(BaseModel): "overrideAgentProxy": obj.get("overrideAgentProxy") if obj.get("overrideAgentProxy") is not None else False, "overrideProxyId": obj.get("overrideProxyId"), "collectProxyNetworkData": obj.get("collectProxyNetworkData") if obj.get("collectProxyNetworkData") is not None else False, + "vaultCredentials": [TestVaultCredential.from_dict(_item) for _item in obj["vaultCredentials"]] if obj.get("vaultCredentials") is not None else None, "emulatedDeviceId": obj.get("emulatedDeviceId"), "pageLoadTargetTime": obj.get("pageLoadTargetTime"), "pageLoadTimeLimit": obj.get("pageLoadTimeLimit") if obj.get("pageLoadTimeLimit") is not None else 10, @@ -269,13 +276,16 @@ class PageLoadTestRequest(BaseModel): "pageLoadingStrategy": obj.get("pageLoadingStrategy"), "randomizedStartTime": obj.get("randomizedStartTime") if obj.get("randomizedStartTime") is not None else False, "identifyAgentTrafficWithUserAgent": obj.get("identifyAgentTrafficWithUserAgent") if obj.get("identifyAgentTrafficWithUserAgent") is not None else False, - "bgpMeasurements": obj.get("bgpMeasurements") if obj.get("bgpMeasurements") is not None else True, - "usePublicBgp": obj.get("usePublicBgp") if obj.get("usePublicBgp") is not None else True, - "monitors": obj.get("monitors"), "httpInterval": obj.get("httpInterval"), "subinterval": obj.get("subinterval"), + "bgpMeasurements": obj.get("bgpMeasurements") if obj.get("bgpMeasurements") is not None else True, + "usePublicBgp": obj.get("usePublicBgp") if obj.get("usePublicBgp") is not None else True, + "labels": obj.get("labels"), "tags": obj.get("tags"), - "agents": [TestAgentRequest.from_dict(_item) for _item in obj["agents"]] if obj.get("agents") is not None else None + "sharedWithAccounts": obj.get("sharedWithAccounts"), + "alertRules": obj.get("alertRules"), + "agents": [TestAgentRequest.from_dict(_item) for _item in obj["agents"]] if obj.get("agents") is not None else None, + "monitors": obj.get("monitors") }) return _obj diff --git a/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/page_load_test_response.py b/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/page_load_test_response.py index 0487df20..1e39ed26 100644 --- a/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/page_load_test_response.py +++ b/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/page_load_test_response.py @@ -38,6 +38,8 @@ from thousandeyes_sdk.tests.models.test_probe_mode import TestProbeMode from thousandeyes_sdk.tests.models.test_protocol import TestProtocol from thousandeyes_sdk.tests.models.test_ssl_version_id import TestSslVersionId from thousandeyes_sdk.tests.models.test_sub_interval import TestSubInterval +from thousandeyes_sdk.tests.models.test_tag import TestTag +from thousandeyes_sdk.tests.models.test_vault_credential import TestVaultCredential from typing import Optional, Set from typing_extensions import Self @@ -61,6 +63,7 @@ class PageLoadTestResponse(BaseModel): type: Optional[StrictStr] = None links: Optional[TestLinks] = Field(default=None, alias="_links") labels: Optional[List[TestLabel]] = Field(default=None, description="Labels to which the test is assigned. This field is not returned for Instant Tests.") + tags: Optional[List[TestTag]] = Field(default=None, description="Tags assigned to the test. Returned only when `expand=tag` is specified. This field is not returned for Instant Tests. For more information, see `/tags`.") shared_with_accounts: Optional[List[SharedWithAccount]] = Field(default=None, alias="sharedWithAccounts") auth_type: Optional[TestAuthType] = Field(default=None, alias="authType") agent_interfaces: Optional[AgentInterfaces] = Field(default=None, alias="agentInterfaces") @@ -97,6 +100,7 @@ class PageLoadTestResponse(BaseModel): override_agent_proxy: Optional[StrictBool] = Field(default=False, description="Flag indicating if a proxy other than the default should be used. To override the default proxy for agents, set to `true` and specify a value for `overrideProxyId`.", alias="overrideAgentProxy") override_proxy_id: Optional[StrictStr] = Field(default=None, description="ID of the proxy to be used if the default proxy is overridden.", alias="overrideProxyId") collect_proxy_network_data: Optional[StrictBool] = Field(default=False, description="Indicates whether network data to the proxy should be collected.", alias="collectProxyNetworkData") + vault_credentials: Optional[List[TestVaultCredential]] = Field(default=None, description="List of credential IDs that are stored in an external vault.", alias="vaultCredentials") emulated_device_id: Optional[StrictStr] = Field(default=None, description="ID of the emulated device, if one was given when the test was created.", alias="emulatedDeviceId") page_load_target_time: Optional[Annotated[int, Field(le=60, strict=True, ge=1)]] = Field(default=None, description="Target time for page load completion, specified in seconds and cannot exceed the `pageLoadTimeLimit`.", alias="pageLoadTargetTime") page_load_time_limit: Optional[Annotated[int, Field(le=60, strict=True, ge=5)]] = Field(default=10, description="Page load time limit. Must be larger than the `httpTimeLimit`.", alias="pageLoadTimeLimit") @@ -116,7 +120,7 @@ class PageLoadTestResponse(BaseModel): http_interval: Optional[TestHttpInterval] = Field(default=None, alias="httpInterval") subinterval: Optional[TestSubInterval] = None agents: Optional[List[AgentResponse]] = Field(default=None, description="Contains list of agents.") - __properties: ClassVar[List[str]] = ["interval", "alertsEnabled", "enabled", "alertRules", "createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "sharedWithAccounts", "authType", "agentInterfaces", "bandwidthMeasurements", "clientCertificate", "contentRegex", "customHeaders", "desiredStatusCode", "distributedTracing", "downloadLimit", "dnsOverride", "httpTargetTime", "httpTimeLimit", "httpVersion", "includeHeaders", "mtuMeasurements", "networkMeasurements", "numPathTraces", "oAuth", "password", "pathTraceMode", "probeMode", "protocol", "sslVersion", "sslVersionId", "url", "useNtlm", "userAgent", "username", "verifyCertificate", "allowUnsafeLegacyRenegotiation", "followRedirects", "fixedPacketRate", "overrideAgentProxy", "overrideProxyId", "collectProxyNetworkData", "emulatedDeviceId", "pageLoadTargetTime", "pageLoadTimeLimit", "blockDomains", "disableScreenshot", "allowMicAndCamera", "allowGeolocation", "browserLanguage", "chromeOptions", "chromePolicies", "pageLoadingStrategy", "randomizedStartTime", "identifyAgentTrafficWithUserAgent", "bgpMeasurements", "usePublicBgp", "monitors", "httpInterval", "subinterval", "agents"] + __properties: ClassVar[List[str]] = ["interval", "alertsEnabled", "enabled", "alertRules", "createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "tags", "sharedWithAccounts", "authType", "agentInterfaces", "bandwidthMeasurements", "clientCertificate", "contentRegex", "customHeaders", "desiredStatusCode", "distributedTracing", "downloadLimit", "dnsOverride", "httpTargetTime", "httpTimeLimit", "httpVersion", "includeHeaders", "mtuMeasurements", "networkMeasurements", "numPathTraces", "oAuth", "password", "pathTraceMode", "probeMode", "protocol", "sslVersion", "sslVersionId", "url", "useNtlm", "userAgent", "username", "verifyCertificate", "allowUnsafeLegacyRenegotiation", "followRedirects", "fixedPacketRate", "overrideAgentProxy", "overrideProxyId", "collectProxyNetworkData", "vaultCredentials", "emulatedDeviceId", "pageLoadTargetTime", "pageLoadTimeLimit", "blockDomains", "disableScreenshot", "allowMicAndCamera", "allowGeolocation", "browserLanguage", "chromeOptions", "chromePolicies", "pageLoadingStrategy", "randomizedStartTime", "identifyAgentTrafficWithUserAgent", "bgpMeasurements", "usePublicBgp", "monitors", "httpInterval", "subinterval", "agents"] model_config = ConfigDict( populate_by_name=True, @@ -161,6 +165,7 @@ class PageLoadTestResponse(BaseModel): * 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([ "created_by", @@ -172,6 +177,7 @@ class PageLoadTestResponse(BaseModel): "test_id", "type", "labels", + "tags", "shared_with_accounts", "ssl_version", "monitors", @@ -199,6 +205,13 @@ class PageLoadTestResponse(BaseModel): if _item: _items.append(_item.to_dict()) _dict['labels'] = _items + # override the default output from pydantic by calling `to_dict()` of each item in tags (list) + _items = [] + if self.tags: + for _item in self.tags: + if _item: + _items.append(_item.to_dict()) + _dict['tags'] = _items # override the default output from pydantic by calling `to_dict()` of each item in shared_with_accounts (list) _items = [] if self.shared_with_accounts: @@ -215,6 +228,13 @@ class PageLoadTestResponse(BaseModel): # override the default output from pydantic by calling `to_dict()` of o_auth if self.o_auth: _dict['oAuth'] = self.o_auth.to_dict() + # override the default output from pydantic by calling `to_dict()` of each item in vault_credentials (list) + _items = [] + if self.vault_credentials: + for _item in self.vault_credentials: + if _item: + _items.append(_item.to_dict()) + _dict['vaultCredentials'] = _items # override the default output from pydantic by calling `to_dict()` of each item in monitors (list) _items = [] if self.monitors: @@ -257,6 +277,7 @@ class PageLoadTestResponse(BaseModel): "type": obj.get("type"), "_links": TestLinks.from_dict(obj["_links"]) if obj.get("_links") is not None else None, "labels": [TestLabel.from_dict(_item) for _item in obj["labels"]] if obj.get("labels") is not None else None, + "tags": [TestTag.from_dict(_item) for _item in obj["tags"]] if obj.get("tags") is not None else None, "sharedWithAccounts": [SharedWithAccount.from_dict(_item) for _item in obj["sharedWithAccounts"]] if obj.get("sharedWithAccounts") is not None else None, "authType": obj.get("authType"), "agentInterfaces": AgentInterfaces.from_dict(obj["agentInterfaces"]) if obj.get("agentInterfaces") is not None else None, @@ -293,6 +314,7 @@ class PageLoadTestResponse(BaseModel): "overrideAgentProxy": obj.get("overrideAgentProxy") if obj.get("overrideAgentProxy") is not None else False, "overrideProxyId": obj.get("overrideProxyId"), "collectProxyNetworkData": obj.get("collectProxyNetworkData") if obj.get("collectProxyNetworkData") is not None else False, + "vaultCredentials": [TestVaultCredential.from_dict(_item) for _item in obj["vaultCredentials"]] if obj.get("vaultCredentials") is not None else None, "emulatedDeviceId": obj.get("emulatedDeviceId"), "pageLoadTargetTime": obj.get("pageLoadTargetTime"), "pageLoadTimeLimit": obj.get("pageLoadTimeLimit") if obj.get("pageLoadTimeLimit") is not None else 10, diff --git a/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/o_auth_request_method.py b/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/request_method.py similarity index 83% rename from thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/o_auth_request_method.py rename to thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/request_method.py index 15fe4b38..de7931ec 100644 --- a/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/o_auth_request_method.py +++ b/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/request_method.py @@ -17,9 +17,9 @@ from enum import Enum from typing_extensions import Self -class OAuthRequestMethod(str, Enum): +class RequestMethod(str, Enum): """ - HTTP request method used for the OAuth request. + HTTP request method. """ """ @@ -31,7 +31,7 @@ class OAuthRequestMethod(str, Enum): @classmethod def from_json(cls, json_str: str) -> Self: - """Create an instance of OAuthRequestMethod from a JSON string""" + """Create an instance of RequestMethod from a JSON string""" return cls(json.loads(json_str)) @classmethod diff --git a/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/simple_agent.py b/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/simple_agent.py index 5098c842..699497fa 100644 --- a/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/simple_agent.py +++ b/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/simple_agent.py @@ -19,6 +19,7 @@ import json from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr from typing import Any, ClassVar, Dict, List, Optional from thousandeyes_sdk.tests.models.coordinates import Coordinates +from thousandeyes_sdk.tests.models.simple_agent_all_of_network_provider_info import SimpleAgentAllOfNetworkProviderInfo from typing import Optional, Set from typing_extensions import Self @@ -34,10 +35,11 @@ class SimpleAgent(BaseModel): location: Optional[StrictStr] = Field(default=None, description="Location of the agent.") country_id: Optional[StrictStr] = Field(default=None, description="2-digit ISO country code", alias="countryId") coordinates: Optional[Coordinates] = None + network_provider_info: Optional[SimpleAgentAllOfNetworkProviderInfo] = Field(default=None, alias="networkProviderInfo") enabled: Optional[StrictBool] = Field(default=None, description="Flag indicating if the agent is enabled.") - prefix: Optional[StrictStr] = Field(default=None, description="Prefix containing agents public IP address.") verify_ssl_certificates: Optional[StrictBool] = Field(default=None, description="Flag indicating if has normal SSL operations or if instead it's set to ignore SSL errors on browserbot-based tests.", alias="verifySslCertificates") - __properties: ClassVar[List[str]] = ["ipAddresses", "publicIpAddresses", "network", "agentId", "agentName", "location", "countryId", "coordinates", "enabled", "prefix", "verifySslCertificates"] + prefix: Optional[StrictStr] = Field(default=None, description="Prefix containing agents public IP address.") + __properties: ClassVar[List[str]] = ["ipAddresses", "publicIpAddresses", "network", "agentId", "agentName", "location", "countryId", "coordinates", "networkProviderInfo", "enabled", "verifySslCertificates", "prefix"] model_config = ConfigDict( populate_by_name=True, @@ -86,8 +88,8 @@ class SimpleAgent(BaseModel): "agent_id", "location", "country_id", - "prefix", "verify_ssl_certificates", + "prefix", ]) _dict = self.model_dump( @@ -98,6 +100,9 @@ class SimpleAgent(BaseModel): # override the default output from pydantic by calling `to_dict()` of coordinates if self.coordinates: _dict['coordinates'] = self.coordinates.to_dict() + # override the default output from pydantic by calling `to_dict()` of network_provider_info + if self.network_provider_info: + _dict['networkProviderInfo'] = self.network_provider_info.to_dict() return _dict @classmethod @@ -118,9 +123,10 @@ class SimpleAgent(BaseModel): "location": obj.get("location"), "countryId": obj.get("countryId"), "coordinates": Coordinates.from_dict(obj["coordinates"]) if obj.get("coordinates") is not None else None, + "networkProviderInfo": SimpleAgentAllOfNetworkProviderInfo.from_dict(obj["networkProviderInfo"]) if obj.get("networkProviderInfo") is not None else None, "enabled": obj.get("enabled"), - "prefix": obj.get("prefix"), - "verifySslCertificates": obj.get("verifySslCertificates") + "verifySslCertificates": obj.get("verifySslCertificates"), + "prefix": obj.get("prefix") }) return _obj diff --git a/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/simple_agent_all_of_network_provider_info.py b/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/simple_agent_all_of_network_provider_info.py new file mode 100644 index 00000000..844b6a58 --- /dev/null +++ b/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/simple_agent_all_of_network_provider_info.py @@ -0,0 +1,96 @@ +# coding: utf-8 + +""" + Tests API + + **Note:** The Page Load Tests, API Tests, and Web Transaction Tests APIs are not available for ThousandEyes for Government instance. This API allows you to list, create, edit, and delete Network and Application Synthetics tests. + + 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 thousandeyes_sdk.tests.models.network_provider_type import NetworkProviderType +from typing import Optional, Set +from typing_extensions import Self + +class SimpleAgentAllOfNetworkProviderInfo(BaseModel): + """ + SimpleAgentAllOfNetworkProviderInfo + """ # noqa: E501 + asn: Optional[StrictInt] = Field(default=None, description="Autonomous System Number (ASN) announcing the agent's public IP prefix.") + name: Optional[StrictStr] = Field(default=None, description="Name of the network provider organization.") + type: Optional[NetworkProviderType] = None + __properties: ClassVar[List[str]] = ["asn", "name", "type"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + extra="allow", + ) + + + 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 self.model_dump_json(by_alias=True, exclude_unset=True, exclude_none=True) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of SimpleAgentAllOfNetworkProviderInfo 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. + * OpenAPI `readOnly` fields are excluded. + * OpenAPI `readOnly` fields are excluded. + """ + excluded_fields: Set[str] = set([ + "asn", + "name", + ]) + + _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 SimpleAgentAllOfNetworkProviderInfo from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "asn": obj.get("asn"), + "name": obj.get("name"), + "type": obj.get("type") + }) + return _obj + + diff --git a/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/sip_server_instant_test.py b/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/sip_server_instant_test.py index 4244ba87..370b7539 100644 --- a/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/sip_server_instant_test.py +++ b/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/sip_server_instant_test.py @@ -26,6 +26,7 @@ from thousandeyes_sdk.tests.models.test_label import TestLabel from thousandeyes_sdk.tests.models.test_links import TestLinks from thousandeyes_sdk.tests.models.test_path_trace_mode import TestPathTraceMode from thousandeyes_sdk.tests.models.test_probe_mode import TestProbeMode +from thousandeyes_sdk.tests.models.test_tag import TestTag from typing import Optional, Set from typing_extensions import Self @@ -45,6 +46,7 @@ class SipServerInstantTest(BaseModel): type: Optional[StrictStr] = None links: Optional[TestLinks] = Field(default=None, alias="_links") labels: Optional[List[TestLabel]] = Field(default=None, description="Labels to which the test is assigned. This field is not returned for Instant Tests.") + tags: Optional[List[TestTag]] = Field(default=None, description="Tags assigned to the test. Returned only when `expand=tag` is specified. This field is not returned for Instant Tests. For more information, see `/tags`.") shared_with_accounts: Optional[List[SharedWithAccount]] = Field(default=None, alias="sharedWithAccounts") mtu_measurements: Optional[StrictBool] = Field(default=None, description="Set `true` to measure MTU sizes on network from agents to the target.", alias="mtuMeasurements") network_measurements: Optional[StrictBool] = Field(default=True, description="Enable or disable network measurements. Set to true to enable or false to disable network measurements.", alias="networkMeasurements") @@ -58,7 +60,7 @@ class SipServerInstantTest(BaseModel): sip_time_limit: Optional[Annotated[int, Field(le=10, strict=True, ge=5)]] = Field(default=5, description="Time limit in milliseconds.", alias="sipTimeLimit") fixed_packet_rate: Optional[Annotated[int, Field(le=100, strict=True, ge=0)]] = Field(default=None, description="Sets packets rate sent to measure the network in packets per second.", alias="fixedPacketRate") ipv6_policy: Optional[TestIpv6Policy] = Field(default=None, alias="ipv6Policy") - __properties: ClassVar[List[str]] = ["createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "sharedWithAccounts", "mtuMeasurements", "networkMeasurements", "numPathTraces", "optionsRegex", "pathTraceMode", "probeMode", "randomizedStartTime", "registerEnabled", "sipTargetTime", "sipTimeLimit", "fixedPacketRate", "ipv6Policy"] + __properties: ClassVar[List[str]] = ["createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "tags", "sharedWithAccounts", "mtuMeasurements", "networkMeasurements", "numPathTraces", "optionsRegex", "pathTraceMode", "probeMode", "randomizedStartTime", "registerEnabled", "sipTargetTime", "sipTimeLimit", "fixedPacketRate", "ipv6Policy"] model_config = ConfigDict( populate_by_name=True, @@ -101,6 +103,7 @@ class SipServerInstantTest(BaseModel): * 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([ "created_by", @@ -112,6 +115,7 @@ class SipServerInstantTest(BaseModel): "test_id", "type", "labels", + "tags", "shared_with_accounts", ]) @@ -130,6 +134,13 @@ class SipServerInstantTest(BaseModel): if _item: _items.append(_item.to_dict()) _dict['labels'] = _items + # override the default output from pydantic by calling `to_dict()` of each item in tags (list) + _items = [] + if self.tags: + for _item in self.tags: + if _item: + _items.append(_item.to_dict()) + _dict['tags'] = _items # override the default output from pydantic by calling `to_dict()` of each item in shared_with_accounts (list) _items = [] if self.shared_with_accounts: @@ -161,6 +172,7 @@ class SipServerInstantTest(BaseModel): "type": obj.get("type"), "_links": TestLinks.from_dict(obj["_links"]) if obj.get("_links") is not None else None, "labels": [TestLabel.from_dict(_item) for _item in obj["labels"]] if obj.get("labels") is not None else None, + "tags": [TestTag.from_dict(_item) for _item in obj["tags"]] if obj.get("tags") is not None else None, "sharedWithAccounts": [SharedWithAccount.from_dict(_item) for _item in obj["sharedWithAccounts"]] if obj.get("sharedWithAccounts") is not None else None, "mtuMeasurements": obj.get("mtuMeasurements"), "networkMeasurements": obj.get("networkMeasurements") if obj.get("networkMeasurements") is not None else True, diff --git a/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/sip_server_test.py b/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/sip_server_test.py index 381de8ba..cd06887f 100644 --- a/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/sip_server_test.py +++ b/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/sip_server_test.py @@ -30,6 +30,7 @@ from thousandeyes_sdk.tests.models.test_label import TestLabel from thousandeyes_sdk.tests.models.test_links import TestLinks from thousandeyes_sdk.tests.models.test_path_trace_mode import TestPathTraceMode from thousandeyes_sdk.tests.models.test_probe_mode import TestProbeMode +from thousandeyes_sdk.tests.models.test_tag import TestTag from typing import Optional, Set from typing_extensions import Self @@ -56,6 +57,7 @@ class SipServerTest(BaseModel): type: Optional[StrictStr] = None links: Optional[TestLinks] = Field(default=None, alias="_links") labels: Optional[List[TestLabel]] = Field(default=None, description="Labels to which the test is assigned. This field is not returned for Instant Tests.") + tags: Optional[List[TestTag]] = Field(default=None, description="Tags assigned to the test. Returned only when `expand=tag` is specified. This field is not returned for Instant Tests. For more information, see `/tags`.") shared_with_accounts: Optional[List[SharedWithAccount]] = Field(default=None, alias="sharedWithAccounts") mtu_measurements: Optional[StrictBool] = Field(default=None, description="Set `true` to measure MTU sizes on network from agents to the target.", alias="mtuMeasurements") network_measurements: Optional[StrictBool] = Field(default=True, description="Enable or disable network measurements. Set to true to enable or false to disable network measurements.", alias="networkMeasurements") @@ -75,7 +77,7 @@ class SipServerTest(BaseModel): protocol: Optional[SipTestProtocol] = None sip_registrar: Optional[StrictStr] = Field(default=None, description="SIP server to be tested, specified by domain name or IP address.", alias="sipRegistrar") user: Optional[StrictStr] = Field(default=None, description="Username for SIP registration, should be unique within a ThousandEyes account group.") - __properties: ClassVar[List[str]] = ["interval", "alertsEnabled", "enabled", "alertRules", "bgpMeasurements", "usePublicBgp", "monitors", "createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "sharedWithAccounts", "mtuMeasurements", "networkMeasurements", "numPathTraces", "optionsRegex", "pathTraceMode", "probeMode", "randomizedStartTime", "registerEnabled", "sipTargetTime", "sipTimeLimit", "fixedPacketRate", "ipv6Policy", "authUser", "password", "port", "protocol", "sipRegistrar", "user"] + __properties: ClassVar[List[str]] = ["interval", "alertsEnabled", "enabled", "alertRules", "bgpMeasurements", "usePublicBgp", "monitors", "createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "tags", "sharedWithAccounts", "mtuMeasurements", "networkMeasurements", "numPathTraces", "optionsRegex", "pathTraceMode", "probeMode", "randomizedStartTime", "registerEnabled", "sipTargetTime", "sipTimeLimit", "fixedPacketRate", "ipv6Policy", "authUser", "password", "port", "protocol", "sipRegistrar", "user"] model_config = ConfigDict( populate_by_name=True, @@ -119,6 +121,7 @@ class SipServerTest(BaseModel): * 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([ "monitors", @@ -131,6 +134,7 @@ class SipServerTest(BaseModel): "test_id", "type", "labels", + "tags", "shared_with_accounts", ]) @@ -163,6 +167,13 @@ class SipServerTest(BaseModel): if _item: _items.append(_item.to_dict()) _dict['labels'] = _items + # override the default output from pydantic by calling `to_dict()` of each item in tags (list) + _items = [] + if self.tags: + for _item in self.tags: + if _item: + _items.append(_item.to_dict()) + _dict['tags'] = _items # override the default output from pydantic by calling `to_dict()` of each item in shared_with_accounts (list) _items = [] if self.shared_with_accounts: @@ -201,6 +212,7 @@ class SipServerTest(BaseModel): "type": obj.get("type"), "_links": TestLinks.from_dict(obj["_links"]) if obj.get("_links") is not None else None, "labels": [TestLabel.from_dict(_item) for _item in obj["labels"]] if obj.get("labels") is not None else None, + "tags": [TestTag.from_dict(_item) for _item in obj["tags"]] if obj.get("tags") is not None else None, "sharedWithAccounts": [SharedWithAccount.from_dict(_item) for _item in obj["sharedWithAccounts"]] if obj.get("sharedWithAccounts") is not None else None, "mtuMeasurements": obj.get("mtuMeasurements"), "networkMeasurements": obj.get("networkMeasurements") if obj.get("networkMeasurements") is not None else True, diff --git a/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/sip_server_test_request.py b/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/sip_server_test_request.py index 19c29afa..7e6f4602 100644 --- a/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/sip_server_test_request.py +++ b/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/sip_server_test_request.py @@ -20,7 +20,6 @@ from datetime import datetime from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr from typing import Any, ClassVar, Dict, List, Optional from typing_extensions import Annotated -from thousandeyes_sdk.tests.models.monitor import Monitor from thousandeyes_sdk.tests.models.test_agent_request import TestAgentRequest from thousandeyes_sdk.tests.models.test_interval import TestInterval from thousandeyes_sdk.tests.models.test_ipv6_policy import TestIpv6Policy @@ -38,7 +37,6 @@ class SipServerTestRequest(BaseModel): interval: TestInterval alerts_enabled: Optional[StrictBool] = Field(default=None, description="Indicates if alerts are enabled.", alias="alertsEnabled") enabled: Optional[StrictBool] = Field(default=True, description="Test is enabled.") - alert_rules: Optional[List[StrictStr]] = Field(default=None, description="List of alert rules IDs to apply to the test (get `ruleId` from `/alerts/rules` endpoint. If `alertsEnabled` is set to `true` and `alertRules` is not included on test creation or update, applicable user default alert rules will be used)", alias="alertRules") created_by: Optional[StrictStr] = Field(default=None, description="User that created the test.", alias="createdBy") created_date: Optional[datetime] = Field(default=None, description="UTC created date (ISO date-time format).", alias="createdDate") description: Optional[StrictStr] = Field(default=None, description="A description of the test.") @@ -50,8 +48,6 @@ class SipServerTestRequest(BaseModel): test_name: Optional[StrictStr] = Field(default=None, description="The name of the test. Test name must be unique.", alias="testName") type: Optional[StrictStr] = None links: Optional[TestLinks] = Field(default=None, alias="_links") - labels: Optional[List[StrictStr]] = Field(default=None, description="Contains list of test label IDs (get `labelId` from `/labels` endpoint)") - shared_with_accounts: Optional[List[StrictStr]] = Field(default=None, description="Contains list of account group IDs. Test is shared with the listed account groups (get `aid` from `/account-groups` endpoint)", alias="sharedWithAccounts") mtu_measurements: Optional[StrictBool] = Field(default=None, description="Set `true` to measure MTU sizes on network from agents to the target.", alias="mtuMeasurements") network_measurements: Optional[StrictBool] = Field(default=True, description="Enable or disable network measurements. Set to true to enable or false to disable network measurements.", alias="networkMeasurements") num_path_traces: Optional[Annotated[int, Field(le=10, strict=True, ge=1)]] = Field(default=3, description="Number of path traces executed by the agent.", alias="numPathTraces") @@ -64,13 +60,16 @@ class SipServerTestRequest(BaseModel): sip_time_limit: Optional[Annotated[int, Field(le=10, strict=True, ge=5)]] = Field(default=5, description="Time limit in milliseconds.", alias="sipTimeLimit") fixed_packet_rate: Optional[Annotated[int, Field(le=100, strict=True, ge=0)]] = Field(default=None, description="Sets packets rate sent to measure the network in packets per second.", alias="fixedPacketRate") ipv6_policy: Optional[TestIpv6Policy] = Field(default=None, alias="ipv6Policy") + labels: Optional[List[StrictStr]] = Field(default=None, description="Contains list of test label IDs (get `labelId` from `/labels` endpoint)") + tags: Optional[List[StrictStr]] = Field(default=None, description="Contains list of test tag IDs (get `id` from `/tags` endpoint).") + shared_with_accounts: Optional[List[StrictStr]] = Field(default=None, description="Contains list of account group IDs. Test is shared with the listed account groups (get `aid` from `/account-groups` endpoint)", alias="sharedWithAccounts") + alert_rules: Optional[List[StrictStr]] = Field(default=None, description="List of alert rules IDs to apply to the test (get `ruleId` from `/alerts/rules` endpoint. If `alertsEnabled` is set to `true` and `alertRules` is not included on test creation or update, applicable user default alert rules will be used)", alias="alertRules") + agents: List[TestAgentRequest] = Field(description="Contains list of Agent IDs (get `agentId` from `/agents` endpoint).") + monitors: Optional[List[StrictStr]] = Field(default=None, description="Contains list of BGP monitor IDs (get `monitorId` from `/monitors` endpoint)") + target_sip_credentials: TestSipCredentials = Field(alias="targetSipCredentials") bgp_measurements: Optional[StrictBool] = Field(default=True, description="Set to `true` to enable bgp measurements.", alias="bgpMeasurements") use_public_bgp: Optional[StrictBool] = Field(default=True, description="Indicate if all available public BGP monitors should be used, when ommited defaults to `bgpMeasurements` value.", alias="usePublicBgp") - monitors: Optional[List[Monitor]] = Field(default=None, description="Contains list of enabled BGP monitors.") - target_sip_credentials: TestSipCredentials = Field(alias="targetSipCredentials") - tags: Optional[List[StrictStr]] = Field(default=None, description="Contains list of test tag IDs (get `id` from `/tags` endpoint).") - agents: List[TestAgentRequest] = Field(description="Contains list of Agent IDs (get `agentId` from `/agents` endpoint).") - __properties: ClassVar[List[str]] = ["interval", "alertsEnabled", "enabled", "alertRules", "createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "sharedWithAccounts", "mtuMeasurements", "networkMeasurements", "numPathTraces", "optionsRegex", "pathTraceMode", "probeMode", "randomizedStartTime", "registerEnabled", "sipTargetTime", "sipTimeLimit", "fixedPacketRate", "ipv6Policy", "bgpMeasurements", "usePublicBgp", "monitors", "targetSipCredentials", "tags", "agents"] + __properties: ClassVar[List[str]] = ["interval", "alertsEnabled", "enabled", "createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "mtuMeasurements", "networkMeasurements", "numPathTraces", "optionsRegex", "pathTraceMode", "probeMode", "randomizedStartTime", "registerEnabled", "sipTargetTime", "sipTimeLimit", "fixedPacketRate", "ipv6Policy", "labels", "tags", "sharedWithAccounts", "alertRules", "agents", "monitors", "targetSipCredentials", "bgpMeasurements", "usePublicBgp"] model_config = ConfigDict( populate_by_name=True, @@ -111,7 +110,6 @@ class SipServerTestRequest(BaseModel): * 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([ "created_by", @@ -122,7 +120,6 @@ class SipServerTestRequest(BaseModel): "saved_event", "test_id", "type", - "monitors", ]) _dict = self.model_dump( @@ -133,16 +130,6 @@ class SipServerTestRequest(BaseModel): # override the default output from pydantic by calling `to_dict()` of links if self.links: _dict['_links'] = self.links.to_dict() - # override the default output from pydantic by calling `to_dict()` of each item in monitors (list) - _items = [] - if self.monitors: - for _item in self.monitors: - if _item: - _items.append(_item.to_dict()) - _dict['monitors'] = _items - # override the default output from pydantic by calling `to_dict()` of target_sip_credentials - if self.target_sip_credentials: - _dict['targetSipCredentials'] = self.target_sip_credentials.to_dict() # override the default output from pydantic by calling `to_dict()` of each item in agents (list) _items = [] if self.agents: @@ -150,6 +137,9 @@ class SipServerTestRequest(BaseModel): if _item: _items.append(_item.to_dict()) _dict['agents'] = _items + # override the default output from pydantic by calling `to_dict()` of target_sip_credentials + if self.target_sip_credentials: + _dict['targetSipCredentials'] = self.target_sip_credentials.to_dict() return _dict @classmethod @@ -165,7 +155,6 @@ class SipServerTestRequest(BaseModel): "interval": obj.get("interval"), "alertsEnabled": obj.get("alertsEnabled"), "enabled": obj.get("enabled") if obj.get("enabled") is not None else True, - "alertRules": obj.get("alertRules"), "createdBy": obj.get("createdBy"), "createdDate": obj.get("createdDate"), "description": obj.get("description"), @@ -177,8 +166,6 @@ class SipServerTestRequest(BaseModel): "testName": obj.get("testName"), "type": obj.get("type"), "_links": TestLinks.from_dict(obj["_links"]) if obj.get("_links") is not None else None, - "labels": obj.get("labels"), - "sharedWithAccounts": obj.get("sharedWithAccounts"), "mtuMeasurements": obj.get("mtuMeasurements"), "networkMeasurements": obj.get("networkMeasurements") if obj.get("networkMeasurements") is not None else True, "numPathTraces": obj.get("numPathTraces") if obj.get("numPathTraces") is not None else 3, @@ -191,12 +178,15 @@ class SipServerTestRequest(BaseModel): "sipTimeLimit": obj.get("sipTimeLimit") if obj.get("sipTimeLimit") is not None else 5, "fixedPacketRate": obj.get("fixedPacketRate"), "ipv6Policy": obj.get("ipv6Policy"), - "bgpMeasurements": obj.get("bgpMeasurements") if obj.get("bgpMeasurements") is not None else True, - "usePublicBgp": obj.get("usePublicBgp") if obj.get("usePublicBgp") is not None else True, - "monitors": [Monitor.from_dict(_item) for _item in obj["monitors"]] if obj.get("monitors") is not None else None, - "targetSipCredentials": TestSipCredentials.from_dict(obj["targetSipCredentials"]) if obj.get("targetSipCredentials") is not None else None, + "labels": obj.get("labels"), "tags": obj.get("tags"), - "agents": [TestAgentRequest.from_dict(_item) for _item in obj["agents"]] if obj.get("agents") is not None else None + "sharedWithAccounts": obj.get("sharedWithAccounts"), + "alertRules": obj.get("alertRules"), + "agents": [TestAgentRequest.from_dict(_item) for _item in obj["agents"]] if obj.get("agents") is not None else None, + "monitors": obj.get("monitors"), + "targetSipCredentials": TestSipCredentials.from_dict(obj["targetSipCredentials"]) if obj.get("targetSipCredentials") is not None else None, + "bgpMeasurements": obj.get("bgpMeasurements") if obj.get("bgpMeasurements") is not None else True, + "usePublicBgp": obj.get("usePublicBgp") if obj.get("usePublicBgp") is not None else True }) return _obj diff --git a/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/sip_server_test_response.py b/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/sip_server_test_response.py index a9c9496a..5324a592 100644 --- a/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/sip_server_test_response.py +++ b/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/sip_server_test_response.py @@ -31,6 +31,7 @@ from thousandeyes_sdk.tests.models.test_label import TestLabel from thousandeyes_sdk.tests.models.test_links import TestLinks from thousandeyes_sdk.tests.models.test_path_trace_mode import TestPathTraceMode from thousandeyes_sdk.tests.models.test_probe_mode import TestProbeMode +from thousandeyes_sdk.tests.models.test_tag import TestTag from typing import Optional, Set from typing_extensions import Self @@ -57,6 +58,7 @@ class SipServerTestResponse(BaseModel): type: Optional[StrictStr] = None links: Optional[TestLinks] = Field(default=None, alias="_links") labels: Optional[List[TestLabel]] = Field(default=None, description="Labels to which the test is assigned. This field is not returned for Instant Tests.") + tags: Optional[List[TestTag]] = Field(default=None, description="Tags assigned to the test. Returned only when `expand=tag` is specified. This field is not returned for Instant Tests. For more information, see `/tags`.") shared_with_accounts: Optional[List[SharedWithAccount]] = Field(default=None, alias="sharedWithAccounts") mtu_measurements: Optional[StrictBool] = Field(default=None, description="Set `true` to measure MTU sizes on network from agents to the target.", alias="mtuMeasurements") network_measurements: Optional[StrictBool] = Field(default=True, description="Enable or disable network measurements. Set to true to enable or false to disable network measurements.", alias="networkMeasurements") @@ -77,7 +79,7 @@ class SipServerTestResponse(BaseModel): sip_registrar: Optional[StrictStr] = Field(default=None, description="SIP server to be tested, specified by domain name or IP address.", alias="sipRegistrar") user: Optional[StrictStr] = Field(default=None, description="Username for SIP registration, should be unique within a ThousandEyes account group.") agents: Optional[List[AgentResponse]] = Field(default=None, description="Contains list of agents.") - __properties: ClassVar[List[str]] = ["interval", "alertsEnabled", "enabled", "alertRules", "bgpMeasurements", "usePublicBgp", "monitors", "createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "sharedWithAccounts", "mtuMeasurements", "networkMeasurements", "numPathTraces", "optionsRegex", "pathTraceMode", "probeMode", "randomizedStartTime", "registerEnabled", "sipTargetTime", "sipTimeLimit", "fixedPacketRate", "ipv6Policy", "authUser", "password", "port", "protocol", "sipRegistrar", "user", "agents"] + __properties: ClassVar[List[str]] = ["interval", "alertsEnabled", "enabled", "alertRules", "bgpMeasurements", "usePublicBgp", "monitors", "createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "tags", "sharedWithAccounts", "mtuMeasurements", "networkMeasurements", "numPathTraces", "optionsRegex", "pathTraceMode", "probeMode", "randomizedStartTime", "registerEnabled", "sipTargetTime", "sipTimeLimit", "fixedPacketRate", "ipv6Policy", "authUser", "password", "port", "protocol", "sipRegistrar", "user", "agents"] model_config = ConfigDict( populate_by_name=True, @@ -121,6 +123,7 @@ class SipServerTestResponse(BaseModel): * 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([ "monitors", @@ -133,6 +136,7 @@ class SipServerTestResponse(BaseModel): "test_id", "type", "labels", + "tags", "shared_with_accounts", ]) @@ -165,6 +169,13 @@ class SipServerTestResponse(BaseModel): if _item: _items.append(_item.to_dict()) _dict['labels'] = _items + # override the default output from pydantic by calling `to_dict()` of each item in tags (list) + _items = [] + if self.tags: + for _item in self.tags: + if _item: + _items.append(_item.to_dict()) + _dict['tags'] = _items # override the default output from pydantic by calling `to_dict()` of each item in shared_with_accounts (list) _items = [] if self.shared_with_accounts: @@ -210,6 +221,7 @@ class SipServerTestResponse(BaseModel): "type": obj.get("type"), "_links": TestLinks.from_dict(obj["_links"]) if obj.get("_links") is not None else None, "labels": [TestLabel.from_dict(_item) for _item in obj["labels"]] if obj.get("labels") is not None else None, + "tags": [TestTag.from_dict(_item) for _item in obj["tags"]] if obj.get("tags") is not None else None, "sharedWithAccounts": [SharedWithAccount.from_dict(_item) for _item in obj["sharedWithAccounts"]] if obj.get("sharedWithAccounts") is not None else None, "mtuMeasurements": obj.get("mtuMeasurements"), "networkMeasurements": obj.get("networkMeasurements") if obj.get("networkMeasurements") is not None else True, diff --git a/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/test_tag.py b/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/test_tag.py new file mode 100644 index 00000000..434e32e1 --- /dev/null +++ b/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/test_tag.py @@ -0,0 +1,91 @@ +# coding: utf-8 + +""" + Tests API + + **Note:** The Page Load Tests, API Tests, and Web Transaction Tests APIs are not available for ThousandEyes for Government instance. This API allows you to list, create, edit, and delete Network and Application Synthetics tests. + + 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 TestTag(BaseModel): + """ + TestTag + """ # noqa: E501 + id: Optional[StrictStr] = Field(default=None, description="Unique tag ID.") + key: Optional[StrictStr] = Field(default=None, description="Tag key. For example, \"Location\" or \"Department\".") + value: Optional[StrictStr] = Field(default=None, description="Tag value. For example, \"San Francisco\" or \"Engineering\".") + __properties: ClassVar[List[str]] = ["id", "key", "value"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + extra="allow", + ) + + + 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 self.model_dump_json(by_alias=True, exclude_unset=True, exclude_none=True) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of TestTag 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 TestTag 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"), + "key": obj.get("key"), + "value": obj.get("value") + }) + return _obj + + diff --git a/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/dns_servers_request.py b/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/test_vault_credential.py similarity index 78% rename from thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/dns_servers_request.py rename to thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/test_vault_credential.py index 35963499..2498c73c 100644 --- a/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/dns_servers_request.py +++ b/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/test_vault_credential.py @@ -18,15 +18,17 @@ import json from pydantic import BaseModel, ConfigDict, Field, StrictStr from typing import Any, ClassVar, Dict, List, Optional +from thousandeyes_sdk.tests.models.test_vault_credential_target import TestVaultCredentialTarget from typing import Optional, Set from typing_extensions import Self -class DnsServersRequest(BaseModel): +class TestVaultCredential(BaseModel): """ - DnsServersRequest + TestVaultCredential """ # noqa: E501 - dns_servers: Optional[List[StrictStr]] = Field(default=None, description="A list of DNS server FQDN.", alias="dnsServers") - __properties: ClassVar[List[str]] = ["dnsServers"] + secret_id: Optional[StrictStr] = Field(default=None, description="UUID of the configured secret.", alias="secretId") + target: Optional[TestVaultCredentialTarget] = None + __properties: ClassVar[List[str]] = ["secretId", "target"] model_config = ConfigDict( populate_by_name=True, @@ -47,7 +49,7 @@ class DnsServersRequest(BaseModel): @classmethod def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of DnsServersRequest from a JSON string""" + """Create an instance of TestVaultCredential from a JSON string""" return cls.from_dict(json.loads(json_str)) def to_dict(self) -> Dict[str, Any]: @@ -72,7 +74,7 @@ class DnsServersRequest(BaseModel): @classmethod def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of DnsServersRequest from a dict""" + """Create an instance of TestVaultCredential from a dict""" if obj is None: return None @@ -80,7 +82,8 @@ class DnsServersRequest(BaseModel): return cls.model_validate(obj) _obj = cls.model_validate({ - "dnsServers": obj.get("dnsServers") + "secretId": obj.get("secretId"), + "target": obj.get("target") }) return _obj diff --git a/thousandeyes-sdk-dashboards/src/thousandeyes_sdk/dashboards/models/api_agent_widget_type.py b/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/test_vault_credential_target.py similarity index 52% rename from thousandeyes-sdk-dashboards/src/thousandeyes_sdk/dashboards/models/api_agent_widget_type.py rename to thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/test_vault_credential_target.py index 855418f2..f038b9f9 100644 --- a/thousandeyes-sdk-dashboards/src/thousandeyes_sdk/dashboards/models/api_agent_widget_type.py +++ b/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/test_vault_credential_target.py @@ -1,9 +1,9 @@ # coding: utf-8 """ - Dashboards API + Tests API - Manage ThousandEyes Dashboards. + **Note:** The Page Load Tests, API Tests, and Web Transaction Tests APIs are not available for ThousandEyes for Government instance. This API allows you to list, create, edit, and delete Network and Application Synthetics tests. Generated by OpenAPI Generator (https://openapi-generator.tech) @@ -17,21 +17,22 @@ from enum import Enum from typing_extensions import Self -class ApiAgentWidgetType(str, Enum): +class TestVaultCredentialTarget(str, Enum): """ - Type of the agent. + The target setting that the credential should be used for. """ """ allowed enum values """ - ENTERPRISE = 'enterprise' - ENDPOINT = 'endpoint' + USERNAME = 'username' + PASSWORD = 'password' + SCRIPT = 'script' UNKNOWN = 'unknown' @classmethod def from_json(cls, json_str: str) -> Self: - """Create an instance of ApiAgentWidgetType from a JSON string""" + """Create an instance of TestVaultCredentialTarget from a JSON string""" return cls(json.loads(json_str)) @classmethod diff --git a/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/update_sip_server_test.py b/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/unexpanded_dns_server_request_test.py similarity index 62% rename from thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/update_sip_server_test.py rename to thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/unexpanded_dns_server_request_test.py index 04f86275..218d25f4 100644 --- a/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/update_sip_server_test.py +++ b/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/unexpanded_dns_server_request_test.py @@ -20,27 +20,24 @@ from datetime import datetime from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr from typing import Any, ClassVar, Dict, List, Optional from typing_extensions import Annotated -from thousandeyes_sdk.tests.models.alert_rule import AlertRule -from thousandeyes_sdk.tests.models.monitor import Monitor -from thousandeyes_sdk.tests.models.shared_with_account import SharedWithAccount +from thousandeyes_sdk.tests.models.dns_query_class import DnsQueryClass +from thousandeyes_sdk.tests.models.test_dns_transport_protocol import TestDnsTransportProtocol from thousandeyes_sdk.tests.models.test_interval import TestInterval from thousandeyes_sdk.tests.models.test_ipv6_policy import TestIpv6Policy -from thousandeyes_sdk.tests.models.test_label import TestLabel from thousandeyes_sdk.tests.models.test_links import TestLinks from thousandeyes_sdk.tests.models.test_path_trace_mode import TestPathTraceMode from thousandeyes_sdk.tests.models.test_probe_mode import TestProbeMode -from thousandeyes_sdk.tests.models.test_sip_credentials import TestSipCredentials +from thousandeyes_sdk.tests.models.test_protocol import TestProtocol from typing import Optional, Set from typing_extensions import Self -class UpdateSipServerTest(BaseModel): +class UnexpandedDnsServerRequestTest(BaseModel): """ - UpdateSipServerTest + UnexpandedDnsServerRequestTest """ # noqa: E501 interval: TestInterval alerts_enabled: Optional[StrictBool] = Field(default=None, description="Indicates if alerts are enabled.", alias="alertsEnabled") enabled: Optional[StrictBool] = Field(default=True, description="Test is enabled.") - alert_rules: Optional[List[AlertRule]] = Field(default=None, description="Contains list of enabled alert rule objects.", alias="alertRules") created_by: Optional[StrictStr] = Field(default=None, description="User that created the test.", alias="createdBy") created_date: Optional[datetime] = Field(default=None, description="UTC created date (ISO date-time format).", alias="createdDate") description: Optional[StrictStr] = Field(default=None, description="A description of the test.") @@ -52,25 +49,24 @@ class UpdateSipServerTest(BaseModel): test_name: Optional[StrictStr] = Field(default=None, description="The name of the test. Test name must be unique.", alias="testName") type: Optional[StrictStr] = None links: Optional[TestLinks] = Field(default=None, alias="_links") - labels: Optional[List[TestLabel]] = Field(default=None, description="Labels to which the test is assigned. This field is not returned for Instant Tests.") - shared_with_accounts: Optional[List[SharedWithAccount]] = Field(default=None, alias="sharedWithAccounts") + bandwidth_measurements: Optional[StrictBool] = Field(default=None, description="Set to `true` to enable bandwidth measurements, only applies to Enterprise agents assigned to the test.", alias="bandwidthMeasurements") + dns_servers: List[StrictStr] = Field(description="A list of DNS server FQDN.", alias="dnsServers") + dns_transport_protocol: Optional[TestDnsTransportProtocol] = Field(default=None, alias="dnsTransportProtocol") + domain: StrictStr = Field(description="The target record for the test, with the record type suffixed. If no record type is specified, the test defaults to an ANY record.") mtu_measurements: Optional[StrictBool] = Field(default=None, description="Set `true` to measure MTU sizes on network from agents to the target.", alias="mtuMeasurements") network_measurements: Optional[StrictBool] = Field(default=True, description="Enable or disable network measurements. Set to true to enable or false to disable network measurements.", alias="networkMeasurements") num_path_traces: Optional[Annotated[int, Field(le=10, strict=True, ge=1)]] = Field(default=3, description="Number of path traces executed by the agent.", alias="numPathTraces") - options_regex: Optional[StrictStr] = Field(default=None, description="Options regex, this field does not require escaping.", alias="optionsRegex") path_trace_mode: Optional[TestPathTraceMode] = Field(default=None, alias="pathTraceMode") probe_mode: Optional[TestProbeMode] = Field(default=None, alias="probeMode") + protocol: Optional[TestProtocol] = None randomized_start_time: Optional[StrictBool] = Field(default=False, description="Indicates whether agents should randomize the start time in each test round.", alias="randomizedStartTime") - register_enabled: Optional[StrictBool] = Field(default=False, description="Set to true to perform SIP registration on the test target with the SIP REGISTER command.", alias="registerEnabled") - sip_target_time: Optional[Annotated[int, Field(le=5000, strict=True, ge=100)]] = Field(default=None, description="Target time for test completion in milliseconds.", alias="sipTargetTime") - sip_time_limit: Optional[Annotated[int, Field(le=10, strict=True, ge=5)]] = Field(default=5, description="Time limit in milliseconds.", alias="sipTimeLimit") - fixed_packet_rate: Optional[Annotated[int, Field(le=100, strict=True, ge=0)]] = Field(default=None, description="Sets packets rate sent to measure the network in packets per second.", alias="fixedPacketRate") + recursive_queries: Optional[StrictBool] = Field(default=None, description="Set true to run query with RD (recursion desired) flag enabled.", alias="recursiveQueries") ipv6_policy: Optional[TestIpv6Policy] = Field(default=None, alias="ipv6Policy") + fixed_packet_rate: Optional[Annotated[int, Field(le=100, strict=True, ge=0)]] = Field(default=None, description="Sets packets rate sent to measure the network in packets per second.", alias="fixedPacketRate") + dns_query_class: Optional[DnsQueryClass] = Field(default=None, alias="dnsQueryClass") bgp_measurements: Optional[StrictBool] = Field(default=True, description="Set to `true` to enable bgp measurements.", alias="bgpMeasurements") use_public_bgp: Optional[StrictBool] = Field(default=True, description="Indicate if all available public BGP monitors should be used, when ommited defaults to `bgpMeasurements` value.", alias="usePublicBgp") - monitors: Optional[List[Monitor]] = Field(default=None, description="Contains list of enabled BGP monitors.") - target_sip_credentials: TestSipCredentials = Field(alias="targetSipCredentials") - __properties: ClassVar[List[str]] = ["interval", "alertsEnabled", "enabled", "alertRules", "createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "sharedWithAccounts", "mtuMeasurements", "networkMeasurements", "numPathTraces", "optionsRegex", "pathTraceMode", "probeMode", "randomizedStartTime", "registerEnabled", "sipTargetTime", "sipTimeLimit", "fixedPacketRate", "ipv6Policy", "bgpMeasurements", "usePublicBgp", "monitors", "targetSipCredentials"] + __properties: ClassVar[List[str]] = ["interval", "alertsEnabled", "enabled", "createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "bandwidthMeasurements", "dnsServers", "dnsTransportProtocol", "domain", "mtuMeasurements", "networkMeasurements", "numPathTraces", "pathTraceMode", "probeMode", "protocol", "randomizedStartTime", "recursiveQueries", "ipv6Policy", "fixedPacketRate", "dnsQueryClass", "bgpMeasurements", "usePublicBgp"] model_config = ConfigDict( populate_by_name=True, @@ -91,7 +87,7 @@ class UpdateSipServerTest(BaseModel): @classmethod def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of UpdateSipServerTest from a JSON string""" + """Create an instance of UnexpandedDnsServerRequestTest from a JSON string""" return cls.from_dict(json.loads(json_str)) def to_dict(self) -> Dict[str, Any]: @@ -111,9 +107,6 @@ class UpdateSipServerTest(BaseModel): * 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([ "created_by", @@ -124,9 +117,6 @@ class UpdateSipServerTest(BaseModel): "saved_event", "test_id", "type", - "labels", - "shared_with_accounts", - "monitors", ]) _dict = self.model_dump( @@ -134,45 +124,14 @@ class UpdateSipServerTest(BaseModel): exclude=excluded_fields, exclude_none=True, ) - # override the default output from pydantic by calling `to_dict()` of each item in alert_rules (list) - _items = [] - if self.alert_rules: - for _item in self.alert_rules: - if _item: - _items.append(_item.to_dict()) - _dict['alertRules'] = _items # override the default output from pydantic by calling `to_dict()` of links if self.links: _dict['_links'] = self.links.to_dict() - # override the default output from pydantic by calling `to_dict()` of each item in labels (list) - _items = [] - if self.labels: - for _item in self.labels: - if _item: - _items.append(_item.to_dict()) - _dict['labels'] = _items - # override the default output from pydantic by calling `to_dict()` of each item in shared_with_accounts (list) - _items = [] - if self.shared_with_accounts: - for _item in self.shared_with_accounts: - if _item: - _items.append(_item.to_dict()) - _dict['sharedWithAccounts'] = _items - # override the default output from pydantic by calling `to_dict()` of each item in monitors (list) - _items = [] - if self.monitors: - for _item in self.monitors: - if _item: - _items.append(_item.to_dict()) - _dict['monitors'] = _items - # override the default output from pydantic by calling `to_dict()` of target_sip_credentials - if self.target_sip_credentials: - _dict['targetSipCredentials'] = self.target_sip_credentials.to_dict() return _dict @classmethod def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of UpdateSipServerTest from a dict""" + """Create an instance of UnexpandedDnsServerRequestTest from a dict""" if obj is None: return None @@ -183,7 +142,6 @@ class UpdateSipServerTest(BaseModel): "interval": obj.get("interval"), "alertsEnabled": obj.get("alertsEnabled"), "enabled": obj.get("enabled") if obj.get("enabled") is not None else True, - "alertRules": [AlertRule.from_dict(_item) for _item in obj["alertRules"]] if obj.get("alertRules") is not None else None, "createdBy": obj.get("createdBy"), "createdDate": obj.get("createdDate"), "description": obj.get("description"), @@ -195,24 +153,23 @@ class UpdateSipServerTest(BaseModel): "testName": obj.get("testName"), "type": obj.get("type"), "_links": TestLinks.from_dict(obj["_links"]) if obj.get("_links") is not None else None, - "labels": [TestLabel.from_dict(_item) for _item in obj["labels"]] if obj.get("labels") is not None else None, - "sharedWithAccounts": [SharedWithAccount.from_dict(_item) for _item in obj["sharedWithAccounts"]] if obj.get("sharedWithAccounts") is not None else None, + "bandwidthMeasurements": obj.get("bandwidthMeasurements"), + "dnsServers": obj.get("dnsServers"), + "dnsTransportProtocol": obj.get("dnsTransportProtocol"), + "domain": obj.get("domain"), "mtuMeasurements": obj.get("mtuMeasurements"), "networkMeasurements": obj.get("networkMeasurements") if obj.get("networkMeasurements") is not None else True, "numPathTraces": obj.get("numPathTraces") if obj.get("numPathTraces") is not None else 3, - "optionsRegex": obj.get("optionsRegex"), "pathTraceMode": obj.get("pathTraceMode"), "probeMode": obj.get("probeMode"), + "protocol": obj.get("protocol"), "randomizedStartTime": obj.get("randomizedStartTime") if obj.get("randomizedStartTime") is not None else False, - "registerEnabled": obj.get("registerEnabled") if obj.get("registerEnabled") is not None else False, - "sipTargetTime": obj.get("sipTargetTime"), - "sipTimeLimit": obj.get("sipTimeLimit") if obj.get("sipTimeLimit") is not None else 5, - "fixedPacketRate": obj.get("fixedPacketRate"), + "recursiveQueries": obj.get("recursiveQueries"), "ipv6Policy": obj.get("ipv6Policy"), + "fixedPacketRate": obj.get("fixedPacketRate"), + "dnsQueryClass": obj.get("dnsQueryClass"), "bgpMeasurements": obj.get("bgpMeasurements") if obj.get("bgpMeasurements") is not None else True, - "usePublicBgp": obj.get("usePublicBgp") if obj.get("usePublicBgp") is not None else True, - "monitors": [Monitor.from_dict(_item) for _item in obj["monitors"]] if obj.get("monitors") is not None else None, - "targetSipCredentials": TestSipCredentials.from_dict(obj["targetSipCredentials"]) if obj.get("targetSipCredentials") is not None else None + "usePublicBgp": obj.get("usePublicBgp") if obj.get("usePublicBgp") is not None else True }) return _obj diff --git a/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/unexpanded_http_server_test.py b/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/unexpanded_http_server_test.py index dfd46036..a106204b 100644 --- a/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/unexpanded_http_server_test.py +++ b/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/unexpanded_http_server_test.py @@ -22,6 +22,7 @@ from typing import Any, ClassVar, Dict, List, Optional from typing_extensions import Annotated from thousandeyes_sdk.tests.models.agent_interfaces import AgentInterfaces from thousandeyes_sdk.tests.models.o_auth import OAuth +from thousandeyes_sdk.tests.models.request_method import RequestMethod from thousandeyes_sdk.tests.models.test_auth_type import TestAuthType from thousandeyes_sdk.tests.models.test_custom_headers import TestCustomHeaders from thousandeyes_sdk.tests.models.test_interval import TestInterval @@ -31,6 +32,7 @@ from thousandeyes_sdk.tests.models.test_path_trace_mode import TestPathTraceMode from thousandeyes_sdk.tests.models.test_probe_mode import TestProbeMode from thousandeyes_sdk.tests.models.test_protocol import TestProtocol from thousandeyes_sdk.tests.models.test_ssl_version_id import TestSslVersionId +from thousandeyes_sdk.tests.models.test_vault_credential import TestVaultCredential from typing import Optional, Set from typing_extensions import Self @@ -87,13 +89,15 @@ class UnexpandedHttpServerTest(BaseModel): override_agent_proxy: Optional[StrictBool] = Field(default=False, description="Flag indicating if a proxy other than the default should be used. To override the default proxy for agents, set to `true` and specify a value for `overrideProxyId`.", alias="overrideAgentProxy") override_proxy_id: Optional[StrictStr] = Field(default=None, description="ID of the proxy to be used if the default proxy is overridden.", alias="overrideProxyId") collect_proxy_network_data: Optional[StrictBool] = Field(default=False, description="Indicates whether network data to the proxy should be collected.", alias="collectProxyNetworkData") + vault_credentials: Optional[List[TestVaultCredential]] = Field(default=None, description="List of credential IDs that are stored in an external vault.", alias="vaultCredentials") headers: Optional[List[StrictStr]] = Field(default=None, description="HTTP request headers used.") randomized_start_time: Optional[StrictBool] = Field(default=False, description="Indicates whether agents should randomize the start time in each test round.", alias="randomizedStartTime") - post_body: Optional[StrictStr] = Field(default=None, description="Enter the body for the HTTP POST request in this field. No special escaping is necessary. If the post body is provided with content, the `requestMethod` is automatically set to POST.", alias="postBody") + request_method: Optional[RequestMethod] = Field(default=None, alias="requestMethod") + post_body: Optional[StrictStr] = Field(default=None, description="Enter the body for the HTTP POST request in this field. No special escaping is required. If content is provided and `requestMethod` is not specified, `requestMethod` is automatically set to `post`.", alias="postBody") ipv6_policy: Optional[TestIpv6Policy] = Field(default=None, alias="ipv6Policy") bgp_measurements: Optional[StrictBool] = Field(default=True, description="Set to `true` to enable bgp measurements.", alias="bgpMeasurements") use_public_bgp: Optional[StrictBool] = Field(default=True, description="Indicate if all available public BGP monitors should be used, when ommited defaults to `bgpMeasurements` value.", alias="usePublicBgp") - __properties: ClassVar[List[str]] = ["interval", "alertsEnabled", "enabled", "createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "authType", "agentInterfaces", "bandwidthMeasurements", "clientCertificate", "contentRegex", "customHeaders", "desiredStatusCode", "distributedTracing", "downloadLimit", "dnsOverride", "httpTargetTime", "httpTimeLimit", "httpVersion", "includeHeaders", "mtuMeasurements", "networkMeasurements", "numPathTraces", "oAuth", "password", "pathTraceMode", "probeMode", "protocol", "sslVersion", "sslVersionId", "url", "useNtlm", "userAgent", "username", "verifyCertificate", "allowUnsafeLegacyRenegotiation", "followRedirects", "fixedPacketRate", "overrideAgentProxy", "overrideProxyId", "collectProxyNetworkData", "headers", "randomizedStartTime", "postBody", "ipv6Policy", "bgpMeasurements", "usePublicBgp"] + __properties: ClassVar[List[str]] = ["interval", "alertsEnabled", "enabled", "createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "authType", "agentInterfaces", "bandwidthMeasurements", "clientCertificate", "contentRegex", "customHeaders", "desiredStatusCode", "distributedTracing", "downloadLimit", "dnsOverride", "httpTargetTime", "httpTimeLimit", "httpVersion", "includeHeaders", "mtuMeasurements", "networkMeasurements", "numPathTraces", "oAuth", "password", "pathTraceMode", "probeMode", "protocol", "sslVersion", "sslVersionId", "url", "useNtlm", "userAgent", "username", "verifyCertificate", "allowUnsafeLegacyRenegotiation", "followRedirects", "fixedPacketRate", "overrideAgentProxy", "overrideProxyId", "collectProxyNetworkData", "vaultCredentials", "headers", "randomizedStartTime", "requestMethod", "postBody", "ipv6Policy", "bgpMeasurements", "usePublicBgp"] model_config = ConfigDict( populate_by_name=True, @@ -165,6 +169,13 @@ class UnexpandedHttpServerTest(BaseModel): # override the default output from pydantic by calling `to_dict()` of o_auth if self.o_auth: _dict['oAuth'] = self.o_auth.to_dict() + # override the default output from pydantic by calling `to_dict()` of each item in vault_credentials (list) + _items = [] + if self.vault_credentials: + for _item in self.vault_credentials: + if _item: + _items.append(_item.to_dict()) + _dict['vaultCredentials'] = _items return _dict @classmethod @@ -226,8 +237,10 @@ class UnexpandedHttpServerTest(BaseModel): "overrideAgentProxy": obj.get("overrideAgentProxy") if obj.get("overrideAgentProxy") is not None else False, "overrideProxyId": obj.get("overrideProxyId"), "collectProxyNetworkData": obj.get("collectProxyNetworkData") if obj.get("collectProxyNetworkData") is not None else False, + "vaultCredentials": [TestVaultCredential.from_dict(_item) for _item in obj["vaultCredentials"]] if obj.get("vaultCredentials") is not None else None, "headers": obj.get("headers"), "randomizedStartTime": obj.get("randomizedStartTime") if obj.get("randomizedStartTime") is not None else False, + "requestMethod": obj.get("requestMethod"), "postBody": obj.get("postBody"), "ipv6Policy": obj.get("ipv6Policy"), "bgpMeasurements": obj.get("bgpMeasurements") if obj.get("bgpMeasurements") is not None else True, diff --git a/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/unexpanded_page_load_test.py b/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/unexpanded_page_load_test.py index efe76baf..a1cbd813 100644 --- a/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/unexpanded_page_load_test.py +++ b/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/unexpanded_page_load_test.py @@ -33,6 +33,7 @@ from thousandeyes_sdk.tests.models.test_probe_mode import TestProbeMode from thousandeyes_sdk.tests.models.test_protocol import TestProtocol from thousandeyes_sdk.tests.models.test_ssl_version_id import TestSslVersionId from thousandeyes_sdk.tests.models.test_sub_interval import TestSubInterval +from thousandeyes_sdk.tests.models.test_vault_credential import TestVaultCredential from typing import Optional, Set from typing_extensions import Self @@ -89,6 +90,7 @@ class UnexpandedPageLoadTest(BaseModel): override_agent_proxy: Optional[StrictBool] = Field(default=False, description="Flag indicating if a proxy other than the default should be used. To override the default proxy for agents, set to `true` and specify a value for `overrideProxyId`.", alias="overrideAgentProxy") override_proxy_id: Optional[StrictStr] = Field(default=None, description="ID of the proxy to be used if the default proxy is overridden.", alias="overrideProxyId") collect_proxy_network_data: Optional[StrictBool] = Field(default=False, description="Indicates whether network data to the proxy should be collected.", alias="collectProxyNetworkData") + vault_credentials: Optional[List[TestVaultCredential]] = Field(default=None, description="List of credential IDs that are stored in an external vault.", alias="vaultCredentials") emulated_device_id: Optional[StrictStr] = Field(default=None, description="ID of the emulated device, if one was given when the test was created.", alias="emulatedDeviceId") page_load_target_time: Optional[Annotated[int, Field(le=60, strict=True, ge=1)]] = Field(default=None, description="Target time for page load completion, specified in seconds and cannot exceed the `pageLoadTimeLimit`.", alias="pageLoadTargetTime") page_load_time_limit: Optional[Annotated[int, Field(le=60, strict=True, ge=5)]] = Field(default=10, description="Page load time limit. Must be larger than the `httpTimeLimit`.", alias="pageLoadTimeLimit") @@ -106,7 +108,7 @@ class UnexpandedPageLoadTest(BaseModel): subinterval: Optional[TestSubInterval] = None bgp_measurements: Optional[StrictBool] = Field(default=True, description="Set to `true` to enable bgp measurements.", alias="bgpMeasurements") use_public_bgp: Optional[StrictBool] = Field(default=True, description="Indicate if all available public BGP monitors should be used, when ommited defaults to `bgpMeasurements` value.", alias="usePublicBgp") - __properties: ClassVar[List[str]] = ["interval", "alertsEnabled", "enabled", "createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "authType", "agentInterfaces", "bandwidthMeasurements", "clientCertificate", "contentRegex", "customHeaders", "desiredStatusCode", "distributedTracing", "downloadLimit", "dnsOverride", "httpTargetTime", "httpTimeLimit", "httpVersion", "includeHeaders", "mtuMeasurements", "networkMeasurements", "numPathTraces", "oAuth", "password", "pathTraceMode", "probeMode", "protocol", "sslVersion", "sslVersionId", "url", "useNtlm", "userAgent", "username", "verifyCertificate", "allowUnsafeLegacyRenegotiation", "followRedirects", "fixedPacketRate", "overrideAgentProxy", "overrideProxyId", "collectProxyNetworkData", "emulatedDeviceId", "pageLoadTargetTime", "pageLoadTimeLimit", "blockDomains", "disableScreenshot", "allowMicAndCamera", "allowGeolocation", "browserLanguage", "chromeOptions", "chromePolicies", "pageLoadingStrategy", "randomizedStartTime", "identifyAgentTrafficWithUserAgent", "httpInterval", "subinterval", "bgpMeasurements", "usePublicBgp"] + __properties: ClassVar[List[str]] = ["interval", "alertsEnabled", "enabled", "createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "authType", "agentInterfaces", "bandwidthMeasurements", "clientCertificate", "contentRegex", "customHeaders", "desiredStatusCode", "distributedTracing", "downloadLimit", "dnsOverride", "httpTargetTime", "httpTimeLimit", "httpVersion", "includeHeaders", "mtuMeasurements", "networkMeasurements", "numPathTraces", "oAuth", "password", "pathTraceMode", "probeMode", "protocol", "sslVersion", "sslVersionId", "url", "useNtlm", "userAgent", "username", "verifyCertificate", "allowUnsafeLegacyRenegotiation", "followRedirects", "fixedPacketRate", "overrideAgentProxy", "overrideProxyId", "collectProxyNetworkData", "vaultCredentials", "emulatedDeviceId", "pageLoadTargetTime", "pageLoadTimeLimit", "blockDomains", "disableScreenshot", "allowMicAndCamera", "allowGeolocation", "browserLanguage", "chromeOptions", "chromePolicies", "pageLoadingStrategy", "randomizedStartTime", "identifyAgentTrafficWithUserAgent", "httpInterval", "subinterval", "bgpMeasurements", "usePublicBgp"] model_config = ConfigDict( populate_by_name=True, @@ -178,6 +180,13 @@ class UnexpandedPageLoadTest(BaseModel): # override the default output from pydantic by calling `to_dict()` of o_auth if self.o_auth: _dict['oAuth'] = self.o_auth.to_dict() + # override the default output from pydantic by calling `to_dict()` of each item in vault_credentials (list) + _items = [] + if self.vault_credentials: + for _item in self.vault_credentials: + if _item: + _items.append(_item.to_dict()) + _dict['vaultCredentials'] = _items return _dict @classmethod @@ -239,6 +248,7 @@ class UnexpandedPageLoadTest(BaseModel): "overrideAgentProxy": obj.get("overrideAgentProxy") if obj.get("overrideAgentProxy") is not None else False, "overrideProxyId": obj.get("overrideProxyId"), "collectProxyNetworkData": obj.get("collectProxyNetworkData") if obj.get("collectProxyNetworkData") is not None else False, + "vaultCredentials": [TestVaultCredential.from_dict(_item) for _item in obj["vaultCredentials"]] if obj.get("vaultCredentials") is not None else None, "emulatedDeviceId": obj.get("emulatedDeviceId"), "pageLoadTargetTime": obj.get("pageLoadTargetTime"), "pageLoadTimeLimit": obj.get("pageLoadTimeLimit") if obj.get("pageLoadTimeLimit") is not None else 10, diff --git a/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/unexpanded_voice_test.py b/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/unexpanded_voice_test.py index 8d082f45..cb099251 100644 --- a/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/unexpanded_voice_test.py +++ b/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/unexpanded_voice_test.py @@ -45,7 +45,7 @@ class UnexpandedVoiceTest(BaseModel): type: Optional[StrictStr] = None links: Optional[TestLinks] = Field(default=None, alias="_links") codec: Optional[StrictStr] = Field(default=None, description="Codec label") - codec_id: Optional[StrictStr] = Field(default=None, description="Coded ID, [see the list of acceptable values](https://docs.thousandeyes.com/product-documentation/internet-and-wan-monitoring/tests/working-with-test-settings#rtp-stream-advanced-settings-tab)", alias="codecId") + codec_id: Optional[StrictStr] = Field(default=None, description="Codec identifier for the RTP stream. Valid values: * `0`: G.711 @ 64 Kbps * `1`: G.722.1 @ 24 Kbps (WB) * `2`: G.722.1 @ 32 Kbps (WB) * `3`: G.726 @ 32 Kbps * `4`: G.723.1 @ 6.4 Kbps * `5`: G.729a @ 8 Kbps * `6`: RTAudio @ 45 Kbps (WB) * `7`: RTAudio @ 27.8 Kbps * `8`: SILK @ 36 Kbps (WB) * `9`: G.722 @ 64 Kbps (WB) ", alias="codecId") dscp: Optional[StrictStr] = Field(default=None, description="DSCP label.") dscp_id: Optional[TestDscpId] = Field(default=None, alias="dscpId") duration: Optional[Annotated[int, Field(le=30, strict=True, ge=5)]] = Field(default=5, description="Duration of the test in seconds.") diff --git a/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/unexpanded_web_transaction_test.py b/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/unexpanded_web_transaction_test.py index fa1ad55b..7a2b3c5e 100644 --- a/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/unexpanded_web_transaction_test.py +++ b/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/unexpanded_web_transaction_test.py @@ -32,6 +32,7 @@ from thousandeyes_sdk.tests.models.test_probe_mode import TestProbeMode from thousandeyes_sdk.tests.models.test_protocol import TestProtocol from thousandeyes_sdk.tests.models.test_ssl_version_id import TestSslVersionId from thousandeyes_sdk.tests.models.test_sub_interval import TestSubInterval +from thousandeyes_sdk.tests.models.test_vault_credential import TestVaultCredential from typing import Optional, Set from typing_extensions import Self @@ -88,6 +89,7 @@ class UnexpandedWebTransactionTest(BaseModel): override_agent_proxy: Optional[StrictBool] = Field(default=False, description="Flag indicating if a proxy other than the default should be used. To override the default proxy for agents, set to `true` and specify a value for `overrideProxyId`.", alias="overrideAgentProxy") override_proxy_id: Optional[StrictStr] = Field(default=None, description="ID of the proxy to be used if the default proxy is overridden.", alias="overrideProxyId") collect_proxy_network_data: Optional[StrictBool] = Field(default=False, description="Indicates whether network data to the proxy should be collected.", alias="collectProxyNetworkData") + vault_credentials: Optional[List[TestVaultCredential]] = Field(default=None, description="List of credential IDs that are stored in an external vault.", alias="vaultCredentials") emulated_device_id: Optional[StrictStr] = Field(default=None, description="ID of the emulated device, if specified when the test was created.", alias="emulatedDeviceId") target_time: Optional[Annotated[int, Field(le=180, strict=True, ge=1)]] = Field(default=10, description="Target completion time, in seconds. Defaults to 10. Cannot exceed the `timeLimit` value.", alias="targetTime") time_limit: Optional[Annotated[int, Field(le=180, strict=True, ge=5)]] = Field(default=30, description="Time limit for transaction in seconds.", alias="timeLimit") @@ -105,7 +107,7 @@ class UnexpandedWebTransactionTest(BaseModel): subinterval: Optional[TestSubInterval] = None bgp_measurements: Optional[StrictBool] = Field(default=True, description="Set to `true` to enable bgp measurements.", alias="bgpMeasurements") use_public_bgp: Optional[StrictBool] = Field(default=True, description="Indicate if all available public BGP monitors should be used, when ommited defaults to `bgpMeasurements` value.", alias="usePublicBgp") - __properties: ClassVar[List[str]] = ["interval", "alertsEnabled", "enabled", "createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "authType", "agentInterfaces", "bandwidthMeasurements", "clientCertificate", "contentRegex", "customHeaders", "desiredStatusCode", "distributedTracing", "downloadLimit", "dnsOverride", "httpTargetTime", "httpTimeLimit", "httpVersion", "includeHeaders", "mtuMeasurements", "networkMeasurements", "numPathTraces", "oAuth", "password", "pathTraceMode", "probeMode", "protocol", "sslVersion", "sslVersionId", "url", "useNtlm", "userAgent", "username", "verifyCertificate", "allowUnsafeLegacyRenegotiation", "followRedirects", "fixedPacketRate", "overrideAgentProxy", "overrideProxyId", "collectProxyNetworkData", "emulatedDeviceId", "targetTime", "timeLimit", "transactionScript", "blockDomains", "disableScreenshot", "allowMicAndCamera", "allowGeolocation", "browserLanguage", "chromeOptions", "chromePolicies", "pageLoadingStrategy", "randomizedStartTime", "identifyAgentTrafficWithUserAgent", "subinterval", "bgpMeasurements", "usePublicBgp"] + __properties: ClassVar[List[str]] = ["interval", "alertsEnabled", "enabled", "createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "authType", "agentInterfaces", "bandwidthMeasurements", "clientCertificate", "contentRegex", "customHeaders", "desiredStatusCode", "distributedTracing", "downloadLimit", "dnsOverride", "httpTargetTime", "httpTimeLimit", "httpVersion", "includeHeaders", "mtuMeasurements", "networkMeasurements", "numPathTraces", "oAuth", "password", "pathTraceMode", "probeMode", "protocol", "sslVersion", "sslVersionId", "url", "useNtlm", "userAgent", "username", "verifyCertificate", "allowUnsafeLegacyRenegotiation", "followRedirects", "fixedPacketRate", "overrideAgentProxy", "overrideProxyId", "collectProxyNetworkData", "vaultCredentials", "emulatedDeviceId", "targetTime", "timeLimit", "transactionScript", "blockDomains", "disableScreenshot", "allowMicAndCamera", "allowGeolocation", "browserLanguage", "chromeOptions", "chromePolicies", "pageLoadingStrategy", "randomizedStartTime", "identifyAgentTrafficWithUserAgent", "subinterval", "bgpMeasurements", "usePublicBgp"] model_config = ConfigDict( populate_by_name=True, @@ -177,6 +179,13 @@ class UnexpandedWebTransactionTest(BaseModel): # override the default output from pydantic by calling `to_dict()` of o_auth if self.o_auth: _dict['oAuth'] = self.o_auth.to_dict() + # override the default output from pydantic by calling `to_dict()` of each item in vault_credentials (list) + _items = [] + if self.vault_credentials: + for _item in self.vault_credentials: + if _item: + _items.append(_item.to_dict()) + _dict['vaultCredentials'] = _items return _dict @classmethod @@ -238,6 +247,7 @@ class UnexpandedWebTransactionTest(BaseModel): "overrideAgentProxy": obj.get("overrideAgentProxy") if obj.get("overrideAgentProxy") is not None else False, "overrideProxyId": obj.get("overrideProxyId"), "collectProxyNetworkData": obj.get("collectProxyNetworkData") if obj.get("collectProxyNetworkData") is not None else False, + "vaultCredentials": [TestVaultCredential.from_dict(_item) for _item in obj["vaultCredentials"]] if obj.get("vaultCredentials") is not None else None, "emulatedDeviceId": obj.get("emulatedDeviceId"), "targetTime": obj.get("targetTime") if obj.get("targetTime") is not None else 10, "timeLimit": obj.get("timeLimit") if obj.get("timeLimit") is not None else 30, diff --git a/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/update_bgp_test_request.py b/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/update_bgp_test_request.py index d7bc9e9e..62f235e1 100644 --- a/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/update_bgp_test_request.py +++ b/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/update_bgp_test_request.py @@ -38,16 +38,16 @@ class UpdateBgpTestRequest(BaseModel): test_name: Optional[StrictStr] = Field(default=None, description="The name of the test. Test name must be unique.", alias="testName") type: Optional[StrictStr] = None links: Optional[TestLinks] = Field(default=None, alias="_links") - labels: Optional[List[StrictStr]] = Field(default=None, description="Contains list of test label IDs (get `labelId` from `/labels` endpoint)") - shared_with_accounts: Optional[List[StrictStr]] = Field(default=None, description="Contains list of account group IDs. Test is shared with the listed account groups (get `aid` from `/account-groups` endpoint)", alias="sharedWithAccounts") enabled: Optional[StrictBool] = Field(default=True, description="Test is enabled.") - monitors: Optional[List[StrictStr]] = Field(default=None, description="Contains list of BGP monitor IDs (get `monitorId` from `/monitors` endpoint)") include_covered_prefixes: Optional[StrictBool] = Field(default=None, description="Indicate if queries for subprefixes detected under this prefix should included.", alias="includeCoveredPrefixes") use_public_bgp: Optional[StrictBool] = Field(default=True, description="Indicate if all available public BGP monitors should be used, when ommited defaults to `bgpMeasurements` value.", alias="usePublicBgp") alerts_enabled: Optional[StrictBool] = Field(default=None, description="Indicates if alerts are enabled.", alias="alertsEnabled") - alert_rules: Optional[List[StrictStr]] = Field(default=None, description="List of alert rules IDs to apply to the test (get `ruleId` from `/alerts/rules` endpoint. If `alertsEnabled` is set to `true` and `alertRules` is not included on test creation or update, applicable user default alert rules will be used)", alias="alertRules") + labels: Optional[List[StrictStr]] = Field(default=None, description="Contains list of test label IDs (get `labelId` from `/labels` endpoint)") tags: Optional[List[StrictStr]] = Field(default=None, description="Contains list of test tag IDs (get `id` from `/tags` endpoint).") - __properties: ClassVar[List[str]] = ["createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "sharedWithAccounts", "enabled", "monitors", "includeCoveredPrefixes", "usePublicBgp", "alertsEnabled", "alertRules", "tags"] + shared_with_accounts: Optional[List[StrictStr]] = Field(default=None, description="Contains list of account group IDs. Test is shared with the listed account groups (get `aid` from `/account-groups` endpoint)", alias="sharedWithAccounts") + alert_rules: Optional[List[StrictStr]] = Field(default=None, description="List of alert rules IDs to apply to the test (get `ruleId` from `/alerts/rules` endpoint. If `alertsEnabled` is set to `true` and `alertRules` is not included on test creation or update, applicable user default alert rules will be used)", alias="alertRules") + monitors: Optional[List[StrictStr]] = Field(default=None, description="Contains list of BGP monitor IDs (get `monitorId` from `/monitors` endpoint)") + __properties: ClassVar[List[str]] = ["createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "enabled", "includeCoveredPrefixes", "usePublicBgp", "alertsEnabled", "labels", "tags", "sharedWithAccounts", "alertRules", "monitors"] model_config = ConfigDict( populate_by_name=True, @@ -131,15 +131,15 @@ class UpdateBgpTestRequest(BaseModel): "testName": obj.get("testName"), "type": obj.get("type"), "_links": TestLinks.from_dict(obj["_links"]) if obj.get("_links") is not None else None, - "labels": obj.get("labels"), - "sharedWithAccounts": obj.get("sharedWithAccounts"), "enabled": obj.get("enabled") if obj.get("enabled") is not None else True, - "monitors": obj.get("monitors"), "includeCoveredPrefixes": obj.get("includeCoveredPrefixes"), "usePublicBgp": obj.get("usePublicBgp") if obj.get("usePublicBgp") is not None else True, "alertsEnabled": obj.get("alertsEnabled"), + "labels": obj.get("labels"), + "tags": obj.get("tags"), + "sharedWithAccounts": obj.get("sharedWithAccounts"), "alertRules": obj.get("alertRules"), - "tags": obj.get("tags") + "monitors": obj.get("monitors") }) return _obj diff --git a/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/voice_instant_test.py b/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/voice_instant_test.py index 56c490d9..8cfcf795 100644 --- a/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/voice_instant_test.py +++ b/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/voice_instant_test.py @@ -24,6 +24,7 @@ from thousandeyes_sdk.tests.models.shared_with_account import SharedWithAccount from thousandeyes_sdk.tests.models.test_dscp_id import TestDscpId from thousandeyes_sdk.tests.models.test_label import TestLabel from thousandeyes_sdk.tests.models.test_links import TestLinks +from thousandeyes_sdk.tests.models.test_tag import TestTag from typing import Optional, Set from typing_extensions import Self @@ -43,9 +44,10 @@ class VoiceInstantTest(BaseModel): type: Optional[StrictStr] = None links: Optional[TestLinks] = Field(default=None, alias="_links") labels: Optional[List[TestLabel]] = Field(default=None, description="Labels to which the test is assigned. This field is not returned for Instant Tests.") + tags: Optional[List[TestTag]] = Field(default=None, description="Tags assigned to the test. Returned only when `expand=tag` is specified. This field is not returned for Instant Tests. For more information, see `/tags`.") shared_with_accounts: Optional[List[SharedWithAccount]] = Field(default=None, alias="sharedWithAccounts") codec: Optional[StrictStr] = Field(default=None, description="Codec label") - codec_id: Optional[StrictStr] = Field(default=None, description="Coded ID, [see the list of acceptable values](https://docs.thousandeyes.com/product-documentation/internet-and-wan-monitoring/tests/working-with-test-settings#rtp-stream-advanced-settings-tab)", alias="codecId") + codec_id: Optional[StrictStr] = Field(default=None, description="Codec identifier for the RTP stream. Valid values: * `0`: G.711 @ 64 Kbps * `1`: G.722.1 @ 24 Kbps (WB) * `2`: G.722.1 @ 32 Kbps (WB) * `3`: G.726 @ 32 Kbps * `4`: G.723.1 @ 6.4 Kbps * `5`: G.729a @ 8 Kbps * `6`: RTAudio @ 45 Kbps (WB) * `7`: RTAudio @ 27.8 Kbps * `8`: SILK @ 36 Kbps (WB) * `9`: G.722 @ 64 Kbps (WB) ", alias="codecId") dscp: Optional[StrictStr] = Field(default=None, description="DSCP label.") dscp_id: Optional[TestDscpId] = Field(default=None, alias="dscpId") duration: Optional[Annotated[int, Field(le=30, strict=True, ge=5)]] = Field(default=5, description="Duration of the test in seconds.") @@ -54,7 +56,7 @@ class VoiceInstantTest(BaseModel): port: Optional[Annotated[int, Field(le=65535, strict=True, ge=1024)]] = Field(default=None, description="Port number for the chosen protocol.") randomized_start_time: Optional[StrictBool] = Field(default=False, description="Indicates whether agents should randomize the start time in each test round.", alias="randomizedStartTime") target_agent_id: StrictStr = Field(description="Agent ID of the target agent for the test.", alias="targetAgentId") - __properties: ClassVar[List[str]] = ["createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "sharedWithAccounts", "codec", "codecId", "dscp", "dscpId", "duration", "jitterBuffer", "numPathTraces", "port", "randomizedStartTime", "targetAgentId"] + __properties: ClassVar[List[str]] = ["createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "tags", "sharedWithAccounts", "codec", "codecId", "dscp", "dscpId", "duration", "jitterBuffer", "numPathTraces", "port", "randomizedStartTime", "targetAgentId"] model_config = ConfigDict( populate_by_name=True, @@ -99,6 +101,7 @@ class VoiceInstantTest(BaseModel): * 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([ "created_by", @@ -110,6 +113,7 @@ class VoiceInstantTest(BaseModel): "test_id", "type", "labels", + "tags", "shared_with_accounts", "codec", "dscp", @@ -130,6 +134,13 @@ class VoiceInstantTest(BaseModel): if _item: _items.append(_item.to_dict()) _dict['labels'] = _items + # override the default output from pydantic by calling `to_dict()` of each item in tags (list) + _items = [] + if self.tags: + for _item in self.tags: + if _item: + _items.append(_item.to_dict()) + _dict['tags'] = _items # override the default output from pydantic by calling `to_dict()` of each item in shared_with_accounts (list) _items = [] if self.shared_with_accounts: @@ -161,6 +172,7 @@ class VoiceInstantTest(BaseModel): "type": obj.get("type"), "_links": TestLinks.from_dict(obj["_links"]) if obj.get("_links") is not None else None, "labels": [TestLabel.from_dict(_item) for _item in obj["labels"]] if obj.get("labels") is not None else None, + "tags": [TestTag.from_dict(_item) for _item in obj["tags"]] if obj.get("tags") is not None else None, "sharedWithAccounts": [SharedWithAccount.from_dict(_item) for _item in obj["sharedWithAccounts"]] if obj.get("sharedWithAccounts") is not None else None, "codec": obj.get("codec"), "codecId": obj.get("codecId"), diff --git a/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/voice_properties.py b/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/voice_properties.py index d9d1f62b..65fceeb7 100644 --- a/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/voice_properties.py +++ b/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/voice_properties.py @@ -28,7 +28,7 @@ class VoiceProperties(BaseModel): VoiceProperties """ # noqa: E501 codec: Optional[StrictStr] = Field(default=None, description="Codec label") - codec_id: Optional[StrictStr] = Field(default=None, description="Coded ID, [see the list of acceptable values](https://docs.thousandeyes.com/product-documentation/internet-and-wan-monitoring/tests/working-with-test-settings#rtp-stream-advanced-settings-tab)", alias="codecId") + codec_id: Optional[StrictStr] = Field(default=None, description="Codec identifier for the RTP stream. Valid values: * `0`: G.711 @ 64 Kbps * `1`: G.722.1 @ 24 Kbps (WB) * `2`: G.722.1 @ 32 Kbps (WB) * `3`: G.726 @ 32 Kbps * `4`: G.723.1 @ 6.4 Kbps * `5`: G.729a @ 8 Kbps * `6`: RTAudio @ 45 Kbps (WB) * `7`: RTAudio @ 27.8 Kbps * `8`: SILK @ 36 Kbps (WB) * `9`: G.722 @ 64 Kbps (WB) ", alias="codecId") dscp: Optional[StrictStr] = Field(default=None, description="DSCP label.") dscp_id: Optional[TestDscpId] = Field(default=None, alias="dscpId") duration: Optional[Annotated[int, Field(le=30, strict=True, ge=5)]] = Field(default=5, description="Duration of the test in seconds.") diff --git a/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/voice_test.py b/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/voice_test.py index d2c7b222..8b4f0649 100644 --- a/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/voice_test.py +++ b/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/voice_test.py @@ -27,6 +27,7 @@ from thousandeyes_sdk.tests.models.test_dscp_id import TestDscpId from thousandeyes_sdk.tests.models.test_interval import TestInterval from thousandeyes_sdk.tests.models.test_label import TestLabel from thousandeyes_sdk.tests.models.test_links import TestLinks +from thousandeyes_sdk.tests.models.test_tag import TestTag from typing import Optional, Set from typing_extensions import Self @@ -50,9 +51,10 @@ class VoiceTest(BaseModel): type: Optional[StrictStr] = None links: Optional[TestLinks] = Field(default=None, alias="_links") labels: Optional[List[TestLabel]] = Field(default=None, description="Labels to which the test is assigned. This field is not returned for Instant Tests.") + tags: Optional[List[TestTag]] = Field(default=None, description="Tags assigned to the test. Returned only when `expand=tag` is specified. This field is not returned for Instant Tests. For more information, see `/tags`.") shared_with_accounts: Optional[List[SharedWithAccount]] = Field(default=None, alias="sharedWithAccounts") codec: Optional[StrictStr] = Field(default=None, description="Codec label") - codec_id: Optional[StrictStr] = Field(default=None, description="Coded ID, [see the list of acceptable values](https://docs.thousandeyes.com/product-documentation/internet-and-wan-monitoring/tests/working-with-test-settings#rtp-stream-advanced-settings-tab)", alias="codecId") + codec_id: Optional[StrictStr] = Field(default=None, description="Codec identifier for the RTP stream. Valid values: * `0`: G.711 @ 64 Kbps * `1`: G.722.1 @ 24 Kbps (WB) * `2`: G.722.1 @ 32 Kbps (WB) * `3`: G.726 @ 32 Kbps * `4`: G.723.1 @ 6.4 Kbps * `5`: G.729a @ 8 Kbps * `6`: RTAudio @ 45 Kbps (WB) * `7`: RTAudio @ 27.8 Kbps * `8`: SILK @ 36 Kbps (WB) * `9`: G.722 @ 64 Kbps (WB) ", alias="codecId") dscp: Optional[StrictStr] = Field(default=None, description="DSCP label.") dscp_id: Optional[TestDscpId] = Field(default=None, alias="dscpId") duration: Optional[Annotated[int, Field(le=30, strict=True, ge=5)]] = Field(default=5, description="Duration of the test in seconds.") @@ -64,7 +66,7 @@ class VoiceTest(BaseModel): bgp_measurements: Optional[StrictBool] = Field(default=True, description="Set to `true` to enable bgp measurements.", alias="bgpMeasurements") use_public_bgp: Optional[StrictBool] = Field(default=True, description="Indicate if all available public BGP monitors should be used, when ommited defaults to `bgpMeasurements` value.", alias="usePublicBgp") monitors: Optional[List[Monitor]] = Field(default=None, description="Contains list of enabled BGP monitors.") - __properties: ClassVar[List[str]] = ["interval", "alertsEnabled", "enabled", "alertRules", "createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "sharedWithAccounts", "codec", "codecId", "dscp", "dscpId", "duration", "jitterBuffer", "numPathTraces", "port", "randomizedStartTime", "targetAgentId", "bgpMeasurements", "usePublicBgp", "monitors"] + __properties: ClassVar[List[str]] = ["interval", "alertsEnabled", "enabled", "alertRules", "createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "tags", "sharedWithAccounts", "codec", "codecId", "dscp", "dscpId", "duration", "jitterBuffer", "numPathTraces", "port", "randomizedStartTime", "targetAgentId", "bgpMeasurements", "usePublicBgp", "monitors"] model_config = ConfigDict( populate_by_name=True, @@ -110,6 +112,7 @@ class VoiceTest(BaseModel): * 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([ "created_by", @@ -121,6 +124,7 @@ class VoiceTest(BaseModel): "test_id", "type", "labels", + "tags", "shared_with_accounts", "codec", "dscp", @@ -149,6 +153,13 @@ class VoiceTest(BaseModel): if _item: _items.append(_item.to_dict()) _dict['labels'] = _items + # override the default output from pydantic by calling `to_dict()` of each item in tags (list) + _items = [] + if self.tags: + for _item in self.tags: + if _item: + _items.append(_item.to_dict()) + _dict['tags'] = _items # override the default output from pydantic by calling `to_dict()` of each item in shared_with_accounts (list) _items = [] if self.shared_with_accounts: @@ -191,6 +202,7 @@ class VoiceTest(BaseModel): "type": obj.get("type"), "_links": TestLinks.from_dict(obj["_links"]) if obj.get("_links") is not None else None, "labels": [TestLabel.from_dict(_item) for _item in obj["labels"]] if obj.get("labels") is not None else None, + "tags": [TestTag.from_dict(_item) for _item in obj["tags"]] if obj.get("tags") is not None else None, "sharedWithAccounts": [SharedWithAccount.from_dict(_item) for _item in obj["sharedWithAccounts"]] if obj.get("sharedWithAccounts") is not None else None, "codec": obj.get("codec"), "codecId": obj.get("codecId"), diff --git a/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/voice_test_request.py b/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/voice_test_request.py index 80578728..81b3cf73 100644 --- a/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/voice_test_request.py +++ b/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/voice_test_request.py @@ -20,7 +20,6 @@ from datetime import datetime from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr from typing import Any, ClassVar, Dict, List, Optional from typing_extensions import Annotated -from thousandeyes_sdk.tests.models.monitor import Monitor from thousandeyes_sdk.tests.models.test_agent_request import TestAgentRequest from thousandeyes_sdk.tests.models.test_dscp_id import TestDscpId from thousandeyes_sdk.tests.models.test_interval import TestInterval @@ -35,7 +34,6 @@ class VoiceTestRequest(BaseModel): interval: TestInterval alerts_enabled: Optional[StrictBool] = Field(default=None, description="Indicates if alerts are enabled.", alias="alertsEnabled") enabled: Optional[StrictBool] = Field(default=True, description="Test is enabled.") - alert_rules: Optional[List[StrictStr]] = Field(default=None, description="List of alert rules IDs to apply to the test (get `ruleId` from `/alerts/rules` endpoint. If `alertsEnabled` is set to `true` and `alertRules` is not included on test creation or update, applicable user default alert rules will be used)", alias="alertRules") created_by: Optional[StrictStr] = Field(default=None, description="User that created the test.", alias="createdBy") created_date: Optional[datetime] = Field(default=None, description="UTC created date (ISO date-time format).", alias="createdDate") description: Optional[StrictStr] = Field(default=None, description="A description of the test.") @@ -47,10 +45,8 @@ class VoiceTestRequest(BaseModel): test_name: Optional[StrictStr] = Field(default=None, description="The name of the test. Test name must be unique.", alias="testName") type: Optional[StrictStr] = None links: Optional[TestLinks] = Field(default=None, alias="_links") - labels: Optional[List[StrictStr]] = Field(default=None, description="Contains list of test label IDs (get `labelId` from `/labels` endpoint)") - shared_with_accounts: Optional[List[StrictStr]] = Field(default=None, description="Contains list of account group IDs. Test is shared with the listed account groups (get `aid` from `/account-groups` endpoint)", alias="sharedWithAccounts") codec: Optional[StrictStr] = Field(default=None, description="Codec label") - codec_id: Optional[StrictStr] = Field(default=None, description="Coded ID, [see the list of acceptable values](https://docs.thousandeyes.com/product-documentation/internet-and-wan-monitoring/tests/working-with-test-settings#rtp-stream-advanced-settings-tab)", alias="codecId") + codec_id: Optional[StrictStr] = Field(default=None, description="Codec identifier for the RTP stream. Valid values: * `0`: G.711 @ 64 Kbps * `1`: G.722.1 @ 24 Kbps (WB) * `2`: G.722.1 @ 32 Kbps (WB) * `3`: G.726 @ 32 Kbps * `4`: G.723.1 @ 6.4 Kbps * `5`: G.729a @ 8 Kbps * `6`: RTAudio @ 45 Kbps (WB) * `7`: RTAudio @ 27.8 Kbps * `8`: SILK @ 36 Kbps (WB) * `9`: G.722 @ 64 Kbps (WB) ", alias="codecId") dscp: Optional[StrictStr] = Field(default=None, description="DSCP label.") dscp_id: Optional[TestDscpId] = Field(default=None, alias="dscpId") duration: Optional[Annotated[int, Field(le=30, strict=True, ge=5)]] = Field(default=5, description="Duration of the test in seconds.") @@ -61,10 +57,13 @@ class VoiceTestRequest(BaseModel): target_agent_id: StrictStr = Field(description="Agent ID of the target agent for the test.", alias="targetAgentId") bgp_measurements: Optional[StrictBool] = Field(default=True, description="Set to `true` to enable bgp measurements.", alias="bgpMeasurements") use_public_bgp: Optional[StrictBool] = Field(default=True, description="Indicate if all available public BGP monitors should be used, when ommited defaults to `bgpMeasurements` value.", alias="usePublicBgp") - monitors: Optional[List[Monitor]] = Field(default=None, description="Contains list of enabled BGP monitors.") + labels: Optional[List[StrictStr]] = Field(default=None, description="Contains list of test label IDs (get `labelId` from `/labels` endpoint)") tags: Optional[List[StrictStr]] = Field(default=None, description="Contains list of test tag IDs (get `id` from `/tags` endpoint).") + shared_with_accounts: Optional[List[StrictStr]] = Field(default=None, description="Contains list of account group IDs. Test is shared with the listed account groups (get `aid` from `/account-groups` endpoint)", alias="sharedWithAccounts") + alert_rules: Optional[List[StrictStr]] = Field(default=None, description="List of alert rules IDs to apply to the test (get `ruleId` from `/alerts/rules` endpoint. If `alertsEnabled` is set to `true` and `alertRules` is not included on test creation or update, applicable user default alert rules will be used)", alias="alertRules") agents: List[TestAgentRequest] = Field(description="Contains list of Agent IDs (get `agentId` from `/agents` endpoint).") - __properties: ClassVar[List[str]] = ["interval", "alertsEnabled", "enabled", "alertRules", "createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "sharedWithAccounts", "codec", "codecId", "dscp", "dscpId", "duration", "jitterBuffer", "numPathTraces", "port", "randomizedStartTime", "targetAgentId", "bgpMeasurements", "usePublicBgp", "monitors", "tags", "agents"] + monitors: Optional[List[StrictStr]] = Field(default=None, description="Contains list of BGP monitor IDs (get `monitorId` from `/monitors` endpoint)") + __properties: ClassVar[List[str]] = ["interval", "alertsEnabled", "enabled", "createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "codec", "codecId", "dscp", "dscpId", "duration", "jitterBuffer", "numPathTraces", "port", "randomizedStartTime", "targetAgentId", "bgpMeasurements", "usePublicBgp", "labels", "tags", "sharedWithAccounts", "alertRules", "agents", "monitors"] model_config = ConfigDict( populate_by_name=True, @@ -107,7 +106,6 @@ class VoiceTestRequest(BaseModel): * 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([ "created_by", @@ -120,7 +118,6 @@ class VoiceTestRequest(BaseModel): "type", "codec", "dscp", - "monitors", ]) _dict = self.model_dump( @@ -131,13 +128,6 @@ class VoiceTestRequest(BaseModel): # override the default output from pydantic by calling `to_dict()` of links if self.links: _dict['_links'] = self.links.to_dict() - # override the default output from pydantic by calling `to_dict()` of each item in monitors (list) - _items = [] - if self.monitors: - for _item in self.monitors: - if _item: - _items.append(_item.to_dict()) - _dict['monitors'] = _items # override the default output from pydantic by calling `to_dict()` of each item in agents (list) _items = [] if self.agents: @@ -160,7 +150,6 @@ class VoiceTestRequest(BaseModel): "interval": obj.get("interval"), "alertsEnabled": obj.get("alertsEnabled"), "enabled": obj.get("enabled") if obj.get("enabled") is not None else True, - "alertRules": obj.get("alertRules"), "createdBy": obj.get("createdBy"), "createdDate": obj.get("createdDate"), "description": obj.get("description"), @@ -172,8 +161,6 @@ class VoiceTestRequest(BaseModel): "testName": obj.get("testName"), "type": obj.get("type"), "_links": TestLinks.from_dict(obj["_links"]) if obj.get("_links") is not None else None, - "labels": obj.get("labels"), - "sharedWithAccounts": obj.get("sharedWithAccounts"), "codec": obj.get("codec"), "codecId": obj.get("codecId"), "dscp": obj.get("dscp"), @@ -186,9 +173,12 @@ class VoiceTestRequest(BaseModel): "targetAgentId": obj.get("targetAgentId"), "bgpMeasurements": obj.get("bgpMeasurements") if obj.get("bgpMeasurements") is not None else True, "usePublicBgp": obj.get("usePublicBgp") if obj.get("usePublicBgp") is not None else True, - "monitors": [Monitor.from_dict(_item) for _item in obj["monitors"]] if obj.get("monitors") is not None else None, + "labels": obj.get("labels"), "tags": obj.get("tags"), - "agents": [TestAgentRequest.from_dict(_item) for _item in obj["agents"]] if obj.get("agents") is not None else None + "sharedWithAccounts": obj.get("sharedWithAccounts"), + "alertRules": obj.get("alertRules"), + "agents": [TestAgentRequest.from_dict(_item) for _item in obj["agents"]] if obj.get("agents") is not None else None, + "monitors": obj.get("monitors") }) return _obj diff --git a/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/voice_test_response.py b/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/voice_test_response.py index 7abfca38..79e142d8 100644 --- a/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/voice_test_response.py +++ b/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/voice_test_response.py @@ -28,6 +28,7 @@ from thousandeyes_sdk.tests.models.test_dscp_id import TestDscpId from thousandeyes_sdk.tests.models.test_interval import TestInterval from thousandeyes_sdk.tests.models.test_label import TestLabel from thousandeyes_sdk.tests.models.test_links import TestLinks +from thousandeyes_sdk.tests.models.test_tag import TestTag from typing import Optional, Set from typing_extensions import Self @@ -51,9 +52,10 @@ class VoiceTestResponse(BaseModel): type: Optional[StrictStr] = None links: Optional[TestLinks] = Field(default=None, alias="_links") labels: Optional[List[TestLabel]] = Field(default=None, description="Labels to which the test is assigned. This field is not returned for Instant Tests.") + tags: Optional[List[TestTag]] = Field(default=None, description="Tags assigned to the test. Returned only when `expand=tag` is specified. This field is not returned for Instant Tests. For more information, see `/tags`.") shared_with_accounts: Optional[List[SharedWithAccount]] = Field(default=None, alias="sharedWithAccounts") codec: Optional[StrictStr] = Field(default=None, description="Codec label") - codec_id: Optional[StrictStr] = Field(default=None, description="Coded ID, [see the list of acceptable values](https://docs.thousandeyes.com/product-documentation/internet-and-wan-monitoring/tests/working-with-test-settings#rtp-stream-advanced-settings-tab)", alias="codecId") + codec_id: Optional[StrictStr] = Field(default=None, description="Codec identifier for the RTP stream. Valid values: * `0`: G.711 @ 64 Kbps * `1`: G.722.1 @ 24 Kbps (WB) * `2`: G.722.1 @ 32 Kbps (WB) * `3`: G.726 @ 32 Kbps * `4`: G.723.1 @ 6.4 Kbps * `5`: G.729a @ 8 Kbps * `6`: RTAudio @ 45 Kbps (WB) * `7`: RTAudio @ 27.8 Kbps * `8`: SILK @ 36 Kbps (WB) * `9`: G.722 @ 64 Kbps (WB) ", alias="codecId") dscp: Optional[StrictStr] = Field(default=None, description="DSCP label.") dscp_id: Optional[TestDscpId] = Field(default=None, alias="dscpId") duration: Optional[Annotated[int, Field(le=30, strict=True, ge=5)]] = Field(default=5, description="Duration of the test in seconds.") @@ -66,7 +68,7 @@ class VoiceTestResponse(BaseModel): use_public_bgp: Optional[StrictBool] = Field(default=True, description="Indicate if all available public BGP monitors should be used, when ommited defaults to `bgpMeasurements` value.", alias="usePublicBgp") monitors: Optional[List[Monitor]] = Field(default=None, description="Contains list of enabled BGP monitors.") agents: Optional[List[AgentResponse]] = Field(default=None, description="Contains list of agents.") - __properties: ClassVar[List[str]] = ["interval", "alertsEnabled", "enabled", "alertRules", "createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "sharedWithAccounts", "codec", "codecId", "dscp", "dscpId", "duration", "jitterBuffer", "numPathTraces", "port", "randomizedStartTime", "targetAgentId", "bgpMeasurements", "usePublicBgp", "monitors", "agents"] + __properties: ClassVar[List[str]] = ["interval", "alertsEnabled", "enabled", "alertRules", "createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "tags", "sharedWithAccounts", "codec", "codecId", "dscp", "dscpId", "duration", "jitterBuffer", "numPathTraces", "port", "randomizedStartTime", "targetAgentId", "bgpMeasurements", "usePublicBgp", "monitors", "agents"] model_config = ConfigDict( populate_by_name=True, @@ -112,6 +114,7 @@ class VoiceTestResponse(BaseModel): * 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([ "created_by", @@ -123,6 +126,7 @@ class VoiceTestResponse(BaseModel): "test_id", "type", "labels", + "tags", "shared_with_accounts", "codec", "dscp", @@ -151,6 +155,13 @@ class VoiceTestResponse(BaseModel): if _item: _items.append(_item.to_dict()) _dict['labels'] = _items + # override the default output from pydantic by calling `to_dict()` of each item in tags (list) + _items = [] + if self.tags: + for _item in self.tags: + if _item: + _items.append(_item.to_dict()) + _dict['tags'] = _items # override the default output from pydantic by calling `to_dict()` of each item in shared_with_accounts (list) _items = [] if self.shared_with_accounts: @@ -200,6 +211,7 @@ class VoiceTestResponse(BaseModel): "type": obj.get("type"), "_links": TestLinks.from_dict(obj["_links"]) if obj.get("_links") is not None else None, "labels": [TestLabel.from_dict(_item) for _item in obj["labels"]] if obj.get("labels") is not None else None, + "tags": [TestTag.from_dict(_item) for _item in obj["tags"]] if obj.get("tags") is not None else None, "sharedWithAccounts": [SharedWithAccount.from_dict(_item) for _item in obj["sharedWithAccounts"]] if obj.get("sharedWithAccounts") is not None else None, "codec": obj.get("codec"), "codecId": obj.get("codecId"), diff --git a/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/web_transaction_instant_test.py b/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/web_transaction_instant_test.py index ee4958f6..cd69e26b 100644 --- a/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/web_transaction_instant_test.py +++ b/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/web_transaction_instant_test.py @@ -32,6 +32,8 @@ from thousandeyes_sdk.tests.models.test_path_trace_mode import TestPathTraceMode from thousandeyes_sdk.tests.models.test_probe_mode import TestProbeMode from thousandeyes_sdk.tests.models.test_protocol import TestProtocol from thousandeyes_sdk.tests.models.test_ssl_version_id import TestSslVersionId +from thousandeyes_sdk.tests.models.test_tag import TestTag +from thousandeyes_sdk.tests.models.test_vault_credential import TestVaultCredential from typing import Optional, Set from typing_extensions import Self @@ -51,6 +53,7 @@ class WebTransactionInstantTest(BaseModel): type: Optional[StrictStr] = None links: Optional[TestLinks] = Field(default=None, alias="_links") labels: Optional[List[TestLabel]] = Field(default=None, description="Labels to which the test is assigned. This field is not returned for Instant Tests.") + tags: Optional[List[TestTag]] = Field(default=None, description="Tags assigned to the test. Returned only when `expand=tag` is specified. This field is not returned for Instant Tests. For more information, see `/tags`.") shared_with_accounts: Optional[List[SharedWithAccount]] = Field(default=None, alias="sharedWithAccounts") auth_type: Optional[TestAuthType] = Field(default=None, alias="authType") agent_interfaces: Optional[AgentInterfaces] = Field(default=None, alias="agentInterfaces") @@ -87,6 +90,7 @@ class WebTransactionInstantTest(BaseModel): override_agent_proxy: Optional[StrictBool] = Field(default=False, description="Flag indicating if a proxy other than the default should be used. To override the default proxy for agents, set to `true` and specify a value for `overrideProxyId`.", alias="overrideAgentProxy") override_proxy_id: Optional[StrictStr] = Field(default=None, description="ID of the proxy to be used if the default proxy is overridden.", alias="overrideProxyId") collect_proxy_network_data: Optional[StrictBool] = Field(default=False, description="Indicates whether network data to the proxy should be collected.", alias="collectProxyNetworkData") + vault_credentials: Optional[List[TestVaultCredential]] = Field(default=None, description="List of credential IDs that are stored in an external vault.", alias="vaultCredentials") emulated_device_id: Optional[StrictStr] = Field(default=None, description="ID of the emulated device, if specified when the test was created.", alias="emulatedDeviceId") target_time: Optional[Annotated[int, Field(le=180, strict=True, ge=1)]] = Field(default=10, description="Target completion time, in seconds. Defaults to 10. Cannot exceed the `timeLimit` value.", alias="targetTime") time_limit: Optional[Annotated[int, Field(le=180, strict=True, ge=5)]] = Field(default=30, description="Time limit for transaction in seconds.", alias="timeLimit") @@ -102,7 +106,7 @@ class WebTransactionInstantTest(BaseModel): randomized_start_time: Optional[StrictBool] = Field(default=False, description="Indicates whether agents should randomize the start time in each test round.", alias="randomizedStartTime") identify_agent_traffic_with_user_agent: Optional[StrictBool] = Field(default=False, description="Determines how agent traffic is identified: * `false`: Adds the `x-thousandeyes-agent: yes` header. * `true`: Appends `(ThousandEyes Agent)` to the `user-agent` header. For more information, see [Notes on Agent ID Strategy](https://docs.thousandeyes.com/product-documentation/browser-synthetics/test-settings-page-load-transaction#notes-on-agent-id-strategy). ", alias="identifyAgentTrafficWithUserAgent") credentials: Optional[List[StrictStr]] = Field(default=None, description="Contains a list of credential IDs (get `credentialId` from `/credentials` endpoint).") - __properties: ClassVar[List[str]] = ["createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "sharedWithAccounts", "authType", "agentInterfaces", "bandwidthMeasurements", "clientCertificate", "contentRegex", "customHeaders", "desiredStatusCode", "distributedTracing", "downloadLimit", "dnsOverride", "httpTargetTime", "httpTimeLimit", "httpVersion", "includeHeaders", "mtuMeasurements", "networkMeasurements", "numPathTraces", "oAuth", "password", "pathTraceMode", "probeMode", "protocol", "sslVersion", "sslVersionId", "url", "useNtlm", "userAgent", "username", "verifyCertificate", "allowUnsafeLegacyRenegotiation", "followRedirects", "fixedPacketRate", "overrideAgentProxy", "overrideProxyId", "collectProxyNetworkData", "emulatedDeviceId", "targetTime", "timeLimit", "transactionScript", "blockDomains", "disableScreenshot", "allowMicAndCamera", "allowGeolocation", "browserLanguage", "chromeOptions", "chromePolicies", "pageLoadingStrategy", "randomizedStartTime", "identifyAgentTrafficWithUserAgent", "credentials"] + __properties: ClassVar[List[str]] = ["createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "tags", "sharedWithAccounts", "authType", "agentInterfaces", "bandwidthMeasurements", "clientCertificate", "contentRegex", "customHeaders", "desiredStatusCode", "distributedTracing", "downloadLimit", "dnsOverride", "httpTargetTime", "httpTimeLimit", "httpVersion", "includeHeaders", "mtuMeasurements", "networkMeasurements", "numPathTraces", "oAuth", "password", "pathTraceMode", "probeMode", "protocol", "sslVersion", "sslVersionId", "url", "useNtlm", "userAgent", "username", "verifyCertificate", "allowUnsafeLegacyRenegotiation", "followRedirects", "fixedPacketRate", "overrideAgentProxy", "overrideProxyId", "collectProxyNetworkData", "vaultCredentials", "emulatedDeviceId", "targetTime", "timeLimit", "transactionScript", "blockDomains", "disableScreenshot", "allowMicAndCamera", "allowGeolocation", "browserLanguage", "chromeOptions", "chromePolicies", "pageLoadingStrategy", "randomizedStartTime", "identifyAgentTrafficWithUserAgent", "credentials"] model_config = ConfigDict( populate_by_name=True, @@ -146,6 +150,7 @@ class WebTransactionInstantTest(BaseModel): * 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([ "created_by", @@ -157,6 +162,7 @@ class WebTransactionInstantTest(BaseModel): "test_id", "type", "labels", + "tags", "shared_with_accounts", "ssl_version", ]) @@ -176,6 +182,13 @@ class WebTransactionInstantTest(BaseModel): if _item: _items.append(_item.to_dict()) _dict['labels'] = _items + # override the default output from pydantic by calling `to_dict()` of each item in tags (list) + _items = [] + if self.tags: + for _item in self.tags: + if _item: + _items.append(_item.to_dict()) + _dict['tags'] = _items # override the default output from pydantic by calling `to_dict()` of each item in shared_with_accounts (list) _items = [] if self.shared_with_accounts: @@ -192,6 +205,13 @@ class WebTransactionInstantTest(BaseModel): # override the default output from pydantic by calling `to_dict()` of o_auth if self.o_auth: _dict['oAuth'] = self.o_auth.to_dict() + # override the default output from pydantic by calling `to_dict()` of each item in vault_credentials (list) + _items = [] + if self.vault_credentials: + for _item in self.vault_credentials: + if _item: + _items.append(_item.to_dict()) + _dict['vaultCredentials'] = _items return _dict @classmethod @@ -216,6 +236,7 @@ class WebTransactionInstantTest(BaseModel): "type": obj.get("type"), "_links": TestLinks.from_dict(obj["_links"]) if obj.get("_links") is not None else None, "labels": [TestLabel.from_dict(_item) for _item in obj["labels"]] if obj.get("labels") is not None else None, + "tags": [TestTag.from_dict(_item) for _item in obj["tags"]] if obj.get("tags") is not None else None, "sharedWithAccounts": [SharedWithAccount.from_dict(_item) for _item in obj["sharedWithAccounts"]] if obj.get("sharedWithAccounts") is not None else None, "authType": obj.get("authType"), "agentInterfaces": AgentInterfaces.from_dict(obj["agentInterfaces"]) if obj.get("agentInterfaces") is not None else None, @@ -252,6 +273,7 @@ class WebTransactionInstantTest(BaseModel): "overrideAgentProxy": obj.get("overrideAgentProxy") if obj.get("overrideAgentProxy") is not None else False, "overrideProxyId": obj.get("overrideProxyId"), "collectProxyNetworkData": obj.get("collectProxyNetworkData") if obj.get("collectProxyNetworkData") is not None else False, + "vaultCredentials": [TestVaultCredential.from_dict(_item) for _item in obj["vaultCredentials"]] if obj.get("vaultCredentials") is not None else None, "emulatedDeviceId": obj.get("emulatedDeviceId"), "targetTime": obj.get("targetTime") if obj.get("targetTime") is not None else 10, "timeLimit": obj.get("timeLimit") if obj.get("timeLimit") is not None else 30, diff --git a/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/web_transaction_properties.py b/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/web_transaction_properties.py index d4a2b29f..64b891f2 100644 --- a/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/web_transaction_properties.py +++ b/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/web_transaction_properties.py @@ -28,6 +28,7 @@ from thousandeyes_sdk.tests.models.test_path_trace_mode import TestPathTraceMode from thousandeyes_sdk.tests.models.test_probe_mode import TestProbeMode from thousandeyes_sdk.tests.models.test_protocol import TestProtocol from thousandeyes_sdk.tests.models.test_ssl_version_id import TestSslVersionId +from thousandeyes_sdk.tests.models.test_vault_credential import TestVaultCredential from typing import Optional, Set from typing_extensions import Self @@ -70,6 +71,7 @@ class WebTransactionProperties(BaseModel): override_agent_proxy: Optional[StrictBool] = Field(default=False, description="Flag indicating if a proxy other than the default should be used. To override the default proxy for agents, set to `true` and specify a value for `overrideProxyId`.", alias="overrideAgentProxy") override_proxy_id: Optional[StrictStr] = Field(default=None, description="ID of the proxy to be used if the default proxy is overridden.", alias="overrideProxyId") collect_proxy_network_data: Optional[StrictBool] = Field(default=False, description="Indicates whether network data to the proxy should be collected.", alias="collectProxyNetworkData") + vault_credentials: Optional[List[TestVaultCredential]] = Field(default=None, description="List of credential IDs that are stored in an external vault.", alias="vaultCredentials") emulated_device_id: Optional[StrictStr] = Field(default=None, description="ID of the emulated device, if specified when the test was created.", alias="emulatedDeviceId") target_time: Optional[Annotated[int, Field(le=180, strict=True, ge=1)]] = Field(default=10, description="Target completion time, in seconds. Defaults to 10. Cannot exceed the `timeLimit` value.", alias="targetTime") time_limit: Optional[Annotated[int, Field(le=180, strict=True, ge=5)]] = Field(default=30, description="Time limit for transaction in seconds.", alias="timeLimit") @@ -85,7 +87,7 @@ class WebTransactionProperties(BaseModel): randomized_start_time: Optional[StrictBool] = Field(default=False, description="Indicates whether agents should randomize the start time in each test round.", alias="randomizedStartTime") type: Optional[StrictStr] = None identify_agent_traffic_with_user_agent: Optional[StrictBool] = Field(default=False, description="Determines how agent traffic is identified: * `false`: Adds the `x-thousandeyes-agent: yes` header. * `true`: Appends `(ThousandEyes Agent)` to the `user-agent` header. For more information, see [Notes on Agent ID Strategy](https://docs.thousandeyes.com/product-documentation/browser-synthetics/test-settings-page-load-transaction#notes-on-agent-id-strategy). ", alias="identifyAgentTrafficWithUserAgent") - __properties: ClassVar[List[str]] = ["authType", "agentInterfaces", "bandwidthMeasurements", "clientCertificate", "contentRegex", "customHeaders", "desiredStatusCode", "distributedTracing", "downloadLimit", "dnsOverride", "httpTargetTime", "httpTimeLimit", "httpVersion", "includeHeaders", "mtuMeasurements", "networkMeasurements", "numPathTraces", "oAuth", "password", "pathTraceMode", "probeMode", "protocol", "sslVersion", "sslVersionId", "url", "useNtlm", "userAgent", "username", "verifyCertificate", "allowUnsafeLegacyRenegotiation", "followRedirects", "fixedPacketRate", "overrideAgentProxy", "overrideProxyId", "collectProxyNetworkData", "emulatedDeviceId", "targetTime", "timeLimit", "transactionScript", "blockDomains", "disableScreenshot", "allowMicAndCamera", "allowGeolocation", "browserLanguage", "chromeOptions", "chromePolicies", "pageLoadingStrategy", "randomizedStartTime", "type", "identifyAgentTrafficWithUserAgent"] + __properties: ClassVar[List[str]] = ["authType", "agentInterfaces", "bandwidthMeasurements", "clientCertificate", "contentRegex", "customHeaders", "desiredStatusCode", "distributedTracing", "downloadLimit", "dnsOverride", "httpTargetTime", "httpTimeLimit", "httpVersion", "includeHeaders", "mtuMeasurements", "networkMeasurements", "numPathTraces", "oAuth", "password", "pathTraceMode", "probeMode", "protocol", "sslVersion", "sslVersionId", "url", "useNtlm", "userAgent", "username", "verifyCertificate", "allowUnsafeLegacyRenegotiation", "followRedirects", "fixedPacketRate", "overrideAgentProxy", "overrideProxyId", "collectProxyNetworkData", "vaultCredentials", "emulatedDeviceId", "targetTime", "timeLimit", "transactionScript", "blockDomains", "disableScreenshot", "allowMicAndCamera", "allowGeolocation", "browserLanguage", "chromeOptions", "chromePolicies", "pageLoadingStrategy", "randomizedStartTime", "type", "identifyAgentTrafficWithUserAgent"] model_config = ConfigDict( populate_by_name=True, @@ -140,6 +142,13 @@ class WebTransactionProperties(BaseModel): # override the default output from pydantic by calling `to_dict()` of o_auth if self.o_auth: _dict['oAuth'] = self.o_auth.to_dict() + # override the default output from pydantic by calling `to_dict()` of each item in vault_credentials (list) + _items = [] + if self.vault_credentials: + for _item in self.vault_credentials: + if _item: + _items.append(_item.to_dict()) + _dict['vaultCredentials'] = _items return _dict @classmethod @@ -187,6 +196,7 @@ class WebTransactionProperties(BaseModel): "overrideAgentProxy": obj.get("overrideAgentProxy") if obj.get("overrideAgentProxy") is not None else False, "overrideProxyId": obj.get("overrideProxyId"), "collectProxyNetworkData": obj.get("collectProxyNetworkData") if obj.get("collectProxyNetworkData") is not None else False, + "vaultCredentials": [TestVaultCredential.from_dict(_item) for _item in obj["vaultCredentials"]] if obj.get("vaultCredentials") is not None else None, "emulatedDeviceId": obj.get("emulatedDeviceId"), "targetTime": obj.get("targetTime") if obj.get("targetTime") is not None else 10, "timeLimit": obj.get("timeLimit") if obj.get("timeLimit") is not None else 30, diff --git a/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/web_transaction_test.py b/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/web_transaction_test.py index a87bf0b5..967c8cca 100644 --- a/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/web_transaction_test.py +++ b/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/web_transaction_test.py @@ -36,6 +36,8 @@ from thousandeyes_sdk.tests.models.test_probe_mode import TestProbeMode from thousandeyes_sdk.tests.models.test_protocol import TestProtocol from thousandeyes_sdk.tests.models.test_ssl_version_id import TestSslVersionId from thousandeyes_sdk.tests.models.test_sub_interval import TestSubInterval +from thousandeyes_sdk.tests.models.test_tag import TestTag +from thousandeyes_sdk.tests.models.test_vault_credential import TestVaultCredential from typing import Optional, Set from typing_extensions import Self @@ -59,6 +61,7 @@ class WebTransactionTest(BaseModel): type: Optional[StrictStr] = None links: Optional[TestLinks] = Field(default=None, alias="_links") labels: Optional[List[TestLabel]] = Field(default=None, description="Labels to which the test is assigned. This field is not returned for Instant Tests.") + tags: Optional[List[TestTag]] = Field(default=None, description="Tags assigned to the test. Returned only when `expand=tag` is specified. This field is not returned for Instant Tests. For more information, see `/tags`.") shared_with_accounts: Optional[List[SharedWithAccount]] = Field(default=None, alias="sharedWithAccounts") auth_type: Optional[TestAuthType] = Field(default=None, alias="authType") agent_interfaces: Optional[AgentInterfaces] = Field(default=None, alias="agentInterfaces") @@ -95,6 +98,7 @@ class WebTransactionTest(BaseModel): override_agent_proxy: Optional[StrictBool] = Field(default=False, description="Flag indicating if a proxy other than the default should be used. To override the default proxy for agents, set to `true` and specify a value for `overrideProxyId`.", alias="overrideAgentProxy") override_proxy_id: Optional[StrictStr] = Field(default=None, description="ID of the proxy to be used if the default proxy is overridden.", alias="overrideProxyId") collect_proxy_network_data: Optional[StrictBool] = Field(default=False, description="Indicates whether network data to the proxy should be collected.", alias="collectProxyNetworkData") + vault_credentials: Optional[List[TestVaultCredential]] = Field(default=None, description="List of credential IDs that are stored in an external vault.", alias="vaultCredentials") emulated_device_id: Optional[StrictStr] = Field(default=None, description="ID of the emulated device, if specified when the test was created.", alias="emulatedDeviceId") target_time: Optional[Annotated[int, Field(le=180, strict=True, ge=1)]] = Field(default=10, description="Target completion time, in seconds. Defaults to 10. Cannot exceed the `timeLimit` value.", alias="targetTime") time_limit: Optional[Annotated[int, Field(le=180, strict=True, ge=5)]] = Field(default=30, description="Time limit for transaction in seconds.", alias="timeLimit") @@ -114,7 +118,7 @@ class WebTransactionTest(BaseModel): use_public_bgp: Optional[StrictBool] = Field(default=True, description="Indicate if all available public BGP monitors should be used, when ommited defaults to `bgpMeasurements` value.", alias="usePublicBgp") monitors: Optional[List[Monitor]] = Field(default=None, description="Contains list of enabled BGP monitors.") subinterval: Optional[TestSubInterval] = None - __properties: ClassVar[List[str]] = ["interval", "alertsEnabled", "enabled", "alertRules", "createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "sharedWithAccounts", "authType", "agentInterfaces", "bandwidthMeasurements", "clientCertificate", "contentRegex", "customHeaders", "desiredStatusCode", "distributedTracing", "downloadLimit", "dnsOverride", "httpTargetTime", "httpTimeLimit", "httpVersion", "includeHeaders", "mtuMeasurements", "networkMeasurements", "numPathTraces", "oAuth", "password", "pathTraceMode", "probeMode", "protocol", "sslVersion", "sslVersionId", "url", "useNtlm", "userAgent", "username", "verifyCertificate", "allowUnsafeLegacyRenegotiation", "followRedirects", "fixedPacketRate", "overrideAgentProxy", "overrideProxyId", "collectProxyNetworkData", "emulatedDeviceId", "targetTime", "timeLimit", "transactionScript", "blockDomains", "disableScreenshot", "allowMicAndCamera", "allowGeolocation", "browserLanguage", "chromeOptions", "chromePolicies", "pageLoadingStrategy", "randomizedStartTime", "identifyAgentTrafficWithUserAgent", "credentials", "bgpMeasurements", "usePublicBgp", "monitors", "subinterval"] + __properties: ClassVar[List[str]] = ["interval", "alertsEnabled", "enabled", "alertRules", "createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "tags", "sharedWithAccounts", "authType", "agentInterfaces", "bandwidthMeasurements", "clientCertificate", "contentRegex", "customHeaders", "desiredStatusCode", "distributedTracing", "downloadLimit", "dnsOverride", "httpTargetTime", "httpTimeLimit", "httpVersion", "includeHeaders", "mtuMeasurements", "networkMeasurements", "numPathTraces", "oAuth", "password", "pathTraceMode", "probeMode", "protocol", "sslVersion", "sslVersionId", "url", "useNtlm", "userAgent", "username", "verifyCertificate", "allowUnsafeLegacyRenegotiation", "followRedirects", "fixedPacketRate", "overrideAgentProxy", "overrideProxyId", "collectProxyNetworkData", "vaultCredentials", "emulatedDeviceId", "targetTime", "timeLimit", "transactionScript", "blockDomains", "disableScreenshot", "allowMicAndCamera", "allowGeolocation", "browserLanguage", "chromeOptions", "chromePolicies", "pageLoadingStrategy", "randomizedStartTime", "identifyAgentTrafficWithUserAgent", "credentials", "bgpMeasurements", "usePublicBgp", "monitors", "subinterval"] model_config = ConfigDict( populate_by_name=True, @@ -159,6 +163,7 @@ class WebTransactionTest(BaseModel): * 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([ "created_by", @@ -170,6 +175,7 @@ class WebTransactionTest(BaseModel): "test_id", "type", "labels", + "tags", "shared_with_accounts", "ssl_version", "monitors", @@ -197,6 +203,13 @@ class WebTransactionTest(BaseModel): if _item: _items.append(_item.to_dict()) _dict['labels'] = _items + # override the default output from pydantic by calling `to_dict()` of each item in tags (list) + _items = [] + if self.tags: + for _item in self.tags: + if _item: + _items.append(_item.to_dict()) + _dict['tags'] = _items # override the default output from pydantic by calling `to_dict()` of each item in shared_with_accounts (list) _items = [] if self.shared_with_accounts: @@ -213,6 +226,13 @@ class WebTransactionTest(BaseModel): # override the default output from pydantic by calling `to_dict()` of o_auth if self.o_auth: _dict['oAuth'] = self.o_auth.to_dict() + # override the default output from pydantic by calling `to_dict()` of each item in vault_credentials (list) + _items = [] + if self.vault_credentials: + for _item in self.vault_credentials: + if _item: + _items.append(_item.to_dict()) + _dict['vaultCredentials'] = _items # override the default output from pydantic by calling `to_dict()` of each item in monitors (list) _items = [] if self.monitors: @@ -248,6 +268,7 @@ class WebTransactionTest(BaseModel): "type": obj.get("type"), "_links": TestLinks.from_dict(obj["_links"]) if obj.get("_links") is not None else None, "labels": [TestLabel.from_dict(_item) for _item in obj["labels"]] if obj.get("labels") is not None else None, + "tags": [TestTag.from_dict(_item) for _item in obj["tags"]] if obj.get("tags") is not None else None, "sharedWithAccounts": [SharedWithAccount.from_dict(_item) for _item in obj["sharedWithAccounts"]] if obj.get("sharedWithAccounts") is not None else None, "authType": obj.get("authType"), "agentInterfaces": AgentInterfaces.from_dict(obj["agentInterfaces"]) if obj.get("agentInterfaces") is not None else None, @@ -284,6 +305,7 @@ class WebTransactionTest(BaseModel): "overrideAgentProxy": obj.get("overrideAgentProxy") if obj.get("overrideAgentProxy") is not None else False, "overrideProxyId": obj.get("overrideProxyId"), "collectProxyNetworkData": obj.get("collectProxyNetworkData") if obj.get("collectProxyNetworkData") is not None else False, + "vaultCredentials": [TestVaultCredential.from_dict(_item) for _item in obj["vaultCredentials"]] if obj.get("vaultCredentials") is not None else None, "emulatedDeviceId": obj.get("emulatedDeviceId"), "targetTime": obj.get("targetTime") if obj.get("targetTime") is not None else 10, "timeLimit": obj.get("timeLimit") if obj.get("timeLimit") is not None else 30, diff --git a/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/web_transaction_test_request.py b/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/web_transaction_test_request.py index ae29f52e..acac5fd4 100644 --- a/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/web_transaction_test_request.py +++ b/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/web_transaction_test_request.py @@ -33,6 +33,7 @@ from thousandeyes_sdk.tests.models.test_probe_mode import TestProbeMode from thousandeyes_sdk.tests.models.test_protocol import TestProtocol from thousandeyes_sdk.tests.models.test_ssl_version_id import TestSslVersionId from thousandeyes_sdk.tests.models.test_sub_interval import TestSubInterval +from thousandeyes_sdk.tests.models.test_vault_credential import TestVaultCredential from typing import Optional, Set from typing_extensions import Self @@ -43,7 +44,6 @@ class WebTransactionTestRequest(BaseModel): interval: TestInterval alerts_enabled: Optional[StrictBool] = Field(default=None, description="Indicates if alerts are enabled.", alias="alertsEnabled") enabled: Optional[StrictBool] = Field(default=True, description="Test is enabled.") - alert_rules: Optional[List[StrictStr]] = Field(default=None, description="List of alert rules IDs to apply to the test (get `ruleId` from `/alerts/rules` endpoint. If `alertsEnabled` is set to `true` and `alertRules` is not included on test creation or update, applicable user default alert rules will be used)", alias="alertRules") created_by: Optional[StrictStr] = Field(default=None, description="User that created the test.", alias="createdBy") created_date: Optional[datetime] = Field(default=None, description="UTC created date (ISO date-time format).", alias="createdDate") description: Optional[StrictStr] = Field(default=None, description="A description of the test.") @@ -55,8 +55,6 @@ class WebTransactionTestRequest(BaseModel): test_name: Optional[StrictStr] = Field(default=None, description="The name of the test. Test name must be unique.", alias="testName") type: Optional[StrictStr] = None links: Optional[TestLinks] = Field(default=None, alias="_links") - labels: Optional[List[StrictStr]] = Field(default=None, description="Contains list of test label IDs (get `labelId` from `/labels` endpoint)") - shared_with_accounts: Optional[List[StrictStr]] = Field(default=None, description="Contains list of account group IDs. Test is shared with the listed account groups (get `aid` from `/account-groups` endpoint)", alias="sharedWithAccounts") auth_type: Optional[TestAuthType] = Field(default=None, alias="authType") agent_interfaces: Optional[AgentInterfaces] = Field(default=None, alias="agentInterfaces") bandwidth_measurements: Optional[StrictBool] = Field(default=None, description="Set to `true` to enable bandwidth measurements, only applies to Enterprise agents assigned to the test.", alias="bandwidthMeasurements") @@ -92,6 +90,7 @@ class WebTransactionTestRequest(BaseModel): override_agent_proxy: Optional[StrictBool] = Field(default=False, description="Flag indicating if a proxy other than the default should be used. To override the default proxy for agents, set to `true` and specify a value for `overrideProxyId`.", alias="overrideAgentProxy") override_proxy_id: Optional[StrictStr] = Field(default=None, description="ID of the proxy to be used if the default proxy is overridden.", alias="overrideProxyId") collect_proxy_network_data: Optional[StrictBool] = Field(default=False, description="Indicates whether network data to the proxy should be collected.", alias="collectProxyNetworkData") + vault_credentials: Optional[List[TestVaultCredential]] = Field(default=None, description="List of credential IDs that are stored in an external vault.", alias="vaultCredentials") emulated_device_id: Optional[StrictStr] = Field(default=None, description="ID of the emulated device, if specified when the test was created.", alias="emulatedDeviceId") target_time: Optional[Annotated[int, Field(le=180, strict=True, ge=1)]] = Field(default=10, description="Target completion time, in seconds. Defaults to 10. Cannot exceed the `timeLimit` value.", alias="targetTime") time_limit: Optional[Annotated[int, Field(le=180, strict=True, ge=5)]] = Field(default=30, description="Time limit for transaction in seconds.", alias="timeLimit") @@ -106,14 +105,17 @@ class WebTransactionTestRequest(BaseModel): page_loading_strategy: Optional[TestPageLoadingStrategy] = Field(default=None, alias="pageLoadingStrategy") randomized_start_time: Optional[StrictBool] = Field(default=False, description="Indicates whether agents should randomize the start time in each test round.", alias="randomizedStartTime") identify_agent_traffic_with_user_agent: Optional[StrictBool] = Field(default=False, description="Determines how agent traffic is identified: * `false`: Adds the `x-thousandeyes-agent: yes` header. * `true`: Appends `(ThousandEyes Agent)` to the `user-agent` header. For more information, see [Notes on Agent ID Strategy](https://docs.thousandeyes.com/product-documentation/browser-synthetics/test-settings-page-load-transaction#notes-on-agent-id-strategy). ", alias="identifyAgentTrafficWithUserAgent") - credentials: Optional[List[StrictStr]] = Field(default=None, description="Contains a list of credential IDs (get `credentialId` from `/credentials` endpoint).") + subinterval: Optional[TestSubInterval] = None bgp_measurements: Optional[StrictBool] = Field(default=True, description="Set to `true` to enable bgp measurements.", alias="bgpMeasurements") use_public_bgp: Optional[StrictBool] = Field(default=True, description="Indicate if all available public BGP monitors should be used, when ommited defaults to `bgpMeasurements` value.", alias="usePublicBgp") - monitors: Optional[List[StrictStr]] = Field(default=None, description="Contains list of BGP monitor IDs (get `monitorId` from `/monitors` endpoint)") - subinterval: Optional[TestSubInterval] = None + labels: Optional[List[StrictStr]] = Field(default=None, description="Contains list of test label IDs (get `labelId` from `/labels` endpoint)") tags: Optional[List[StrictStr]] = Field(default=None, description="Contains list of test tag IDs (get `id` from `/tags` endpoint).") + shared_with_accounts: Optional[List[StrictStr]] = Field(default=None, description="Contains list of account group IDs. Test is shared with the listed account groups (get `aid` from `/account-groups` endpoint)", alias="sharedWithAccounts") + alert_rules: Optional[List[StrictStr]] = Field(default=None, description="List of alert rules IDs to apply to the test (get `ruleId` from `/alerts/rules` endpoint. If `alertsEnabled` is set to `true` and `alertRules` is not included on test creation or update, applicable user default alert rules will be used)", alias="alertRules") agents: List[TestAgentRequest] = Field(description="Contains list of Agent IDs (get `agentId` from `/agents` endpoint).") - __properties: ClassVar[List[str]] = ["interval", "alertsEnabled", "enabled", "alertRules", "createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "sharedWithAccounts", "authType", "agentInterfaces", "bandwidthMeasurements", "clientCertificate", "contentRegex", "customHeaders", "desiredStatusCode", "distributedTracing", "downloadLimit", "dnsOverride", "httpTargetTime", "httpTimeLimit", "httpVersion", "includeHeaders", "mtuMeasurements", "networkMeasurements", "numPathTraces", "oAuth", "password", "pathTraceMode", "probeMode", "protocol", "sslVersion", "sslVersionId", "url", "useNtlm", "userAgent", "username", "verifyCertificate", "allowUnsafeLegacyRenegotiation", "followRedirects", "fixedPacketRate", "overrideAgentProxy", "overrideProxyId", "collectProxyNetworkData", "emulatedDeviceId", "targetTime", "timeLimit", "transactionScript", "blockDomains", "disableScreenshot", "allowMicAndCamera", "allowGeolocation", "browserLanguage", "chromeOptions", "chromePolicies", "pageLoadingStrategy", "randomizedStartTime", "identifyAgentTrafficWithUserAgent", "credentials", "bgpMeasurements", "usePublicBgp", "monitors", "subinterval", "tags", "agents"] + monitors: Optional[List[StrictStr]] = Field(default=None, description="Contains list of BGP monitor IDs (get `monitorId` from `/monitors` endpoint)") + credentials: Optional[List[StrictStr]] = Field(default=None, description="Contains a list of credential IDs (get `credentialId` from `/credentials` endpoint).") + __properties: ClassVar[List[str]] = ["interval", "alertsEnabled", "enabled", "createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "authType", "agentInterfaces", "bandwidthMeasurements", "clientCertificate", "contentRegex", "customHeaders", "desiredStatusCode", "distributedTracing", "downloadLimit", "dnsOverride", "httpTargetTime", "httpTimeLimit", "httpVersion", "includeHeaders", "mtuMeasurements", "networkMeasurements", "numPathTraces", "oAuth", "password", "pathTraceMode", "probeMode", "protocol", "sslVersion", "sslVersionId", "url", "useNtlm", "userAgent", "username", "verifyCertificate", "allowUnsafeLegacyRenegotiation", "followRedirects", "fixedPacketRate", "overrideAgentProxy", "overrideProxyId", "collectProxyNetworkData", "vaultCredentials", "emulatedDeviceId", "targetTime", "timeLimit", "transactionScript", "blockDomains", "disableScreenshot", "allowMicAndCamera", "allowGeolocation", "browserLanguage", "chromeOptions", "chromePolicies", "pageLoadingStrategy", "randomizedStartTime", "identifyAgentTrafficWithUserAgent", "subinterval", "bgpMeasurements", "usePublicBgp", "labels", "tags", "sharedWithAccounts", "alertRules", "agents", "monitors", "credentials"] model_config = ConfigDict( populate_by_name=True, @@ -185,6 +187,13 @@ class WebTransactionTestRequest(BaseModel): # override the default output from pydantic by calling `to_dict()` of o_auth if self.o_auth: _dict['oAuth'] = self.o_auth.to_dict() + # override the default output from pydantic by calling `to_dict()` of each item in vault_credentials (list) + _items = [] + if self.vault_credentials: + for _item in self.vault_credentials: + if _item: + _items.append(_item.to_dict()) + _dict['vaultCredentials'] = _items # override the default output from pydantic by calling `to_dict()` of each item in agents (list) _items = [] if self.agents: @@ -207,7 +216,6 @@ class WebTransactionTestRequest(BaseModel): "interval": obj.get("interval"), "alertsEnabled": obj.get("alertsEnabled"), "enabled": obj.get("enabled") if obj.get("enabled") is not None else True, - "alertRules": obj.get("alertRules"), "createdBy": obj.get("createdBy"), "createdDate": obj.get("createdDate"), "description": obj.get("description"), @@ -219,8 +227,6 @@ class WebTransactionTestRequest(BaseModel): "testName": obj.get("testName"), "type": obj.get("type"), "_links": TestLinks.from_dict(obj["_links"]) if obj.get("_links") is not None else None, - "labels": obj.get("labels"), - "sharedWithAccounts": obj.get("sharedWithAccounts"), "authType": obj.get("authType"), "agentInterfaces": AgentInterfaces.from_dict(obj["agentInterfaces"]) if obj.get("agentInterfaces") is not None else None, "bandwidthMeasurements": obj.get("bandwidthMeasurements"), @@ -256,6 +262,7 @@ class WebTransactionTestRequest(BaseModel): "overrideAgentProxy": obj.get("overrideAgentProxy") if obj.get("overrideAgentProxy") is not None else False, "overrideProxyId": obj.get("overrideProxyId"), "collectProxyNetworkData": obj.get("collectProxyNetworkData") if obj.get("collectProxyNetworkData") is not None else False, + "vaultCredentials": [TestVaultCredential.from_dict(_item) for _item in obj["vaultCredentials"]] if obj.get("vaultCredentials") is not None else None, "emulatedDeviceId": obj.get("emulatedDeviceId"), "targetTime": obj.get("targetTime") if obj.get("targetTime") is not None else 10, "timeLimit": obj.get("timeLimit") if obj.get("timeLimit") is not None else 30, @@ -270,13 +277,16 @@ class WebTransactionTestRequest(BaseModel): "pageLoadingStrategy": obj.get("pageLoadingStrategy"), "randomizedStartTime": obj.get("randomizedStartTime") if obj.get("randomizedStartTime") is not None else False, "identifyAgentTrafficWithUserAgent": obj.get("identifyAgentTrafficWithUserAgent") if obj.get("identifyAgentTrafficWithUserAgent") is not None else False, - "credentials": obj.get("credentials"), + "subinterval": obj.get("subinterval"), "bgpMeasurements": obj.get("bgpMeasurements") if obj.get("bgpMeasurements") is not None else True, "usePublicBgp": obj.get("usePublicBgp") if obj.get("usePublicBgp") is not None else True, - "monitors": obj.get("monitors"), - "subinterval": obj.get("subinterval"), + "labels": obj.get("labels"), "tags": obj.get("tags"), - "agents": [TestAgentRequest.from_dict(_item) for _item in obj["agents"]] if obj.get("agents") is not None else None + "sharedWithAccounts": obj.get("sharedWithAccounts"), + "alertRules": obj.get("alertRules"), + "agents": [TestAgentRequest.from_dict(_item) for _item in obj["agents"]] if obj.get("agents") is not None else None, + "monitors": obj.get("monitors"), + "credentials": obj.get("credentials") }) return _obj diff --git a/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/web_transaction_test_response.py b/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/web_transaction_test_response.py index 6175613a..27528d0c 100644 --- a/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/web_transaction_test_response.py +++ b/thousandeyes-sdk-tests/src/thousandeyes_sdk/tests/models/web_transaction_test_response.py @@ -37,6 +37,8 @@ from thousandeyes_sdk.tests.models.test_probe_mode import TestProbeMode from thousandeyes_sdk.tests.models.test_protocol import TestProtocol from thousandeyes_sdk.tests.models.test_ssl_version_id import TestSslVersionId from thousandeyes_sdk.tests.models.test_sub_interval import TestSubInterval +from thousandeyes_sdk.tests.models.test_tag import TestTag +from thousandeyes_sdk.tests.models.test_vault_credential import TestVaultCredential from typing import Optional, Set from typing_extensions import Self @@ -60,6 +62,7 @@ class WebTransactionTestResponse(BaseModel): type: Optional[StrictStr] = None links: Optional[TestLinks] = Field(default=None, alias="_links") labels: Optional[List[TestLabel]] = Field(default=None, description="Labels to which the test is assigned. This field is not returned for Instant Tests.") + tags: Optional[List[TestTag]] = Field(default=None, description="Tags assigned to the test. Returned only when `expand=tag` is specified. This field is not returned for Instant Tests. For more information, see `/tags`.") shared_with_accounts: Optional[List[SharedWithAccount]] = Field(default=None, alias="sharedWithAccounts") auth_type: Optional[TestAuthType] = Field(default=None, alias="authType") agent_interfaces: Optional[AgentInterfaces] = Field(default=None, alias="agentInterfaces") @@ -96,6 +99,7 @@ class WebTransactionTestResponse(BaseModel): override_agent_proxy: Optional[StrictBool] = Field(default=False, description="Flag indicating if a proxy other than the default should be used. To override the default proxy for agents, set to `true` and specify a value for `overrideProxyId`.", alias="overrideAgentProxy") override_proxy_id: Optional[StrictStr] = Field(default=None, description="ID of the proxy to be used if the default proxy is overridden.", alias="overrideProxyId") collect_proxy_network_data: Optional[StrictBool] = Field(default=False, description="Indicates whether network data to the proxy should be collected.", alias="collectProxyNetworkData") + vault_credentials: Optional[List[TestVaultCredential]] = Field(default=None, description="List of credential IDs that are stored in an external vault.", alias="vaultCredentials") emulated_device_id: Optional[StrictStr] = Field(default=None, description="ID of the emulated device, if specified when the test was created.", alias="emulatedDeviceId") target_time: Optional[Annotated[int, Field(le=180, strict=True, ge=1)]] = Field(default=10, description="Target completion time, in seconds. Defaults to 10. Cannot exceed the `timeLimit` value.", alias="targetTime") time_limit: Optional[Annotated[int, Field(le=180, strict=True, ge=5)]] = Field(default=30, description="Time limit for transaction in seconds.", alias="timeLimit") @@ -116,7 +120,7 @@ class WebTransactionTestResponse(BaseModel): monitors: Optional[List[Monitor]] = Field(default=None, description="Contains list of enabled BGP monitors.") subinterval: Optional[TestSubInterval] = None agents: Optional[List[AgentResponse]] = Field(default=None, description="Contains list of agents.") - __properties: ClassVar[List[str]] = ["interval", "alertsEnabled", "enabled", "alertRules", "createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "sharedWithAccounts", "authType", "agentInterfaces", "bandwidthMeasurements", "clientCertificate", "contentRegex", "customHeaders", "desiredStatusCode", "distributedTracing", "downloadLimit", "dnsOverride", "httpTargetTime", "httpTimeLimit", "httpVersion", "includeHeaders", "mtuMeasurements", "networkMeasurements", "numPathTraces", "oAuth", "password", "pathTraceMode", "probeMode", "protocol", "sslVersion", "sslVersionId", "url", "useNtlm", "userAgent", "username", "verifyCertificate", "allowUnsafeLegacyRenegotiation", "followRedirects", "fixedPacketRate", "overrideAgentProxy", "overrideProxyId", "collectProxyNetworkData", "emulatedDeviceId", "targetTime", "timeLimit", "transactionScript", "blockDomains", "disableScreenshot", "allowMicAndCamera", "allowGeolocation", "browserLanguage", "chromeOptions", "chromePolicies", "pageLoadingStrategy", "randomizedStartTime", "identifyAgentTrafficWithUserAgent", "credentials", "bgpMeasurements", "usePublicBgp", "monitors", "subinterval", "agents"] + __properties: ClassVar[List[str]] = ["interval", "alertsEnabled", "enabled", "alertRules", "createdBy", "createdDate", "description", "liveShare", "modifiedBy", "modifiedDate", "savedEvent", "testId", "testName", "type", "_links", "labels", "tags", "sharedWithAccounts", "authType", "agentInterfaces", "bandwidthMeasurements", "clientCertificate", "contentRegex", "customHeaders", "desiredStatusCode", "distributedTracing", "downloadLimit", "dnsOverride", "httpTargetTime", "httpTimeLimit", "httpVersion", "includeHeaders", "mtuMeasurements", "networkMeasurements", "numPathTraces", "oAuth", "password", "pathTraceMode", "probeMode", "protocol", "sslVersion", "sslVersionId", "url", "useNtlm", "userAgent", "username", "verifyCertificate", "allowUnsafeLegacyRenegotiation", "followRedirects", "fixedPacketRate", "overrideAgentProxy", "overrideProxyId", "collectProxyNetworkData", "vaultCredentials", "emulatedDeviceId", "targetTime", "timeLimit", "transactionScript", "blockDomains", "disableScreenshot", "allowMicAndCamera", "allowGeolocation", "browserLanguage", "chromeOptions", "chromePolicies", "pageLoadingStrategy", "randomizedStartTime", "identifyAgentTrafficWithUserAgent", "credentials", "bgpMeasurements", "usePublicBgp", "monitors", "subinterval", "agents"] model_config = ConfigDict( populate_by_name=True, @@ -161,6 +165,7 @@ class WebTransactionTestResponse(BaseModel): * 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([ "created_by", @@ -172,6 +177,7 @@ class WebTransactionTestResponse(BaseModel): "test_id", "type", "labels", + "tags", "shared_with_accounts", "ssl_version", "monitors", @@ -199,6 +205,13 @@ class WebTransactionTestResponse(BaseModel): if _item: _items.append(_item.to_dict()) _dict['labels'] = _items + # override the default output from pydantic by calling `to_dict()` of each item in tags (list) + _items = [] + if self.tags: + for _item in self.tags: + if _item: + _items.append(_item.to_dict()) + _dict['tags'] = _items # override the default output from pydantic by calling `to_dict()` of each item in shared_with_accounts (list) _items = [] if self.shared_with_accounts: @@ -215,6 +228,13 @@ class WebTransactionTestResponse(BaseModel): # override the default output from pydantic by calling `to_dict()` of o_auth if self.o_auth: _dict['oAuth'] = self.o_auth.to_dict() + # override the default output from pydantic by calling `to_dict()` of each item in vault_credentials (list) + _items = [] + if self.vault_credentials: + for _item in self.vault_credentials: + if _item: + _items.append(_item.to_dict()) + _dict['vaultCredentials'] = _items # override the default output from pydantic by calling `to_dict()` of each item in monitors (list) _items = [] if self.monitors: @@ -257,6 +277,7 @@ class WebTransactionTestResponse(BaseModel): "type": obj.get("type"), "_links": TestLinks.from_dict(obj["_links"]) if obj.get("_links") is not None else None, "labels": [TestLabel.from_dict(_item) for _item in obj["labels"]] if obj.get("labels") is not None else None, + "tags": [TestTag.from_dict(_item) for _item in obj["tags"]] if obj.get("tags") is not None else None, "sharedWithAccounts": [SharedWithAccount.from_dict(_item) for _item in obj["sharedWithAccounts"]] if obj.get("sharedWithAccounts") is not None else None, "authType": obj.get("authType"), "agentInterfaces": AgentInterfaces.from_dict(obj["agentInterfaces"]) if obj.get("agentInterfaces") is not None else None, @@ -293,6 +314,7 @@ class WebTransactionTestResponse(BaseModel): "overrideAgentProxy": obj.get("overrideAgentProxy") if obj.get("overrideAgentProxy") is not None else False, "overrideProxyId": obj.get("overrideProxyId"), "collectProxyNetworkData": obj.get("collectProxyNetworkData") if obj.get("collectProxyNetworkData") is not None else False, + "vaultCredentials": [TestVaultCredential.from_dict(_item) for _item in obj["vaultCredentials"]] if obj.get("vaultCredentials") is not None else None, "emulatedDeviceId": obj.get("emulatedDeviceId"), "targetTime": obj.get("targetTime") if obj.get("targetTime") is not None else 10, "timeLimit": obj.get("timeLimit") if obj.get("timeLimit") is not None else 30, diff --git a/thousandeyes-sdk-tests/test/test_agent_to_agent_tests_api.py b/thousandeyes-sdk-tests/test/test_agent_to_agent_tests_api.py index 236cf787..23649832 100644 --- a/thousandeyes-sdk-tests/test/test_agent_to_agent_tests_api.py +++ b/thousandeyes-sdk-tests/test/test_agent_to_agent_tests_api.py @@ -175,37 +175,56 @@ class TestAgentToAgentTestsApi(unittest.TestCase): "name" : "Artem label", "isBuiltin" : false } ], + "tags" : [ { + "id" : "5aeab5d5-0d34-4d44-a7ac-fb440185295c", + "value" : "San Francisco", + "key" : "Location" + }, { + "id" : "5aeab5d5-0d34-4d44-a7ac-fb440185295c", + "value" : "San Francisco", + "key" : "Location" + } ], "agents" : [ { "agentId" : "281474976710706", "agentType" : "enterprise-cluster", - "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], "prefix" : "99.128.0.0/11", "coordinates" : { "latitude" : 37.77493, "longitude" : -122.41942 }, "agentName" : "thousandeyes-stg-va-254", - "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], - "location" : "San Francisco Bay Area", + "networkProviderInfo" : { + "asn" : 7018, + "name" : "AT&T Services, Inc.", + "type" : "isp" + }, "countryId" : "US", "enabled" : true, "network" : "AT&T Services, Inc. (AS 7018)", + "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], + "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], + "location" : "San Francisco Bay Area", "verifySslCertificates" : true }, { "agentId" : "281474976710706", "agentType" : "enterprise-cluster", - "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], "prefix" : "99.128.0.0/11", "coordinates" : { "latitude" : 37.77493, "longitude" : -122.41942 }, "agentName" : "thousandeyes-stg-va-254", - "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], - "location" : "San Francisco Bay Area", + "networkProviderInfo" : { + "asn" : 7018, + "name" : "AT&T Services, Inc.", + "type" : "isp" + }, "countryId" : "US", "enabled" : true, "network" : "AT&T Services, Inc. (AS 7018)", + "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], + "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], + "location" : "San Francisco Bay Area", "verifySslCertificates" : true } ], "createdDate" : "2022-07-17T22:00:54Z", @@ -329,37 +348,56 @@ class TestAgentToAgentTestsApi(unittest.TestCase): "name" : "Artem label", "isBuiltin" : false } ], + "tags" : [ { + "id" : "5aeab5d5-0d34-4d44-a7ac-fb440185295c", + "value" : "San Francisco", + "key" : "Location" + }, { + "id" : "5aeab5d5-0d34-4d44-a7ac-fb440185295c", + "value" : "San Francisco", + "key" : "Location" + } ], "agents" : [ { "agentId" : "281474976710706", "agentType" : "enterprise-cluster", - "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], "prefix" : "99.128.0.0/11", "coordinates" : { "latitude" : 37.77493, "longitude" : -122.41942 }, "agentName" : "thousandeyes-stg-va-254", - "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], - "location" : "San Francisco Bay Area", + "networkProviderInfo" : { + "asn" : 7018, + "name" : "AT&T Services, Inc.", + "type" : "isp" + }, "countryId" : "US", "enabled" : true, "network" : "AT&T Services, Inc. (AS 7018)", + "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], + "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], + "location" : "San Francisco Bay Area", "verifySslCertificates" : true }, { "agentId" : "281474976710706", "agentType" : "enterprise-cluster", - "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], "prefix" : "99.128.0.0/11", "coordinates" : { "latitude" : 37.77493, "longitude" : -122.41942 }, "agentName" : "thousandeyes-stg-va-254", - "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], - "location" : "San Francisco Bay Area", + "networkProviderInfo" : { + "asn" : 7018, + "name" : "AT&T Services, Inc.", + "type" : "isp" + }, "countryId" : "US", "enabled" : true, "network" : "AT&T Services, Inc. (AS 7018)", + "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], + "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], + "location" : "San Francisco Bay Area", "verifySslCertificates" : true } ], "createdDate" : "2022-07-17T22:00:54Z", @@ -663,37 +701,56 @@ class TestAgentToAgentTestsApi(unittest.TestCase): "name" : "Artem label", "isBuiltin" : false } ], + "tags" : [ { + "id" : "5aeab5d5-0d34-4d44-a7ac-fb440185295c", + "value" : "San Francisco", + "key" : "Location" + }, { + "id" : "5aeab5d5-0d34-4d44-a7ac-fb440185295c", + "value" : "San Francisco", + "key" : "Location" + } ], "agents" : [ { "agentId" : "281474976710706", "agentType" : "enterprise-cluster", - "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], "prefix" : "99.128.0.0/11", "coordinates" : { "latitude" : 37.77493, "longitude" : -122.41942 }, "agentName" : "thousandeyes-stg-va-254", - "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], - "location" : "San Francisco Bay Area", + "networkProviderInfo" : { + "asn" : 7018, + "name" : "AT&T Services, Inc.", + "type" : "isp" + }, "countryId" : "US", "enabled" : true, "network" : "AT&T Services, Inc. (AS 7018)", + "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], + "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], + "location" : "San Francisco Bay Area", "verifySslCertificates" : true }, { "agentId" : "281474976710706", "agentType" : "enterprise-cluster", - "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], "prefix" : "99.128.0.0/11", "coordinates" : { "latitude" : 37.77493, "longitude" : -122.41942 }, "agentName" : "thousandeyes-stg-va-254", - "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], - "location" : "San Francisco Bay Area", + "networkProviderInfo" : { + "asn" : 7018, + "name" : "AT&T Services, Inc.", + "type" : "isp" + }, "countryId" : "US", "enabled" : true, "network" : "AT&T Services, Inc. (AS 7018)", + "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], + "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], + "location" : "San Francisco Bay Area", "verifySslCertificates" : true } ], "createdDate" : "2022-07-17T22:00:54Z", diff --git a/thousandeyes-sdk-tests/test/test_agent_to_server_tests_api.py b/thousandeyes-sdk-tests/test/test_agent_to_server_tests_api.py index 66da9c50..ade02f48 100644 --- a/thousandeyes-sdk-tests/test/test_agent_to_server_tests_api.py +++ b/thousandeyes-sdk-tests/test/test_agent_to_server_tests_api.py @@ -88,8 +88,8 @@ class TestAgentToServerTestsApi(unittest.TestCase): "modifiedDate" : "2022-07-17T22:00:54Z", "interval" : 60, "testId" : "281474976710706", - "sharedWithAccounts" : [ "1234", "12345" ], "pingPayloadSize" : 112, + "sharedWithAccounts" : [ "1234", "12345" ], "continuousMode" : false, "monitors" : [ "17410", "5" ] } @@ -178,37 +178,56 @@ class TestAgentToServerTestsApi(unittest.TestCase): "name" : "Artem label", "isBuiltin" : false } ], + "tags" : [ { + "id" : "5aeab5d5-0d34-4d44-a7ac-fb440185295c", + "value" : "San Francisco", + "key" : "Location" + }, { + "id" : "5aeab5d5-0d34-4d44-a7ac-fb440185295c", + "value" : "San Francisco", + "key" : "Location" + } ], "agents" : [ { "agentId" : "281474976710706", "agentType" : "enterprise-cluster", - "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], "prefix" : "99.128.0.0/11", "coordinates" : { "latitude" : 37.77493, "longitude" : -122.41942 }, "agentName" : "thousandeyes-stg-va-254", - "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], - "location" : "San Francisco Bay Area", + "networkProviderInfo" : { + "asn" : 7018, + "name" : "AT&T Services, Inc.", + "type" : "isp" + }, "countryId" : "US", "enabled" : true, "network" : "AT&T Services, Inc. (AS 7018)", + "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], + "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], + "location" : "San Francisco Bay Area", "verifySslCertificates" : true }, { "agentId" : "281474976710706", "agentType" : "enterprise-cluster", - "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], "prefix" : "99.128.0.0/11", "coordinates" : { "latitude" : 37.77493, "longitude" : -122.41942 }, "agentName" : "thousandeyes-stg-va-254", - "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], - "location" : "San Francisco Bay Area", + "networkProviderInfo" : { + "asn" : 7018, + "name" : "AT&T Services, Inc.", + "type" : "isp" + }, "countryId" : "US", "enabled" : true, "network" : "AT&T Services, Inc. (AS 7018)", + "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], + "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], + "location" : "San Francisco Bay Area", "verifySslCertificates" : true } ], "createdDate" : "2022-07-17T22:00:54Z", @@ -333,37 +352,56 @@ class TestAgentToServerTestsApi(unittest.TestCase): "name" : "Artem label", "isBuiltin" : false } ], + "tags" : [ { + "id" : "5aeab5d5-0d34-4d44-a7ac-fb440185295c", + "value" : "San Francisco", + "key" : "Location" + }, { + "id" : "5aeab5d5-0d34-4d44-a7ac-fb440185295c", + "value" : "San Francisco", + "key" : "Location" + } ], "agents" : [ { "agentId" : "281474976710706", "agentType" : "enterprise-cluster", - "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], "prefix" : "99.128.0.0/11", "coordinates" : { "latitude" : 37.77493, "longitude" : -122.41942 }, "agentName" : "thousandeyes-stg-va-254", - "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], - "location" : "San Francisco Bay Area", + "networkProviderInfo" : { + "asn" : 7018, + "name" : "AT&T Services, Inc.", + "type" : "isp" + }, "countryId" : "US", "enabled" : true, "network" : "AT&T Services, Inc. (AS 7018)", + "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], + "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], + "location" : "San Francisco Bay Area", "verifySslCertificates" : true }, { "agentId" : "281474976710706", "agentType" : "enterprise-cluster", - "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], "prefix" : "99.128.0.0/11", "coordinates" : { "latitude" : 37.77493, "longitude" : -122.41942 }, "agentName" : "thousandeyes-stg-va-254", - "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], - "location" : "San Francisco Bay Area", + "networkProviderInfo" : { + "asn" : 7018, + "name" : "AT&T Services, Inc.", + "type" : "isp" + }, "countryId" : "US", "enabled" : true, "network" : "AT&T Services, Inc. (AS 7018)", + "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], + "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], + "location" : "San Francisco Bay Area", "verifySslCertificates" : true } ], "createdDate" : "2022-07-17T22:00:54Z", @@ -647,37 +685,56 @@ class TestAgentToServerTestsApi(unittest.TestCase): "name" : "Artem label", "isBuiltin" : false } ], + "tags" : [ { + "id" : "5aeab5d5-0d34-4d44-a7ac-fb440185295c", + "value" : "San Francisco", + "key" : "Location" + }, { + "id" : "5aeab5d5-0d34-4d44-a7ac-fb440185295c", + "value" : "San Francisco", + "key" : "Location" + } ], "agents" : [ { "agentId" : "281474976710706", "agentType" : "enterprise-cluster", - "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], "prefix" : "99.128.0.0/11", "coordinates" : { "latitude" : 37.77493, "longitude" : -122.41942 }, "agentName" : "thousandeyes-stg-va-254", - "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], - "location" : "San Francisco Bay Area", + "networkProviderInfo" : { + "asn" : 7018, + "name" : "AT&T Services, Inc.", + "type" : "isp" + }, "countryId" : "US", "enabled" : true, "network" : "AT&T Services, Inc. (AS 7018)", + "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], + "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], + "location" : "San Francisco Bay Area", "verifySslCertificates" : true }, { "agentId" : "281474976710706", "agentType" : "enterprise-cluster", - "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], "prefix" : "99.128.0.0/11", "coordinates" : { "latitude" : 37.77493, "longitude" : -122.41942 }, "agentName" : "thousandeyes-stg-va-254", - "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], - "location" : "San Francisco Bay Area", + "networkProviderInfo" : { + "asn" : 7018, + "name" : "AT&T Services, Inc.", + "type" : "isp" + }, "countryId" : "US", "enabled" : true, "network" : "AT&T Services, Inc. (AS 7018)", + "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], + "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], + "location" : "San Francisco Bay Area", "verifySslCertificates" : true } ], "createdDate" : "2022-07-17T22:00:54Z", diff --git a/thousandeyes-sdk-tests/test/test_api_tests_api.py b/thousandeyes-sdk-tests/test/test_api_tests_api.py index 8cc7d71f..eae69b66 100644 --- a/thousandeyes-sdk-tests/test/test_api_tests_api.py +++ b/thousandeyes-sdk-tests/test/test_api_tests_api.py @@ -139,6 +139,13 @@ class TestAPITestsApi(unittest.TestCase): "type" : "api", "usePublicBgp" : true, "enabled" : true, + "vaultCredentials" : [ { + "secretId" : "f27e85b2-318b-4145-b5aa-c9dc8d8b0819", + "target" : "username" + }, { + "secretId" : "f27e85b2-318b-4145-b5aa-c9dc8d8b0819", + "target" : "username" + } ], "protocol" : "tcp", "collectProxyNetworkData" : false, "followRedirects" : true, @@ -182,21 +189,7 @@ class TestAPITestsApi(unittest.TestCase): "overrideProxyId" : "281474976710706", "sslVersionId" : "0", "targetTime" : 1, - "monitors" : [ { - "monitorType" : "public", - "monitorId" : "1234", - "monitorName" : "Seattle, WA", - "ipAddress" : "4.69.184.193", - "countryId" : "GB", - "network" : "Level 3 Communications, Inc. (AS 3356)" - }, { - "monitorType" : "public", - "monitorId" : "1234", - "monitorName" : "Seattle, WA", - "ipAddress" : "4.69.184.193", - "countryId" : "GB", - "network" : "Level 3 Communications, Inc. (AS 3356)" - } ] + "monitors" : [ "17410", "5" ] } """ @@ -341,6 +334,13 @@ class TestAPITestsApi(unittest.TestCase): "type" : "api", "usePublicBgp" : true, "enabled" : true, + "vaultCredentials" : [ { + "secretId" : "f27e85b2-318b-4145-b5aa-c9dc8d8b0819", + "target" : "username" + }, { + "secretId" : "f27e85b2-318b-4145-b5aa-c9dc8d8b0819", + "target" : "username" + } ], "protocol" : "tcp", "collectProxyNetworkData" : false, "followRedirects" : true, @@ -373,37 +373,56 @@ class TestAPITestsApi(unittest.TestCase): "name" : "Artem label", "isBuiltin" : false } ], + "tags" : [ { + "id" : "5aeab5d5-0d34-4d44-a7ac-fb440185295c", + "value" : "San Francisco", + "key" : "Location" + }, { + "id" : "5aeab5d5-0d34-4d44-a7ac-fb440185295c", + "value" : "San Francisco", + "key" : "Location" + } ], "agents" : [ { "agentId" : "281474976710706", "agentType" : "enterprise-cluster", - "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], "prefix" : "99.128.0.0/11", "coordinates" : { "latitude" : 37.77493, "longitude" : -122.41942 }, "agentName" : "thousandeyes-stg-va-254", - "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], - "location" : "San Francisco Bay Area", + "networkProviderInfo" : { + "asn" : 7018, + "name" : "AT&T Services, Inc.", + "type" : "isp" + }, "countryId" : "US", "enabled" : true, "network" : "AT&T Services, Inc. (AS 7018)", + "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], + "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], + "location" : "San Francisco Bay Area", "verifySslCertificates" : true }, { "agentId" : "281474976710706", "agentType" : "enterprise-cluster", - "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], "prefix" : "99.128.0.0/11", "coordinates" : { "latitude" : 37.77493, "longitude" : -122.41942 }, "agentName" : "thousandeyes-stg-va-254", - "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], - "location" : "San Francisco Bay Area", + "networkProviderInfo" : { + "asn" : 7018, + "name" : "AT&T Services, Inc.", + "type" : "isp" + }, "countryId" : "US", "enabled" : true, "network" : "AT&T Services, Inc. (AS 7018)", + "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], + "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], + "location" : "San Francisco Bay Area", "verifySslCertificates" : true } ], "timeLimit" : 19, @@ -588,6 +607,13 @@ class TestAPITestsApi(unittest.TestCase): "type" : "api", "usePublicBgp" : true, "enabled" : true, + "vaultCredentials" : [ { + "secretId" : "f27e85b2-318b-4145-b5aa-c9dc8d8b0819", + "target" : "username" + }, { + "secretId" : "f27e85b2-318b-4145-b5aa-c9dc8d8b0819", + "target" : "username" + } ], "protocol" : "tcp", "collectProxyNetworkData" : false, "followRedirects" : true, @@ -620,37 +646,56 @@ class TestAPITestsApi(unittest.TestCase): "name" : "Artem label", "isBuiltin" : false } ], + "tags" : [ { + "id" : "5aeab5d5-0d34-4d44-a7ac-fb440185295c", + "value" : "San Francisco", + "key" : "Location" + }, { + "id" : "5aeab5d5-0d34-4d44-a7ac-fb440185295c", + "value" : "San Francisco", + "key" : "Location" + } ], "agents" : [ { "agentId" : "281474976710706", "agentType" : "enterprise-cluster", - "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], "prefix" : "99.128.0.0/11", "coordinates" : { "latitude" : 37.77493, "longitude" : -122.41942 }, "agentName" : "thousandeyes-stg-va-254", - "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], - "location" : "San Francisco Bay Area", + "networkProviderInfo" : { + "asn" : 7018, + "name" : "AT&T Services, Inc.", + "type" : "isp" + }, "countryId" : "US", "enabled" : true, "network" : "AT&T Services, Inc. (AS 7018)", + "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], + "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], + "location" : "San Francisco Bay Area", "verifySslCertificates" : true }, { "agentId" : "281474976710706", "agentType" : "enterprise-cluster", - "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], "prefix" : "99.128.0.0/11", "coordinates" : { "latitude" : 37.77493, "longitude" : -122.41942 }, "agentName" : "thousandeyes-stg-va-254", - "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], - "location" : "San Francisco Bay Area", + "networkProviderInfo" : { + "asn" : 7018, + "name" : "AT&T Services, Inc.", + "type" : "isp" + }, "countryId" : "US", "enabled" : true, "network" : "AT&T Services, Inc. (AS 7018)", + "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], + "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], + "location" : "San Francisco Bay Area", "verifySslCertificates" : true } ], "timeLimit" : 19, @@ -1104,6 +1149,13 @@ class TestAPITestsApi(unittest.TestCase): "type" : "api", "usePublicBgp" : true, "enabled" : true, + "vaultCredentials" : [ { + "secretId" : "f27e85b2-318b-4145-b5aa-c9dc8d8b0819", + "target" : "username" + }, { + "secretId" : "f27e85b2-318b-4145-b5aa-c9dc8d8b0819", + "target" : "username" + } ], "protocol" : "tcp", "collectProxyNetworkData" : false, "followRedirects" : true, @@ -1147,21 +1199,7 @@ class TestAPITestsApi(unittest.TestCase): "overrideProxyId" : "281474976710706", "sslVersionId" : "0", "targetTime" : 1, - "monitors" : [ { - "monitorType" : "public", - "monitorId" : "1234", - "monitorName" : "Seattle, WA", - "ipAddress" : "4.69.184.193", - "countryId" : "GB", - "network" : "Level 3 Communications, Inc. (AS 3356)" - }, { - "monitorType" : "public", - "monitorId" : "1234", - "monitorName" : "Seattle, WA", - "ipAddress" : "4.69.184.193", - "countryId" : "GB", - "network" : "Level 3 Communications, Inc. (AS 3356)" - } ] + "monitors" : [ "17410", "5" ] } """ @@ -1306,6 +1344,13 @@ class TestAPITestsApi(unittest.TestCase): "type" : "api", "usePublicBgp" : true, "enabled" : true, + "vaultCredentials" : [ { + "secretId" : "f27e85b2-318b-4145-b5aa-c9dc8d8b0819", + "target" : "username" + }, { + "secretId" : "f27e85b2-318b-4145-b5aa-c9dc8d8b0819", + "target" : "username" + } ], "protocol" : "tcp", "collectProxyNetworkData" : false, "followRedirects" : true, @@ -1338,37 +1383,56 @@ class TestAPITestsApi(unittest.TestCase): "name" : "Artem label", "isBuiltin" : false } ], + "tags" : [ { + "id" : "5aeab5d5-0d34-4d44-a7ac-fb440185295c", + "value" : "San Francisco", + "key" : "Location" + }, { + "id" : "5aeab5d5-0d34-4d44-a7ac-fb440185295c", + "value" : "San Francisco", + "key" : "Location" + } ], "agents" : [ { "agentId" : "281474976710706", "agentType" : "enterprise-cluster", - "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], "prefix" : "99.128.0.0/11", "coordinates" : { "latitude" : 37.77493, "longitude" : -122.41942 }, "agentName" : "thousandeyes-stg-va-254", - "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], - "location" : "San Francisco Bay Area", + "networkProviderInfo" : { + "asn" : 7018, + "name" : "AT&T Services, Inc.", + "type" : "isp" + }, "countryId" : "US", "enabled" : true, "network" : "AT&T Services, Inc. (AS 7018)", + "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], + "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], + "location" : "San Francisco Bay Area", "verifySslCertificates" : true }, { "agentId" : "281474976710706", "agentType" : "enterprise-cluster", - "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], "prefix" : "99.128.0.0/11", "coordinates" : { "latitude" : 37.77493, "longitude" : -122.41942 }, "agentName" : "thousandeyes-stg-va-254", - "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], - "location" : "San Francisco Bay Area", + "networkProviderInfo" : { + "asn" : 7018, + "name" : "AT&T Services, Inc.", + "type" : "isp" + }, "countryId" : "US", "enabled" : true, "network" : "AT&T Services, Inc. (AS 7018)", + "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], + "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], + "location" : "San Francisco Bay Area", "verifySslCertificates" : true } ], "timeLimit" : 19, diff --git a/thousandeyes-sdk-tests/test/test_bgp_tests_api.py b/thousandeyes-sdk-tests/test/test_bgp_tests_api.py index 75124eca..c715cfbe 100644 --- a/thousandeyes-sdk-tests/test/test_bgp_tests_api.py +++ b/thousandeyes-sdk-tests/test/test_bgp_tests_api.py @@ -141,6 +141,15 @@ class TestBGPTestsApi(unittest.TestCase): "name" : "Artem label", "isBuiltin" : false } ], + "tags" : [ { + "id" : "5aeab5d5-0d34-4d44-a7ac-fb440185295c", + "value" : "San Francisco", + "key" : "Location" + }, { + "id" : "5aeab5d5-0d34-4d44-a7ac-fb440185295c", + "value" : "San Francisco", + "key" : "Location" + } ], "createdDate" : "2022-07-17T22:00:54Z", "createdBy" : "user@user.com", "modifiedDate" : "2022-07-17T22:00:54Z", @@ -248,6 +257,15 @@ class TestBGPTestsApi(unittest.TestCase): "name" : "Artem label", "isBuiltin" : false } ], + "tags" : [ { + "id" : "5aeab5d5-0d34-4d44-a7ac-fb440185295c", + "value" : "San Francisco", + "key" : "Location" + }, { + "id" : "5aeab5d5-0d34-4d44-a7ac-fb440185295c", + "value" : "San Francisco", + "key" : "Location" + } ], "createdDate" : "2022-07-17T22:00:54Z", "createdBy" : "user@user.com", "modifiedDate" : "2022-07-17T22:00:54Z", @@ -485,6 +503,15 @@ class TestBGPTestsApi(unittest.TestCase): "name" : "Artem label", "isBuiltin" : false } ], + "tags" : [ { + "id" : "5aeab5d5-0d34-4d44-a7ac-fb440185295c", + "value" : "San Francisco", + "key" : "Location" + }, { + "id" : "5aeab5d5-0d34-4d44-a7ac-fb440185295c", + "value" : "San Francisco", + "key" : "Location" + } ], "createdDate" : "2022-07-17T22:00:54Z", "createdBy" : "user@user.com", "modifiedDate" : "2022-07-17T22:00:54Z", diff --git a/thousandeyes-sdk-tests/test/test_dns_server_tests_api.py b/thousandeyes-sdk-tests/test/test_dns_server_tests_api.py index 122eed8a..a70c8e8b 100644 --- a/thousandeyes-sdk-tests/test/test_dns_server_tests_api.py +++ b/thousandeyes-sdk-tests/test/test_dns_server_tests_api.py @@ -184,37 +184,56 @@ class TestDNSServerTestsApi(unittest.TestCase): "name" : "Artem label", "isBuiltin" : false } ], + "tags" : [ { + "id" : "5aeab5d5-0d34-4d44-a7ac-fb440185295c", + "value" : "San Francisco", + "key" : "Location" + }, { + "id" : "5aeab5d5-0d34-4d44-a7ac-fb440185295c", + "value" : "San Francisco", + "key" : "Location" + } ], "agents" : [ { "agentId" : "281474976710706", "agentType" : "enterprise-cluster", - "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], "prefix" : "99.128.0.0/11", "coordinates" : { "latitude" : 37.77493, "longitude" : -122.41942 }, "agentName" : "thousandeyes-stg-va-254", - "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], - "location" : "San Francisco Bay Area", + "networkProviderInfo" : { + "asn" : 7018, + "name" : "AT&T Services, Inc.", + "type" : "isp" + }, "countryId" : "US", "enabled" : true, "network" : "AT&T Services, Inc. (AS 7018)", + "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], + "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], + "location" : "San Francisco Bay Area", "verifySslCertificates" : true }, { "agentId" : "281474976710706", "agentType" : "enterprise-cluster", - "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], "prefix" : "99.128.0.0/11", "coordinates" : { "latitude" : 37.77493, "longitude" : -122.41942 }, "agentName" : "thousandeyes-stg-va-254", - "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], - "location" : "San Francisco Bay Area", + "networkProviderInfo" : { + "asn" : 7018, + "name" : "AT&T Services, Inc.", + "type" : "isp" + }, "countryId" : "US", "enabled" : true, "network" : "AT&T Services, Inc. (AS 7018)", + "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], + "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], + "location" : "San Francisco Bay Area", "verifySslCertificates" : true } ], "createdDate" : "2022-07-17T22:00:54Z", @@ -345,37 +364,56 @@ class TestDNSServerTestsApi(unittest.TestCase): "name" : "Artem label", "isBuiltin" : false } ], + "tags" : [ { + "id" : "5aeab5d5-0d34-4d44-a7ac-fb440185295c", + "value" : "San Francisco", + "key" : "Location" + }, { + "id" : "5aeab5d5-0d34-4d44-a7ac-fb440185295c", + "value" : "San Francisco", + "key" : "Location" + } ], "agents" : [ { "agentId" : "281474976710706", "agentType" : "enterprise-cluster", - "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], "prefix" : "99.128.0.0/11", "coordinates" : { "latitude" : 37.77493, "longitude" : -122.41942 }, "agentName" : "thousandeyes-stg-va-254", - "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], - "location" : "San Francisco Bay Area", + "networkProviderInfo" : { + "asn" : 7018, + "name" : "AT&T Services, Inc.", + "type" : "isp" + }, "countryId" : "US", "enabled" : true, "network" : "AT&T Services, Inc. (AS 7018)", + "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], + "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], + "location" : "San Francisco Bay Area", "verifySslCertificates" : true }, { "agentId" : "281474976710706", "agentType" : "enterprise-cluster", - "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], "prefix" : "99.128.0.0/11", "coordinates" : { "latitude" : 37.77493, "longitude" : -122.41942 }, "agentName" : "thousandeyes-stg-va-254", - "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], - "location" : "San Francisco Bay Area", + "networkProviderInfo" : { + "asn" : 7018, + "name" : "AT&T Services, Inc.", + "type" : "isp" + }, "countryId" : "US", "enabled" : true, "network" : "AT&T Services, Inc. (AS 7018)", + "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], + "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], + "location" : "San Francisco Bay Area", "verifySslCertificates" : true } ], "createdDate" : "2022-07-17T22:00:54Z", @@ -701,37 +739,56 @@ class TestDNSServerTestsApi(unittest.TestCase): "name" : "Artem label", "isBuiltin" : false } ], + "tags" : [ { + "id" : "5aeab5d5-0d34-4d44-a7ac-fb440185295c", + "value" : "San Francisco", + "key" : "Location" + }, { + "id" : "5aeab5d5-0d34-4d44-a7ac-fb440185295c", + "value" : "San Francisco", + "key" : "Location" + } ], "agents" : [ { "agentId" : "281474976710706", "agentType" : "enterprise-cluster", - "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], "prefix" : "99.128.0.0/11", "coordinates" : { "latitude" : 37.77493, "longitude" : -122.41942 }, "agentName" : "thousandeyes-stg-va-254", - "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], - "location" : "San Francisco Bay Area", + "networkProviderInfo" : { + "asn" : 7018, + "name" : "AT&T Services, Inc.", + "type" : "isp" + }, "countryId" : "US", "enabled" : true, "network" : "AT&T Services, Inc. (AS 7018)", + "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], + "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], + "location" : "San Francisco Bay Area", "verifySslCertificates" : true }, { "agentId" : "281474976710706", "agentType" : "enterprise-cluster", - "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], "prefix" : "99.128.0.0/11", "coordinates" : { "latitude" : 37.77493, "longitude" : -122.41942 }, "agentName" : "thousandeyes-stg-va-254", - "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], - "location" : "San Francisco Bay Area", + "networkProviderInfo" : { + "asn" : 7018, + "name" : "AT&T Services, Inc.", + "type" : "isp" + }, "countryId" : "US", "enabled" : true, "network" : "AT&T Services, Inc. (AS 7018)", + "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], + "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], + "location" : "San Francisco Bay Area", "verifySslCertificates" : true } ], "createdDate" : "2022-07-17T22:00:54Z", diff --git a/thousandeyes-sdk-tests/test/test_dns_trace_tests_api.py b/thousandeyes-sdk-tests/test/test_dns_trace_tests_api.py index 62cd404e..42b62119 100644 --- a/thousandeyes-sdk-tests/test/test_dns_trace_tests_api.py +++ b/thousandeyes-sdk-tests/test/test_dns_trace_tests_api.py @@ -51,8 +51,8 @@ class TestDNSTraceTestsApi(unittest.TestCase): } }, "liveShare" : false, - "alertRules" : [ "344753", "212697" ], "savedEvent" : true, + "alertRules" : [ "344753", "212697" ], "description" : "ThousandEyes Test", "dnsTransportProtocol" : "udp", "type" : "dns-trace", @@ -148,37 +148,56 @@ class TestDNSTraceTestsApi(unittest.TestCase): "name" : "Artem label", "isBuiltin" : false } ], + "tags" : [ { + "id" : "5aeab5d5-0d34-4d44-a7ac-fb440185295c", + "value" : "San Francisco", + "key" : "Location" + }, { + "id" : "5aeab5d5-0d34-4d44-a7ac-fb440185295c", + "value" : "San Francisco", + "key" : "Location" + } ], "agents" : [ { "agentId" : "281474976710706", "agentType" : "enterprise-cluster", - "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], "prefix" : "99.128.0.0/11", "coordinates" : { "latitude" : 37.77493, "longitude" : -122.41942 }, "agentName" : "thousandeyes-stg-va-254", - "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], - "location" : "San Francisco Bay Area", + "networkProviderInfo" : { + "asn" : 7018, + "name" : "AT&T Services, Inc.", + "type" : "isp" + }, "countryId" : "US", "enabled" : true, "network" : "AT&T Services, Inc. (AS 7018)", + "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], + "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], + "location" : "San Francisco Bay Area", "verifySslCertificates" : true }, { "agentId" : "281474976710706", "agentType" : "enterprise-cluster", - "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], "prefix" : "99.128.0.0/11", "coordinates" : { "latitude" : 37.77493, "longitude" : -122.41942 }, "agentName" : "thousandeyes-stg-va-254", - "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], - "location" : "San Francisco Bay Area", + "networkProviderInfo" : { + "asn" : 7018, + "name" : "AT&T Services, Inc.", + "type" : "isp" + }, "countryId" : "US", "enabled" : true, "network" : "AT&T Services, Inc. (AS 7018)", + "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], + "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], + "location" : "San Francisco Bay Area", "verifySslCertificates" : true } ], "createdDate" : "2022-07-17T22:00:54Z", @@ -275,37 +294,56 @@ class TestDNSTraceTestsApi(unittest.TestCase): "name" : "Artem label", "isBuiltin" : false } ], + "tags" : [ { + "id" : "5aeab5d5-0d34-4d44-a7ac-fb440185295c", + "value" : "San Francisco", + "key" : "Location" + }, { + "id" : "5aeab5d5-0d34-4d44-a7ac-fb440185295c", + "value" : "San Francisco", + "key" : "Location" + } ], "agents" : [ { "agentId" : "281474976710706", "agentType" : "enterprise-cluster", - "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], "prefix" : "99.128.0.0/11", "coordinates" : { "latitude" : 37.77493, "longitude" : -122.41942 }, "agentName" : "thousandeyes-stg-va-254", - "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], - "location" : "San Francisco Bay Area", + "networkProviderInfo" : { + "asn" : 7018, + "name" : "AT&T Services, Inc.", + "type" : "isp" + }, "countryId" : "US", "enabled" : true, "network" : "AT&T Services, Inc. (AS 7018)", + "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], + "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], + "location" : "San Francisco Bay Area", "verifySslCertificates" : true }, { "agentId" : "281474976710706", "agentType" : "enterprise-cluster", - "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], "prefix" : "99.128.0.0/11", "coordinates" : { "latitude" : 37.77493, "longitude" : -122.41942 }, "agentName" : "thousandeyes-stg-va-254", - "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], - "location" : "San Francisco Bay Area", + "networkProviderInfo" : { + "asn" : 7018, + "name" : "AT&T Services, Inc.", + "type" : "isp" + }, "countryId" : "US", "enabled" : true, "network" : "AT&T Services, Inc. (AS 7018)", + "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], + "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], + "location" : "San Francisco Bay Area", "verifySslCertificates" : true } ], "createdDate" : "2022-07-17T22:00:54Z", @@ -448,8 +486,8 @@ class TestDNSTraceTestsApi(unittest.TestCase): } }, "liveShare" : false, - "alertRules" : [ "344753", "212697" ], "savedEvent" : true, + "alertRules" : [ "344753", "212697" ], "description" : "ThousandEyes Test", "dnsTransportProtocol" : "udp", "type" : "dns-trace", @@ -545,37 +583,56 @@ class TestDNSTraceTestsApi(unittest.TestCase): "name" : "Artem label", "isBuiltin" : false } ], + "tags" : [ { + "id" : "5aeab5d5-0d34-4d44-a7ac-fb440185295c", + "value" : "San Francisco", + "key" : "Location" + }, { + "id" : "5aeab5d5-0d34-4d44-a7ac-fb440185295c", + "value" : "San Francisco", + "key" : "Location" + } ], "agents" : [ { "agentId" : "281474976710706", "agentType" : "enterprise-cluster", - "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], "prefix" : "99.128.0.0/11", "coordinates" : { "latitude" : 37.77493, "longitude" : -122.41942 }, "agentName" : "thousandeyes-stg-va-254", - "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], - "location" : "San Francisco Bay Area", + "networkProviderInfo" : { + "asn" : 7018, + "name" : "AT&T Services, Inc.", + "type" : "isp" + }, "countryId" : "US", "enabled" : true, "network" : "AT&T Services, Inc. (AS 7018)", + "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], + "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], + "location" : "San Francisco Bay Area", "verifySslCertificates" : true }, { "agentId" : "281474976710706", "agentType" : "enterprise-cluster", - "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], "prefix" : "99.128.0.0/11", "coordinates" : { "latitude" : 37.77493, "longitude" : -122.41942 }, "agentName" : "thousandeyes-stg-va-254", - "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], - "location" : "San Francisco Bay Area", + "networkProviderInfo" : { + "asn" : 7018, + "name" : "AT&T Services, Inc.", + "type" : "isp" + }, "countryId" : "US", "enabled" : true, "network" : "AT&T Services, Inc. (AS 7018)", + "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], + "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], + "location" : "San Francisco Bay Area", "verifySslCertificates" : true } ], "createdDate" : "2022-07-17T22:00:54Z", diff --git a/thousandeyes-sdk-tests/test/test_dnssec_tests_api.py b/thousandeyes-sdk-tests/test/test_dnssec_tests_api.py index f817684f..21e2aa7c 100644 --- a/thousandeyes-sdk-tests/test/test_dnssec_tests_api.py +++ b/thousandeyes-sdk-tests/test/test_dnssec_tests_api.py @@ -51,8 +51,8 @@ class TestDNSSECTestsApi(unittest.TestCase): } }, "liveShare" : false, - "alertRules" : [ "344753", "212697" ], "savedEvent" : true, + "alertRules" : [ "344753", "212697" ], "description" : "ThousandEyes Test", "type" : "dnssec", "enabled" : true, @@ -146,37 +146,56 @@ class TestDNSSECTestsApi(unittest.TestCase): "name" : "Artem label", "isBuiltin" : false } ], + "tags" : [ { + "id" : "5aeab5d5-0d34-4d44-a7ac-fb440185295c", + "value" : "San Francisco", + "key" : "Location" + }, { + "id" : "5aeab5d5-0d34-4d44-a7ac-fb440185295c", + "value" : "San Francisco", + "key" : "Location" + } ], "agents" : [ { "agentId" : "281474976710706", "agentType" : "enterprise-cluster", - "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], "prefix" : "99.128.0.0/11", "coordinates" : { "latitude" : 37.77493, "longitude" : -122.41942 }, "agentName" : "thousandeyes-stg-va-254", - "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], - "location" : "San Francisco Bay Area", + "networkProviderInfo" : { + "asn" : 7018, + "name" : "AT&T Services, Inc.", + "type" : "isp" + }, "countryId" : "US", "enabled" : true, "network" : "AT&T Services, Inc. (AS 7018)", + "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], + "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], + "location" : "San Francisco Bay Area", "verifySslCertificates" : true }, { "agentId" : "281474976710706", "agentType" : "enterprise-cluster", - "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], "prefix" : "99.128.0.0/11", "coordinates" : { "latitude" : 37.77493, "longitude" : -122.41942 }, "agentName" : "thousandeyes-stg-va-254", - "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], - "location" : "San Francisco Bay Area", + "networkProviderInfo" : { + "asn" : 7018, + "name" : "AT&T Services, Inc.", + "type" : "isp" + }, "countryId" : "US", "enabled" : true, "network" : "AT&T Services, Inc. (AS 7018)", + "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], + "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], + "location" : "San Francisco Bay Area", "verifySslCertificates" : true } ], "createdDate" : "2022-07-17T22:00:54Z", @@ -272,37 +291,56 @@ class TestDNSSECTestsApi(unittest.TestCase): "name" : "Artem label", "isBuiltin" : false } ], + "tags" : [ { + "id" : "5aeab5d5-0d34-4d44-a7ac-fb440185295c", + "value" : "San Francisco", + "key" : "Location" + }, { + "id" : "5aeab5d5-0d34-4d44-a7ac-fb440185295c", + "value" : "San Francisco", + "key" : "Location" + } ], "agents" : [ { "agentId" : "281474976710706", "agentType" : "enterprise-cluster", - "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], "prefix" : "99.128.0.0/11", "coordinates" : { "latitude" : 37.77493, "longitude" : -122.41942 }, "agentName" : "thousandeyes-stg-va-254", - "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], - "location" : "San Francisco Bay Area", + "networkProviderInfo" : { + "asn" : 7018, + "name" : "AT&T Services, Inc.", + "type" : "isp" + }, "countryId" : "US", "enabled" : true, "network" : "AT&T Services, Inc. (AS 7018)", + "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], + "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], + "location" : "San Francisco Bay Area", "verifySslCertificates" : true }, { "agentId" : "281474976710706", "agentType" : "enterprise-cluster", - "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], "prefix" : "99.128.0.0/11", "coordinates" : { "latitude" : 37.77493, "longitude" : -122.41942 }, "agentName" : "thousandeyes-stg-va-254", - "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], - "location" : "San Francisco Bay Area", + "networkProviderInfo" : { + "asn" : 7018, + "name" : "AT&T Services, Inc.", + "type" : "isp" + }, "countryId" : "US", "enabled" : true, "network" : "AT&T Services, Inc. (AS 7018)", + "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], + "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], + "location" : "San Francisco Bay Area", "verifySslCertificates" : true } ], "createdDate" : "2022-07-17T22:00:54Z", @@ -443,8 +481,8 @@ class TestDNSSECTestsApi(unittest.TestCase): } }, "liveShare" : false, - "alertRules" : [ "344753", "212697" ], "savedEvent" : true, + "alertRules" : [ "344753", "212697" ], "description" : "ThousandEyes Test", "type" : "dnssec", "enabled" : true, @@ -538,37 +576,56 @@ class TestDNSSECTestsApi(unittest.TestCase): "name" : "Artem label", "isBuiltin" : false } ], + "tags" : [ { + "id" : "5aeab5d5-0d34-4d44-a7ac-fb440185295c", + "value" : "San Francisco", + "key" : "Location" + }, { + "id" : "5aeab5d5-0d34-4d44-a7ac-fb440185295c", + "value" : "San Francisco", + "key" : "Location" + } ], "agents" : [ { "agentId" : "281474976710706", "agentType" : "enterprise-cluster", - "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], "prefix" : "99.128.0.0/11", "coordinates" : { "latitude" : 37.77493, "longitude" : -122.41942 }, "agentName" : "thousandeyes-stg-va-254", - "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], - "location" : "San Francisco Bay Area", + "networkProviderInfo" : { + "asn" : 7018, + "name" : "AT&T Services, Inc.", + "type" : "isp" + }, "countryId" : "US", "enabled" : true, "network" : "AT&T Services, Inc. (AS 7018)", + "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], + "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], + "location" : "San Francisco Bay Area", "verifySslCertificates" : true }, { "agentId" : "281474976710706", "agentType" : "enterprise-cluster", - "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], "prefix" : "99.128.0.0/11", "coordinates" : { "latitude" : 37.77493, "longitude" : -122.41942 }, "agentName" : "thousandeyes-stg-va-254", - "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], - "location" : "San Francisco Bay Area", + "networkProviderInfo" : { + "asn" : 7018, + "name" : "AT&T Services, Inc.", + "type" : "isp" + }, "countryId" : "US", "enabled" : true, "network" : "AT&T Services, Inc. (AS 7018)", + "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], + "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], + "location" : "San Francisco Bay Area", "verifySslCertificates" : true } ], "createdDate" : "2022-07-17T22:00:54Z", diff --git a/thousandeyes-sdk-tests/test/test_ftp_server_tests_api.py b/thousandeyes-sdk-tests/test/test_ftp_server_tests_api.py index 47571f9c..46815543 100644 --- a/thousandeyes-sdk-tests/test/test_ftp_server_tests_api.py +++ b/thousandeyes-sdk-tests/test/test_ftp_server_tests_api.py @@ -184,37 +184,56 @@ class TestFTPServerTestsApi(unittest.TestCase): "name" : "Artem label", "isBuiltin" : false } ], + "tags" : [ { + "id" : "5aeab5d5-0d34-4d44-a7ac-fb440185295c", + "value" : "San Francisco", + "key" : "Location" + }, { + "id" : "5aeab5d5-0d34-4d44-a7ac-fb440185295c", + "value" : "San Francisco", + "key" : "Location" + } ], "agents" : [ { "agentId" : "281474976710706", "agentType" : "enterprise-cluster", - "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], "prefix" : "99.128.0.0/11", "coordinates" : { "latitude" : 37.77493, "longitude" : -122.41942 }, "agentName" : "thousandeyes-stg-va-254", - "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], - "location" : "San Francisco Bay Area", + "networkProviderInfo" : { + "asn" : 7018, + "name" : "AT&T Services, Inc.", + "type" : "isp" + }, "countryId" : "US", "enabled" : true, "network" : "AT&T Services, Inc. (AS 7018)", + "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], + "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], + "location" : "San Francisco Bay Area", "verifySslCertificates" : true }, { "agentId" : "281474976710706", "agentType" : "enterprise-cluster", - "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], "prefix" : "99.128.0.0/11", "coordinates" : { "latitude" : 37.77493, "longitude" : -122.41942 }, "agentName" : "thousandeyes-stg-va-254", - "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], - "location" : "San Francisco Bay Area", + "networkProviderInfo" : { + "asn" : 7018, + "name" : "AT&T Services, Inc.", + "type" : "isp" + }, "countryId" : "US", "enabled" : true, "network" : "AT&T Services, Inc. (AS 7018)", + "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], + "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], + "location" : "San Francisco Bay Area", "verifySslCertificates" : true } ], "createdDate" : "2022-07-17T22:00:54Z", @@ -343,37 +362,56 @@ class TestFTPServerTestsApi(unittest.TestCase): "name" : "Artem label", "isBuiltin" : false } ], + "tags" : [ { + "id" : "5aeab5d5-0d34-4d44-a7ac-fb440185295c", + "value" : "San Francisco", + "key" : "Location" + }, { + "id" : "5aeab5d5-0d34-4d44-a7ac-fb440185295c", + "value" : "San Francisco", + "key" : "Location" + } ], "agents" : [ { "agentId" : "281474976710706", "agentType" : "enterprise-cluster", - "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], "prefix" : "99.128.0.0/11", "coordinates" : { "latitude" : 37.77493, "longitude" : -122.41942 }, "agentName" : "thousandeyes-stg-va-254", - "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], - "location" : "San Francisco Bay Area", + "networkProviderInfo" : { + "asn" : 7018, + "name" : "AT&T Services, Inc.", + "type" : "isp" + }, "countryId" : "US", "enabled" : true, "network" : "AT&T Services, Inc. (AS 7018)", + "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], + "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], + "location" : "San Francisco Bay Area", "verifySslCertificates" : true }, { "agentId" : "281474976710706", "agentType" : "enterprise-cluster", - "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], "prefix" : "99.128.0.0/11", "coordinates" : { "latitude" : 37.77493, "longitude" : -122.41942 }, "agentName" : "thousandeyes-stg-va-254", - "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], - "location" : "San Francisco Bay Area", + "networkProviderInfo" : { + "asn" : 7018, + "name" : "AT&T Services, Inc.", + "type" : "isp" + }, "countryId" : "US", "enabled" : true, "network" : "AT&T Services, Inc. (AS 7018)", + "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], + "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], + "location" : "San Francisco Bay Area", "verifySslCertificates" : true } ], "createdDate" : "2022-07-17T22:00:54Z", @@ -697,37 +735,56 @@ class TestFTPServerTestsApi(unittest.TestCase): "name" : "Artem label", "isBuiltin" : false } ], + "tags" : [ { + "id" : "5aeab5d5-0d34-4d44-a7ac-fb440185295c", + "value" : "San Francisco", + "key" : "Location" + }, { + "id" : "5aeab5d5-0d34-4d44-a7ac-fb440185295c", + "value" : "San Francisco", + "key" : "Location" + } ], "agents" : [ { "agentId" : "281474976710706", "agentType" : "enterprise-cluster", - "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], "prefix" : "99.128.0.0/11", "coordinates" : { "latitude" : 37.77493, "longitude" : -122.41942 }, "agentName" : "thousandeyes-stg-va-254", - "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], - "location" : "San Francisco Bay Area", + "networkProviderInfo" : { + "asn" : 7018, + "name" : "AT&T Services, Inc.", + "type" : "isp" + }, "countryId" : "US", "enabled" : true, "network" : "AT&T Services, Inc. (AS 7018)", + "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], + "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], + "location" : "San Francisco Bay Area", "verifySslCertificates" : true }, { "agentId" : "281474976710706", "agentType" : "enterprise-cluster", - "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], "prefix" : "99.128.0.0/11", "coordinates" : { "latitude" : 37.77493, "longitude" : -122.41942 }, "agentName" : "thousandeyes-stg-va-254", - "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], - "location" : "San Francisco Bay Area", + "networkProviderInfo" : { + "asn" : 7018, + "name" : "AT&T Services, Inc.", + "type" : "isp" + }, "countryId" : "US", "enabled" : true, "network" : "AT&T Services, Inc. (AS 7018)", + "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], + "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], + "location" : "San Francisco Bay Area", "verifySslCertificates" : true } ], "createdDate" : "2022-07-17T22:00:54Z", diff --git a/thousandeyes-sdk-tests/test/test_http_server_tests_api.py b/thousandeyes-sdk-tests/test/test_http_server_tests_api.py index e174a8bc..4fef9101 100644 --- a/thousandeyes-sdk-tests/test/test_http_server_tests_api.py +++ b/thousandeyes-sdk-tests/test/test_http_server_tests_api.py @@ -89,11 +89,19 @@ class TestHTTPServerTestsApi(unittest.TestCase): "useNtlm" : false, "ipv6Policy" : "use-agent-policy", "downloadLimit" : 2048, + "requestMethod" : "get", "alertRules" : [ "344753", "212697" ], "description" : "ThousandEyes Test", "httpTimeLimit" : 5, "usePublicBgp" : true, "enabled" : true, + "vaultCredentials" : [ { + "secretId" : "f27e85b2-318b-4145-b5aa-c9dc8d8b0819", + "target" : "username" + }, { + "secretId" : "f27e85b2-318b-4145-b5aa-c9dc8d8b0819", + "target" : "username" + } ], "allowUnsafeLegacyRenegotiation" : true, "fixedPacketRate" : 50, "httpVersion" : 2, @@ -201,6 +209,15 @@ class TestHTTPServerTestsApi(unittest.TestCase): "name" : "Artem label", "isBuiltin" : false } ], + "tags" : [ { + "id" : "5aeab5d5-0d34-4d44-a7ac-fb440185295c", + "value" : "San Francisco", + "key" : "Location" + }, { + "id" : "5aeab5d5-0d34-4d44-a7ac-fb440185295c", + "value" : "San Francisco", + "key" : "Location" + } ], "randomizedStartTime" : false, "modifiedDate" : "2022-07-17T22:00:54Z", "interval" : 60, @@ -260,10 +277,18 @@ class TestHTTPServerTestsApi(unittest.TestCase): "ruleId" : "127094", "direction" : "to-target" } ], + "requestMethod" : "get", "description" : "ThousandEyes Test", "httpTimeLimit" : 5, "usePublicBgp" : true, "enabled" : true, + "vaultCredentials" : [ { + "secretId" : "f27e85b2-318b-4145-b5aa-c9dc8d8b0819", + "target" : "username" + }, { + "secretId" : "f27e85b2-318b-4145-b5aa-c9dc8d8b0819", + "target" : "username" + } ], "allowUnsafeLegacyRenegotiation" : true, "fixedPacketRate" : 50, "httpVersion" : 2, @@ -296,34 +321,44 @@ class TestHTTPServerTestsApi(unittest.TestCase): "agents" : [ { "agentId" : "281474976710706", "agentType" : "enterprise-cluster", - "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], "prefix" : "99.128.0.0/11", "coordinates" : { "latitude" : 37.77493, "longitude" : -122.41942 }, "agentName" : "thousandeyes-stg-va-254", - "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], - "location" : "San Francisco Bay Area", + "networkProviderInfo" : { + "asn" : 7018, + "name" : "AT&T Services, Inc.", + "type" : "isp" + }, "countryId" : "US", "enabled" : true, "network" : "AT&T Services, Inc. (AS 7018)", + "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], + "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], + "location" : "San Francisco Bay Area", "verifySslCertificates" : true }, { "agentId" : "281474976710706", "agentType" : "enterprise-cluster", - "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], "prefix" : "99.128.0.0/11", "coordinates" : { "latitude" : 37.77493, "longitude" : -122.41942 }, "agentName" : "thousandeyes-stg-va-254", - "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], - "location" : "San Francisco Bay Area", + "networkProviderInfo" : { + "asn" : 7018, + "name" : "AT&T Services, Inc.", + "type" : "isp" + }, "countryId" : "US", "enabled" : true, "network" : "AT&T Services, Inc. (AS 7018)", + "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], + "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], + "location" : "San Francisco Bay Area", "verifySslCertificates" : true } ], "createdDate" : "2022-07-17T22:00:54Z", @@ -403,6 +438,15 @@ class TestHTTPServerTestsApi(unittest.TestCase): "name" : "Artem label", "isBuiltin" : false } ], + "tags" : [ { + "id" : "5aeab5d5-0d34-4d44-a7ac-fb440185295c", + "value" : "San Francisco", + "key" : "Location" + }, { + "id" : "5aeab5d5-0d34-4d44-a7ac-fb440185295c", + "value" : "San Francisco", + "key" : "Location" + } ], "randomizedStartTime" : false, "modifiedDate" : "2022-07-17T22:00:54Z", "interval" : 60, @@ -462,10 +506,18 @@ class TestHTTPServerTestsApi(unittest.TestCase): "ruleId" : "127094", "direction" : "to-target" } ], + "requestMethod" : "get", "description" : "ThousandEyes Test", "httpTimeLimit" : 5, "usePublicBgp" : true, "enabled" : true, + "vaultCredentials" : [ { + "secretId" : "f27e85b2-318b-4145-b5aa-c9dc8d8b0819", + "target" : "username" + }, { + "secretId" : "f27e85b2-318b-4145-b5aa-c9dc8d8b0819", + "target" : "username" + } ], "allowUnsafeLegacyRenegotiation" : true, "fixedPacketRate" : 50, "httpVersion" : 2, @@ -498,34 +550,44 @@ class TestHTTPServerTestsApi(unittest.TestCase): "agents" : [ { "agentId" : "281474976710706", "agentType" : "enterprise-cluster", - "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], "prefix" : "99.128.0.0/11", "coordinates" : { "latitude" : 37.77493, "longitude" : -122.41942 }, "agentName" : "thousandeyes-stg-va-254", - "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], - "location" : "San Francisco Bay Area", + "networkProviderInfo" : { + "asn" : 7018, + "name" : "AT&T Services, Inc.", + "type" : "isp" + }, "countryId" : "US", "enabled" : true, "network" : "AT&T Services, Inc. (AS 7018)", + "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], + "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], + "location" : "San Francisco Bay Area", "verifySslCertificates" : true }, { "agentId" : "281474976710706", "agentType" : "enterprise-cluster", - "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], "prefix" : "99.128.0.0/11", "coordinates" : { "latitude" : 37.77493, "longitude" : -122.41942 }, "agentName" : "thousandeyes-stg-va-254", - "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], - "location" : "San Francisco Bay Area", + "networkProviderInfo" : { + "asn" : 7018, + "name" : "AT&T Services, Inc.", + "type" : "isp" + }, "countryId" : "US", "enabled" : true, "network" : "AT&T Services, Inc. (AS 7018)", + "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], + "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], + "location" : "San Francisco Bay Area", "verifySslCertificates" : true } ], "createdDate" : "2022-07-17T22:00:54Z", @@ -601,10 +663,18 @@ class TestHTTPServerTestsApi(unittest.TestCase): "useNtlm" : false, "ipv6Policy" : "use-agent-policy", "downloadLimit" : 2048, + "requestMethod" : "get", "description" : "ThousandEyes Test", "httpTimeLimit" : 5, "usePublicBgp" : true, "enabled" : true, + "vaultCredentials" : [ { + "secretId" : "f27e85b2-318b-4145-b5aa-c9dc8d8b0819", + "target" : "username" + }, { + "secretId" : "f27e85b2-318b-4145-b5aa-c9dc8d8b0819", + "target" : "username" + } ], "allowUnsafeLegacyRenegotiation" : true, "fixedPacketRate" : 50, "httpVersion" : 2, @@ -696,10 +766,18 @@ class TestHTTPServerTestsApi(unittest.TestCase): "useNtlm" : false, "ipv6Policy" : "use-agent-policy", "downloadLimit" : 2048, + "requestMethod" : "get", "description" : "ThousandEyes Test", "httpTimeLimit" : 5, "usePublicBgp" : true, "enabled" : true, + "vaultCredentials" : [ { + "secretId" : "f27e85b2-318b-4145-b5aa-c9dc8d8b0819", + "target" : "username" + }, { + "secretId" : "f27e85b2-318b-4145-b5aa-c9dc8d8b0819", + "target" : "username" + } ], "allowUnsafeLegacyRenegotiation" : true, "fixedPacketRate" : 50, "httpVersion" : 2, @@ -817,11 +895,19 @@ class TestHTTPServerTestsApi(unittest.TestCase): "useNtlm" : false, "ipv6Policy" : "use-agent-policy", "downloadLimit" : 2048, + "requestMethod" : "get", "alertRules" : [ "344753", "212697" ], "description" : "ThousandEyes Test", "httpTimeLimit" : 5, "usePublicBgp" : true, "enabled" : true, + "vaultCredentials" : [ { + "secretId" : "f27e85b2-318b-4145-b5aa-c9dc8d8b0819", + "target" : "username" + }, { + "secretId" : "f27e85b2-318b-4145-b5aa-c9dc8d8b0819", + "target" : "username" + } ], "allowUnsafeLegacyRenegotiation" : true, "fixedPacketRate" : 50, "httpVersion" : 2, @@ -929,6 +1015,15 @@ class TestHTTPServerTestsApi(unittest.TestCase): "name" : "Artem label", "isBuiltin" : false } ], + "tags" : [ { + "id" : "5aeab5d5-0d34-4d44-a7ac-fb440185295c", + "value" : "San Francisco", + "key" : "Location" + }, { + "id" : "5aeab5d5-0d34-4d44-a7ac-fb440185295c", + "value" : "San Francisco", + "key" : "Location" + } ], "randomizedStartTime" : false, "modifiedDate" : "2022-07-17T22:00:54Z", "interval" : 60, @@ -988,10 +1083,18 @@ class TestHTTPServerTestsApi(unittest.TestCase): "ruleId" : "127094", "direction" : "to-target" } ], + "requestMethod" : "get", "description" : "ThousandEyes Test", "httpTimeLimit" : 5, "usePublicBgp" : true, "enabled" : true, + "vaultCredentials" : [ { + "secretId" : "f27e85b2-318b-4145-b5aa-c9dc8d8b0819", + "target" : "username" + }, { + "secretId" : "f27e85b2-318b-4145-b5aa-c9dc8d8b0819", + "target" : "username" + } ], "allowUnsafeLegacyRenegotiation" : true, "fixedPacketRate" : 50, "httpVersion" : 2, @@ -1024,34 +1127,44 @@ class TestHTTPServerTestsApi(unittest.TestCase): "agents" : [ { "agentId" : "281474976710706", "agentType" : "enterprise-cluster", - "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], "prefix" : "99.128.0.0/11", "coordinates" : { "latitude" : 37.77493, "longitude" : -122.41942 }, "agentName" : "thousandeyes-stg-va-254", - "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], - "location" : "San Francisco Bay Area", + "networkProviderInfo" : { + "asn" : 7018, + "name" : "AT&T Services, Inc.", + "type" : "isp" + }, "countryId" : "US", "enabled" : true, "network" : "AT&T Services, Inc. (AS 7018)", + "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], + "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], + "location" : "San Francisco Bay Area", "verifySslCertificates" : true }, { "agentId" : "281474976710706", "agentType" : "enterprise-cluster", - "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], "prefix" : "99.128.0.0/11", "coordinates" : { "latitude" : 37.77493, "longitude" : -122.41942 }, "agentName" : "thousandeyes-stg-va-254", - "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], - "location" : "San Francisco Bay Area", + "networkProviderInfo" : { + "asn" : 7018, + "name" : "AT&T Services, Inc.", + "type" : "isp" + }, "countryId" : "US", "enabled" : true, "network" : "AT&T Services, Inc. (AS 7018)", + "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], + "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], + "location" : "San Francisco Bay Area", "verifySslCertificates" : true } ], "createdDate" : "2022-07-17T22:00:54Z", diff --git a/thousandeyes-sdk-tests/test/test_page_load_tests_api.py b/thousandeyes-sdk-tests/test/test_page_load_tests_api.py index 415a6c40..a31afdd4 100644 --- a/thousandeyes-sdk-tests/test/test_page_load_tests_api.py +++ b/thousandeyes-sdk-tests/test/test_page_load_tests_api.py @@ -100,6 +100,13 @@ class TestPageLoadTestsApi(unittest.TestCase): "blockDomains" : "domain.com/", "usePublicBgp" : true, "enabled" : true, + "vaultCredentials" : [ { + "secretId" : "f27e85b2-318b-4145-b5aa-c9dc8d8b0819", + "target" : "username" + }, { + "secretId" : "f27e85b2-318b-4145-b5aa-c9dc8d8b0819", + "target" : "username" + } ], "allowGeolocation" : false, "allowUnsafeLegacyRenegotiation" : true, "fixedPacketRate" : 50, @@ -216,6 +223,15 @@ class TestPageLoadTestsApi(unittest.TestCase): "name" : "Artem label", "isBuiltin" : false } ], + "tags" : [ { + "id" : "5aeab5d5-0d34-4d44-a7ac-fb440185295c", + "value" : "San Francisco", + "key" : "Location" + }, { + "id" : "5aeab5d5-0d34-4d44-a7ac-fb440185295c", + "value" : "San Francisco", + "key" : "Location" + } ], "httpInterval" : 120, "randomizedStartTime" : false, "modifiedDate" : "2022-07-17T22:00:54Z", @@ -281,6 +297,13 @@ class TestPageLoadTestsApi(unittest.TestCase): "blockDomains" : "domain.com/", "usePublicBgp" : true, "enabled" : true, + "vaultCredentials" : [ { + "secretId" : "f27e85b2-318b-4145-b5aa-c9dc8d8b0819", + "target" : "username" + }, { + "secretId" : "f27e85b2-318b-4145-b5aa-c9dc8d8b0819", + "target" : "username" + } ], "allowGeolocation" : false, "allowUnsafeLegacyRenegotiation" : true, "fixedPacketRate" : 50, @@ -316,34 +339,44 @@ class TestPageLoadTestsApi(unittest.TestCase): "agents" : [ { "agentId" : "281474976710706", "agentType" : "enterprise-cluster", - "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], "prefix" : "99.128.0.0/11", "coordinates" : { "latitude" : 37.77493, "longitude" : -122.41942 }, "agentName" : "thousandeyes-stg-va-254", - "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], - "location" : "San Francisco Bay Area", + "networkProviderInfo" : { + "asn" : 7018, + "name" : "AT&T Services, Inc.", + "type" : "isp" + }, "countryId" : "US", "enabled" : true, "network" : "AT&T Services, Inc. (AS 7018)", + "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], + "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], + "location" : "San Francisco Bay Area", "verifySslCertificates" : true }, { "agentId" : "281474976710706", "agentType" : "enterprise-cluster", - "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], "prefix" : "99.128.0.0/11", "coordinates" : { "latitude" : 37.77493, "longitude" : -122.41942 }, "agentName" : "thousandeyes-stg-va-254", - "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], - "location" : "San Francisco Bay Area", + "networkProviderInfo" : { + "asn" : 7018, + "name" : "AT&T Services, Inc.", + "type" : "isp" + }, "countryId" : "US", "enabled" : true, "network" : "AT&T Services, Inc. (AS 7018)", + "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], + "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], + "location" : "San Francisco Bay Area", "verifySslCertificates" : true } ], "createdDate" : "2022-07-17T22:00:54Z", @@ -429,6 +462,15 @@ class TestPageLoadTestsApi(unittest.TestCase): "name" : "Artem label", "isBuiltin" : false } ], + "tags" : [ { + "id" : "5aeab5d5-0d34-4d44-a7ac-fb440185295c", + "value" : "San Francisco", + "key" : "Location" + }, { + "id" : "5aeab5d5-0d34-4d44-a7ac-fb440185295c", + "value" : "San Francisco", + "key" : "Location" + } ], "httpInterval" : 120, "randomizedStartTime" : false, "modifiedDate" : "2022-07-17T22:00:54Z", @@ -494,6 +536,13 @@ class TestPageLoadTestsApi(unittest.TestCase): "blockDomains" : "domain.com/", "usePublicBgp" : true, "enabled" : true, + "vaultCredentials" : [ { + "secretId" : "f27e85b2-318b-4145-b5aa-c9dc8d8b0819", + "target" : "username" + }, { + "secretId" : "f27e85b2-318b-4145-b5aa-c9dc8d8b0819", + "target" : "username" + } ], "allowGeolocation" : false, "allowUnsafeLegacyRenegotiation" : true, "fixedPacketRate" : 50, @@ -529,34 +578,44 @@ class TestPageLoadTestsApi(unittest.TestCase): "agents" : [ { "agentId" : "281474976710706", "agentType" : "enterprise-cluster", - "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], "prefix" : "99.128.0.0/11", "coordinates" : { "latitude" : 37.77493, "longitude" : -122.41942 }, "agentName" : "thousandeyes-stg-va-254", - "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], - "location" : "San Francisco Bay Area", + "networkProviderInfo" : { + "asn" : 7018, + "name" : "AT&T Services, Inc.", + "type" : "isp" + }, "countryId" : "US", "enabled" : true, "network" : "AT&T Services, Inc. (AS 7018)", + "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], + "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], + "location" : "San Francisco Bay Area", "verifySslCertificates" : true }, { "agentId" : "281474976710706", "agentType" : "enterprise-cluster", - "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], "prefix" : "99.128.0.0/11", "coordinates" : { "latitude" : 37.77493, "longitude" : -122.41942 }, "agentName" : "thousandeyes-stg-va-254", - "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], - "location" : "San Francisco Bay Area", + "networkProviderInfo" : { + "asn" : 7018, + "name" : "AT&T Services, Inc.", + "type" : "isp" + }, "countryId" : "US", "enabled" : true, "network" : "AT&T Services, Inc. (AS 7018)", + "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], + "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], + "location" : "San Francisco Bay Area", "verifySslCertificates" : true } ], "createdDate" : "2022-07-17T22:00:54Z", @@ -644,6 +703,13 @@ class TestPageLoadTestsApi(unittest.TestCase): "blockDomains" : "domain.com/", "usePublicBgp" : true, "enabled" : true, + "vaultCredentials" : [ { + "secretId" : "f27e85b2-318b-4145-b5aa-c9dc8d8b0819", + "target" : "username" + }, { + "secretId" : "f27e85b2-318b-4145-b5aa-c9dc8d8b0819", + "target" : "username" + } ], "allowGeolocation" : false, "allowUnsafeLegacyRenegotiation" : true, "fixedPacketRate" : 50, @@ -750,6 +816,13 @@ class TestPageLoadTestsApi(unittest.TestCase): "blockDomains" : "domain.com/", "usePublicBgp" : true, "enabled" : true, + "vaultCredentials" : [ { + "secretId" : "f27e85b2-318b-4145-b5aa-c9dc8d8b0819", + "target" : "username" + }, { + "secretId" : "f27e85b2-318b-4145-b5aa-c9dc8d8b0819", + "target" : "username" + } ], "allowGeolocation" : false, "allowUnsafeLegacyRenegotiation" : true, "fixedPacketRate" : 50, @@ -883,6 +956,13 @@ class TestPageLoadTestsApi(unittest.TestCase): "blockDomains" : "domain.com/", "usePublicBgp" : true, "enabled" : true, + "vaultCredentials" : [ { + "secretId" : "f27e85b2-318b-4145-b5aa-c9dc8d8b0819", + "target" : "username" + }, { + "secretId" : "f27e85b2-318b-4145-b5aa-c9dc8d8b0819", + "target" : "username" + } ], "allowGeolocation" : false, "allowUnsafeLegacyRenegotiation" : true, "fixedPacketRate" : 50, @@ -999,6 +1079,15 @@ class TestPageLoadTestsApi(unittest.TestCase): "name" : "Artem label", "isBuiltin" : false } ], + "tags" : [ { + "id" : "5aeab5d5-0d34-4d44-a7ac-fb440185295c", + "value" : "San Francisco", + "key" : "Location" + }, { + "id" : "5aeab5d5-0d34-4d44-a7ac-fb440185295c", + "value" : "San Francisco", + "key" : "Location" + } ], "httpInterval" : 120, "randomizedStartTime" : false, "modifiedDate" : "2022-07-17T22:00:54Z", @@ -1064,6 +1153,13 @@ class TestPageLoadTestsApi(unittest.TestCase): "blockDomains" : "domain.com/", "usePublicBgp" : true, "enabled" : true, + "vaultCredentials" : [ { + "secretId" : "f27e85b2-318b-4145-b5aa-c9dc8d8b0819", + "target" : "username" + }, { + "secretId" : "f27e85b2-318b-4145-b5aa-c9dc8d8b0819", + "target" : "username" + } ], "allowGeolocation" : false, "allowUnsafeLegacyRenegotiation" : true, "fixedPacketRate" : 50, @@ -1099,34 +1195,44 @@ class TestPageLoadTestsApi(unittest.TestCase): "agents" : [ { "agentId" : "281474976710706", "agentType" : "enterprise-cluster", - "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], "prefix" : "99.128.0.0/11", "coordinates" : { "latitude" : 37.77493, "longitude" : -122.41942 }, "agentName" : "thousandeyes-stg-va-254", - "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], - "location" : "San Francisco Bay Area", + "networkProviderInfo" : { + "asn" : 7018, + "name" : "AT&T Services, Inc.", + "type" : "isp" + }, "countryId" : "US", "enabled" : true, "network" : "AT&T Services, Inc. (AS 7018)", + "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], + "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], + "location" : "San Francisco Bay Area", "verifySslCertificates" : true }, { "agentId" : "281474976710706", "agentType" : "enterprise-cluster", - "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], "prefix" : "99.128.0.0/11", "coordinates" : { "latitude" : 37.77493, "longitude" : -122.41942 }, "agentName" : "thousandeyes-stg-va-254", - "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], - "location" : "San Francisco Bay Area", + "networkProviderInfo" : { + "asn" : 7018, + "name" : "AT&T Services, Inc.", + "type" : "isp" + }, "countryId" : "US", "enabled" : true, "network" : "AT&T Services, Inc. (AS 7018)", + "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], + "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], + "location" : "San Francisco Bay Area", "verifySslCertificates" : true } ], "createdDate" : "2022-07-17T22:00:54Z", diff --git a/thousandeyes-sdk-tests/test/test_sip_server_tests_api.py b/thousandeyes-sdk-tests/test/test_sip_server_tests_api.py index b19219c3..5a653203 100644 --- a/thousandeyes-sdk-tests/test/test_sip_server_tests_api.py +++ b/thousandeyes-sdk-tests/test/test_sip_server_tests_api.py @@ -95,21 +95,7 @@ class TestSIPServerTestsApi(unittest.TestCase): "interval" : 60, "testId" : "281474976710706", "sharedWithAccounts" : [ "1234", "12345" ], - "monitors" : [ { - "monitorType" : "public", - "monitorId" : "1234", - "monitorName" : "Seattle, WA", - "ipAddress" : "4.69.184.193", - "countryId" : "GB", - "network" : "Level 3 Communications, Inc. (AS 3356)" - }, { - "monitorType" : "public", - "monitorId" : "1234", - "monitorName" : "Seattle, WA", - "ipAddress" : "4.69.184.193", - "countryId" : "GB", - "network" : "Level 3 Communications, Inc. (AS 3356)" - } ] + "monitors" : [ "17410", "5" ] } """ @@ -198,37 +184,56 @@ class TestSIPServerTestsApi(unittest.TestCase): "name" : "Artem label", "isBuiltin" : false } ], + "tags" : [ { + "id" : "5aeab5d5-0d34-4d44-a7ac-fb440185295c", + "value" : "San Francisco", + "key" : "Location" + }, { + "id" : "5aeab5d5-0d34-4d44-a7ac-fb440185295c", + "value" : "San Francisco", + "key" : "Location" + } ], "agents" : [ { "agentId" : "281474976710706", "agentType" : "enterprise-cluster", - "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], "prefix" : "99.128.0.0/11", "coordinates" : { "latitude" : 37.77493, "longitude" : -122.41942 }, "agentName" : "thousandeyes-stg-va-254", - "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], - "location" : "San Francisco Bay Area", + "networkProviderInfo" : { + "asn" : 7018, + "name" : "AT&T Services, Inc.", + "type" : "isp" + }, "countryId" : "US", "enabled" : true, "network" : "AT&T Services, Inc. (AS 7018)", + "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], + "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], + "location" : "San Francisco Bay Area", "verifySslCertificates" : true }, { "agentId" : "281474976710706", "agentType" : "enterprise-cluster", - "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], "prefix" : "99.128.0.0/11", "coordinates" : { "latitude" : 37.77493, "longitude" : -122.41942 }, "agentName" : "thousandeyes-stg-va-254", - "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], - "location" : "San Francisco Bay Area", + "networkProviderInfo" : { + "asn" : 7018, + "name" : "AT&T Services, Inc.", + "type" : "isp" + }, "countryId" : "US", "enabled" : true, "network" : "AT&T Services, Inc. (AS 7018)", + "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], + "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], + "location" : "San Francisco Bay Area", "verifySslCertificates" : true } ], "createdDate" : "2022-07-17T22:00:54Z", @@ -356,37 +361,56 @@ class TestSIPServerTestsApi(unittest.TestCase): "name" : "Artem label", "isBuiltin" : false } ], + "tags" : [ { + "id" : "5aeab5d5-0d34-4d44-a7ac-fb440185295c", + "value" : "San Francisco", + "key" : "Location" + }, { + "id" : "5aeab5d5-0d34-4d44-a7ac-fb440185295c", + "value" : "San Francisco", + "key" : "Location" + } ], "agents" : [ { "agentId" : "281474976710706", "agentType" : "enterprise-cluster", - "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], "prefix" : "99.128.0.0/11", "coordinates" : { "latitude" : 37.77493, "longitude" : -122.41942 }, "agentName" : "thousandeyes-stg-va-254", - "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], - "location" : "San Francisco Bay Area", + "networkProviderInfo" : { + "asn" : 7018, + "name" : "AT&T Services, Inc.", + "type" : "isp" + }, "countryId" : "US", "enabled" : true, "network" : "AT&T Services, Inc. (AS 7018)", + "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], + "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], + "location" : "San Francisco Bay Area", "verifySslCertificates" : true }, { "agentId" : "281474976710706", "agentType" : "enterprise-cluster", - "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], "prefix" : "99.128.0.0/11", "coordinates" : { "latitude" : 37.77493, "longitude" : -122.41942 }, "agentName" : "thousandeyes-stg-va-254", - "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], - "location" : "San Francisco Bay Area", + "networkProviderInfo" : { + "asn" : 7018, + "name" : "AT&T Services, Inc.", + "type" : "isp" + }, "countryId" : "US", "enabled" : true, "network" : "AT&T Services, Inc. (AS 7018)", + "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], + "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], + "location" : "San Francisco Bay Area", "verifySslCertificates" : true } ], "createdDate" : "2022-07-17T22:00:54Z", @@ -619,21 +643,7 @@ class TestSIPServerTestsApi(unittest.TestCase): "interval" : 60, "testId" : "281474976710706", "sharedWithAccounts" : [ "1234", "12345" ], - "monitors" : [ { - "monitorType" : "public", - "monitorId" : "1234", - "monitorName" : "Seattle, WA", - "ipAddress" : "4.69.184.193", - "countryId" : "GB", - "network" : "Level 3 Communications, Inc. (AS 3356)" - }, { - "monitorType" : "public", - "monitorId" : "1234", - "monitorName" : "Seattle, WA", - "ipAddress" : "4.69.184.193", - "countryId" : "GB", - "network" : "Level 3 Communications, Inc. (AS 3356)" - } ] + "monitors" : [ "17410", "5" ] } """ @@ -722,37 +732,56 @@ class TestSIPServerTestsApi(unittest.TestCase): "name" : "Artem label", "isBuiltin" : false } ], + "tags" : [ { + "id" : "5aeab5d5-0d34-4d44-a7ac-fb440185295c", + "value" : "San Francisco", + "key" : "Location" + }, { + "id" : "5aeab5d5-0d34-4d44-a7ac-fb440185295c", + "value" : "San Francisco", + "key" : "Location" + } ], "agents" : [ { "agentId" : "281474976710706", "agentType" : "enterprise-cluster", - "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], "prefix" : "99.128.0.0/11", "coordinates" : { "latitude" : 37.77493, "longitude" : -122.41942 }, "agentName" : "thousandeyes-stg-va-254", - "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], - "location" : "San Francisco Bay Area", + "networkProviderInfo" : { + "asn" : 7018, + "name" : "AT&T Services, Inc.", + "type" : "isp" + }, "countryId" : "US", "enabled" : true, "network" : "AT&T Services, Inc. (AS 7018)", + "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], + "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], + "location" : "San Francisco Bay Area", "verifySslCertificates" : true }, { "agentId" : "281474976710706", "agentType" : "enterprise-cluster", - "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], "prefix" : "99.128.0.0/11", "coordinates" : { "latitude" : 37.77493, "longitude" : -122.41942 }, "agentName" : "thousandeyes-stg-va-254", - "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], - "location" : "San Francisco Bay Area", + "networkProviderInfo" : { + "asn" : 7018, + "name" : "AT&T Services, Inc.", + "type" : "isp" + }, "countryId" : "US", "enabled" : true, "network" : "AT&T Services, Inc. (AS 7018)", + "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], + "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], + "location" : "San Francisco Bay Area", "verifySslCertificates" : true } ], "createdDate" : "2022-07-17T22:00:54Z", diff --git a/thousandeyes-sdk-tests/test/test_voice_tests_api.py b/thousandeyes-sdk-tests/test/test_voice_tests_api.py index 06af0dd2..dc756b75 100644 --- a/thousandeyes-sdk-tests/test/test_voice_tests_api.py +++ b/thousandeyes-sdk-tests/test/test_voice_tests_api.py @@ -85,21 +85,7 @@ class TestVoiceTestsApi(unittest.TestCase): "interval" : 60, "testId" : "281474976710706", "sharedWithAccounts" : [ "1234", "12345" ], - "monitors" : [ { - "monitorType" : "public", - "monitorId" : "1234", - "monitorName" : "Seattle, WA", - "ipAddress" : "4.69.184.193", - "countryId" : "GB", - "network" : "Level 3 Communications, Inc. (AS 3356)" - }, { - "monitorType" : "public", - "monitorId" : "1234", - "monitorName" : "Seattle, WA", - "ipAddress" : "4.69.184.193", - "countryId" : "GB", - "network" : "Level 3 Communications, Inc. (AS 3356)" - } ] + "monitors" : [ "17410", "5" ] } """ @@ -179,37 +165,56 @@ class TestVoiceTestsApi(unittest.TestCase): "name" : "Artem label", "isBuiltin" : false } ], + "tags" : [ { + "id" : "5aeab5d5-0d34-4d44-a7ac-fb440185295c", + "value" : "San Francisco", + "key" : "Location" + }, { + "id" : "5aeab5d5-0d34-4d44-a7ac-fb440185295c", + "value" : "San Francisco", + "key" : "Location" + } ], "agents" : [ { "agentId" : "281474976710706", "agentType" : "enterprise-cluster", - "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], "prefix" : "99.128.0.0/11", "coordinates" : { "latitude" : 37.77493, "longitude" : -122.41942 }, "agentName" : "thousandeyes-stg-va-254", - "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], - "location" : "San Francisco Bay Area", + "networkProviderInfo" : { + "asn" : 7018, + "name" : "AT&T Services, Inc.", + "type" : "isp" + }, "countryId" : "US", "enabled" : true, "network" : "AT&T Services, Inc. (AS 7018)", + "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], + "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], + "location" : "San Francisco Bay Area", "verifySslCertificates" : true }, { "agentId" : "281474976710706", "agentType" : "enterprise-cluster", - "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], "prefix" : "99.128.0.0/11", "coordinates" : { "latitude" : 37.77493, "longitude" : -122.41942 }, "agentName" : "thousandeyes-stg-va-254", - "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], - "location" : "San Francisco Bay Area", + "networkProviderInfo" : { + "asn" : 7018, + "name" : "AT&T Services, Inc.", + "type" : "isp" + }, "countryId" : "US", "enabled" : true, "network" : "AT&T Services, Inc. (AS 7018)", + "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], + "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], + "location" : "San Francisco Bay Area", "verifySslCertificates" : true } ], "codec" : "G.711 @ 64 Kbps", @@ -329,37 +334,56 @@ class TestVoiceTestsApi(unittest.TestCase): "name" : "Artem label", "isBuiltin" : false } ], + "tags" : [ { + "id" : "5aeab5d5-0d34-4d44-a7ac-fb440185295c", + "value" : "San Francisco", + "key" : "Location" + }, { + "id" : "5aeab5d5-0d34-4d44-a7ac-fb440185295c", + "value" : "San Francisco", + "key" : "Location" + } ], "agents" : [ { "agentId" : "281474976710706", "agentType" : "enterprise-cluster", - "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], "prefix" : "99.128.0.0/11", "coordinates" : { "latitude" : 37.77493, "longitude" : -122.41942 }, "agentName" : "thousandeyes-stg-va-254", - "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], - "location" : "San Francisco Bay Area", + "networkProviderInfo" : { + "asn" : 7018, + "name" : "AT&T Services, Inc.", + "type" : "isp" + }, "countryId" : "US", "enabled" : true, "network" : "AT&T Services, Inc. (AS 7018)", + "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], + "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], + "location" : "San Francisco Bay Area", "verifySslCertificates" : true }, { "agentId" : "281474976710706", "agentType" : "enterprise-cluster", - "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], "prefix" : "99.128.0.0/11", "coordinates" : { "latitude" : 37.77493, "longitude" : -122.41942 }, "agentName" : "thousandeyes-stg-va-254", - "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], - "location" : "San Francisco Bay Area", + "networkProviderInfo" : { + "asn" : 7018, + "name" : "AT&T Services, Inc.", + "type" : "isp" + }, "countryId" : "US", "enabled" : true, "network" : "AT&T Services, Inc. (AS 7018)", + "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], + "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], + "location" : "San Francisco Bay Area", "verifySslCertificates" : true } ], "codec" : "G.711 @ 64 Kbps", @@ -567,21 +591,7 @@ class TestVoiceTestsApi(unittest.TestCase): "interval" : 60, "testId" : "281474976710706", "sharedWithAccounts" : [ "1234", "12345" ], - "monitors" : [ { - "monitorType" : "public", - "monitorId" : "1234", - "monitorName" : "Seattle, WA", - "ipAddress" : "4.69.184.193", - "countryId" : "GB", - "network" : "Level 3 Communications, Inc. (AS 3356)" - }, { - "monitorType" : "public", - "monitorId" : "1234", - "monitorName" : "Seattle, WA", - "ipAddress" : "4.69.184.193", - "countryId" : "GB", - "network" : "Level 3 Communications, Inc. (AS 3356)" - } ] + "monitors" : [ "17410", "5" ] } """ @@ -661,37 +671,56 @@ class TestVoiceTestsApi(unittest.TestCase): "name" : "Artem label", "isBuiltin" : false } ], + "tags" : [ { + "id" : "5aeab5d5-0d34-4d44-a7ac-fb440185295c", + "value" : "San Francisco", + "key" : "Location" + }, { + "id" : "5aeab5d5-0d34-4d44-a7ac-fb440185295c", + "value" : "San Francisco", + "key" : "Location" + } ], "agents" : [ { "agentId" : "281474976710706", "agentType" : "enterprise-cluster", - "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], "prefix" : "99.128.0.0/11", "coordinates" : { "latitude" : 37.77493, "longitude" : -122.41942 }, "agentName" : "thousandeyes-stg-va-254", - "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], - "location" : "San Francisco Bay Area", + "networkProviderInfo" : { + "asn" : 7018, + "name" : "AT&T Services, Inc.", + "type" : "isp" + }, "countryId" : "US", "enabled" : true, "network" : "AT&T Services, Inc. (AS 7018)", + "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], + "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], + "location" : "San Francisco Bay Area", "verifySslCertificates" : true }, { "agentId" : "281474976710706", "agentType" : "enterprise-cluster", - "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], "prefix" : "99.128.0.0/11", "coordinates" : { "latitude" : 37.77493, "longitude" : -122.41942 }, "agentName" : "thousandeyes-stg-va-254", - "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], - "location" : "San Francisco Bay Area", + "networkProviderInfo" : { + "asn" : 7018, + "name" : "AT&T Services, Inc.", + "type" : "isp" + }, "countryId" : "US", "enabled" : true, "network" : "AT&T Services, Inc. (AS 7018)", + "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], + "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], + "location" : "San Francisco Bay Area", "verifySslCertificates" : true } ], "codec" : "G.711 @ 64 Kbps", diff --git a/thousandeyes-sdk-tests/test/test_web_transaction_tests_api.py b/thousandeyes-sdk-tests/test/test_web_transaction_tests_api.py index d75a0321..9cd1d7ef 100644 --- a/thousandeyes-sdk-tests/test/test_web_transaction_tests_api.py +++ b/thousandeyes-sdk-tests/test/test_web_transaction_tests_api.py @@ -100,6 +100,13 @@ class TestWebTransactionTestsApi(unittest.TestCase): "blockDomains" : "domain.com/", "usePublicBgp" : true, "enabled" : true, + "vaultCredentials" : [ { + "secretId" : "f27e85b2-318b-4145-b5aa-c9dc8d8b0819", + "target" : "username" + }, { + "secretId" : "f27e85b2-318b-4145-b5aa-c9dc8d8b0819", + "target" : "username" + } ], "allowGeolocation" : false, "allowUnsafeLegacyRenegotiation" : true, "fixedPacketRate" : 50, @@ -217,6 +224,15 @@ class TestWebTransactionTestsApi(unittest.TestCase): "name" : "Artem label", "isBuiltin" : false } ], + "tags" : [ { + "id" : "5aeab5d5-0d34-4d44-a7ac-fb440185295c", + "value" : "San Francisco", + "key" : "Location" + }, { + "id" : "5aeab5d5-0d34-4d44-a7ac-fb440185295c", + "value" : "San Francisco", + "key" : "Location" + } ], "randomizedStartTime" : false, "modifiedDate" : "2022-07-17T22:00:54Z", "interval" : 60, @@ -282,6 +298,13 @@ class TestWebTransactionTestsApi(unittest.TestCase): "blockDomains" : "domain.com/", "usePublicBgp" : true, "enabled" : true, + "vaultCredentials" : [ { + "secretId" : "f27e85b2-318b-4145-b5aa-c9dc8d8b0819", + "target" : "username" + }, { + "secretId" : "f27e85b2-318b-4145-b5aa-c9dc8d8b0819", + "target" : "username" + } ], "allowGeolocation" : false, "allowUnsafeLegacyRenegotiation" : true, "fixedPacketRate" : 50, @@ -316,34 +339,44 @@ class TestWebTransactionTestsApi(unittest.TestCase): "agents" : [ { "agentId" : "281474976710706", "agentType" : "enterprise-cluster", - "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], "prefix" : "99.128.0.0/11", "coordinates" : { "latitude" : 37.77493, "longitude" : -122.41942 }, "agentName" : "thousandeyes-stg-va-254", - "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], - "location" : "San Francisco Bay Area", + "networkProviderInfo" : { + "asn" : 7018, + "name" : "AT&T Services, Inc.", + "type" : "isp" + }, "countryId" : "US", "enabled" : true, "network" : "AT&T Services, Inc. (AS 7018)", + "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], + "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], + "location" : "San Francisco Bay Area", "verifySslCertificates" : true }, { "agentId" : "281474976710706", "agentType" : "enterprise-cluster", - "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], "prefix" : "99.128.0.0/11", "coordinates" : { "latitude" : 37.77493, "longitude" : -122.41942 }, "agentName" : "thousandeyes-stg-va-254", - "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], - "location" : "San Francisco Bay Area", + "networkProviderInfo" : { + "asn" : 7018, + "name" : "AT&T Services, Inc.", + "type" : "isp" + }, "countryId" : "US", "enabled" : true, "network" : "AT&T Services, Inc. (AS 7018)", + "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], + "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], + "location" : "San Francisco Bay Area", "verifySslCertificates" : true } ], "timeLimit" : 30, @@ -431,6 +464,15 @@ class TestWebTransactionTestsApi(unittest.TestCase): "name" : "Artem label", "isBuiltin" : false } ], + "tags" : [ { + "id" : "5aeab5d5-0d34-4d44-a7ac-fb440185295c", + "value" : "San Francisco", + "key" : "Location" + }, { + "id" : "5aeab5d5-0d34-4d44-a7ac-fb440185295c", + "value" : "San Francisco", + "key" : "Location" + } ], "randomizedStartTime" : false, "modifiedDate" : "2022-07-17T22:00:54Z", "interval" : 60, @@ -496,6 +538,13 @@ class TestWebTransactionTestsApi(unittest.TestCase): "blockDomains" : "domain.com/", "usePublicBgp" : true, "enabled" : true, + "vaultCredentials" : [ { + "secretId" : "f27e85b2-318b-4145-b5aa-c9dc8d8b0819", + "target" : "username" + }, { + "secretId" : "f27e85b2-318b-4145-b5aa-c9dc8d8b0819", + "target" : "username" + } ], "allowGeolocation" : false, "allowUnsafeLegacyRenegotiation" : true, "fixedPacketRate" : 50, @@ -530,34 +579,44 @@ class TestWebTransactionTestsApi(unittest.TestCase): "agents" : [ { "agentId" : "281474976710706", "agentType" : "enterprise-cluster", - "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], "prefix" : "99.128.0.0/11", "coordinates" : { "latitude" : 37.77493, "longitude" : -122.41942 }, "agentName" : "thousandeyes-stg-va-254", - "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], - "location" : "San Francisco Bay Area", + "networkProviderInfo" : { + "asn" : 7018, + "name" : "AT&T Services, Inc.", + "type" : "isp" + }, "countryId" : "US", "enabled" : true, "network" : "AT&T Services, Inc. (AS 7018)", + "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], + "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], + "location" : "San Francisco Bay Area", "verifySslCertificates" : true }, { "agentId" : "281474976710706", "agentType" : "enterprise-cluster", - "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], "prefix" : "99.128.0.0/11", "coordinates" : { "latitude" : 37.77493, "longitude" : -122.41942 }, "agentName" : "thousandeyes-stg-va-254", - "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], - "location" : "San Francisco Bay Area", + "networkProviderInfo" : { + "asn" : 7018, + "name" : "AT&T Services, Inc.", + "type" : "isp" + }, "countryId" : "US", "enabled" : true, "network" : "AT&T Services, Inc. (AS 7018)", + "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], + "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], + "location" : "San Francisco Bay Area", "verifySslCertificates" : true } ], "timeLimit" : 30, @@ -646,6 +705,13 @@ class TestWebTransactionTestsApi(unittest.TestCase): "blockDomains" : "domain.com/", "usePublicBgp" : true, "enabled" : true, + "vaultCredentials" : [ { + "secretId" : "f27e85b2-318b-4145-b5aa-c9dc8d8b0819", + "target" : "username" + }, { + "secretId" : "f27e85b2-318b-4145-b5aa-c9dc8d8b0819", + "target" : "username" + } ], "allowGeolocation" : false, "allowUnsafeLegacyRenegotiation" : true, "fixedPacketRate" : 50, @@ -752,6 +818,13 @@ class TestWebTransactionTestsApi(unittest.TestCase): "blockDomains" : "domain.com/", "usePublicBgp" : true, "enabled" : true, + "vaultCredentials" : [ { + "secretId" : "f27e85b2-318b-4145-b5aa-c9dc8d8b0819", + "target" : "username" + }, { + "secretId" : "f27e85b2-318b-4145-b5aa-c9dc8d8b0819", + "target" : "username" + } ], "allowGeolocation" : false, "allowUnsafeLegacyRenegotiation" : true, "fixedPacketRate" : 50, @@ -886,6 +959,13 @@ class TestWebTransactionTestsApi(unittest.TestCase): "blockDomains" : "domain.com/", "usePublicBgp" : true, "enabled" : true, + "vaultCredentials" : [ { + "secretId" : "f27e85b2-318b-4145-b5aa-c9dc8d8b0819", + "target" : "username" + }, { + "secretId" : "f27e85b2-318b-4145-b5aa-c9dc8d8b0819", + "target" : "username" + } ], "allowGeolocation" : false, "allowUnsafeLegacyRenegotiation" : true, "fixedPacketRate" : 50, @@ -1003,6 +1083,15 @@ class TestWebTransactionTestsApi(unittest.TestCase): "name" : "Artem label", "isBuiltin" : false } ], + "tags" : [ { + "id" : "5aeab5d5-0d34-4d44-a7ac-fb440185295c", + "value" : "San Francisco", + "key" : "Location" + }, { + "id" : "5aeab5d5-0d34-4d44-a7ac-fb440185295c", + "value" : "San Francisco", + "key" : "Location" + } ], "randomizedStartTime" : false, "modifiedDate" : "2022-07-17T22:00:54Z", "interval" : 60, @@ -1068,6 +1157,13 @@ class TestWebTransactionTestsApi(unittest.TestCase): "blockDomains" : "domain.com/", "usePublicBgp" : true, "enabled" : true, + "vaultCredentials" : [ { + "secretId" : "f27e85b2-318b-4145-b5aa-c9dc8d8b0819", + "target" : "username" + }, { + "secretId" : "f27e85b2-318b-4145-b5aa-c9dc8d8b0819", + "target" : "username" + } ], "allowGeolocation" : false, "allowUnsafeLegacyRenegotiation" : true, "fixedPacketRate" : 50, @@ -1102,34 +1198,44 @@ class TestWebTransactionTestsApi(unittest.TestCase): "agents" : [ { "agentId" : "281474976710706", "agentType" : "enterprise-cluster", - "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], "prefix" : "99.128.0.0/11", "coordinates" : { "latitude" : 37.77493, "longitude" : -122.41942 }, "agentName" : "thousandeyes-stg-va-254", - "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], - "location" : "San Francisco Bay Area", + "networkProviderInfo" : { + "asn" : 7018, + "name" : "AT&T Services, Inc.", + "type" : "isp" + }, "countryId" : "US", "enabled" : true, "network" : "AT&T Services, Inc. (AS 7018)", + "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], + "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], + "location" : "San Francisco Bay Area", "verifySslCertificates" : true }, { "agentId" : "281474976710706", "agentType" : "enterprise-cluster", - "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], "prefix" : "99.128.0.0/11", "coordinates" : { "latitude" : 37.77493, "longitude" : -122.41942 }, "agentName" : "thousandeyes-stg-va-254", - "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], - "location" : "San Francisco Bay Area", + "networkProviderInfo" : { + "asn" : 7018, + "name" : "AT&T Services, Inc.", + "type" : "isp" + }, "countryId" : "US", "enabled" : true, "network" : "AT&T Services, Inc. (AS 7018)", + "publicIpAddresses" : [ "192.168.1.78", "f9b2:3a21:f25c:d300:03f4:586d:f8d6:4e1c" ], + "ipAddresses" : [ "99.139.65.220", "9bbd:8a0a:a257:5876:288b:6cb2:3f36:64ce" ], + "location" : "San Francisco Bay Area", "verifySslCertificates" : true } ], "timeLimit" : 30, diff --git a/thousandeyes-sdk-usage/README.md b/thousandeyes-sdk-usage/README.md index 0a1965b3..b9ccc1c0 100644 --- a/thousandeyes-sdk-usage/README.md +++ b/thousandeyes-sdk-usage/README.md @@ -1,5 +1,4 @@ # thousandeyes-sdk-usage - These usage endpoints define the following operations: * **Usage**: Retrieve usage data for the specified time period (default is one month). @@ -18,7 +17,7 @@ Refer to the Usage API operations for detailed usage instructions and optional p This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project: -- API version: 7.0.84 +- API version: 7.0.92 - Generator version: 7.6.0 - Build package: com.thousandeyes.api.codegen.ThousandeyesPythonGenerator diff --git a/thousandeyes-sdk-usage/src/thousandeyes_sdk/usage/__init__.py b/thousandeyes-sdk-usage/src/thousandeyes_sdk/usage/__init__.py index 84a86268..57b33de7 100644 --- a/thousandeyes-sdk-usage/src/thousandeyes_sdk/usage/__init__.py +++ b/thousandeyes-sdk-usage/src/thousandeyes_sdk/usage/__init__.py @@ -5,7 +5,7 @@ """ Usage API - These usage endpoints define the following operations: * **Usage**: Retrieve usage data for the specified time period (default is one month). * Users must have the `View organization usage` permission to access this endpoint. * This operation offers visibility across all account groups within the organization. * Users with `View organization usage` permission in multiple organizations should query the operation with the `aid` query string parameter (see optional parameters) for each organization. * The `agentId` field in enterprise agent unit responses may be omitted when not available. * **Quotas**: Obtain organization and account usage quotas. Additionally, users with the appropriate permissions can create, update, or delete these quotas. * Users must have the necessary permissions to perform quota-related actions. Refer to the Usage API operations for detailed usage instructions and optional parameters. + These usage endpoints define the following operations: * **Usage**: Retrieve usage data for the specified time period (default is one month). * Users must have the `View organization usage` permission to access this endpoint. * This operation offers visibility across all account groups within the organization. * Users with `View organization usage` permission in multiple organizations should query the operation with the `aid` query string parameter (see optional parameters) for each organization. * The `agentId` field in enterprise agent unit responses may be omitted when not available. * **Quotas**: Obtain organization and account usage quotas. Additionally, users with the appropriate permissions can create, update, or delete these quotas. * Users must have the necessary permissions to perform quota-related actions. Refer to the Usage API operations for detailed usage instructions and optional parameters. Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/thousandeyes-sdk-usage/src/thousandeyes_sdk/usage/api/quotas_api.py b/thousandeyes-sdk-usage/src/thousandeyes_sdk/usage/api/quotas_api.py index 9af00b21..b76a3512 100644 --- a/thousandeyes-sdk-usage/src/thousandeyes_sdk/usage/api/quotas_api.py +++ b/thousandeyes-sdk-usage/src/thousandeyes_sdk/usage/api/quotas_api.py @@ -3,7 +3,7 @@ """ Usage API - These usage endpoints define the following operations: * **Usage**: Retrieve usage data for the specified time period (default is one month). * Users must have the `View organization usage` permission to access this endpoint. * This operation offers visibility across all account groups within the organization. * Users with `View organization usage` permission in multiple organizations should query the operation with the `aid` query string parameter (see optional parameters) for each organization. * The `agentId` field in enterprise agent unit responses may be omitted when not available. * **Quotas**: Obtain organization and account usage quotas. Additionally, users with the appropriate permissions can create, update, or delete these quotas. * Users must have the necessary permissions to perform quota-related actions. Refer to the Usage API operations for detailed usage instructions and optional parameters. + These usage endpoints define the following operations: * **Usage**: Retrieve usage data for the specified time period (default is one month). * Users must have the `View organization usage` permission to access this endpoint. * This operation offers visibility across all account groups within the organization. * Users with `View organization usage` permission in multiple organizations should query the operation with the `aid` query string parameter (see optional parameters) for each organization. * The `agentId` field in enterprise agent unit responses may be omitted when not available. * **Quotas**: Obtain organization and account usage quotas. Additionally, users with the appropriate permissions can create, update, or delete these quotas. * Users must have the necessary permissions to perform quota-related actions. Refer to the Usage API operations for detailed usage instructions and optional parameters. Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/thousandeyes-sdk-usage/src/thousandeyes_sdk/usage/api/usage_api.py b/thousandeyes-sdk-usage/src/thousandeyes_sdk/usage/api/usage_api.py index c1396d8f..e8b4c198 100644 --- a/thousandeyes-sdk-usage/src/thousandeyes_sdk/usage/api/usage_api.py +++ b/thousandeyes-sdk-usage/src/thousandeyes_sdk/usage/api/usage_api.py @@ -3,7 +3,7 @@ """ Usage API - These usage endpoints define the following operations: * **Usage**: Retrieve usage data for the specified time period (default is one month). * Users must have the `View organization usage` permission to access this endpoint. * This operation offers visibility across all account groups within the organization. * Users with `View organization usage` permission in multiple organizations should query the operation with the `aid` query string parameter (see optional parameters) for each organization. * The `agentId` field in enterprise agent unit responses may be omitted when not available. * **Quotas**: Obtain organization and account usage quotas. Additionally, users with the appropriate permissions can create, update, or delete these quotas. * Users must have the necessary permissions to perform quota-related actions. Refer to the Usage API operations for detailed usage instructions and optional parameters. + These usage endpoints define the following operations: * **Usage**: Retrieve usage data for the specified time period (default is one month). * Users must have the `View organization usage` permission to access this endpoint. * This operation offers visibility across all account groups within the organization. * Users with `View organization usage` permission in multiple organizations should query the operation with the `aid` query string parameter (see optional parameters) for each organization. * The `agentId` field in enterprise agent unit responses may be omitted when not available. * **Quotas**: Obtain organization and account usage quotas. Additionally, users with the appropriate permissions can create, update, or delete these quotas. * Users must have the necessary permissions to perform quota-related actions. Refer to the Usage API operations for detailed usage instructions and optional parameters. Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/thousandeyes-sdk-usage/src/thousandeyes_sdk/usage/models/__init__.py b/thousandeyes-sdk-usage/src/thousandeyes_sdk/usage/models/__init__.py index 70519c34..5cb8fc40 100644 --- a/thousandeyes-sdk-usage/src/thousandeyes_sdk/usage/models/__init__.py +++ b/thousandeyes-sdk-usage/src/thousandeyes_sdk/usage/models/__init__.py @@ -4,7 +4,7 @@ """ Usage API - These usage endpoints define the following operations: * **Usage**: Retrieve usage data for the specified time period (default is one month). * Users must have the `View organization usage` permission to access this endpoint. * This operation offers visibility across all account groups within the organization. * Users with `View organization usage` permission in multiple organizations should query the operation with the `aid` query string parameter (see optional parameters) for each organization. * The `agentId` field in enterprise agent unit responses may be omitted when not available. * **Quotas**: Obtain organization and account usage quotas. Additionally, users with the appropriate permissions can create, update, or delete these quotas. * Users must have the necessary permissions to perform quota-related actions. Refer to the Usage API operations for detailed usage instructions and optional parameters. + These usage endpoints define the following operations: * **Usage**: Retrieve usage data for the specified time period (default is one month). * Users must have the `View organization usage` permission to access this endpoint. * This operation offers visibility across all account groups within the organization. * Users with `View organization usage` permission in multiple organizations should query the operation with the `aid` query string parameter (see optional parameters) for each organization. * The `agentId` field in enterprise agent unit responses may be omitted when not available. * **Quotas**: Obtain organization and account usage quotas. Additionally, users with the appropriate permissions can create, update, or delete these quotas. * Users must have the necessary permissions to perform quota-related actions. Refer to the Usage API operations for detailed usage instructions and optional parameters. Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/thousandeyes-sdk-usage/src/thousandeyes_sdk/usage/models/account_group_quota.py b/thousandeyes-sdk-usage/src/thousandeyes_sdk/usage/models/account_group_quota.py index 106b834f..6e62d575 100644 --- a/thousandeyes-sdk-usage/src/thousandeyes_sdk/usage/models/account_group_quota.py +++ b/thousandeyes-sdk-usage/src/thousandeyes_sdk/usage/models/account_group_quota.py @@ -3,7 +3,7 @@ """ Usage API - These usage endpoints define the following operations: * **Usage**: Retrieve usage data for the specified time period (default is one month). * Users must have the `View organization usage` permission to access this endpoint. * This operation offers visibility across all account groups within the organization. * Users with `View organization usage` permission in multiple organizations should query the operation with the `aid` query string parameter (see optional parameters) for each organization. * The `agentId` field in enterprise agent unit responses may be omitted when not available. * **Quotas**: Obtain organization and account usage quotas. Additionally, users with the appropriate permissions can create, update, or delete these quotas. * Users must have the necessary permissions to perform quota-related actions. Refer to the Usage API operations for detailed usage instructions and optional parameters. + These usage endpoints define the following operations: * **Usage**: Retrieve usage data for the specified time period (default is one month). * Users must have the `View organization usage` permission to access this endpoint. * This operation offers visibility across all account groups within the organization. * Users with `View organization usage` permission in multiple organizations should query the operation with the `aid` query string parameter (see optional parameters) for each organization. * The `agentId` field in enterprise agent unit responses may be omitted when not available. * **Quotas**: Obtain organization and account usage quotas. Additionally, users with the appropriate permissions can create, update, or delete these quotas. * Users must have the necessary permissions to perform quota-related actions. Refer to the Usage API operations for detailed usage instructions and optional parameters. Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/thousandeyes-sdk-usage/src/thousandeyes_sdk/usage/models/allocation_unit_usage_breakdown.py b/thousandeyes-sdk-usage/src/thousandeyes_sdk/usage/models/allocation_unit_usage_breakdown.py index 1f52b062..992c6809 100644 --- a/thousandeyes-sdk-usage/src/thousandeyes_sdk/usage/models/allocation_unit_usage_breakdown.py +++ b/thousandeyes-sdk-usage/src/thousandeyes_sdk/usage/models/allocation_unit_usage_breakdown.py @@ -3,7 +3,7 @@ """ Usage API - These usage endpoints define the following operations: * **Usage**: Retrieve usage data for the specified time period (default is one month). * Users must have the `View organization usage` permission to access this endpoint. * This operation offers visibility across all account groups within the organization. * Users with `View organization usage` permission in multiple organizations should query the operation with the `aid` query string parameter (see optional parameters) for each organization. * The `agentId` field in enterprise agent unit responses may be omitted when not available. * **Quotas**: Obtain organization and account usage quotas. Additionally, users with the appropriate permissions can create, update, or delete these quotas. * Users must have the necessary permissions to perform quota-related actions. Refer to the Usage API operations for detailed usage instructions and optional parameters. + These usage endpoints define the following operations: * **Usage**: Retrieve usage data for the specified time period (default is one month). * Users must have the `View organization usage` permission to access this endpoint. * This operation offers visibility across all account groups within the organization. * Users with `View organization usage` permission in multiple organizations should query the operation with the `aid` query string parameter (see optional parameters) for each organization. * The `agentId` field in enterprise agent unit responses may be omitted when not available. * **Quotas**: Obtain organization and account usage quotas. Additionally, users with the appropriate permissions can create, update, or delete these quotas. * Users must have the necessary permissions to perform quota-related actions. Refer to the Usage API operations for detailed usage instructions and optional parameters. Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/thousandeyes-sdk-usage/src/thousandeyes_sdk/usage/models/endpoint_agents_embedded.py b/thousandeyes-sdk-usage/src/thousandeyes_sdk/usage/models/endpoint_agents_embedded.py index f8f85911..4b595cb5 100644 --- a/thousandeyes-sdk-usage/src/thousandeyes_sdk/usage/models/endpoint_agents_embedded.py +++ b/thousandeyes-sdk-usage/src/thousandeyes_sdk/usage/models/endpoint_agents_embedded.py @@ -3,7 +3,7 @@ """ Usage API - These usage endpoints define the following operations: * **Usage**: Retrieve usage data for the specified time period (default is one month). * Users must have the `View organization usage` permission to access this endpoint. * This operation offers visibility across all account groups within the organization. * Users with `View organization usage` permission in multiple organizations should query the operation with the `aid` query string parameter (see optional parameters) for each organization. * The `agentId` field in enterprise agent unit responses may be omitted when not available. * **Quotas**: Obtain organization and account usage quotas. Additionally, users with the appropriate permissions can create, update, or delete these quotas. * Users must have the necessary permissions to perform quota-related actions. Refer to the Usage API operations for detailed usage instructions and optional parameters. + These usage endpoints define the following operations: * **Usage**: Retrieve usage data for the specified time period (default is one month). * Users must have the `View organization usage` permission to access this endpoint. * This operation offers visibility across all account groups within the organization. * Users with `View organization usage` permission in multiple organizations should query the operation with the `aid` query string parameter (see optional parameters) for each organization. * The `agentId` field in enterprise agent unit responses may be omitted when not available. * **Quotas**: Obtain organization and account usage quotas. Additionally, users with the appropriate permissions can create, update, or delete these quotas. * Users must have the necessary permissions to perform quota-related actions. Refer to the Usage API operations for detailed usage instructions and optional parameters. Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/thousandeyes-sdk-usage/src/thousandeyes_sdk/usage/models/endpoint_agents_essentials.py b/thousandeyes-sdk-usage/src/thousandeyes_sdk/usage/models/endpoint_agents_essentials.py index 3449a34b..ed86888c 100644 --- a/thousandeyes-sdk-usage/src/thousandeyes_sdk/usage/models/endpoint_agents_essentials.py +++ b/thousandeyes-sdk-usage/src/thousandeyes_sdk/usage/models/endpoint_agents_essentials.py @@ -3,7 +3,7 @@ """ Usage API - These usage endpoints define the following operations: * **Usage**: Retrieve usage data for the specified time period (default is one month). * Users must have the `View organization usage` permission to access this endpoint. * This operation offers visibility across all account groups within the organization. * Users with `View organization usage` permission in multiple organizations should query the operation with the `aid` query string parameter (see optional parameters) for each organization. * The `agentId` field in enterprise agent unit responses may be omitted when not available. * **Quotas**: Obtain organization and account usage quotas. Additionally, users with the appropriate permissions can create, update, or delete these quotas. * Users must have the necessary permissions to perform quota-related actions. Refer to the Usage API operations for detailed usage instructions and optional parameters. + These usage endpoints define the following operations: * **Usage**: Retrieve usage data for the specified time period (default is one month). * Users must have the `View organization usage` permission to access this endpoint. * This operation offers visibility across all account groups within the organization. * Users with `View organization usage` permission in multiple organizations should query the operation with the `aid` query string parameter (see optional parameters) for each organization. * The `agentId` field in enterprise agent unit responses may be omitted when not available. * **Quotas**: Obtain organization and account usage quotas. Additionally, users with the appropriate permissions can create, update, or delete these quotas. * Users must have the necessary permissions to perform quota-related actions. Refer to the Usage API operations for detailed usage instructions and optional parameters. Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/thousandeyes-sdk-usage/src/thousandeyes_sdk/usage/models/endpoint_agents_usage.py b/thousandeyes-sdk-usage/src/thousandeyes_sdk/usage/models/endpoint_agents_usage.py index 8690ffdb..e6b47ab6 100644 --- a/thousandeyes-sdk-usage/src/thousandeyes_sdk/usage/models/endpoint_agents_usage.py +++ b/thousandeyes-sdk-usage/src/thousandeyes_sdk/usage/models/endpoint_agents_usage.py @@ -3,7 +3,7 @@ """ Usage API - These usage endpoints define the following operations: * **Usage**: Retrieve usage data for the specified time period (default is one month). * Users must have the `View organization usage` permission to access this endpoint. * This operation offers visibility across all account groups within the organization. * Users with `View organization usage` permission in multiple organizations should query the operation with the `aid` query string parameter (see optional parameters) for each organization. * The `agentId` field in enterprise agent unit responses may be omitted when not available. * **Quotas**: Obtain organization and account usage quotas. Additionally, users with the appropriate permissions can create, update, or delete these quotas. * Users must have the necessary permissions to perform quota-related actions. Refer to the Usage API operations for detailed usage instructions and optional parameters. + These usage endpoints define the following operations: * **Usage**: Retrieve usage data for the specified time period (default is one month). * Users must have the `View organization usage` permission to access this endpoint. * This operation offers visibility across all account groups within the organization. * Users with `View organization usage` permission in multiple organizations should query the operation with the `aid` query string parameter (see optional parameters) for each organization. * The `agentId` field in enterprise agent unit responses may be omitted when not available. * **Quotas**: Obtain organization and account usage quotas. Additionally, users with the appropriate permissions can create, update, or delete these quotas. * Users must have the necessary permissions to perform quota-related actions. Refer to the Usage API operations for detailed usage instructions and optional parameters. Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/thousandeyes-sdk-usage/src/thousandeyes_sdk/usage/models/enterprise_agent_units.py b/thousandeyes-sdk-usage/src/thousandeyes_sdk/usage/models/enterprise_agent_units.py index a24b9cda..85bafaf3 100644 --- a/thousandeyes-sdk-usage/src/thousandeyes_sdk/usage/models/enterprise_agent_units.py +++ b/thousandeyes-sdk-usage/src/thousandeyes_sdk/usage/models/enterprise_agent_units.py @@ -3,7 +3,7 @@ """ Usage API - These usage endpoints define the following operations: * **Usage**: Retrieve usage data for the specified time period (default is one month). * Users must have the `View organization usage` permission to access this endpoint. * This operation offers visibility across all account groups within the organization. * Users with `View organization usage` permission in multiple organizations should query the operation with the `aid` query string parameter (see optional parameters) for each organization. * The `agentId` field in enterprise agent unit responses may be omitted when not available. * **Quotas**: Obtain organization and account usage quotas. Additionally, users with the appropriate permissions can create, update, or delete these quotas. * Users must have the necessary permissions to perform quota-related actions. Refer to the Usage API operations for detailed usage instructions and optional parameters. + These usage endpoints define the following operations: * **Usage**: Retrieve usage data for the specified time period (default is one month). * Users must have the `View organization usage` permission to access this endpoint. * This operation offers visibility across all account groups within the organization. * Users with `View organization usage` permission in multiple organizations should query the operation with the `aid` query string parameter (see optional parameters) for each organization. * The `agentId` field in enterprise agent unit responses may be omitted when not available. * **Quotas**: Obtain organization and account usage quotas. Additionally, users with the appropriate permissions can create, update, or delete these quotas. * Users must have the necessary permissions to perform quota-related actions. Refer to the Usage API operations for detailed usage instructions and optional parameters. Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/thousandeyes-sdk-usage/src/thousandeyes_sdk/usage/models/enterprise_agent_units_by_test_owner_account_group.py b/thousandeyes-sdk-usage/src/thousandeyes_sdk/usage/models/enterprise_agent_units_by_test_owner_account_group.py index d59dc410..f4ef6c87 100644 --- a/thousandeyes-sdk-usage/src/thousandeyes_sdk/usage/models/enterprise_agent_units_by_test_owner_account_group.py +++ b/thousandeyes-sdk-usage/src/thousandeyes_sdk/usage/models/enterprise_agent_units_by_test_owner_account_group.py @@ -3,7 +3,7 @@ """ Usage API - These usage endpoints define the following operations: * **Usage**: Retrieve usage data for the specified time period (default is one month). * Users must have the `View organization usage` permission to access this endpoint. * This operation offers visibility across all account groups within the organization. * Users with `View organization usage` permission in multiple organizations should query the operation with the `aid` query string parameter (see optional parameters) for each organization. * The `agentId` field in enterprise agent unit responses may be omitted when not available. * **Quotas**: Obtain organization and account usage quotas. Additionally, users with the appropriate permissions can create, update, or delete these quotas. * Users must have the necessary permissions to perform quota-related actions. Refer to the Usage API operations for detailed usage instructions and optional parameters. + These usage endpoints define the following operations: * **Usage**: Retrieve usage data for the specified time period (default is one month). * Users must have the `View organization usage` permission to access this endpoint. * This operation offers visibility across all account groups within the organization. * Users with `View organization usage` permission in multiple organizations should query the operation with the `aid` query string parameter (see optional parameters) for each organization. * The `agentId` field in enterprise agent unit responses may be omitted when not available. * **Quotas**: Obtain organization and account usage quotas. Additionally, users with the appropriate permissions can create, update, or delete these quotas. * Users must have the necessary permissions to perform quota-related actions. Refer to the Usage API operations for detailed usage instructions and optional parameters. Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/thousandeyes-sdk-usage/src/thousandeyes_sdk/usage/models/enterprise_agents.py b/thousandeyes-sdk-usage/src/thousandeyes_sdk/usage/models/enterprise_agents.py index 1961bad9..04293493 100644 --- a/thousandeyes-sdk-usage/src/thousandeyes_sdk/usage/models/enterprise_agents.py +++ b/thousandeyes-sdk-usage/src/thousandeyes_sdk/usage/models/enterprise_agents.py @@ -3,7 +3,7 @@ """ Usage API - These usage endpoints define the following operations: * **Usage**: Retrieve usage data for the specified time period (default is one month). * Users must have the `View organization usage` permission to access this endpoint. * This operation offers visibility across all account groups within the organization. * Users with `View organization usage` permission in multiple organizations should query the operation with the `aid` query string parameter (see optional parameters) for each organization. * The `agentId` field in enterprise agent unit responses may be omitted when not available. * **Quotas**: Obtain organization and account usage quotas. Additionally, users with the appropriate permissions can create, update, or delete these quotas. * Users must have the necessary permissions to perform quota-related actions. Refer to the Usage API operations for detailed usage instructions and optional parameters. + These usage endpoints define the following operations: * **Usage**: Retrieve usage data for the specified time period (default is one month). * Users must have the `View organization usage` permission to access this endpoint. * This operation offers visibility across all account groups within the organization. * Users with `View organization usage` permission in multiple organizations should query the operation with the `aid` query string parameter (see optional parameters) for each organization. * The `agentId` field in enterprise agent unit responses may be omitted when not available. * **Quotas**: Obtain organization and account usage quotas. Additionally, users with the appropriate permissions can create, update, or delete these quotas. * Users must have the necessary permissions to perform quota-related actions. Refer to the Usage API operations for detailed usage instructions and optional parameters. Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/thousandeyes-sdk-usage/src/thousandeyes_sdk/usage/models/enterprise_agents_usage.py b/thousandeyes-sdk-usage/src/thousandeyes_sdk/usage/models/enterprise_agents_usage.py index 0d5b92e4..afeb43ff 100644 --- a/thousandeyes-sdk-usage/src/thousandeyes_sdk/usage/models/enterprise_agents_usage.py +++ b/thousandeyes-sdk-usage/src/thousandeyes_sdk/usage/models/enterprise_agents_usage.py @@ -3,7 +3,7 @@ """ Usage API - These usage endpoints define the following operations: * **Usage**: Retrieve usage data for the specified time period (default is one month). * Users must have the `View organization usage` permission to access this endpoint. * This operation offers visibility across all account groups within the organization. * Users with `View organization usage` permission in multiple organizations should query the operation with the `aid` query string parameter (see optional parameters) for each organization. * The `agentId` field in enterprise agent unit responses may be omitted when not available. * **Quotas**: Obtain organization and account usage quotas. Additionally, users with the appropriate permissions can create, update, or delete these quotas. * Users must have the necessary permissions to perform quota-related actions. Refer to the Usage API operations for detailed usage instructions and optional parameters. + These usage endpoints define the following operations: * **Usage**: Retrieve usage data for the specified time period (default is one month). * Users must have the `View organization usage` permission to access this endpoint. * This operation offers visibility across all account groups within the organization. * Users with `View organization usage` permission in multiple organizations should query the operation with the `aid` query string parameter (see optional parameters) for each organization. * The `agentId` field in enterprise agent unit responses may be omitted when not available. * **Quotas**: Obtain organization and account usage quotas. Additionally, users with the appropriate permissions can create, update, or delete these quotas. * Users must have the necessary permissions to perform quota-related actions. Refer to the Usage API operations for detailed usage instructions and optional parameters. Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/thousandeyes-sdk-usage/src/thousandeyes_sdk/usage/models/error.py b/thousandeyes-sdk-usage/src/thousandeyes_sdk/usage/models/error.py index 3d8991c6..4b3ecf7b 100644 --- a/thousandeyes-sdk-usage/src/thousandeyes_sdk/usage/models/error.py +++ b/thousandeyes-sdk-usage/src/thousandeyes_sdk/usage/models/error.py @@ -3,7 +3,7 @@ """ Usage API - These usage endpoints define the following operations: * **Usage**: Retrieve usage data for the specified time period (default is one month). * Users must have the `View organization usage` permission to access this endpoint. * This operation offers visibility across all account groups within the organization. * Users with `View organization usage` permission in multiple organizations should query the operation with the `aid` query string parameter (see optional parameters) for each organization. * The `agentId` field in enterprise agent unit responses may be omitted when not available. * **Quotas**: Obtain organization and account usage quotas. Additionally, users with the appropriate permissions can create, update, or delete these quotas. * Users must have the necessary permissions to perform quota-related actions. Refer to the Usage API operations for detailed usage instructions and optional parameters. + These usage endpoints define the following operations: * **Usage**: Retrieve usage data for the specified time period (default is one month). * Users must have the `View organization usage` permission to access this endpoint. * This operation offers visibility across all account groups within the organization. * Users with `View organization usage` permission in multiple organizations should query the operation with the `aid` query string parameter (see optional parameters) for each organization. * The `agentId` field in enterprise agent unit responses may be omitted when not available. * **Quotas**: Obtain organization and account usage quotas. Additionally, users with the appropriate permissions can create, update, or delete these quotas. * Users must have the necessary permissions to perform quota-related actions. Refer to the Usage API operations for detailed usage instructions and optional parameters. Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/thousandeyes-sdk-usage/src/thousandeyes_sdk/usage/models/expand_usage_options.py b/thousandeyes-sdk-usage/src/thousandeyes_sdk/usage/models/expand_usage_options.py index fc48d4c4..f569ef61 100644 --- a/thousandeyes-sdk-usage/src/thousandeyes_sdk/usage/models/expand_usage_options.py +++ b/thousandeyes-sdk-usage/src/thousandeyes_sdk/usage/models/expand_usage_options.py @@ -3,7 +3,7 @@ """ Usage API - These usage endpoints define the following operations: * **Usage**: Retrieve usage data for the specified time period (default is one month). * Users must have the `View organization usage` permission to access this endpoint. * This operation offers visibility across all account groups within the organization. * Users with `View organization usage` permission in multiple organizations should query the operation with the `aid` query string parameter (see optional parameters) for each organization. * The `agentId` field in enterprise agent unit responses may be omitted when not available. * **Quotas**: Obtain organization and account usage quotas. Additionally, users with the appropriate permissions can create, update, or delete these quotas. * Users must have the necessary permissions to perform quota-related actions. Refer to the Usage API operations for detailed usage instructions and optional parameters. + These usage endpoints define the following operations: * **Usage**: Retrieve usage data for the specified time period (default is one month). * Users must have the `View organization usage` permission to access this endpoint. * This operation offers visibility across all account groups within the organization. * Users with `View organization usage` permission in multiple organizations should query the operation with the `aid` query string parameter (see optional parameters) for each organization. * The `agentId` field in enterprise agent unit responses may be omitted when not available. * **Quotas**: Obtain organization and account usage quotas. Additionally, users with the appropriate permissions can create, update, or delete these quotas. * Users must have the necessary permissions to perform quota-related actions. Refer to the Usage API operations for detailed usage instructions and optional parameters. Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/thousandeyes-sdk-usage/src/thousandeyes_sdk/usage/models/link.py b/thousandeyes-sdk-usage/src/thousandeyes_sdk/usage/models/link.py index 58ea441e..06ceafff 100644 --- a/thousandeyes-sdk-usage/src/thousandeyes_sdk/usage/models/link.py +++ b/thousandeyes-sdk-usage/src/thousandeyes_sdk/usage/models/link.py @@ -3,7 +3,7 @@ """ Usage API - These usage endpoints define the following operations: * **Usage**: Retrieve usage data for the specified time period (default is one month). * Users must have the `View organization usage` permission to access this endpoint. * This operation offers visibility across all account groups within the organization. * Users with `View organization usage` permission in multiple organizations should query the operation with the `aid` query string parameter (see optional parameters) for each organization. * The `agentId` field in enterprise agent unit responses may be omitted when not available. * **Quotas**: Obtain organization and account usage quotas. Additionally, users with the appropriate permissions can create, update, or delete these quotas. * Users must have the necessary permissions to perform quota-related actions. Refer to the Usage API operations for detailed usage instructions and optional parameters. + These usage endpoints define the following operations: * **Usage**: Retrieve usage data for the specified time period (default is one month). * Users must have the `View organization usage` permission to access this endpoint. * This operation offers visibility across all account groups within the organization. * Users with `View organization usage` permission in multiple organizations should query the operation with the `aid` query string parameter (see optional parameters) for each organization. * The `agentId` field in enterprise agent unit responses may be omitted when not available. * **Quotas**: Obtain organization and account usage quotas. Additionally, users with the appropriate permissions can create, update, or delete these quotas. * Users must have the necessary permissions to perform quota-related actions. Refer to the Usage API operations for detailed usage instructions and optional parameters. Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/thousandeyes-sdk-usage/src/thousandeyes_sdk/usage/models/organization_quota.py b/thousandeyes-sdk-usage/src/thousandeyes_sdk/usage/models/organization_quota.py index 707de8ff..a6e16267 100644 --- a/thousandeyes-sdk-usage/src/thousandeyes_sdk/usage/models/organization_quota.py +++ b/thousandeyes-sdk-usage/src/thousandeyes_sdk/usage/models/organization_quota.py @@ -3,7 +3,7 @@ """ Usage API - These usage endpoints define the following operations: * **Usage**: Retrieve usage data for the specified time period (default is one month). * Users must have the `View organization usage` permission to access this endpoint. * This operation offers visibility across all account groups within the organization. * Users with `View organization usage` permission in multiple organizations should query the operation with the `aid` query string parameter (see optional parameters) for each organization. * The `agentId` field in enterprise agent unit responses may be omitted when not available. * **Quotas**: Obtain organization and account usage quotas. Additionally, users with the appropriate permissions can create, update, or delete these quotas. * Users must have the necessary permissions to perform quota-related actions. Refer to the Usage API operations for detailed usage instructions and optional parameters. + These usage endpoints define the following operations: * **Usage**: Retrieve usage data for the specified time period (default is one month). * Users must have the `View organization usage` permission to access this endpoint. * This operation offers visibility across all account groups within the organization. * Users with `View organization usage` permission in multiple organizations should query the operation with the `aid` query string parameter (see optional parameters) for each organization. * The `agentId` field in enterprise agent unit responses may be omitted when not available. * **Quotas**: Obtain organization and account usage quotas. Additionally, users with the appropriate permissions can create, update, or delete these quotas. * Users must have the necessary permissions to perform quota-related actions. Refer to the Usage API operations for detailed usage instructions and optional parameters. Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/thousandeyes-sdk-usage/src/thousandeyes_sdk/usage/models/organization_quota_assignment.py b/thousandeyes-sdk-usage/src/thousandeyes_sdk/usage/models/organization_quota_assignment.py index db50148d..b30de98e 100644 --- a/thousandeyes-sdk-usage/src/thousandeyes_sdk/usage/models/organization_quota_assignment.py +++ b/thousandeyes-sdk-usage/src/thousandeyes_sdk/usage/models/organization_quota_assignment.py @@ -3,7 +3,7 @@ """ Usage API - These usage endpoints define the following operations: * **Usage**: Retrieve usage data for the specified time period (default is one month). * Users must have the `View organization usage` permission to access this endpoint. * This operation offers visibility across all account groups within the organization. * Users with `View organization usage` permission in multiple organizations should query the operation with the `aid` query string parameter (see optional parameters) for each organization. * The `agentId` field in enterprise agent unit responses may be omitted when not available. * **Quotas**: Obtain organization and account usage quotas. Additionally, users with the appropriate permissions can create, update, or delete these quotas. * Users must have the necessary permissions to perform quota-related actions. Refer to the Usage API operations for detailed usage instructions and optional parameters. + These usage endpoints define the following operations: * **Usage**: Retrieve usage data for the specified time period (default is one month). * Users must have the `View organization usage` permission to access this endpoint. * This operation offers visibility across all account groups within the organization. * Users with `View organization usage` permission in multiple organizations should query the operation with the `aid` query string parameter (see optional parameters) for each organization. * The `agentId` field in enterprise agent unit responses may be omitted when not available. * **Quotas**: Obtain organization and account usage quotas. Additionally, users with the appropriate permissions can create, update, or delete these quotas. * Users must have the necessary permissions to perform quota-related actions. Refer to the Usage API operations for detailed usage instructions and optional parameters. Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/thousandeyes-sdk-usage/src/thousandeyes_sdk/usage/models/organization_quota_unassignment.py b/thousandeyes-sdk-usage/src/thousandeyes_sdk/usage/models/organization_quota_unassignment.py index 76b9e161..e9ddf29c 100644 --- a/thousandeyes-sdk-usage/src/thousandeyes_sdk/usage/models/organization_quota_unassignment.py +++ b/thousandeyes-sdk-usage/src/thousandeyes_sdk/usage/models/organization_quota_unassignment.py @@ -3,7 +3,7 @@ """ Usage API - These usage endpoints define the following operations: * **Usage**: Retrieve usage data for the specified time period (default is one month). * Users must have the `View organization usage` permission to access this endpoint. * This operation offers visibility across all account groups within the organization. * Users with `View organization usage` permission in multiple organizations should query the operation with the `aid` query string parameter (see optional parameters) for each organization. * The `agentId` field in enterprise agent unit responses may be omitted when not available. * **Quotas**: Obtain organization and account usage quotas. Additionally, users with the appropriate permissions can create, update, or delete these quotas. * Users must have the necessary permissions to perform quota-related actions. Refer to the Usage API operations for detailed usage instructions and optional parameters. + These usage endpoints define the following operations: * **Usage**: Retrieve usage data for the specified time period (default is one month). * Users must have the `View organization usage` permission to access this endpoint. * This operation offers visibility across all account groups within the organization. * Users with `View organization usage` permission in multiple organizations should query the operation with the `aid` query string parameter (see optional parameters) for each organization. * The `agentId` field in enterprise agent unit responses may be omitted when not available. * **Quotas**: Obtain organization and account usage quotas. Additionally, users with the appropriate permissions can create, update, or delete these quotas. * Users must have the necessary permissions to perform quota-related actions. Refer to the Usage API operations for detailed usage instructions and optional parameters. Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/thousandeyes-sdk-usage/src/thousandeyes_sdk/usage/models/organizations_quotas_assign.py b/thousandeyes-sdk-usage/src/thousandeyes_sdk/usage/models/organizations_quotas_assign.py index b3695b79..d03c0d1e 100644 --- a/thousandeyes-sdk-usage/src/thousandeyes_sdk/usage/models/organizations_quotas_assign.py +++ b/thousandeyes-sdk-usage/src/thousandeyes_sdk/usage/models/organizations_quotas_assign.py @@ -3,7 +3,7 @@ """ Usage API - These usage endpoints define the following operations: * **Usage**: Retrieve usage data for the specified time period (default is one month). * Users must have the `View organization usage` permission to access this endpoint. * This operation offers visibility across all account groups within the organization. * Users with `View organization usage` permission in multiple organizations should query the operation with the `aid` query string parameter (see optional parameters) for each organization. * The `agentId` field in enterprise agent unit responses may be omitted when not available. * **Quotas**: Obtain organization and account usage quotas. Additionally, users with the appropriate permissions can create, update, or delete these quotas. * Users must have the necessary permissions to perform quota-related actions. Refer to the Usage API operations for detailed usage instructions and optional parameters. + These usage endpoints define the following operations: * **Usage**: Retrieve usage data for the specified time period (default is one month). * Users must have the `View organization usage` permission to access this endpoint. * This operation offers visibility across all account groups within the organization. * Users with `View organization usage` permission in multiple organizations should query the operation with the `aid` query string parameter (see optional parameters) for each organization. * The `agentId` field in enterprise agent unit responses may be omitted when not available. * **Quotas**: Obtain organization and account usage quotas. Additionally, users with the appropriate permissions can create, update, or delete these quotas. * Users must have the necessary permissions to perform quota-related actions. Refer to the Usage API operations for detailed usage instructions and optional parameters. Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/thousandeyes-sdk-usage/src/thousandeyes_sdk/usage/models/organizations_quotas_unassign.py b/thousandeyes-sdk-usage/src/thousandeyes_sdk/usage/models/organizations_quotas_unassign.py index 02ed639c..6cc84449 100644 --- a/thousandeyes-sdk-usage/src/thousandeyes_sdk/usage/models/organizations_quotas_unassign.py +++ b/thousandeyes-sdk-usage/src/thousandeyes_sdk/usage/models/organizations_quotas_unassign.py @@ -3,7 +3,7 @@ """ Usage API - These usage endpoints define the following operations: * **Usage**: Retrieve usage data for the specified time period (default is one month). * Users must have the `View organization usage` permission to access this endpoint. * This operation offers visibility across all account groups within the organization. * Users with `View organization usage` permission in multiple organizations should query the operation with the `aid` query string parameter (see optional parameters) for each organization. * The `agentId` field in enterprise agent unit responses may be omitted when not available. * **Quotas**: Obtain organization and account usage quotas. Additionally, users with the appropriate permissions can create, update, or delete these quotas. * Users must have the necessary permissions to perform quota-related actions. Refer to the Usage API operations for detailed usage instructions and optional parameters. + These usage endpoints define the following operations: * **Usage**: Retrieve usage data for the specified time period (default is one month). * Users must have the `View organization usage` permission to access this endpoint. * This operation offers visibility across all account groups within the organization. * Users with `View organization usage` permission in multiple organizations should query the operation with the `aid` query string parameter (see optional parameters) for each organization. * The `agentId` field in enterprise agent unit responses may be omitted when not available. * **Quotas**: Obtain organization and account usage quotas. Additionally, users with the appropriate permissions can create, update, or delete these quotas. * Users must have the necessary permissions to perform quota-related actions. Refer to the Usage API operations for detailed usage instructions and optional parameters. Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/thousandeyes-sdk-usage/src/thousandeyes_sdk/usage/models/pagination_links.py b/thousandeyes-sdk-usage/src/thousandeyes_sdk/usage/models/pagination_links.py index a3b0e2a5..6574c474 100644 --- a/thousandeyes-sdk-usage/src/thousandeyes_sdk/usage/models/pagination_links.py +++ b/thousandeyes-sdk-usage/src/thousandeyes_sdk/usage/models/pagination_links.py @@ -3,7 +3,7 @@ """ Usage API - These usage endpoints define the following operations: * **Usage**: Retrieve usage data for the specified time period (default is one month). * Users must have the `View organization usage` permission to access this endpoint. * This operation offers visibility across all account groups within the organization. * Users with `View organization usage` permission in multiple organizations should query the operation with the `aid` query string parameter (see optional parameters) for each organization. * The `agentId` field in enterprise agent unit responses may be omitted when not available. * **Quotas**: Obtain organization and account usage quotas. Additionally, users with the appropriate permissions can create, update, or delete these quotas. * Users must have the necessary permissions to perform quota-related actions. Refer to the Usage API operations for detailed usage instructions and optional parameters. + These usage endpoints define the following operations: * **Usage**: Retrieve usage data for the specified time period (default is one month). * Users must have the `View organization usage` permission to access this endpoint. * This operation offers visibility across all account groups within the organization. * Users with `View organization usage` permission in multiple organizations should query the operation with the `aid` query string parameter (see optional parameters) for each organization. * The `agentId` field in enterprise agent unit responses may be omitted when not available. * **Quotas**: Obtain organization and account usage quotas. Additionally, users with the appropriate permissions can create, update, or delete these quotas. * Users must have the necessary permissions to perform quota-related actions. Refer to the Usage API operations for detailed usage instructions and optional parameters. Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/thousandeyes-sdk-usage/src/thousandeyes_sdk/usage/models/quota.py b/thousandeyes-sdk-usage/src/thousandeyes_sdk/usage/models/quota.py index a0a2b4a3..26937b67 100644 --- a/thousandeyes-sdk-usage/src/thousandeyes_sdk/usage/models/quota.py +++ b/thousandeyes-sdk-usage/src/thousandeyes_sdk/usage/models/quota.py @@ -3,7 +3,7 @@ """ Usage API - These usage endpoints define the following operations: * **Usage**: Retrieve usage data for the specified time period (default is one month). * Users must have the `View organization usage` permission to access this endpoint. * This operation offers visibility across all account groups within the organization. * Users with `View organization usage` permission in multiple organizations should query the operation with the `aid` query string parameter (see optional parameters) for each organization. * The `agentId` field in enterprise agent unit responses may be omitted when not available. * **Quotas**: Obtain organization and account usage quotas. Additionally, users with the appropriate permissions can create, update, or delete these quotas. * Users must have the necessary permissions to perform quota-related actions. Refer to the Usage API operations for detailed usage instructions and optional parameters. + These usage endpoints define the following operations: * **Usage**: Retrieve usage data for the specified time period (default is one month). * Users must have the `View organization usage` permission to access this endpoint. * This operation offers visibility across all account groups within the organization. * Users with `View organization usage` permission in multiple organizations should query the operation with the `aid` query string parameter (see optional parameters) for each organization. * The `agentId` field in enterprise agent unit responses may be omitted when not available. * **Quotas**: Obtain organization and account usage quotas. Additionally, users with the appropriate permissions can create, update, or delete these quotas. * Users must have the necessary permissions to perform quota-related actions. Refer to the Usage API operations for detailed usage instructions and optional parameters. Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/thousandeyes-sdk-usage/src/thousandeyes_sdk/usage/models/quotas.py b/thousandeyes-sdk-usage/src/thousandeyes_sdk/usage/models/quotas.py index 4e6b3aa6..734d5d77 100644 --- a/thousandeyes-sdk-usage/src/thousandeyes_sdk/usage/models/quotas.py +++ b/thousandeyes-sdk-usage/src/thousandeyes_sdk/usage/models/quotas.py @@ -3,7 +3,7 @@ """ Usage API - These usage endpoints define the following operations: * **Usage**: Retrieve usage data for the specified time period (default is one month). * Users must have the `View organization usage` permission to access this endpoint. * This operation offers visibility across all account groups within the organization. * Users with `View organization usage` permission in multiple organizations should query the operation with the `aid` query string parameter (see optional parameters) for each organization. * The `agentId` field in enterprise agent unit responses may be omitted when not available. * **Quotas**: Obtain organization and account usage quotas. Additionally, users with the appropriate permissions can create, update, or delete these quotas. * Users must have the necessary permissions to perform quota-related actions. Refer to the Usage API operations for detailed usage instructions and optional parameters. + These usage endpoints define the following operations: * **Usage**: Retrieve usage data for the specified time period (default is one month). * Users must have the `View organization usage` permission to access this endpoint. * This operation offers visibility across all account groups within the organization. * Users with `View organization usage` permission in multiple organizations should query the operation with the `aid` query string parameter (see optional parameters) for each organization. * The `agentId` field in enterprise agent unit responses may be omitted when not available. * **Quotas**: Obtain organization and account usage quotas. Additionally, users with the appropriate permissions can create, update, or delete these quotas. * Users must have the necessary permissions to perform quota-related actions. Refer to the Usage API operations for detailed usage instructions and optional parameters. Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/thousandeyes-sdk-usage/src/thousandeyes_sdk/usage/models/quotas_assign_request.py b/thousandeyes-sdk-usage/src/thousandeyes_sdk/usage/models/quotas_assign_request.py index d9b00044..a7c5773a 100644 --- a/thousandeyes-sdk-usage/src/thousandeyes_sdk/usage/models/quotas_assign_request.py +++ b/thousandeyes-sdk-usage/src/thousandeyes_sdk/usage/models/quotas_assign_request.py @@ -3,7 +3,7 @@ """ Usage API - These usage endpoints define the following operations: * **Usage**: Retrieve usage data for the specified time period (default is one month). * Users must have the `View organization usage` permission to access this endpoint. * This operation offers visibility across all account groups within the organization. * Users with `View organization usage` permission in multiple organizations should query the operation with the `aid` query string parameter (see optional parameters) for each organization. * The `agentId` field in enterprise agent unit responses may be omitted when not available. * **Quotas**: Obtain organization and account usage quotas. Additionally, users with the appropriate permissions can create, update, or delete these quotas. * Users must have the necessary permissions to perform quota-related actions. Refer to the Usage API operations for detailed usage instructions and optional parameters. + These usage endpoints define the following operations: * **Usage**: Retrieve usage data for the specified time period (default is one month). * Users must have the `View organization usage` permission to access this endpoint. * This operation offers visibility across all account groups within the organization. * Users with `View organization usage` permission in multiple organizations should query the operation with the `aid` query string parameter (see optional parameters) for each organization. * The `agentId` field in enterprise agent unit responses may be omitted when not available. * **Quotas**: Obtain organization and account usage quotas. Additionally, users with the appropriate permissions can create, update, or delete these quotas. * Users must have the necessary permissions to perform quota-related actions. Refer to the Usage API operations for detailed usage instructions and optional parameters. Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/thousandeyes-sdk-usage/src/thousandeyes_sdk/usage/models/quotas_assign_response.py b/thousandeyes-sdk-usage/src/thousandeyes_sdk/usage/models/quotas_assign_response.py index a80e7f23..1b29d201 100644 --- a/thousandeyes-sdk-usage/src/thousandeyes_sdk/usage/models/quotas_assign_response.py +++ b/thousandeyes-sdk-usage/src/thousandeyes_sdk/usage/models/quotas_assign_response.py @@ -3,7 +3,7 @@ """ Usage API - These usage endpoints define the following operations: * **Usage**: Retrieve usage data for the specified time period (default is one month). * Users must have the `View organization usage` permission to access this endpoint. * This operation offers visibility across all account groups within the organization. * Users with `View organization usage` permission in multiple organizations should query the operation with the `aid` query string parameter (see optional parameters) for each organization. * The `agentId` field in enterprise agent unit responses may be omitted when not available. * **Quotas**: Obtain organization and account usage quotas. Additionally, users with the appropriate permissions can create, update, or delete these quotas. * Users must have the necessary permissions to perform quota-related actions. Refer to the Usage API operations for detailed usage instructions and optional parameters. + These usage endpoints define the following operations: * **Usage**: Retrieve usage data for the specified time period (default is one month). * Users must have the `View organization usage` permission to access this endpoint. * This operation offers visibility across all account groups within the organization. * Users with `View organization usage` permission in multiple organizations should query the operation with the `aid` query string parameter (see optional parameters) for each organization. * The `agentId` field in enterprise agent unit responses may be omitted when not available. * **Quotas**: Obtain organization and account usage quotas. Additionally, users with the appropriate permissions can create, update, or delete these quotas. * Users must have the necessary permissions to perform quota-related actions. Refer to the Usage API operations for detailed usage instructions and optional parameters. Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/thousandeyes-sdk-usage/src/thousandeyes_sdk/usage/models/quotas_unassign.py b/thousandeyes-sdk-usage/src/thousandeyes_sdk/usage/models/quotas_unassign.py index 976f96dc..46325377 100644 --- a/thousandeyes-sdk-usage/src/thousandeyes_sdk/usage/models/quotas_unassign.py +++ b/thousandeyes-sdk-usage/src/thousandeyes_sdk/usage/models/quotas_unassign.py @@ -3,7 +3,7 @@ """ Usage API - These usage endpoints define the following operations: * **Usage**: Retrieve usage data for the specified time period (default is one month). * Users must have the `View organization usage` permission to access this endpoint. * This operation offers visibility across all account groups within the organization. * Users with `View organization usage` permission in multiple organizations should query the operation with the `aid` query string parameter (see optional parameters) for each organization. * The `agentId` field in enterprise agent unit responses may be omitted when not available. * **Quotas**: Obtain organization and account usage quotas. Additionally, users with the appropriate permissions can create, update, or delete these quotas. * Users must have the necessary permissions to perform quota-related actions. Refer to the Usage API operations for detailed usage instructions and optional parameters. + These usage endpoints define the following operations: * **Usage**: Retrieve usage data for the specified time period (default is one month). * Users must have the `View organization usage` permission to access this endpoint. * This operation offers visibility across all account groups within the organization. * Users with `View organization usage` permission in multiple organizations should query the operation with the `aid` query string parameter (see optional parameters) for each organization. * The `agentId` field in enterprise agent unit responses may be omitted when not available. * **Quotas**: Obtain organization and account usage quotas. Additionally, users with the appropriate permissions can create, update, or delete these quotas. * Users must have the necessary permissions to perform quota-related actions. Refer to the Usage API operations for detailed usage instructions and optional parameters. Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/thousandeyes-sdk-usage/src/thousandeyes_sdk/usage/models/self_links.py b/thousandeyes-sdk-usage/src/thousandeyes_sdk/usage/models/self_links.py index dccbaf1d..7bfcfe09 100644 --- a/thousandeyes-sdk-usage/src/thousandeyes_sdk/usage/models/self_links.py +++ b/thousandeyes-sdk-usage/src/thousandeyes_sdk/usage/models/self_links.py @@ -3,7 +3,7 @@ """ Usage API - These usage endpoints define the following operations: * **Usage**: Retrieve usage data for the specified time period (default is one month). * Users must have the `View organization usage` permission to access this endpoint. * This operation offers visibility across all account groups within the organization. * Users with `View organization usage` permission in multiple organizations should query the operation with the `aid` query string parameter (see optional parameters) for each organization. * The `agentId` field in enterprise agent unit responses may be omitted when not available. * **Quotas**: Obtain organization and account usage quotas. Additionally, users with the appropriate permissions can create, update, or delete these quotas. * Users must have the necessary permissions to perform quota-related actions. Refer to the Usage API operations for detailed usage instructions and optional parameters. + These usage endpoints define the following operations: * **Usage**: Retrieve usage data for the specified time period (default is one month). * Users must have the `View organization usage` permission to access this endpoint. * This operation offers visibility across all account groups within the organization. * Users with `View organization usage` permission in multiple organizations should query the operation with the `aid` query string parameter (see optional parameters) for each organization. * The `agentId` field in enterprise agent unit responses may be omitted when not available. * **Quotas**: Obtain organization and account usage quotas. Additionally, users with the appropriate permissions can create, update, or delete these quotas. * Users must have the necessary permissions to perform quota-related actions. Refer to the Usage API operations for detailed usage instructions and optional parameters. Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/thousandeyes-sdk-usage/src/thousandeyes_sdk/usage/models/test_usage.py b/thousandeyes-sdk-usage/src/thousandeyes_sdk/usage/models/test_usage.py index f78f3e84..20f265ea 100644 --- a/thousandeyes-sdk-usage/src/thousandeyes_sdk/usage/models/test_usage.py +++ b/thousandeyes-sdk-usage/src/thousandeyes_sdk/usage/models/test_usage.py @@ -3,7 +3,7 @@ """ Usage API - These usage endpoints define the following operations: * **Usage**: Retrieve usage data for the specified time period (default is one month). * Users must have the `View organization usage` permission to access this endpoint. * This operation offers visibility across all account groups within the organization. * Users with `View organization usage` permission in multiple organizations should query the operation with the `aid` query string parameter (see optional parameters) for each organization. * The `agentId` field in enterprise agent unit responses may be omitted when not available. * **Quotas**: Obtain organization and account usage quotas. Additionally, users with the appropriate permissions can create, update, or delete these quotas. * Users must have the necessary permissions to perform quota-related actions. Refer to the Usage API operations for detailed usage instructions and optional parameters. + These usage endpoints define the following operations: * **Usage**: Retrieve usage data for the specified time period (default is one month). * Users must have the `View organization usage` permission to access this endpoint. * This operation offers visibility across all account groups within the organization. * Users with `View organization usage` permission in multiple organizations should query the operation with the `aid` query string parameter (see optional parameters) for each organization. * The `agentId` field in enterprise agent unit responses may be omitted when not available. * **Quotas**: Obtain organization and account usage quotas. Additionally, users with the appropriate permissions can create, update, or delete these quotas. * Users must have the necessary permissions to perform quota-related actions. Refer to the Usage API operations for detailed usage instructions and optional parameters. Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/thousandeyes-sdk-usage/src/thousandeyes_sdk/usage/models/tests_usage.py b/thousandeyes-sdk-usage/src/thousandeyes_sdk/usage/models/tests_usage.py index 213e3b62..61d09cfd 100644 --- a/thousandeyes-sdk-usage/src/thousandeyes_sdk/usage/models/tests_usage.py +++ b/thousandeyes-sdk-usage/src/thousandeyes_sdk/usage/models/tests_usage.py @@ -3,7 +3,7 @@ """ Usage API - These usage endpoints define the following operations: * **Usage**: Retrieve usage data for the specified time period (default is one month). * Users must have the `View organization usage` permission to access this endpoint. * This operation offers visibility across all account groups within the organization. * Users with `View organization usage` permission in multiple organizations should query the operation with the `aid` query string parameter (see optional parameters) for each organization. * The `agentId` field in enterprise agent unit responses may be omitted when not available. * **Quotas**: Obtain organization and account usage quotas. Additionally, users with the appropriate permissions can create, update, or delete these quotas. * Users must have the necessary permissions to perform quota-related actions. Refer to the Usage API operations for detailed usage instructions and optional parameters. + These usage endpoints define the following operations: * **Usage**: Retrieve usage data for the specified time period (default is one month). * Users must have the `View organization usage` permission to access this endpoint. * This operation offers visibility across all account groups within the organization. * Users with `View organization usage` permission in multiple organizations should query the operation with the `aid` query string parameter (see optional parameters) for each organization. * The `agentId` field in enterprise agent unit responses may be omitted when not available. * **Quotas**: Obtain organization and account usage quotas. Additionally, users with the appropriate permissions can create, update, or delete these quotas. * Users must have the necessary permissions to perform quota-related actions. Refer to the Usage API operations for detailed usage instructions and optional parameters. Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/thousandeyes-sdk-usage/src/thousandeyes_sdk/usage/models/unauthorized_error.py b/thousandeyes-sdk-usage/src/thousandeyes_sdk/usage/models/unauthorized_error.py index b8834950..0a8cfa3a 100644 --- a/thousandeyes-sdk-usage/src/thousandeyes_sdk/usage/models/unauthorized_error.py +++ b/thousandeyes-sdk-usage/src/thousandeyes_sdk/usage/models/unauthorized_error.py @@ -3,7 +3,7 @@ """ Usage API - These usage endpoints define the following operations: * **Usage**: Retrieve usage data for the specified time period (default is one month). * Users must have the `View organization usage` permission to access this endpoint. * This operation offers visibility across all account groups within the organization. * Users with `View organization usage` permission in multiple organizations should query the operation with the `aid` query string parameter (see optional parameters) for each organization. * The `agentId` field in enterprise agent unit responses may be omitted when not available. * **Quotas**: Obtain organization and account usage quotas. Additionally, users with the appropriate permissions can create, update, or delete these quotas. * Users must have the necessary permissions to perform quota-related actions. Refer to the Usage API operations for detailed usage instructions and optional parameters. + These usage endpoints define the following operations: * **Usage**: Retrieve usage data for the specified time period (default is one month). * Users must have the `View organization usage` permission to access this endpoint. * This operation offers visibility across all account groups within the organization. * Users with `View organization usage` permission in multiple organizations should query the operation with the `aid` query string parameter (see optional parameters) for each organization. * The `agentId` field in enterprise agent unit responses may be omitted when not available. * **Quotas**: Obtain organization and account usage quotas. Additionally, users with the appropriate permissions can create, update, or delete these quotas. * Users must have the necessary permissions to perform quota-related actions. Refer to the Usage API operations for detailed usage instructions and optional parameters. Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/thousandeyes-sdk-usage/src/thousandeyes_sdk/usage/models/unit_allocation_summary.py b/thousandeyes-sdk-usage/src/thousandeyes_sdk/usage/models/unit_allocation_summary.py index dc3c9423..cdbed171 100644 --- a/thousandeyes-sdk-usage/src/thousandeyes_sdk/usage/models/unit_allocation_summary.py +++ b/thousandeyes-sdk-usage/src/thousandeyes_sdk/usage/models/unit_allocation_summary.py @@ -3,7 +3,7 @@ """ Usage API - These usage endpoints define the following operations: * **Usage**: Retrieve usage data for the specified time period (default is one month). * Users must have the `View organization usage` permission to access this endpoint. * This operation offers visibility across all account groups within the organization. * Users with `View organization usage` permission in multiple organizations should query the operation with the `aid` query string parameter (see optional parameters) for each organization. * The `agentId` field in enterprise agent unit responses may be omitted when not available. * **Quotas**: Obtain organization and account usage quotas. Additionally, users with the appropriate permissions can create, update, or delete these quotas. * Users must have the necessary permissions to perform quota-related actions. Refer to the Usage API operations for detailed usage instructions and optional parameters. + These usage endpoints define the following operations: * **Usage**: Retrieve usage data for the specified time period (default is one month). * Users must have the `View organization usage` permission to access this endpoint. * This operation offers visibility across all account groups within the organization. * Users with `View organization usage` permission in multiple organizations should query the operation with the `aid` query string parameter (see optional parameters) for each organization. * The `agentId` field in enterprise agent unit responses may be omitted when not available. * **Quotas**: Obtain organization and account usage quotas. Additionally, users with the appropriate permissions can create, update, or delete these quotas. * Users must have the necessary permissions to perform quota-related actions. Refer to the Usage API operations for detailed usage instructions and optional parameters. Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/thousandeyes-sdk-usage/src/thousandeyes_sdk/usage/models/units_by_tests.py b/thousandeyes-sdk-usage/src/thousandeyes_sdk/usage/models/units_by_tests.py index b07a73e5..da20f9d5 100644 --- a/thousandeyes-sdk-usage/src/thousandeyes_sdk/usage/models/units_by_tests.py +++ b/thousandeyes-sdk-usage/src/thousandeyes_sdk/usage/models/units_by_tests.py @@ -3,7 +3,7 @@ """ Usage API - These usage endpoints define the following operations: * **Usage**: Retrieve usage data for the specified time period (default is one month). * Users must have the `View organization usage` permission to access this endpoint. * This operation offers visibility across all account groups within the organization. * Users with `View organization usage` permission in multiple organizations should query the operation with the `aid` query string parameter (see optional parameters) for each organization. * The `agentId` field in enterprise agent unit responses may be omitted when not available. * **Quotas**: Obtain organization and account usage quotas. Additionally, users with the appropriate permissions can create, update, or delete these quotas. * Users must have the necessary permissions to perform quota-related actions. Refer to the Usage API operations for detailed usage instructions and optional parameters. + These usage endpoints define the following operations: * **Usage**: Retrieve usage data for the specified time period (default is one month). * Users must have the `View organization usage` permission to access this endpoint. * This operation offers visibility across all account groups within the organization. * Users with `View organization usage` permission in multiple organizations should query the operation with the `aid` query string parameter (see optional parameters) for each organization. * The `agentId` field in enterprise agent unit responses may be omitted when not available. * **Quotas**: Obtain organization and account usage quotas. Additionally, users with the appropriate permissions can create, update, or delete these quotas. * Users must have the necessary permissions to perform quota-related actions. Refer to the Usage API operations for detailed usage instructions and optional parameters. Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/thousandeyes-sdk-usage/src/thousandeyes_sdk/usage/models/usage.py b/thousandeyes-sdk-usage/src/thousandeyes_sdk/usage/models/usage.py index eb1a0770..d2506daa 100644 --- a/thousandeyes-sdk-usage/src/thousandeyes_sdk/usage/models/usage.py +++ b/thousandeyes-sdk-usage/src/thousandeyes_sdk/usage/models/usage.py @@ -3,7 +3,7 @@ """ Usage API - These usage endpoints define the following operations: * **Usage**: Retrieve usage data for the specified time period (default is one month). * Users must have the `View organization usage` permission to access this endpoint. * This operation offers visibility across all account groups within the organization. * Users with `View organization usage` permission in multiple organizations should query the operation with the `aid` query string parameter (see optional parameters) for each organization. * The `agentId` field in enterprise agent unit responses may be omitted when not available. * **Quotas**: Obtain organization and account usage quotas. Additionally, users with the appropriate permissions can create, update, or delete these quotas. * Users must have the necessary permissions to perform quota-related actions. Refer to the Usage API operations for detailed usage instructions and optional parameters. + These usage endpoints define the following operations: * **Usage**: Retrieve usage data for the specified time period (default is one month). * Users must have the `View organization usage` permission to access this endpoint. * This operation offers visibility across all account groups within the organization. * Users with `View organization usage` permission in multiple organizations should query the operation with the `aid` query string parameter (see optional parameters) for each organization. * The `agentId` field in enterprise agent unit responses may be omitted when not available. * **Quotas**: Obtain organization and account usage quotas. Additionally, users with the appropriate permissions can create, update, or delete these quotas. * Users must have the necessary permissions to perform quota-related actions. Refer to the Usage API operations for detailed usage instructions and optional parameters. Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/thousandeyes-sdk-usage/src/thousandeyes_sdk/usage/models/usage_details.py b/thousandeyes-sdk-usage/src/thousandeyes_sdk/usage/models/usage_details.py index 6f0e87d8..174741a8 100644 --- a/thousandeyes-sdk-usage/src/thousandeyes_sdk/usage/models/usage_details.py +++ b/thousandeyes-sdk-usage/src/thousandeyes_sdk/usage/models/usage_details.py @@ -3,7 +3,7 @@ """ Usage API - These usage endpoints define the following operations: * **Usage**: Retrieve usage data for the specified time period (default is one month). * Users must have the `View organization usage` permission to access this endpoint. * This operation offers visibility across all account groups within the organization. * Users with `View organization usage` permission in multiple organizations should query the operation with the `aid` query string parameter (see optional parameters) for each organization. * The `agentId` field in enterprise agent unit responses may be omitted when not available. * **Quotas**: Obtain organization and account usage quotas. Additionally, users with the appropriate permissions can create, update, or delete these quotas. * Users must have the necessary permissions to perform quota-related actions. Refer to the Usage API operations for detailed usage instructions and optional parameters. + These usage endpoints define the following operations: * **Usage**: Retrieve usage data for the specified time period (default is one month). * Users must have the `View organization usage` permission to access this endpoint. * This operation offers visibility across all account groups within the organization. * Users with `View organization usage` permission in multiple organizations should query the operation with the `aid` query string parameter (see optional parameters) for each organization. * The `agentId` field in enterprise agent unit responses may be omitted when not available. * **Quotas**: Obtain organization and account usage quotas. Additionally, users with the appropriate permissions can create, update, or delete these quotas. * Users must have the necessary permissions to perform quota-related actions. Refer to the Usage API operations for detailed usage instructions and optional parameters. Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/thousandeyes-sdk-usage/src/thousandeyes_sdk/usage/models/usage_quota.py b/thousandeyes-sdk-usage/src/thousandeyes_sdk/usage/models/usage_quota.py index f8d82157..84e64f53 100644 --- a/thousandeyes-sdk-usage/src/thousandeyes_sdk/usage/models/usage_quota.py +++ b/thousandeyes-sdk-usage/src/thousandeyes_sdk/usage/models/usage_quota.py @@ -3,7 +3,7 @@ """ Usage API - These usage endpoints define the following operations: * **Usage**: Retrieve usage data for the specified time period (default is one month). * Users must have the `View organization usage` permission to access this endpoint. * This operation offers visibility across all account groups within the organization. * Users with `View organization usage` permission in multiple organizations should query the operation with the `aid` query string parameter (see optional parameters) for each organization. * The `agentId` field in enterprise agent unit responses may be omitted when not available. * **Quotas**: Obtain organization and account usage quotas. Additionally, users with the appropriate permissions can create, update, or delete these quotas. * Users must have the necessary permissions to perform quota-related actions. Refer to the Usage API operations for detailed usage instructions and optional parameters. + These usage endpoints define the following operations: * **Usage**: Retrieve usage data for the specified time period (default is one month). * Users must have the `View organization usage` permission to access this endpoint. * This operation offers visibility across all account groups within the organization. * Users with `View organization usage` permission in multiple organizations should query the operation with the `aid` query string parameter (see optional parameters) for each organization. * The `agentId` field in enterprise agent unit responses may be omitted when not available. * **Quotas**: Obtain organization and account usage quotas. Additionally, users with the appropriate permissions can create, update, or delete these quotas. * Users must have the necessary permissions to perform quota-related actions. Refer to the Usage API operations for detailed usage instructions and optional parameters. Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/thousandeyes-sdk-usage/src/thousandeyes_sdk/usage/models/validation_error.py b/thousandeyes-sdk-usage/src/thousandeyes_sdk/usage/models/validation_error.py index 9daee1e3..11f66ab0 100644 --- a/thousandeyes-sdk-usage/src/thousandeyes_sdk/usage/models/validation_error.py +++ b/thousandeyes-sdk-usage/src/thousandeyes_sdk/usage/models/validation_error.py @@ -3,7 +3,7 @@ """ Usage API - These usage endpoints define the following operations: * **Usage**: Retrieve usage data for the specified time period (default is one month). * Users must have the `View organization usage` permission to access this endpoint. * This operation offers visibility across all account groups within the organization. * Users with `View organization usage` permission in multiple organizations should query the operation with the `aid` query string parameter (see optional parameters) for each organization. * The `agentId` field in enterprise agent unit responses may be omitted when not available. * **Quotas**: Obtain organization and account usage quotas. Additionally, users with the appropriate permissions can create, update, or delete these quotas. * Users must have the necessary permissions to perform quota-related actions. Refer to the Usage API operations for detailed usage instructions and optional parameters. + These usage endpoints define the following operations: * **Usage**: Retrieve usage data for the specified time period (default is one month). * Users must have the `View organization usage` permission to access this endpoint. * This operation offers visibility across all account groups within the organization. * Users with `View organization usage` permission in multiple organizations should query the operation with the `aid` query string parameter (see optional parameters) for each organization. * The `agentId` field in enterprise agent unit responses may be omitted when not available. * **Quotas**: Obtain organization and account usage quotas. Additionally, users with the appropriate permissions can create, update, or delete these quotas. * Users must have the necessary permissions to perform quota-related actions. Refer to the Usage API operations for detailed usage instructions and optional parameters. Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/thousandeyes-sdk-usage/src/thousandeyes_sdk/usage/models/validation_error_item.py b/thousandeyes-sdk-usage/src/thousandeyes_sdk/usage/models/validation_error_item.py index d6b8636c..9b7a77fa 100644 --- a/thousandeyes-sdk-usage/src/thousandeyes_sdk/usage/models/validation_error_item.py +++ b/thousandeyes-sdk-usage/src/thousandeyes_sdk/usage/models/validation_error_item.py @@ -3,7 +3,7 @@ """ Usage API - These usage endpoints define the following operations: * **Usage**: Retrieve usage data for the specified time period (default is one month). * Users must have the `View organization usage` permission to access this endpoint. * This operation offers visibility across all account groups within the organization. * Users with `View organization usage` permission in multiple organizations should query the operation with the `aid` query string parameter (see optional parameters) for each organization. * The `agentId` field in enterprise agent unit responses may be omitted when not available. * **Quotas**: Obtain organization and account usage quotas. Additionally, users with the appropriate permissions can create, update, or delete these quotas. * Users must have the necessary permissions to perform quota-related actions. Refer to the Usage API operations for detailed usage instructions and optional parameters. + These usage endpoints define the following operations: * **Usage**: Retrieve usage data for the specified time period (default is one month). * Users must have the `View organization usage` permission to access this endpoint. * This operation offers visibility across all account groups within the organization. * Users with `View organization usage` permission in multiple organizations should query the operation with the `aid` query string parameter (see optional parameters) for each organization. * The `agentId` field in enterprise agent unit responses may be omitted when not available. * **Quotas**: Obtain organization and account usage quotas. Additionally, users with the appropriate permissions can create, update, or delete these quotas. * Users must have the necessary permissions to perform quota-related actions. Refer to the Usage API operations for detailed usage instructions and optional parameters. Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/thousandeyes-sdk-usage/test/test_quotas_api.py b/thousandeyes-sdk-usage/test/test_quotas_api.py index fbfa8998..73b84429 100644 --- a/thousandeyes-sdk-usage/test/test_quotas_api.py +++ b/thousandeyes-sdk-usage/test/test_quotas_api.py @@ -3,7 +3,7 @@ """ Usage API - These usage endpoints define the following operations: * **Usage**: Retrieve usage data for the specified time period (default is one month). * Users must have the `View organization usage` permission to access this endpoint. * This operation offers visibility across all account groups within the organization. * Users with `View organization usage` permission in multiple organizations should query the operation with the `aid` query string parameter (see optional parameters) for each organization. * The `agentId` field in enterprise agent unit responses may be omitted when not available. * **Quotas**: Obtain organization and account usage quotas. Additionally, users with the appropriate permissions can create, update, or delete these quotas. * Users must have the necessary permissions to perform quota-related actions. Refer to the Usage API operations for detailed usage instructions and optional parameters. + These usage endpoints define the following operations: * **Usage**: Retrieve usage data for the specified time period (default is one month). * Users must have the `View organization usage` permission to access this endpoint. * This operation offers visibility across all account groups within the organization. * Users with `View organization usage` permission in multiple organizations should query the operation with the `aid` query string parameter (see optional parameters) for each organization. * The `agentId` field in enterprise agent unit responses may be omitted when not available. * **Quotas**: Obtain organization and account usage quotas. Additionally, users with the appropriate permissions can create, update, or delete these quotas. * Users must have the necessary permissions to perform quota-related actions. Refer to the Usage API operations for detailed usage instructions and optional parameters. Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/thousandeyes-sdk-usage/test/test_usage_api.py b/thousandeyes-sdk-usage/test/test_usage_api.py index 1f6a70c2..a663aa5e 100644 --- a/thousandeyes-sdk-usage/test/test_usage_api.py +++ b/thousandeyes-sdk-usage/test/test_usage_api.py @@ -3,7 +3,7 @@ """ Usage API - These usage endpoints define the following operations: * **Usage**: Retrieve usage data for the specified time period (default is one month). * Users must have the `View organization usage` permission to access this endpoint. * This operation offers visibility across all account groups within the organization. * Users with `View organization usage` permission in multiple organizations should query the operation with the `aid` query string parameter (see optional parameters) for each organization. * The `agentId` field in enterprise agent unit responses may be omitted when not available. * **Quotas**: Obtain organization and account usage quotas. Additionally, users with the appropriate permissions can create, update, or delete these quotas. * Users must have the necessary permissions to perform quota-related actions. Refer to the Usage API operations for detailed usage instructions and optional parameters. + These usage endpoints define the following operations: * **Usage**: Retrieve usage data for the specified time period (default is one month). * Users must have the `View organization usage` permission to access this endpoint. * This operation offers visibility across all account groups within the organization. * Users with `View organization usage` permission in multiple organizations should query the operation with the `aid` query string parameter (see optional parameters) for each organization. * The `agentId` field in enterprise agent unit responses may be omitted when not available. * **Quotas**: Obtain organization and account usage quotas. Additionally, users with the appropriate permissions can create, update, or delete these quotas. * Users must have the necessary permissions to perform quota-related actions. Refer to the Usage API operations for detailed usage instructions and optional parameters. Generated by OpenAPI Generator (https://openapi-generator.tech)