From 085b17c692223644f704a15d4fcd678fc468d812 Mon Sep 17 00:00:00 2001 From: Subrahmanya Mayya Date: Mon, 9 Feb 2026 12:47:51 +0530 Subject: [PATCH] Update sdk with api changes --- openapi-spec.yaml | 9043 +++++++++++++++-- pyproject.toml | 2 +- secure_access/__init__.py | 537 +- secure_access/api/__init__.py | 20 +- secure_access/api/access_rules_api.py | 50 +- .../api/acme_client_certificates_api.py | 4 +- secure_access/api/activity_api.py | 61 +- secure_access/api/alert_rules_api.py | 1792 ++++ secure_access/api/alerts_api.py | 1412 +++ secure_access/api/api_keys_api.py | 4 +- secure_access/api/api_usage_report_api.py | 4 +- .../api/application_categories_api.py | 4 +- secure_access/api/application_lists_api.py | 4 +- secure_access/api/applications_api.py | 4 +- .../api/as_information_for_a_domain_api.py | 4 +- secure_access/api/bandwidth_by_hour_api.py | 10 +- .../api/bandwidth_by_timerange_api.py | 10 +- ...ecure_malware_analytics_integration_api.py | 4 +- secure_access/api/classifications_api.py | 2084 ++++ .../api/co_occurrences_for_a_domain_api.py | 4 +- secure_access/api/connector_groups_api.py | 10 +- secure_access/api/connectors_api.py | 4 +- secure_access/api/content_categories_api.py | 4 +- secure_access/api/credentials_api.py | 4 +- secure_access/api/data_identifiers_api.py | 5888 +++++++++++ secure_access/api/deployment_status_api.py | 10 +- secure_access/api/destination_lists_api.py | 22 +- secure_access/api/destinations_api.py | 16 +- secure_access/api/dlp_rule_events_api.py | 1563 +++ secure_access/api/dns_forwarders_api.py | 4 +- .../domain_status_and_categorization_api.py | 4 +- secure_access/api/domain_volume_api.py | 4 +- secure_access/api/feeds_api.py | 274 +- secure_access/api/identities_api.py | 4 +- .../api/identity_distribution_api.py | 4 +- secure_access/api/integration_types_api.py | 4 +- secure_access/api/integrations_api.py | 4 +- secure_access/api/internal_domains_api.py | 4 +- secure_access/api/internal_networks_api.py | 4 +- secure_access/api/ips_profiles_api.py | 4 +- secure_access/api/network_devices_api.py | 4 +- .../api/network_object_groups_api.py | 4 +- secure_access/api/network_objects_api.py | 4 +- .../api/network_tunnel_groups_api.py | 4 +- .../network_tunnel_groups_peer_state_api.py | 4 +- .../api/network_tunnel_groups_regions_api.py | 4 +- .../api/network_tunnel_groups_state_api.py | 4 +- secure_access/api/network_tunnels_api.py | 526 + secure_access/api/networks_api.py | 4 +- .../api/organization_information_api.py | 4 +- ...ation_requests_by_hour_and_category_api.py | 16 +- .../api/organization_requests_by_hour_api.py | 16 +- ..._requests_by_timerange_and_category_api.py | 16 +- .../organization_requests_by_timerange_api.py | 16 +- secure_access/api/passive_dns_api.py | 4 +- ...popularity_list_top_million_domains_api.py | 4 +- secure_access/api/private_resource_api.py | 4 +- secure_access/api/private_resources_api.py | 4 +- secure_access/api/protocols_api.py | 4 +- .../api/related_domains_for_a_domain_api.py | 4 +- secure_access/api/remote_access_api.py | 10 +- .../api/requests_resource_connector_api.py | 4 +- ...s_summary_resource_connector_groups_api.py | 4 +- secure_access/api/resource_connectors_api.py | 4 +- secure_access/api/resource_groups_api.py | 4 +- secure_access/api/roaming_computers_api.py | 4 +- .../api/rule_settings_and_defaults_api.py | 4 +- secure_access/api/rules_activity_api.py | 4 +- secure_access/api/rules_api.py | 3843 +++++++ .../api/s3_bucket_key_rotation_api.py | 4 +- secure_access/api/search_domain_api.py | 4 +- .../security_information_for_a_domain_api.py | 4 +- secure_access/api/security_profiles_api.py | 4 +- .../api/service_object_groups_api.py | 4 +- secure_access/api/service_objects_api.py | 4 +- secure_access/api/sites_api.py | 4 +- .../api/subdomains_for_a_domain_api.py | 4 +- .../api/summaries_by_category_api.py | 4 +- .../api/summaries_by_destination_api.py | 4 +- secure_access/api/summaries_by_rule_api.py | 4 +- secure_access/api/summary_api.py | 4 +- secure_access/api/tagging_timeline_api.py | 4 +- .../api/tenant_controls_profiles_api.py | 4 +- secure_access/api/tenants_api.py | 376 + secure_access/api/token_api.py | 4 +- secure_access/api/top_categories_api.py | 4 +- secure_access/api/top_destinations_api.py | 4 +- secure_access/api/top_dns_query_types_api.py | 4 +- secure_access/api/top_event_types_api.py | 4 +- secure_access/api/top_files_api.py | 4 +- secure_access/api/top_identities_api.py | 4 +- secure_access/api/top_ips_api.py | 4 +- secure_access/api/top_resources_api.py | 4 +- secure_access/api/top_threat_types_api.py | 4 +- secure_access/api/top_threats_api.py | 4 +- secure_access/api/total_requests_api.py | 7 +- secure_access/api/unified_objects_api.py | 4 +- secure_access/api/unique_resources_api.py | 4 +- secure_access/api/usage_metrics_api.py | 4 +- secure_access/api/utility_api.py | 4 +- secure_access/api/virtual_appliances_api.py | 1196 +++ secure_access/api/vpn_sessions_api.py | 4 +- .../api/whois_information_for_a_domain_api.py | 4 +- secure_access/api_client.py | 12 +- secure_access/api_response.py | 2 +- secure_access/configuration.py | 76 +- secure_access/exceptions.py | 13 +- secure_access/models/__init__.py | 340 +- secure_access/models/access.py | 4 +- secure_access/models/access_rule_context.py | 108 + secure_access/models/access_types_inner.py | 4 +- .../models/access_types_request_inner.py | 4 +- secure_access/models/action_counts.py | 4 +- secure_access/models/activity_amp_retro.py | 4 +- secure_access/models/activity_decryption.py | 10 +- secure_access/models/activity_dns.py | 24 +- secure_access/models/activity_firewall.py | 16 +- secure_access/models/activity_intrusion.py | 14 +- secure_access/models/activity_ip.py | 129 - secure_access/models/activity_proxy.py | 24 +- secure_access/models/activity_ztna.py | 10 +- .../activity_ztna_allapplications_inner.py | 4 +- ...ity_ztna_allapplications_inner_category.py | 4 +- .../add_network_tunnel_group_request.py | 4 +- ...ork_tunnel_group_request_auth_id_prefix.py | 4 +- secure_access/models/add_rule_request.py | 4 +- .../models/ai_guardrails_dlp_rule_event.py | 135 + secure_access/models/alert.py | 125 + secure_access/models/alert_rule.py | 128 + .../models/alert_with_additional_context.py | 125 + secure_access/models/alerting400_error.py | 94 + secure_access/models/alerting401_error.py | 94 + secure_access/models/alerting403_error.py | 94 + secure_access/models/alerting404_error.py | 94 + secure_access/models/alerting500_error.py | 94 + .../models/all_destinations_scope.py | 43 + secure_access/models/already_exists_error.py | 4 +- secure_access/models/antivirus_threats.py | 4 +- secure_access/models/api_error_response.py | 96 + .../models/api_usage_api400_error.py | 4 +- .../models/api_usage_api401_error.py | 4 +- .../models/api_usage_api403_error.py | 4 +- .../models/api_usage_api404_error.py | 4 +- .../models/api_usage_api500_error.py | 4 +- ...onnector_agent_detailed_stats_timerange.py | 4 +- .../app_connector_agent_summary_data.py | 4 +- ...onnector_group_detailed_stats_timerange.py | 4 +- .../app_connector_group_summary_data.py | 4 +- secure_access/models/app_type.py | 4 +- secure_access/models/application.py | 36 +- .../models/application_actions_inner.py | 4 +- secure_access/models/application_attribute.py | 4 +- .../models/application_attribute_category.py | 4 +- .../application_attribute_category_list.py | 4 +- .../models/application_attribute_value.py | 4 +- .../models/application_categories.py | 4 +- secure_access/models/application_category.py | 18 +- .../models/application_category_list.py | 4 +- secure_access/models/application_identity.py | 4 +- .../models/application_identity_list.py | 4 +- secure_access/models/application_in_list.py | 4 +- secure_access/models/application_list.py | 4 +- .../models/application_list_request.py | 4 +- .../models/application_list_with_info.py | 4 +- secure_access/models/application_lists.py | 4 +- .../models/application_lists400_error.py | 4 +- .../models/application_lists401_error.py | 4 +- .../models/application_lists403_error.py | 4 +- .../models/application_lists404_error.py | 4 +- .../models/application_lists500_error.py | 4 +- .../application_lists_application_list.py | 4 +- .../models/application_lists_result_inner.py | 4 +- secure_access/models/application_object.py | 4 +- secure_access/models/application_risk.py | 4 +- ...pplication_risk_vendor_compliance_inner.py | 4 +- secure_access/models/application_saas_api.py | 94 + .../application_usage_response_inner.py | 4 +- ...pplication_usage_response_inner_used_by.py | 4 +- ...e_inner_used_by_application_lists_inner.py | 4 +- .../models/applications_with_categories.py | 10 +- secure_access/models/apply_to.py | 4 +- secure_access/models/attribute_name.py | 4 +- .../models/attribute_name_destination.py | 4 +- .../attribute_name_destination_composite.py | 4 +- .../models/attribute_name_in_query.py | 4 +- secure_access/models/attribute_name_source.py | 4 +- .../models/attribute_name_source_composite.py | 4 +- secure_access/models/attribute_operator.py | 4 +- secure_access/models/attribute_value.py | 4 +- ...attribute_value_network_service_objects.py | 4 +- secure_access/models/avresult.py | 4 +- secure_access/models/bad_request.py | 4 +- secure_access/models/bad_request_data.py | 4 +- secure_access/models/bad_request_error.py | 4 +- secure_access/models/bad_request_status.py | 4 +- secure_access/models/bandwidthby_hour.py | 4 +- secure_access/models/behavior.py | 4 +- .../models/behavior_analytics_context.py | 96 + secure_access/models/bgp.py | 4 +- secure_access/models/bgp_data_request_obj.py | 18 +- secure_access/models/bgp_data_response_obj.py | 18 +- secure_access/models/branch_access.py | 4 +- .../models/browser_based_access_common.py | 4 +- .../models/browser_based_access_request.py | 4 +- .../models/browser_based_access_response.py | 4 +- .../models/built_in_data_identifier.py | 103 + .../built_in_data_identifier_list_item.py | 95 + .../models/bulk_label_applications.py | 4 +- secure_access/models/bundle_type_id.py | 4 +- secure_access/models/business_risk.py | 4 +- secure_access/models/category_by_hour.py | 4 +- secure_access/models/category_count.py | 4 +- .../models/category_with_legacy_id.py | 4 +- secure_access/models/cdfw_source.py | 4 +- secure_access/models/certificate.py | 4 +- secure_access/models/cisco_amp.py | 4 +- secure_access/models/classifications_inner.py | 104 + ...classifications_inner_classifiers_inner.py | 106 + ...s_inner_classifiers_inner_matches_inner.py | 92 + .../models/classifier_evaluation_strategy.py | 42 + secure_access/models/client_based_access.py | 4 +- .../models/collection_reference_response.py | 4 +- ...ection_reference_response_results_inner.py | 4 +- .../models/columns_edm_create_inner.py | 99 + .../models/columns_edm_with_id_inner.py | 101 + secure_access/models/conditions_alert_rule.py | 112 + ...py => conditions_alert_rule_rows_inner.py} | 28 +- secure_access/models/connection.py | 4 +- .../models/connector_counts_response.py | 4 +- .../models/connector_group_counts_response.py | 4 +- secure_access/models/connector_group_list.py | 4 +- .../models/connector_group_patch_req_inner.py | 4 +- .../connector_group_patch_req_inner_value.py | 4 +- secure_access/models/connector_group_req.py | 4 +- .../models/connector_group_response.py | 4 +- secure_access/models/connector_list_res.py | 4 +- .../models/connector_patch_req_inner.py | 4 +- secure_access/models/connector_response.py | 4 +- .../models/content_category_setting.py | 4 +- .../models/create_alert_rule201_response.py | 92 + .../models/create_alert_rule_request.py | 119 + .../models/create_api_keys_request.py | 4 +- .../create_custom_ips_profile_request.py | 4 +- ...reate_integration_credential_input_body.py | 4 +- .../models/create_integration_input_body.py | 16 +- .../models/create_internal_domain_request.py | 4 +- .../models/create_internal_network_request.py | 4 +- .../models/create_network403_response.py | 4 +- .../models/create_network_request.py | 4 +- secure_access/models/create_output_body.py | 4 +- secure_access/models/create_site_request.py | 4 +- ..._validate_network_objects_request_inner.py | 4 +- ...ate_network_objects_request_inner_value.py | 4 +- ..._validate_service_objects_request_inner.py | 4 +- secure_access/models/credential.py | 4 +- secure_access/models/credential_type.py | 4 +- secure_access/models/credential_value.py | 4 +- .../models/custom_data_identifier.py | 110 + .../custom_data_identifier_create_request.py | 107 + .../custom_data_identifier_list_item.py | 96 + .../custom_data_identifier_update_request.py | 107 + secure_access/models/data_classification.py | 112 + .../data_classification_create_request.py | 103 + .../models/data_classification_list_item.py | 96 + .../data_classification_patch_request.py | 103 + .../models/data_classification_type.py | 44 + .../models/data_loss_prevention_action.py | 45 + .../models/data_loss_prevention_action2.py | 42 + ...data_loss_prevention_api_error_response.py | 96 + .../data_loss_prevention_application.py | 95 + ...ta_loss_prevention_application_category.py | 94 + ...a_loss_prevention_application_category2.py | 95 + .../data_loss_prevention_destination.py | 94 + .../models/data_loss_prevention_identity.py | 96 + .../data_loss_prevention_private_resource.py | 95 + ..._loss_prevention_private_resource_group.py | 95 + .../models/data_loss_prevention_severity.py | 42 + .../models/data_loss_prevention_severity2.py | 44 + .../models/data_loss_prevention_state.py | 4 +- secure_access/models/data_storage.py | 4 +- secure_access/models/datacenter_hub.py | 4 +- secure_access/models/datacenter_with_ip.py | 4 +- .../models/delete_alert_rules200_response.py | 96 + .../models/delete_alert_rules_request.py | 93 + .../delete_private_resource200_response.py | 4 +- ...lete_private_resource_group200_response.py | 4 +- secure_access/models/deployment_status.py | 4 +- .../models/destination_create_object.py | 4 +- .../models/destination_list_create.py | 4 +- ...tination_list_create_destinations_inner.py | 4 +- .../models/destination_list_delete.py | 4 +- .../models/destination_list_object.py | 4 +- .../models/destination_list_object_meta.py | 4 +- .../models/destination_list_patch.py | 4 +- .../models/destination_list_response.py | 4 +- .../destination_lists_bundle_type_id.py | 4 +- .../models/destination_lists_server_error.py | 4 +- .../destination_object_with_string_id.py | 4 +- secure_access/models/device.py | 4 +- .../models/device_certificate_info.py | 4 +- secure_access/models/device_type.py | 6 +- secure_access/models/dlp_rule.py | 137 + .../models/dlp_rule_create_request.py | 216 + secure_access/models/dlp_rule_event.py | 142 + .../models/dlp_rule_event_by_type.py | 147 + .../models/dlp_rule_event_by_type_rule.py | 104 + secure_access/models/dlp_rule_list_item.py | 95 + .../models/dlp_rule_patch_request.py | 213 + .../models/dns_forwarder_create_response.py | 4 +- secure_access/models/dns_forwarder_object.py | 4 +- .../models/dns_forwarder_object_create.py | 4 +- .../models/dns_forwarder_object_update.py | 4 +- .../models/dns_forwarders500_error.py | 4 +- secure_access/models/dns_forwarders_type.py | 4 +- secure_access/models/dns_source.py | 4 +- secure_access/models/domain_categorization.py | 4 +- .../models/edm_identifier_create_request.py | 107 + .../models/edm_identifier_list_item.py | 96 + .../models/edm_identifier_response.py | 116 + .../models/edm_identifier_update_request.py | 107 + ...privateapplicationgroup.py => edm_type.py} | 25 +- secure_access/models/egress.py | 4 +- secure_access/models/enabled.py | 6 +- secure_access/models/environment.py | 4 +- secure_access/models/error.py | 4 +- secure_access/models/external_fqdn.py | 4 +- secure_access/models/external_fqdn_prefix.py | 4 +- secure_access/models/feed_create.py | 12 +- secure_access/models/feed_object.py | 18 +- secure_access/models/feed_patch.py | 10 +- secure_access/models/file_metadata.py | 101 + secure_access/models/filters_ntgs_object.py | 4 +- .../models/filters_regions_object.py | 4 +- secure_access/models/financial_viability.py | 4 +- secure_access/models/firewall_application.py | 4 +- .../models/firewall_rule_hitcount_summary.py | 4 +- secure_access/models/forbidden.py | 4 +- secure_access/models/forbidden_data.py | 4 +- secure_access/models/forbidden_error.py | 4 +- secure_access/models/forbidden_status.py | 4 +- secure_access/models/forward_dns_inner.py | 4 +- secure_access/models/fqdn_value_type.py | 4 +- .../models/get_activities200_response.py | 4 +- .../get_activities200_response_data_inner.py | 4 +- ..._activity_amp_retrospective200_response.py | 4 +- .../get_activity_decryption200_response.py | 4 +- .../models/get_activity_dns200_response.py | 4 +- .../get_activity_firewall200_response.py | 4 +- .../get_activity_intrusion200_response.py | 4 +- .../models/get_activity_ip200_response.py | 4 +- .../models/get_activity_proxy200_response.py | 4 +- .../models/get_activity_ztna200_response.py | 4 +- .../models/get_applications200_response.py | 4 +- .../get_bandwidth_by_hour200_response.py | 4 +- .../models/get_bgp_routes_asn200_response.py | 4 +- .../get_bgp_routes_asn200_response_geo.py | 4 +- .../models/get_bgp_routes_ip200_response.py | 4 +- .../models/get_categories200_response.py | 4 +- .../models/get_credential_output_body.py | 4 +- .../get_deployment_status200_response.py | 4 +- ...led_stats_for_app_connector200_response.py | 4 +- ...ts_for_app_connector_groups200_response.py | 4 +- .../models/get_domain_volume200_response.py | 4 +- .../models/get_identities200_response.py | 4 +- ...identitiesreportsidentities200_response.py | 10 +- .../models/get_identity200_response.py | 10 +- .../get_identity_distribution200_response.py | 4 +- ..._identity_distribution_type200_response.py | 4 +- .../models/get_integration_output_body.py | 4 +- .../models/get_ips_profiles200_response.py | 4 +- .../models/get_links_name200_response.py | 4 +- .../get_links_name200_response_tb1_inner.py | 4 +- .../get_network_object_groups200_response.py | 4 +- ...get_overloaded_groups_count200_response.py | 4 +- ...e_detailed_stats_identities200_response.py | 4 +- ...ce_detailed_stats_timerange200_response.py | 4 +- .../get_private_resource_stats200_response.py | 4 +- .../get_recommendations_name200_response.py | 4 +- .../get_remote_access_events200_response.py | 4 +- .../get_requests_by_hour200_response.py | 4 +- ...quests_by_hour_and_category200_response.py | 4 +- .../get_requests_by_timerange200_response.py | 4 +- ...ry_for_app_connector_groups200_response.py | 4 +- .../models/get_search200_response.py | 4 +- .../models/get_security_name200_response.py | 4 +- .../get_service_object_groups200_response.py | 4 +- .../models/get_service_objects200_response.py | 4 +- ...atures_in_signature_profile200_response.py | 4 +- .../get_summaries_by_category200_response.py | 4 +- ...et_summaries_by_destination200_response.py | 4 +- ...s_by_rule_firewall_hitcount200_response.py | 4 +- ..._summaries_by_rule_hitcount200_response.py | 4 +- ...summaries_by_rule_intrusion200_response.py | 4 +- .../models/get_summary200_response.py | 4 +- .../models/get_threat_name200_response.py | 4 +- .../models/get_threat_names200_response.py | 4 +- .../models/get_threat_type200_response.py | 4 +- .../models/get_threat_types200_response.py | 4 +- .../models/get_top_categories200_response.py | 4 +- .../get_top_destinations200_response.py | 4 +- .../get_top_dns_query_types200_response.py | 4 +- .../models/get_top_event_types200_response.py | 4 +- .../models/get_top_files_proxy200_response.py | 4 +- .../models/get_top_identities200_response.py | 4 +- .../models/get_top_ips200_response.py | 4 +- .../models/get_top_resources200_response.py | 4 +- .../get_top_threat_types200_response.py | 4 +- .../models/get_top_threats200_response.py | 4 +- .../models/get_top_urls200_response.py | 4 +- ..._requests_for_app_connector200_response.py | 4 +- ...sts_for_app_connector_group200_response.py | 4 +- .../models/get_tunnel_events200_response.py | 102 + .../get_unique_resources200_response.py | 4 +- .../models/get_usage_metrics200_response.py | 4 +- .../get_usage_metrics200_response_body.py | 4 +- secure_access/models/get_value_output_body.py | 4 +- .../models/get_whois_email200_response.py | 4 +- .../get_whois_nameserver200_response.py | 4 +- .../get_whois_nameservers200_response.py | 4 +- .../models/get_whois_search200_response.py | 4 +- secure_access/models/grid.py | 4 +- secure_access/models/http_error.py | 4 +- secure_access/models/hub_state.py | 10 +- secure_access/models/hubs_inner.py | 10 +- secure_access/models/hubs_with_ip_inner.py | 4 +- secure_access/models/hubs_with_state_inner.py | 4 +- secure_access/models/id_name_ref.py | 95 + .../models/identities_get_response_inner.py | 4 +- .../identities_registration500_error.py | 4 +- .../models/identities_registration_status.py | 4 +- secure_access/models/identity.py | 38 +- secure_access/models/identity_distribution.py | 4 +- .../models/identity_endpoints_get_response.py | 4 +- secure_access/models/identity_type.py | 4 +- secure_access/models/identity_with_stats.py | 4 +- secure_access/models/idm_accuracy.py | 43 + .../models/idm_data_identifier_list_item.py | 96 + .../models/idm_data_identifier_response.py | 121 + .../models/idm_identifier_create_request.py | 98 + .../models/idm_identifier_update_request.py | 98 + secure_access/models/integration.py | 16 +- secure_access/models/integration_status.py | 4 +- secure_access/models/integration_type.py | 84 +- .../models/internal_domain_object.py | 4 +- .../models/internal_network_object.py | 4 +- secure_access/models/internal_server_error.py | 4 +- secure_access/models/intune_config.py | 4 +- secure_access/models/intune_config_input.py | 4 +- secure_access/models/invalid_request_error.py | 4 +- secure_access/models/investigate400_error.py | 4 +- secure_access/models/investigate401_error.py | 4 +- secure_access/models/investigate403_error.py | 4 +- secure_access/models/investigate404_error.py | 4 +- secure_access/models/investigate500_error.py | 4 +- .../models/ips_profiles_bad_request.py | 4 +- .../models/ips_profiles_forbidden.py | 4 +- secure_access/models/ips_profiles_meta.py | 4 +- .../models/ips_profiles_not_found.py | 4 +- .../models/ips_profiles_server_error.py | 4 +- .../models/ips_profiles_unauthorized.py | 4 +- secure_access/models/ips_signature.py | 4 +- secure_access/models/ips_signature_profile.py | 4 +- secure_access/models/isolated.py | 4 +- secure_access/models/jamf_config.py | 4 +- secure_access/models/jamf_config_input.py | 4 +- secure_access/models/key_admin_key.py | 4 +- secure_access/models/key_for_list.py | 4 +- secure_access/models/key_refresh_secret.py | 4 +- secure_access/models/key_response.py | 4 +- .../models/key_response_refresh_secret.py | 4 +- .../models/key_response_with_secret.py | 4 +- secure_access/models/key_rotation.py | 4 +- secure_access/models/key_with_secret.py | 4 +- secure_access/models/keys.py | 4 +- .../models/keys_information_inner.py | 4 +- secure_access/models/keys_response_list.py | 4 +- secure_access/models/label.py | 4 +- .../models/label_action_parameters.py | 102 + secure_access/models/label_criteria.py | 95 + secure_access/models/level.py | 43 + .../list_ai_guardrails_dlp_rule_events.py | 100 + .../models/list_alerts200_response.py | 142 + secure_access/models/list_alerts_response.py | 104 + ...t_application_categories_response_inner.py | 4 +- .../models/list_int_types_output_body.py | 10 +- .../models/list_integrations_output_body.py | 4 +- .../list_network_objects200_response.py | 4 +- ...ist_private_resources_filters_parameter.py | 4 +- .../models/list_real_time_dlp_rule_events.py | 100 + .../list_resource_groups_filters_parameter.py | 4 +- .../models/list_saa_s_api_dlp_rule_events.py | 100 + .../list_security_profiles_response_inner.py | 4 +- ...tenant_controls_profiles_response_inner.py | 4 +- .../models/list_tenants_filters_parameter.py | 94 + .../models/list_tenants_sort_parameter.py | 114 + ...ist_unified_network_objects200_response.py | 4 +- ...twork_objects200_response_results_inner.py | 4 +- ...bjects200_response_results_inner_any_of.py | 4 +- ...jects200_response_results_inner_any_of1.py | 4 +- ...ist_unified_service_objects200_response.py | 4 +- ...rvice_objects200_response_results_inner.py | 4 +- ...bjects200_response_results_inner_any_of.py | 4 +- ...jects200_response_results_inner_any_of1.py | 4 +- secure_access/models/list_vpn_sessions.py | 4 +- .../models/list_vpn_sessions_data_inner.py | 4 +- secure_access/models/match_record.py | 4 +- secure_access/models/meta.py | 4 +- secure_access/models/metering401_error.py | 4 +- secure_access/models/metering403_error.py | 4 +- secure_access/models/metering404_error.py | 4 +- secure_access/models/metering500_error.py | 4 +- .../models/model207_activity_multi_status.py | 106 + .../model207_activity_multi_status_meta.py | 94 + .../models/model207_partial_response.py | 96 + ...> model207_total_requests_multi_status.py} | 40 +- ...del207_total_requests_multi_status_data.py | 92 + ...del207_total_requests_multi_status_meta.py | 94 + .../models/model400_bulk_states_error.py | 4 +- ...400_bulk_states_error_validation_errors.py | 4 +- .../models/model400_connector_agent_error.py | 4 +- ...connector_agent_error_validation_errors.py | 4 +- .../models/model400_connector_group_error.py | 4 +- ...connector_group_error_validation_errors.py | 4 +- secure_access/models/model400_error.py | 4 +- secure_access/models/model400_error_object.py | 4 +- secure_access/models/model400_list_error.py | 4 +- .../models/model400_list_error_one_of.py | 4 +- .../models/model400_list_error_one_of1.py | 4 +- ...00_list_error_one_of1_validation_errors.py | 4 +- secure_access/models/model400_ntgid_error.py | 4 +- .../models/model400_regions_error.py | 4 +- .../models/model400_regions_error_one_of.py | 4 +- .../models/model400_regions_error_one_of1.py | 4 +- ...regions_error_one_of1_validation_errors.py | 12 +- .../models/model400_validation_error.py | 4 +- .../model400_validation_error_one_of.py | 4 +- .../model400_validation_error_one_of1.py | 4 +- ...lidation_error_one_of_validation_errors.py | 4 +- secure_access/models/model401_error.py | 4 +- secure_access/models/model401_error_object.py | 4 +- secure_access/models/model403_error.py | 4 +- secure_access/models/model403_error_object.py | 4 +- secure_access/models/model404_error.py | 4 +- secure_access/models/model404_error_object.py | 4 +- secure_access/models/model409_error.py | 12 +- secure_access/models/model422_error.py | 94 + secure_access/models/model429_error.py | 94 + secure_access/models/model500_error.py | 4 +- secure_access/models/model500_error_object.py | 4 +- .../models/multi_tenants400_error.py | 92 + .../models/multi_tenants401_error.py | 92 + .../models/multi_tenants403_error.py | 92 + .../models/multi_tenants404_error.py | 92 + .../models/multi_tenants500_error.py | 92 + secure_access/models/network_based_access.py | 4 +- secure_access/models/network_device_create.py | 4 +- secure_access/models/network_device_entity.py | 4 +- secure_access/models/network_device_patch.py | 4 +- .../models/network_devices500_error.py | 4 +- secure_access/models/network_object.py | 4 +- .../network_object_group_request_schema.py | 4 +- .../network_object_group_response_schema.py | 4 +- ...ject_group_response_schema_groups_inner.py | 4 +- ...ect_group_response_schema_objects_inner.py | 4 +- .../models/network_object_request_schema.py | 4 +- .../network_object_request_schema_value.py | 4 +- .../models/network_object_response_schema.py | 4 +- .../network_object_response_schema_value.py | 4 +- secure_access/models/network_tunnel_event.py | 146 + ...etwork_tunnel_group_bulk_state_response.py | 4 +- .../network_tunnel_group_list_response.py | 4 +- .../models/network_tunnel_group_response.py | 4 +- .../network_tunnel_group_state_response.py | 4 +- .../models/network_tunnel_groups_list.py | 4 +- .../models/network_tunnel_groups_status.py | 4 +- secure_access/models/network_value_type.py | 4 +- secure_access/models/networks500_error.py | 4 +- secure_access/models/not_found.py | 4 +- secure_access/models/not_found_data.py | 4 +- secure_access/models/not_found_error.py | 4 +- secure_access/models/not_found_status.py | 4 +- .../models/notification_info_alert_rule.py | 98 + secure_access/models/notification_type_all.py | 42 + .../models/notification_type_email.py | 41 + .../models/object_reference_response.py | 4 +- secure_access/models/oob_exposure_config.py | 102 + .../{hub_status.py => oob_exposure_item.py} | 35 +- .../models/oob_incremental_config.py | 120 + secure_access/models/oob_instance_config.py | 94 + .../models/oob_patch_incremental_config.py | 120 + secure_access/models/oob_platform_config.py | 102 + .../models/oob_rule_create_request.py | 169 + ...ule_create_request_with_classifications.py | 150 + ...rule_create_request_with_file_size_from.py | 150 + .../oob_rule_create_request_with_labels.py | 150 + .../oob_rule_create_request_with_mip_tags.py | 150 + .../models/oob_rule_patch_request.py | 140 + secure_access/models/oob_rule_response.py | 166 + secure_access/models/op.py | 4 +- secure_access/models/org_info.py | 4 +- .../paginated_destination_lists_response.py | 4 +- .../paginated_destination_object_response.py | 4 +- secure_access/models/patch_api_key_request.py | 4 +- .../models/patch_applications_request.py | 4 +- secure_access/models/patch_input_body.py | 12 +- .../models/patch_integration_output_body.py | 4 +- ...atch_network_tunnel_group_request_inner.py | 4 +- ...etwork_tunnel_group_request_inner_value.py | 4 +- secure_access/models/policy.py | 4 +- secure_access/models/policy_rules400_error.py | 4 +- secure_access/models/policy_rules401_error.py | 4 +- secure_access/models/policy_rules403_error.py | 4 +- secure_access/models/policy_rules404_error.py | 4 +- secure_access/models/policy_rules500_error.py | 4 +- secure_access/models/policy_rules_rule.py | 153 + secure_access/models/policy_rules_rules.py | 4 +- secure_access/models/policy_ztna.py | 4 +- .../models/post_identities_request.py | 4 +- .../models/private_application_group.py | 4 +- secure_access/models/private_resource.py | 94 + ...vate_resource_detailed_stats_identities.py | 4 +- ...ivate_resource_detailed_stats_timerange.py | 4 +- ...tailed_stats_timerange_total_hits_count.py | 4 +- .../models/private_resource_group.py | 94 + .../models/private_resource_group_list.py | 4 +- .../models/private_resource_group_request.py | 4 +- .../models/private_resource_group_response.py | 4 +- secure_access/models/private_resource_list.py | 4 +- .../models/private_resource_request.py | 4 +- .../models/private_resource_response.py | 4 +- .../models/private_resource_stats.py | 4 +- .../models/private_resources400_error.py | 4 +- .../models/private_resources401_error.py | 4 +- .../models/private_resources403_error.py | 4 +- .../models/private_resources404_error.py | 4 +- .../models/private_resources500_error.py | 4 +- secure_access/models/protocol.py | 4 +- .../models/protocol_client_to_resource.py | 4 +- secure_access/models/protocol_identity.py | 4 +- .../models/protocol_identity_list.py | 4 +- secure_access/models/protocol_list.py | 4 +- secure_access/models/protocol_object.py | 4 +- .../models/protocol_object_in_list.py | 4 +- .../models/protocol_proxy_to_resource.py | 4 +- secure_access/models/put_rule_request.py | 4 +- secure_access/models/put_rules_request.py | 4 +- .../put_rules_request_properties_inner.py | 4 +- .../models/real_time_dlp_rule_event.py | 149 + secure_access/models/record.py | 4 +- .../referenced_groups_response_schema.py | 4 +- .../referenced_rules_response_schema.py | 4 +- secure_access/models/region_list.py | 4 +- .../models/region_list_regions_inner.py | 4 +- secure_access/models/regions.py | 4 +- secure_access/models/regions_results_inner.py | 4 +- .../regions_results_inner_countries_inner.py | 4 +- secure_access/models/remote_access.py | 4 +- .../models/remote_access_identities_inner.py | 4 +- .../remote_access_identities_inner_type.py | 4 +- secure_access/models/reporting.py | 4 +- secure_access/models/reporting400_error.py | 4 +- secure_access/models/reporting401_error.py | 4 +- secure_access/models/reporting403_error.py | 4 +- secure_access/models/reporting404_error.py | 4 +- secure_access/models/reporting500_error.py | 4 +- ...pplication.py => reporting_application.py} | 40 +- ...y.py => reporting_application_category.py} | 22 +- secure_access/models/reporting_category.py | 4 +- secure_access/models/reporting_data_center.py | 4 +- ...olicy_ruleset.py => reporting_identity.py} | 36 +- secure_access/models/reporting_rule.py | 4 +- .../{severity.py => reporting_severity.py} | 8 +- secure_access/models/reporting_summary.py | 4 +- .../models/request_and_connection_counts.py | 4 +- secure_access/models/request_counts.py | 4 +- .../models/request_details_list_inner.py | 4 +- .../models/request_summary_app_connector.py | 4 +- .../request_summary_app_connector_group.py | 4 +- secure_access/models/requests.py | 4 +- .../models/requests_by_app_connector.py | 4 +- .../models/requests_by_app_connector_group.py | 4 +- .../models/requests_information_inner.py | 4 +- secure_access/models/requestsby_hour.py | 4 +- .../models/resource_addresses_inner.py | 4 +- ...ce_addresses_inner_protocol_ports_inner.py | 4 +- .../resource_connector_groups400_error.py | 4 +- .../resource_connector_groups401_error.py | 4 +- .../resource_connector_groups403_error.py | 4 +- .../resource_connector_groups404_error.py | 4 +- .../resource_connector_groups409_error.py | 92 + .../resource_connector_groups500_error.py | 4 +- secure_access/models/response.py | 4 +- secure_access/models/response_data.py | 4 +- secure_access/models/responses.py | 4 +- .../models/responses_information_inner.py | 4 +- secure_access/models/risk_score.py | 4 +- .../models/risk_score_indicators_inner.py | 4 +- .../models/roaming_computer_object.py | 4 +- .../models/roaming_computers400_error.py | 4 +- .../models/roaming_computers401_error.py | 4 +- secure_access/models/routing_request.py | 4 +- secure_access/models/routing_request_data.py | 4 +- secure_access/models/routing_response.py | 4 +- secure_access/models/routing_response_data.py | 4 +- secure_access/models/rule.py | 85 +- secure_access/models/rule_action.py | 4 +- secure_access/models/rule_conditions_inner.py | 4 +- .../rule_filter_destinations_example_value.py | 4 +- .../rule_filter_sources_example_value.py | 4 +- secure_access/models/rule_filters.py | 4 +- secure_access/models/rule_filters_value.py | 4 +- secure_access/models/rule_hitcount_summary.py | 4 +- secure_access/models/rule_param.py | 4 +- secure_access/models/rule_settings_inner.py | 4 +- .../models/rule_source_dest_filters.py | 4 +- secure_access/models/rule_type.py | 44 + secure_access/models/rules_activity.py | 4 +- .../models/rules_activity200_response.py | 4 +- secure_access/models/rules_response_inner.py | 4 +- secure_access/models/ruleset.py | 4 +- secure_access/models/s3_bucket400_error.py | 4 +- secure_access/models/s3_bucket401_error.py | 4 +- secure_access/models/s3_bucket403_error.py | 4 +- secure_access/models/s3_bucket404_error.py | 4 +- secure_access/models/s3_bucket500_error.py | 4 +- .../models/saas_api_dlp_rule_event.py | 140 + secure_access/models/saas_api_event_user.py | 96 + secure_access/models/sample.py | 4 +- secure_access/models/sample_hash_behaviors.py | 4 +- .../models/sample_hash_connections.py | 4 +- secure_access/models/sample_hash_samples.py | 4 +- secure_access/models/scannable_context.py | 42 + .../models/security_events_config.py | 94 + .../models/security_events_config_input.py | 94 + .../security_events_config_patch_input.py | 94 + ...py => security_feeds_bad_request_error.py} | 10 +- ...r.py => security_feeds_forbidden_error.py} | 10 +- ...r.py => security_feeds_not_found_error.py} | 10 +- ...rror.py => security_feeds_server_error.py} | 10 +- ...y => security_feeds_unauthorized_error.py} | 10 +- ...ecurity_group_tag_identity_get_response.py | 4 +- .../models/security_profile_response.py | 4 +- secure_access/models/server_error.py | 4 +- secure_access/models/server_error_data.py | 4 +- secure_access/models/server_error_status.py | 4 +- secure_access/models/service_name.py | 44 + .../service_object_group_request_schema.py | 4 +- .../service_object_group_response_schema.py | 4 +- ...ject_group_response_schema_groups_inner.py | 4 +- ...ect_group_response_schema_objects_inner.py | 4 +- .../models/service_object_request_schema.py | 4 +- .../models/service_object_response_schema.py | 4 +- .../models/service_unavailable_error.py | 4 +- secure_access/models/service_value_type.py | 4 +- secure_access/models/setting_name.py | 4 +- .../models/setting_response_inner.py | 4 +- .../models/setting_types_response_inner.py | 4 +- secure_access/models/setting_value.py | 4 +- secure_access/models/settings.py | 4 +- .../models/settings_request_inner.py | 4 +- .../models/settings_request_object.py | 4 +- .../models/settings_response_inner.py | 4 +- .../models/settings_response_object.py | 4 +- secure_access/models/severity_alert.py | 44 + secure_access/models/signature.py | 4 +- secure_access/models/signature_list.py | 4 +- .../models/signature_list_summary.py | 4 +- ...signature_list_summary_signatures_inner.py | 4 +- ...re_list_summary_signatures_inner_counts.py | 4 +- secure_access/models/site_object.py | 4 +- secure_access/models/sites500_error.py | 4 +- secure_access/models/sources_inner.py | 4 +- .../models/static_data_request_obj.py | 4 +- .../models/static_data_response_obj.py | 4 +- secure_access/models/status.py | 4 +- secure_access/models/status_alert.py | 44 + secure_access/models/status_alert_rule.py | 42 + secure_access/models/status_code.py | 4 +- secure_access/models/status_code_body.py | 4 +- secure_access/models/subdomains_inner.py | 4 +- secure_access/models/summary.py | 4 +- secure_access/models/summary_data.py | 4 +- secure_access/models/summary_with_category.py | 4 +- .../models/summary_with_destination.py | 4 +- secure_access/models/swg_source.py | 4 +- secure_access/models/system_mode.py | 4 +- .../models/tenant_controls_restriction.py | 4 +- .../tenant_controls_restrictions_inner.py | 4 +- secure_access/models/tenant_response.py | 95 + secure_access/models/terminate_sessions.py | 4 +- .../models/terminate_sessions_failed.py | 4 +- .../test_email_notification_response.py | 114 + ...ail_notification_response_results_inner.py | 99 + secure_access/models/test_notification.py | 119 + .../third_party_integrations400_error.py | 4 +- .../third_party_integrations401_error.py | 4 +- .../third_party_integrations403_error.py | 4 +- .../third_party_integrations404_error.py | 4 +- .../third_party_integrations500_error.py | 4 +- ...ird_party_integrations_integration_type.py | 85 +- secure_access/models/threat.py | 4 +- secure_access/models/threat_name.py | 4 +- secure_access/models/threat_type.py | 4 +- secure_access/models/time_range.py | 95 + .../time_series_app_connector_agent_data.py | 4 +- .../time_series_app_connector_group_data.py | 4 +- .../models/time_series_hits_count.py | 4 +- secure_access/models/timeline_item.py | 4 +- secure_access/models/token.py | 4 +- .../models/token_authorization400_error.py | 4 +- .../models/token_authorization401_error.py | 4 +- .../models/token_authorization403_error.py | 4 +- .../models/token_authorization404_error.py | 4 +- .../models/token_authorization500_error.py | 4 +- secure_access/models/top_category.py | 4 +- secure_access/models/top_destination.py | 4 +- secure_access/models/top_dns_query_type.py | 4 +- secure_access/models/top_event_type.py | 4 +- secure_access/models/top_file.py | 4 +- secure_access/models/top_identity.py | 10 +- secure_access/models/top_ip.py | 4 +- secure_access/models/top_resource.py | 4 +- .../models/top_resource_application.py | 4 +- secure_access/models/top_threat_types.py | 4 +- secure_access/models/top_threats.py | 4 +- secure_access/models/top_url.py | 4 +- .../models/total_count_alerts_response.py | 92 + secure_access/models/total_request.py | 4 +- .../models/traffic_direction_type.py | 44 + secure_access/models/tunnel_data_state.py | 4 +- secure_access/models/tunnel_ike_state.py | 4 +- secure_access/models/tunnel_ip_sec_state.py | 4 +- secure_access/models/tunnel_routing_stats.py | 4 +- ...tunnel_routing_stats_client_route_stats.py | 4 +- ...ng_stats_client_route_stats_stats_inner.py | 4 +- .../tunnel_routing_stats_cloud_route_stats.py | 4 +- ...ing_stats_cloud_route_stats_stats_inner.py | 4 +- secure_access/models/tunnel_state.py | 16 +- secure_access/models/tunnel_status.py | 4 +- secure_access/models/type.py | 4 +- .../models/type_network_dns_forwarder.py | 4 +- secure_access/models/unauthorized.py | 4 +- secure_access/models/unauthorized_data.py | 4 +- secure_access/models/unauthorized_error.py | 4 +- secure_access/models/unauthorized_status.py | 4 +- .../models/unified_network_object_type.py | 4 +- .../models/unified_service_object_type.py | 4 +- secure_access/models/unique_resources.py | 4 +- .../models/unsupported_media_error.py | 4 +- .../models/update_alert_rule200_response.py | 92 + .../update_alert_rules_status200_response.py | 96 + .../update_alerts_status200_response.py | 96 + .../models/update_alerts_status_request.py | 102 + .../models/update_application_request.py | 4 +- .../models/update_identities200_response.py | 4 +- .../models/update_identities_request_inner.py | 38 +- ...ndpoints.py => update_identity_devices.py} | 16 +- .../update_ips_profile_request_inner.py | 4 +- .../update_ips_profile_request_inner_value.py | 4 +- .../models/update_network403_response.py | 4 +- .../models/update_network_request.py | 4 +- .../models/update_roaming_computer_request.py | 4 +- .../models/update_security_group_tags.py | 4 +- .../update_virtual_appliance_request.py | 93 + .../models/update_vpn_connections_request.py | 10 +- secure_access/models/upload_response.py | 4 +- secure_access/models/usage.py | 4 +- secure_access/models/usage_meter_item.py | 4 +- secure_access/models/usage_type.py | 4 +- .../models/user_device_certificate_info.py | 4 +- secure_access/models/user_summaries.py | 4 +- secure_access/models/user_summary.py | 4 +- .../user_summary_device_certificate_counts.py | 4 +- secure_access/models/validate400_response.py | 4 +- .../validate400_response_errors_inner.py | 4 +- ...e400_response_errors_inner_errors_inner.py | 4 +- secure_access/models/validate_response.py | 4 +- .../values_network_object_groups_inner.py | 4 +- .../values_service_object_group_inner.py | 4 +- secure_access/models/verdict.py | 4 +- secure_access/models/verdict_detected.py | 4 +- .../models/virtual_appliance_object.py | 121 + .../virtual_appliance_object_settings.py | 109 + .../models/virtual_appliance_object_state.py | 102 + .../models/virtual_appliances500_error.py | 96 + ...tion.py => vpn_user_connections_action.py} | 8 +- secure_access/models/webhook_config.py | 4 +- secure_access/models/webhook_config_input.py | 4 +- secure_access/models/weighted_risk.py | 4 +- secure_access/models/whois_domain.py | 4 +- .../models/whois_emails_and_nameservers.py | 4 +- .../models/zero_trust_user_devices_error.py | 4 +- ...o_trust_user_devices_unauthorized_error.py | 4 +- secure_access/py.typed | 2 +- secure_access/rest.py | 13 +- setup.py | 6 +- 896 files changed, 43598 insertions(+), 3263 deletions(-) create mode 100644 secure_access/api/alert_rules_api.py create mode 100644 secure_access/api/alerts_api.py create mode 100644 secure_access/api/classifications_api.py create mode 100644 secure_access/api/data_identifiers_api.py create mode 100644 secure_access/api/dlp_rule_events_api.py create mode 100644 secure_access/api/network_tunnels_api.py create mode 100644 secure_access/api/rules_api.py create mode 100644 secure_access/api/tenants_api.py create mode 100644 secure_access/api/virtual_appliances_api.py create mode 100644 secure_access/models/access_rule_context.py delete mode 100644 secure_access/models/activity_ip.py create mode 100644 secure_access/models/ai_guardrails_dlp_rule_event.py create mode 100644 secure_access/models/alert.py create mode 100644 secure_access/models/alert_rule.py create mode 100644 secure_access/models/alert_with_additional_context.py create mode 100644 secure_access/models/alerting400_error.py create mode 100644 secure_access/models/alerting401_error.py create mode 100644 secure_access/models/alerting403_error.py create mode 100644 secure_access/models/alerting404_error.py create mode 100644 secure_access/models/alerting500_error.py create mode 100644 secure_access/models/all_destinations_scope.py create mode 100644 secure_access/models/api_error_response.py create mode 100644 secure_access/models/application_saas_api.py create mode 100644 secure_access/models/behavior_analytics_context.py create mode 100644 secure_access/models/built_in_data_identifier.py create mode 100644 secure_access/models/built_in_data_identifier_list_item.py create mode 100644 secure_access/models/classifications_inner.py create mode 100644 secure_access/models/classifications_inner_classifiers_inner.py create mode 100644 secure_access/models/classifications_inner_classifiers_inner_matches_inner.py create mode 100644 secure_access/models/classifier_evaluation_strategy.py create mode 100644 secure_access/models/columns_edm_create_inner.py create mode 100644 secure_access/models/columns_edm_with_id_inner.py create mode 100644 secure_access/models/conditions_alert_rule.py rename secure_access/models/{ztna_summary.py => conditions_alert_rule_rows_inner.py} (68%) create mode 100644 secure_access/models/create_alert_rule201_response.py create mode 100644 secure_access/models/create_alert_rule_request.py create mode 100644 secure_access/models/custom_data_identifier.py create mode 100644 secure_access/models/custom_data_identifier_create_request.py create mode 100644 secure_access/models/custom_data_identifier_list_item.py create mode 100644 secure_access/models/custom_data_identifier_update_request.py create mode 100644 secure_access/models/data_classification.py create mode 100644 secure_access/models/data_classification_create_request.py create mode 100644 secure_access/models/data_classification_list_item.py create mode 100644 secure_access/models/data_classification_patch_request.py create mode 100644 secure_access/models/data_classification_type.py create mode 100644 secure_access/models/data_loss_prevention_action.py create mode 100644 secure_access/models/data_loss_prevention_action2.py create mode 100644 secure_access/models/data_loss_prevention_api_error_response.py create mode 100644 secure_access/models/data_loss_prevention_application.py create mode 100644 secure_access/models/data_loss_prevention_application_category.py create mode 100644 secure_access/models/data_loss_prevention_application_category2.py create mode 100644 secure_access/models/data_loss_prevention_destination.py create mode 100644 secure_access/models/data_loss_prevention_identity.py create mode 100644 secure_access/models/data_loss_prevention_private_resource.py create mode 100644 secure_access/models/data_loss_prevention_private_resource_group.py create mode 100644 secure_access/models/data_loss_prevention_severity.py create mode 100644 secure_access/models/data_loss_prevention_severity2.py create mode 100644 secure_access/models/delete_alert_rules200_response.py create mode 100644 secure_access/models/delete_alert_rules_request.py create mode 100644 secure_access/models/dlp_rule.py create mode 100644 secure_access/models/dlp_rule_create_request.py create mode 100644 secure_access/models/dlp_rule_event.py create mode 100644 secure_access/models/dlp_rule_event_by_type.py create mode 100644 secure_access/models/dlp_rule_event_by_type_rule.py create mode 100644 secure_access/models/dlp_rule_list_item.py create mode 100644 secure_access/models/dlp_rule_patch_request.py create mode 100644 secure_access/models/edm_identifier_create_request.py create mode 100644 secure_access/models/edm_identifier_list_item.py create mode 100644 secure_access/models/edm_identifier_response.py create mode 100644 secure_access/models/edm_identifier_update_request.py rename secure_access/models/{ztna_policy_privateapplicationgroup.py => edm_type.py} (74%) create mode 100644 secure_access/models/file_metadata.py create mode 100644 secure_access/models/get_tunnel_events200_response.py create mode 100644 secure_access/models/id_name_ref.py create mode 100644 secure_access/models/idm_accuracy.py create mode 100644 secure_access/models/idm_data_identifier_list_item.py create mode 100644 secure_access/models/idm_data_identifier_response.py create mode 100644 secure_access/models/idm_identifier_create_request.py create mode 100644 secure_access/models/idm_identifier_update_request.py create mode 100644 secure_access/models/label_action_parameters.py create mode 100644 secure_access/models/label_criteria.py create mode 100644 secure_access/models/level.py create mode 100644 secure_access/models/list_ai_guardrails_dlp_rule_events.py create mode 100644 secure_access/models/list_alerts200_response.py create mode 100644 secure_access/models/list_alerts_response.py create mode 100644 secure_access/models/list_real_time_dlp_rule_events.py create mode 100644 secure_access/models/list_saa_s_api_dlp_rule_events.py create mode 100644 secure_access/models/list_tenants_filters_parameter.py create mode 100644 secure_access/models/list_tenants_sort_parameter.py create mode 100644 secure_access/models/model207_activity_multi_status.py create mode 100644 secure_access/models/model207_activity_multi_status_meta.py create mode 100644 secure_access/models/model207_partial_response.py rename secure_access/models/{ztna_policy.py => model207_total_requests_multi_status.py} (64%) create mode 100644 secure_access/models/model207_total_requests_multi_status_data.py create mode 100644 secure_access/models/model207_total_requests_multi_status_meta.py create mode 100644 secure_access/models/model422_error.py create mode 100644 secure_access/models/model429_error.py create mode 100644 secure_access/models/multi_tenants400_error.py create mode 100644 secure_access/models/multi_tenants401_error.py create mode 100644 secure_access/models/multi_tenants403_error.py create mode 100644 secure_access/models/multi_tenants404_error.py create mode 100644 secure_access/models/multi_tenants500_error.py create mode 100644 secure_access/models/network_tunnel_event.py create mode 100644 secure_access/models/notification_info_alert_rule.py create mode 100644 secure_access/models/notification_type_all.py create mode 100644 secure_access/models/notification_type_email.py create mode 100644 secure_access/models/oob_exposure_config.py rename secure_access/models/{hub_status.py => oob_exposure_item.py} (68%) create mode 100644 secure_access/models/oob_incremental_config.py create mode 100644 secure_access/models/oob_instance_config.py create mode 100644 secure_access/models/oob_patch_incremental_config.py create mode 100644 secure_access/models/oob_platform_config.py create mode 100644 secure_access/models/oob_rule_create_request.py create mode 100644 secure_access/models/oob_rule_create_request_with_classifications.py create mode 100644 secure_access/models/oob_rule_create_request_with_file_size_from.py create mode 100644 secure_access/models/oob_rule_create_request_with_labels.py create mode 100644 secure_access/models/oob_rule_create_request_with_mip_tags.py create mode 100644 secure_access/models/oob_rule_patch_request.py create mode 100644 secure_access/models/oob_rule_response.py create mode 100644 secure_access/models/policy_rules_rule.py create mode 100644 secure_access/models/private_resource.py create mode 100644 secure_access/models/private_resource_group.py create mode 100644 secure_access/models/real_time_dlp_rule_event.py rename secure_access/models/{ztna_application.py => reporting_application.py} (67%) rename secure_access/models/{ztna_application_category.py => reporting_application_category.py} (77%) rename secure_access/models/{ztna_policy_ruleset.py => reporting_identity.py} (66%) rename secure_access/models/{severity.py => reporting_severity.py} (75%) create mode 100644 secure_access/models/resource_connector_groups409_error.py create mode 100644 secure_access/models/rule_type.py create mode 100644 secure_access/models/saas_api_dlp_rule_event.py create mode 100644 secure_access/models/saas_api_event_user.py create mode 100644 secure_access/models/scannable_context.py create mode 100644 secure_access/models/security_events_config.py create mode 100644 secure_access/models/security_events_config_input.py create mode 100644 secure_access/models/security_events_config_patch_input.py rename secure_access/models/{threat_intelligence_feeds_bad_request_error.py => security_feeds_bad_request_error.py} (88%) rename secure_access/models/{threat_intelligence_feeds_forbidden_error.py => security_feeds_forbidden_error.py} (88%) rename secure_access/models/{threat_intelligence_feeds_not_found_error.py => security_feeds_not_found_error.py} (88%) rename secure_access/models/{threat_intelligence_feeds_server_error.py => security_feeds_server_error.py} (88%) rename secure_access/models/{threat_intelligence_feeds_unauthorized_error.py => security_feeds_unauthorized_error.py} (88%) create mode 100644 secure_access/models/service_name.py create mode 100644 secure_access/models/severity_alert.py create mode 100644 secure_access/models/status_alert.py create mode 100644 secure_access/models/status_alert_rule.py create mode 100644 secure_access/models/tenant_response.py create mode 100644 secure_access/models/test_email_notification_response.py create mode 100644 secure_access/models/test_email_notification_response_results_inner.py create mode 100644 secure_access/models/test_notification.py create mode 100644 secure_access/models/time_range.py create mode 100644 secure_access/models/total_count_alerts_response.py create mode 100644 secure_access/models/traffic_direction_type.py create mode 100644 secure_access/models/update_alert_rule200_response.py create mode 100644 secure_access/models/update_alert_rules_status200_response.py create mode 100644 secure_access/models/update_alerts_status200_response.py create mode 100644 secure_access/models/update_alerts_status_request.py rename secure_access/models/{update_identity_endpoints.py => update_identity_devices.py} (86%) create mode 100644 secure_access/models/update_virtual_appliance_request.py create mode 100644 secure_access/models/virtual_appliance_object.py create mode 100644 secure_access/models/virtual_appliance_object_settings.py create mode 100644 secure_access/models/virtual_appliance_object_state.py create mode 100644 secure_access/models/virtual_appliances500_error.py rename secure_access/models/{action.py => vpn_user_connections_action.py} (73%) diff --git a/openapi-spec.yaml b/openapi-spec.yaml index 4f3de44..8fec0fb 100644 --- a/openapi-spec.yaml +++ b/openapi-spec.yaml @@ -9,18 +9,28 @@ info: name: Apache-2.0 url: https://www.apache.org/licenses/LICENSE-2.0.html title: Cisco Secure Access API - version: v2.0.202510221109 + version: v2.0.202602030705 servers: - url: https://api.sse.cisco.com - url: https://api.sse.cisco.com/{basePath} variables: basePath: default: deployments/v2 +- url: https://api.sse.cisco.com/reports.{region}/v2 + variables: + region: + default: us + description: The region in the cloud where the system stores the DLP events. + enum: + - us + - eu security: -- http: [] - oauthFlow: [] +- http: [] tags: - name: Internal Networks +- name: Alert Rules +- name: Alerts - description: API Usage reports name: API Usage Report - name: Applications @@ -32,6 +42,8 @@ tags: name: Application Lists - description: The Content Category settings. name: Content Categories +- description: Operations related to the DLP rule events. + name: DLP Rule Events - description: Destination Lists name: Destination Lists - description: Destinations @@ -55,6 +67,8 @@ tags: name: IPS Profiles - name: API Keys - name: Usage Metrics +- description: The tenants in the organization. + name: Tenants - description: Manage the Network Objects in the organization. name: Network Objects - description: Manage the Network Object Groups in the organization. @@ -117,6 +131,7 @@ tags: - name: Resource Connectors - name: Rules Activity - name: Unique Resources +- name: Network Tunnels - description: Manage the Resource Connector Groups. name: Connector Groups - description: Manage the Resource Connectors. @@ -124,6 +139,8 @@ tags: - name: Roaming Computers - name: Organization Information - name: S3 Bucket Key Rotation +- description: Manage the security feeds for the third-party and custom security vendors. + name: Feeds - description: The Security profiles in the organization. name: Security Profiles - name: Sites @@ -135,12 +152,535 @@ tags: name: Credentials - description: Integration types name: Integration Types -- description: Manage the threat feeds for the third-party and custom security vendors. - name: Feeds - name: Token +- name: Virtual Appliances - name: VPN Sessions - name: ACME Client Certificates +- description: Operations related to DLP data identifiers. + name: DataIdentifiers +- description: Operations related to DLP classifications. + name: Classifications +- description: Operations related to DLP rules. + name: Rules paths: + /admin/v2/alerting/alerts: + get: + description: Get the properties of the alerts for the organization. + operationId: listAlerts + parameters: + - $ref: '#/components/parameters/status' + - $ref: '#/components/parameters/severity' + - $ref: '#/components/parameters/last_created' + - $ref: '#/components/parameters/modified_at' + - $ref: '#/components/parameters/alert_name' + - $ref: '#/components/parameters/pattern_search' + - $ref: '#/components/parameters/only_active_alerts_count' + - $ref: '#/components/parameters/limit' + - $ref: '#/components/parameters/offset' + - $ref: '#/components/parameters/time_range' + - $ref: '#/components/parameters/created_after' + - $ref: '#/components/parameters/include_context' + responses: + '200': + content: + application/json: + examples: + countOnly: + $ref: '#/components/examples/countOnly' + fullResponse: + $ref: '#/components/examples/fullResponse' + fullResponseWithContext: + $ref: '#/components/examples/fullResponseWithContext' + schema: + oneOf: + - $ref: '#/components/schemas/ListAlertsResponse' + - $ref: '#/components/schemas/totalCountAlertsResponse' + description: OK + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + Date: + $ref: '#/components/headers/alertingDate' + '400': + $ref: '#/components/responses/alerting400Error' + '401': + $ref: '#/components/responses/alerting401Error' + '403': + $ref: '#/components/responses/alerting403Error' + '404': + $ref: '#/components/responses/alerting404Error' + '429': + $ref: '#/components/responses/429Error' + '500': + $ref: '#/components/responses/alerting500Error' + security: + - oauthFlow: + - admin.alertrules:read + summary: List Alerts + tags: + - Alerts + /admin/v2/alerting/alerts/{alertId}: + get: + description: Get the details for the specific alert sent by the system to the + organization. + operationId: getAlertById + parameters: + - $ref: '#/components/parameters/alertId' + responses: + '200': + content: + application/json: + examples: + alertResponse: + $ref: '#/components/examples/alertOnlyResponse' + schema: + $ref: '#/components/schemas/Alert' + description: OK + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + Date: + $ref: '#/components/headers/alertingDate' + '400': + $ref: '#/components/responses/alerting400Error' + '401': + $ref: '#/components/responses/alerting401Error' + '403': + $ref: '#/components/responses/alerting403Error' + '404': + $ref: '#/components/responses/alerting404Error' + '429': + $ref: '#/components/responses/429Error' + '500': + $ref: '#/components/responses/alerting500Error' + security: + - oauthFlow: + - admin.alerts:read + summary: Get Alert + tags: + - Alerts + /admin/v2/alerting/alerts/status: + put: + description: Update the status of the alerts in the organization. + operationId: updateAlertsStatus + requestBody: + $ref: '#/components/requestBodies/UpdateStatusAlertRuleRequestBody' + responses: + '200': + content: + application/json: + example: + errorIds: + - AL-2048-833125-1764567890123-3f9a1c4b2d7e8f21 + success: 'true' + successfulIds: + - AL-2048-833125-1764567890123-3f9a1c4b2d7e8f01 + schema: + description: The properties of the updated statuses for the alerts. + properties: + errorIds: + $ref: '#/components/schemas/errorIdsString' + success: + description: 'If all operations succeeded, the system returns + `true`. + + If any ID is invalid, the system returns `false`.' + example: 'true' + type: boolean + successfulIds: + $ref: '#/components/schemas/successfulIdsUpdateString' + type: object + description: OK + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + Date: + $ref: '#/components/headers/alertingDate' + '400': + $ref: '#/components/responses/alerting400Error' + '401': + $ref: '#/components/responses/alerting401Error' + '403': + $ref: '#/components/responses/alerting403Error' + '404': + $ref: '#/components/responses/alerting404Error' + '422': + $ref: '#/components/responses/422Error' + '429': + $ref: '#/components/responses/429Error' + '500': + $ref: '#/components/responses/alerting500Error' + security: + - oauthFlow: + - admin.alerts:write + summary: Update Status of Alerts + tags: + - Alerts + /admin/v2/alerting/alerts/testNotifications/Email: + post: + description: Create a test notification and send the alert to the recipients + configured in the alert rule. + operationId: sendAlertNotifications + requestBody: + $ref: '#/components/requestBodies/TestNotificationsEmailRequestBody' + responses: + '200': + content: + application/json: + example: + message: All notifications sent successfully + results: + - recipients_count: 2 + success: 'true' + type: email + status: success + schema: + $ref: '#/components/schemas/TestEmailNotificationResponse' + description: OK + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + Date: + $ref: '#/components/headers/alertingDate' + '400': + $ref: '#/components/responses/alerting400Error' + '401': + $ref: '#/components/responses/alerting401Error' + '403': + $ref: '#/components/responses/alerting403Error' + '404': + $ref: '#/components/responses/alerting404Error' + '429': + $ref: '#/components/responses/429Error' + '500': + $ref: '#/components/responses/alerting500Error' + security: + - oauthFlow: + - admin.alerts:write + summary: Create Test Alert by Email + tags: + - Alerts + /admin/v2/alerting/rules: + delete: + description: Delete multiple alert rules. Provide a list of unique identifiers + for the alert rules. + operationId: deleteAlertRules + requestBody: + $ref: '#/components/requestBodies/DeleteAlertRuleRequestBody' + responses: + '200': + content: + application/json: + example: + errorIds: + - 100 + success: 'true' + successfulIds: + - 48 + - 49 + - 50 + schema: + description: The properties of the deleted alert rules. + properties: + errorIds: + $ref: '#/components/schemas/errorIdsInteger' + success: + $ref: '#/components/schemas/success' + successfulIds: + $ref: '#/components/schemas/successfulIdsDelete' + type: object + description: OK + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + Date: + $ref: '#/components/headers/alertingDate' + '400': + $ref: '#/components/responses/alerting400Error' + '401': + $ref: '#/components/responses/alerting401Error' + '403': + $ref: '#/components/responses/alerting403Error' + '404': + $ref: '#/components/responses/alerting404Error' + '422': + $ref: '#/components/responses/422Error' + '429': + $ref: '#/components/responses/429Error' + '500': + $ref: '#/components/responses/alerting500Error' + security: + - oauthFlow: + - admin.alertrules:write + summary: Delete Alert Rules + tags: + - Alert Rules + get: + description: Get the alert rules for the organization. + operationId: listAlertRules + responses: + '200': + content: + application/json: + example: + - conditions: + match_type: all + rows: + - field: region + value: US West-1 + created_at: '2025-03-20T13:38:56Z' + description: Alert when SFO-11 Group connectivity is lost + id: 48 + modified_at: '2025-07-03T18:27:12Z' + name: SFO-11 Group disconnected + notification_info: + - recipients: + - admin@example.com + type: email + organization_id: 3056800.0 + rule_type_id: 1 + severity: 2 + status: 1 + schema: + description: The list of the alert rules in the organization. + items: + $ref: '#/components/schemas/AlertRule' + type: array + description: OK + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + Date: + $ref: '#/components/headers/alertingDate' + '400': + $ref: '#/components/responses/alerting400Error' + '401': + $ref: '#/components/responses/alerting401Error' + '403': + $ref: '#/components/responses/alerting403Error' + '404': + $ref: '#/components/responses/alerting404Error' + '500': + $ref: '#/components/responses/alerting500Error' + security: + - oauthFlow: + - admin.alertrules:read + summary: List Alert Rules + tags: + - Alert Rules + post: + description: Create an alert rule in the organization. + operationId: createAlertRule + requestBody: + $ref: '#/components/requestBodies/CreateOrUpdateAlertRuleRequestBody' + responses: + '201': + content: + application/json: + example: + message: Rule created successfully + schema: + description: The properties of the created alert rule. + properties: + message: + description: The message from the system about the creation of + the alert rule. + example: Rule created successfully + type: string + type: object + description: Created + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + Date: + $ref: '#/components/headers/alertingDate' + '400': + $ref: '#/components/responses/alerting400Error' + '401': + $ref: '#/components/responses/alerting401Error' + '403': + $ref: '#/components/responses/alerting403Error' + '404': + $ref: '#/components/responses/alerting404Error' + '409': + $ref: '#/components/responses/409Error' + '422': + $ref: '#/components/responses/422Error' + '429': + $ref: '#/components/responses/429Error' + '500': + $ref: '#/components/responses/alerting500Error' + security: + - oauthFlow: + - admin.alertrules:write + summary: Create Alert Rule + tags: + - Alert Rules + /admin/v2/alerting/rules/{ruleId}: + get: + description: Get the details for an alert rule in the organization. + operationId: getAlertRuleById + parameters: + - $ref: '#/components/parameters/ruleId' + responses: + '200': + content: + application/json: + example: + conditions: + match_type: all + rows: + - field: region + value: US West-1 + created_at: '2025-03-20T13:38:56Z' + description: Monitors SFO-11 Group connectivity + id: 48 + modified_at: '2025-07-03T18:27:12Z' + name: SFO-11 Group disconnected + notification_info: + - recipients: + - admin@example.com + type: email + organization_id: 3056800.0 + rule_type_id: 1 + severity: 2 + status: 1 + schema: + $ref: '#/components/schemas/AlertRule' + description: OK + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + Date: + $ref: '#/components/headers/alertingDate' + '400': + $ref: '#/components/responses/alerting400Error' + '401': + $ref: '#/components/responses/alerting401Error' + '403': + $ref: '#/components/responses/alerting403Error' + '404': + $ref: '#/components/responses/alerting404Error' + '429': + $ref: '#/components/responses/429Error' + '500': + $ref: '#/components/responses/alerting500Error' + security: + - oauthFlow: + - admin.alertrules:read + summary: Get Alert Rule + tags: + - Alert Rules + put: + description: Update the properties of an alert rule. + operationId: updateAlertRule + parameters: + - $ref: '#/components/parameters/ruleId' + requestBody: + $ref: '#/components/requestBodies/CreateOrUpdateAlertRuleRequestBody' + responses: + '200': + content: + application/json: + example: + message: Rule updated successfully + schema: + description: The properties about the update of the alert rule. + properties: + message: + description: The message from the system about the update of the + alert rule. + example: Rule updated successfully + type: string + type: object + description: OK + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + Date: + $ref: '#/components/headers/alertingDate' + '400': + $ref: '#/components/responses/alerting400Error' + '401': + $ref: '#/components/responses/alerting401Error' + '403': + $ref: '#/components/responses/alerting403Error' + '404': + $ref: '#/components/responses/alerting404Error' + '409': + $ref: '#/components/responses/409Error' + '422': + $ref: '#/components/responses/422Error' + '429': + $ref: '#/components/responses/429Error' + '500': + $ref: '#/components/responses/alerting500Error' + security: + - oauthFlow: + - admin.alertrules:write + summary: Update Alert Rule + tags: + - Alert Rules + /admin/v2/alerting/rules/status: + put: + description: Update the status of the alert rules. + operationId: updateAlertRulesStatus + requestBody: + $ref: '#/components/requestBodies/UpdateStatusAlertRuleRequestBody' + responses: + '200': + content: + application/json: + example: + errorIds: + - 1 + - 2 + success: 'true' + successfulIds: + - 1 + - 2 + - 3 + - 4 + schema: + description: The properties of the updated status of the alert rules. + properties: + errorIds: + $ref: '#/components/schemas/errorIdsInteger' + success: + description: 'Specifies whether the operation succeeded. + + Returns false if any ID is invalid.' + example: 'true' + type: boolean + successfulIds: + $ref: '#/components/schemas/successfulIdsUpdateInteger' + type: object + description: OK + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + Date: + $ref: '#/components/headers/alertingDate' + '400': + $ref: '#/components/responses/alerting400Error' + '401': + $ref: '#/components/responses/alerting401Error' + '403': + $ref: '#/components/responses/alerting403Error' + '404': + $ref: '#/components/responses/alerting404Error' + '422': + $ref: '#/components/responses/422Error' + '429': + $ref: '#/components/responses/429Error' + '500': + $ref: '#/components/responses/alerting500Error' + security: + - oauthFlow: + - admin.alertrules:write + summary: Update Status of Alert Rules + tags: + - Alert Rules /admin/v2/apiKeys: get: description: List the API keys created by your organization. @@ -310,9 +850,9 @@ paths: content: application/json: example: - currentKeyId: AKIARB5FPGFNZR3BZAXN + currentKeyId: EXAMPLE_CURRENT_KEY_ID keyCreationDate: 2025-03-12 22:00:00 - oldKeyId: AKIAYGSCHXQI2NAWY4UZ + oldKeyId: EXAMPLE_OLD_KEY_ID secretAccessKey: wJalrXUtnFEMI/K7MDENG/bPxRfiCYzEXAMPLEKEY schema: $ref: '#/components/schemas/KeyRotation' @@ -377,7 +917,7 @@ paths: Filter the collection by `type` and `status`. operationId: getIntegrations parameters: - - $ref: '#/components/parameters/status' + - $ref: '#/components/parameters/thirdPartyIntegrationsStatus' - $ref: '#/components/parameters/thirdPartyIntegrationsType' - $ref: '#/components/parameters/thirdPartyIntegrationsOffset' - $ref: '#/components/parameters/thirdPartyIntegrationsLimit' @@ -669,6 +1209,46 @@ paths: summary: Get Value of Credentials for Integration tags: - Credentials + /admin/v2/tenants/list: + get: + description: List the tenants in the organization. + operationId: listTenants + parameters: + - $ref: '#/components/parameters/tenantIds' + - $ref: '#/components/parameters/optionalFields' + - $ref: '#/components/parameters/multiTenantsFilters' + - $ref: '#/components/parameters/sort' + responses: + '200': + content: + application/json: + example: + - organizationId: 1234567.0 + organizationName: tenant one + schema: + $ref: '#/components/schemas/TenantListResponse' + description: OK + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + Date: + $ref: '#/components/headers/Date' + '400': + $ref: '#/components/responses/multiTenants400Error' + '401': + $ref: '#/components/responses/multiTenants401Error' + '403': + $ref: '#/components/responses/multiTenants403Error' + '404': + $ref: '#/components/responses/multiTenants404Error' + '500': + $ref: '#/components/responses/multiTenants500Error' + security: + - oauthFlow: + - admin.tenants:read + summary: List Tenants + tags: + - Tenants /admin/v2/vpn/userConnections: get: description: List the VPN sessions created by your organization. @@ -1243,7 +1823,7 @@ paths: '403': $ref: '#/components/responses/resourceConnectorGroups403Error' '409': - $ref: '#/components/responses/409Error' + $ref: '#/components/responses/resourceConnectorGroups409Error' '500': $ref: '#/components/responses/resourceConnectorGroups500Error' security: @@ -2917,7 +3497,7 @@ paths: isPrimary: 'false' status: status: DOWN - time: '2025-02-05T17:50:05Z' + time: '2025-02-05T17:53:05Z' tunnelsCount: 0 id: 4561237892.0 modifiedAt: '2024-06-25T15:21:32Z' @@ -2966,7 +3546,7 @@ paths: description: Delete a Network Tunnel Group in the organization. operationId: deleteNetworkTunnelGroup parameters: - - $ref: '#/components/parameters/id' + - $ref: '#/components/parameters/networkTunnelGroupsId' responses: '204': description: No Content @@ -2995,7 +3575,7 @@ paths: description: Get a Network Tunnel Group in the organization. operationId: getNetworkTunnelGroup parameters: - - $ref: '#/components/parameters/id' + - $ref: '#/components/parameters/networkTunnelGroupsId' responses: '200': content: @@ -3064,7 +3644,7 @@ paths: description: Update a Network Tunnel Group in the organization. operationId: patchNetworkTunnelGroup parameters: - - $ref: '#/components/parameters/id' + - $ref: '#/components/parameters/networkTunnelGroupsId' requestBody: $ref: '#/components/requestBodies/networkTunnelGroupPatchRequest' responses: @@ -3143,7 +3723,7 @@ paths: Tunnel Group and Hub. operationId: getPeerState parameters: - - $ref: '#/components/parameters/id' + - $ref: '#/components/parameters/networkTunnelGroupsId' - $ref: '#/components/parameters/hub_id' - $ref: '#/components/parameters/peer_id' responses: @@ -3184,7 +3764,7 @@ paths: - $ref: '#/components/parameters/networkTunnelGroupsOffset' - $ref: '#/components/parameters/peerSortBy' - $ref: '#/components/parameters/sortOrder' - - $ref: '#/components/parameters/id' + - $ref: '#/components/parameters/networkTunnelGroupsId' responses: '200': content: @@ -3224,7 +3804,7 @@ paths: is 10.' operationId: getNetworkTunnelGroupState parameters: - - $ref: '#/components/parameters/id' + - $ref: '#/components/parameters/networkTunnelGroupsId' responses: '200': content: @@ -3897,6 +4477,390 @@ paths: summary: Update Site tags: - Sites + /deployments/v2/virtualappliances: + get: + description: List the virtual appliances in the organization. + operationId: listVirtualAppliances + parameters: + - $ref: '#/components/parameters/paginationPageParam' + - $ref: '#/components/parameters/virtualAppliancesPaginationLimitParam' + responses: + '200': + content: + application/json: + example: + - createdAt: '2020-03-09T22:18:26.625Z' + health: VA health + isUpgradable: 'true' + modifiedAt: '2020-03-09T22:18:26.625Z' + name: Name of the Virtual Appliance + originId: 1234 + settings: + domains: + - domain name + externalIP: external IP + hostType: host type + internalIPs: + - internal IP + isDnscryptEnabled: 'true' + lastSyncTime: '2020-03-09T22:18:26.625Z' + upgradeError: Upgrade error + uptime: 1 + version: Version of VA + siteId: 1 + state: + connectedToConnector: VA connector status + hasLocalDomainConfigured: VA local domain configuration + queryFailureRateAcceptable: VA query failure rate acceptable + receivedInternalDNSQueries: VA received internal DNS queries + redundantWithinSite: VA redundant within site + syncing: VA syncing + stateUpdatedAt: '2020-03-09T22:18:26.625Z' + type: Type of VA + schema: + items: + $ref: '#/components/schemas/VirtualApplianceObject' + type: array + description: OK + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + Date: + $ref: '#/components/headers/Date' + '400': + $ref: '#/components/responses/400Error' + '401': + $ref: '#/components/responses/401Error' + '403': + $ref: '#/components/responses/403Error' + '404': + $ref: '#/components/responses/404Error' + '500': + $ref: '#/components/responses/virtualAppliances500Error' + security: + - oauthFlow: + - deployments.virtualappliances:read + summary: List Virtual Appliances + tags: + - Virtual Appliances + /deployments/v2/virtualappliances/{virtualApplianceId}: + delete: + description: Delete a virtual appliance in the organization. + operationId: deleteVirtualAppliance + parameters: + - $ref: '#/components/parameters/virtualApplianceId' + responses: + '204': + description: No Content + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + Date: + $ref: '#/components/headers/Date' + '400': + $ref: '#/components/responses/400Error' + '401': + $ref: '#/components/responses/401Error' + '403': + $ref: '#/components/responses/403Error' + '404': + $ref: '#/components/responses/404Error' + '500': + $ref: '#/components/responses/virtualAppliances500Error' + security: + - oauthFlow: + - deployments.virtualappliances:write + summary: Delete Virtual Appliance + tags: + - Virtual Appliances + get: + description: Get a virtual appliance in the organization. + operationId: getVirtualAppliance + parameters: + - $ref: '#/components/parameters/virtualApplianceId' + responses: + '200': + content: + application/json: + example: + createdAt: '2020-03-09T22:18:26.625Z' + health: VA health + isUpgradable: 'true' + lastSyncTime: '2020-03-09T22:18:26.625Z' + modifiedAt: '2020-03-09T22:18:26.625Z' + name: Name of VA + originId: 1234 + settings: + domains: + - domain name + externalIP: external IP + hostType: host type + internalIPs: + - internal IP + isDnscryptEnabled: 'true' + upgradeError: Upgrade error + uptime: 1 + version: Version of VA + siteId: 1 + state: + connectedToConnector: VA connector status + hasLocalDomainConfigured: VA local domain configuration + queryFailureRateAcceptable: VA query failure rate acceptable + receivedInternalDNSQueries: VA received internal DNS queries + redundantWithinSite: VA redundant within site + syncing: VA syncing + stateUpdatedAt: '2020-03-09T22:18:26.625Z' + type: Type of VA + schema: + $ref: '#/components/schemas/VirtualApplianceObject' + description: OK + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + Date: + $ref: '#/components/headers/Date' + '400': + $ref: '#/components/responses/400Error' + '401': + $ref: '#/components/responses/401Error' + '403': + $ref: '#/components/responses/403Error' + '404': + $ref: '#/components/responses/404Error' + '500': + $ref: '#/components/responses/virtualAppliances500Error' + security: + - oauthFlow: + - deployments.virtualappliances:read + summary: Get Virtual Appliance + tags: + - Virtual Appliances + put: + description: Update a virtual appliance in the organization. + operationId: updateVirtualAppliance + parameters: + - $ref: '#/components/parameters/virtualApplianceId' + requestBody: + content: + application/json: + example: + siteId: 10 + schema: + properties: + siteId: + description: The ID of the site. + minimum: 1 + type: integer + required: + - siteId + type: object + description: Update the virtual appliance. + required: 'true' + responses: + '200': + content: + application/json: + example: + health: VA health + isUpgradable: 'true' + name: Name of the VA + originId: 1234 + stateUpdatedAt: '2020-03-09T22:18:26.625Z' + type: Type of VA + schema: + $ref: '#/components/schemas/VirtualApplianceObject' + description: OK + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + Date: + $ref: '#/components/headers/Date' + '400': + $ref: '#/components/responses/400Error' + '401': + $ref: '#/components/responses/401Error' + '403': + $ref: '#/components/responses/403Error' + '404': + $ref: '#/components/responses/404Error' + '500': + $ref: '#/components/responses/virtualAppliances500Error' + security: + - oauthFlow: + - deployments.virtualappliances:write + summary: Update Virtual Appliance + tags: + - Virtual Appliances + /dlp/{eventType}/events/{id}: + get: + description: 'Get the event details for a specific type of DLP rule using the + event''s unique ID. + + The event type is either Real Time, SaaS API, or AI Guardrails DLP rules. + + The response includes the event details, associated rule information, and + classifications.' + operationId: getDlpEventDetailsById + parameters: + - $ref: '#/components/parameters/eventType' + - $ref: '#/components/parameters/id' + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/DlpRuleEvent' + description: OK + '400': + $ref: '#/components/responses/BadRequestError' + '401': + $ref: '#/components/responses/UnauthorizedError' + '403': + $ref: '#/components/responses/ForbiddenError' + '404': + $ref: '#/components/responses/NotFoundError' + '500': + $ref: '#/components/responses/InternalServerError' + security: + - oauthFlow: + - reports.dlp:read + summary: Get DLP Event Details + tags: + - DLP Rule Events + /dlp/aiGuardrails/events: + get: + description: 'List the DLP events triggered by the AI Guardrails DLP rules applied + to the AI Guardrails use cases. + + ' + operationId: getAllAIGuardrailsEvents + parameters: + - $ref: '#/components/parameters/action' + - $ref: '#/components/parameters/dataLossPreventionSeverity' + - $ref: '#/components/parameters/identityType' + - $ref: '#/components/parameters/dataLossPreventionFrom' + - $ref: '#/components/parameters/dataLossPreventionTo' + - $ref: '#/components/parameters/dataLossPreventionLimit' + - $ref: '#/components/parameters/dataLossPreventionOffset' + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ListAiGuardrailsDlpRuleEvents' + description: OK + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + Date: + $ref: '#/components/headers/Date' + '400': + $ref: '#/components/responses/BadRequestError' + '401': + $ref: '#/components/responses/UnauthorizedError' + '403': + $ref: '#/components/responses/ForbiddenError' + '404': + $ref: '#/components/responses/NotFoundError' + '500': + $ref: '#/components/responses/InternalServerError' + security: + - oauthFlow: + - reports.dlp:read + summary: List AI Guardrails DLP Rule Events + tags: + - DLP Rule Events + /dlp/realTime/events: + get: + description: 'List the DLP events triggered by the Real-time DLP rules applied + to the private or internet resources. + + ' + operationId: getAllRealTimeEvents + parameters: + - $ref: '#/components/parameters/action' + - $ref: '#/components/parameters/dataLossPreventionSeverity' + - $ref: '#/components/parameters/identityType' + - $ref: '#/components/parameters/dataLossPreventionApplicationId' + - $ref: '#/components/parameters/applicationCategoryId' + - $ref: '#/components/parameters/dataLossPreventionFrom' + - $ref: '#/components/parameters/dataLossPreventionTo' + - $ref: '#/components/parameters/dataLossPreventionLimit' + - $ref: '#/components/parameters/dataLossPreventionOffset' + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ListRealTimeDlpRuleEvents' + description: OK + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + Date: + $ref: '#/components/headers/Date' + '400': + $ref: '#/components/responses/BadRequestError' + '401': + $ref: '#/components/responses/UnauthorizedError' + '403': + $ref: '#/components/responses/ForbiddenError' + '404': + $ref: '#/components/responses/NotFoundError' + '500': + $ref: '#/components/responses/InternalServerError' + security: + - oauthFlow: + - reports.dlp:read + summary: List Real-Time DLP Rule Events + tags: + - DLP Rule Events + /dlp/saasApi/events: + get: + description: 'List the DLP events triggered by the SaaS API DLP rules applied + to the SaaS applications. + + ' + operationId: getAllSaaSAPIEvents + parameters: + - $ref: '#/components/parameters/action' + - $ref: '#/components/parameters/dataLossPreventionSeverity' + - $ref: '#/components/parameters/identityType' + - $ref: '#/components/parameters/dataLossPreventionApplicationId' + - $ref: '#/components/parameters/applicationCategoryId' + - $ref: '#/components/parameters/dataLossPreventionFrom' + - $ref: '#/components/parameters/dataLossPreventionTo' + - $ref: '#/components/parameters/dataLossPreventionLimit' + - $ref: '#/components/parameters/dataLossPreventionOffset' + - $ref: '#/components/parameters/exposure' + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ListSaaSApiDlpRuleEvents' + description: OK + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + Date: + $ref: '#/components/headers/Date' + '400': + $ref: '#/components/responses/BadRequestError' + '401': + $ref: '#/components/responses/UnauthorizedError' + '403': + $ref: '#/components/responses/ForbiddenError' + '404': + $ref: '#/components/responses/NotFoundError' + '500': + $ref: '#/components/responses/InternalServerError' + security: + - oauthFlow: + - reports.dlp:read + summary: List SaaS API DLP Rule Events + tags: + - DLP Rule Events /investigate/v2/bgp_routes/asn/{asn}/prefixes_for_asn.json: get: description: 'A response to a valid ASN returns an array of hash references. @@ -7100,14 +8064,17 @@ paths: * Each API request accepts no more than 500 destination objects in the destination list. - * Does not support global destination lists. You must set the `isGlobal` + * Secure Access supports a maximum of 250,000 destinations spread across + all destination lists in an organization. + + * Secure Access does not support global destination lists. Set the `isGlobal` field to `false`. * You cannot use the Destination Lists API to create a destination list with the `access` type of `thirdparty_block`. * You must set the `bundleTypeId` to `2`. Web profiles are applied on your - policy rules. + access rules. * Each fully qualified domain name (FQDN) that you add in a destination list must contain no more than 253 characters. @@ -7256,7 +8223,7 @@ paths: tags: - Destination Lists patch: - description: Update a destination list in your organization. + description: Update the name of a destination list in your organization. operationId: updateDestinationLists parameters: - $ref: '#/components/parameters/destinationListId' @@ -7386,6 +8353,9 @@ paths: * Each API request accepts no more than 500 destination objects in the body of the request unless the destination list is of type `thirdparty_block`. + * Secure Access supports a maximum of 250,000 destinations spread across + all destination lists in an organization. + * If the type of the destination list is `thirdparty_block`, then the system accepts 100 destination objects. @@ -7524,17 +8494,59 @@ paths: summary: Delete Destinations from Destination List tags: - Destinations - /policies/v2/feeds: + /policies/v2/dlp/{ruleType}/rules/{id}: + delete: + description: 'Delete the DLP rule with the specified rule type. The type of + the DLP rule is either `SaaSAPI`, `RealTime`, or `AI Guardrails`. + + ' + operationId: deleteRule + parameters: + - $ref: '#/components/parameters/ruleType' + - $ref: '#/components/parameters/idDlpRule' + responses: + '204': + description: No Content + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + Date: + $ref: '#/components/headers/Date' + '400': + $ref: '#/components/responses/BadRequestError' + '404': + $ref: '#/components/responses/NotFoundError' + '500': + $ref: '#/components/responses/InternalServerError' + security: + - oauthFlow: + - policies.dlp:write + summary: Delete DLP Rule + tags: + - Rules + /policies/v2/dlp/aiGuardrails/dataIdentifiers: get: - description: List the threat feeds for the third-party and custom security vendors - integrated in Secure Access. - operationId: getFeeds + description: 'List the AI Guardrails data identifiers. + + You can query the AI Guardrails data identifiers using the `name` parameter.' + operationId: getAiGuardrailsDataIdentifiers + parameters: + - $ref: '#/components/parameters/nameBuiltInDataIdentifier' + - $ref: '#/components/parameters/dataLossPreventionLimit2' + - $ref: '#/components/parameters/dataLossPreventionOffset2' + - $ref: '#/components/parameters/dataIdentifierFields' responses: '200': content: application/json: + examples: + example-success: + $ref: '#/components/examples/BuiltInDataIdentifierListExample' schema: - $ref: '#/components/schemas/feeds' + description: The list of built-in data identifiers. + items: + $ref: '#/components/schemas/BuiltInDataIdentifierListItem' + type: array description: OK headers: Content-Type: @@ -7542,32 +8554,30 @@ paths: Date: $ref: '#/components/headers/Date' '400': - $ref: '#/components/responses/threatIntelligenceFeedsInvalidRequest' - '401': - $ref: '#/components/responses/threatIntelligenceFeedsUnauthorized' - '403': - $ref: '#/components/responses/threatIntelligenceFeedsForbidden' - '404': - $ref: '#/components/responses/threatIntelligenceFeedsNotFound' + $ref: '#/components/responses/BadRequestError' '500': - $ref: '#/components/responses/threatIntelligenceFeedsServerError' + $ref: '#/components/responses/InternalServerError' security: - oauthFlow: - - policies.feeds:read - summary: List Threat Feeds + - policies.dlp:read + summary: List AI Guardrails Data Identifiers tags: - - Feeds - post: - description: Create a threat feed for a third-party or custom security vendor. - operationId: createFeed - requestBody: - $ref: '#/components/requestBodies/feedCreateRequestBody' + - DataIdentifiers + /policies/v2/dlp/aiGuardrails/dataIdentifiers/{id}: + get: + description: Get the properties of a specific built-in AI Guardrails data identifier. + operationId: getAiGuardrailsDataIdentifierById + parameters: + - $ref: '#/components/parameters/idBuiltInDataIdentifier' responses: '200': content: application/json: + examples: + example-success: + $ref: '#/components/examples/BuiltInDataIdentifierExample' schema: - $ref: '#/components/schemas/feedObject' + $ref: '#/components/schemas/BuiltInDataIdentifier' description: OK headers: Content-Type: @@ -7575,66 +8585,110 @@ paths: Date: $ref: '#/components/headers/Date' '400': - $ref: '#/components/responses/threatIntelligenceFeedsInvalidRequest' - '401': - $ref: '#/components/responses/threatIntelligenceFeedsUnauthorized' - '403': - $ref: '#/components/responses/threatIntelligenceFeedsForbidden' + $ref: '#/components/responses/BadRequestError' '404': - $ref: '#/components/responses/threatIntelligenceFeedsNotFound' + $ref: '#/components/responses/NotFoundError' '500': - $ref: '#/components/responses/threatIntelligenceFeedsServerError' + $ref: '#/components/responses/InternalServerError' security: - oauthFlow: - - policies.feeds:write - summary: Create Threat Feed + - policies.dlp:read + summary: Get AI Guardrails Data Identifier tags: - - Feeds - /policies/v2/feeds/{feedId}: - delete: - description: 'Delete the threat feed for a custom security vendor. + - DataIdentifiers + /policies/v2/dlp/aiGuardrails/rules: + get: + description: 'List the AI Guardrails Data Loss Prevention (DLP) rules. You can + query the data identifiers using the `name` parameter. Use the `fields` query + parameter to include additional fields in the response. - **Note:** You cannot remove a threat feed for a third-party security vendor. - You can only enable or disable a threat feed for a third-party security vendor.' - operationId: deleteFeed + ' + operationId: getAllAiGuardrailsDlpRules parameters: - - $ref: '#/components/parameters/feedId' + - $ref: '#/components/parameters/nameAiGuardrailsDlpRules' + - $ref: '#/components/parameters/dataLossPreventionLimit2' + - $ref: '#/components/parameters/dataLossPreventionOffset2' + - $ref: '#/components/parameters/ruleFields' responses: - '204': - description: No Content + '200': + content: + application/json: + examples: + example-success: + $ref: '#/components/examples/DLPRuleListExample' + schema: + description: The list of the AI Guardrails DLP rules. + items: + $ref: '#/components/schemas/DLPRuleListItem' + type: array + description: OK headers: Content-Type: $ref: '#/components/headers/Content-Type' Date: $ref: '#/components/headers/Date' '400': - $ref: '#/components/responses/threatIntelligenceFeedsInvalidRequest' - '401': - $ref: '#/components/responses/threatIntelligenceFeedsUnauthorized' - '403': - $ref: '#/components/responses/threatIntelligenceFeedsForbidden' - '404': - $ref: '#/components/responses/threatIntelligenceFeedsNotFound' + $ref: '#/components/responses/BadRequestError' '500': - $ref: '#/components/responses/threatIntelligenceFeedsServerError' + $ref: '#/components/responses/InternalServerError' security: - oauthFlow: - - policies.feeds:write - summary: Delete Threat Feed + - policies.dlp:read + summary: List AI Guardrails DLP Rules tags: - - Feeds + - Rules + post: + description: Create an AI Guardrails DLP rule with the specified properties. + operationId: createAiGuardrailsDlpRule + requestBody: + content: + application/json: + examples: + example-request: + $ref: '#/components/examples/DLPRuleCreateRequestExample' + schema: + $ref: '#/components/schemas/DLPRuleCreateRequest' + required: 'true' + responses: + '201': + content: + application/json: + examples: + example-success: + $ref: '#/components/examples/DLPRuleExample' + schema: + $ref: '#/components/schemas/DLPRule' + description: Created + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + Date: + $ref: '#/components/headers/Date' + '400': + $ref: '#/components/responses/BadRequestError' + '500': + $ref: '#/components/responses/InternalServerError' + security: + - oauthFlow: + - policies.dlp:write + summary: Create AI Guardrails Rule + tags: + - Rules + /policies/v2/dlp/aiGuardrails/rules/{id}: get: - description: Get the properties of the threat feed for a third-party or custom - security vendor. - operationId: getFeed + description: Get the properties of the AI Guardrails DLP rule. + operationId: getAiGuardrailsDlpRuleById parameters: - - $ref: '#/components/parameters/feedId' + - $ref: '#/components/parameters/idAiGuardrailsDlpRule' responses: '200': content: application/json: + examples: + example-success: + $ref: '#/components/examples/DLPRuleExample' schema: - $ref: '#/components/schemas/feedObject' + $ref: '#/components/schemas/DLPRule' description: OK headers: Content-Type: @@ -7642,35 +8696,40 @@ paths: Date: $ref: '#/components/headers/Date' '400': - $ref: '#/components/responses/threatIntelligenceFeedsInvalidRequest' - '401': - $ref: '#/components/responses/threatIntelligenceFeedsUnauthorized' - '403': - $ref: '#/components/responses/threatIntelligenceFeedsForbidden' + $ref: '#/components/responses/BadRequestError' '404': - $ref: '#/components/responses/threatIntelligenceFeedsNotFound' + $ref: '#/components/responses/NotFoundError' '500': - $ref: '#/components/responses/threatIntelligenceFeedsServerError' + $ref: '#/components/responses/InternalServerError' security: - oauthFlow: - - policies.feeds:read - summary: Get Threat Feed + - policies.dlp:read + summary: Get AI Guardrails DLP Rule tags: - - Feeds - put: - description: Update the properties of the threat feed for a third-party or custom - security vendor. - operationId: updateFeed + - Rules + patch: + description: Update the properties of the AI Guardrails DLP rule. + operationId: updateAiGuardrailsDlpRule parameters: - - $ref: '#/components/parameters/feedId' + - $ref: '#/components/parameters/idAiGuardrailsDlpRule' requestBody: - $ref: '#/components/requestBodies/feedPatchRequestBody' + content: + application/json: + examples: + example-request: + $ref: '#/components/examples/DLPRulePatchRequestExample' + schema: + $ref: '#/components/schemas/DLPRulePatchRequest' + required: 'true' responses: '200': content: application/json: + examples: + example-success: + $ref: '#/components/examples/DLPRuleExample' schema: - $ref: '#/components/schemas/feedObject' + $ref: '#/components/schemas/DLPRule' description: OK headers: Content-Type: @@ -7678,48 +8737,42 @@ paths: Date: $ref: '#/components/headers/Date' '400': - $ref: '#/components/responses/threatIntelligenceFeedsInvalidRequest' - '401': - $ref: '#/components/responses/threatIntelligenceFeedsUnauthorized' - '403': - $ref: '#/components/responses/threatIntelligenceFeedsForbidden' + $ref: '#/components/responses/BadRequestError' '404': - $ref: '#/components/responses/threatIntelligenceFeedsNotFound' + $ref: '#/components/responses/NotFoundError' '500': - $ref: '#/components/responses/threatIntelligenceFeedsServerError' + $ref: '#/components/responses/InternalServerError' security: - oauthFlow: - - policies.feeds:write - summary: Update Threat Feed + - policies.dlp:write + summary: Update AI Guardrails DLP Rule tags: - - Feeds - /policies/v2/geolocations: + - Rules + /policies/v2/dlp/builtIn/classifications: get: - description: 'List the regional information for the continents and countries. + description: 'List the built-in DLP classifications. You can query the data + identifiers using the `name` parameter. Use the `fields` query parameter to + include additional fields in the response. - You can use the country code to create a block on the traffic defined in an - internet access rule.' - operationId: getRegionalLocations + ' + operationId: getAllBuiltInDlpClassifications + parameters: + - $ref: '#/components/parameters/nameBuiltinClassifications' + - $ref: '#/components/parameters/dataLossPreventionLimit2' + - $ref: '#/components/parameters/dataLossPreventionOffset2' + - $ref: '#/components/parameters/classificationFields' responses: '200': content: application/json: - example: - results: - - continentName: South America - countries: - - countryCode: AR - countryName: Argentina - - countryCode: BR - countryName: Brazil - - continentName: Asia - countries: - - countryCode: IN - countryName: India - - countryCode: MY - countryName: Malaysia + examples: + example-success: + $ref: '#/components/examples/DataClassificationListExample' schema: - $ref: '#/components/schemas/Regions' + description: The list of built-in DLP classifications. + items: + $ref: '#/components/schemas/DataClassificationListItem' + type: array description: OK headers: Content-Type: @@ -7727,55 +8780,32 @@ paths: Date: $ref: '#/components/headers/Date' '400': - $ref: '#/components/responses/policyRules400Error' - '401': - $ref: '#/components/responses/policyRules401Error' - '403': - $ref: '#/components/responses/policyRules403Error' + $ref: '#/components/responses/BadRequestError' '404': - $ref: '#/components/responses/policyRules404Error' + $ref: '#/components/responses/NotFoundError' '500': - $ref: '#/components/responses/policyRules500Error' + $ref: '#/components/responses/InternalServerError' security: - oauthFlow: - - policies.rules:read - summary: List GeoLocations + - policies.dlp:read + summary: List Built-In DLP Classifications tags: - - Access Rules - /policies/v2/ipsSignatureProfiles: + - Classifications + /policies/v2/dlp/builtIn/classifications/{classificationId}: get: - description: 'Get the list of custom and system-defined IPS profiles for the - organization. - - The system-defined IPS profiles are: - - - * Connectivity Over Security - - * Balanced Security and Connectivity - - * Security Over Connectivity - - * Maximum Detection' - operationId: getIpsProfiles + description: Get the properties of the built-in DLP classification. + operationId: getBuiltInDlpClassificationById parameters: - - $ref: '#/components/parameters/ipsProfilesLimit' - - $ref: '#/components/parameters/page' - - $ref: '#/components/parameters/filters' + - $ref: '#/components/parameters/classificationId' responses: '200': content: application/json: + examples: + example-success: + $ref: '#/components/examples/DataClassificationExample' schema: - properties: - data: - description: The list of IPS profiles. - items: - $ref: '#/components/schemas/ipsSignatureProfile' - type: array - meta: - $ref: '#/components/schemas/ipsProfilesMeta' - type: object + $ref: '#/components/schemas/DataClassification' description: OK headers: Content-Type: @@ -7783,32 +8813,40 @@ paths: Date: $ref: '#/components/headers/Date' '400': - $ref: '#/components/responses/badRequest' - '401': - $ref: '#/components/responses/unauthorized' - '403': - $ref: '#/components/responses/forbidden' + $ref: '#/components/responses/BadRequestError' '404': - $ref: '#/components/responses/notFound' + $ref: '#/components/responses/NotFoundError' '500': - $ref: '#/components/responses/serverError' + $ref: '#/components/responses/InternalServerError' security: - oauthFlow: - - policies.ipsconfig:read - summary: List IPS Profiles + - policies.dlp:read + summary: Get Built-In DLP Classification tags: - - IPS Profiles - post: - description: Create a custom IPS profile in the organization. - operationId: createCustomIpsProfile - requestBody: - $ref: '#/components/requestBodies/ipsSignatureProfileCreate' + - Classifications + /policies/v2/dlp/builtIn/dataIdentifiers: + get: + description: 'List the built-in data identifiers. + + You can query the built-in data identifiers using the `name` parameter.' + operationId: getBuiltInDataIdentifiers + parameters: + - $ref: '#/components/parameters/nameBuiltInDataIdentifier' + - $ref: '#/components/parameters/dataLossPreventionLimit2' + - $ref: '#/components/parameters/dataLossPreventionOffset2' + - $ref: '#/components/parameters/dataIdentifierFields' responses: '200': content: application/json: + examples: + example-success: + $ref: '#/components/examples/BuiltInDataIdentifierListExample' schema: - $ref: '#/components/schemas/ipsSignatureProfile' + description: The list of built-in data identifiers. + items: + $ref: '#/components/schemas/BuiltInDataIdentifierListItem' + type: array description: OK headers: Content-Type: @@ -7816,29 +8854,30 @@ paths: Date: $ref: '#/components/headers/Date' '400': - $ref: '#/components/responses/badRequest' - '401': - $ref: '#/components/responses/unauthorized' - '403': - $ref: '#/components/responses/forbidden' - '404': - $ref: '#/components/responses/notFound' + $ref: '#/components/responses/BadRequestError' '500': - $ref: '#/components/responses/serverError' + $ref: '#/components/responses/InternalServerError' security: - oauthFlow: - - policies.ipsconfig:write - summary: Create Custom IPS Profile + - policies.dlp:read + summary: List Built-In Data Identifiers tags: - - IPS Profiles - /policies/v2/ipsSignatureProfiles/{id}: - delete: - description: Delete the custom IPS profile in the organization. - operationId: deleteCustomIpsProfile + - DataIdentifiers + /policies/v2/dlp/builtIn/dataIdentifiers/{id}: + get: + description: Get the detailed information about a specific built-in data identifier. + operationId: getBuiltInDataIdentifierById parameters: - - $ref: '#/components/parameters/ipsSignatureProfileId' + - $ref: '#/components/parameters/idBuiltInDataIdentifier' responses: '200': + content: + application/json: + examples: + example-success: + $ref: '#/components/examples/BuiltInDataIdentifierExample' + schema: + $ref: '#/components/schemas/BuiltInDataIdentifier' description: OK headers: Content-Type: @@ -7846,32 +8885,42 @@ paths: Date: $ref: '#/components/headers/Date' '400': - $ref: '#/components/responses/badRequest' - '401': - $ref: '#/components/responses/unauthorized' - '403': - $ref: '#/components/responses/forbidden' + $ref: '#/components/responses/BadRequestError' '404': - $ref: '#/components/responses/notFound' + $ref: '#/components/responses/NotFoundError' '500': - $ref: '#/components/responses/serverError' + $ref: '#/components/responses/InternalServerError' security: - oauthFlow: - - policies.ipsconfig:write - summary: Delete Custom IPS Profile + - policies.dlp:read + summary: Get Built-In Data Identifier tags: - - IPS Profiles + - DataIdentifiers + /policies/v2/dlp/custom/classifications: get: - description: Get the IPS profile in the organization. - operationId: getIpsProfile + description: 'List the custom DLP classifications. You can query the data identifiers + using the `name` parameter. Use the `fields` query parameter to include additional + fields in the response. + + ' + operationId: getAllCustomDlpClassifications parameters: - - $ref: '#/components/parameters/ipsSignatureProfileId' + - $ref: '#/components/parameters/nameCustomClassifications' + - $ref: '#/components/parameters/dataLossPreventionLimit2' + - $ref: '#/components/parameters/dataLossPreventionOffset2' + - $ref: '#/components/parameters/classificationFields' responses: '200': content: application/json: + examples: + example-success: + $ref: '#/components/examples/DataClassificationListExample' schema: - $ref: '#/components/schemas/ipsSignatureProfile' + description: The list of custom DLP classifications. + items: + $ref: '#/components/schemas/DataClassificationListItem' + type: array description: OK headers: Content-Type: @@ -7879,56 +8928,1492 @@ paths: Date: $ref: '#/components/headers/Date' '400': - $ref: '#/components/responses/badRequest' - '401': - $ref: '#/components/responses/unauthorized' - '403': - $ref: '#/components/responses/forbidden' + $ref: '#/components/responses/BadRequestError' '404': - $ref: '#/components/responses/notFound' + $ref: '#/components/responses/NotFoundError' '500': - $ref: '#/components/responses/serverError' + $ref: '#/components/responses/InternalServerError' security: - oauthFlow: - - policies.ipsconfig:read - summary: Get IPS Profile + - policies.dlp:read + summary: List Custom DLP Classifications tags: - - IPS Profiles - patch: - description: Update the IPS profile in the organization. - operationId: updateIpsProfile - parameters: - - $ref: '#/components/parameters/ipsSignatureProfileId' + - Classifications + post: + description: Create a custom DLP classification. + operationId: createCustomDlpClassification requestBody: - $ref: '#/components/requestBodies/patchOperations' + content: + application/json: + examples: + example-request: + $ref: '#/components/examples/DataClassificationCreateRequestExample' + schema: + $ref: '#/components/schemas/DataClassificationCreateRequest' + required: 'true' responses: - '200': + '201': content: application/json: + examples: + example-success: + $ref: '#/components/examples/DataClassificationExample' schema: - $ref: '#/components/schemas/ipsSignatureProfile' - description: OK + $ref: '#/components/schemas/DataClassification' + description: Created headers: Content-Type: $ref: '#/components/headers/Content-Type' Date: $ref: '#/components/headers/Date' '400': - $ref: '#/components/responses/badRequest' - '401': - $ref: '#/components/responses/unauthorized' - '403': - $ref: '#/components/responses/forbidden' - '404': - $ref: '#/components/responses/notFound' + $ref: '#/components/responses/BadRequestError' '500': - $ref: '#/components/responses/serverError' + $ref: '#/components/responses/InternalServerError' security: - oauthFlow: - - policies.ipsconfig:write - summary: Update IPS Profile + - policies.dlp:write + summary: Create Custom DLP Classification tags: - - IPS Profiles + - Classifications + /policies/v2/dlp/custom/classifications/{classificationId}: + delete: + description: Delete a custom DLP classification. + operationId: deleteCustomDlpClassification + parameters: + - $ref: '#/components/parameters/classificationId' + responses: + '204': + description: No Content + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + Date: + $ref: '#/components/headers/Date' + '400': + $ref: '#/components/responses/BadRequestError' + '404': + $ref: '#/components/responses/NotFoundError' + '500': + $ref: '#/components/responses/InternalServerError' + security: + - oauthFlow: + - policies.dlp:write + summary: Delete Custom DLP Classification + tags: + - Classifications + get: + description: Get the properties of a specific DLP classification. + operationId: getCustomDlpClassificationById + parameters: + - $ref: '#/components/parameters/classificationId' + responses: + '200': + content: + application/json: + examples: + example-success: + $ref: '#/components/examples/DataClassificationExample' + schema: + $ref: '#/components/schemas/DataClassification' + description: OK + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + Date: + $ref: '#/components/headers/Date' + '400': + $ref: '#/components/responses/BadRequestError' + '404': + $ref: '#/components/responses/NotFoundError' + '500': + $ref: '#/components/responses/InternalServerError' + security: + - oauthFlow: + - policies.dlp:read + summary: Get Custom DLP Classification + tags: + - Classifications + patch: + description: Update a custom DLP classification. + operationId: updateCustomDlpClassification + parameters: + - $ref: '#/components/parameters/classificationId' + requestBody: + content: + application/json: + examples: + example-request: + $ref: '#/components/examples/DataClassificationPatchRequestExample' + schema: + $ref: '#/components/schemas/DataClassificationPatchRequest' + required: 'true' + responses: + '200': + content: + application/json: + examples: + example-success: + $ref: '#/components/examples/DataClassificationExample' + schema: + $ref: '#/components/schemas/DataClassification' + description: OK + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + Date: + $ref: '#/components/headers/Date' + '400': + $ref: '#/components/responses/BadRequestError' + '404': + $ref: '#/components/responses/NotFoundError' + '500': + $ref: '#/components/responses/InternalServerError' + security: + - oauthFlow: + - policies.dlp:write + summary: Update Custom DLP Classification + tags: + - Classifications + /policies/v2/dlp/custom/dataIdentifiers: + get: + description: 'List the custom data identifiers. + + You can query the custom data identifiers using the `name` parameter.' + operationId: getCustomDataIdentifiers + parameters: + - $ref: '#/components/parameters/nameCustomDataIdentifiers' + - $ref: '#/components/parameters/dataLossPreventionLimit2' + - $ref: '#/components/parameters/dataLossPreventionOffset2' + - $ref: '#/components/parameters/dataIdentifierFields' + responses: + '200': + content: + application/json: + examples: + example-success: + $ref: '#/components/examples/CustomDataIdentifierListExample' + schema: + description: The list of custom data identifiers. + items: + $ref: '#/components/schemas/CustomDataIdentifierListItem' + type: array + description: OK + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + Date: + $ref: '#/components/headers/Date' + '400': + $ref: '#/components/responses/BadRequestError' + '500': + $ref: '#/components/responses/InternalServerError' + security: + - oauthFlow: + - policies.dlp:read + summary: List Custom Data Identifiers + tags: + - DataIdentifiers + post: + description: Create a custom Data Identifier with the specified parameters. + operationId: createCustomIdentifiers + requestBody: + content: + application/json: + examples: + example-request: + $ref: '#/components/examples/CustomDataIdentifierCreateRequestExample' + schema: + $ref: '#/components/schemas/CustomDataIdentifierCreateRequest' + required: 'true' + responses: + '201': + content: + application/json: + examples: + example-success: + $ref: '#/components/examples/CustomDataIdentifierExample' + schema: + $ref: '#/components/schemas/CustomDataIdentifier' + description: Created + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + Date: + $ref: '#/components/headers/Date' + '400': + $ref: '#/components/responses/BadRequestError' + '500': + $ref: '#/components/responses/InternalServerError' + security: + - oauthFlow: + - policies.dlp:write + summary: Create Custom Data Identifier + tags: + - DataIdentifiers + /policies/v2/dlp/custom/dataIdentifiers/{id}: + delete: + description: 'Delete a custom data identifier. + + If the data identifier is in use by any classifications or rules, the system + does not delete the data identifier. + + ' + operationId: deleteCustomDataIdentifier + parameters: + - $ref: '#/components/parameters/idCustomDataIdentifier' + responses: + '204': + description: No Content + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + Date: + $ref: '#/components/headers/Date' + '400': + $ref: '#/components/responses/BadRequestError' + '404': + $ref: '#/components/responses/NotFoundError' + '500': + $ref: '#/components/responses/InternalServerError' + security: + - oauthFlow: + - policies.dlp:write + summary: Delete Custom Data Identifier + tags: + - DataIdentifiers + get: + description: Get the properties of a specific custom data identifier. + operationId: getCustomDataIdentifierById + parameters: + - $ref: '#/components/parameters/idCustomDataIdentifier' + responses: + '200': + content: + application/json: + examples: + example-success: + $ref: '#/components/examples/CustomDataIdentifierExample' + schema: + $ref: '#/components/schemas/CustomDataIdentifier' + description: OK + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + Date: + $ref: '#/components/headers/Date' + '400': + $ref: '#/components/responses/BadRequestError' + '404': + $ref: '#/components/responses/NotFoundError' + '500': + $ref: '#/components/responses/InternalServerError' + security: + - oauthFlow: + - policies.dlp:read + summary: Get Custom Data Identifier + tags: + - DataIdentifiers + patch: + description: 'Update a custom data identifier. + + ' + operationId: updateCustomDataIdentifier + parameters: + - $ref: '#/components/parameters/idCustomDataIdentifier' + requestBody: + content: + application/json: + examples: + example-request: + $ref: '#/components/examples/CustomDataIdentifierUpdateRequestExample' + schema: + $ref: '#/components/schemas/CustomDataIdentifierUpdateRequest' + required: 'true' + responses: + '200': + content: + application/json: + examples: + example-success: + $ref: '#/components/examples/CustomDataIdentifierExample' + schema: + $ref: '#/components/schemas/CustomDataIdentifier' + description: OK + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + Date: + $ref: '#/components/headers/Date' + '400': + $ref: '#/components/responses/BadRequestError' + '401': + $ref: '#/components/responses/UnauthorizedError' + '403': + $ref: '#/components/responses/ForbiddenError' + '404': + $ref: '#/components/responses/NotFoundError' + '500': + $ref: '#/components/responses/InternalServerError' + security: + - oauthFlow: + - policies.dlp:write + summary: Update Custom Data Identifier + tags: + - DataIdentifiers + /policies/v2/dlp/edm/dataIdentifiers: + get: + description: 'List the Exact Data Match (EDM) data identifiers. + + You can query the EDM data identifiers using the `name` parameter. + + ' + operationId: getAllEDM + parameters: + - $ref: '#/components/parameters/nameEdm' + - $ref: '#/components/parameters/dataLossPreventionLimit2' + - $ref: '#/components/parameters/dataLossPreventionOffset2' + responses: + '200': + content: + application/json: + examples: + example-success: + $ref: '#/components/examples/EDMDataIdentifierListExample' + schema: + description: The list of EDM data identifiers. + items: + $ref: '#/components/schemas/EDMIdentifierListItem' + type: array + description: OK + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + Date: + $ref: '#/components/headers/Date' + '400': + $ref: '#/components/responses/BadRequestError' + '500': + $ref: '#/components/responses/InternalServerError' + security: + - oauthFlow: + - policies.dlp:read + summary: List EDM Data Identifiers + tags: + - DataIdentifiers + post: + description: 'Create an Exact Data Match (EDM) data identifier. + + Use the EDM data identifier for exact data matching against structured data. + + ' + operationId: createEDM + requestBody: + content: + application/json: + examples: + example-create-request: + $ref: '#/components/examples/EDMDataIdentifierCreateRequestExample' + schema: + $ref: '#/components/schemas/EDMIdentifierCreateRequest' + description: The properties used to create the EDM data identifier. + required: 'true' + responses: + '201': + content: + application/json: + examples: + example-success: + $ref: '#/components/examples/EDMDataIdentifierResponseExample' + schema: + $ref: '#/components/schemas/EDMIdentifierResponse' + description: Created + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + Date: + $ref: '#/components/headers/Date' + '400': + $ref: '#/components/responses/BadRequestError' + '401': + $ref: '#/components/responses/UnauthorizedError' + '403': + $ref: '#/components/responses/ForbiddenError' + '500': + $ref: '#/components/responses/InternalServerError' + security: + - oauthFlow: + - policies.dlp:write + summary: Create EDM Data Identifier + tags: + - DataIdentifiers + /policies/v2/dlp/edm/dataIdentifiers/{id}: + delete: + description: 'Delete the Exact Data Match (EDM) data identifier. + + If the EDM identifier is in use by any classifications or rules, the system + does not delete the EDM data identifier. + + ' + operationId: deleteEDM + parameters: + - $ref: '#/components/parameters/idEdm' + responses: + '204': + description: No Content + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + Date: + $ref: '#/components/headers/Date' + '400': + $ref: '#/components/responses/BadRequestError' + '404': + $ref: '#/components/responses/NotFoundError' + '500': + $ref: '#/components/responses/InternalServerError' + security: + - oauthFlow: + - policies.dlp:write + summary: Delete EDM Data Identifier + tags: + - DataIdentifiers + get: + description: Get the properties of a specific Exact Data Match (EDM) data identifier. + operationId: getEDM + parameters: + - $ref: '#/components/parameters/idEdm' + responses: + '200': + content: + application/json: + examples: + example-success: + $ref: '#/components/examples/EDMDataIdentifierResponseExample' + schema: + $ref: '#/components/schemas/EDMIdentifierResponse' + description: OK + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + Date: + $ref: '#/components/headers/Date' + '400': + $ref: '#/components/responses/BadRequestError' + '401': + $ref: '#/components/responses/UnauthorizedError' + '403': + $ref: '#/components/responses/ForbiddenError' + '404': + $ref: '#/components/responses/NotFoundError' + '500': + $ref: '#/components/responses/InternalServerError' + security: + - oauthFlow: + - policies.dlp:read + summary: Get EDM Data Identifier + tags: + - DataIdentifiers + patch: + description: 'Update the Exact Data Match (EDM) data identifier. + + The system requires that you set one or more fields in the request body. + + ' + operationId: updateEDM + parameters: + - $ref: '#/components/parameters/idEdm' + requestBody: + content: + application/json: + examples: + example-patch-request: + $ref: '#/components/examples/EDMDataIdentifierUpdateRequestExample' + schema: + $ref: '#/components/schemas/EDMIdentifierUpdateRequest' + description: The properties used to update the EDM data identifier. + required: 'true' + responses: + '200': + content: + application/json: + examples: + example-success: + $ref: '#/components/examples/EDMDataIdentifierResponseExample' + schema: + $ref: '#/components/schemas/EDMIdentifierResponse' + description: OK + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + Date: + $ref: '#/components/headers/Date' + '400': + $ref: '#/components/responses/BadRequestError' + '401': + $ref: '#/components/responses/UnauthorizedError' + '403': + $ref: '#/components/responses/ForbiddenError' + '404': + $ref: '#/components/responses/NotFoundError' + '500': + $ref: '#/components/responses/InternalServerError' + security: + - oauthFlow: + - policies.dlp:write + summary: Update EDM Data Identifier + tags: + - DataIdentifiers + /policies/v2/dlp/edm/types: + get: + description: 'List the types of the Exact Data Match (EDM) data identifiers + supported by the organization. + + The EDM types define the type of data that are allowed in the EDM columns. + + ' + operationId: getEdmTypes + parameters: + - $ref: '#/components/parameters/nameEdmTypes' + - $ref: '#/components/parameters/dataLossPreventionLimit2' + - $ref: '#/components/parameters/dataLossPreventionOffset2' + responses: + '200': + content: + application/json: + examples: + example-success: + $ref: '#/components/examples/EDMTypeListExample' + schema: + description: The list of EDM types. + items: + $ref: '#/components/schemas/EDMType' + type: array + description: OK + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + Date: + $ref: '#/components/headers/Date' + '400': + $ref: '#/components/responses/BadRequestError' + '500': + $ref: '#/components/responses/InternalServerError' + security: + - oauthFlow: + - policies.dlp:read + summary: List EDM Types + tags: + - DataIdentifiers + /policies/v2/dlp/idm/dataIdentifiers: + get: + description: 'List the Indexed Document Match (IDM) data identifiers. + + You can query the data identifiers using the `name` parameter. + + ' + operationId: getAllIDM + parameters: + - $ref: '#/components/parameters/nameIdm' + - $ref: '#/components/parameters/dataLossPreventionLimit2' + - $ref: '#/components/parameters/dataLossPreventionOffset2' + - $ref: '#/components/parameters/dataIdentifierFields' + responses: + '200': + content: + application/json: + examples: + example-success: + $ref: '#/components/examples/IDMDataIdentifierListExample' + schema: + description: The list of IDM data identifiers. + items: + $ref: '#/components/schemas/IDMDataIdentifierListItem' + type: array + description: OK + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + Date: + $ref: '#/components/headers/Date' + '400': + $ref: '#/components/responses/BadRequestError' + '401': + $ref: '#/components/responses/UnauthorizedError' + '500': + $ref: '#/components/responses/InternalServerError' + security: + - oauthFlow: + - policies.dlp:read + summary: List IDM Data Identifiers + tags: + - DataIdentifiers + post: + description: 'Create an Indexed Document Match (IDM)) data identifier. + + You can use the IDM data identifier for document fingerprinting and matching. + + ' + operationId: createIDMDataIdentifier + requestBody: + content: + application/json: + examples: + example-create-request: + $ref: '#/components/examples/IDMDataIdentifierCreateRequestExample' + schema: + $ref: '#/components/schemas/IDMIdentifierCreateRequest' + description: The properties of the IDM data identifier. + required: 'true' + responses: + '201': + content: + application/json: + examples: + example-success: + $ref: '#/components/examples/IDMDataIdentifierExample' + schema: + $ref: '#/components/schemas/IDMDataIdentifierResponse' + description: Created + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + Date: + $ref: '#/components/headers/Date' + '400': + $ref: '#/components/responses/BadRequestError' + '401': + $ref: '#/components/responses/UnauthorizedError' + '403': + $ref: '#/components/responses/ForbiddenError' + '500': + $ref: '#/components/responses/InternalServerError' + security: + - oauthFlow: + - policies.dlp:write + summary: Create IDM Data Identifier + tags: + - DataIdentifiers + /policies/v2/dlp/idm/dataIdentifiers/{id}: + delete: + description: 'Delete the Indexed Document Match (IDM) data identifier. + + If the IDM data identifier is in use by any classifications or rules, the + system does not delete the IDM identifier. + + ' + operationId: deleteIDMDataIdentifier + parameters: + - $ref: '#/components/parameters/idIdm' + responses: + '204': + description: No Content + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + Date: + $ref: '#/components/headers/Date' + '400': + $ref: '#/components/responses/BadRequestError' + '404': + $ref: '#/components/responses/NotFoundError' + '500': + $ref: '#/components/responses/InternalServerError' + security: + - oauthFlow: + - policies.dlp:write + summary: Delete IDM Data Identifier + tags: + - DataIdentifiers + get: + description: Get the properties of a specific Indexed Document Match (IDM) data + identifier. + operationId: getIDMDataIdentifier + parameters: + - $ref: '#/components/parameters/idIdm' + responses: + '200': + content: + application/json: + examples: + example-success: + $ref: '#/components/examples/IDMDataIdentifierExample' + schema: + $ref: '#/components/schemas/IDMDataIdentifierResponse' + description: OK + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + Date: + $ref: '#/components/headers/Date' + '400': + $ref: '#/components/responses/BadRequestError' + '401': + $ref: '#/components/responses/UnauthorizedError' + '403': + $ref: '#/components/responses/ForbiddenError' + '404': + $ref: '#/components/responses/NotFoundError' + '500': + $ref: '#/components/responses/InternalServerError' + security: + - oauthFlow: + - policies.dlp:read + summary: Get IDM Data Identifier + tags: + - DataIdentifiers + patch: + description: 'Update the Indexed Document Match (IDM) data identifier. + + ' + operationId: updateIDMDataIdentifier + parameters: + - $ref: '#/components/parameters/idIdm' + requestBody: + content: + application/json: + examples: + example-patch-request: + $ref: '#/components/examples/IDMDataIdentifierUpdateRequestExample' + schema: + $ref: '#/components/schemas/IDMIdentifierUpdateRequest' + description: Update the properties of the IDM data identifier. + required: 'true' + responses: + '200': + content: + application/json: + examples: + example-success: + $ref: '#/components/examples/IDMDataIdentifierExample' + schema: + $ref: '#/components/schemas/IDMDataIdentifierResponse' + description: OK + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + Date: + $ref: '#/components/headers/Date' + '400': + $ref: '#/components/responses/BadRequestError' + '401': + $ref: '#/components/responses/UnauthorizedError' + '403': + $ref: '#/components/responses/ForbiddenError' + '404': + $ref: '#/components/responses/NotFoundError' + '500': + $ref: '#/components/responses/InternalServerError' + security: + - oauthFlow: + - policies.dlp:write + summary: Update IDM Data Identifier + tags: + - DataIdentifiers + /policies/v2/dlp/realTime/rules: + get: + description: 'List the real-time Data Loss Prevention (DLP) rules. You can query + the data identifiers using the `name` parameter. Use the `fields` query parameter + to include additional fields in the response. + + ' + operationId: getAllRealTimeDlpRules + parameters: + - $ref: '#/components/parameters/nameRealTimeDlpRules' + - $ref: '#/components/parameters/dataLossPreventionLimit2' + - $ref: '#/components/parameters/dataLossPreventionOffset2' + - $ref: '#/components/parameters/ruleFields' + responses: + '200': + content: + application/json: + examples: + example-success: + $ref: '#/components/examples/DLPRuleListExample' + schema: + description: The list of the real-time DLP rules. + items: + $ref: '#/components/schemas/DLPRuleListItem' + type: array + description: OK + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + Date: + $ref: '#/components/headers/Date' + '400': + $ref: '#/components/responses/BadRequestError' + '500': + $ref: '#/components/responses/InternalServerError' + security: + - oauthFlow: + - policies.dlp:read + summary: List Real-Time DLP Rules + tags: + - Rules + post: + description: Create a real-time DLP rule with the specified properties. + operationId: createRealTimeDlpRule + requestBody: + content: + application/json: + examples: + example-request: + $ref: '#/components/examples/DLPRuleCreateRequestExample' + schema: + $ref: '#/components/schemas/DLPRuleCreateRequest' + required: 'true' + responses: + '201': + content: + application/json: + examples: + example-success: + $ref: '#/components/examples/DLPRuleExample' + schema: + $ref: '#/components/schemas/DLPRule' + description: Created + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + Date: + $ref: '#/components/headers/Date' + '400': + $ref: '#/components/responses/BadRequestError' + '500': + $ref: '#/components/responses/InternalServerError' + security: + - oauthFlow: + - policies.dlp:write + summary: Create Real-Time DLP Rule + tags: + - Rules + /policies/v2/dlp/realTime/rules/{id}: + get: + description: Get the properties of the real-time DLP rule. + operationId: getRealTimeDlpRuleById + parameters: + - $ref: '#/components/parameters/idRealTimeDlpRule' + responses: + '200': + content: + application/json: + examples: + example-success: + $ref: '#/components/examples/DLPRuleExample' + schema: + $ref: '#/components/schemas/DLPRule' + description: OK + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + Date: + $ref: '#/components/headers/Date' + '400': + $ref: '#/components/responses/BadRequestError' + '404': + $ref: '#/components/responses/NotFoundError' + '500': + $ref: '#/components/responses/InternalServerError' + security: + - oauthFlow: + - policies.dlp:read + summary: Get Real-Time DLP Rule + tags: + - Rules + patch: + description: Update the properties of the real-time DLP rule. + operationId: updateRealTimeDlpRule + parameters: + - $ref: '#/components/parameters/idRealTimeDlpRule' + requestBody: + content: + application/json: + examples: + example-request: + $ref: '#/components/examples/DLPRulePatchRequestExample' + schema: + $ref: '#/components/schemas/DLPRulePatchRequest' + required: 'true' + responses: + '200': + content: + application/json: + examples: + example-success: + $ref: '#/components/examples/DLPRuleExample' + schema: + $ref: '#/components/schemas/DLPRule' + description: OK + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + Date: + $ref: '#/components/headers/Date' + '400': + $ref: '#/components/responses/BadRequestError' + '404': + $ref: '#/components/responses/NotFoundError' + '500': + $ref: '#/components/responses/InternalServerError' + security: + - oauthFlow: + - policies.dlp:write + summary: Update Real-Time DLP Rule + tags: + - Rules + /policies/v2/dlp/saasApi/rules: + get: + description: List the SaaS API (Out-of-Band) DLP rules. + operationId: getAllSaasApiDlpRules + parameters: + - $ref: '#/components/parameters/nameSaasAPIDlpRules' + - $ref: '#/components/parameters/dataLossPreventionLimit2' + - $ref: '#/components/parameters/dataLossPreventionOffset2' + - $ref: '#/components/parameters/ruleFields' + responses: + '200': + content: + application/json: + examples: + example-success: + $ref: '#/components/examples/DLPRuleListExample' + schema: + items: + $ref: '#/components/schemas/DLPRuleListItem' + type: array + description: OK + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + Date: + $ref: '#/components/headers/Date' + '400': + $ref: '#/components/responses/BadRequestError' + '500': + $ref: '#/components/responses/InternalServerError' + security: + - oauthFlow: + - policies.dlp:read + summary: List SaaS API DLP Rules + tags: + - Rules + post: + description: 'Create an Out-of-Band SaaS API DLP rule. + + The default value of the `action` field is `MONITOR`.' + operationId: createSaasApiDlpRule + requestBody: + content: + application/json: + examples: + example-request: + $ref: '#/components/examples/OOBRuleCreateRequestExample' + schema: + $ref: '#/components/schemas/OOBRuleCreateRequest' + required: 'true' + responses: + '201': + content: + application/json: + examples: + example-success: + $ref: '#/components/examples/OOBRuleResponseExample' + schema: + $ref: '#/components/schemas/OOBRuleResponse' + description: Created + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + Date: + $ref: '#/components/headers/Date' + '400': + $ref: '#/components/responses/BadRequestError' + '500': + $ref: '#/components/responses/InternalServerError' + security: + - oauthFlow: + - policies.dlp:write + summary: Create SaaS API DLP Rule + tags: + - Rules + /policies/v2/dlp/saasApi/rules/{id}: + get: + description: Get the properties of the SaaS API (Out-of-Band) DLP rule. + operationId: getSaasApiDlpRuleById + parameters: + - $ref: '#/components/parameters/idSaaSApiDlpRule' + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/OOBRuleResponse' + description: OK + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + Date: + $ref: '#/components/headers/Date' + '400': + $ref: '#/components/responses/BadRequestError' + '404': + $ref: '#/components/responses/NotFoundError' + '500': + $ref: '#/components/responses/InternalServerError' + security: + - oauthFlow: + - policies.dlp:read + summary: Get SaaS API DLP Rule + tags: + - Rules + patch: + description: Update the properties of the SaaS API Out-of-Band (OOB) DLP rule. + operationId: updateSaasApiDlpRule + parameters: + - $ref: '#/components/parameters/idSaaSApiDlpRule' + requestBody: + content: + application/json: + examples: + example-request: + $ref: '#/components/examples/OOBRulePatchRequestExample' + schema: + $ref: '#/components/schemas/OOBRulePatchRequest' + required: 'true' + responses: + '200': + content: + application/json: + examples: + example-success: + $ref: '#/components/examples/OOBRulePatchResponseExample' + schema: + $ref: '#/components/schemas/OOBRuleResponse' + description: OK + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + Date: + $ref: '#/components/headers/Date' + '400': + $ref: '#/components/responses/BadRequestError' + '404': + $ref: '#/components/responses/NotFoundError' + '500': + $ref: '#/components/responses/InternalServerError' + security: + - oauthFlow: + - policies.dlp:write + summary: Update SaaS API DLP Rule + tags: + - Rules + /policies/v2/feeds: + get: + description: List the security feeds for the third-party and custom security + vendors integrated in Secure Access. + operationId: getFeeds + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/feeds' + description: OK + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + Date: + $ref: '#/components/headers/Date' + '400': + $ref: '#/components/responses/securityFeedsInvalidRequest' + '401': + $ref: '#/components/responses/securityFeedsUnauthorized' + '403': + $ref: '#/components/responses/securityFeedsForbidden' + '404': + $ref: '#/components/responses/securityFeedsNotFound' + '500': + $ref: '#/components/responses/securityFeedsServerError' + security: + - oauthFlow: + - policies.feeds:read + summary: List Security Feeds + tags: + - Feeds + post: + description: Create a security feed for a third-party or custom security vendor. + operationId: createFeed + requestBody: + $ref: '#/components/requestBodies/feedCreateRequestBody' + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/feedObject' + description: OK + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + Date: + $ref: '#/components/headers/Date' + '400': + $ref: '#/components/responses/securityFeedsInvalidRequest' + '401': + $ref: '#/components/responses/securityFeedsUnauthorized' + '403': + $ref: '#/components/responses/securityFeedsForbidden' + '404': + $ref: '#/components/responses/securityFeedsNotFound' + '500': + $ref: '#/components/responses/securityFeedsServerError' + security: + - oauthFlow: + - policies.feeds:write + summary: Create Security Feed + tags: + - Feeds + /policies/v2/feeds/{feedId}: + delete: + description: 'Delete the securityfeed for a custom security vendor. + + **Note:** You can not remove a security feed for a third-party security vendor. + You can only enable or disable a security feed for a third-party security + vendor.' + operationId: deleteFeed + parameters: + - $ref: '#/components/parameters/feedId' + responses: + '204': + description: No Content + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + Date: + $ref: '#/components/headers/Date' + '400': + $ref: '#/components/responses/securityFeedsInvalidRequest' + '401': + $ref: '#/components/responses/securityFeedsUnauthorized' + '403': + $ref: '#/components/responses/securityFeedsForbidden' + '404': + $ref: '#/components/responses/securityFeedsNotFound' + '500': + $ref: '#/components/responses/securityFeedsServerError' + security: + - oauthFlow: + - policies.feeds:write + summary: Delete Security Feed + tags: + - Feeds + get: + description: Get the properties of the security feed for a third-party or custom + security vendor. + operationId: getFeed + parameters: + - $ref: '#/components/parameters/feedId' + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/feedObject' + description: OK + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + Date: + $ref: '#/components/headers/Date' + '400': + $ref: '#/components/responses/securityFeedsInvalidRequest' + '401': + $ref: '#/components/responses/securityFeedsUnauthorized' + '403': + $ref: '#/components/responses/securityFeedsForbidden' + '404': + $ref: '#/components/responses/securityFeedsNotFound' + '500': + $ref: '#/components/responses/securityFeedsServerError' + security: + - oauthFlow: + - policies.feeds:read + summary: Get Security Feed + tags: + - Feeds + put: + description: Update the properties of the security feed for a third-party or + custom security vendor. + operationId: updateFeed + parameters: + - $ref: '#/components/parameters/feedId' + requestBody: + $ref: '#/components/requestBodies/feedPatchRequestBody' + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/feedObject' + description: OK + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + Date: + $ref: '#/components/headers/Date' + '400': + $ref: '#/components/responses/securityFeedsInvalidRequest' + '401': + $ref: '#/components/responses/securityFeedsUnauthorized' + '403': + $ref: '#/components/responses/securityFeedsForbidden' + '404': + $ref: '#/components/responses/securityFeedsNotFound' + '500': + $ref: '#/components/responses/securityFeedsServerError' + security: + - oauthFlow: + - policies.feeds:write + summary: Update Security Feed + tags: + - Feeds + /policies/v2/geolocations: + get: + description: 'List the regional information for the continents and countries. + + You can use the country code to create a block on the traffic defined in an + internet access rule.' + operationId: getRegionalLocations + responses: + '200': + content: + application/json: + example: + results: + - continentName: South America + countries: + - countryCode: AR + countryName: Argentina + - countryCode: BR + countryName: Brazil + - continentName: Asia + countries: + - countryCode: IN + countryName: India + - countryCode: MY + countryName: Malaysia + schema: + $ref: '#/components/schemas/Regions' + description: OK + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + Date: + $ref: '#/components/headers/Date' + '400': + $ref: '#/components/responses/policyRules400Error' + '401': + $ref: '#/components/responses/policyRules401Error' + '403': + $ref: '#/components/responses/policyRules403Error' + '404': + $ref: '#/components/responses/policyRules404Error' + '500': + $ref: '#/components/responses/policyRules500Error' + security: + - oauthFlow: + - policies.rules:read + summary: List GeoLocations + tags: + - Access Rules + /policies/v2/ipsSignatureProfiles: + get: + description: 'Get the list of custom and system-defined IPS profiles for the + organization. + + The system-defined IPS profiles are: + + + * Connectivity Over Security + + * Balanced Security and Connectivity + + * Security Over Connectivity + + * Maximum Detection' + operationId: getIpsProfiles + parameters: + - $ref: '#/components/parameters/ipsProfilesLimit' + - $ref: '#/components/parameters/page' + - $ref: '#/components/parameters/filters' + responses: + '200': + content: + application/json: + schema: + properties: + data: + description: The list of IPS profiles. + items: + $ref: '#/components/schemas/ipsSignatureProfile' + type: array + meta: + $ref: '#/components/schemas/ipsProfilesMeta' + type: object + description: OK + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + Date: + $ref: '#/components/headers/Date' + '400': + $ref: '#/components/responses/badRequest' + '401': + $ref: '#/components/responses/unauthorized' + '403': + $ref: '#/components/responses/forbidden' + '404': + $ref: '#/components/responses/notFound' + '500': + $ref: '#/components/responses/serverError' + security: + - oauthFlow: + - policies.ipsconfig:read + summary: List IPS Profiles + tags: + - IPS Profiles + post: + description: Create a custom IPS profile in the organization. + operationId: createCustomIpsProfile + requestBody: + $ref: '#/components/requestBodies/ipsSignatureProfileCreate' + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ipsSignatureProfile' + description: OK + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + Date: + $ref: '#/components/headers/Date' + '400': + $ref: '#/components/responses/badRequest' + '401': + $ref: '#/components/responses/unauthorized' + '403': + $ref: '#/components/responses/forbidden' + '404': + $ref: '#/components/responses/notFound' + '500': + $ref: '#/components/responses/serverError' + security: + - oauthFlow: + - policies.ipsconfig:write + summary: Create Custom IPS Profile + tags: + - IPS Profiles + /policies/v2/ipsSignatureProfiles/{id}: + delete: + description: Delete the custom IPS profile in the organization. + operationId: deleteCustomIpsProfile + parameters: + - $ref: '#/components/parameters/ipsSignatureProfileId' + responses: + '200': + description: OK + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + Date: + $ref: '#/components/headers/Date' + '400': + $ref: '#/components/responses/badRequest' + '401': + $ref: '#/components/responses/unauthorized' + '403': + $ref: '#/components/responses/forbidden' + '404': + $ref: '#/components/responses/notFound' + '500': + $ref: '#/components/responses/serverError' + security: + - oauthFlow: + - policies.ipsconfig:write + summary: Delete Custom IPS Profile + tags: + - IPS Profiles + get: + description: Get the IPS profile in the organization. + operationId: getIpsProfile + parameters: + - $ref: '#/components/parameters/ipsSignatureProfileId' + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ipsSignatureProfile' + description: OK + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + Date: + $ref: '#/components/headers/Date' + '400': + $ref: '#/components/responses/badRequest' + '401': + $ref: '#/components/responses/unauthorized' + '403': + $ref: '#/components/responses/forbidden' + '404': + $ref: '#/components/responses/notFound' + '500': + $ref: '#/components/responses/serverError' + security: + - oauthFlow: + - policies.ipsconfig:read + summary: Get IPS Profile + tags: + - IPS Profiles + patch: + description: Update the IPS profile in the organization. + operationId: updateIpsProfile + parameters: + - $ref: '#/components/parameters/ipsSignatureProfileId' + requestBody: + $ref: '#/components/requestBodies/patchOperations' + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ipsSignatureProfile' + description: OK + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + Date: + $ref: '#/components/headers/Date' + '400': + $ref: '#/components/responses/badRequest' + '401': + $ref: '#/components/responses/unauthorized' + '403': + $ref: '#/components/responses/forbidden' + '404': + $ref: '#/components/responses/notFound' + '500': + $ref: '#/components/responses/serverError' + security: + - oauthFlow: + - policies.ipsconfig:write + summary: Update IPS Profile + tags: + - IPS Profiles /policies/v2/ipsSignatureProfiles/{id}/signatures: get: description: Get the IPS signatures associated with the IPS profile. @@ -10234,7 +12719,7 @@ paths: settingName: umbrella.default.traffic settingValue: PRIVATE_NETWORK schema: - $ref: '#/components/schemas/Rule' + $ref: '#/components/schemas/policyRulesRule' description: OK headers: Content-Type: @@ -10306,9 +12791,9 @@ paths: /policies/v2/rules/{ruleId}: delete: description: Delete a rule on the policy for the organization. - operationId: deleteRule + operationId: deleteRulepoliciesrules parameters: - - $ref: '#/components/parameters/ruleId' + - $ref: '#/components/parameters/policyRulesRuleId' responses: '200': description: OK @@ -10337,7 +12822,7 @@ paths: description: Get the details about the rule. operationId: getRule parameters: - - $ref: '#/components/parameters/ruleId' + - $ref: '#/components/parameters/policyRulesRuleId' responses: '200': content: @@ -10373,7 +12858,7 @@ paths: settingName: umbrella.default.traffic settingValue: PRIVATE_NETWORK schema: - $ref: '#/components/schemas/Rule' + $ref: '#/components/schemas/policyRulesRule' description: OK headers: Content-Type: @@ -10400,7 +12885,7 @@ paths: description: Update the properties on the rule. operationId: putRule parameters: - - $ref: '#/components/parameters/ruleId' + - $ref: '#/components/parameters/policyRulesRuleId' requestBody: $ref: '#/components/requestBodies/RuleRequestUpdate' responses: @@ -10438,7 +12923,7 @@ paths: settingName: umbrella.default.traffic settingValue: PRIVATE_NETWORK schema: - $ref: '#/components/schemas/Rule' + $ref: '#/components/schemas/policyRulesRule' description: OK headers: Content-Type: @@ -10502,7 +12987,7 @@ paths: operationId: getSecurityProfile parameters: - $ref: '#/components/parameters/profileId' - - $ref: '#/components/parameters/optionalFields' + - $ref: '#/components/parameters/securityProfilesOptionalFields' responses: '200': content: @@ -10808,7 +13293,7 @@ paths: **Note:** The IP activity report is not available. - **Access Scope:** Reports > Aggregations > Read-Only' + **Access Scope:** Reports > Granular Events > Read-Only' operationId: getActivities parameters: - $ref: '#/components/parameters/fromParam' @@ -10913,6 +13398,8 @@ paths: - meta type: object description: OK + '207': + $ref: '#/components/responses/207ActivityMultiStatus' '400': $ref: '#/components/responses/reporting400Error' '401': @@ -10925,7 +13412,7 @@ paths: $ref: '#/components/responses/reporting500Error' security: - oauthFlow: - - reports.aggregations:read + - reports.granularEvents:read summary: Get Activities (All) tags: - Activity @@ -10934,7 +13421,7 @@ paths: description: 'List all AMP retrospective activity within the timeframe. - **Access Scope:** Reports > Aggregations > Read-Only' + **Access Scope:** Reports > Granular Events > Read-Only' operationId: getActivityAmpRetrospective parameters: - $ref: '#/components/parameters/fromParam' @@ -10983,7 +13470,7 @@ paths: $ref: '#/components/responses/reporting500Error' security: - oauthFlow: - - reports.aggregations:read + - reports.granularEvents:read summary: Get Activity AMP Retrospective tags: - Activity @@ -10992,7 +13479,7 @@ paths: description: 'List all decryption entries within the timeframe. - **Access Scope:** Reports > Aggregations > Read-Only' + **Access Scope:** Reports > Granular Events > Read-Only' operationId: getActivityDecryption parameters: - $ref: '#/components/parameters/fromParam' @@ -11060,7 +13547,7 @@ paths: $ref: '#/components/responses/reporting500Error' security: - oauthFlow: - - reports.aggregations:read + - reports.granularEvents:read summary: Get Activity Decryption tags: - Activity @@ -11069,7 +13556,7 @@ paths: description: 'List all DNS entries within the timeframe. - **Access Scope:** Reports > Aggregations > Read-Only' + **Access Scope:** Reports > Granular Events > Read-Only' operationId: getActivityDns parameters: - $ref: '#/components/parameters/fromParam' @@ -11167,7 +13654,7 @@ paths: $ref: '#/components/responses/reporting500Error' security: - oauthFlow: - - reports.aggregations:read + - reports.granularEvents:read summary: Get Activity DNS tags: - Activity @@ -11176,7 +13663,7 @@ paths: description: 'List all firewall activity within the timeframe. - **Access Scope:** Reports > Aggregations > Read-Only' + **Access Scope:** Reports > Granular Events > Read-Only' operationId: getActivityFirewall parameters: - $ref: '#/components/parameters/fromParam' @@ -11260,7 +13747,7 @@ paths: $ref: '#/components/responses/reporting500Error' security: - oauthFlow: - - reports.aggregations:read + - reports.granularEvents:read summary: Get Activity Firewall tags: - Activity @@ -11270,7 +13757,7 @@ paths: timeframe. - **Access Scope:** Reports > Aggregations > Read-Only' + **Access Scope:** Reports > Granular Events > Read-Only' operationId: getActivityIntrusion parameters: - $ref: '#/components/parameters/fromParam' @@ -11354,7 +13841,7 @@ paths: $ref: '#/components/responses/reporting500Error' security: - oauthFlow: - - reports.aggregations:read + - reports.granularEvents:read summary: Get Activity Intrusion tags: - Activity @@ -11363,7 +13850,7 @@ paths: description: '(Deprecated) List all IP activity within the timeframe. - **Access Scope:** Reports > Aggregations > Read-Only' + **Access Scope:** Reports > Granular Events > Read-Only' operationId: getActivityIP parameters: - $ref: '#/components/parameters/fromParam' @@ -11407,7 +13894,7 @@ paths: $ref: '#/components/responses/reporting500Error' security: - oauthFlow: - - reports.aggregations:read + - reports.granularEvents:read summary: Get Activity IP tags: - Activity @@ -11416,7 +13903,7 @@ paths: description: 'List all proxy entries within the timeframe. - **Access Scope:** Reports > Aggregations > Read-Only' + **Access Scope:** Reports > Granular Events > Read-Only' operationId: getActivityProxy parameters: - $ref: '#/components/parameters/fromParam' @@ -11553,7 +14040,7 @@ paths: $ref: '#/components/responses/reporting500Error' security: - oauthFlow: - - reports.aggregations:read + - reports.granularEvents:read summary: Get Activity Proxy tags: - Activity @@ -11562,7 +14049,7 @@ paths: description: 'List all Zero Trust Network Access (ZTNA) entries within the timeframe. - **Access Scope:** Reports > Aggregations > Read-Only' + **Access Scope:** Reports > Granular Events > Read-Only' operationId: getActivityZTNA parameters: - $ref: '#/components/parameters/fromParam' @@ -11645,7 +14132,7 @@ paths: $ref: '#/components/responses/reporting500Error' security: - oauthFlow: - - reports.aggregations:read + - reports.granularEvents:read summary: Get Activity ZTNA tags: - Activity @@ -12021,8 +14508,8 @@ paths: description: List all application categories. operationId: getApplicationCategoriesreportsappdiscoveryapplicationcategories parameters: - - $ref: '#/components/parameters/limit' - - $ref: '#/components/parameters/offset' + - $ref: '#/components/parameters/appDiscoveryLimit' + - $ref: '#/components/parameters/appDiscoveryOffset' responses: '200': content: @@ -12065,8 +14552,8 @@ paths: - $ref: '#/components/parameters/subcategory_content_types' - $ref: '#/components/parameters/appTypes' - $ref: '#/components/parameters/date' - - $ref: '#/components/parameters/limit' - - $ref: '#/components/parameters/offset' + - $ref: '#/components/parameters/appDiscoveryLimit' + - $ref: '#/components/parameters/appDiscoveryOffset' - $ref: '#/components/parameters/applicationsSort' - $ref: '#/components/parameters/order' - $ref: '#/components/parameters/label_timestamp' @@ -12328,8 +14815,8 @@ paths: parameters: - $ref: '#/components/parameters/applicationId' - $ref: '#/components/parameters/date' - - $ref: '#/components/parameters/limit' - - $ref: '#/components/parameters/offset' + - $ref: '#/components/parameters/appDiscoveryLimit' + - $ref: '#/components/parameters/appDiscoveryOffset' - $ref: '#/components/parameters/identitiesSort' - $ref: '#/components/parameters/order' responses: @@ -12432,8 +14919,8 @@ paths: - $ref: '#/components/parameters/subcategory_content_types' - $ref: '#/components/parameters/appTypes' - $ref: '#/components/parameters/date' - - $ref: '#/components/parameters/limit' - - $ref: '#/components/parameters/offset' + - $ref: '#/components/parameters/appDiscoveryLimit' + - $ref: '#/components/parameters/appDiscoveryOffset' - $ref: '#/components/parameters/applicationsInfoSort' - $ref: '#/components/parameters/order' - $ref: '#/components/parameters/label_timestamp' @@ -12500,8 +14987,8 @@ paths: operationId: getProtocols parameters: - $ref: '#/components/parameters/identity' - - $ref: '#/components/parameters/limit' - - $ref: '#/components/parameters/offset' + - $ref: '#/components/parameters/appDiscoveryLimit' + - $ref: '#/components/parameters/appDiscoveryOffset' - $ref: '#/components/parameters/protocolsSort' - $ref: '#/components/parameters/order' responses: @@ -12583,8 +15070,8 @@ paths: parameters: - $ref: '#/components/parameters/protocolId' - $ref: '#/components/parameters/date' - - $ref: '#/components/parameters/limit' - - $ref: '#/components/parameters/offset' + - $ref: '#/components/parameters/appDiscoveryLimit' + - $ref: '#/components/parameters/appDiscoveryOffset' - $ref: '#/components/parameters/identitiesSort' - $ref: '#/components/parameters/order' responses: @@ -12680,7 +15167,7 @@ paths: proxy data. - **Access Scope:** Reports > Granular Events > Read-Only' + **Access Scope:** Reports > Aggregations > Read-Only' operationId: getBandwidthByHour parameters: - $ref: '#/components/parameters/fromParam' @@ -12741,7 +15228,7 @@ paths: $ref: '#/components/responses/reporting500Error' security: - oauthFlow: - - reports.granularEvents:read + - reports.aggregations:read summary: Get Bandwidth by Hour (All) tags: - Bandwidth by Hour @@ -12751,7 +15238,7 @@ paths: proxy data. - **Access Scope:** Reports > Granular Events > Read-Only' + **Access Scope:** Reports > Aggregations > Read-Only' operationId: getBandwidthByTimerange parameters: - $ref: '#/components/parameters/fromParam' @@ -12813,7 +15300,7 @@ paths: $ref: '#/components/responses/reporting500Error' security: - oauthFlow: - - reports.granularEvents:read + - reports.aggregations:read summary: Get Bandwidth by Timerange (All) tags: - Bandwidth by Timerange @@ -12877,7 +15364,7 @@ paths: description: 'List the activity volume within the timeframe by type of category. - **Access Scope:** Reports > Granular Events > Read-Only' + **Access Scope:** Reports > Aggregations > Read-Only' operationId: getRequestsByHourAndCategory parameters: - $ref: '#/components/parameters/fromParam' @@ -12945,7 +15432,7 @@ paths: $ref: '#/components/responses/reporting500Error' security: - oauthFlow: - - reports.granularEvents:read + - reports.aggregations:read summary: Get Requests by Hour and Category (All) tags: - Organization Requests by Hour and Category @@ -12954,7 +15441,7 @@ paths: description: 'List the activity volume for the type of category within the timeframe. - **Access Scope:** Reports > Granular Events > Read-Only' + **Access Scope:** Reports > Aggregations > Read-Only' operationId: getRequestsByHourAndCategoryAndType parameters: - $ref: '#/components/parameters/typeDnsWebIpParam' @@ -13023,7 +15510,7 @@ paths: $ref: '#/components/responses/reporting500Error' security: - oauthFlow: - - reports.granularEvents:read + - reports.aggregations:read summary: Get Requests by Hour and Category tags: - Organization Requests by Hour and Category @@ -13032,7 +15519,7 @@ paths: description: 'List the activity volume within the timeframe by category. - **Access Scope:** Reports > Granular Events > Read-Only' + **Access Scope:** Reports > Aggregations > Read-Only' operationId: getRequestsByTimerangeAndCategory parameters: - $ref: '#/components/parameters/fromParam' @@ -13100,7 +15587,7 @@ paths: $ref: '#/components/responses/reporting500Error' security: - oauthFlow: - - reports.granularEvents:read + - reports.aggregations:read summary: Get Requests by Timerange and Category (All) tags: - Organization Requests by Timerange and Category @@ -13109,7 +15596,7 @@ paths: description: 'List the activity volume within the timeframe by category. - **Access Scope:** Reports > Granular Events > Read-Only' + **Access Scope:** Reports > Aggregations > Read-Only' operationId: getRequestsByTimerangeAndCategoryType parameters: - $ref: '#/components/parameters/typeDnsWebIpParam' @@ -13178,7 +15665,7 @@ paths: $ref: '#/components/responses/reporting500Error' security: - oauthFlow: - - reports.granularEvents:read + - reports.aggregations:read summary: Get Requests by Timerange and Category tags: - Organization Requests by Timerange and Category @@ -13187,7 +15674,7 @@ paths: description: 'List the deployment status within the timeframe. - **Access Scope:** Reports > Granular Events > Read-Only' + **Access Scope:** Reports > Aggregations > Read-Only' operationId: getDeploymentStatus parameters: - $ref: '#/components/parameters/fromParam' @@ -13235,7 +15722,7 @@ paths: $ref: '#/components/responses/reporting500Error' security: - oauthFlow: - - reports.granularEvents:read + - reports.aggregations:read summary: Get Deployment Status tags: - Deployment Status @@ -13269,7 +15756,7 @@ paths: properties: data: items: - $ref: '#/components/schemas/Identity' + $ref: '#/components/schemas/reportingIdentity' type: array meta: $ref: '#/components/schemas/reportingMeta' @@ -13339,7 +15826,7 @@ paths: properties: data: items: - $ref: '#/components/schemas/Identity' + $ref: '#/components/schemas/reportingIdentity' type: array meta: $ref: '#/components/schemas/reportingMeta' @@ -13390,7 +15877,7 @@ paths: schema: properties: data: - $ref: '#/components/schemas/Identity' + $ref: '#/components/schemas/reportingIdentity' meta: $ref: '#/components/schemas/reportingMeta' required: @@ -13572,6 +16059,87 @@ paths: summary: Get Identity Distribution By Type tags: - Identity Distribution + /reports/v2/networkTunnelLogs: + get: + description: 'List the events for the network tunnels deployed in the organization. + + + **Access Scope:** Reports > Granular Events > Read-Only' + operationId: getTunnelEvents + parameters: + - $ref: '#/components/parameters/fromParam' + - $ref: '#/components/parameters/toParam' + - $ref: '#/components/parameters/reportingLimitParam' + - $ref: '#/components/parameters/reportingOffsetParam' + - $ref: '#/components/parameters/orderParam' + - $ref: '#/components/parameters/timezoneParam' + - $ref: '#/components/parameters/servicenameParam' + - $ref: '#/components/parameters/networkTunnelLevelParam' + - $ref: '#/components/parameters/networktunnelgrouplabelParam' + - $ref: '#/components/parameters/datacenteripParam' + - $ref: '#/components/parameters/messageParam' + - $ref: '#/components/parameters/regionParam' + - $ref: '#/components/parameters/searchtextParam' + responses: + '200': + content: + application/json: + example: + data: + - bgpPeerIp: 192.168.1.1 + datacenter: AWS-US-WEST-2 + datacenterIp: 10.0.0.1, 10.0.0.2 + deviceType: ROUTER + hubId: hub789 + hubIsPrimary: 'true' + ikeAuthId: a123456 + ikeCustomerAddress: 203.0.113.1 + ikeCustomerPort: 4500 + ikeSpi: spi456 + level: INFO + message: BGP session established with peer 192.168.1.1 + networkTunnelGroupId: 789 + networkTunnelGroupLabel: network tunnel group one + originId: 101 + originType: 1 + region: us-west-2 + serviceName: BGP + timestamp: 1726502400.0 + tunnelId: 456 + umbrellaOrgId: 123456 + meta: {} + schema: + description: The properties of the events for the network tunnels + deployed in the organization. + properties: + data: + description: The list of events for the network tunnels. + items: + $ref: '#/components/schemas/NetworkTunnelEvent' + type: array + meta: + $ref: '#/components/schemas/reportingMeta' + required: + - data + - meta + type: object + description: OK + '400': + $ref: '#/components/responses/reporting400Error' + '401': + $ref: '#/components/responses/reporting401Error' + '403': + $ref: '#/components/responses/reporting403Error' + '404': + $ref: '#/components/responses/reporting404Error' + '500': + $ref: '#/components/responses/reporting500Error' + security: + - oauthFlow: + - reports.granularEvents:read + summary: Get Network Tunnel Logs + tags: + - Network Tunnels /reports/v2/private-resources/detailed-stats-identities: get: description: 'Get detailed identity access statistics for a private resource, @@ -13722,7 +16290,7 @@ paths: description: 'List the events logged by remote access VPN. - **Access Scope:** Reports > Granular Events > Read-Only' + **Access Scope:** Reports > Aggregations > Read-Only' operationId: getRemoteAccessEvents parameters: - $ref: '#/components/parameters/fromParam' @@ -13788,7 +16356,7 @@ paths: $ref: '#/components/responses/reporting500Error' security: - oauthFlow: - - reports.granularEvents:read + - reports.aggregations:read summary: Get Remote Access Events tags: - Remote Access @@ -13937,7 +16505,7 @@ paths: description: 'List the activity volume within the timeframe. - **Access Scope:** Reports > Granular Events > Read-Only' + **Access Scope:** Reports > Aggregations > Read-Only' operationId: getRequestsByHour parameters: - $ref: '#/components/parameters/fromParam' @@ -14006,7 +16574,7 @@ paths: $ref: '#/components/responses/reporting500Error' security: - oauthFlow: - - reports.granularEvents:read + - reports.aggregations:read summary: Get Requests by Hour (All) tags: - Organization Requests by Hour @@ -14015,7 +16583,7 @@ paths: description: 'List the activity volume within the timeframe. - **Access Scope:** Reports > Granular Events > Read-Only' + **Access Scope:** Reports > Aggregations > Read-Only' operationId: getOrganizationRequestsByHour parameters: - $ref: '#/components/parameters/typeAllParam' @@ -14085,7 +16653,7 @@ paths: $ref: '#/components/responses/reporting500Error' security: - oauthFlow: - - reports.granularEvents:read + - reports.aggregations:read summary: Get Requests by Hour tags: - Organization Requests by Hour @@ -14094,7 +16662,7 @@ paths: description: 'List the activity volume within the timeframe. - **Access Scope:** Reports > Granular Events > Read-Only' + **Access Scope:** Reports > Aggregations > Read-Only' operationId: getRequestsByTimerange parameters: - $ref: '#/components/parameters/fromParam' @@ -14166,7 +16734,7 @@ paths: $ref: '#/components/responses/reporting500Error' security: - oauthFlow: - - reports.granularEvents:read + - reports.aggregations:read summary: Get Requests by Timerange (All) tags: - Organization Requests by Timerange @@ -14175,7 +16743,7 @@ paths: description: 'List the activity volume within the timeframe. - **Access Scope:** Reports > Granular Events > Read-Only' + **Access Scope:** Reports > Aggregations > Read-Only' operationId: getRequestsByTimerangeType parameters: - $ref: '#/components/parameters/typeAllParam' @@ -14245,7 +16813,7 @@ paths: $ref: '#/components/responses/reporting500Error' security: - oauthFlow: - - reports.granularEvents:read + - reports.aggregations:read summary: Get Requests by Timerange tags: - Organization Requests by Timerange @@ -16552,6 +19120,8 @@ paths: - meta type: object description: OK + '207': + $ref: '#/components/responses/207TotalRequestsMultiStatus' '400': $ref: '#/components/responses/reporting400Error' '401': @@ -16741,6 +19311,476 @@ paths: tags: - Usage Metrics components: + examples: + BuiltInDataIdentifierExample: + summary: Example Response + value: + creationTime: 1681696840.0 + description: A built-in data identifier. + id: 123e4567-e89b-12d3-a456-426614174001 + lowSpecificity: 'false' + modificationTime: 1681696840.0 + name: Built-In Identifier + BuiltInDataIdentifierListExample: + summary: Example Response + value: + - id: 123e4567-e89b-12d3-a456-426614174001 + name: Built-In Identifier + - id: 223e4567-e89b-12d3-a456-426614174002 + name: Another Built-In Identifier + CustomDataIdentifierCreateRequestExample: + summary: Example Request + value: + description: An example custom data identifier + name: Custom Identifier Example + patterns: + - \b[A-Z]{2}\d{6}\b + proximity: + - test + - example + - sample + terms: + - confidential + - proprietary + threshold: 5 + CustomDataIdentifierExample: + summary: Example Response + value: + creationTime: 1681696840.0 + description: A custom data identifier for internal use. + id: b93d5005-9080-4d44-9955-02bfd2bec7a0 + modificationTime: 1681696840.0 + name: Custom Identifier + patterns: + - '%hi%' + proximity: + - '34' + - Hello + terms: + - Hello + - Hike + threshold: 1 + CustomDataIdentifierListExample: + summary: Example Response + value: + - id: b93d5005-9080-4d44-9955-02bfd2bec7a0 + name: Custom Identifier + - id: c93d5005-9080-4d44-9955-02bfd2bec7a1 + name: Another Custom Identifier + CustomDataIdentifierUpdateRequestExample: + summary: Example Request + value: + description: An updated example custom data identifier + name: Updated Custom Identifier Example + patterns: + - \b[A-Z]{3}\d{5}\b + proximity: + - updated + - proximity + terms: + - updated + - terms + threshold: 10 + DLPRuleCreateRequestExample: + summary: Example Request + value: + action: BLOCK + applications: + - id: 2 + trafficDirection: RESPONSE + - id: 1 + trafficDirection: REQUEST + classifications: + - b1c2d3e4-f5a6-7890-bcde-fa2345678901 + - a1b2c3d4-e5f6-7890-abcd-ef1234567890 + description: A custom DLP rule for sensitive data. + enabled: 'true' + identities: + - details: '{"id":10,"name":"demo proxy"}' + originId: 654117780.0 + originTypeId: 1 + - details: '{"id":9,"name":"roaming"}' + originId: 0 + originTypeId: 9 + mipTags: + - Confidential + - InternalUseOnly + name: Custom DLP Rule + scannableContexts: + - CONTENT + severity: ALERT + type: INLINE + DLPRuleExample: + summary: Example Response + value: + action: MONITOR + applications: + - id: 1 + trafficDirection: REQUEST + classifications: + - id: a1b2c3d4-e5f6-7890-abcd-ef1234567890 + name: Built-in Privacy Data Classification (US) + description: A default DLP rule for data protection. + enabled: 'true' + id: d1e2f3a4-b5c6-7890-abcd-ef1234567890 + identities: + - details: '{"id":9,"name":"roaming"}' + originId: 0 + originTypeId: 9 + mipTags: [] + name: Default DLP Rule + scannableContexts: + - CONTENT + secureIcapEnabled: 'true' + severity: ALERT + type: INLINE + DLPRuleListExample: + summary: Example Response + value: + - id: d1e2f3a4-b5c6-7890-abcd-ef1234567890 + name: Default DLP Rule + - id: e1f2a3b4-c5d6-7890-bcde-fa2345678901 + name: Custom DLP Rule + DLPRulePatchRequestExample: + summary: Example Request + value: + action: MONITOR + applications: + - id: 2 + trafficDirection: RESPONSE + classifications: + - b1c2d3e4-f5a6-7890-bcde-fa2345678901 + description: An updated custom DLP rule for sensitive data. + enabled: 'false' + identities: + - details: '{"id":10,"name":"demo proxy"}' + originId: 654117780.0 + originTypeId: 1 + mipTags: + - Confidential + name: Updated Custom DLP Rule + scannableContexts: + - FILENAME + DataClassificationCreateRequestExample: + summary: Example Request + value: + classifierEvaluationStrategy: all + dataIdentifiers: + - 223e4567-e89b-12d3-a456-426614174002 + - b93d5005-9080-4d44-9955-02bfd2bec7a0 + description: A custom classification for financial data. + excludedDataIdentifiers: + - 123e4567-e89b-12d3-a456-426614174001 + name: Custom Financial Data Classification + DataClassificationExample: + summary: Example Response + value: + classifierEvaluationStrategy: any + creationTime: 1759400302967.0 + dataIdentifiers: + - 123e4567-e89b-12d3-a456-426614174001 + description: A built-in classification for US privacy data. + excludedDataIdentifiers: [] + id: a1b2c3d4-e5f6-7890-abcd-ef1234567890 + modificationTime: 1759400302967.0 + name: Built-in Privacy Data Classification (US) + type: built-in + DataClassificationListExample: + summary: Example Response + value: + - id: a1b2c3d4-e5f6-7890-abcd-ef1234567890 + name: Built-in Privacy Data Classification (US) + - id: b1c2d3e4-f5a6-7890-bcde-fa2345678901 + name: Custom Financial Data Classification + DataClassificationPatchRequestExample: + summary: Example Request + value: + dataIdentifiers: + - 223e4567-e89b-12d3-a456-426614174002 + description: An updated custom classification for financial data. + excludedDataIdentifiers: [] + isActive: 'false' + name: Updated Financial Data Classification + EDMDataIdentifierCreateRequestExample: + summary: Create EDM Identifier + value: + columns: + - name: Email + primary: 'false' + samples: + - r_t@gmail.com + - r_opop@gmail.com + - ppo_t@gmail.com + typeId: 5cb289dc-2c6a-4999-9e7b-f7f363749c8a + - name: SSN + primary: 'true' + samples: + - '113011111' + - '248257990' + - '363265019' + typeId: be05dc1c-6210-423e-8b4e-f3bdb1d4033e + description: Description 1 + minimumNumberOfMatches: 2 + name: Test EDM for Integration 2122 + EDMDataIdentifierListExample: + summary: Example Response + value: + - id: 123e4567-e89b-12d3-a456-426614174000 + name: Test EDM for Integration 2122 + EDMDataIdentifierResponseExample: + summary: Example Response + value: + columns: + - id: 1b2d1753-99ff-4702-ba5d-522c759104dc + name: SSN + primary: 'true' + samples: + - '113011111' + - '248257990' + - '363265019' + typeId: be05dc1c-6210-423e-8b4e-f3bdb1d4033e + - id: 2922b359-56ef-473b-8635-aeece07a2a7d + name: Email + primary: 'false' + samples: + - r_t@gmail.com + - r_ppp@gmail.com + - r_opop@gmail.com + typeId: 5cb289dc-2c6a-4999-9e7b-f7f363749c8a + creationTime: 1752577698.0 + description: Description 1 + id: 123e4567-e89b-12d3-a456-426614174000 + isActive: 'false' + minimumNumberOfMatches: 2 + modificationTime: 1752577698.0 + name: Test EDM for Integration 2122 + EDMDataIdentifierUpdateRequestExample: + summary: Example Response + value: + columns: + - name: Email + primary: 'false' + samples: + - updated@example.com + - new@example.com + typeId: 5cb289dc-2c6a-4999-9e7b-f7f363749c8a + - name: SSN + primary: 'true' + samples: + - '113011111' + - '248257990' + - '363265019' + typeId: be05dc1c-6210-423e-8b4e-f3bdb1d4033e + EDMTypeListExample: + summary: Example Response + value: + - id: 5cb289dc-2c6a-4999-9e7b-f7f363749c8a + name: Email Address + - id: be05dc1c-6210-423e-8b4e-f3bdb1d4033e + name: Social Security Number + - id: 9e502793-7add-4b5f-ad71-c66ae75336c4 + name: Passport Number + - id: 5567e8cc-9ba8-494f-86a1-eaa95b279681 + name: Credit Card Number + IDMDataIdentifierCreateRequestExample: + summary: Example Request + value: + description: IDM identifier for financial document matching + idmAccuracy: HIGH + name: Financial Documents IDM + IDMDataIdentifierExample: + summary: Example Response + value: + creationTime: 1681696840.0 + description: IDM identifier for financial document matching + id: d2ff7f03-e713-454c-8726-b63859800c5d + idmAccuracy: HIGH + isActive: 'false' + lowSpecificity: 'false' + modificationTime: 1681696840.0 + name: Financial Documents IDM + numberOfIndexedFiles: 1 + uploadedIdmSize: 204800 + IDMDataIdentifierListExample: + summary: Example Response + value: + - id: d2ff7f03-e713-454c-8726-b63859800c5d + name: Financial Documents IDM + - id: e3ff7f03-e713-454c-8726-b63859800c5e + name: HR Documents IDM + IDMDataIdentifierUpdateRequestExample: + summary: Example Request + value: + description: Enhanced IDM identifier for comprehensive financial document + matching + idmAccuracy: HIGH + name: Updated Financial Documents IDM + OOBRuleCreateRequestExample: + summary: Example Request + value: + action: MONITOR + classifications: + - b1c2d3e4-f5a6-7890-bcde-fa2345678901 + enabled: 'true' + incrementalConfig: + exposures: + - exposure: + - type: PUBLIC + platform: office365 + platforms: + - instances: + - applicationLabels: + - onedrive + - sharepoint + id: 123 + name: office365 + name: Sample OOB SaaS Rule + severity: ALERT + OOBRulePatchRequestExample: + summary: Example Request + value: + action: QUARANTINE + enabled: 'true' + name: Updated OOB SaaS Rule + OOBRulePatchResponseExample: + summary: Example Request + value: + action: QUARANTINE + classifications: + - id: b1c2d3e4-f5a6-7890-bcde-fa2345678901 + name: Built-in Privacy Data Classification + enabled: 'true' + id: a82ddc7e-cd7e-4c2a-ab80-76577085fbc9 + incrementalConfig: + exposures: + - exposure: + - type: PUBLIC + platform: office365 + platforms: + - instances: + - applicationLabels: + - onedrive + - sharepoint + id: 123 + name: office365 + name: Updated OOB SaaS Rule + severity: ALERT + OOBRuleResponseExample: + summary: Example Request + value: + action: MONITOR + classifications: + - id: b1c2d3e4-f5a6-7890-bcde-fa2345678901 + name: Built-in Privacy Data Classification + creationTime: 1681696840.0 + enabled: 'true' + id: a82ddc7e-cd7e-4c2a-ab80-76577085fbc9 + incrementalConfig: + exposures: + - exposure: + - type: PUBLIC + platform: office365 + platforms: + - instances: + - applicationLabels: + - onedrive + - sharepoint + id: 123 + name: office365 + modificationTime: 1681696840.0 + name: Sample OOB SaaS Rule + severity: ALERT + alertOnlyResponse: + summary: Full alerts response with list and counts. + value: + access_rule_context: + change_type: create + changes_made: Rule created + redirect_entity_url: https://dashboard.sse.cisco.com/org/8327040/secure/policy?ruleId=2313262 + redirect_entity_url_label: Test Rule + alertId: AL-2048-833125-1764567890123-3f9a1c4b2d7e8f01 + created_at: '2024-01-01T00:00:00Z' + description: Access rule was modified + modified_at: '2024-01-01T00:00:00Z' + name: Policy Change Alert + organization_id: 8327040.0 + rule_id: 48 + rule_type_id: 10 + severity: 1 + status: 1 + countOnly: + summary: Count-only response + value: + total: 100 + fullResponse: + summary: Full alerts response with list and counts. + value: + alerts: + - access_rule_context: + change_type: create + changes_made: Rule created + redirect_entity_url: https://dashboard.sse.cisco.com/org/8327040/secure/policy?ruleId=2313262 + redirect_entity_url_label: Test Rule + alertId: AL-2048-833125-1764567890123-3f9a1c4b2d7e8f01 + created_at: '2024-01-01T00:00:00Z' + description: Access rule was modified + modified_at: '2024-01-01T00:00:00Z' + name: Policy Change Alert + organization_id: 8327040.0 + rule_id: 48 + rule_type_id: 10 + severity: 1 + status: 1 + severityCounts: + High: 30 + Low: 20 + Medium: 50 + total: 100 + fullResponseWithContext: + summary: Full alerts response with include_context=true. + value: + alerts: + - access_rule_context: + change_type: create + changes_made: Rule created + redirect_entity_url: https://dashboard.sse.cisco.com/org/8327040/secure/policy?ruleId=2313262 + redirect_entity_url_label: Test Rule + alertId: AL-2048-833125-1764567890123-3f9a1c4b2d7e8f01 + context: + action: create + redirect_entity_url: https://dashboard.sse.cisco.com/org/8327040/secure/policy?ruleId=2313262 + redirect_entity_url_label: Test Rule + created_at: '2024-01-01T00:00:00Z' + description: Access rule was modified + modified_at: '2024-01-01T00:00:00Z' + name: Policy Change Alert + organization_id: 8327040.0 + rule_id: 48 + rule_type_id: 10 + severity: 1 + status: 1 + - alertId: AL-2048-833125-1764567890124-4g0b2d5c3e8f9g02 + behavior_analytics_context: + redirect_entity_url: https://dashboard.sse.cisco.com/org/8327040/secure/ueba/user/12345 + redirect_entity_url_label: View User + context: + action": update + redirect_entity_url: https://dashboard.sse.cisco.com/org/8327040/secure/ueba/user/12345 + redirect_entity_url_label: View User + created_at: '2024-01-02T10:30:00Z' + description: Anomalous user behavior detected + modified_at: '2024-01-02T10:30:00Z' + name: UEBA Alert + organization_id: 8327040.0 + rule_id: 49 + rule_type_id: 12 + severity: 2 + status: 1 + severityCounts: + High: 30 + Low: 20 + Medium: 50 + total: 100 headers: Content-Type: description: The MIME content type of the response body. @@ -16763,6 +19803,13 @@ components: `next` to the next page.' schema: type: string + alertingDate: + description: The date and time (ISO 8601-formatted timestamp) when the system + returned the response. + example: '2023-03-14T18:34:25Z' + schema: + pattern: ^[0-90-90-90-9-0-90-9-0-90-9T0-90-9:0-90-9:0-90-9Z]+$ + type: string s3BucketDate: description: The date and time (ISO 8601-formatted timestamp) when the system returned the response. @@ -16778,6 +19825,23 @@ components: pattern: ^[0-90-90-90-9-0-90-9-0-90-9T0-90-9:0-90-9:0-90-9Z]+$ type: string parameters: + action: + description: 'The action applied to the content. Supported values are: `blocked`, + `deleted`, `monitored`, `quarantined`, `restored`, `revoked`. + + ' + example: monitored + in: query + name: action + schema: + enum: + - blocked + - deleted + - monitored + - quarantined + - restored + - revoked + type: string agentIdsParam: description: A comma-delimited list of resource connector IDs. example: 31,47 @@ -16786,6 +19850,21 @@ components: required: 'true' schema: type: string + alert_name: + description: Filter for the alerts in the collection by the alert name. + example: Network Tunnel Alert + in: query + name: alert_name + schema: + type: string + alertId: + description: The unique identifier of the alert. + example: AL-2048-833125-1764567890123-3f9a1c4b2d7e8f01 + in: path + name: alertId + required: 'true' + schema: + type: string ampDispositionParam: description: An AMP disposition string or a comma-delimited list of AMP disposition strings. @@ -16836,6 +19915,21 @@ components: type: string type: array style: form + appDiscoveryLimit: + description: The maximum number of items to return in the collection. + in: query + name: limit + schema: + maximum: 100 + minimum: 1 + type: integer + appDiscoveryOffset: + description: The number of items to skip before starting to collect the result + set. + in: query + name: offset + schema: + type: integer appTypes: description: 'Specify the types of application to filter the collection. @@ -16866,6 +19960,16 @@ components: maximum: 100 minimum: 1 type: integer + applicationCategoryId: + description: 'The unique identifier of the application category associated with + the event. + + ' + example: 6789 + in: query + name: applicationCategoryId + schema: + type: integer applicationId: description: The ID of the application. in: path @@ -16981,6 +20085,43 @@ components: name: categories schema: type: string + classificationFields: + description: 'A comma-separated list of fields to include in the response. + + ' + explode: 'false' + in: query + name: fields + schema: + default: + - id + - name + example: + - id + - name + items: + enum: + - id + - name + - type + - description + - classifierEvaluationStrategy + - dataIdentifiers + - excludedDataIdentifiers + - creationTime + - modificationTime + type: string + type: array + style: form + classificationId: + description: The unique identifier of the classification. + in: path + name: classificationId + required: 'true' + schema: + example: abcdef12-3456-4abc-9123-456789abcdef + format: uuid + type: string connectioneventParam: description: Specify the type of connection event. example: connected @@ -17025,6 +20166,20 @@ components: required: 'true' schema: type: integer + created_after: + description: 'Filter for the alerts in the collection that the system created + after the timestamp. + + Provide a date and time (ISO 8601) using the YYYY-MM-DD HH:MM:SS format. + + **Note:** You cannot use the `created_after` query parameter with the `time_range` + filter.' + in: query + name: created_after + schema: + example: '2024-01-01T00:00:00Z' + format: date-time + type: string credentialId: description: The ID of the credentials for the integration. example: 123asfjakljlksdf @@ -17033,6 +20188,111 @@ components: required: 'true' schema: type: string + dataIdentifierFields: + description: 'A comma-separated list of fields to include in the response. + + ' + explode: 'false' + in: query + name: fields + schema: + default: + - id + - name + example: + - id + - name + items: + enum: + - id + - name + - description + - type + - threshold + - proximity + - terms + - patterns + - lowSpecificity + - modificationTime + - creationTime + - idmAccuracy + - numberOfIndexedFiles + - uploadedIdmSize + - documents + type: string + type: array + style: form + dataLossPreventionApplicationId: + description: The unique identifier of the application associated with the event. + example: 1234567.0 + in: query + name: applicationId + schema: + type: integer + dataLossPreventionFrom: + description: 'A timestamp or relative time string (for example: ''-1days''). + Filters for data that appears **after** this time. + + ' + in: query + name: from + required: 'true' + schema: + example: '1639146300000' + type: string + dataLossPreventionLimit: + description: The maximum number of events to return on a page in the response. + example: 25 + in: query + name: limit + schema: + default: 50 + type: integer + dataLossPreventionLimit2: + description: 'The number of records returned by the system in the response. + The maximum number of items that are allowed in the response is 100. + + The default number of items returned in the response is 50.' + example: 20 + in: query + name: limit + schema: + default: 50 + format: int32 + maximum: 100 + minimum: 1 + type: integer + dataLossPreventionOffset: + description: A number that represents an index in the collection. + example: 0 + in: query + name: offset + schema: + default: 0 + type: integer + dataLossPreventionOffset2: + description: 'The numeric offset into the collection used for pagination. Set + the `offset` to skip the number of records from the collection in the response. + The default value is `0`. + + ' + in: query + name: offset + schema: + default: 0 + format: int32 + type: integer + dataLossPreventionSeverity: + description: The severity of the DLP rule that triggered the event. + example: WARNING + in: query + name: severity + schema: + enum: + - INFO + - WARNING + - CRITICAL + type: string dataLossPreventionStateParam: description: 'A string that describes the status of a destination. @@ -17044,6 +20304,24 @@ components: enum: - blocked type: string + dataLossPreventionTo: + description: 'A timestamp or relative time string (for example: ''now''). Filters + for data that appears **before** this time. + + ' + example: '1640010300000' + in: query + name: to + required: 'true' + schema: + type: string + datacenteripParam: + description: A comma-separated list of data center IP addresses. + example: 10.0.0.1,192.168.1.1 + in: query + name: datacenterip + schema: + type: string date: description: 'Specify a date to search for data within a twenty-four hour time period. @@ -17169,6 +20447,22 @@ components: name: domains schema: type: string + eventType: + description: 'The type of the event. Use one of the event types. * For Real-Time + events, use `realTime`. * For SaaS API events, use `saasApi`. * For AI Guardrails + events, use `aiGuardrails`. + + ' + in: path + name: eventType + required: 'true' + schema: + enum: + - realTime + - saasApi + - aiGuardrails + example: realTime + type: string existsParam: description: 'Specify an attribute or comma-separated list of attributes to filter the data. @@ -17184,8 +20478,19 @@ components: name: exists schema: type: string + exposure: + description: The exposure level assigned to the scanned content. + example: INTERNAL + in: query + name: exposure + schema: + enum: + - PUBLIC + - INTERNAL + - EXTERNAL + type: string feedId: - description: The ID of the threat feed. + description: The ID of the security feed. example: 12345 in: path name: feedId @@ -17381,13 +20686,31 @@ components: schema: type: integer id: - description: The ID of the Network Tunnel Group. - example: 123455 + description: The unique identifier of the event. + example: a1764e27-9e48-4dc4-8e93-e315472d42ed in: path name: id required: 'true' schema: - type: integer + type: string + idAiGuardrailsDlpRule: + description: The unique identifier of the AI Guardrails DLP rule. + example: d2ff7f03-e713-454c-8726-b63859800c5d + in: path + name: id + required: 'true' + schema: + format: uuid + type: string + idBuiltInDataIdentifier: + description: The unique ID of the built-in data identifier. + example: d2ff7f03-e713-454c-8726-b63859800c5d + in: path + name: id + required: 'true' + schema: + format: uuid + type: string idConnector: description: The ID of the Connector. example: 123455 @@ -17404,6 +20727,60 @@ components: required: 'true' schema: type: integer + idCustomDataIdentifier: + description: The unique ID of the custom data identifier. + example: d2ff7f03-e713-454c-8726-b63859800c5d + in: path + name: id + required: 'true' + schema: + format: uuid + type: string + idDlpRule: + description: The unique identifier of the DLP rule. + example: a82ddc7e-cd7e-4c2a-ab80-76577085fbc9 + in: path + name: id + required: 'true' + schema: + format: uuid + type: string + idEdm: + description: The unique ID of the Exact Data Match (EDM) data identifier. + example: 123e4567-e89b-12d3-a456-426614174000 + in: path + name: id + required: 'true' + schema: + format: uuid + type: string + idIdm: + description: The unique ID of the Indexed Document Match (IDM) data identifier. + example: d2ff7f03-e713-454c-8726-b63859800c5d + in: path + name: id + required: 'true' + schema: + format: uuid + type: string + idRealTimeDlpRule: + description: The unique identifier of the real-time DLP rule. + example: a82ddc7e-cd7e-4c2a-ab80-76577085fbc9 + in: path + name: id + required: 'true' + schema: + format: uuid + type: string + idSaaSApiDlpRule: + description: The unique identifier of the SaaS API DLP rule. + example: 123e4567-e89b-12d3-a456-426614174000 + in: path + name: id + required: 'true' + schema: + format: uuid + type: string identitiesRegistrationLimit: description: The number of items to return in the page. The default limit is `100`. @@ -17458,6 +20835,16 @@ components: name: identityids schema: type: string + identityType: + description: 'The type of the identity associated with the event, for example: + `directory_user`, `directory_group`, or `network`. + + ' + example: directory_user + in: query + name: identityType + schema: + type: string identityTypesParam: description: An identity type or comma-delimited list of identity types. example: network,roaming @@ -17465,6 +20852,15 @@ components: name: identitytypes schema: type: string + include_context: + description: Include the context field in each alert response. The context contains + additional metadata about the alert. + in: query + name: include_context + schema: + default: 'false' + example: 'true' + type: boolean includeFeaturesParam: description: Specify whether to add the feature sections to the response. The default value is 'false'. @@ -17667,13 +21063,23 @@ components: $ref: '#/components/schemas/Label' type: array style: form + last_created: + description: Filter for the alerts in the collection that the system created + on the specified timestamp. + example: '2024-01-01T00:00:00Z' + in: query + name: last_created_at + schema: + format: date-time + type: string limit: - description: The maximum number of items to return in the collection. + description: The maximum number of items to return from the collection in the + response. + example: 50 in: query name: limit schema: - maximum: 100 - minimum: 1 + default: 100 type: integer limitParam: description: 'The number of items to return in the response from the collection. @@ -17730,6 +21136,13 @@ components: schema: format: int64 type: integer + messageParam: + description: A comma-separated list of event messages. + example: message one,message two + in: query + name: message + schema: + type: string meteringFrom: description: 'The start of the time window to search for records in the collection. @@ -17790,6 +21203,29 @@ components: schema: format: int64 type: integer + modified_at: + description: Filter for the alerts in the collection that the system modified + on the specified timestamp. + example: '2024-01-01T00:00:00Z' + in: query + name: modified_at + schema: + format: date-time + type: string + multiTenantsFilters: + description: Filters that can be applied to the response by the system. + in: query + name: filters + schema: + description: The properties of the tenant. + properties: + organizationId: + description: Filter by the ID of the tenant. + type: integer + organizationName: + description: Filter by the name of the tenant. + type: string + type: object name: description: The name of an object. in: query @@ -17797,6 +21233,86 @@ components: schema: default: '' type: string + nameAiGuardrailsDlpRules: + description: The name of the AI Guardrails DLP rule. The value of `name` is + case insensitive and the system allows partial matches. + example: name ai guardrails dlp rules + in: query + name: name + schema: + type: string + nameBuiltInDataIdentifier: + description: The name of the built-in data identifier. The value of `name` is + case insensitive and the system allows partial matches. + example: name built-in data identifier + in: query + name: name + schema: + type: string + nameBuiltinClassifications: + description: The name of the built-in classification. The value of `name` is + case insensitive and the system allows partial matches. + in: query + name: name + schema: + example: built-in + type: string + nameCustomClassifications: + description: The name of the custom classification. The value of `name` is case + insensitive and the system allows partial matches. + in: query + name: name + schema: + example: custom + type: string + nameCustomDataIdentifiers: + description: The name of the custom data identifier. The value of `name` is + case insensitive and the system allows partial matches. + example: name custom identifiers + in: query + name: name + schema: + type: string + nameEdm: + description: The name of the Exact Data Match (EDM) data identifier. The value + of `name` is case insensitive and the system allows partial matches. + example: name edm + in: query + name: name + schema: + type: string + nameEdmTypes: + description: The name of the type for the Exact Data Match (EDM) data identifier. + The value of `name` is case insensitive and the system allows partial matches. + example: name edm type + in: query + name: name + schema: + type: string + nameIdm: + description: The name of the Indexed Document Match (IDM) data identifier. The + value of `name` is case insensitive and the system allows partial matches. + example: name idm + in: query + name: name + schema: + type: string + nameRealTimeDlpRules: + description: The name of the real-time DLP rule. The value of `name` is case + insensitive and the system allows partial matches. + example: name real time dlp rules + in: query + name: name + schema: + type: string + nameSaasAPIDlpRules: + description: The name of the SaaS API DLP rule. The value of `name` is case + insensitive and the system allows partial matches. + example: name saas api dlp rules + in: query + name: name + schema: + type: string networkDeviceOriginIdParam: description: The origin ID of the network device. in: path @@ -17851,6 +21367,14 @@ components: schema: default: 0 type: integer + networkTunnelGroupsId: + description: The ID of the Network Tunnel Group. + example: 123455 + in: path + name: id + required: 'true' + schema: + type: integer networkTunnelGroupsLimit: description: 'An integer that represents the number of records to return in the response. @@ -17877,6 +21401,22 @@ components: schema: default: 0 type: integer + networkTunnelLevelParam: + description: A comma-separated list of log levels used to filter the collection + of network tunnel logs. + example: INFO,WARNING + in: query + name: networkTunnelLevel + schema: + type: string + networktunnelgrouplabelParam: + description: A comma-separated list of network tunnel group labels used to filter + the collection. + example: vpn-two,tunnel one + in: query + name: networktunnelgrouplabel + schema: + type: string noType: description: The type of the Network Object. in: query @@ -17896,11 +21436,14 @@ components: example: 192.168.1.2 type: string offset: - description: The number of items to skip before starting to collect the result - set. + description: The place to start reading in the collection. The default offset + is 0. + example: 0 in: query name: offset schema: + default: 0 + format: int64 type: integer offsetParam: description: A number that represents an index in the collection. By default, @@ -17919,14 +21462,22 @@ components: required: 'true' schema: type: number + only_active_alerts_count: + description: Query for the count of the active alerts only. + example: 'false' + in: query + name: only_active_alerts_count + schema: + default: 'false' + type: boolean optionalFields: - description: "A JSON array of optional fields to include in the response. \n\ - For example:\n```\n[%22categorySetting%22,%22domainlists%22,%22fileInspectionSetting%22,%22identityCount%22,%22policySetting%22,%22securitySetting%22,%22settingGroupBypassInspectionGroup%22]\n\ - ```" + description: Optional fields to request additional data along with regular response. in: query name: optionalFields schema: + description: The list of labels for the fields to filter the query. items: + description: The label for a field to filter the query. type: string type: array order: @@ -18020,6 +21571,14 @@ components: name: paths schema: type: string + pattern_search: + description: Provide a search pattern to query for by the alert name, rule name, + or rule category name. + example: Network Tunnel + in: query + name: pattern_search + schema: + type: string peer_id: description: The ID of the peer (tunnel). example: 123455 @@ -18096,6 +21655,14 @@ components: schema: default: 0 type: integer + policyRulesRuleId: + description: The ID of the access rule. + example: 2456 + in: path + name: ruleId + required: 'true' + schema: + type: integer portsParam: description: A port number or comma-delimited list of port numbers. example: 7351,80 @@ -18224,6 +21791,14 @@ components: name: region schema: type: string + regionParam: + description: A comma-separated list of AWS or Azure regions where the system + deployed the network tunnel groups. + example: us-west-2,eu-central-1 + in: query + name: region + schema: + type: string reportingLimitParam: description: The maximum number of records to return from the collection. example: 100 @@ -18418,9 +21993,41 @@ components: format: int32 minimum: 1 type: integer + ruleFields: + description: 'A comma-separated list of fields to include in the response. + + ' + explode: 'false' + in: query + name: fields + schema: + default: + - id + - name + example: + - id + - name + items: + enum: + - id + - name + - description + - enabled + - action + - severity + - type + - secureIcapEnabled + - identities + - applications + - classifications + - scannableContexts + - mipTags + type: string + type: array + style: form ruleId: - description: The ID of the access rule. - example: 2456 + description: The unique identifier of the alert rule. + example: 42 in: path name: ruleId required: 'true' @@ -18449,6 +22056,18 @@ components: name: ruleName schema: type: string + ruleType: + description: The type of the DLP rule, either `saasApi`, `realTime`, or `aiGuardrails`. + example: realTime + in: path + name: ruleType + required: 'true' + schema: + enum: + - saasApi + - realTime + - aiGuardrails + type: string searchParam: description: 'A string that represents a search parameter. @@ -18458,6 +22077,13 @@ components: name: search schema: type: string + searchtextParam: + description: A comma-separated list of text used to search the collection. + example: vpn,tunnel + in: query + name: searchtext + schema: + type: string securityOverriddenParam: description: Specify whether to filter on requests that override security. example: 'true' @@ -18477,6 +22103,16 @@ components: maximum: 100 minimum: 1 type: integer + securityProfilesOptionalFields: + description: "A JSON array of optional fields to include in the response. \n\ + For example:\n```\n[%22categorySetting%22,%22domainlists%22,%22fileInspectionSetting%22,%22identityCount%22,%22policySetting%22,%22securitySetting%22,%22settingGroupBypassInspectionGroup%22]\n\ + ```" + in: query + name: optionalFields + schema: + items: + type: string + type: array serviceObjectGroupId: description: The ID of the Service Object Group. example: 123456 @@ -18493,6 +22129,13 @@ components: required: 'true' schema: type: integer + servicenameParam: + description: A comma-separated list of service type used to filter the collection. + example: BGP,IKE + in: query + name: servicename + schema: + type: string settingName: description: The name of the global setting on the policy. example: sse.decryption.logPrivate @@ -18501,6 +22144,18 @@ components: required: 'true' schema: type: string + severity: + description: Filter for the alerts by severity (1=High, 2=Medium, 3=Low ,4=Info). + example: 1 + in: query + name: severity + schema: + enum: + - 1 + - 2 + - 3 + - 4 + type: integer sha256Param: description: A SHA-256 hash. example: ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad @@ -18570,6 +22225,28 @@ components: name: value schema: type: string + sort: + description: The properties to sort the collection. + in: query + name: sort + schema: + description: The properties to use when sorting the collection. + properties: + order[organizationId]: + description: The order to use when sorting the ID of the tenants. + enum: + - asc + - desc + example: desc + type: string + order[organizationName]: + description: The order to use when sorting the name of the tenants. + enum: + - asc + - desc + example: asc + type: string + type: object sortBy: description: Specify the field the system will use to sort the items from the collection in the response. @@ -18742,17 +22419,25 @@ components: schema: type: string status: - description: Filter for the integrations by the status. - example: active + description: 'Filter by the status of the alert. + + - 1 (Active) + + - 2 (Dismissed) + + - 3 (Resolved) + + - 4 (Archived)' + example: 1 in: query name: status schema: - description: The status of the integrations. enum: - - created - - active - - inactive - type: string + - 1 + - 2 + - 3 + - 4 + type: integer statusCodes: description: Sort the collection using a list of comma-separated HTTP status codes. @@ -18819,6 +22504,17 @@ components: maximum: 100 minimum: 1 type: integer + tenantIds: + description: A comma-separated list of IDs for the tenant organizations. + explode: 'true' + in: query + name: organizationIds + required: 'true' + schema: + example: 1234567,2345678,3123456,4234567 + pattern: ^\d+(,\d+)*$ + type: string + style: form thirdPartyIntegrationsLimit: description: The maximum number of items returned in the response counting from the offset. @@ -18844,6 +22540,18 @@ components: format: int64 minimum: 0 type: integer + thirdPartyIntegrationsStatus: + description: Filter for the integrations by the status. + example: active + in: query + name: status + schema: + description: The status of the integrations. + enum: + - created + - active + - inactive + type: string thirdPartyIntegrationsType: description: The integrations listed by the type. example: chrome-enterprise.v1 @@ -18901,6 +22609,18 @@ components: - WEEK - MONTH type: string + time_range: + description: 'Filter for the alerts in the collection that occur in the time + range. + + Provide a start_time and end_time using the YYYY-MM-DD HH:MM:SS format. + + **Note:** You cannot use the `time_range` query parameter with the `created_after` + filter.' + in: query + name: time_range + schema: + $ref: '#/components/schemas/time_range' timerangeParam: description: 'A string that represents a range of time. @@ -19154,6 +22874,24 @@ components: name: verdict schema: type: string + virtualApplianceId: + description: The origin ID (originId) of the virtual appliance. + example: 135678 + in: path + name: virtualApplianceId + required: 'true' + schema: + type: integer + virtualAppliancesPaginationLimitParam: + description: The number of records in the collection to return on the page. + in: query + name: limit + schema: + default: 100 + format: int32 + maximum: 100 + minimum: 1 + type: integer vpnUserConnectionsLimit: description: The number of items to return on the page. The default limit is 100. @@ -19264,6 +23002,54 @@ components: description: A JSON object containing application information for bulk label update. required: 'true' + CreateOrUpdateAlertRuleRequestBody: + content: + application/json: + example: + conditions: + match_type: all + rows: + - field: tunnelGroupName + value: test2 + - field: region + value: US West-2 + description: Alert when SFO-02 Hub is down + name: SFO-02 Hub down + notification_info: + - recipients: + - admin@example.com + type: email + rule_type_id: 1 + severity: 1 + status: 1 + schema: + description: The properties of the alert rule used by the system to create + or update an alert rule. + properties: + conditions: + $ref: '#/components/schemas/conditionsAlertRule' + description: + $ref: '#/components/schemas/descriptionAlertRule' + name: + $ref: '#/components/schemas/nameAlertRule' + notification_info: + description: The list of notifications for the alert rule. + items: + $ref: '#/components/schemas/notificationInfoAlertRule' + type: array + rule_type_id: + $ref: '#/components/schemas/ruleTypeId' + severity: + $ref: '#/components/schemas/severityAlert' + status: + $ref: '#/components/schemas/statusAlertRule' + required: + - name + - severity + - status + - rule_type_id + type: object + required: 'true' CsvObjects: content: multipart/form-data: @@ -19295,6 +23081,35 @@ components: $ref: '#/components/schemas/DNSForwarderObjectUpdate' description: Update the DNS Forwarder. required: 'true' + DeleteAlertRuleRequestBody: + content: + application/json: + schema: + description: The properties of the alert rules used by the system to delete + the alert rules. + example: + ruleIds: + - 48 + - 49 + - 50 + properties: + ruleIds: + description: The list of rule IDs used by the system to delete the + alert rules. + example: + - 48 + - 49 + - 50 + items: + description: The numeric ID of the alert rule used by the system + to delete the alert rule. + type: integer + maxItems: 100 + type: array + required: + - ruleIds + type: object + required: 'true' InternalNetworkRequestBody: content: application/json: @@ -19451,7 +23266,7 @@ components: ruleIsEnabled: $ref: '#/components/schemas/ruleIsEnabled' ruleName: - $ref: '#/components/schemas/ruleName' + $ref: '#/components/schemas/policyRulesRuleName' rulePriority: $ref: '#/components/schemas/rulePriority' ruleSettings: @@ -19494,7 +23309,7 @@ components: ruleIsEnabled: $ref: '#/components/schemas/ruleIsEnabled' ruleName: - $ref: '#/components/schemas/ruleName' + $ref: '#/components/schemas/policyRulesRuleName' rulePriority: $ref: '#/components/schemas/rulePriority' ruleSettings: @@ -19547,27 +23362,39 @@ components: **Note:** If you set the `protocol` to `icmp`, the value of the `ports` field is not read.' + TestNotificationsEmailRequestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/TestNotification' + required: 'true' UpdateIdentities: content: application/json: - example: - - authName: auth_device_one - key: 123e4567-e89b-12d3-a456-426614174001 - label: Device one - status: active - - authName: auth_device_two - domainName: test.example.com - guidHash: 11223-asd-213-zaas123-basmomc - key: 123e4567-e89b-12d3-a456-426614174002 - label: Device two - samAccountName: sam account name - status: inactive + examples: + example-devices: + summary: Example of the list of identity devices. + value: + - authName: auth_device_one + key: 123e4567-e89b-12d3-a456-426614174001 + label: Device one + status: active + example-sgts: + summary: Example of the Security Group Tags. + value: + - key: 123e4567-e89b-12d3-a456-426614174001 + label: Device one + status: active + tagId: 1.2345671234564266e+16 schema: - description: The list of the properties for the identity endpoints or - security group tags. + description: The list of the properties for the identity devices or security + group tags. items: + description: 'Provide an identity device for the list of identity devices. + + Provide a security group tag for the list of security group tags.' oneOf: - - $ref: '#/components/schemas/UpdateIdentityEndpoints' + - $ref: '#/components/schemas/UpdateIdentityDevices' - $ref: '#/components/schemas/UpdateSecurityGroupTags' maxItems: 250 type: array @@ -19606,7 +23433,7 @@ components: - 591713 - 591710 items: - $ref: '#/components/schemas/ruleId' + $ref: '#/components/schemas/policyRulesRuleId' type: array required: - ruleIds @@ -19616,6 +23443,42 @@ components: on these rules. **Note:** You can not update the `ruleIsEnabled` property on the default rules.' + UpdateStatusAlertRuleRequestBody: + content: + application/json: + schema: + description: The properties of the alert rules used by the system to update + the alert rules. + properties: + entity_ids: + description: The list of rule IDs used by the system to update the + alert rules. + example: + - 1 + - 2 + - 3 + - 4 + items: + description: The numeric ID of the alert rule used by the system + to update the alert rule. + type: integer + maxItems: 100 + minItems: 1 + type: array + status: + description: 'The numeric identifier for the status of the alert rule. + + Use `1` for enable the alert rule or `2` to disable the alert rule.' + enum: + - 1 + - 2 + example: 1 + type: integer + required: + - status + - entity_ids + type: object + required: 'true' VpnSessionsUpdate: content: application/json: @@ -19624,7 +23487,7 @@ components: schema: properties: action: - $ref: '#/components/schemas/action' + $ref: '#/components/schemas/vpnUserConnectionsAction' profileName: $ref: '#/components/schemas/profileName' region: @@ -19651,7 +23514,7 @@ components: schema: properties: action: - $ref: '#/components/schemas/action' + $ref: '#/components/schemas/vpnUserConnectionsAction' data: anyOf: - $ref: '#/components/schemas/usernames' @@ -19671,14 +23534,14 @@ components: application/json: schema: $ref: '#/components/schemas/feedCreate' - description: The request body used to create the threat feed. + description: The request body used to create the security feed. required: 'true' feedPatchRequestBody: content: application/json: schema: $ref: '#/components/schemas/feedPatch' - description: The request body used to update the threat feed. + description: The request body used to update the security feed. required: 'true' internalDomain: content: @@ -19845,7 +23708,10 @@ components: value: us-west-2 - op: replace path: /routing - value: ' { "type": "bgp", "data": { "asNumber": "1234" } } ' + value: + data: + asNumber: '1234' + type: bgp items: description: The properties of the Network Tunnel Group. properties: @@ -19932,6 +23798,203 @@ components: type: array description: The properties used to update the IPS profile. responses: + 207ActivityMultiStatus: + content: + application/json: + schema: + properties: + data: + description: 'The system returns the data for successful queries only. + + If the system fails to get the data for a specific activity type, + the system does not include this data in the response.' + example: + - allapplications: + - category: + id: 1 + label: category + id: 1 + label: label + type: NBAR + allowedapplications: + - category: + id: 1 + label: category + id: 1 + label: label + type: NBAR + blockedapplications: [] + categories: + - id: 66 + integration: 'true' + label: Malware + type: security + date: '2019-01-24' + domain: google.com + externalip: 52.8.160.247 + identities: + - deleted: true + id: 1 + label: Catch Rate Testing System + type: + id: 21 + label: Sites + type: site + internalip: 52.8.160.247 + policycategories: + - id: 66 + integration: 'true' + label: Malware + type: security + querytype: MX + returncode: 2 + threats: + - label: Wannacry + type: Ransomware + time: 06:31:46 + timestamp: 1731002169000.0 + type: dns + verdict: allowed + items: + anyOf: + - $ref: '#/components/schemas/ActivityDns' + - $ref: '#/components/schemas/ActivityFirewall' + - $ref: '#/components/schemas/ActivityIntrusion' + - $ref: '#/components/schemas/ActivityProxy' + - $ref: '#/components/schemas/ActivityZTNA' + - $ref: '#/components/schemas/ActivityDecryption' + type: array + meta: + description: The properties of the metadata. + properties: + failed: + description: The list of the type of activities that failed. + example: + - swa + items: + description: The type of the activity that failed. + example: swa + type: string + type: array + successful: + description: The list of the type of activities that succeeded. + example: + - proxy + - dns + - firewall + - ip + - intrusion + - ztna + items: + description: The type of the activity that succeeded. + example: proxy + type: string + type: array + type: object + required: + - data + - meta + title: 207ActivityMultiStatus + type: object + description: Multi-Status + 207PartialResponse: + content: + application/json: + example: + errorIds: + - AL-2048-833125-1764567890123-3f9a1c4b2d7e8f21 + success: 'false' + successfulIds: + - AL-2048-833125-1764567890123-3f9a1c4b2d7e8f01 + - AL-2048-833125-1764567890123-3f9a1c4b2d7e8f20 + schema: + description: The properties of the operation. + properties: + errorIds: + description: The identifiers that the system was unable to take an + action on or do not exist. + example: + - AL-2048-833125-1764567890123-3f9a1c4b2d7e8f01 + items: + description: The identifier that the system was unable to take an + action on or does not exist. + type: string + type: array + success: + description: Specifies whether the operation was successful. False + indicates a partial success. + example: 'false' + type: boolean + successfulIds: + description: The identifiers that the system updated successfully. + example: + - AL-2048-833125-1764567890123-3f9a1c4b2d7e8f01 + - AL-2048-833125-1764567890123-3f9a1c4b2d7e8f20 + items: + description: The identifier that the system updated successfully. + type: string + type: array + title: 207PartialResponse + type: object + description: Multi-Status + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + Date: + $ref: '#/components/headers/alertingDate' + 207TotalRequestsMultiStatus: + content: + application/json: + schema: + properties: + data: + description: The system returns the total count for successful queries + only. + example: + count: 10 + properties: + count: + description: 'The total count of the activities recorded by the + system for the organization. + + If the system fails to get the count for a specific activity + type, the system does not include this count in the total count.' + example: 10 + type: integer + type: object + meta: + description: The properties of the metadata. + properties: + failed: + description: The list of the type of activities that failed. + example: + - dns + items: + description: The type of the activity that failed. + example: dns + type: string + type: array + successful: + description: The list of the type of activities that succeeded. + example: + - proxy + - swa + - firewall + - ip + - intrusion + - ztna + items: + description: The type of the activity that succeeded. + example: proxy + type: string + type: array + type: object + required: + - data + - meta + title: 207TotalRequestsMultiStatus + type: object + description: Multi-Status 400BulkStatesError: content: application/json: @@ -20188,13 +24251,17 @@ components: $ref: '#/components/headers/Date' 409Error: content: - resource/json: + application/json: schema: properties: error: description: Error message explaining the reason for failure. - example: Connector Group name must be unique. + example: A rule with this name already exists for this organization type: string + status: + description: The HTTP status code returned in the response. + example: 409 + type: integer title: 409Error type: object description: Conflict @@ -20202,7 +24269,53 @@ components: Content-Type: $ref: '#/components/headers/Content-Type' Date: - $ref: '#/components/headers/Date' + $ref: '#/components/headers/alertingDate' + 422Error: + content: + application/json: + example: + error: Bad Request, Maximum 50 email recipients allowed per rule, found + 100 + schema: + properties: + error: + example: Bad Request, Maximum 50 email recipients allowed per rule, + found 100 + type: string + status: + description: The HTTP status code returned in the response. + example: 422 + type: integer + title: 422Error + type: object + description: Unprocessable Entity (Too many email recipients or webhooks in + notification_info) + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + Date: + $ref: '#/components/headers/alertingDate' + 429Error: + content: + application/json: + schema: + properties: + error: + description: Error message explaining the reason for failure. + example: Rate limit exceeded + type: string + status: + description: The HTTP status code returned in the response. + example: 404 + type: integer + title: 429Error + type: object + description: Too Many Requests + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + Date: + $ref: '#/components/headers/alertingDate' 500Error: content: application/json: @@ -20227,6 +24340,17 @@ components: $ref: '#/components/headers/Content-Type' Date: $ref: '#/components/headers/Date' + BadRequestError: + content: + application/json: + schema: + $ref: '#/components/schemas/ApiErrorResponse' + description: Bad Request + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + Date: + $ref: '#/components/headers/Date' CollectionReferenceResponse: content: application/json: @@ -20288,6 +24412,28 @@ components: schema: $ref: '#/components/schemas/Error' description: Forbidden + ForbiddenError: + content: + application/json: + schema: + $ref: '#/components/schemas/ApiErrorResponse' + description: Forbidden + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + Date: + $ref: '#/components/headers/Date' + InternalServerError: + content: + application/json: + schema: + $ref: '#/components/schemas/ApiErrorResponse' + description: Internal Server Error + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + Date: + $ref: '#/components/headers/Date' InvalidRequest: content: application/json: @@ -20509,6 +24655,17 @@ components: schema: $ref: '#/components/schemas/Error' description: Not found + NotFoundError: + content: + application/json: + schema: + $ref: '#/components/schemas/ApiErrorResponse' + description: Not Found + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + Date: + $ref: '#/components/headers/Date' ObjectReferenceResponse: content: application/json: @@ -20571,6 +24728,17 @@ components: schema: $ref: '#/components/schemas/Error' description: Unauthorized request + UnauthorizedError: + content: + application/json: + schema: + $ref: '#/components/schemas/ApiErrorResponse' + description: Unauthorized + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + Date: + $ref: '#/components/headers/Date' UploadResponse: content: application/json: @@ -20673,6 +24841,111 @@ components: $ref: '#/components/headers/Content-Type' Date: $ref: '#/components/headers/Date' + alerting400Error: + content: + application/json: + schema: + properties: + error: + description: Bad Request + example: Not found IAM key info for org 12355. + type: string + status: + description: The HTTP status code returned in the response. + example: 400 + type: integer + title: alerting400Error + type: object + description: Bad Request + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + Date: + $ref: '#/components/headers/alertingDate' + alerting401Error: + content: + application/json: + schema: + properties: + error: + description: Unauthorized + example: Authorization token is invalid. + type: string + status: + description: The HTTP status code returned in the response. + example: 401 + type: integer + title: alerting401Error + type: object + description: Unauthorized + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + Date: + $ref: '#/components/headers/alertingDate' + alerting403Error: + content: + application/json: + schema: + properties: + error: + description: Error message explaining the reason for failure. + example: Forbidden + type: string + status: + description: The HTTP status code returned in the response. + example: 403 + type: integer + title: alerting403Error + type: object + description: Forbidden + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + Date: + $ref: '#/components/headers/alertingDate' + alerting404Error: + content: + application/json: + schema: + properties: + error: + description: Error message explaining the reason for failure. + example: Not Found + type: string + status: + description: The HTTP status code returned in the response. + example: 404 + type: integer + title: alerting404Error + type: object + description: Not Found + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + Date: + $ref: '#/components/headers/alertingDate' + alerting500Error: + content: + application/json: + schema: + properties: + error: + description: Error message explaining the reason for failure. + example: Internal Server Error + type: string + status: + description: The HTTP status code returned in the response. + example: 500 + type: integer + title: alerting500Error + type: object + description: Internal Server Error + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + Date: + $ref: '#/components/headers/alertingDate' alreadyExistsError: content: application/json: @@ -21256,6 +25529,66 @@ components: title: metering500Error type: object description: Server error + multiTenants400Error: + content: + application/json: + schema: + example: + message: Bad Request + properties: + message: + type: string + title: multiTenants400Error + type: object + description: Bad Request + multiTenants401Error: + content: + application/json: + schema: + example: + message: Unauthorized + properties: + message: + type: string + title: multiTenants401Error + type: object + description: Unauthorized + multiTenants403Error: + content: + application/json: + schema: + example: + message: Forbidden + properties: + message: + type: string + title: multiTenants403Error + type: object + description: Forbidden + multiTenants404Error: + content: + application/json: + schema: + example: + message: Not Found + properties: + message: + type: string + title: multiTenants404Error + type: object + description: Not Found + multiTenants500Error: + content: + application/json: + schema: + example: + message: Internal Server error + properties: + message: + type: string + title: multiTenants500Error + type: object + description: Internal Server Error network400Error: content: application/json: @@ -21793,6 +26126,23 @@ components: $ref: '#/components/headers/Content-Type' Date: $ref: '#/components/headers/Date' + resourceConnectorGroups409Error: + content: + resource/json: + schema: + properties: + error: + description: Error message explaining the reason for failure. + example: Connector Group name must be unique. + type: string + title: resourceConnectorGroups409Error + type: object + description: Conflict + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + Date: + $ref: '#/components/headers/Date' resourceConnectorGroups500Error: content: application/json: @@ -22015,6 +26365,61 @@ components: $ref: '#/components/headers/Content-Type' Date: $ref: '#/components/headers/s3BucketDate' + securityFeedsForbidden: + content: + application/json: + schema: + $ref: '#/components/schemas/securityFeedsForbiddenError' + description: Forbidden + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + Date: + $ref: '#/components/headers/Date' + securityFeedsInvalidRequest: + content: + application/json: + schema: + $ref: '#/components/schemas/securityFeedsBadRequestError' + description: Bad Request + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + Date: + $ref: '#/components/headers/Date' + securityFeedsNotFound: + content: + application/json: + schema: + $ref: '#/components/schemas/securityFeedsNotFoundError' + description: Not Found + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + Date: + $ref: '#/components/headers/Date' + securityFeedsServerError: + content: + application/json: + schema: + $ref: '#/components/schemas/securityFeedsServerError' + description: Internal Server Error + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + Date: + $ref: '#/components/headers/Date' + securityFeedsUnauthorized: + content: + application/json: + schema: + $ref: '#/components/schemas/securityFeedsUnauthorizedError' + description: Unauthorized + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + Date: + $ref: '#/components/headers/Date' serverError: content: application/json: @@ -22181,61 +26586,6 @@ components: $ref: '#/components/headers/Content-Type' Date: $ref: '#/components/headers/thirdPartyIntegrationsDate' - threatIntelligenceFeedsForbidden: - content: - application/json: - schema: - $ref: '#/components/schemas/threatIntelligenceFeedsForbiddenError' - description: Forbidden - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - Date: - $ref: '#/components/headers/Date' - threatIntelligenceFeedsInvalidRequest: - content: - application/json: - schema: - $ref: '#/components/schemas/threatIntelligenceFeedsBadRequestError' - description: Bad Request - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - Date: - $ref: '#/components/headers/Date' - threatIntelligenceFeedsNotFound: - content: - application/json: - schema: - $ref: '#/components/schemas/threatIntelligenceFeedsNotFoundError' - description: Not Found - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - Date: - $ref: '#/components/headers/Date' - threatIntelligenceFeedsServerError: - content: - application/json: - schema: - $ref: '#/components/schemas/threatIntelligenceFeedsServerError' - description: Internal Server Error - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - Date: - $ref: '#/components/headers/Date' - threatIntelligenceFeedsUnauthorized: - content: - application/json: - schema: - $ref: '#/components/schemas/threatIntelligenceFeedsUnauthorizedError' - description: Unauthorized - headers: - Content-Type: - $ref: '#/components/headers/Content-Type' - Date: - $ref: '#/components/headers/Date' tokenAuthorization400Error: content: application/json: @@ -22374,6 +26724,30 @@ components: $ref: '#/components/headers/Content-Type' Date: $ref: '#/components/headers/Date' + virtualAppliances500Error: + content: + application/json: + schema: + properties: + error: + description: A brief description of the error + example: Internal error + type: string + message: + description: Detailed error message + type: string + statusCode: + description: HTTP status code + example: 500 + type: integer + title: virtualAppliances500Error + type: object + description: Internal Server Error + headers: + Content-Type: + $ref: '#/components/headers/Content-Type' + Date: + $ref: '#/components/headers/Date' zeroTrustUserDevicesUnauthorizedError: content: application/json: @@ -22519,14 +26893,12 @@ components: properties: latitude: description: Indicates the problem with latitude. - example: 39.0299604 - format: double - type: number + example: Filter value is not valid. + type: string longitude: description: Indicates the problem with longitude. - example: -77.4771231 - format: double - type: number + example: Filter value is missing. + type: string peerIP: description: Indicates the problem with the peer IP in query param. example: Filter value must be a public IPv4. @@ -22827,17 +27199,17 @@ components: allapplications: description: The list of all applications for the entry. items: - $ref: '#/components/schemas/Application' + $ref: '#/components/schemas/reportingApplication' type: array allowedapplications: description: The list of allowed applications. items: - $ref: '#/components/schemas/Application' + $ref: '#/components/schemas/reportingApplication' type: array blockedapplications: description: The list of blocked applications. items: - $ref: '#/components/schemas/Application' + $ref: '#/components/schemas/reportingApplication' type: array categories: $ref: '#/components/schemas/categories' @@ -23005,68 +27377,6 @@ components: - type - verdict type: object - ActivityIP: - example: - categories: - - id: 66 - integration: 'true' - label: Malware - type: security - date: 02-15-2022 - destinationip: 52.8.160.247 - destinationport: 0 - identities: - - deleted: false - id: 1 - label: Catch Rate Testing System - type: - id: 21 - label: Sites - type: site - sourceip: 192.168.0.1 - sourceport: 0 - time: '10:15' - timestamp: 1548311506000.0 - type: ip - verdict: allowed - properties: - categories: - $ref: '#/components/schemas/categories' - date: - $ref: '#/components/schemas/Date' - destinationip: - $ref: '#/components/schemas/DestinationIp' - destinationport: - $ref: '#/components/schemas/DestinationPort' - identities: - $ref: '#/components/schemas/identities' - sourceip: - $ref: '#/components/schemas/SourceIp' - sourceport: - $ref: '#/components/schemas/SourcePort' - time: - $ref: '#/components/schemas/Time' - timestamp: - $ref: '#/components/schemas/Timestamp' - type: - description: The type of the request. An IP request always has type `ip`. - example: ip - type: string - verdict: - $ref: '#/components/schemas/verdict' - required: - - categories - - date - - destinationip - - destinationport - - identities - - sourceip - - sourceport - - time - - timestamp - - type - - verdict - type: object ActivityIntrusion: description: The information about the intrusion activity. example: @@ -23118,7 +27428,7 @@ components: sessionid: $ref: '#/components/schemas/SessionId' severity: - $ref: '#/components/schemas/Severity' + $ref: '#/components/schemas/reportingSeverity' signature: $ref: '#/components/schemas/Signature' signaturelist: @@ -23238,7 +27548,7 @@ components: allowedapplications: description: The list of allowed applications for the entry. items: - $ref: '#/components/schemas/Application' + $ref: '#/components/schemas/reportingApplication' type: array amp: $ref: '#/components/schemas/CiscoAMP' @@ -23247,7 +27557,7 @@ components: blockedapplications: description: The list of blocked applications for the entry. items: - $ref: '#/components/schemas/Application' + $ref: '#/components/schemas/reportingApplication' type: array blockedfiletype: description: The blocked file type for the entry. @@ -23532,6 +27842,99 @@ components: - verdict - policy type: object + AiGuardrailsDlpRuleEvent: + description: The properties of the AI Guardrails DLP rule event. + properties: + action: + $ref: '#/components/schemas/action' + application: + $ref: '#/components/schemas/application' + applicationCategory: + $ref: '#/components/schemas/dataLossPreventionApplicationCategory' + contentType: + $ref: '#/components/schemas/contentType' + destinationUrl: + $ref: '#/components/schemas/destinationUrl' + detected: + $ref: '#/components/schemas/detected' + direction: + $ref: '#/components/schemas/direction' + eventId: + $ref: '#/components/schemas/eventId' + fileName: + $ref: '#/components/schemas/fileNameAIGuardrails' + identity: + $ref: '#/components/schemas/identity' + rule: + $ref: '#/components/schemas/rule' + severity: + $ref: '#/components/schemas/severity' + sha256Hash: + $ref: '#/components/schemas/sha256Hash' + totalSizeInBytes: + $ref: '#/components/schemas/totalSizeInBytes' + type: object + Alert: + description: The properties of the alert. + properties: + access_rule_context: + $ref: '#/components/schemas/access_rule_context' + alertId: + $ref: '#/components/schemas/idAlert' + behavior_analytics_context: + $ref: '#/components/schemas/behavior_analytics_context' + created_at: + $ref: '#/components/schemas/createdAtAlert' + description: + $ref: '#/components/schemas/descriptionAlert' + modified_at: + $ref: '#/components/schemas/modifiedAtAlert' + name: + $ref: '#/components/schemas/nameAlert' + organization_id: + $ref: '#/components/schemas/organizationId' + rule_id: + $ref: '#/components/schemas/idRule' + rule_type_id: + $ref: '#/components/schemas/ruleTypeId' + severity: + $ref: '#/components/schemas/severityAlert' + status: + $ref: '#/components/schemas/statusAlert' + type: object + AlertRule: + description: The properties of the alert rule. + properties: + conditions: + $ref: '#/components/schemas/conditionsAlertRule' + created_at: + $ref: '#/components/schemas/createdAtAlertRule' + description: + $ref: '#/components/schemas/descriptionAlertRule' + id: + $ref: '#/components/schemas/idAlertRule' + modified_at: + $ref: '#/components/schemas/modifiedAtAlertRule' + name: + $ref: '#/components/schemas/nameAlertRule' + notification_info: + description: List of notification configurations for this rule + items: + $ref: '#/components/schemas/notificationInfoAlertRule' + type: array + organization_id: + $ref: '#/components/schemas/organizationId' + rule_type_id: + $ref: '#/components/schemas/ruleTypeId' + severity: + $ref: '#/components/schemas/severityAlert' + status: + $ref: '#/components/schemas/statusAlertRule' + type: object + AlertWithAdditionalContext: + allOf: + - $ref: '#/components/schemas/Alert' + - $ref: '#/components/schemas/context' AntivirusThreats: description: The information about the antivirus threats. properties: @@ -23555,6 +27958,23 @@ components: - puas - viruses type: object + ApiErrorResponse: + description: The standard error response format. + properties: + error: + description: Error description + example: Something went wrong + type: string + statusCode: + description: HTTP status code + example: 400 + type: integer + txId: + description: Unique transaction ID for tracing the request + example: a82ddc7e-cd7e-4c2a-ab80-76577085fbc9 + type: string + title: NotFoundError + type: object AppConnectorAgentDetailedStatsTimerange: description: The detailed statistics for the connector IDs in a specific time range. @@ -23618,40 +28038,6 @@ components: - iaas example: saas type: string - Application: - description: The information about the application. - example: - category: - id: 2 - label: Education - id: 1 - label: malware - type: AVC - properties: - category: - description: The category of the application. - properties: - id: - description: The ID of the application category. - type: number - label: - description: The label of the application category. - type: string - type: object - id: - description: The ID of the application. - type: number - label: - description: The descriptive label for the application. - type: string - type: - description: 'The type of the application: NBAR or AVC.' - enum: - - NBAR - - AVC - example: AVC - type: string - type: object ApplicationAttribute: description: The application attribute information. example: @@ -24392,7 +28778,7 @@ components: applications: description: The list of applications. items: - $ref: '#/components/schemas/Application' + $ref: '#/components/schemas/reportingApplication' type: array categories: description: The list of application categories. @@ -24489,6 +28875,38 @@ components: title: type: string type: object + BuiltInDataIdentifier: + description: The properties of the built-in data identifier. + properties: + creationTime: + $ref: '#/components/schemas/creationTimeBuiltInDataIdentifier' + description: + description: A brief description of the data identifier. + type: string + id: + description: Unique identifier of the data identifier. + format: uuid + type: string + lowSpecificity: + description: Indicates whether the identifier has low specificity. + type: boolean + modificationTime: + $ref: '#/components/schemas/modificationTimeBuiltInDataIdentifier' + name: + description: Name of the data identifier. + type: string + type: object + BuiltInDataIdentifierListItem: + description: The properties of the built-in data identifier. + properties: + id: + description: Unique identifier of the data identifier. + format: uuid + type: string + name: + description: Name of the data identifier. + type: string + type: object BulkLabelApplications: description: The properties of multiple apps that are updated at the same time. example: @@ -24654,6 +29072,14 @@ components: unknown. example: trojan-activity type: string + ClassifierEvaluationStrategy: + description: The strategy for evaluating the classifiers. + enum: + - all + - any + example: all + format: enum + type: string Connection: description: The properties of the connection. properties: @@ -24726,7 +29152,6 @@ components: type: webhook.v1 webhookConfig: headers: - Authorization: Bearer token123 Content-Type: application/json queryParams: source: integration-service @@ -24738,10 +29163,12 @@ components: $ref: '#/components/schemas/JamfConfigInput' name: $ref: '#/components/schemas/integrationName' + securityEventsConfig: + $ref: '#/components/schemas/SecurityEventsConfigInput' tags: $ref: '#/components/schemas/integrationTags' type: - $ref: '#/components/schemas/integrationType' + $ref: '#/components/schemas/thirdPartyIntegrationsIntegrationType' webhookConfig: $ref: '#/components/schemas/WebhookConfigInput' required: @@ -24751,13 +29178,14 @@ components: CreateOutputBody: description: The link and ID of the created integration. example: - href: https://api.sse.cisco.com/admin/v2/integrations/12345 - id: 12323jk1j23 + href: https://api.sse.cisco.com/admin/v2/integrations/12345a + id: 12345a properties: href: $ref: '#/components/schemas/integrationHref' id: description: The unique identifier of the created integration. + example: 12345a type: string required: - href @@ -24812,6 +29240,311 @@ components: format: binary type: string type: object + CustomDataIdentifier: + description: The properties of the custom data identifier. + properties: + creationTime: + $ref: '#/components/schemas/creationTimeCustomIdentifier' + description: + $ref: '#/components/schemas/descriptionCustomIdentifier' + id: + description: The unique ID of the custom data identifier. + format: uuid + type: string + modificationTime: + $ref: '#/components/schemas/modificationTimeCustomIdentifier' + name: + $ref: '#/components/schemas/nameCustomIdentifier' + patterns: + $ref: '#/components/schemas/patternsCustomIdentifier' + proximity: + $ref: '#/components/schemas/proximityCustomIdentifier' + terms: + $ref: '#/components/schemas/termsCustomIdentifier' + threshold: + $ref: '#/components/schemas/thresholdCustomIdentifier' + required: + - id + - name + - description + - threshold + - terms + - patterns + - proximity + - creationTime + - modificationTime + type: object + CustomDataIdentifierCreateRequest: + description: The properties used to create a custom data identifier. + properties: + creationTime: + $ref: '#/components/schemas/creationTimeCustomIdentifier' + description: + $ref: '#/components/schemas/descriptionCustomIdentifier' + modificationTime: + $ref: '#/components/schemas/modificationTimeCustomIdentifier' + name: + $ref: '#/components/schemas/nameCustomIdentifier' + patterns: + $ref: '#/components/schemas/patternsCustomIdentifier' + proximity: + $ref: '#/components/schemas/proximityCustomIdentifier' + terms: + $ref: '#/components/schemas/termsCustomIdentifier' + threshold: + $ref: '#/components/schemas/thresholdCustomIdentifier' + required: + - name + - threshold + type: object + CustomDataIdentifierListItem: + description: The properties of the custom data identifier. + properties: + id: + description: The unique ID of the custom data identifier. + format: uuid + type: string + name: + $ref: '#/components/schemas/nameCustomIdentifier' + type: object + CustomDataIdentifierUpdateRequest: + description: 'The properties used to update a custom data identifier. + + The system requires that you set at least one field of the custom data identifier + in the request body.' + properties: + creationTime: + $ref: '#/components/schemas/creationTimeCustomIdentifier' + description: + $ref: '#/components/schemas/descriptionCustomIdentifier' + modificationTime: + $ref: '#/components/schemas/modificationTimeCustomIdentifier' + name: + $ref: '#/components/schemas/nameCustomIdentifier' + patterns: + $ref: '#/components/schemas/patternsCustomIdentifier' + proximity: + $ref: '#/components/schemas/proximityCustomIdentifier' + terms: + $ref: '#/components/schemas/termsCustomIdentifier' + threshold: + $ref: '#/components/schemas/thresholdCustomIdentifier' + type: object + DLPRule: + description: The properties of a DLP rule. + properties: + action: + $ref: '#/components/schemas/dataLossPreventionAction' + applications: + description: 'List of applications associated with the rule. This field + is only included if `includeDetails` contains `applications`. + + ' + items: + $ref: '#/components/schemas/dataLossPreventionApplication' + type: array + classifications: + $ref: '#/components/schemas/DLPRuleClassifications' + description: + $ref: '#/components/schemas/descriptionDlpRule' + enabled: + $ref: '#/components/schemas/dataLossPreventionEnabled' + id: + $ref: '#/components/schemas/idDlpRule' + identities: + description: 'List of identities associated with the rule. This field is + only included if `includeDetails` contains `identities`. + + ' + items: + $ref: '#/components/schemas/dataLossPreventionIdentity' + type: array + name: + $ref: '#/components/schemas/nameDlpRule' + secureIcapEnabled: + description: Indicates whether Secure ICAP is enabled. + example: 'true' + type: boolean + severity: + $ref: '#/components/schemas/dataLossPreventionSeverity2' + type: object + DLPRuleClassifications: + description: "The list of data classifications associated with the rule. \n\ + This field is only included if `includeDetails` contains `classifications`." + items: + $ref: '#/components/schemas/IdNameRef' + type: array + DLPRuleCreateRequest: + description: The properties used to create a DLP rule. + properties: + action: + $ref: '#/components/schemas/dataLossPreventionAction' + allDestinationsScope: + $ref: '#/components/schemas/allDestinationsScope' + applicationCategories: + $ref: '#/components/schemas/dataLossPreventionApplicationCategories' + applicationCategoryIds: + $ref: '#/components/schemas/dataLossPreventionApplicationCategoryIds' + applicationIds: + $ref: '#/components/schemas/dataLossPreventionApplicationIds' + applications: + $ref: '#/components/schemas/applications' + classifications: + $ref: '#/components/schemas/classificationsCreate' + description: + $ref: '#/components/schemas/descriptionDlpRule' + destinationListIds: + $ref: '#/components/schemas/destinationListIds' + destinations: + $ref: '#/components/schemas/dataLossPreventionDestination' + enabled: + $ref: '#/components/schemas/dataLossPreventionEnabled' + excludedDestinationListIds: + $ref: '#/components/schemas/excludedDestinationListIds' + excludedIdentities: + $ref: '#/components/schemas/excludedIdentities' + excludedPrivateResourceGroups: + $ref: '#/components/schemas/excludedPrivateResourceGroups' + excludedPrivateResources: + $ref: '#/components/schemas/excludedPrivateResources' + fileSizeFrom: + $ref: '#/components/schemas/fileSizeFrom' + fileSizeTo: + $ref: '#/components/schemas/fileSizeTo' + identities: + $ref: '#/components/schemas/dataLossPreventionIdentities' + mipTags: + $ref: '#/components/schemas/mipTags' + name: + $ref: '#/components/schemas/nameDlpRule' + notifyActor: + $ref: '#/components/schemas/notifyActor' + notifyOwner: + $ref: '#/components/schemas/notifyOwner' + privateResourceGroups: + $ref: '#/components/schemas/privateResourceGroups' + privateResources: + $ref: '#/components/schemas/privateResources' + scannableContexts: + $ref: '#/components/schemas/scannableContexts' + severity: + $ref: '#/components/schemas/dataLossPreventionSeverity2' + type: + $ref: '#/components/schemas/RuleType' + required: + - name + - action + - type + type: object + DLPRuleEventByType: + description: The properties of the event including the associated DLP rule and + classifications. + properties: + action: + $ref: '#/components/schemas/action' + application: + $ref: '#/components/schemas/application' + applicationCategory: + $ref: '#/components/schemas/dataLossPreventionApplicationCategory' + contentType: + $ref: '#/components/schemas/contentType' + destinationUrl: + $ref: '#/components/schemas/destinationUrl' + detected: + $ref: '#/components/schemas/detected' + direction: + $ref: '#/components/schemas/direction' + fileLabels: + $ref: '#/components/schemas/fileLabels' + fileName: + $ref: '#/components/schemas/fileName' + identity: + $ref: '#/components/schemas/identity' + privateResource: + $ref: '#/components/schemas/privateResource' + privateResourceGroup: + $ref: '#/components/schemas/privateResourceGroup' + rule: + description: The properties of the DLP rule associated with the event. + properties: + classifications: + $ref: '#/components/schemas/classifications' + id: + $ref: '#/components/schemas/ruleId' + name: + $ref: '#/components/schemas/ruleName' + type: object + severity: + $ref: '#/components/schemas/severity' + sha256Hash: + $ref: '#/components/schemas/sha256Hash' + totalSizeInBytes: + $ref: '#/components/schemas/totalSizeInBytes' + type: object + DLPRuleListItem: + description: The properties of a DLP rule. + properties: + id: + $ref: '#/components/schemas/idDlpRule' + name: + $ref: '#/components/schemas/nameDlpRule' + type: object + DLPRulePatchRequest: + description: The properties used to update the DLP rule. + properties: + action: + $ref: '#/components/schemas/dataLossPreventionAction2' + allDestinationsScope: + $ref: '#/components/schemas/allDestinationsScope' + applicationCategories: + $ref: '#/components/schemas/dataLossPreventionApplicationCategories' + applicationCategoryIds: + $ref: '#/components/schemas/dataLossPreventionApplicationCategoryIds' + applicationIds: + $ref: '#/components/schemas/dataLossPreventionApplicationIds' + applications: + $ref: '#/components/schemas/applications' + classifications: + $ref: '#/components/schemas/classificationsCreate' + description: + $ref: '#/components/schemas/descriptionDlpRule' + destinationListIds: + $ref: '#/components/schemas/destinationListIds' + destinations: + $ref: '#/components/schemas/dataLossPreventionDestination' + enabled: + $ref: '#/components/schemas/dataLossPreventionEnabled' + excludedDestinationListIds: + $ref: '#/components/schemas/excludedDestinationListIds' + excludedIdentities: + $ref: '#/components/schemas/excludedIdentities' + excludedPrivateResourceGroups: + $ref: '#/components/schemas/excludedPrivateResourceGroups' + excludedPrivateResources: + $ref: '#/components/schemas/excludedPrivateResources' + fileSizeFrom: + $ref: '#/components/schemas/fileSizeFrom' + fileSizeTo: + $ref: '#/components/schemas/fileSizeTo' + identities: + $ref: '#/components/schemas/dataLossPreventionIdentities' + mipTags: + $ref: '#/components/schemas/mipTags' + name: + $ref: '#/components/schemas/nameDlpRule' + notifyActor: + $ref: '#/components/schemas/notifyActor' + notifyOwner: + $ref: '#/components/schemas/notifyOwner' + privateResourceGroups: + $ref: '#/components/schemas/privateResourceGroups' + privateResources: + $ref: '#/components/schemas/privateResources' + scannableContexts: + $ref: '#/components/schemas/scannableContexts' + severity: + $ref: '#/components/schemas/dataLossPreventionSeverity' + type: object DNSForwarderCreateResponse: description: The properties of the DNS forwarder. example: @@ -24923,6 +29656,83 @@ components: required: - siteId type: object + DataClassification: + description: Details of a data classification. + properties: + classifierEvaluationStrategy: + $ref: '#/components/schemas/ClassifierEvaluationStrategy' + creationTime: + $ref: '#/components/schemas/creationTimeDataClassification' + dataIdentifiers: + $ref: '#/components/schemas/dataIdentifiersClassification' + description: + $ref: '#/components/schemas/descriptionDataClassification' + excludedDataIdentifiers: + $ref: '#/components/schemas/excludedDataIdentifiersClassification' + id: + $ref: '#/components/schemas/idDataClassification' + modificationTime: + $ref: '#/components/schemas/modificationTimeDataClassification' + name: + $ref: '#/components/schemas/nameDataClassification' + type: + $ref: '#/components/schemas/DataClassificationType' + required: + - id + - name + - type + type: object + DataClassificationCreateRequest: + description: Request body for creating a new data classification. + properties: + classifierEvaluationStrategy: + $ref: '#/components/schemas/ClassifierEvaluationStrategy' + dataIdentifiers: + $ref: '#/components/schemas/dataIdentifiersClassification' + description: + $ref: '#/components/schemas/descriptionDataClassification' + excludedDataIdentifiers: + $ref: '#/components/schemas/excludedDataIdentifiersClassification' + name: + $ref: '#/components/schemas/nameClassification' + required: + - name + - classifierEvaluationStrategy + - dataIdentifiers + type: object + DataClassificationListItem: + description: Details of a data classification. + properties: + id: + $ref: '#/components/schemas/idDataClassification' + name: + $ref: '#/components/schemas/nameDataClassification' + type: object + DataClassificationPatchRequest: + description: Request body for updating an existing data classification. + properties: + classifierEvaluationStrategy: + $ref: '#/components/schemas/ClassifierEvaluationStrategy' + dataIdentifiers: + $ref: '#/components/schemas/dataIdentifiersClassification' + description: + description: Description of the classification. + example: A custom classification for specific use cases. + type: string + excludedDataIdentifiers: + $ref: '#/components/schemas/excludedDataIdentifiersClassification' + name: + $ref: '#/components/schemas/nameClassification' + type: object + DataClassificationType: + description: The type of the classification. + enum: + - built-in + - built-in-ai-defense + - custom + - custom-ai-defense + format: enum + type: string DataLossPreventionState: description: The information about the Data Loss Prevention state. example: @@ -25239,6 +30049,12 @@ components: description: The operating system for the device. type: string type: object + DlpRuleEvent: + description: The specific type of DLP rule event returned by the system in the + response. + oneOf: + - $ref: '#/components/schemas/DLPRuleEventByType' + - $ref: '#/components/schemas/SaasApiDlpRuleEvent' DnsSource: description: The properties of the app's DNS requests. example: @@ -25308,6 +30124,98 @@ components: format: int64 type: integer type: object + EDMIdentifierCreateRequest: + description: The properties of the request body used to create an EDM data identifier. + properties: + columns: + $ref: '#/components/schemas/columnsEdmCreate' + description: + $ref: '#/components/schemas/descriptionEdm' + minimumNumberOfMatches: + $ref: '#/components/schemas/minimumNumberOfMatchesEdm' + name: + $ref: '#/components/schemas/nameEdm' + required: + - name + - description + - columns + - minimumNumberOfMatches + type: object + EDMIdentifierListItem: + description: The properties of the Exact Data Match (EDM) data identifier. + properties: + id: + description: The unique identifier of the EDM data identifier. + format: uuid + type: string + name: + $ref: '#/components/schemas/nameEdm' + type: object + EDMIdentifierResponse: + description: The properties of the Exact Data Match (EDM) data identifier. + properties: + columns: + $ref: '#/components/schemas/columnsEdmWithId' + creationTime: + $ref: '#/components/schemas/creationEDMIdentifier' + description: + $ref: '#/components/schemas/descriptionEdm' + id: + description: The unique identifier of the EDM data identifier. + format: uuid + type: string + isActive: + description: Specifies whether the EDM data identifier is active. + type: boolean + minimumNumberOfMatches: + $ref: '#/components/schemas/minimumNumberOfMatchesEdm' + modificationTime: + $ref: '#/components/schemas/modificationEDMIdentifier' + name: + $ref: '#/components/schemas/nameEdm' + required: + - id + - name + - description + - creationTime + - modificationTime + - columns + - minimumNumberOfMatches + - isActive + type: object + EDMIdentifierUpdateRequest: + description: 'The properties used to update an Exact Data Match (EDM) data identifier. + + **Note:** Where the system completed data indexing, you cannot update the + columns for the EDM data identifier .' + properties: + columns: + $ref: '#/components/schemas/columnsEdmWithId' + description: + $ref: '#/components/schemas/descriptionEdm' + minimumNumberOfMatches: + $ref: '#/components/schemas/minimumNumberOfMatchesEdm' + name: + $ref: '#/components/schemas/nameEdm' + type: object + EDMType: + description: The properties of the Exact Data Match (EDM) type. + example: + id: 4dad81be-cc99-47ef-922b-cc882da5b885 + name: "Credit Card Number \u2013 Strict" + properties: + id: + description: The unique identifier for the EDM type. + format: uuid + type: string + name: + description: The name of the EDM type. + example: "Credit Card Number \u2013 Strict" + type: string + required: + - id + - name + type: object Egress: description: The information about the egress IP. example: @@ -25330,7 +30238,30 @@ components: properties: message: type: string - title: Unauthorized + title: InvalidRequest + type: object + FileMetadata: + description: The properties of the metadata for the files associated with Indexed + Document Match (IDM) identifiers. + properties: + documentId: + description: The unique identifier for the document. + type: string + fileName: + description: The name of the file. + type: string + fileSize: + description: The size of the file in bytes. + format: int64 + type: integer + fileType: + description: The type or format of the file. + type: string + uploadedDate: + description: The date and time when the file was uploaded. Specify an ISO + 8601-formatted timestamp. + format: date-time + type: string type: object FinancialViability: description: Financial risk to the service provider, based on Dun & Bradstreet's @@ -25576,6 +30507,109 @@ components: - TLSError type: string type: object + IDMDataIdentifierListItem: + description: The properties of the Indexed Document Match (IDM) data identifier. + properties: + id: + description: Unique identifier of the IDM data identifier + format: uuid + type: string + name: + $ref: '#/components/schemas/idmName' + type: object + IDMDataIdentifierResponse: + description: The properties of the Indexed Document Match (IDM) data identifier. + properties: + creationTimeIDMIdentifier: + $ref: '#/components/schemas/creationTimeIDMIdentifier' + description: + $ref: '#/components/schemas/idmDescription' + documents: + description: The collection of file metadata documents associated with the + IDM data identifier. + items: + $ref: '#/components/schemas/FileMetadata' + type: array + id: + description: Unique identifier of the IDM data identifier + format: uuid + type: string + idmAccuracy: + $ref: '#/components/schemas/idmAccuracy' + isActive: + description: Indicates whether the IDM data identifier is active. + example: 'false' + type: boolean + modificationTimeIDMIdentifier: + $ref: '#/components/schemas/modificationTimeIDMIdentifier' + name: + $ref: '#/components/schemas/idmName' + numberOfIndexedFiles: + description: The number of indexed files associated with the IDM data identifier. + example: 1000 + format: int64 + type: integer + uploadedIdmSize: + description: The size in bytes of the uploaded IDM data identifier. + example: 10000 + format: int64 + type: integer + required: + - id + - name + - description + - modificationTime + - creationTime + - isActive + - lowSpecificity + - numberOfIndexedFiles + - uploadedIdmSize + type: object + IDMIdentifierCreateRequest: + description: The properties used to create an Indexed Document Match (IDM) data + identifier. + example: + idmAccuracy: MEDIUM + name: name of idm data identifier + properties: + description: + $ref: '#/components/schemas/idmDescription' + idmAccuracy: + $ref: '#/components/schemas/idmAccuracy' + name: + $ref: '#/components/schemas/idmName' + required: + - name + - idmAccuracy + type: object + IDMIdentifierUpdateRequest: + description: The properties used to update an Indexed Document Match (IDM) data + identifier. + example: + name: name of idm data identifier + properties: + description: + $ref: '#/components/schemas/idmDescription' + idmAccuracy: + $ref: '#/components/schemas/idmAccuracy' + name: + $ref: '#/components/schemas/idmName' + type: object + IdNameRef: + description: The ID and name of the Reference object. + properties: + id: + description: The unique identifier of the Reference object. + example: 4dad81be-cc99-47ef-922b-cc882da5b885 + format: uuid + type: string + name: + description: The name of the Reference object. + example: Credit Card Number + type: string + required: + - id + type: object IdentitiesGetResponse: description: The list of identities in the collection returned for either the `device` or `securityGroupTag` identity type. @@ -25592,35 +30626,6 @@ components: - $ref: '#/components/schemas/SecurityGroupTagIdentityGetResponse' maxItems: 250 type: array - Identity: - description: The information about the identity. - example: - deleted: 'false' - id: 1 - label: Catch Rate Testing System - type: - id: 21 - label: Sites - type: site - properties: - deleted: - description: Indicates whether the identity was deleted. - example: 'true' - type: boolean - id: - description: The ID of the identity. - type: number - label: - description: The descriptive label for the identity. - type: string - type: - $ref: '#/components/schemas/IdentityType' - required: - - id - - label - - type - - deleted - type: object IdentityDistribution: description: The information about the identity distribution. example: @@ -25784,12 +30789,14 @@ components: $ref: '#/components/schemas/integrationName' region: $ref: '#/components/schemas/integrationRegion' + securityEventsConfig: + $ref: '#/components/schemas/SecurityEventsConfig' status: $ref: '#/components/schemas/integrationStatus' tags: $ref: '#/components/schemas/integrationTags' type: - $ref: '#/components/schemas/integrationType' + $ref: '#/components/schemas/thirdPartyIntegrationsIntegrationType' updatedFromIp: $ref: '#/components/schemas/updatedFromIp' webhookConfig: @@ -25803,6 +30810,28 @@ components: - createdFromIp - status type: object + IntegrationType: + description: The properties of the integration type. + example: + description: Generic webhook integration for sending HTTP requests + id: webhook.v1 + name: Webhook Integration + properties: + description: + description: The description of the integration type. + example: integration of jamf + type: string + id: + $ref: '#/components/schemas/integrationTypeId' + name: + description: The name of the integration type. + example: jamf one integration + type: string + required: + - id + - name + - description + type: object InternalDomainObject: example: createdAt: '2020-03-09T22:18:26.625Z' @@ -26125,14 +31154,14 @@ components: KeyRotation: description: The properties of the refreshed Cisco-managed S3 bucket key. example: - currentKeyId: AKIARB5FPGFNZR3BZAXN + currentKeyId: EXAMPLE_CURRENT_KEY_ID keyCreationDate: 2025-03-12 22:00:00 - oldKeyId: AKIAYGSCHXQI2NAWY4UZ + oldKeyId: EXAMPLE_OLD_KEY_ID secretAccessKey: wJalrXUtnFEMI/K7MDENG/bPxRfiCYzEXAMPLEKEY properties: currentKeyId: description: The ID of the Cisco-managed S3 bucket key. - example: AKIARB5FPGFNZR3BZAXN + example: EXAMPLE_CURRENT_KEY_ID type: string keyCreationDate: description: The date and time (ISO 8601-formatted timestamp) when the system @@ -26143,7 +31172,7 @@ components: type: string oldKeyId: description: The previous ID of the Cisco-managed S3 bucket key. - example: AKIAYGSCHXQI2NAWY4UZ + example: EXAMPLE_OLD_KEY_ID type: string secretAccessKey: description: The secret for the Cisco-managed S3 bucket key. @@ -26230,6 +31259,80 @@ components: - underAudit example: approved type: string + LabelActionParameters: + description: The labels or MIP tags applied as part of action. + properties: + labelsData: + description: The list of label identifier and type. + items: + $ref: '#/components/schemas/LabelCriteria' + type: array + mipData: + $ref: '#/components/schemas/mipTags' + type: object + LabelCriteria: + description: The label criteria used when matching the DLP rule. + properties: + labelId: + description: The unique identifier of the label. + example: 4dad81be-cc99-47ef-922b-cc882da5b885 + format: uuid + type: string + labelType: + description: The type of the label. + example: mip + type: string + type: object + ListAiGuardrailsDlpRuleEvents: + description: The specific type of DLP rule events returned by the system in + the response. + properties: + events: + description: The list of DLP rule events. + items: + $ref: '#/components/schemas/AiGuardrailsDlpRuleEvent' + type: array + type: object + ListAlertsResponse: + additionalProperties: 'false' + description: The properties of the alerts with the alert metadata. + example: + alerts: + - access_rule_context: + change_type: create + changes_made: Rule created + redirect_entity_url: https://dashboard.sse.cisco.com/org/8327040/secure/policy?ruleId=2313262 + redirect_entity_url_label: Test Rule + alertId: AL-2048-833125-1764567890123-3f9a1c4b2d7e8f01 + created_at: '2024-01-01T00:00:00Z' + description: Alert description + modified_at: '2024-01-01T00:00:00Z' + name: Alert Name + organization_id: 123 + rule_id: 1 + rule_type_id: 1 + severity: 1 + status: 1 + severityCounts: + High: 30 + Low: 20 + Warning: 50 + total: 100 + properties: + alerts: + description: The list of the details for the alerts. + items: + $ref: '#/components/schemas/AlertWithAdditionalContext' + type: array + severityCounts: + $ref: '#/components/schemas/severityCounts' + total: + $ref: '#/components/schemas/totalAlerts' + required: + - total + - severityCounts + - alerts + type: object ListApplicationCategoriesResponse: description: The list of Application Categories configured in the organization. example: @@ -26284,7 +31387,7 @@ components: integrationTypes: description: The list of integration types. items: - $ref: '#/components/schemas/thirdPartyIntegrationsIntegrationType' + $ref: '#/components/schemas/IntegrationType' type: array required: - integrationTypes @@ -26321,6 +31424,26 @@ components: - limit - data type: object + ListRealTimeDlpRuleEvents: + description: The specific type of DLP rule events returned by the system in + the response. + properties: + events: + description: The list of DLP rule events. + items: + $ref: '#/components/schemas/RealTimeDlpRuleEvent' + type: array + type: object + ListSaaSApiDlpRuleEvents: + description: The specific type of DLP rule events returned by the system in + the response. + properties: + events: + description: The list of DLP rule events. + items: + $ref: '#/components/schemas/SaasApiDlpRuleEvent' + type: array + type: object ListSecurityProfilesResponse: description: The list of the Security profiles in the organization. example: @@ -26379,7 +31502,7 @@ components: name: $ref: '#/components/schemas/securityProfilesName' organizationId: - $ref: '#/components/schemas/organizationId' + $ref: '#/components/schemas/securityProfilesOrganizationId' policySettingGroupId: $ref: '#/components/schemas/policySettingGroupId' priority: @@ -26894,6 +32017,74 @@ components: - name - value type: object + NetworkTunnelEvent: + description: The properties of the event for the network tunnel. + example: + bgpPeerIp: 192.168.1.1 + datacenter: AWS-US-WEST-2 + datacenterIp: 10.0.0.1, 10.0.0.2 + deviceType: ROUTER + hubId: hub789 + hubIsPrimary: 'true' + ikeAuthId: a123456 + ikeCustomerAddress: 203.0.113.1 + ikeCustomerPort: 4500 + ikeSpi: spi456 + level: INFO + message: BGP session established with peer 192.168.1.1 + networkTunnelGroupId: 789 + networkTunnelGroupLabel: network tunnel group one + originId: 101 + originType: 1 + region: us-west-2 + serviceName: BGP + timestamp: 1726502400.0 + tunnelId: 456 + umbrellaOrgId: 123456 + properties: + bgpPeerIp: + $ref: '#/components/schemas/bgpPeerIp' + datacenter: + $ref: '#/components/schemas/datacenterName' + datacenterIp: + $ref: '#/components/schemas/datacenterIp' + deviceType: + $ref: '#/components/schemas/reportingDeviceType' + hubId: + $ref: '#/components/schemas/reportingHubId' + hubIsPrimary: + $ref: '#/components/schemas/reportingIsPrimary' + ikeAuthId: + $ref: '#/components/schemas/ikeAuthId' + ikeCustomerAddress: + $ref: '#/components/schemas/ikeCustomerAddress' + ikeCustomerPort: + $ref: '#/components/schemas/ikeCustomerPort' + ikeSpi: + $ref: '#/components/schemas/ikeSpi' + level: + $ref: '#/components/schemas/level' + message: + $ref: '#/components/schemas/tunnelEventMessage' + networkTunnelGroupId: + $ref: '#/components/schemas/networkTunnelGroupId' + networkTunnelGroupLabel: + $ref: '#/components/schemas/networkTunnelGroupLabel' + originId: + $ref: '#/components/schemas/reportingOriginId' + originType: + $ref: '#/components/schemas/originType' + region: + $ref: '#/components/schemas/region' + serviceName: + $ref: '#/components/schemas/serviceName' + timestamp: + $ref: '#/components/schemas/TimestampInSeconds' + tunnelId: + $ref: '#/components/schemas/networkTunnel' + umbrellaOrgId: + $ref: '#/components/schemas/reportingOrganizationId' + type: object NetworkValueType: description: The properties of the network. example: @@ -26939,6 +32130,383 @@ components: type: string title: destinationListsNotFound type: object + OOBExposureConfig: + description: The properties of the exposure configuration grouped by platform. + example: + exposure: + - type: PUBLIC + users: + - abc12 + platform: office365 + properties: + exposure: + description: The list of exposure configuration. + example: + - type: PUBLIC + users: + - 134ajf + items: + $ref: '#/components/schemas/OOBExposureItem' + type: array + platform: + description: The label for the platform. + example: office365 + type: string + required: + - platform + - exposure + type: object + OOBExposureItem: + description: The properties of the exposure configuration. + properties: + type: + description: The type of exposure. + enum: + - PUBLIC + - DOMAIN + - PRIVATE + - FOR_SPECIFIC_USERS + example: PUBLIC + type: string + users: + description: The list of users when required by the type of exposure. + items: + description: A specific user when required by the type of exposure. + type: string + type: array + type: object + OOBIncrementalConfig: + description: The properties of the SaaS API (OOB) incremental configuration. + properties: + domains: + $ref: '#/components/schemas/domains' + exposures: + $ref: '#/components/schemas/exposures' + owners: + $ref: '#/components/schemas/owners' + platforms: + $ref: '#/components/schemas/platforms' + resourceIds: + $ref: '#/components/schemas/dataLossPreventionResourceIds' + resourceTags: + $ref: '#/components/schemas/resourceTags' + revokeSharingParameters: + $ref: '#/components/schemas/RevokeSharingParameters' + required: + - platforms + type: object + OOBInstanceConfig: + description: The properties of the SaaS API OOB instance configuration. + properties: + applicationLabels: + description: The list of the application labels. + example: + - onedrive + - sharepoint + - spark + items: + description: 'The label for the SaaS platform application, for example: + onedrive, sharepoint, or spark.' + example: spark + type: string + type: array + id: + description: The identifier of the cloud connector or account. + type: integer + required: + - id + - applicationLabels + type: object + OOBPatchIncrementalConfig: + description: The properties used to update the SaaS API (OOB) incremental configuration. + properties: + domains: + $ref: '#/components/schemas/domains' + exposures: + $ref: '#/components/schemas/exposures' + owners: + $ref: '#/components/schemas/owners' + platforms: + $ref: '#/components/schemas/platforms' + resourceIds: + $ref: '#/components/schemas/dataLossPreventionResourceIds' + resourceTags: + $ref: '#/components/schemas/resourceTags' + revokeSharingParameters: + $ref: '#/components/schemas/RevokeSharingParameters' + type: object + OOBPlatformConfig: + description: The properties of the SaaS API OOB platform configuration. + properties: + instances: + description: The list of the SaaS API OOB instances. + items: + $ref: '#/components/schemas/OOBInstanceConfig' + type: array + name: + description: 'The name of the SaaS platform name, for example: office365, + google, spark.' + example: office365 + type: string + required: + - name + - instances + type: object + OOBRuleCreateRequest: + anyOf: + - $ref: '#/components/schemas/OOBRuleCreateRequestWithClassifications' + - $ref: '#/components/schemas/OOBRuleCreateRequestWithLabels' + - $ref: '#/components/schemas/OOBRuleCreateRequestWithMipTags' + - $ref: '#/components/schemas/OOBRuleCreateRequestWithFileSizeFrom' + description: The properties used to create a SaaS API (OOB) DLP rule. + OOBRuleCreateRequestWithClassifications: + description: The properties used to create a SaaS API (OOB) DLP rule with the + classifications. + properties: + action: + $ref: '#/components/schemas/dataLossPreventionAction' + classifications: + $ref: '#/components/schemas/classificationsCreate' + description: + $ref: '#/components/schemas/descriptionSaasApiRule' + enabled: + $ref: '#/components/schemas/dataLossPreventionEnabled' + fileSizeFrom: + $ref: '#/components/schemas/fileSizeFrom' + fileSizeTo: + $ref: '#/components/schemas/fileSizeTo' + identities: + $ref: '#/components/schemas/dataLossPreventionIdentities' + incrementalConfig: + $ref: '#/components/schemas/OOBIncrementalConfig' + labelFileParameters: + $ref: '#/components/schemas/LabelActionParameters' + labels: + $ref: '#/components/schemas/listLabelCriteria' + mipTags: + $ref: '#/components/schemas/mipTags' + name: + $ref: '#/components/schemas/nameSaasApiRule' + notificationTemplateUuid: + $ref: '#/components/schemas/notificationTemplateUuid' + notifyActor: + $ref: '#/components/schemas/notifyActor' + notifyOwner: + $ref: '#/components/schemas/notifyOwner' + severity: + $ref: '#/components/schemas/dataLossPreventionSeverity2' + required: + - name + - severity + - incrementalConfig + - classifications + type: object + OOBRuleCreateRequestWithFileSizeFrom: + description: The properties used to create a SaaS API (OOB) DLP rule with the + File size. + properties: + action: + $ref: '#/components/schemas/dataLossPreventionAction' + classifications: + $ref: '#/components/schemas/classificationsCreate' + description: + $ref: '#/components/schemas/descriptionSaasApiRule' + enabled: + $ref: '#/components/schemas/dataLossPreventionEnabled' + fileSizeFrom: + $ref: '#/components/schemas/fileSizeFrom' + fileSizeTo: + $ref: '#/components/schemas/fileSizeTo' + identities: + $ref: '#/components/schemas/dataLossPreventionIdentities' + incrementalConfig: + $ref: '#/components/schemas/OOBIncrementalConfig' + labelFileParameters: + $ref: '#/components/schemas/LabelActionParameters' + labels: + $ref: '#/components/schemas/listLabelCriteria' + mipTags: + $ref: '#/components/schemas/mipTags' + name: + $ref: '#/components/schemas/nameSaasApiRule' + notificationTemplateUuid: + $ref: '#/components/schemas/notificationTemplateUuid' + notifyActor: + $ref: '#/components/schemas/notifyActor' + notifyOwner: + $ref: '#/components/schemas/notifyOwner' + severity: + $ref: '#/components/schemas/dataLossPreventionSeverity2' + required: + - name + - severity + - incrementalConfig + - fileSizeFrom + type: object + OOBRuleCreateRequestWithLabels: + description: The properties used to create a SaaS API (OOB) DLP rule with the + labels. + properties: + action: + $ref: '#/components/schemas/dataLossPreventionAction' + classifications: + $ref: '#/components/schemas/classificationsCreate' + description: + $ref: '#/components/schemas/descriptionSaasApiRule' + enabled: + $ref: '#/components/schemas/dataLossPreventionEnabled' + fileSizeFrom: + $ref: '#/components/schemas/fileSizeFrom' + fileSizeTo: + $ref: '#/components/schemas/fileSizeTo' + identities: + $ref: '#/components/schemas/dataLossPreventionIdentities' + incrementalConfig: + $ref: '#/components/schemas/OOBIncrementalConfig' + labelFileParameters: + $ref: '#/components/schemas/LabelActionParameters' + labels: + $ref: '#/components/schemas/listLabelCriteria' + mipTags: + $ref: '#/components/schemas/mipTags' + name: + $ref: '#/components/schemas/nameSaasApiRule' + notificationTemplateUuid: + $ref: '#/components/schemas/notificationTemplateUuid' + notifyActor: + $ref: '#/components/schemas/notifyActor' + notifyOwner: + $ref: '#/components/schemas/notifyOwner' + severity: + $ref: '#/components/schemas/dataLossPreventionSeverity2' + required: + - name + - severity + - incrementalConfig + - labels + type: object + OOBRuleCreateRequestWithMipTags: + description: The properties used to create a SaaS API (OOB) DLP rule with the + MIP tags. + properties: + action: + $ref: '#/components/schemas/dataLossPreventionAction' + classifications: + $ref: '#/components/schemas/classificationsCreate' + description: + $ref: '#/components/schemas/descriptionSaasApiRule' + enabled: + $ref: '#/components/schemas/dataLossPreventionEnabled' + fileSizeFrom: + $ref: '#/components/schemas/fileSizeFrom' + fileSizeTo: + $ref: '#/components/schemas/fileSizeTo' + identities: + $ref: '#/components/schemas/dataLossPreventionIdentities' + incrementalConfig: + $ref: '#/components/schemas/OOBIncrementalConfig' + labelFileParameters: + $ref: '#/components/schemas/LabelActionParameters' + labels: + $ref: '#/components/schemas/listLabelCriteria' + mipTags: + $ref: '#/components/schemas/mipTags' + name: + $ref: '#/components/schemas/nameSaasApiRule' + notificationTemplateUuid: + $ref: '#/components/schemas/notificationTemplateUuid' + notifyActor: + $ref: '#/components/schemas/notifyActor' + notifyOwner: + $ref: '#/components/schemas/notifyOwner' + severity: + $ref: '#/components/schemas/dataLossPreventionSeverity2' + required: + - name + - severity + - incrementalConfig + - mipTags + type: object + OOBRulePatchRequest: + description: The properties used to update a SaaS API (OOB) DLP rule. + properties: + action: + $ref: '#/components/schemas/dataLossPreventionAction' + classifications: + $ref: '#/components/schemas/classificationsCreate' + description: + $ref: '#/components/schemas/descriptionSaasApiRule' + enabled: + $ref: '#/components/schemas/dataLossPreventionEnabled' + fileSizeFrom: + $ref: '#/components/schemas/fileSizeFrom' + fileSizeTo: + $ref: '#/components/schemas/fileSizeTo' + incrementalConfig: + $ref: '#/components/schemas/OOBPatchIncrementalConfig' + labelFileParameters: + $ref: '#/components/schemas/LabelActionParameters' + labels: + $ref: '#/components/schemas/listLabelCriteria' + mipTags: + $ref: '#/components/schemas/mipTags' + name: + $ref: '#/components/schemas/nameSaasApiRule' + notificationTemplateUuid: + $ref: '#/components/schemas/notificationTemplateUuid' + notifyActor: + $ref: '#/components/schemas/notifyActor' + notifyOwner: + $ref: '#/components/schemas/notifyOwner' + severity: + $ref: '#/components/schemas/dataLossPreventionSeverity2' + type: object + OOBRuleResponse: + description: The properties of the SaaS API DLP rule response. + properties: + action: + $ref: '#/components/schemas/dataLossPreventionAction' + classifications: + $ref: '#/components/schemas/DLPRuleClassifications' + creationTime: + $ref: '#/components/schemas/creationTimeOOBRule' + description: + $ref: '#/components/schemas/descriptionSaasApiRule' + enabled: + $ref: '#/components/schemas/dataLossPreventionEnabled' + fileSizeFrom: + $ref: '#/components/schemas/fileSizeFrom' + fileSizeTo: + $ref: '#/components/schemas/fileSizeTo' + id: + $ref: '#/components/schemas/idSaaSApiDlpRule' + identities: + $ref: '#/components/schemas/dataLossPreventionIdentities' + incrementalConfig: + $ref: '#/components/schemas/OOBIncrementalConfig' + labelFileParameters: + $ref: '#/components/schemas/LabelActionParameters' + labels: + $ref: '#/components/schemas/listLabelCriteria' + mipTags: + $ref: '#/components/schemas/mipTags' + modificationTime: + $ref: '#/components/schemas/modificationTimeOOBRule' + name: + $ref: '#/components/schemas/nameSaasApiRule' + notificationTemplateUuid: + $ref: '#/components/schemas/notificationTemplateUuid' + notifyActor: + $ref: '#/components/schemas/notifyActor' + notifyOwner: + $ref: '#/components/schemas/notifyOwner' + severity: + $ref: '#/components/schemas/dataLossPreventionSeverity2' + version: + description: The number that represents the version of the SaaS API OOB + DLP rule. + type: integer + type: object OrgInfo: description: 'The OrgInfo.json properties for deploying the Cisco Secure Client on user devices in the organization. @@ -27019,6 +32587,8 @@ components: maxLength: 250 minLength: 1 type: string + securityEventsConfig: + $ref: '#/components/schemas/SecurityEventsConfigPatchInput' webhookConfig: $ref: '#/components/schemas/WebhookConfigInput' type: object @@ -27372,6 +32942,44 @@ components: - firstDetected - lastDetected type: object + RealTimeDlpRuleEvent: + description: The properties of the Real-Time DLP rule event. + properties: + action: + $ref: '#/components/schemas/action' + application: + $ref: '#/components/schemas/application' + applicationCategory: + $ref: '#/components/schemas/dataLossPreventionApplicationCategory' + contentType: + $ref: '#/components/schemas/contentType' + destinationUrl: + $ref: '#/components/schemas/destinationUrl' + detected: + $ref: '#/components/schemas/detected' + direction: + $ref: '#/components/schemas/direction' + eventId: + $ref: '#/components/schemas/eventId' + fileLabels: + $ref: '#/components/schemas/fileLabels' + fileName: + $ref: '#/components/schemas/fileName' + identity: + $ref: '#/components/schemas/identity' + privateResource: + $ref: '#/components/schemas/privateResource' + privateResourceGroup: + $ref: '#/components/schemas/privateResourceGroup' + rule: + $ref: '#/components/schemas/rule' + severity: + $ref: '#/components/schemas/severity' + sha256Hash: + $ref: '#/components/schemas/sha256Hash' + totalSizeInBytes: + $ref: '#/components/schemas/totalSizeInBytes' + type: object Record: description: The information about the record. properties: @@ -27759,6 +33367,17 @@ components: - time - timestamp type: object + ResourceTag: + additionalProperties: + type: string + description: The arbitrary properties (key/value) of the resource tag object. + type: object + RevokeSharingParameters: + additionalProperties: + type: string + description: The parameters controlling the revoke sharing action, which are + specific to the platform. + type: object RiskScore: description: The indicators and risk score for the destination. example: @@ -27961,42 +33580,6 @@ components: - osVersion - osVersionName type: object - Rule: - description: 'The properties of the access rule that enables security for the - traffic that is described on the rule. - - The rule includes the actions, settings, and conditions configured on the - rule and when these attributes - - were created or modified.' - properties: - createdAt: - $ref: '#/components/schemas/createdAtRule' - modifiedAt: - $ref: '#/components/schemas/modifiedAtRule' - modifiedBy: - $ref: '#/components/schemas/modifiedBy' - organizationId: - $ref: '#/components/schemas/policyRulesOrganizationId' - ruleAction: - $ref: '#/components/schemas/ruleAction' - ruleConditions: - $ref: '#/components/schemas/ruleConditions' - ruleDescription: - $ref: '#/components/schemas/ruleDescription' - ruleId: - $ref: '#/components/schemas/ruleId' - ruleIsDefault: - $ref: '#/components/schemas/ruleIsDefault' - ruleIsEnabled: - $ref: '#/components/schemas/ruleIsEnabled' - ruleName: - $ref: '#/components/schemas/ruleName' - rulePriority: - $ref: '#/components/schemas/rulePriority' - ruleSettings: - $ref: '#/components/schemas/SettingResponse' - type: object RuleFilterDestinationsExample: additionalProperties: oneOf: @@ -28044,7 +33627,7 @@ components: ruleIsEnabled: $ref: '#/components/schemas/ruleIsEnabled' ruleName: - $ref: '#/components/schemas/ruleName' + $ref: '#/components/schemas/policyRulesRuleName' rulePriority: description: 'Filter on the priorities of the rules. @@ -28107,6 +33690,16 @@ components: $ref: '#/components/schemas/RuleFilterSourcesExample' type: array type: object + RuleType: + description: The type of the DLP rule. + enum: + - AI_DEFENSE + - EMAIL + - INLINE + - OOB + example: AI_DEFENSE + format: enum + type: string RulesActivity: description: The properties of the access rule. properties: @@ -28155,13 +33748,13 @@ components: ruleDescription: $ref: '#/components/schemas/ruleDescription' ruleId: - $ref: '#/components/schemas/ruleId' + $ref: '#/components/schemas/policyRulesRuleId' ruleIsDefault: $ref: '#/components/schemas/ruleIsDefault' ruleIsEnabled: $ref: '#/components/schemas/ruleIsEnabled' ruleName: - $ref: '#/components/schemas/ruleName' + $ref: '#/components/schemas/policyRulesRuleName' rulePriority: $ref: '#/components/schemas/rulePriority' required: @@ -28180,6 +33773,75 @@ components: rule: $ref: '#/components/schemas/reportingRule' type: object + SaasApiDlpRuleEvent: + description: The properties of the SaaS API DLP rule event. + properties: + action: + $ref: '#/components/schemas/action' + actor: + $ref: '#/components/schemas/SaasApiEventUser' + application: + $ref: '#/components/schemas/applicationSaasAPI' + contentType: + $ref: '#/components/schemas/contentTypeSaasAPI' + destinationUrl: + $ref: '#/components/schemas/destinationUrl' + detected: + $ref: '#/components/schemas/detected' + eventId: + description: A unique identifier for the DLP rule event. + example: 3cdaf59c-bb71-4923-8232-81927ab4284e + type: string + exposure: + description: An indication of who can see the file (internal or external + users). + example: INTERNAL + type: string + fileName: + $ref: '#/components/schemas/fileName' + instanceName: + description: The name of the authorized tenant for a SaaS API platform. + example: office365_instance + type: string + owner: + $ref: '#/components/schemas/SaasApiEventUser' + resourceId: + description: The URL for the resource associated with the content that triggered + the violation. + example: arn:aws:s3:::s3-connector-demo-nov + type: string + resourceName: + description: The name of the resource associated with the content that triggered + the violation. + example: s3-connector one + type: string + rule: + $ref: '#/components/schemas/rule' + severity: + $ref: '#/components/schemas/severity' + sha256Hash: + $ref: '#/components/schemas/sha256Hash' + totalSizeInBytes: + $ref: '#/components/schemas/totalSizeInBytes' + type: object + SaasApiEventUser: + description: The properties of the user details associated with a SaaS API DLP + rule event. + properties: + displayName: + description: The name of the SaaS API user used to show the user account + in the system. + example: name of user in the system + type: string + email: + description: The email address of the SaaS API user. + example: user_one@abc.onmicrosoft.com + type: string + uid: + description: The unique identifier of the SaaS API user. + example: '3' + type: string + type: object Sample: description: The information about the hash sample. example: @@ -28298,10 +33960,116 @@ components: format: int64 type: integer type: object + ScannableContext: + description: The scannable context where the rule applies. + enum: + - CONTENT + - FILENAME + example: CONTENT + format: enum + type: string SecurityCategory: description: A Secure Access security category. example: Cryptomining type: string + SecurityEventsConfig: + additionalProperties: 'false' + description: The properties of the security events third-party integration. + example: + sources: + - firewall + - ravpn + targets: + - webhook.v1:b7d60bae-6a69-4dd5-a9b3-be6662fd2930 + properties: + sources: + description: The list of event sources that the system will monitor. Use + `all` to monitor all available event sources. + example: + - all + items: + description: The label for the event source. + type: string + type: array + targets: + description: 'The list of unique identifiers for the webhook.v1 integrations. + + These webhook.v1 integrations will receive the security events from Secure + Access.' + example: + - webhook.v1:abc123 + - webhook.v1:def456 + items: + description: The unique identifier for the webhook.v1 integration. + type: string + type: array + required: + - sources + type: object + SecurityEventsConfigInput: + additionalProperties: 'false' + description: The properties used to create the security events third-party integration. + properties: + sources: + description: The list of event sources that the system will monitor. Use + `all` to monitor all available event sources. + example: + - dns + - web + - ravpn + - firewall + items: + description: The label for the event source. + type: string + type: array + targets: + description: 'The list of unique identifiers for the webhook.v1 integrations. + + These webhook.v1 integrations will receive the security events from Secure + Access. + + **Note:** The list must contain at least one ID for a webhook.v1 integration.' + example: + - webhook.v1:abc123 + - webhook.v1:def456 + items: + description: The unique identifier for the webhook.v1 integration. + type: string + type: array + required: + - sources + - targets + type: object + SecurityEventsConfigPatchInput: + additionalProperties: 'false' + description: The properties used to modify the configuration of the security + events. + properties: + sources: + description: The list of event sources that the system will monitor. Use + `all` to monitor all available event sources. + example: + - all + items: + description: The label for the event source. + type: string + type: array + targets: + description: 'The list of unique identifiers for the webhook.v1 integrations. + + These webhook.v1 integrations will receive the security events from Secure + Access. + + The `targets` field must contain at least one unique identifier for a + webhook.v1 integration.' + example: + - webhook.v1:abc123 + - webhook.v1:def456 + items: + description: The unique identifier for the webhook.v1 integration. + type: string + type: array + type: object SecurityGroupTagIdentityGetResponse: description: The properties of the security group tag. example: @@ -28426,7 +34194,7 @@ components: name: $ref: '#/components/schemas/securityProfilesName' organizationId: - $ref: '#/components/schemas/organizationId' + $ref: '#/components/schemas/securityProfilesOrganizationId' policySetting: description: The properties of the Policy setting. example: @@ -28857,15 +34625,6 @@ components: - createdAt - modifiedAt type: object - Severity: - description: The severity level of the rule. - enum: - - HIGH - - MEDIUM - - LOW - - VERY LOW - example: HIGH - type: string Signature: description: The properties of the signature. example: @@ -29162,6 +34921,27 @@ components: example: 150 type: integer type: object + TenantListResponse: + description: The list of tenants in the organization. + example: + - organizationId: 8276505.0 + organizationName: tenant one + - organizationId: 1235467.0 + organizationName: tenant two + items: + $ref: '#/components/schemas/TenantResponse' + type: array + TenantResponse: + description: The properties of the tenant. + example: + organizationId: 8276505.0 + organizationName: tenant one + properties: + organizationId: + $ref: '#/components/schemas/orgId' + organizationName: + $ref: '#/components/schemas/orgName' + type: object TerminateSessions: description: The state and information about the disconnected sessions. example: @@ -29192,6 +34972,77 @@ components: - message title: TerminateSessionsResponse type: object + TestEmailNotificationResponse: + description: The properties of the test email notification. + properties: + message: + description: The message sent by the system. + example: All notifications sent successfully + type: string + results: + description: The list of detailed results for each type of notification. + items: + description: The properties of the test email notification sent by the + system. + properties: + error: + description: When the system fails to send the test message, the system + reports an error message. + example: Error in sending the test notification. + type: string + recipients_count: + description: The number of recipients of the test email notification. + example: 2 + type: integer + success: + description: Specifies whether the notification was sent by the system + successfully. + example: 'true' + type: boolean + type: + $ref: '#/components/schemas/notificationTypeEmail' + type: object + type: array + status: + description: The status of the notification. + enum: + - success + - partial_success + - failed + example: success + type: string + type: object + TestNotification: + description: The properties of the test notification. + properties: + conditions: + $ref: '#/components/schemas/conditionsAlertRule' + event_time: + $ref: '#/components/schemas/event_time' + name: + description: The name of the alert rule. + example: Production VPN Tunnel Disconnected + type: string + notification_info: + description: The list of notification details. + items: + $ref: '#/components/schemas/notificationInfoAlertRule' + minItems: 1 + type: array + redirect_link: + description: The URL of the alert page in Secure Access. + example: https://dashboard.company.com/alerts/42 + format: uri + type: string + severity: + $ref: '#/components/schemas/severityAlert' + type: + $ref: '#/components/schemas/ruleTypeId' + required: + - type + - severity + - notification_info + type: object Threat: description: The information about the threat. properties: @@ -29578,7 +35429,7 @@ components: counts: $ref: '#/components/schemas/RequestAndConnectionCounts' identity: - $ref: '#/components/schemas/Identity' + $ref: '#/components/schemas/reportingIdentity' rank: $ref: '#/components/schemas/rank' requests: @@ -29701,6 +35552,15 @@ components: required: - count type: object + TrafficDirectionType: + description: Traffic direction for the application or resource. + enum: + - BOTH + - REQUEST + - RESPONSE + - INTERNAL + format: enum + type: string TunnelStatus: enum: - UP @@ -29732,8 +35592,8 @@ components: required: - count type: object - UpdateIdentityEndpoints: - description: Update the properties of the identity endpoint. + UpdateIdentityDevices: + description: Update the properties of the identity device. example: authName: auth_device_one key: 123e4567-e89b-12d3-a456-426614174001 @@ -29743,7 +35603,7 @@ components: authName: $ref: '#/components/schemas/authName' domainName: - description: The configured domain name for the identity endpoint. + description: The configured domain name for the identity device. example: abc.com type: string guidHash: @@ -29753,7 +35613,7 @@ components: label: $ref: '#/components/schemas/identitiesRegistrationLabel' samAccountName: - description: The configured SAM account name for the identity endpoint. + description: The configured SAM account name for the identity device. example: account name type: string status: @@ -29766,6 +35626,11 @@ components: type: object UpdateSecurityGroupTags: description: Update the properties of the security group tag. + example: + key: 123e4567-e89b-12d3-a456-426614174001 + label: Device one + status: active + tagId: 1.2345671234564266e+16 properties: key: $ref: '#/components/schemas/key' @@ -29831,11 +35696,126 @@ components: - na example: na type: string + VirtualApplianceObject: + description: The properties of the virtual appliance. + example: + health: VA health + isUpgradable: 'true' + name: Name of the VA + originId: 1234 + stateUpdatedAt: '2020-03-09T22:18:26.625Z' + type: Type of VA + properties: + createdAt: + description: The date and time (ISO8601 timestamp) when the VA was created. + example: '2018-06-13T16:07:07.222Z' + format: date-time + type: string + health: + description: A description of the health of the virtual appliance. + type: string + isUpgradable: + description: Specifies whether you can upgrade the virtual appliance (VA) + to the latest VA version. + type: boolean + modifiedAt: + description: The date and time (ISO8601 timestamp) when the VA was modified. + example: '2018-06-13T16:07:07.222Z' + format: date-time + type: string + name: + description: The name of the virtual appliance. + type: string + originId: + description: The origin ID of the virtual appliance. + type: integer + settings: + additionalProperties: 'false' + description: The properties of the settings on the virtual appliance. + properties: + domains: + description: The list of domains. + items: + type: string + type: array + externalIP: + description: The external IP address. + type: string + hostType: + description: The type of the host. + type: string + internalIPs: + description: A list of internal IP addresses. + items: + type: string + type: array + isDnscryptEnabled: + description: Specifies whether DNSCrypt is enabled. + type: boolean + lastSyncTime: + description: The date and time (ISO8601 timestamp) of the last sync. + example: '2018-06-13T16:07:07.222Z' + format: date-time + type: string + upgradeError: + description: Specifies the upgrade error. + type: string + uptime: + description: The uptime in seconds. + type: integer + version: + description: Specifies the version of the virtual appliance. + type: string + type: object + siteId: + description: The site ID of the virtual appliance. + type: integer + state: + additionalProperties: 'false' + description: The properties for the state of the virtual appliance. + properties: + connectedToConnector: + description: The virtual appliance that is connected to the connector + status. + type: string + hasLocalDomainConfigured: + description: The virtual appliance has local domain configuration. + type: string + queryFailureRateAcceptable: + description: The failure rate of the query for the virtual appliance + is acceptable. + type: string + receivedInternalDNSQueries: + description: The virtual appliance received internal DNS queries. + type: string + redundantWithinSite: + description: The virtual appliance is redundant within site. + type: string + syncing: + description: The virtual appliance is syncing. + type: string + type: object + stateUpdatedAt: + description: The date and time (ISO8601 timestamp) when the virtual appliance's + state was updated. + example: '2018-06-13T16:07:07.222Z' + format: date-time + type: string + type: + description: The type of the virtual appliance. + type: string + required: + - originId + - name + - isUpgradable + - health + - type + - stateUpdatedAt + type: object WebhookConfig: description: The configuration settings for the Webhook integration. example: headers: - Authorization: Bearer token123 Content-Type: application/json queryParams: source: integration-service @@ -29855,7 +35835,6 @@ components: description: The properties used to create or update the Webhook integration. example: headers: - Authorization: Bearer token123 Content-Type: application/json queryParams: source: integration-service @@ -30150,66 +36129,6 @@ components: example: zayget2.com type: string type: object - ZtnaApplication: - properties: - category: - description: the category of the application - properties: - label: - description: label of the application category - type: string - type: - description: private vs public type - type: number - type: object - id: - description: id of the application - type: number - label: - description: label of the application - type: string - type: object - ZtnaPolicy: - properties: - privateapplicationgroup: - properties: - id: - type: number - label: - type: string - type: object - ruleset: - properties: - id: - type: number - label: - type: string - rule: - properties: - id: - type: number - label: - type: string - type: object - type: object - required: - - ruleset - type: object - ZtnaSummary: - example: - count: 30 - lasteventat: 1594557262000.0 - ruleid: 23324523.0 - properties: - count: - description: the number of requests associated with the rule - type: number - lasteventat: - type: number - ruleid: - description: the rule ID for the policy - type: number - type: object access: description: 'Configure your access rules to block or allow certain destination lists. @@ -30228,6 +36147,28 @@ components: - thirdparty_block example: none type: string + access_rule_context: + description: The properties of the context for the changes to the access rules + alerts. + properties: + change_type: + description: The type of change made on the access rule. + enum: + - create + - update + - delete + example: update + type: string + changes_made: + description: The description of the changes made by the system on the access + rule. + example: Rule changed + type: string + redirect_entity_url: + $ref: '#/components/schemas/redirect_entity_url_access_rules' + redirect_entity_url_label: + $ref: '#/components/schemas/redirect_entity_url_label' + type: object accessTypes: description: 'The list of connection properties that describe how end users can access private resources in the organization. @@ -30281,11 +36222,8 @@ components: - $ref: '#/components/schemas/browserBasedAccessRequest' type: array action: - default: disconnect - description: The type of action to take on the VPN session. - enum: - - disconnect - example: disconnect + description: The action triggered by the DLP rule. + example: MONITOR type: string actionCounts: description: The properties of the counts for each type of action. @@ -30310,10 +36248,18 @@ components: readOnly: 'true' type: integer type: object + allDestinationsScope: + description: The scope of all of the destinations for the DLP rule. + enum: + - NONE + - FILES_AND_FORMS + - FILES_AND_VETTED_APPS_FORMS + format: enum + type: string allapplications: description: The list of applications for the entry. items: - $ref: '#/components/schemas/Application' + $ref: '#/components/schemas/reportingApplication' type: array allowedIPs: description: The list of public IP addresses and CIDR blocks that can make API @@ -30326,9 +36272,18 @@ components: type: string type: array apiKey: - description: The API key for the threat feed. The `apiKey` field is optional. + description: The API key for the security feed. The `apiKey` field is optional. example: 1235asdfjalsdj type: string + application: + description: The properties of the application associated with the DLP rule + event. + properties: + id: + $ref: '#/components/schemas/idApplication' + name: + $ref: '#/components/schemas/nameApplication' + type: object applicationActions: items: description: The properties of the action. @@ -30407,6 +36362,20 @@ components: modifiedAt: $ref: '#/components/schemas/modifiedAtApplicationList' type: object + applicationSaasAPI: + description: The properties of the application associated with the DLP rule + event. + properties: + id: + $ref: '#/components/schemas/idApplication' + name: + $ref: '#/components/schemas/nameApplication' + type: object + applications: + description: The list of applications associated with the DLP rule. + items: + $ref: '#/components/schemas/dataLossPreventionApplication' + type: array applicationsCount: description: The number of applications associated with the Application Category. example: 100 @@ -30585,6 +36554,19 @@ components: description: The amount of bandwidth nullable: 'true' type: number + behavior_analytics_context: + description: The properties of the context for the Behavior Analytics (UEBA) + alerts. + properties: + redirect_entity_url: + $ref: '#/components/schemas/redirect_entity_url_ueba' + redirect_entity_url_label: + $ref: '#/components/schemas/redirect_entity_url_label' + redirect_event_url: + description: The URL for the UEBA event in Secure Access. + example: https://dashboard.sse.cisco.com/org/8327040/secure/ueba/event/67890 + type: string + type: object bgp: example: asNumber: '12345' @@ -30621,6 +36603,12 @@ components: properties: asNumber: $ref: '#/components/schemas/asNumber' + bgpHopCount: + $ref: '#/components/schemas/bgpHopCount' + bgpNeighborCIDRs: + $ref: '#/components/schemas/bgpNeighborCIDRs' + bgpServerSubnets: + $ref: '#/components/schemas/bgpServerSubnets' required: - asNumber type: object @@ -30631,9 +36619,52 @@ components: properties: asNumber: $ref: '#/components/schemas/asNumber' + bgpHopCount: + $ref: '#/components/schemas/bgpHopCount' + bgpNeighborCIDRs: + $ref: '#/components/schemas/bgpNeighborCIDRs' + bgpServerSubnets: + $ref: '#/components/schemas/bgpServerSubnets' required: - asNumber type: object + bgpHopCount: + description: 'Indicates how many network hops a packet can traverse before being + discarded by a router. It can only + + be an integer from 1 to 64 and if it is defined, then at least of BGP neighbor + CIDR must be provided.' + example: 10 + type: integer + bgpNeighborCIDRs: + description: 'The list of CIDR netmasks to limit the customer peers that can + talk to the headend BGP. + + The system allows a maximum of 20 CIDRs.' + example: + - 10.0.0.0/8 + - 95.24.45.50/32 + items: + example: 10.0.0.0/8 + type: string + type: array + bgpPeerIp: + description: The CIDR netmask used to limit the customer peers that can talk + to the headend BGP. + example: 10.0.0.0/8 + type: string + bgpServerSubnets: + description: 'The list of BGP server custom IP address ranges applicable only + when the device type is `Azure S2S VPN`. + + The two ranges must be unique and have the `/32` mask.' + example: + - 169.254.0.1/32 + - 169.254.0.1/32 + items: + example: 169.254.0.1/32 + type: string + type: array blockList: description: 'The list of signatures represented in the GID-SID format that the system will update to BLOCK. @@ -30782,6 +36813,62 @@ components: items: $ref: '#/components/schemas/certificate' type: array + classifications: + description: The list of the classifications associated with the rule. + items: + description: The properties of the classifications. + properties: + classifiers: + description: The list of classifiers associated with the classification. + items: + description: The properties of the classifier. + properties: + id: + description: The unique identifier of the classifier. + example: 1aa95033-9f63-47d0-ac26-f394c482878f + type: string + matches: + description: The list of matches found by the classifier. + items: + description: The properties of the match. + properties: + text: + description: The excerpt where the match was found. + example: 'gdfis gisu ffiudsififuiusfiudsf iusdf iufd iudfs + idsuf idsf y + + 1. Credit Card Number ...' + type: string + type: object + type: array + name: + description: The name of the classifier. + example: "Credit Card Number \u2013 Strict" + type: string + totalMatches: + description: The total number of matches found by the classifier. + example: 16 + type: integer + type: object + type: array + id: + description: The unique identifier of the classification. + example: 978a8481-e6b3-4fa2-90c5-107707bce31d + type: string + name: + description: The name of the classification. + example: Built-in GDPR Classification + type: string + type: object + type: array + classificationsCreate: + description: The list of the data classifications associated with the DLP rule. + items: + description: The unique identifier of the data classification. + example: 83374fac-0543-4f77-80e6-6359a67cfc96 + format: uuid + type: string + type: array clientBasedAccess: description: The connection to private resources is defined for the Cisco Secure Client. @@ -30841,10 +36928,82 @@ components: description: The status code of the error. example: 500 type: integer + columnsEdmCreate: + description: The list of the columns for the Exact Data Match (EDM) data identifier. + items: + description: The properties of the column in the EDM data identifier. + properties: + name: + $ref: '#/components/schemas/nameColumn' + primary: + $ref: '#/components/schemas/primaryColumn' + samples: + $ref: '#/components/schemas/samplesColumn' + typeId: + $ref: '#/components/schemas/typeIdColumn' + required: + - name + - samples + - primary + - typeId + type: object + type: array + columnsEdmWithId: + description: The list of columns for the Exact Data Match (EDM) identifier. + items: + properties: + id: + $ref: '#/components/schemas/idColumn' + name: + $ref: '#/components/schemas/nameColumn' + primary: + $ref: '#/components/schemas/primaryColumn' + samples: + $ref: '#/components/schemas/samplesColumn' + typeId: + $ref: '#/components/schemas/typeIdColumn' + required: + - name + - samples + - primary + - typeId + type: object + type: array comment: description: The comment about the destination. example: Add new destination list type: string + conditionsAlertRule: + description: The conditions that trigger the type of notification. + properties: + match_type: + description: 'Choose from one of the accepted conditions: `all` (AND), `any` + (OR), or ''''.' + enum: + - all + - any + - '' + example: all + type: string + rows: + description: The list of conditions that the system uses to evaluate the + alert rule. + items: + description: The conditions that define the alert rule. + properties: + field: + description: The name of the condition. + type: string + value: + description: The canonical name of the geographical region for the + data center where the notification occurs. + type: string + required: + - field + - value + type: object + type: array + type: object connectorCountsResponse: description: The counts of the state information for the Connectors in the organization. example: @@ -31372,6 +37531,10 @@ components: description: Specifies whether the setting is the default setting. example: 'true' type: boolean + contentCategoriesOrganizationId: + description: The ID of the organization. + example: 2345678.0 + type: integer contentCategoryCreatedAt: description: The date and time (in seconds since the Unix Epoch) when the system created the Content Category setting. @@ -31425,7 +37588,7 @@ components: name: $ref: '#/components/schemas/contentCategoryName' organizationId: - $ref: '#/components/schemas/organizationId' + $ref: '#/components/schemas/contentCategoriesOrganizationId' type: description: The type of the Content Category setting. enum: @@ -31435,6 +37598,25 @@ components: warnCategoryBits: $ref: '#/components/schemas/warnCategoryBits' type: object + contentType: + description: The type of data that triggered the DLP rule event. + example: application/json + type: string + contentTypeSaasAPI: + description: The type of data that triggered the DLP rule event. + example: application/vnd.openxmlformats-officedocument.wordprocessingml.document + type: string + context: + additionalProperties: 'true' + description: 'The properties of the metadata for the context. + + The system includes this field in the response when the API request sets the + `include_context=true` query parameter.' + example: + action: create + redirect_entity_url: https://dashboard.sse.cisco.com/org/8327040/secure/policy?ruleId=2313262 + redirect_entity_url_label: Test Rule + type: object count: description: The total number of API requests. example: 450 @@ -31451,6 +37633,18 @@ components: created the Application Category setting. example: 1490206249.0 type: integer + createdAtAlert: + description: The time and date (ISO 8601 timestamp) when the system created + the alert. + example: '2025-01-01T00:00:00Z' + format: date-time + type: string + createdAtAlertRule: + description: The time and date (ISO 8601 timestamp) when the system created + the alert rule. + example: '2025-01-01T00:00:00Z' + format: date-time + type: string createdAtApplicationList: description: The date and time that the system created the application list. example: '2021-12-13T16:07:07.222Z' @@ -31474,6 +37668,36 @@ components: created. example: 192.168.1.100 type: string + creationEDMIdentifier: + description: The date and time represented in seconds since the UNIX Epoch when + the system created the EDM data identifier. + format: int64 + type: integer + creationTimeBuiltInDataIdentifier: + description: The date and time represented in seconds since the UNIX Epoch when + the system created the built-in data identifier. + format: int64 + type: integer + creationTimeCustomIdentifier: + description: The date and time represented in seconds since the UNIX Epoch when + the system created the custom data identifier. + format: int64 + type: integer + creationTimeDataClassification: + description: The date and time represented in seconds since the UNIX Epoch when + the system created the data classification. + format: int64 + type: integer + creationTimeIDMIdentifier: + description: The date and time represented in seconds since the UNIX Epoch when + the system created the IDM data identifier. + format: int64 + type: integer + creationTimeOOBRule: + description: The date and time represented in seconds since the UNIX Epoch when + the system created the SaaS API OOB DLP Rule. + format: int64 + type: integer creatorEmail: description: The email address of the user who created the key. example: yourname@cisco.com @@ -31556,6 +37780,197 @@ components: items: $ref: '#/components/schemas/Credential' type: array + dataIdentifiersClassification: + description: The list of IDs for the data classifiers associated with the classification. + example: + - a82ddc7e-cd7e-4c2a-ab80-76577085fbc9 + items: + description: DataIdentifiers Id for inclusion + example: a82ddc7e-cd7e-4c2a-ab80-76577085fbc9 + format: uuid + type: string + minimum: 1 + type: array + dataLossPreventionAction: + default: MONITOR + description: Action to take when the rule matches. + enum: + - BLOCK + - DELETE + - MONITOR + - QUARANTINE + - REVOKE_SHARING + example: BLOCK + format: enum + type: string + dataLossPreventionAction2: + description: The action taken by the system when the rule is triggered. + enum: + - BLOCK + - MONITOR + example: MONITOR + type: string + dataLossPreventionApiErrorResponse: + description: Standard error response format + properties: + error: + description: Error description + example: Something went wrong please + type: string + statusCode: + description: HTTP status code + example: 400 + type: integer + txId: + description: Unique transaction ID for tracing the request + example: a82ddc7e-cd7e-4c2a-ab80-76577085fbc9 + type: string + type: object + dataLossPreventionApplication: + description: Details of an application. + properties: + id: + description: Unique application identifier. + example: 75 + format: int64 + type: integer + trafficDirection: + $ref: '#/components/schemas/TrafficDirectionType' + required: + - id + type: object + dataLossPreventionApplicationCategories: + description: The list of application categories associated with the DLP rule. + items: + $ref: '#/components/schemas/dataLossPreventionApplicationCategory2' + type: array + dataLossPreventionApplicationCategory: + description: The properties of the application category associated with the + DLP rule event. + properties: + id: + description: The unique identifier of the application category. + example: 26 + type: integer + name: + description: The name of the application category. + example: Office Productivity + type: string + type: object + dataLossPreventionApplicationCategory2: + description: Details of an application category. + properties: + id: + description: Unique application category identifier. + example: 10 + format: int64 + type: integer + trafficDirection: + $ref: '#/components/schemas/TrafficDirectionType' + required: + - id + type: object + dataLossPreventionApplicationCategoryIds: + description: The list of IDs for the application categories associated with + the DLP rule. + items: + format: int64 + type: integer + type: array + dataLossPreventionApplicationIds: + description: The list of IDs for applications associated with the DLP rule. + items: + format: int64 + type: integer + type: array + dataLossPreventionDestination: + description: Details of a destination. + properties: + address: + description: Address of the destination. + example: http://example.com + type: string + type: + description: Type of the destination (e.g., url, domain). + example: url + type: string + type: object + dataLossPreventionEnabled: + description: Specifies whether the system enabled the DLP rule. + example: 'true' + type: boolean + dataLossPreventionIdentities: + description: The list of identities associated with the DLP rule. + items: + $ref: '#/components/schemas/dataLossPreventionIdentity' + type: array + dataLossPreventionIdentity: + description: The properties of the identity. + properties: + details: + description: The additonal details about the identity described in the JSON + format. + example: "{\n \"originId\": 1339712162,\n \"label\": \"Kit Kit\",\n \"\ + originTypeId\": 7,\n \"type\": \"directory_user\"\n}" + type: string + originId: + description: The unique identifier of the identity. + example: 1339712162.0 + type: integer + originTypeId: + description: The type of the identity either directory_user or directory_group. + example: 7 + type: integer + type: object + dataLossPreventionPrivateResource: + description: Details of a private resource. + properties: + id: + description: Unique private resource identifier. + example: 10 + format: int64 + type: integer + trafficDirection: + $ref: '#/components/schemas/TrafficDirectionType' + required: + - id + type: object + dataLossPreventionPrivateResourceGroup: + description: Priovate Resource Group details + properties: + id: + description: Unique private resource identifier. + example: 10 + format: int64 + type: integer + trafficDirection: + $ref: '#/components/schemas/TrafficDirectionType' + required: + - id + type: object + dataLossPreventionResourceIds: + description: The list of resource identifiers. + items: + description: An identifier of a resource. + type: string + type: array + dataLossPreventionSeverity: + description: The severity level of the rule. + enum: + - WARNING + - ALERT + example: WARNING + type: string + dataLossPreventionSeverity2: + description: Severity of the rule. + enum: + - INFO + - WARNING + - ALERT + - CRITICAL + example: INFO + format: enum + type: string datacenterHub: properties: name: @@ -31564,6 +37979,18 @@ components: readOnly: 'true' type: string type: object + datacenterIp: + description: The comma-separated list of IP addresses of the data centers where + the system deployed the hub. + example: 54.145.27.13,10.0.0.2 + readOnly: 'true' + type: string + datacenterName: + description: The canonical name of the data center where the system deployed + the hub. + example: AWS-US-WEST-2 + readOnly: 'true' + type: string datacenterWithIP: properties: ip: @@ -31581,6 +38008,35 @@ components: description: The text that describes the Application Category setting. example: The application for securing the AI model. type: string + descriptionAlert: + description: The description of the alert. + example: Alert when SFO-11 Group connectivity is lost + type: string + descriptionAlertRule: + description: The description of the alert rule. + example: Alert when production VPN tunnel disconnects + maxLength: 100 + type: string + descriptionCustomIdentifier: + description: "A meaningful description of the custom data identifier.\n`description`\ + \ is a sequence of 1\u2013255 characters." + example: description of custom identifier + maxLength: 255 + minLength: 1 + type: string + descriptionDataClassification: + description: The detailed description of the classification. + example: A built-in classification for specific use cases. + type: string + descriptionDlpRule: + description: The description of the DLP rule. + example: This rule is used for sensitive data. + type: string + descriptionEdm: + description: The description of the EDM data identifier. + example: Description 1 + maxLength: 255 + type: string descriptionNetworkObject: description: The description of the Network Object. example: network object description @@ -31599,6 +38055,10 @@ components: example: Private resources in Westcoast Data Center maxLength: 255 type: string + descriptionSaasApiRule: + description: The meaningful description of the SaaS API OOB DLP Rule. + example: SaaA API OOB dlp rule one + type: string descriptionServiceObject: description: The description of the Service Object. example: mycompany service object group description @@ -31614,12 +38074,19 @@ components: example: cisco.com type: string destinationListId: - description: 'The ID of the destination list created by Secure Access for the - threat feed and security vendor integration. + description: 'The ID of the destination list created for the security feed and + security vendor integration. The destination list has the `access` type of `thirdparty_block`.' example: 1234 type: integer + destinationListIds: + description: The list of IDs for the destination lists associated with the DLP + rule. + items: + format: int64 + type: integer + type: array destinationListsBundleTypeId: description: 'The type of the destination list. @@ -31662,6 +38129,16 @@ components: type: string title: ServerErr type: object + destinationUrl: + description: The URL where the end user uploadedor posted the file. + example: https://us-east-1.console.aws.amazon.com/s3/object/s3-connector-demo-nov?prefix=S3%20Connector%20Demo%20Nov%20DLP.docx + type: string + detected: + description: The date and time when the system detected the content, formatted + as an ISO 8601 timestamp. + example: '2024-01-01T12:34:56Z' + format: date-time + type: string deviceCertificateInfo: description: The ID and certificates for the user device. example: @@ -31688,6 +38165,8 @@ components: value is `other`. enum: - ASA + - AWS S2S VPN + - AZURE S2S VPN - FTD - ISR - Meraki MX @@ -31696,6 +38175,10 @@ components: - other example: ASA type: string + direction: + description: The direction of the detected traffic. + example: REQUEST + type: string dnsForwardersCreatedAt: description: The date and time (ISO8601 timestamp) when the system created the DNS Forwarder. @@ -31729,9 +38212,15 @@ components: description: The unique identifier of the DNS server you use to resolve IP addresses. example: 98765 type: integer + domains: + description: The list of domains. + items: + description: A fully qualified domain name. + type: string + type: array enabled: default: N - description: Specify whether to enable the threat feed. + description: Specify whether to enable the security feed. enum: - Y - N @@ -31747,6 +38236,70 @@ components: - container - esx type: string + errorIdsInteger: + description: The list of unique identifiers that either do no exist or the system + failed to delete or update. + example: + - 100 + items: + description: The unique identifier of the alert rule that does not exist or + the system failed to delete or update. + example: 100 + type: integer + type: array + errorIdsString: + description: The list of unique identifiers that either do no exist or the system + failed to delete or update. + example: + - 100a + items: + description: The unique identifier of the alert rule that does not exist or + the system failed to delete or update. + example: 100a + type: string + type: array + event_time: + description: The date and time (ISO 8601 timestamp) when the system recorded + the event. + example: '2024-10-22T10:30:00Z' + format: date-time + type: string + eventId: + description: The unique identifier of the event. + example: a1764e27-9e48-4dc4-8e93-e315472d42ed_d29febed-52cc-4050-a950-ca23311a1a62_REQUEST + type: string + excludedDataIdentifiersClassification: + description: The list of IDs for excluded classifiers associated with the classification. + example: + - a82ddc7e-cd7e-4c2a-ab80-76577085fbc9 + items: + description: DataIdentifier Id for exclusion + example: a82ddc7e-cd7e-4c2a-ab80-76577085fbc9 + format: uuid + type: string + type: array + excludedDestinationListIds: + description: The list of IDs for the destination lists that the system excludes + from the DLP rule. + items: + format: int64 + type: integer + type: array + excludedIdentities: + description: The list of identities that the system excludes from the DLP rule. + items: + $ref: '#/components/schemas/dataLossPreventionIdentity' + type: array + excludedPrivateResourceGroups: + description: List of private resource groups to be excluded from the rule. + items: + $ref: '#/components/schemas/dataLossPreventionPrivateResourceGroup' + type: array + excludedPrivateResources: + description: The list of private resources to exclude from the DLP rule. + items: + $ref: '#/components/schemas/dataLossPreventionPrivateResource' + type: array expireAt: description: 'The date and time when the key is set to expire. The timestamp is specified as an ISO 8601 formatted string, @@ -31757,6 +38310,11 @@ components: ' example: '2022-10-02T20:00:00Z' type: string + exposures: + description: The list of SaaS API OOB exposure configurations. + items: + $ref: '#/components/schemas/OOBExposureConfig' + type: array externalFQDN: description: 'The URL for the private resource. @@ -31780,7 +38338,7 @@ components: type: string type: object feedCreate: - description: The properties used to create the threat feeds for the third-party + description: The properties used to create the security feeds for the third-party or custom security vendor. example: apiKey: 1235asdfjalsdj @@ -31793,7 +38351,7 @@ components: enabled: $ref: '#/components/schemas/enabled' name: - $ref: '#/components/schemas/threatIntelligenceFeedsName' + $ref: '#/components/schemas/securityFeedsName' vendorId: $ref: '#/components/schemas/vendorId' required: @@ -31801,11 +38359,11 @@ components: - vendorId type: object feedId: - description: The ID of the threat feed. + description: The ID of the security feed. example: 123 type: integer feedObject: - description: The properties of the threat feed. + description: The properties of the security feed. example: createdAt: '2024-10-02T20:00:00Z' destinationListId: 15666 @@ -31817,7 +38375,7 @@ components: vendorId: 11 properties: createdAt: - description: The date and time when the system created the threat feed. + description: The date and time when the system created the security feed. The system specifies the timestamp in the ISO 8601 format. example: '2024-10-02T20:00:00Z' format: date-time @@ -31829,15 +38387,15 @@ components: id: $ref: '#/components/schemas/feedId' modifiedAt: - description: The date and time when the system updated the threat feed. + description: The date and time when the system updated the security feed. The system specifies the timestamp in the ISO 8601 format. example: '2024-10-02T20:00:00Z' format: date-time type: string name: - $ref: '#/components/schemas/threatIntelligenceFeedsName' + $ref: '#/components/schemas/securityFeedsName' organizationId: - $ref: '#/components/schemas/threatIntelligenceFeedsOrganizationId' + $ref: '#/components/schemas/securityFeedsOrganizationId' vendorId: $ref: '#/components/schemas/vendorId' required: @@ -31850,7 +38408,7 @@ components: - modifiedAt type: object feedPatch: - description: Update the properties of the threat feed. + description: Update the properties of the security feed. example: name: feed two properties: @@ -31859,12 +38417,12 @@ components: enabled: $ref: '#/components/schemas/enabled' name: - $ref: '#/components/schemas/threatIntelligenceFeedsName' + $ref: '#/components/schemas/securityFeedsName' required: - name type: object feeds: - description: The list of threat feeds for the integrated custom and third-party + description: The list of security feeds for the integrated custom and third-party security vendors. example: - createdAt: '2024-10-02T20:00:00Z' @@ -31882,6 +38440,32 @@ components: description: The group ID of the File Inspection setting. example: 1139310.0 type: integer + fileLabels: + description: The list of labels associated with the file. + example: + - Confidential + items: + description: The name of the label. + example: Confidential + type: string + type: array + fileName: + description: The name of the file where the system identified a classification + match. For messages or posts, the system returns `Content`. + example: Content + type: string + fileNameAIGuardrails: + description: The value of `fileName` is `Form`. + example: Form + type: string + fileSizeFrom: + description: The minimum file size in KB for the system to apply the DLP rule. + example: 1024 + type: integer + fileSizeTo: + description: The maximum file size in KB for the system to apply the DLP rule. + example: 10485760.0 + type: integer filtersNTGsObject: description: The filters for the Network Tunnel Groups. properties: @@ -32063,7 +38647,7 @@ components: hubState: description: The properties of a Hub for the Network Tunnel Group. example: - status: UNKNOWN + status: UP time: '2023-06-30T16:07:07.222Z' properties: status: @@ -32073,13 +38657,10 @@ components: * DOWN - The hub is inactive. - * UNKNOWN - The current status is unknown and pending updated information. - ' enum: - UP - DOWN - - UNKNOWN example: UP readOnly: 'true' type: string @@ -32094,26 +38675,6 @@ components: - time - status type: object - hubStatus: - description: The properties of a Hub for the Network Tunnel Group. - properties: - status: - description: The status of the hub. - enum: - - UP - - DOWN - example: UP - readOnly: 'true' - type: string - time: - description: The date and time (timestamp) when the hub status was last - reported. - example: '2024-06-12T18:04:23Z' - format: date-time - readOnly: 'true' - type: string - readOnly: 'true' - type: object hubs: description: 'The list of Hubs for a Network Tunnel Group. @@ -32130,7 +38691,7 @@ components: isPrimary: $ref: '#/components/schemas/isPrimary' status: - $ref: '#/components/schemas/hubStatus' + $ref: '#/components/schemas/hubState' tunnelsCount: $ref: '#/components/schemas/tunnelsCount' type: object @@ -32204,6 +38765,22 @@ components: description: The ID of the Application Category setting. example: 1234567.0 type: integer + idAlert: + description: The unique identifier of the alert. + example: AL-2048-833125-1764567890123-3f9a1c4b2d7e8f01 + type: string + idAlertRule: + description: The unique identifier of the alert rule. + example: 42 + type: integer + idApplication: + description: The unique identifier of the application. + example: 46096 + type: integer + idColumn: + description: The unique identifier of the column. + example: 1234565a + type: string idConnector: description: The ID of the Connector. example: 123456 @@ -32214,10 +38791,19 @@ components: example: 1234557.0 readOnly: 'true' type: integer + idDataClassification: + description: The unique identifier of the classification. + example: 12345678-abcd-4ef0-9123-456789abcdef + format: uuid + type: string idDestinationString: description: The unique ID of the destination. example: '1234567' type: string + idDlpRule: + description: The unique identifier of the DLP rule. + example: a861476c-f6a7-4d15-bf59-07aff51fc807 + type: string idNetworkObject: description: The ID of the Network Object. example: 123456 @@ -32230,6 +38816,14 @@ components: description: The ID of the object. example: 123456 type: integer + idRule: + description: The unique identifier of the associated rule. + example: 42 + type: integer + idSaaSApiDlpRule: + description: The unique identifier of the SaaS API DLP rule. + example: a861476c-f6a7-4d15-bf59-07aff51fc807 + type: string idServiceObject: description: The ID of the Service Object. example: 123456 @@ -32241,7 +38835,7 @@ components: identities: description: The list of identities for the entry. items: - $ref: '#/components/schemas/Identity' + $ref: '#/components/schemas/reportingIdentity' type: array identitiesRegistrationCreatedAt: description: The date and time in nanoseconds since the Unix Epoch when the @@ -32266,10 +38860,43 @@ components: - inactive example: active type: string + identity: + description: The properties of the identity or end user that requested the events. + properties: + originId: + description: The unique identifier of the identity. + example: 1339712162.0 + type: integer + originTypeId: + description: The numeric identifier of the identity for either `directory_user` + or `directory_group`. + enum: + - 7 + example: 7 + type: integer + type: object identityCount: description: The number of resources in the organization. example: 100 type: integer + idmAccuracy: + description: The accuracy level for the IDM identifier. + enum: + - LOW + - MEDIUM + - HIGH + example: HIGH + type: string + idmDescription: + description: The description of the IDM data identifier. + example: IDM identifier for financial document matching + maxLength: 255 + type: string + idmName: + description: The name of the Indexed Document Match (IDM) data identifier. + example: Financial Documents IDM + maxLength: 255 + type: string ignoreList: description: 'The list of signatures represented in the GID-SID format that the system will update to IGNORE. @@ -32281,6 +38908,21 @@ components: example: 1-28423 type: string type: array + ikeAuthId: + description: The unique identifier of the IKE session for the network tunnel. + example: auth123 + type: string + ikeCustomerAddress: + description: The IP address used by the end user for the IKE session. + example: 203.0.113.1 + type: string + ikeCustomerPort: + description: The port used by the end user for the IKE session. + example: 4500 + type: integer + ikeSpi: + example: spi456 + type: string integrationCreatedAt: description: The date and time when the system created the integration. example: '2024-01-15T10:30:00Z' @@ -32320,15 +38962,6 @@ components: description: The tag associated with the integration. type: string type: array - integrationType: - description: The type of the integration. - enum: - - chrome-enterprise.v1 - - webhook.v1 - - jamf.v1 - - intune.v1 - example: jamf.v1 - type: string integrationTypeId: description: The ID of the integration. example: a1235678 @@ -32398,6 +39031,10 @@ components: example: Not Found type: string type: object + ipsProfilesOrganizationId: + description: The ID of the organization. + example: 2345678.0 + type: integer ipsProfilesServerError: description: Internal Server Error properties: @@ -32543,7 +39180,7 @@ components: name: $ref: '#/components/schemas/ipsSignatureProfileName' organizationId: - $ref: '#/components/schemas/organizationId' + $ref: '#/components/schemas/ipsProfilesOrganizationId' systemMode: $ref: '#/components/schemas/systemMode' warnList: @@ -32790,6 +39427,14 @@ components: example: 2021-10-02 20:00:00 format: date-time type: string + level: + description: The severity level of the event. + enum: + - INFO + - WARNING + - ERROR + example: INFO + type: string limit: default: 100 description: The number of items returned in the page. The default value of @@ -32799,6 +39444,11 @@ components: maximum: 250 minimum: 1 type: integer + listLabelCriteria: + description: The list of label criteria. + items: + $ref: '#/components/schemas/LabelCriteria' + type: array location: description: The region where the Resource Connector Group is available. example: us-west-2 @@ -32827,6 +39477,46 @@ components: example: 20 type: integer type: object + minimumNumberOfMatchesEdm: + description: The minimum number of matches required for Exact Data Match (EDM). + example: 2 + type: integer + mipTags: + description: The list of of Microsoft Information Protection (MIP) tags. + items: + example: test + type: string + type: array + modificationEDMIdentifier: + description: The date and time represented in seconds since the UNIX Epoch when + the system updated the EDM data identifier. + format: int64 + type: integer + modificationTimeBuiltInDataIdentifier: + description: The date and time represented in seconds since the UNIX Epoch when + the system updated the built-in data identifier. + format: int64 + type: integer + modificationTimeCustomIdentifier: + description: The date and time represented in seconds since the UNIX Epoch when + the system updated the custom data identifier. + format: int64 + type: integer + modificationTimeDataClassification: + description: The date and time represented in seconds since the UNIX Epoch when + the system updated the data classification. + format: int64 + type: integer + modificationTimeIDMIdentifier: + description: The date and time represented in seconds since the UNIX Epoch when + the system updated the IDM data identifier. + format: int64 + type: integer + modificationTimeOOBRule: + description: The date and time represented in seconds since the UNIX Epoch when + the system updated the SaaS API OOB DLP Rule. + format: int64 + type: integer modified_at: description: The date and time when the object was updated, specified in the ISO 8601 format. @@ -32842,6 +39532,18 @@ components: modified the Application Category setting. example: 1520476127.0 type: integer + modifiedAtAlert: + description: The time and date (ISO 8601 timestamp) when the system last modified + the alert. + example: '2025-01-01T00:00:00Z' + format: date-time + type: string + modifiedAtAlertRule: + description: The time and date (ISO 8601 timestamp) when the system last modified + the alert rule. + example: '2025-01-01T00:00:00Z' + format: date-time + type: string modifiedAtApplicationList: description: The date and time that the system updated the application list. example: '2023-11-13T21:28:54+00:00' @@ -32885,6 +39587,53 @@ components: maxLength: 50 minLength: 1 type: string + nameAlert: + description: The name of the alert. + example: Production VPN Tunnel Alert + type: string + nameAlertRule: + description: The unique name of the alert rule. + example: Production VPN Tunnel Alert + maxLength: 255 + type: string + nameApplication: + description: The name of the application. + example: Gmail + type: string + nameClassification: + description: The name of the data classification. + example: data classification + maxLength: 255 + minLength: 6 + type: string + nameColumn: + description: The name of the column. + example: sample column name + type: string + nameCustomIdentifier: + description: "The unique name of the the custom data identifier.\n`name` is\ + \ a sequence of 1\u2013255 characters and is unique within the organization." + example: custom identifier one + maxLength: 255 + minLength: 1 + type: string + nameDataClassification: + description: The name of the classification. + example: Classification Name + maxLength: 255 + minLength: 6 + type: string + nameDlpRule: + description: The name of the DLP rule. + example: new SaaS API rule one + maxLength: 255 + minLength: 6 + type: string + nameEdm: + description: The name of the EDM data identifier. + example: Test EDM for Integration 2122 + maxLength: 255 + type: string nameNetworkObject: description: The name of the Network Object. example: A network object @@ -32893,6 +39642,11 @@ components: description: The name of the Network Object Group. example: A network object group type: string + nameSaasApiRule: + description: The name of the SaaS API OOB DLP Rule. + example: SaaA API OOB dlp rule one + maxLength: 255 + type: string nameServiceObject: description: The name of the Service Object. example: mycompany service object group name @@ -32953,6 +39707,10 @@ components: description: The place (index) to start reading in the collection. example: 0 type: integer + networkTunnel: + description: The unique identifier of the network tunnel. + example: 456 + type: integer networkTunnelGroupBulkStateResponse: description: The information about the Network Tunnel Groups and Hubs in the organization. @@ -33070,6 +39828,17 @@ components: example: 1 type: integer type: object + networkTunnelGroupId: + description: The unique identifier of the network tunnel group. + example: 456123789.0 + readOnly: 'true' + type: integer + networkTunnelGroupLabel: + description: "The name of the network tunnel group.\nA Network Tunnel Group\ + \ name is a sequence of 1\u201350 characters, which does not contain any special\ + \ characters other than spaces and hyphens." + example: New York Branch Tunnels + type: string networkTunnelGroupListResponse: description: The properties of the Network Tunnel Group in the organization. example: @@ -33427,6 +40196,60 @@ components: type: object title: notFound type: object + notificationInfoAlertRule: + description: The properties of the notification for the alert rule. + properties: + recipients: + description: The list of email recipients configured in the alert rule to + receive the notification. + example: + - admin@company.com + - ops@company.com + items: + description: An email recipient for the notification. + format: email + type: string + maxItems: 50 + minItems: 1 + type: array + type: + $ref: '#/components/schemas/notificationTypeAll' + webhook_ids: + description: The list of unique identifiers for the Webhooks configured + on the alert rule. + items: + description: The unique identifier for the Webhook ID. + example: 1abcde + type: string + type: array + type: object + notificationTemplateUuid: + description: The unique identifier of the notification template. + format: uuid + type: string + notificationTypeAll: + description: The type of the notification for the alert rule. + enum: + - email + - webhook + example: webhook + type: string + notificationTypeEmail: + description: The type of the notification. + enum: + - email + example: email + type: string + notifyActor: + description: Specifies whether the system notifies the actor when the rule is + triggered. + example: 'false' + type: boolean + notifyOwner: + description: Specifies whether the system notifies the owner when the rule is + triggered. + example: 'false' + type: boolean offset: default: 0 description: The place in the collection where the system started to read the @@ -33444,24 +40267,116 @@ components: description: The ID of the organization. example: 1234568.0 type: integer + orgId: + description: The unique identifier of the tenant. + example: 1233 + type: integer + orgName: + description: The legal or canonical name of the tenant. + example: NameOfCustomer + maxLength: 255 + minLength: 1 + type: string organization_id: description: The unique Secure Access organization ID. example: 123456 format: int32 type: integer organizationId: - description: The ID of the organization. - example: 2345678.0 + description: The unique identifier of the organization. + example: 12345 type: integer originId: description: The unique identifier of the DNS Forwarder. example: 2456 type: integer + originType: + description: The numeric type that identifies the origin. + example: 1 + type: integer + owners: + description: The list of emails for the owners. + items: + description: The email for the owner. + type: string + type: array + patternsCustomIdentifier: + description: 'The set of regex patterns for the custom data identifier. Limited + to 10 patterns. Each pattern must be at least three characters long and cannot + start with `^ ` or end with `$`. Set at least one of the `terms` or `patterns` + fields. + + ' + example: + - abc + - test.* + - hello + items: + minLength: 3 + pattern: ^(?!\^).*(? Rule: + ) -> PolicyRulesRule: """Create Rule Create a rule on the policy for the organization. @@ -105,7 +105,7 @@ def add_rule( ) _response_types_map: Dict[str, Optional[str]] = { - '200': "Rule", + '200': "PolicyRulesRule", '400': "PolicyRules400Error", '401': "PolicyRules401Error", '403': "PolicyRules403Error", @@ -139,7 +139,7 @@ def add_rule_with_http_info( _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> ApiResponse[Rule]: + ) -> ApiResponse[PolicyRulesRule]: """Create Rule Create a rule on the policy for the organization. @@ -177,7 +177,7 @@ def add_rule_with_http_info( ) _response_types_map: Dict[str, Optional[str]] = { - '200': "Rule", + '200': "PolicyRulesRule", '400': "PolicyRules400Error", '401': "PolicyRules401Error", '403': "PolicyRules403Error", @@ -249,7 +249,7 @@ def add_rule_without_preload_content( ) _response_types_map: Dict[str, Optional[str]] = { - '200': "Rule", + '200': "PolicyRulesRule", '400': "PolicyRules400Error", '401': "PolicyRules401Error", '403': "PolicyRules403Error", @@ -341,7 +341,7 @@ def _add_rule_serialize( @validate_call - def delete_rule( + def delete_rulepoliciesrules( self, rule_id: Annotated[StrictInt, Field(description="The ID of the access rule.")], _request_timeout: Union[ @@ -385,7 +385,7 @@ def delete_rule( :return: Returns the result object. """ # noqa: E501 - _param = self._delete_rule_serialize( + _param = self._delete_rulepoliciesrules_serialize( rule_id=rule_id, _request_auth=_request_auth, _content_type=_content_type, @@ -413,7 +413,7 @@ def delete_rule( @validate_call - def delete_rule_with_http_info( + def delete_rulepoliciesrules_with_http_info( self, rule_id: Annotated[StrictInt, Field(description="The ID of the access rule.")], _request_timeout: Union[ @@ -457,7 +457,7 @@ def delete_rule_with_http_info( :return: Returns the result object. """ # noqa: E501 - _param = self._delete_rule_serialize( + _param = self._delete_rulepoliciesrules_serialize( rule_id=rule_id, _request_auth=_request_auth, _content_type=_content_type, @@ -485,7 +485,7 @@ def delete_rule_with_http_info( @validate_call - def delete_rule_without_preload_content( + def delete_rulepoliciesrules_without_preload_content( self, rule_id: Annotated[StrictInt, Field(description="The ID of the access rule.")], _request_timeout: Union[ @@ -529,7 +529,7 @@ def delete_rule_without_preload_content( :return: Returns the result object. """ # noqa: E501 - _param = self._delete_rule_serialize( + _param = self._delete_rulepoliciesrules_serialize( rule_id=rule_id, _request_auth=_request_auth, _content_type=_content_type, @@ -552,7 +552,7 @@ def delete_rule_without_preload_content( return response_data.response - def _delete_rule_serialize( + def _delete_rulepoliciesrules_serialize( self, rule_id, _request_auth, @@ -893,7 +893,7 @@ def get_rule( _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Rule: + ) -> PolicyRulesRule: """Get Rule Get the details about the rule. @@ -931,7 +931,7 @@ def get_rule( ) _response_types_map: Dict[str, Optional[str]] = { - '200': "Rule", + '200': "PolicyRulesRule", '400': "PolicyRules400Error", '401': "PolicyRules401Error", '403': "PolicyRules403Error", @@ -965,7 +965,7 @@ def get_rule_with_http_info( _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> ApiResponse[Rule]: + ) -> ApiResponse[PolicyRulesRule]: """Get Rule Get the details about the rule. @@ -1003,7 +1003,7 @@ def get_rule_with_http_info( ) _response_types_map: Dict[str, Optional[str]] = { - '200': "Rule", + '200': "PolicyRulesRule", '400': "PolicyRules400Error", '401': "PolicyRules401Error", '403': "PolicyRules403Error", @@ -1075,7 +1075,7 @@ def get_rule_without_preload_content( ) _response_types_map: Dict[str, Optional[str]] = { - '200': "Rule", + '200': "PolicyRulesRule", '400': "PolicyRules400Error", '401': "PolicyRules401Error", '403': "PolicyRules403Error", @@ -1499,7 +1499,7 @@ def put_rule( _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> Rule: + ) -> PolicyRulesRule: """Update Rule Update the properties on the rule. @@ -1540,7 +1540,7 @@ def put_rule( ) _response_types_map: Dict[str, Optional[str]] = { - '200': "Rule", + '200': "PolicyRulesRule", '400': "PolicyRules400Error", '401': "PolicyRules401Error", '403': "PolicyRules403Error", @@ -1575,7 +1575,7 @@ def put_rule_with_http_info( _content_type: Optional[StrictStr] = None, _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, - ) -> ApiResponse[Rule]: + ) -> ApiResponse[PolicyRulesRule]: """Update Rule Update the properties on the rule. @@ -1616,7 +1616,7 @@ def put_rule_with_http_info( ) _response_types_map: Dict[str, Optional[str]] = { - '200': "Rule", + '200': "PolicyRulesRule", '400': "PolicyRules400Error", '401': "PolicyRules401Error", '403': "PolicyRules403Error", @@ -1692,7 +1692,7 @@ def put_rule_without_preload_content( ) _response_types_map: Dict[str, Optional[str]] = { - '200': "Rule", + '200': "PolicyRulesRule", '400': "PolicyRules400Error", '401': "PolicyRules401Error", '403': "PolicyRules403Error", diff --git a/secure_access/api/acme_client_certificates_api.py b/secure_access/api/acme_client_certificates_api.py index f52f105..b360921 100644 --- a/secure_access/api/acme_client_certificates_api.py +++ b/secure_access/api/acme_client_certificates_api.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/api/activity_api.py b/secure_access/api/activity_api.py index 1bc4644..37218f5 100644 --- a/secure_access/api/activity_api.py +++ b/secure_access/api/activity_api.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) @@ -100,7 +100,7 @@ def get_activities( ) -> GetActivities200Response: """Get Activities (All) - List all activities (dns/proxy/firewall/ip/intrusion/ztna/decryption) within the timeframe. **Note:** The IP activity report is not available. **Access Scope:** Reports > Aggregations > Read-Only + List all activities (dns/proxy/firewall/ip/intrusion/ztna/decryption) within the timeframe. **Note:** The IP activity report is not available. **Access Scope:** Reports > Granular Events > Read-Only :param var_from: A timestamp or relative time string (for example: '-1days'). Filter for data that appears after this time. (required) :type var_from: str @@ -223,6 +223,7 @@ def get_activities( _response_types_map: Dict[str, Optional[str]] = { '200': "GetActivities200Response", + '207': "Model207ActivityMultiStatus", '400': "Reporting400Error", '401': "Reporting401Error", '403': "Reporting403Error", @@ -288,7 +289,7 @@ def get_activities_with_http_info( ) -> ApiResponse[GetActivities200Response]: """Get Activities (All) - List all activities (dns/proxy/firewall/ip/intrusion/ztna/decryption) within the timeframe. **Note:** The IP activity report is not available. **Access Scope:** Reports > Aggregations > Read-Only + List all activities (dns/proxy/firewall/ip/intrusion/ztna/decryption) within the timeframe. **Note:** The IP activity report is not available. **Access Scope:** Reports > Granular Events > Read-Only :param var_from: A timestamp or relative time string (for example: '-1days'). Filter for data that appears after this time. (required) :type var_from: str @@ -411,6 +412,7 @@ def get_activities_with_http_info( _response_types_map: Dict[str, Optional[str]] = { '200': "GetActivities200Response", + '207': "Model207ActivityMultiStatus", '400': "Reporting400Error", '401': "Reporting401Error", '403': "Reporting403Error", @@ -476,7 +478,7 @@ def get_activities_without_preload_content( ) -> RESTResponseType: """Get Activities (All) - List all activities (dns/proxy/firewall/ip/intrusion/ztna/decryption) within the timeframe. **Note:** The IP activity report is not available. **Access Scope:** Reports > Aggregations > Read-Only + List all activities (dns/proxy/firewall/ip/intrusion/ztna/decryption) within the timeframe. **Note:** The IP activity report is not available. **Access Scope:** Reports > Granular Events > Read-Only :param var_from: A timestamp or relative time string (for example: '-1days'). Filter for data that appears after this time. (required) :type var_from: str @@ -599,6 +601,7 @@ def get_activities_without_preload_content( _response_types_map: Dict[str, Optional[str]] = { '200': "GetActivities200Response", + '207': "Model207ActivityMultiStatus", '400': "Reporting400Error", '401': "Reporting401Error", '403': "Reporting403Error", @@ -846,7 +849,7 @@ def get_activity_amp_retrospective( ) -> GetActivityAmpRetrospective200Response: """Get Activity AMP Retrospective - List all AMP retrospective activity within the timeframe. **Access Scope:** Reports > Aggregations > Read-Only + List all AMP retrospective activity within the timeframe. **Access Scope:** Reports > Granular Events > Read-Only :param var_from: A timestamp or relative time string (for example: '-1days'). Filter for data that appears after this time. (required) :type var_from: str @@ -942,7 +945,7 @@ def get_activity_amp_retrospective_with_http_info( ) -> ApiResponse[GetActivityAmpRetrospective200Response]: """Get Activity AMP Retrospective - List all AMP retrospective activity within the timeframe. **Access Scope:** Reports > Aggregations > Read-Only + List all AMP retrospective activity within the timeframe. **Access Scope:** Reports > Granular Events > Read-Only :param var_from: A timestamp or relative time string (for example: '-1days'). Filter for data that appears after this time. (required) :type var_from: str @@ -1038,7 +1041,7 @@ def get_activity_amp_retrospective_without_preload_content( ) -> RESTResponseType: """Get Activity AMP Retrospective - List all AMP retrospective activity within the timeframe. **Access Scope:** Reports > Aggregations > Read-Only + List all AMP retrospective activity within the timeframe. **Access Scope:** Reports > Granular Events > Read-Only :param var_from: A timestamp or relative time string (for example: '-1days'). Filter for data that appears after this time. (required) :type var_from: str @@ -1225,7 +1228,7 @@ def get_activity_decryption( ) -> GetActivityDecryption200Response: """Get Activity Decryption - List all decryption entries within the timeframe. **Access Scope:** Reports > Aggregations > Read-Only + List all decryption entries within the timeframe. **Access Scope:** Reports > Granular Events > Read-Only :param var_from: A timestamp or relative time string (for example: '-1days'). Filter for data that appears after this time. (required) :type var_from: str @@ -1317,7 +1320,7 @@ def get_activity_decryption_with_http_info( ) -> ApiResponse[GetActivityDecryption200Response]: """Get Activity Decryption - List all decryption entries within the timeframe. **Access Scope:** Reports > Aggregations > Read-Only + List all decryption entries within the timeframe. **Access Scope:** Reports > Granular Events > Read-Only :param var_from: A timestamp or relative time string (for example: '-1days'). Filter for data that appears after this time. (required) :type var_from: str @@ -1409,7 +1412,7 @@ def get_activity_decryption_without_preload_content( ) -> RESTResponseType: """Get Activity Decryption - List all decryption entries within the timeframe. **Access Scope:** Reports > Aggregations > Read-Only + List all decryption entries within the timeframe. **Access Scope:** Reports > Granular Events > Read-Only :param var_from: A timestamp or relative time string (for example: '-1days'). Filter for data that appears after this time. (required) :type var_from: str @@ -1599,7 +1602,7 @@ def get_activity_dns( ) -> GetActivityDns200Response: """Get Activity DNS - List all DNS entries within the timeframe. **Access Scope:** Reports > Aggregations > Read-Only + List all DNS entries within the timeframe. **Access Scope:** Reports > Granular Events > Read-Only :param var_from: A timestamp or relative time string (for example: '-1days'). Filter for data that appears after this time. (required) :type var_from: str @@ -1735,7 +1738,7 @@ def get_activity_dns_with_http_info( ) -> ApiResponse[GetActivityDns200Response]: """Get Activity DNS - List all DNS entries within the timeframe. **Access Scope:** Reports > Aggregations > Read-Only + List all DNS entries within the timeframe. **Access Scope:** Reports > Granular Events > Read-Only :param var_from: A timestamp or relative time string (for example: '-1days'). Filter for data that appears after this time. (required) :type var_from: str @@ -1871,7 +1874,7 @@ def get_activity_dns_without_preload_content( ) -> RESTResponseType: """Get Activity DNS - List all DNS entries within the timeframe. **Access Scope:** Reports > Aggregations > Read-Only + List all DNS entries within the timeframe. **Access Scope:** Reports > Granular Events > Read-Only :param var_from: A timestamp or relative time string (for example: '-1days'). Filter for data that appears after this time. (required) :type var_from: str @@ -2143,7 +2146,7 @@ def get_activity_firewall( ) -> GetActivityFirewall200Response: """Get Activity Firewall - List all firewall activity within the timeframe. **Access Scope:** Reports > Aggregations > Read-Only + List all firewall activity within the timeframe. **Access Scope:** Reports > Granular Events > Read-Only :param var_from: A timestamp or relative time string (for example: '-1days'). Filter for data that appears after this time. (required) :type var_from: str @@ -2255,7 +2258,7 @@ def get_activity_firewall_with_http_info( ) -> ApiResponse[GetActivityFirewall200Response]: """Get Activity Firewall - List all firewall activity within the timeframe. **Access Scope:** Reports > Aggregations > Read-Only + List all firewall activity within the timeframe. **Access Scope:** Reports > Granular Events > Read-Only :param var_from: A timestamp or relative time string (for example: '-1days'). Filter for data that appears after this time. (required) :type var_from: str @@ -2367,7 +2370,7 @@ def get_activity_firewall_without_preload_content( ) -> RESTResponseType: """Get Activity Firewall - List all firewall activity within the timeframe. **Access Scope:** Reports > Aggregations > Read-Only + List all firewall activity within the timeframe. **Access Scope:** Reports > Granular Events > Read-Only :param var_from: A timestamp or relative time string (for example: '-1days'). Filter for data that appears after this time. (required) :type var_from: str @@ -2592,7 +2595,7 @@ def get_activity_intrusion( ) -> GetActivityIntrusion200Response: """Get Activity Intrusion - List all Intrusion Prevention System (IPS) activity within the timeframe. **Access Scope:** Reports > Aggregations > Read-Only + List all Intrusion Prevention System (IPS) activity within the timeframe. **Access Scope:** Reports > Granular Events > Read-Only :param var_from: A timestamp or relative time string (for example: '-1days'). Filter for data that appears after this time. (required) :type var_from: str @@ -2708,7 +2711,7 @@ def get_activity_intrusion_with_http_info( ) -> ApiResponse[GetActivityIntrusion200Response]: """Get Activity Intrusion - List all Intrusion Prevention System (IPS) activity within the timeframe. **Access Scope:** Reports > Aggregations > Read-Only + List all Intrusion Prevention System (IPS) activity within the timeframe. **Access Scope:** Reports > Granular Events > Read-Only :param var_from: A timestamp or relative time string (for example: '-1days'). Filter for data that appears after this time. (required) :type var_from: str @@ -2824,7 +2827,7 @@ def get_activity_intrusion_without_preload_content( ) -> RESTResponseType: """Get Activity Intrusion - List all Intrusion Prevention System (IPS) activity within the timeframe. **Access Scope:** Reports > Aggregations > Read-Only + List all Intrusion Prevention System (IPS) activity within the timeframe. **Access Scope:** Reports > Granular Events > Read-Only :param var_from: A timestamp or relative time string (for example: '-1days'). Filter for data that appears after this time. (required) :type var_from: str @@ -3055,7 +3058,7 @@ def get_activity_ip( ) -> GetActivityIP200Response: """Get Activity IP - (Deprecated) List all IP activity within the timeframe. **Access Scope:** Reports > Aggregations > Read-Only + (Deprecated) List all IP activity within the timeframe. **Access Scope:** Reports > Granular Events > Read-Only :param var_from: A timestamp or relative time string (for example: '-1days'). Filter for data that appears after this time. (required) :type var_from: str @@ -3163,7 +3166,7 @@ def get_activity_ip_with_http_info( ) -> ApiResponse[GetActivityIP200Response]: """Get Activity IP - (Deprecated) List all IP activity within the timeframe. **Access Scope:** Reports > Aggregations > Read-Only + (Deprecated) List all IP activity within the timeframe. **Access Scope:** Reports > Granular Events > Read-Only :param var_from: A timestamp or relative time string (for example: '-1days'). Filter for data that appears after this time. (required) :type var_from: str @@ -3271,7 +3274,7 @@ def get_activity_ip_without_preload_content( ) -> RESTResponseType: """Get Activity IP - (Deprecated) List all IP activity within the timeframe. **Access Scope:** Reports > Aggregations > Read-Only + (Deprecated) List all IP activity within the timeframe. **Access Scope:** Reports > Granular Events > Read-Only :param var_from: A timestamp or relative time string (for example: '-1days'). Filter for data that appears after this time. (required) :type var_from: str @@ -3505,7 +3508,7 @@ def get_activity_proxy( ) -> GetActivityProxy200Response: """Get Activity Proxy - List all proxy entries within the timeframe. **Access Scope:** Reports > Aggregations > Read-Only + List all proxy entries within the timeframe. **Access Scope:** Reports > Granular Events > Read-Only :param var_from: A timestamp or relative time string (for example: '-1days'). Filter for data that appears after this time. (required) :type var_from: str @@ -3689,7 +3692,7 @@ def get_activity_proxy_with_http_info( ) -> ApiResponse[GetActivityProxy200Response]: """Get Activity Proxy - List all proxy entries within the timeframe. **Access Scope:** Reports > Aggregations > Read-Only + List all proxy entries within the timeframe. **Access Scope:** Reports > Granular Events > Read-Only :param var_from: A timestamp or relative time string (for example: '-1days'). Filter for data that appears after this time. (required) :type var_from: str @@ -3873,7 +3876,7 @@ def get_activity_proxy_without_preload_content( ) -> RESTResponseType: """Get Activity Proxy - List all proxy entries within the timeframe. **Access Scope:** Reports > Aggregations > Read-Only + List all proxy entries within the timeframe. **Access Scope:** Reports > Granular Events > Read-Only :param var_from: A timestamp or relative time string (for example: '-1days'). Filter for data that appears after this time. (required) :type var_from: str @@ -4236,7 +4239,7 @@ def get_activity_ztna( ) -> GetActivityZTNA200Response: """Get Activity ZTNA - List all Zero Trust Network Access (ZTNA) entries within the timeframe. **Access Scope:** Reports > Aggregations > Read-Only + List all Zero Trust Network Access (ZTNA) entries within the timeframe. **Access Scope:** Reports > Granular Events > Read-Only :param var_from: A timestamp or relative time string (for example: '-1days'). Filter for data that appears after this time. (required) :type var_from: str @@ -4328,7 +4331,7 @@ def get_activity_ztna_with_http_info( ) -> ApiResponse[GetActivityZTNA200Response]: """Get Activity ZTNA - List all Zero Trust Network Access (ZTNA) entries within the timeframe. **Access Scope:** Reports > Aggregations > Read-Only + List all Zero Trust Network Access (ZTNA) entries within the timeframe. **Access Scope:** Reports > Granular Events > Read-Only :param var_from: A timestamp or relative time string (for example: '-1days'). Filter for data that appears after this time. (required) :type var_from: str @@ -4420,7 +4423,7 @@ def get_activity_ztna_without_preload_content( ) -> RESTResponseType: """Get Activity ZTNA - List all Zero Trust Network Access (ZTNA) entries within the timeframe. **Access Scope:** Reports > Aggregations > Read-Only + List all Zero Trust Network Access (ZTNA) entries within the timeframe. **Access Scope:** Reports > Granular Events > Read-Only :param var_from: A timestamp or relative time string (for example: '-1days'). Filter for data that appears after this time. (required) :type var_from: str diff --git a/secure_access/api/alert_rules_api.py b/secure_access/api/alert_rules_api.py new file mode 100644 index 0000000..34c08ad --- /dev/null +++ b/secure_access/api/alert_rules_api.py @@ -0,0 +1,1792 @@ +# Copyright 2026 Cisco Systems, Inc. and its affiliates +# +# SPDX-License-Identifier: Apache-2.0 + +# coding: utf-8 + +""" + Cisco Secure Access API + + Unified OpenAPI spec for Cisco Secure Access APIs. + + The version of the OpenAPI document: v2.0.202602030705 + Contact: devnet@cisco.com + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + +import warnings +from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt +from typing import Any, Dict, List, Optional, Tuple, Union +from typing_extensions import Annotated + +from pydantic import Field, StrictInt +from typing import List +from typing_extensions import Annotated +from secure_access.models.alert_rule import AlertRule +from secure_access.models.create_alert_rule201_response import CreateAlertRule201Response +from secure_access.models.create_alert_rule_request import CreateAlertRuleRequest +from secure_access.models.delete_alert_rules200_response import DeleteAlertRules200Response +from secure_access.models.delete_alert_rules_request import DeleteAlertRulesRequest +from secure_access.models.update_alert_rule200_response import UpdateAlertRule200Response +from secure_access.models.update_alert_rules_status200_response import UpdateAlertRulesStatus200Response +from secure_access.models.update_alerts_status_request import UpdateAlertsStatusRequest + +from secure_access.api_client import ApiClient, RequestSerialized +from secure_access.api_response import ApiResponse +from secure_access.rest import RESTResponseType + + +class AlertRulesApi: + """NOTE: This class is auto generated by OpenAPI Generator + Ref: https://openapi-generator.tech + + Do not edit the class manually. + """ + + def __init__(self, api_client=None) -> None: + if api_client is None: + api_client = ApiClient.get_default() + self.api_client = api_client + + + @validate_call + def create_alert_rule( + self, + create_alert_rule_request: CreateAlertRuleRequest, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> CreateAlertRule201Response: + """Create Alert Rule + + Create an alert rule in the organization. + + :param create_alert_rule_request: (required) + :type create_alert_rule_request: CreateAlertRuleRequest + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores 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_alert_rule_serialize( + create_alert_rule_request=create_alert_rule_request, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '201': "CreateAlertRule201Response", + '400': "Alerting400Error", + '401': "Alerting401Error", + '403': "Alerting403Error", + '404': "Alerting404Error", + '409': "Model409Error", + '422': "Model422Error", + '429': "Model429Error", + '500': "Alerting500Error", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ).data + + + @validate_call + def create_alert_rule_with_http_info( + self, + create_alert_rule_request: CreateAlertRuleRequest, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[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[CreateAlertRule201Response]: + """Create Alert Rule + + Create an alert rule in the organization. + + :param create_alert_rule_request: (required) + :type create_alert_rule_request: CreateAlertRuleRequest + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores 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_alert_rule_serialize( + create_alert_rule_request=create_alert_rule_request, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '201': "CreateAlertRule201Response", + '400': "Alerting400Error", + '401': "Alerting401Error", + '403': "Alerting403Error", + '404': "Alerting404Error", + '409': "Model409Error", + '422': "Model422Error", + '429': "Model429Error", + '500': "Alerting500Error", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ) + + + @validate_call + def create_alert_rule_without_preload_content( + self, + create_alert_rule_request: CreateAlertRuleRequest, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[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 Alert Rule + + Create an alert rule in the organization. + + :param create_alert_rule_request: (required) + :type create_alert_rule_request: CreateAlertRuleRequest + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores 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_alert_rule_serialize( + create_alert_rule_request=create_alert_rule_request, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '201': "CreateAlertRule201Response", + '400': "Alerting400Error", + '401': "Alerting401Error", + '403': "Alerting403Error", + '404': "Alerting404Error", + '409': "Model409Error", + '422': "Model422Error", + '429': "Model429Error", + '500': "Alerting500Error", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _create_alert_rule_serialize( + self, + create_alert_rule_request, + _request_auth, + _content_type, + _headers, + _host_index, + ) -> RequestSerialized: + + _host = None + + _collection_formats: Dict[str, str] = { + } + + _path_params: Dict[str, str] = {} + _query_params: List[Tuple[str, str]] = [] + _header_params: Dict[str, Optional[str]] = _headers or {} + _form_params: List[Tuple[str, str]] = [] + _files: Dict[ + str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] + ] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + # process the query parameters + # process the header parameters + # process the form parameters + # process the body parameter + if create_alert_rule_request is not None: + _body_params = create_alert_rule_request + + + # set the HTTP header `Accept` + if 'Accept' not in _header_params: + _header_params['Accept'] = self.api_client.select_header_accept( + [ + 'application/json' + ] + ) + + # set the HTTP header `Content-Type` + if _content_type: + _header_params['Content-Type'] = _content_type + else: + _default_content_type = ( + self.api_client.select_header_content_type( + [ + 'application/json' + ] + ) + ) + if _default_content_type is not None: + _header_params['Content-Type'] = _default_content_type + + # authentication setting + _auth_settings: List[str] = [ + 'oauthFlow' + ] + + return self.api_client.param_serialize( + method='POST', + resource_path='/admin/v2/alerting/rules', + 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_alert_rules( + self, + delete_alert_rules_request: DeleteAlertRulesRequest, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> DeleteAlertRules200Response: + """Delete Alert Rules + + Delete multiple alert rules. Provide a list of unique identifiers for the alert rules. + + :param delete_alert_rules_request: (required) + :type delete_alert_rules_request: DeleteAlertRulesRequest + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores 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_alert_rules_serialize( + delete_alert_rules_request=delete_alert_rules_request, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "DeleteAlertRules200Response", + '400': "Alerting400Error", + '401': "Alerting401Error", + '403': "Alerting403Error", + '404': "Alerting404Error", + '422': "Model422Error", + '429': "Model429Error", + '500': "Alerting500Error", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ).data + + + @validate_call + def delete_alert_rules_with_http_info( + self, + delete_alert_rules_request: DeleteAlertRulesRequest, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[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[DeleteAlertRules200Response]: + """Delete Alert Rules + + Delete multiple alert rules. Provide a list of unique identifiers for the alert rules. + + :param delete_alert_rules_request: (required) + :type delete_alert_rules_request: DeleteAlertRulesRequest + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores 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_alert_rules_serialize( + delete_alert_rules_request=delete_alert_rules_request, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "DeleteAlertRules200Response", + '400': "Alerting400Error", + '401': "Alerting401Error", + '403': "Alerting403Error", + '404': "Alerting404Error", + '422': "Model422Error", + '429': "Model429Error", + '500': "Alerting500Error", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ) + + + @validate_call + def delete_alert_rules_without_preload_content( + self, + delete_alert_rules_request: DeleteAlertRulesRequest, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[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 Alert Rules + + Delete multiple alert rules. Provide a list of unique identifiers for the alert rules. + + :param delete_alert_rules_request: (required) + :type delete_alert_rules_request: DeleteAlertRulesRequest + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores 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_alert_rules_serialize( + delete_alert_rules_request=delete_alert_rules_request, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "DeleteAlertRules200Response", + '400': "Alerting400Error", + '401': "Alerting401Error", + '403': "Alerting403Error", + '404': "Alerting404Error", + '422': "Model422Error", + '429': "Model429Error", + '500': "Alerting500Error", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _delete_alert_rules_serialize( + self, + delete_alert_rules_request, + _request_auth, + _content_type, + _headers, + _host_index, + ) -> RequestSerialized: + + _host = None + + _collection_formats: Dict[str, str] = { + } + + _path_params: Dict[str, str] = {} + _query_params: List[Tuple[str, str]] = [] + _header_params: Dict[str, Optional[str]] = _headers or {} + _form_params: List[Tuple[str, str]] = [] + _files: Dict[ + str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] + ] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + # process the query parameters + # process the header parameters + # process the form parameters + # process the body parameter + if delete_alert_rules_request is not None: + _body_params = delete_alert_rules_request + + + # set the HTTP header `Accept` + if 'Accept' not in _header_params: + _header_params['Accept'] = self.api_client.select_header_accept( + [ + 'application/json' + ] + ) + + # set the HTTP header `Content-Type` + if _content_type: + _header_params['Content-Type'] = _content_type + else: + _default_content_type = ( + self.api_client.select_header_content_type( + [ + 'application/json' + ] + ) + ) + if _default_content_type is not None: + _header_params['Content-Type'] = _default_content_type + + # authentication setting + _auth_settings: List[str] = [ + 'oauthFlow' + ] + + return self.api_client.param_serialize( + method='DELETE', + resource_path='/admin/v2/alerting/rules', + 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_alert_rule_by_id( + self, + rule_id: Annotated[StrictInt, Field(description="The unique identifier of the alert rule.")], + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> AlertRule: + """Get Alert Rule + + Get the details for an alert rule in the organization. + + :param rule_id: The unique identifier of the alert rule. (required) + :type rule_id: int + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._get_alert_rule_by_id_serialize( + rule_id=rule_id, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "AlertRule", + '400': "Alerting400Error", + '401': "Alerting401Error", + '403': "Alerting403Error", + '404': "Alerting404Error", + '429': "Model429Error", + '500': "Alerting500Error", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ).data + + + @validate_call + def get_alert_rule_by_id_with_http_info( + self, + rule_id: Annotated[StrictInt, Field(description="The unique identifier of the alert rule.")], + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[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[AlertRule]: + """Get Alert Rule + + Get the details for an alert rule in the organization. + + :param rule_id: The unique identifier of the alert rule. (required) + :type rule_id: int + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._get_alert_rule_by_id_serialize( + rule_id=rule_id, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "AlertRule", + '400': "Alerting400Error", + '401': "Alerting401Error", + '403': "Alerting403Error", + '404': "Alerting404Error", + '429': "Model429Error", + '500': "Alerting500Error", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ) + + + @validate_call + def get_alert_rule_by_id_without_preload_content( + self, + rule_id: Annotated[StrictInt, Field(description="The unique identifier of the alert rule.")], + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[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 Alert Rule + + Get the details for an alert rule in the organization. + + :param rule_id: The unique identifier of the alert rule. (required) + :type rule_id: int + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._get_alert_rule_by_id_serialize( + rule_id=rule_id, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "AlertRule", + '400': "Alerting400Error", + '401': "Alerting401Error", + '403': "Alerting403Error", + '404': "Alerting404Error", + '429': "Model429Error", + '500': "Alerting500Error", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _get_alert_rule_by_id_serialize( + self, + rule_id, + _request_auth, + _content_type, + _headers, + _host_index, + ) -> RequestSerialized: + + _host = None + + _collection_formats: Dict[str, str] = { + } + + _path_params: Dict[str, str] = {} + _query_params: List[Tuple[str, str]] = [] + _header_params: Dict[str, Optional[str]] = _headers or {} + _form_params: List[Tuple[str, str]] = [] + _files: Dict[ + str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] + ] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + if rule_id is not None: + _path_params['ruleId'] = rule_id + # process the query parameters + # process the header parameters + # process the form parameters + # process the body parameter + + + # set the HTTP header `Accept` + if 'Accept' not in _header_params: + _header_params['Accept'] = self.api_client.select_header_accept( + [ + 'application/json' + ] + ) + + + # authentication setting + _auth_settings: List[str] = [ + 'oauthFlow' + ] + + return self.api_client.param_serialize( + method='GET', + resource_path='/admin/v2/alerting/rules/{ruleId}', + path_params=_path_params, + query_params=_query_params, + header_params=_header_params, + body=_body_params, + post_params=_form_params, + files=_files, + auth_settings=_auth_settings, + collection_formats=_collection_formats, + _host=_host, + _request_auth=_request_auth + ) + + + + + @validate_call + def list_alert_rules( + self, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> List[AlertRule]: + """List Alert Rules + + Get the alert rules for the organization. + + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._list_alert_rules_serialize( + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "List[AlertRule]", + '400': "Alerting400Error", + '401': "Alerting401Error", + '403': "Alerting403Error", + '404': "Alerting404Error", + '500': "Alerting500Error", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ).data + + + @validate_call + def list_alert_rules_with_http_info( + self, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> ApiResponse[List[AlertRule]]: + """List Alert Rules + + Get the alert rules for the organization. + + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._list_alert_rules_serialize( + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "List[AlertRule]", + '400': "Alerting400Error", + '401': "Alerting401Error", + '403': "Alerting403Error", + '404': "Alerting404Error", + '500': "Alerting500Error", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ) + + + @validate_call + def list_alert_rules_without_preload_content( + self, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> RESTResponseType: + """List Alert Rules + + Get the alert rules for the organization. + + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._list_alert_rules_serialize( + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "List[AlertRule]", + '400': "Alerting400Error", + '401': "Alerting401Error", + '403': "Alerting403Error", + '404': "Alerting404Error", + '500': "Alerting500Error", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _list_alert_rules_serialize( + self, + _request_auth, + _content_type, + _headers, + _host_index, + ) -> RequestSerialized: + + _host = None + + _collection_formats: Dict[str, str] = { + } + + _path_params: Dict[str, str] = {} + _query_params: List[Tuple[str, str]] = [] + _header_params: Dict[str, Optional[str]] = _headers or {} + _form_params: List[Tuple[str, str]] = [] + _files: Dict[ + str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] + ] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + # process the query parameters + # process the header parameters + # process the form parameters + # process the body parameter + + + # set the HTTP header `Accept` + if 'Accept' not in _header_params: + _header_params['Accept'] = self.api_client.select_header_accept( + [ + 'application/json' + ] + ) + + + # authentication setting + _auth_settings: List[str] = [ + 'oauthFlow' + ] + + return self.api_client.param_serialize( + method='GET', + resource_path='/admin/v2/alerting/rules', + 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_alert_rule( + self, + rule_id: Annotated[StrictInt, Field(description="The unique identifier of the alert rule.")], + create_alert_rule_request: CreateAlertRuleRequest, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> UpdateAlertRule200Response: + """Update Alert Rule + + Update the properties of an alert rule. + + :param rule_id: The unique identifier of the alert rule. (required) + :type rule_id: int + :param create_alert_rule_request: (required) + :type create_alert_rule_request: CreateAlertRuleRequest + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores 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_alert_rule_serialize( + rule_id=rule_id, + create_alert_rule_request=create_alert_rule_request, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "UpdateAlertRule200Response", + '400': "Alerting400Error", + '401': "Alerting401Error", + '403': "Alerting403Error", + '404': "Alerting404Error", + '409': "Model409Error", + '422': "Model422Error", + '429': "Model429Error", + '500': "Alerting500Error", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ).data + + + @validate_call + def update_alert_rule_with_http_info( + self, + rule_id: Annotated[StrictInt, Field(description="The unique identifier of the alert rule.")], + create_alert_rule_request: CreateAlertRuleRequest, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[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[UpdateAlertRule200Response]: + """Update Alert Rule + + Update the properties of an alert rule. + + :param rule_id: The unique identifier of the alert rule. (required) + :type rule_id: int + :param create_alert_rule_request: (required) + :type create_alert_rule_request: CreateAlertRuleRequest + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores 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_alert_rule_serialize( + rule_id=rule_id, + create_alert_rule_request=create_alert_rule_request, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "UpdateAlertRule200Response", + '400': "Alerting400Error", + '401': "Alerting401Error", + '403': "Alerting403Error", + '404': "Alerting404Error", + '409': "Model409Error", + '422': "Model422Error", + '429': "Model429Error", + '500': "Alerting500Error", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ) + + + @validate_call + def update_alert_rule_without_preload_content( + self, + rule_id: Annotated[StrictInt, Field(description="The unique identifier of the alert rule.")], + create_alert_rule_request: CreateAlertRuleRequest, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[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 Alert Rule + + Update the properties of an alert rule. + + :param rule_id: The unique identifier of the alert rule. (required) + :type rule_id: int + :param create_alert_rule_request: (required) + :type create_alert_rule_request: CreateAlertRuleRequest + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores 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_alert_rule_serialize( + rule_id=rule_id, + create_alert_rule_request=create_alert_rule_request, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "UpdateAlertRule200Response", + '400': "Alerting400Error", + '401': "Alerting401Error", + '403': "Alerting403Error", + '404': "Alerting404Error", + '409': "Model409Error", + '422': "Model422Error", + '429': "Model429Error", + '500': "Alerting500Error", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _update_alert_rule_serialize( + self, + rule_id, + create_alert_rule_request, + _request_auth, + _content_type, + _headers, + _host_index, + ) -> RequestSerialized: + + _host = None + + _collection_formats: Dict[str, str] = { + } + + _path_params: Dict[str, str] = {} + _query_params: List[Tuple[str, str]] = [] + _header_params: Dict[str, Optional[str]] = _headers or {} + _form_params: List[Tuple[str, str]] = [] + _files: Dict[ + str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] + ] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + if rule_id is not None: + _path_params['ruleId'] = rule_id + # process the query parameters + # process the header parameters + # process the form parameters + # process the body parameter + if create_alert_rule_request is not None: + _body_params = create_alert_rule_request + + + # set the HTTP header `Accept` + if 'Accept' not in _header_params: + _header_params['Accept'] = self.api_client.select_header_accept( + [ + 'application/json' + ] + ) + + # set the HTTP header `Content-Type` + if _content_type: + _header_params['Content-Type'] = _content_type + else: + _default_content_type = ( + self.api_client.select_header_content_type( + [ + 'application/json' + ] + ) + ) + if _default_content_type is not None: + _header_params['Content-Type'] = _default_content_type + + # authentication setting + _auth_settings: List[str] = [ + 'oauthFlow' + ] + + return self.api_client.param_serialize( + method='PUT', + resource_path='/admin/v2/alerting/rules/{ruleId}', + 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_alert_rules_status( + self, + update_alerts_status_request: UpdateAlertsStatusRequest, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> UpdateAlertRulesStatus200Response: + """Update Status of Alert Rules + + Update the status of the alert rules. + + :param update_alerts_status_request: (required) + :type update_alerts_status_request: UpdateAlertsStatusRequest + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores 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_alert_rules_status_serialize( + update_alerts_status_request=update_alerts_status_request, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "UpdateAlertRulesStatus200Response", + '400': "Alerting400Error", + '401': "Alerting401Error", + '403': "Alerting403Error", + '404': "Alerting404Error", + '422': "Model422Error", + '429': "Model429Error", + '500': "Alerting500Error", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ).data + + + @validate_call + def update_alert_rules_status_with_http_info( + self, + update_alerts_status_request: UpdateAlertsStatusRequest, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[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[UpdateAlertRulesStatus200Response]: + """Update Status of Alert Rules + + Update the status of the alert rules. + + :param update_alerts_status_request: (required) + :type update_alerts_status_request: UpdateAlertsStatusRequest + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores 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_alert_rules_status_serialize( + update_alerts_status_request=update_alerts_status_request, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "UpdateAlertRulesStatus200Response", + '400': "Alerting400Error", + '401': "Alerting401Error", + '403': "Alerting403Error", + '404': "Alerting404Error", + '422': "Model422Error", + '429': "Model429Error", + '500': "Alerting500Error", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ) + + + @validate_call + def update_alert_rules_status_without_preload_content( + self, + update_alerts_status_request: UpdateAlertsStatusRequest, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[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 Status of Alert Rules + + Update the status of the alert rules. + + :param update_alerts_status_request: (required) + :type update_alerts_status_request: UpdateAlertsStatusRequest + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores 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_alert_rules_status_serialize( + update_alerts_status_request=update_alerts_status_request, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "UpdateAlertRulesStatus200Response", + '400': "Alerting400Error", + '401': "Alerting401Error", + '403': "Alerting403Error", + '404': "Alerting404Error", + '422': "Model422Error", + '429': "Model429Error", + '500': "Alerting500Error", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _update_alert_rules_status_serialize( + self, + update_alerts_status_request, + _request_auth, + _content_type, + _headers, + _host_index, + ) -> RequestSerialized: + + _host = None + + _collection_formats: Dict[str, str] = { + } + + _path_params: Dict[str, str] = {} + _query_params: List[Tuple[str, str]] = [] + _header_params: Dict[str, Optional[str]] = _headers or {} + _form_params: List[Tuple[str, str]] = [] + _files: Dict[ + str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] + ] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + # process the query parameters + # process the header parameters + # process the form parameters + # process the body parameter + if update_alerts_status_request is not None: + _body_params = update_alerts_status_request + + + # set the HTTP header `Accept` + if 'Accept' not in _header_params: + _header_params['Accept'] = self.api_client.select_header_accept( + [ + 'application/json' + ] + ) + + # set the HTTP header `Content-Type` + if _content_type: + _header_params['Content-Type'] = _content_type + else: + _default_content_type = ( + self.api_client.select_header_content_type( + [ + 'application/json' + ] + ) + ) + if _default_content_type is not None: + _header_params['Content-Type'] = _default_content_type + + # authentication setting + _auth_settings: List[str] = [ + 'oauthFlow' + ] + + return self.api_client.param_serialize( + method='PUT', + resource_path='/admin/v2/alerting/rules/status', + 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/secure_access/api/alerts_api.py b/secure_access/api/alerts_api.py new file mode 100644 index 0000000..8748004 --- /dev/null +++ b/secure_access/api/alerts_api.py @@ -0,0 +1,1412 @@ +# Copyright 2026 Cisco Systems, Inc. and its affiliates +# +# SPDX-License-Identifier: Apache-2.0 + +# coding: utf-8 + +""" + Cisco Secure Access API + + Unified OpenAPI spec for Cisco Secure Access APIs. + + The version of the OpenAPI document: v2.0.202602030705 + Contact: devnet@cisco.com + 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 datetime import datetime +from pydantic import Field, StrictBool, StrictInt, StrictStr, field_validator +from typing import Optional +from typing_extensions import Annotated +from secure_access.models.alert import Alert +from secure_access.models.list_alerts200_response import ListAlerts200Response +from secure_access.models.test_email_notification_response import TestEmailNotificationResponse +from secure_access.models.test_notification import TestNotification +from secure_access.models.time_range import TimeRange +from secure_access.models.update_alerts_status200_response import UpdateAlertsStatus200Response +from secure_access.models.update_alerts_status_request import UpdateAlertsStatusRequest + +from secure_access.api_client import ApiClient, RequestSerialized +from secure_access.api_response import ApiResponse +from secure_access.rest import RESTResponseType + + +class AlertsApi: + """NOTE: This class is auto generated by OpenAPI Generator + Ref: https://openapi-generator.tech + + Do not edit the class manually. + """ + + def __init__(self, api_client=None) -> None: + if api_client is None: + api_client = ApiClient.get_default() + self.api_client = api_client + + + @validate_call + def get_alert_by_id( + self, + alert_id: Annotated[StrictStr, Field(description="The unique identifier of the alert.")], + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> Alert: + """Get Alert + + Get the details for the specific alert sent by the system to the organization. + + :param alert_id: The unique identifier of the alert. (required) + :type alert_id: str + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._get_alert_by_id_serialize( + alert_id=alert_id, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "Alert", + '400': "Alerting400Error", + '401': "Alerting401Error", + '403': "Alerting403Error", + '404': "Alerting404Error", + '429': "Model429Error", + '500': "Alerting500Error", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ).data + + + @validate_call + def get_alert_by_id_with_http_info( + self, + alert_id: Annotated[StrictStr, Field(description="The unique identifier of the alert.")], + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[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[Alert]: + """Get Alert + + Get the details for the specific alert sent by the system to the organization. + + :param alert_id: The unique identifier of the alert. (required) + :type alert_id: str + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._get_alert_by_id_serialize( + alert_id=alert_id, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "Alert", + '400': "Alerting400Error", + '401': "Alerting401Error", + '403': "Alerting403Error", + '404': "Alerting404Error", + '429': "Model429Error", + '500': "Alerting500Error", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ) + + + @validate_call + def get_alert_by_id_without_preload_content( + self, + alert_id: Annotated[StrictStr, Field(description="The unique identifier of the alert.")], + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[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 Alert + + Get the details for the specific alert sent by the system to the organization. + + :param alert_id: The unique identifier of the alert. (required) + :type alert_id: str + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._get_alert_by_id_serialize( + alert_id=alert_id, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "Alert", + '400': "Alerting400Error", + '401': "Alerting401Error", + '403': "Alerting403Error", + '404': "Alerting404Error", + '429': "Model429Error", + '500': "Alerting500Error", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _get_alert_by_id_serialize( + self, + alert_id, + _request_auth, + _content_type, + _headers, + _host_index, + ) -> RequestSerialized: + + _host = None + + _collection_formats: Dict[str, str] = { + } + + _path_params: Dict[str, str] = {} + _query_params: List[Tuple[str, str]] = [] + _header_params: Dict[str, Optional[str]] = _headers or {} + _form_params: List[Tuple[str, str]] = [] + _files: Dict[ + str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] + ] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + if alert_id is not None: + _path_params['alertId'] = alert_id + # process the query parameters + # process the header parameters + # process the form parameters + # process the body parameter + + + # set the HTTP header `Accept` + if 'Accept' not in _header_params: + _header_params['Accept'] = self.api_client.select_header_accept( + [ + 'application/json' + ] + ) + + + # authentication setting + _auth_settings: List[str] = [ + 'oauthFlow' + ] + + return self.api_client.param_serialize( + method='GET', + resource_path='/admin/v2/alerting/alerts/{alertId}', + path_params=_path_params, + query_params=_query_params, + header_params=_header_params, + body=_body_params, + post_params=_form_params, + files=_files, + auth_settings=_auth_settings, + collection_formats=_collection_formats, + _host=_host, + _request_auth=_request_auth + ) + + + + + @validate_call + def list_alerts( + self, + status: Annotated[Optional[StrictInt], Field(description="Filter by the status of the alert. - 1 (Active) - 2 (Dismissed) - 3 (Resolved) - 4 (Archived)")] = None, + severity: Annotated[Optional[StrictInt], Field(description="Filter for the alerts by severity (1=High, 2=Medium, 3=Low ,4=Info).")] = None, + last_created_at: Annotated[Optional[datetime], Field(description="Filter for the alerts in the collection that the system created on the specified timestamp.")] = None, + modified_at: Annotated[Optional[datetime], Field(description="Filter for the alerts in the collection that the system modified on the specified timestamp.")] = None, + alert_name: Annotated[Optional[StrictStr], Field(description="Filter for the alerts in the collection by the alert name.")] = None, + pattern_search: Annotated[Optional[StrictStr], Field(description="Provide a search pattern to query for by the alert name, rule name, or rule category name.")] = None, + only_active_alerts_count: Annotated[Optional[StrictBool], Field(description="Query for the count of the active alerts only.")] = None, + limit: Annotated[Optional[StrictInt], Field(description="The maximum number of items to return from the collection in the response.")] = None, + offset: Annotated[Optional[StrictInt], Field(description="The place to start reading in the collection. The default offset is 0.")] = None, + time_range: Annotated[Optional[TimeRange], Field(description="Filter for the alerts in the collection that occur in the time range. Provide a start_time and end_time using the YYYY-MM-DD HH:MM:SS format. **Note:** You cannot use the `time_range` query parameter with the `created_after` filter.")] = None, + created_after: Annotated[Optional[datetime], Field(description="Filter for the alerts in the collection that the system created after the timestamp. Provide a date and time (ISO 8601) using the YYYY-MM-DD HH:MM:SS format. **Note:** You cannot use the `created_after` query parameter with the `time_range` filter.")] = None, + include_context: Annotated[Optional[StrictBool], Field(description="Include the context field in each alert response. The context contains additional metadata about the alert.")] = 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, + ) -> ListAlerts200Response: + """List Alerts + + Get the properties of the alerts for the organization. + + :param status: Filter by the status of the alert. - 1 (Active) - 2 (Dismissed) - 3 (Resolved) - 4 (Archived) + :type status: int + :param severity: Filter for the alerts by severity (1=High, 2=Medium, 3=Low ,4=Info). + :type severity: int + :param last_created_at: Filter for the alerts in the collection that the system created on the specified timestamp. + :type last_created_at: datetime + :param modified_at: Filter for the alerts in the collection that the system modified on the specified timestamp. + :type modified_at: datetime + :param alert_name: Filter for the alerts in the collection by the alert name. + :type alert_name: str + :param pattern_search: Provide a search pattern to query for by the alert name, rule name, or rule category name. + :type pattern_search: str + :param only_active_alerts_count: Query for the count of the active alerts only. + :type only_active_alerts_count: bool + :param limit: The maximum number of items to return from the collection in the response. + :type limit: int + :param offset: The place to start reading in the collection. The default offset is 0. + :type offset: int + :param time_range: Filter for the alerts in the collection that occur in the time range. Provide a start_time and end_time using the YYYY-MM-DD HH:MM:SS format. **Note:** You cannot use the `time_range` query parameter with the `created_after` filter. + :type time_range: TimeRange + :param created_after: Filter for the alerts in the collection that the system created after the timestamp. Provide a date and time (ISO 8601) using the YYYY-MM-DD HH:MM:SS format. **Note:** You cannot use the `created_after` query parameter with the `time_range` filter. + :type created_after: datetime + :param include_context: Include the context field in each alert response. The context contains additional metadata about the alert. + :type include_context: bool + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._list_alerts_serialize( + status=status, + severity=severity, + last_created_at=last_created_at, + modified_at=modified_at, + alert_name=alert_name, + pattern_search=pattern_search, + only_active_alerts_count=only_active_alerts_count, + limit=limit, + offset=offset, + time_range=time_range, + created_after=created_after, + include_context=include_context, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "ListAlerts200Response", + '400': "Alerting400Error", + '401': "Alerting401Error", + '403': "Alerting403Error", + '404': "Alerting404Error", + '429': "Model429Error", + '500': "Alerting500Error", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ).data + + + @validate_call + def list_alerts_with_http_info( + self, + status: Annotated[Optional[StrictInt], Field(description="Filter by the status of the alert. - 1 (Active) - 2 (Dismissed) - 3 (Resolved) - 4 (Archived)")] = None, + severity: Annotated[Optional[StrictInt], Field(description="Filter for the alerts by severity (1=High, 2=Medium, 3=Low ,4=Info).")] = None, + last_created_at: Annotated[Optional[datetime], Field(description="Filter for the alerts in the collection that the system created on the specified timestamp.")] = None, + modified_at: Annotated[Optional[datetime], Field(description="Filter for the alerts in the collection that the system modified on the specified timestamp.")] = None, + alert_name: Annotated[Optional[StrictStr], Field(description="Filter for the alerts in the collection by the alert name.")] = None, + pattern_search: Annotated[Optional[StrictStr], Field(description="Provide a search pattern to query for by the alert name, rule name, or rule category name.")] = None, + only_active_alerts_count: Annotated[Optional[StrictBool], Field(description="Query for the count of the active alerts only.")] = None, + limit: Annotated[Optional[StrictInt], Field(description="The maximum number of items to return from the collection in the response.")] = None, + offset: Annotated[Optional[StrictInt], Field(description="The place to start reading in the collection. The default offset is 0.")] = None, + time_range: Annotated[Optional[TimeRange], Field(description="Filter for the alerts in the collection that occur in the time range. Provide a start_time and end_time using the YYYY-MM-DD HH:MM:SS format. **Note:** You cannot use the `time_range` query parameter with the `created_after` filter.")] = None, + created_after: Annotated[Optional[datetime], Field(description="Filter for the alerts in the collection that the system created after the timestamp. Provide a date and time (ISO 8601) using the YYYY-MM-DD HH:MM:SS format. **Note:** You cannot use the `created_after` query parameter with the `time_range` filter.")] = None, + include_context: Annotated[Optional[StrictBool], Field(description="Include the context field in each alert response. The context contains additional metadata about the alert.")] = 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[ListAlerts200Response]: + """List Alerts + + Get the properties of the alerts for the organization. + + :param status: Filter by the status of the alert. - 1 (Active) - 2 (Dismissed) - 3 (Resolved) - 4 (Archived) + :type status: int + :param severity: Filter for the alerts by severity (1=High, 2=Medium, 3=Low ,4=Info). + :type severity: int + :param last_created_at: Filter for the alerts in the collection that the system created on the specified timestamp. + :type last_created_at: datetime + :param modified_at: Filter for the alerts in the collection that the system modified on the specified timestamp. + :type modified_at: datetime + :param alert_name: Filter for the alerts in the collection by the alert name. + :type alert_name: str + :param pattern_search: Provide a search pattern to query for by the alert name, rule name, or rule category name. + :type pattern_search: str + :param only_active_alerts_count: Query for the count of the active alerts only. + :type only_active_alerts_count: bool + :param limit: The maximum number of items to return from the collection in the response. + :type limit: int + :param offset: The place to start reading in the collection. The default offset is 0. + :type offset: int + :param time_range: Filter for the alerts in the collection that occur in the time range. Provide a start_time and end_time using the YYYY-MM-DD HH:MM:SS format. **Note:** You cannot use the `time_range` query parameter with the `created_after` filter. + :type time_range: TimeRange + :param created_after: Filter for the alerts in the collection that the system created after the timestamp. Provide a date and time (ISO 8601) using the YYYY-MM-DD HH:MM:SS format. **Note:** You cannot use the `created_after` query parameter with the `time_range` filter. + :type created_after: datetime + :param include_context: Include the context field in each alert response. The context contains additional metadata about the alert. + :type include_context: bool + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._list_alerts_serialize( + status=status, + severity=severity, + last_created_at=last_created_at, + modified_at=modified_at, + alert_name=alert_name, + pattern_search=pattern_search, + only_active_alerts_count=only_active_alerts_count, + limit=limit, + offset=offset, + time_range=time_range, + created_after=created_after, + include_context=include_context, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "ListAlerts200Response", + '400': "Alerting400Error", + '401': "Alerting401Error", + '403': "Alerting403Error", + '404': "Alerting404Error", + '429': "Model429Error", + '500': "Alerting500Error", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ) + + + @validate_call + def list_alerts_without_preload_content( + self, + status: Annotated[Optional[StrictInt], Field(description="Filter by the status of the alert. - 1 (Active) - 2 (Dismissed) - 3 (Resolved) - 4 (Archived)")] = None, + severity: Annotated[Optional[StrictInt], Field(description="Filter for the alerts by severity (1=High, 2=Medium, 3=Low ,4=Info).")] = None, + last_created_at: Annotated[Optional[datetime], Field(description="Filter for the alerts in the collection that the system created on the specified timestamp.")] = None, + modified_at: Annotated[Optional[datetime], Field(description="Filter for the alerts in the collection that the system modified on the specified timestamp.")] = None, + alert_name: Annotated[Optional[StrictStr], Field(description="Filter for the alerts in the collection by the alert name.")] = None, + pattern_search: Annotated[Optional[StrictStr], Field(description="Provide a search pattern to query for by the alert name, rule name, or rule category name.")] = None, + only_active_alerts_count: Annotated[Optional[StrictBool], Field(description="Query for the count of the active alerts only.")] = None, + limit: Annotated[Optional[StrictInt], Field(description="The maximum number of items to return from the collection in the response.")] = None, + offset: Annotated[Optional[StrictInt], Field(description="The place to start reading in the collection. The default offset is 0.")] = None, + time_range: Annotated[Optional[TimeRange], Field(description="Filter for the alerts in the collection that occur in the time range. Provide a start_time and end_time using the YYYY-MM-DD HH:MM:SS format. **Note:** You cannot use the `time_range` query parameter with the `created_after` filter.")] = None, + created_after: Annotated[Optional[datetime], Field(description="Filter for the alerts in the collection that the system created after the timestamp. Provide a date and time (ISO 8601) using the YYYY-MM-DD HH:MM:SS format. **Note:** You cannot use the `created_after` query parameter with the `time_range` filter.")] = None, + include_context: Annotated[Optional[StrictBool], Field(description="Include the context field in each alert response. The context contains additional metadata about the alert.")] = 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 Alerts + + Get the properties of the alerts for the organization. + + :param status: Filter by the status of the alert. - 1 (Active) - 2 (Dismissed) - 3 (Resolved) - 4 (Archived) + :type status: int + :param severity: Filter for the alerts by severity (1=High, 2=Medium, 3=Low ,4=Info). + :type severity: int + :param last_created_at: Filter for the alerts in the collection that the system created on the specified timestamp. + :type last_created_at: datetime + :param modified_at: Filter for the alerts in the collection that the system modified on the specified timestamp. + :type modified_at: datetime + :param alert_name: Filter for the alerts in the collection by the alert name. + :type alert_name: str + :param pattern_search: Provide a search pattern to query for by the alert name, rule name, or rule category name. + :type pattern_search: str + :param only_active_alerts_count: Query for the count of the active alerts only. + :type only_active_alerts_count: bool + :param limit: The maximum number of items to return from the collection in the response. + :type limit: int + :param offset: The place to start reading in the collection. The default offset is 0. + :type offset: int + :param time_range: Filter for the alerts in the collection that occur in the time range. Provide a start_time and end_time using the YYYY-MM-DD HH:MM:SS format. **Note:** You cannot use the `time_range` query parameter with the `created_after` filter. + :type time_range: TimeRange + :param created_after: Filter for the alerts in the collection that the system created after the timestamp. Provide a date and time (ISO 8601) using the YYYY-MM-DD HH:MM:SS format. **Note:** You cannot use the `created_after` query parameter with the `time_range` filter. + :type created_after: datetime + :param include_context: Include the context field in each alert response. The context contains additional metadata about the alert. + :type include_context: bool + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._list_alerts_serialize( + status=status, + severity=severity, + last_created_at=last_created_at, + modified_at=modified_at, + alert_name=alert_name, + pattern_search=pattern_search, + only_active_alerts_count=only_active_alerts_count, + limit=limit, + offset=offset, + time_range=time_range, + created_after=created_after, + include_context=include_context, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "ListAlerts200Response", + '400': "Alerting400Error", + '401': "Alerting401Error", + '403': "Alerting403Error", + '404': "Alerting404Error", + '429': "Model429Error", + '500': "Alerting500Error", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _list_alerts_serialize( + self, + status, + severity, + last_created_at, + modified_at, + alert_name, + pattern_search, + only_active_alerts_count, + limit, + offset, + time_range, + created_after, + include_context, + _request_auth, + _content_type, + _headers, + _host_index, + ) -> RequestSerialized: + + _host = None + + _collection_formats: Dict[str, str] = { + } + + _path_params: Dict[str, str] = {} + _query_params: List[Tuple[str, str]] = [] + _header_params: Dict[str, Optional[str]] = _headers or {} + _form_params: List[Tuple[str, str]] = [] + _files: Dict[ + str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] + ] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + # process the query parameters + if status is not None: + + _query_params.append(('status', status)) + + if severity is not None: + + _query_params.append(('severity', severity)) + + if last_created_at is not None: + if isinstance(last_created_at, datetime): + _query_params.append( + ( + 'last_created_at', + last_created_at.strftime( + self.api_client.configuration.datetime_format + ) + ) + ) + else: + _query_params.append(('last_created_at', last_created_at)) + + if modified_at is not None: + if isinstance(modified_at, datetime): + _query_params.append( + ( + 'modified_at', + modified_at.strftime( + self.api_client.configuration.datetime_format + ) + ) + ) + else: + _query_params.append(('modified_at', modified_at)) + + if alert_name is not None: + + _query_params.append(('alert_name', alert_name)) + + if pattern_search is not None: + + _query_params.append(('pattern_search', pattern_search)) + + if only_active_alerts_count is not None: + + _query_params.append(('only_active_alerts_count', only_active_alerts_count)) + + if limit is not None: + + _query_params.append(('limit', limit)) + + if offset is not None: + + _query_params.append(('offset', offset)) + + if time_range is not None: + + _query_params.append(('time_range', time_range)) + + if created_after is not None: + if isinstance(created_after, datetime): + _query_params.append( + ( + 'created_after', + created_after.strftime( + self.api_client.configuration.datetime_format + ) + ) + ) + else: + _query_params.append(('created_after', created_after)) + + if include_context is not None: + + _query_params.append(('include_context', include_context)) + + # process the header parameters + # process the form parameters + # process the body parameter + + + # set the HTTP header `Accept` + if 'Accept' not in _header_params: + _header_params['Accept'] = self.api_client.select_header_accept( + [ + 'application/json' + ] + ) + + + # authentication setting + _auth_settings: List[str] = [ + 'oauthFlow' + ] + + return self.api_client.param_serialize( + method='GET', + resource_path='/admin/v2/alerting/alerts', + 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 send_alert_notifications( + self, + test_notification: TestNotification, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> TestEmailNotificationResponse: + """Create Test Alert by Email + + Create a test notification and send the alert to the recipients configured in the alert rule. + + :param test_notification: (required) + :type test_notification: TestNotification + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._send_alert_notifications_serialize( + test_notification=test_notification, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "TestEmailNotificationResponse", + '400': "Alerting400Error", + '401': "Alerting401Error", + '403': "Alerting403Error", + '404': "Alerting404Error", + '429': "Model429Error", + '500': "Alerting500Error", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ).data + + + @validate_call + def send_alert_notifications_with_http_info( + self, + test_notification: TestNotification, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[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[TestEmailNotificationResponse]: + """Create Test Alert by Email + + Create a test notification and send the alert to the recipients configured in the alert rule. + + :param test_notification: (required) + :type test_notification: TestNotification + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._send_alert_notifications_serialize( + test_notification=test_notification, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "TestEmailNotificationResponse", + '400': "Alerting400Error", + '401': "Alerting401Error", + '403': "Alerting403Error", + '404': "Alerting404Error", + '429': "Model429Error", + '500': "Alerting500Error", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ) + + + @validate_call + def send_alert_notifications_without_preload_content( + self, + test_notification: TestNotification, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[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 Test Alert by Email + + Create a test notification and send the alert to the recipients configured in the alert rule. + + :param test_notification: (required) + :type test_notification: TestNotification + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._send_alert_notifications_serialize( + test_notification=test_notification, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "TestEmailNotificationResponse", + '400': "Alerting400Error", + '401': "Alerting401Error", + '403': "Alerting403Error", + '404': "Alerting404Error", + '429': "Model429Error", + '500': "Alerting500Error", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _send_alert_notifications_serialize( + self, + test_notification, + _request_auth, + _content_type, + _headers, + _host_index, + ) -> RequestSerialized: + + _host = None + + _collection_formats: Dict[str, str] = { + } + + _path_params: Dict[str, str] = {} + _query_params: List[Tuple[str, str]] = [] + _header_params: Dict[str, Optional[str]] = _headers or {} + _form_params: List[Tuple[str, str]] = [] + _files: Dict[ + str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] + ] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + # process the query parameters + # process the header parameters + # process the form parameters + # process the body parameter + if test_notification is not None: + _body_params = test_notification + + + # set the HTTP header `Accept` + if 'Accept' not in _header_params: + _header_params['Accept'] = self.api_client.select_header_accept( + [ + 'application/json' + ] + ) + + # set the HTTP header `Content-Type` + if _content_type: + _header_params['Content-Type'] = _content_type + else: + _default_content_type = ( + self.api_client.select_header_content_type( + [ + 'application/json' + ] + ) + ) + if _default_content_type is not None: + _header_params['Content-Type'] = _default_content_type + + # authentication setting + _auth_settings: List[str] = [ + 'oauthFlow' + ] + + return self.api_client.param_serialize( + method='POST', + resource_path='/admin/v2/alerting/alerts/testNotifications/Email', + 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_alerts_status( + self, + update_alerts_status_request: UpdateAlertsStatusRequest, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> UpdateAlertsStatus200Response: + """Update Status of Alerts + + Update the status of the alerts in the organization. + + :param update_alerts_status_request: (required) + :type update_alerts_status_request: UpdateAlertsStatusRequest + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores 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_alerts_status_serialize( + update_alerts_status_request=update_alerts_status_request, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "UpdateAlertsStatus200Response", + '400': "Alerting400Error", + '401': "Alerting401Error", + '403': "Alerting403Error", + '404': "Alerting404Error", + '422': "Model422Error", + '429': "Model429Error", + '500': "Alerting500Error", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ).data + + + @validate_call + def update_alerts_status_with_http_info( + self, + update_alerts_status_request: UpdateAlertsStatusRequest, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[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[UpdateAlertsStatus200Response]: + """Update Status of Alerts + + Update the status of the alerts in the organization. + + :param update_alerts_status_request: (required) + :type update_alerts_status_request: UpdateAlertsStatusRequest + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores 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_alerts_status_serialize( + update_alerts_status_request=update_alerts_status_request, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "UpdateAlertsStatus200Response", + '400': "Alerting400Error", + '401': "Alerting401Error", + '403': "Alerting403Error", + '404': "Alerting404Error", + '422': "Model422Error", + '429': "Model429Error", + '500': "Alerting500Error", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ) + + + @validate_call + def update_alerts_status_without_preload_content( + self, + update_alerts_status_request: UpdateAlertsStatusRequest, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[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 Status of Alerts + + Update the status of the alerts in the organization. + + :param update_alerts_status_request: (required) + :type update_alerts_status_request: UpdateAlertsStatusRequest + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores 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_alerts_status_serialize( + update_alerts_status_request=update_alerts_status_request, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "UpdateAlertsStatus200Response", + '400': "Alerting400Error", + '401': "Alerting401Error", + '403': "Alerting403Error", + '404': "Alerting404Error", + '422': "Model422Error", + '429': "Model429Error", + '500': "Alerting500Error", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _update_alerts_status_serialize( + self, + update_alerts_status_request, + _request_auth, + _content_type, + _headers, + _host_index, + ) -> RequestSerialized: + + _host = None + + _collection_formats: Dict[str, str] = { + } + + _path_params: Dict[str, str] = {} + _query_params: List[Tuple[str, str]] = [] + _header_params: Dict[str, Optional[str]] = _headers or {} + _form_params: List[Tuple[str, str]] = [] + _files: Dict[ + str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] + ] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + # process the query parameters + # process the header parameters + # process the form parameters + # process the body parameter + if update_alerts_status_request is not None: + _body_params = update_alerts_status_request + + + # set the HTTP header `Accept` + if 'Accept' not in _header_params: + _header_params['Accept'] = self.api_client.select_header_accept( + [ + 'application/json' + ] + ) + + # set the HTTP header `Content-Type` + if _content_type: + _header_params['Content-Type'] = _content_type + else: + _default_content_type = ( + self.api_client.select_header_content_type( + [ + 'application/json' + ] + ) + ) + if _default_content_type is not None: + _header_params['Content-Type'] = _default_content_type + + # authentication setting + _auth_settings: List[str] = [ + 'oauthFlow' + ] + + return self.api_client.param_serialize( + method='PUT', + resource_path='/admin/v2/alerting/alerts/status', + 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/secure_access/api/api_keys_api.py b/secure_access/api/api_keys_api.py index 759aa40..5499664 100644 --- a/secure_access/api/api_keys_api.py +++ b/secure_access/api/api_keys_api.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/api/api_usage_report_api.py b/secure_access/api/api_usage_report_api.py index 296bf36..8724e6c 100644 --- a/secure_access/api/api_usage_report_api.py +++ b/secure_access/api/api_usage_report_api.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/api/application_categories_api.py b/secure_access/api/application_categories_api.py index fa870d4..ab2ed97 100644 --- a/secure_access/api/application_categories_api.py +++ b/secure_access/api/application_categories_api.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/api/application_lists_api.py b/secure_access/api/application_lists_api.py index 8719cb1..ee26ed5 100644 --- a/secure_access/api/application_lists_api.py +++ b/secure_access/api/application_lists_api.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/api/applications_api.py b/secure_access/api/applications_api.py index cc077c2..4c396a2 100644 --- a/secure_access/api/applications_api.py +++ b/secure_access/api/applications_api.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/api/as_information_for_a_domain_api.py b/secure_access/api/as_information_for_a_domain_api.py index d473fe1..4958fc7 100644 --- a/secure_access/api/as_information_for_a_domain_api.py +++ b/secure_access/api/as_information_for_a_domain_api.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/api/bandwidth_by_hour_api.py b/secure_access/api/bandwidth_by_hour_api.py index 2679060..581dea1 100644 --- a/secure_access/api/bandwidth_by_hour_api.py +++ b/secure_access/api/bandwidth_by_hour_api.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) @@ -83,7 +83,7 @@ def get_bandwidth_by_hour( ) -> GetBandwidthByHour200Response: """Get Bandwidth by Hour (All) - List the bandwidth in bytes within the timeframe. Only returns proxy data. **Access Scope:** Reports > Granular Events > Read-Only + List the bandwidth in bytes within the timeframe. Only returns proxy data. **Access Scope:** Reports > Aggregations > Read-Only :param var_from: A timestamp or relative time string (for example: '-1days'). Filter for data that appears after this time. (required) :type var_from: str @@ -235,7 +235,7 @@ def get_bandwidth_by_hour_with_http_info( ) -> ApiResponse[GetBandwidthByHour200Response]: """Get Bandwidth by Hour (All) - List the bandwidth in bytes within the timeframe. Only returns proxy data. **Access Scope:** Reports > Granular Events > Read-Only + List the bandwidth in bytes within the timeframe. Only returns proxy data. **Access Scope:** Reports > Aggregations > Read-Only :param var_from: A timestamp or relative time string (for example: '-1days'). Filter for data that appears after this time. (required) :type var_from: str @@ -387,7 +387,7 @@ def get_bandwidth_by_hour_without_preload_content( ) -> RESTResponseType: """Get Bandwidth by Hour (All) - List the bandwidth in bytes within the timeframe. Only returns proxy data. **Access Scope:** Reports > Granular Events > Read-Only + List the bandwidth in bytes within the timeframe. Only returns proxy data. **Access Scope:** Reports > Aggregations > Read-Only :param var_from: A timestamp or relative time string (for example: '-1days'). Filter for data that appears after this time. (required) :type var_from: str diff --git a/secure_access/api/bandwidth_by_timerange_api.py b/secure_access/api/bandwidth_by_timerange_api.py index f6b0066..4fa4cc1 100644 --- a/secure_access/api/bandwidth_by_timerange_api.py +++ b/secure_access/api/bandwidth_by_timerange_api.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) @@ -84,7 +84,7 @@ def get_bandwidth_by_timerange( ) -> GetBandwidthByHour200Response: """Get Bandwidth by Timerange (All) - List the bandwidth in bytes within the timeframe. Only returns proxy data. **Access Scope:** Reports > Granular Events > Read-Only + List the bandwidth in bytes within the timeframe. Only returns proxy data. **Access Scope:** Reports > Aggregations > Read-Only :param var_from: A timestamp or relative time string (for example: '-1days'). Filter for data that appears after this time. (required) :type var_from: str @@ -240,7 +240,7 @@ def get_bandwidth_by_timerange_with_http_info( ) -> ApiResponse[GetBandwidthByHour200Response]: """Get Bandwidth by Timerange (All) - List the bandwidth in bytes within the timeframe. Only returns proxy data. **Access Scope:** Reports > Granular Events > Read-Only + List the bandwidth in bytes within the timeframe. Only returns proxy data. **Access Scope:** Reports > Aggregations > Read-Only :param var_from: A timestamp or relative time string (for example: '-1days'). Filter for data that appears after this time. (required) :type var_from: str @@ -396,7 +396,7 @@ def get_bandwidth_by_timerange_without_preload_content( ) -> RESTResponseType: """Get Bandwidth by Timerange (All) - List the bandwidth in bytes within the timeframe. Only returns proxy data. **Access Scope:** Reports > Granular Events > Read-Only + List the bandwidth in bytes within the timeframe. Only returns proxy data. **Access Scope:** Reports > Aggregations > Read-Only :param var_from: A timestamp or relative time string (for example: '-1days'). Filter for data that appears after this time. (required) :type var_from: str diff --git a/secure_access/api/cisco_secure_malware_analytics_integration_api.py b/secure_access/api/cisco_secure_malware_analytics_integration_api.py index c7f6d32..8f7c5b4 100644 --- a/secure_access/api/cisco_secure_malware_analytics_integration_api.py +++ b/secure_access/api/cisco_secure_malware_analytics_integration_api.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/api/classifications_api.py b/secure_access/api/classifications_api.py new file mode 100644 index 0000000..ad2ace0 --- /dev/null +++ b/secure_access/api/classifications_api.py @@ -0,0 +1,2084 @@ +# Copyright 2026 Cisco Systems, Inc. and its affiliates +# +# SPDX-License-Identifier: Apache-2.0 + +# coding: utf-8 + +""" + Cisco Secure Access API + + Unified OpenAPI spec for Cisco Secure Access APIs. + + The version of the OpenAPI document: v2.0.202602030705 + Contact: devnet@cisco.com + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + +import warnings +from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt +from typing import Any, Dict, List, Optional, Tuple, Union +from typing_extensions import Annotated + +from pydantic import Field, StrictInt, StrictStr, field_validator +from typing import List, Optional +from typing_extensions import Annotated +from uuid import UUID +from secure_access.models.data_classification import DataClassification +from secure_access.models.data_classification_create_request import DataClassificationCreateRequest +from secure_access.models.data_classification_list_item import DataClassificationListItem +from secure_access.models.data_classification_patch_request import DataClassificationPatchRequest + +from secure_access.api_client import ApiClient, RequestSerialized +from secure_access.api_response import ApiResponse +from secure_access.rest import RESTResponseType + + +class ClassificationsApi: + """NOTE: This class is auto generated by OpenAPI Generator + Ref: https://openapi-generator.tech + + Do not edit the class manually. + """ + + def __init__(self, api_client=None) -> None: + if api_client is None: + api_client = ApiClient.get_default() + self.api_client = api_client + + + @validate_call + def create_custom_dlp_classification( + self, + data_classification_create_request: DataClassificationCreateRequest, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> DataClassification: + """Create Custom DLP Classification + + Create a custom DLP classification. + + :param data_classification_create_request: (required) + :type data_classification_create_request: DataClassificationCreateRequest + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores 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_custom_dlp_classification_serialize( + data_classification_create_request=data_classification_create_request, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '201': "DataClassification", + '400': "ApiErrorResponse", + '500': "ApiErrorResponse", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ).data + + + @validate_call + def create_custom_dlp_classification_with_http_info( + self, + data_classification_create_request: DataClassificationCreateRequest, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[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[DataClassification]: + """Create Custom DLP Classification + + Create a custom DLP classification. + + :param data_classification_create_request: (required) + :type data_classification_create_request: DataClassificationCreateRequest + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores 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_custom_dlp_classification_serialize( + data_classification_create_request=data_classification_create_request, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '201': "DataClassification", + '400': "ApiErrorResponse", + '500': "ApiErrorResponse", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ) + + + @validate_call + def create_custom_dlp_classification_without_preload_content( + self, + data_classification_create_request: DataClassificationCreateRequest, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[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 Custom DLP Classification + + Create a custom DLP classification. + + :param data_classification_create_request: (required) + :type data_classification_create_request: DataClassificationCreateRequest + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores 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_custom_dlp_classification_serialize( + data_classification_create_request=data_classification_create_request, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '201': "DataClassification", + '400': "ApiErrorResponse", + '500': "ApiErrorResponse", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _create_custom_dlp_classification_serialize( + self, + data_classification_create_request, + _request_auth, + _content_type, + _headers, + _host_index, + ) -> RequestSerialized: + + _host = None + + _collection_formats: Dict[str, str] = { + } + + _path_params: Dict[str, str] = {} + _query_params: List[Tuple[str, str]] = [] + _header_params: Dict[str, Optional[str]] = _headers or {} + _form_params: List[Tuple[str, str]] = [] + _files: Dict[ + str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] + ] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + # process the query parameters + # process the header parameters + # process the form parameters + # process the body parameter + if data_classification_create_request is not None: + _body_params = data_classification_create_request + + + # set the HTTP header `Accept` + if 'Accept' not in _header_params: + _header_params['Accept'] = self.api_client.select_header_accept( + [ + 'application/json' + ] + ) + + # set the HTTP header `Content-Type` + if _content_type: + _header_params['Content-Type'] = _content_type + else: + _default_content_type = ( + self.api_client.select_header_content_type( + [ + 'application/json' + ] + ) + ) + if _default_content_type is not None: + _header_params['Content-Type'] = _default_content_type + + # authentication setting + _auth_settings: List[str] = [ + 'oauthFlow' + ] + + return self.api_client.param_serialize( + method='POST', + resource_path='/policies/v2/dlp/custom/classifications', + 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_custom_dlp_classification( + self, + classification_id: Annotated[UUID, Field(description="The unique identifier of the classification.")], + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[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 Custom DLP Classification + + Delete a custom DLP classification. + + :param classification_id: The unique identifier of the classification. (required) + :type classification_id: UUID + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores 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_custom_dlp_classification_serialize( + classification_id=classification_id, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '204': None, + '400': "ApiErrorResponse", + '404': "ApiErrorResponse", + '500': "ApiErrorResponse", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ).data + + + @validate_call + def delete_custom_dlp_classification_with_http_info( + self, + classification_id: Annotated[UUID, Field(description="The unique identifier of the classification.")], + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[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 Custom DLP Classification + + Delete a custom DLP classification. + + :param classification_id: The unique identifier of the classification. (required) + :type classification_id: UUID + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores 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_custom_dlp_classification_serialize( + classification_id=classification_id, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '204': None, + '400': "ApiErrorResponse", + '404': "ApiErrorResponse", + '500': "ApiErrorResponse", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ) + + + @validate_call + def delete_custom_dlp_classification_without_preload_content( + self, + classification_id: Annotated[UUID, Field(description="The unique identifier of the classification.")], + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[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 Custom DLP Classification + + Delete a custom DLP classification. + + :param classification_id: The unique identifier of the classification. (required) + :type classification_id: UUID + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores 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_custom_dlp_classification_serialize( + classification_id=classification_id, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '204': None, + '400': "ApiErrorResponse", + '404': "ApiErrorResponse", + '500': "ApiErrorResponse", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _delete_custom_dlp_classification_serialize( + self, + classification_id, + _request_auth, + _content_type, + _headers, + _host_index, + ) -> RequestSerialized: + + _host = None + + _collection_formats: Dict[str, str] = { + } + + _path_params: Dict[str, str] = {} + _query_params: List[Tuple[str, str]] = [] + _header_params: Dict[str, Optional[str]] = _headers or {} + _form_params: List[Tuple[str, str]] = [] + _files: Dict[ + str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] + ] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + if classification_id is not None: + _path_params['classificationId'] = classification_id + # process the query parameters + # process the header parameters + # process the form parameters + # process the body parameter + + + # set the HTTP header `Accept` + if 'Accept' not in _header_params: + _header_params['Accept'] = self.api_client.select_header_accept( + [ + 'application/json' + ] + ) + + + # authentication setting + _auth_settings: List[str] = [ + 'oauthFlow' + ] + + return self.api_client.param_serialize( + method='DELETE', + resource_path='/policies/v2/dlp/custom/classifications/{classificationId}', + 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_all_built_in_dlp_classifications( + self, + name: Annotated[Optional[StrictStr], Field(description="The name of the built-in classification. The value of `name` is case insensitive and the system allows partial matches.")] = None, + limit: Annotated[Optional[Annotated[int, Field(le=100, strict=True, ge=1)]], Field(description="The number of records returned by the system in the response. The maximum number of items that are allowed in the response is 100. The default number of items returned in the response is 50.")] = None, + offset: Annotated[Optional[StrictInt], Field(description="The numeric offset into the collection used for pagination. Set the `offset` to skip the number of records from the collection in the response. The default value is `0`. ")] = None, + fields: Annotated[Optional[List[StrictStr]], Field(description="A comma-separated list of fields to include in the 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, + ) -> List[DataClassificationListItem]: + """List Built-In DLP Classifications + + List the built-in DLP classifications. You can query the data identifiers using the `name` parameter. Use the `fields` query parameter to include additional fields in the response. + + :param name: The name of the built-in classification. The value of `name` is case insensitive and the system allows partial matches. + :type name: str + :param limit: The number of records returned by the system in the response. The maximum number of items that are allowed in the response is 100. The default number of items returned in the response is 50. + :type limit: int + :param offset: The numeric offset into the collection used for pagination. Set the `offset` to skip the number of records from the collection in the response. The default value is `0`. + :type offset: int + :param fields: A comma-separated list of fields to include in the response. + :type fields: List[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_all_built_in_dlp_classifications_serialize( + name=name, + limit=limit, + offset=offset, + fields=fields, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "List[DataClassificationListItem]", + '400': "ApiErrorResponse", + '404': "ApiErrorResponse", + '500': "ApiErrorResponse", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ).data + + + @validate_call + def get_all_built_in_dlp_classifications_with_http_info( + self, + name: Annotated[Optional[StrictStr], Field(description="The name of the built-in classification. The value of `name` is case insensitive and the system allows partial matches.")] = None, + limit: Annotated[Optional[Annotated[int, Field(le=100, strict=True, ge=1)]], Field(description="The number of records returned by the system in the response. The maximum number of items that are allowed in the response is 100. The default number of items returned in the response is 50.")] = None, + offset: Annotated[Optional[StrictInt], Field(description="The numeric offset into the collection used for pagination. Set the `offset` to skip the number of records from the collection in the response. The default value is `0`. ")] = None, + fields: Annotated[Optional[List[StrictStr]], Field(description="A comma-separated list of fields to include in the 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[List[DataClassificationListItem]]: + """List Built-In DLP Classifications + + List the built-in DLP classifications. You can query the data identifiers using the `name` parameter. Use the `fields` query parameter to include additional fields in the response. + + :param name: The name of the built-in classification. The value of `name` is case insensitive and the system allows partial matches. + :type name: str + :param limit: The number of records returned by the system in the response. The maximum number of items that are allowed in the response is 100. The default number of items returned in the response is 50. + :type limit: int + :param offset: The numeric offset into the collection used for pagination. Set the `offset` to skip the number of records from the collection in the response. The default value is `0`. + :type offset: int + :param fields: A comma-separated list of fields to include in the response. + :type fields: List[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_all_built_in_dlp_classifications_serialize( + name=name, + limit=limit, + offset=offset, + fields=fields, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "List[DataClassificationListItem]", + '400': "ApiErrorResponse", + '404': "ApiErrorResponse", + '500': "ApiErrorResponse", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ) + + + @validate_call + def get_all_built_in_dlp_classifications_without_preload_content( + self, + name: Annotated[Optional[StrictStr], Field(description="The name of the built-in classification. The value of `name` is case insensitive and the system allows partial matches.")] = None, + limit: Annotated[Optional[Annotated[int, Field(le=100, strict=True, ge=1)]], Field(description="The number of records returned by the system in the response. The maximum number of items that are allowed in the response is 100. The default number of items returned in the response is 50.")] = None, + offset: Annotated[Optional[StrictInt], Field(description="The numeric offset into the collection used for pagination. Set the `offset` to skip the number of records from the collection in the response. The default value is `0`. ")] = None, + fields: Annotated[Optional[List[StrictStr]], Field(description="A comma-separated list of fields to include in the 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 Built-In DLP Classifications + + List the built-in DLP classifications. You can query the data identifiers using the `name` parameter. Use the `fields` query parameter to include additional fields in the response. + + :param name: The name of the built-in classification. The value of `name` is case insensitive and the system allows partial matches. + :type name: str + :param limit: The number of records returned by the system in the response. The maximum number of items that are allowed in the response is 100. The default number of items returned in the response is 50. + :type limit: int + :param offset: The numeric offset into the collection used for pagination. Set the `offset` to skip the number of records from the collection in the response. The default value is `0`. + :type offset: int + :param fields: A comma-separated list of fields to include in the response. + :type fields: List[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_all_built_in_dlp_classifications_serialize( + name=name, + limit=limit, + offset=offset, + fields=fields, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "List[DataClassificationListItem]", + '400': "ApiErrorResponse", + '404': "ApiErrorResponse", + '500': "ApiErrorResponse", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _get_all_built_in_dlp_classifications_serialize( + self, + name, + limit, + offset, + fields, + _request_auth, + _content_type, + _headers, + _host_index, + ) -> RequestSerialized: + + _host = None + + _collection_formats: Dict[str, str] = { + 'fields': 'csv', + } + + _path_params: Dict[str, str] = {} + _query_params: List[Tuple[str, str]] = [] + _header_params: Dict[str, Optional[str]] = _headers or {} + _form_params: List[Tuple[str, str]] = [] + _files: Dict[ + str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] + ] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + # process the query parameters + if name is not None: + + _query_params.append(('name', name)) + + if limit is not None: + + _query_params.append(('limit', limit)) + + if offset is not None: + + _query_params.append(('offset', offset)) + + if fields is not None: + + _query_params.append(('fields', fields)) + + # process the header parameters + # process the form parameters + # process the body parameter + + + # set the HTTP header `Accept` + if 'Accept' not in _header_params: + _header_params['Accept'] = self.api_client.select_header_accept( + [ + 'application/json' + ] + ) + + + # authentication setting + _auth_settings: List[str] = [ + 'oauthFlow' + ] + + return self.api_client.param_serialize( + method='GET', + resource_path='/policies/v2/dlp/builtIn/classifications', + 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_all_custom_dlp_classifications( + self, + name: Annotated[Optional[StrictStr], Field(description="The name of the custom classification. The value of `name` is case insensitive and the system allows partial matches.")] = None, + limit: Annotated[Optional[Annotated[int, Field(le=100, strict=True, ge=1)]], Field(description="The number of records returned by the system in the response. The maximum number of items that are allowed in the response is 100. The default number of items returned in the response is 50.")] = None, + offset: Annotated[Optional[StrictInt], Field(description="The numeric offset into the collection used for pagination. Set the `offset` to skip the number of records from the collection in the response. The default value is `0`. ")] = None, + fields: Annotated[Optional[List[StrictStr]], Field(description="A comma-separated list of fields to include in the 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, + ) -> List[DataClassificationListItem]: + """List Custom DLP Classifications + + List the custom DLP classifications. You can query the data identifiers using the `name` parameter. Use the `fields` query parameter to include additional fields in the response. + + :param name: The name of the custom classification. The value of `name` is case insensitive and the system allows partial matches. + :type name: str + :param limit: The number of records returned by the system in the response. The maximum number of items that are allowed in the response is 100. The default number of items returned in the response is 50. + :type limit: int + :param offset: The numeric offset into the collection used for pagination. Set the `offset` to skip the number of records from the collection in the response. The default value is `0`. + :type offset: int + :param fields: A comma-separated list of fields to include in the response. + :type fields: List[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_all_custom_dlp_classifications_serialize( + name=name, + limit=limit, + offset=offset, + fields=fields, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "List[DataClassificationListItem]", + '400': "ApiErrorResponse", + '404': "ApiErrorResponse", + '500': "ApiErrorResponse", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ).data + + + @validate_call + def get_all_custom_dlp_classifications_with_http_info( + self, + name: Annotated[Optional[StrictStr], Field(description="The name of the custom classification. The value of `name` is case insensitive and the system allows partial matches.")] = None, + limit: Annotated[Optional[Annotated[int, Field(le=100, strict=True, ge=1)]], Field(description="The number of records returned by the system in the response. The maximum number of items that are allowed in the response is 100. The default number of items returned in the response is 50.")] = None, + offset: Annotated[Optional[StrictInt], Field(description="The numeric offset into the collection used for pagination. Set the `offset` to skip the number of records from the collection in the response. The default value is `0`. ")] = None, + fields: Annotated[Optional[List[StrictStr]], Field(description="A comma-separated list of fields to include in the 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[List[DataClassificationListItem]]: + """List Custom DLP Classifications + + List the custom DLP classifications. You can query the data identifiers using the `name` parameter. Use the `fields` query parameter to include additional fields in the response. + + :param name: The name of the custom classification. The value of `name` is case insensitive and the system allows partial matches. + :type name: str + :param limit: The number of records returned by the system in the response. The maximum number of items that are allowed in the response is 100. The default number of items returned in the response is 50. + :type limit: int + :param offset: The numeric offset into the collection used for pagination. Set the `offset` to skip the number of records from the collection in the response. The default value is `0`. + :type offset: int + :param fields: A comma-separated list of fields to include in the response. + :type fields: List[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_all_custom_dlp_classifications_serialize( + name=name, + limit=limit, + offset=offset, + fields=fields, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "List[DataClassificationListItem]", + '400': "ApiErrorResponse", + '404': "ApiErrorResponse", + '500': "ApiErrorResponse", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ) + + + @validate_call + def get_all_custom_dlp_classifications_without_preload_content( + self, + name: Annotated[Optional[StrictStr], Field(description="The name of the custom classification. The value of `name` is case insensitive and the system allows partial matches.")] = None, + limit: Annotated[Optional[Annotated[int, Field(le=100, strict=True, ge=1)]], Field(description="The number of records returned by the system in the response. The maximum number of items that are allowed in the response is 100. The default number of items returned in the response is 50.")] = None, + offset: Annotated[Optional[StrictInt], Field(description="The numeric offset into the collection used for pagination. Set the `offset` to skip the number of records from the collection in the response. The default value is `0`. ")] = None, + fields: Annotated[Optional[List[StrictStr]], Field(description="A comma-separated list of fields to include in the 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 Custom DLP Classifications + + List the custom DLP classifications. You can query the data identifiers using the `name` parameter. Use the `fields` query parameter to include additional fields in the response. + + :param name: The name of the custom classification. The value of `name` is case insensitive and the system allows partial matches. + :type name: str + :param limit: The number of records returned by the system in the response. The maximum number of items that are allowed in the response is 100. The default number of items returned in the response is 50. + :type limit: int + :param offset: The numeric offset into the collection used for pagination. Set the `offset` to skip the number of records from the collection in the response. The default value is `0`. + :type offset: int + :param fields: A comma-separated list of fields to include in the response. + :type fields: List[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_all_custom_dlp_classifications_serialize( + name=name, + limit=limit, + offset=offset, + fields=fields, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "List[DataClassificationListItem]", + '400': "ApiErrorResponse", + '404': "ApiErrorResponse", + '500': "ApiErrorResponse", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _get_all_custom_dlp_classifications_serialize( + self, + name, + limit, + offset, + fields, + _request_auth, + _content_type, + _headers, + _host_index, + ) -> RequestSerialized: + + _host = None + + _collection_formats: Dict[str, str] = { + 'fields': 'csv', + } + + _path_params: Dict[str, str] = {} + _query_params: List[Tuple[str, str]] = [] + _header_params: Dict[str, Optional[str]] = _headers or {} + _form_params: List[Tuple[str, str]] = [] + _files: Dict[ + str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] + ] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + # process the query parameters + if name is not None: + + _query_params.append(('name', name)) + + if limit is not None: + + _query_params.append(('limit', limit)) + + if offset is not None: + + _query_params.append(('offset', offset)) + + if fields is not None: + + _query_params.append(('fields', fields)) + + # process the header parameters + # process the form parameters + # process the body parameter + + + # set the HTTP header `Accept` + if 'Accept' not in _header_params: + _header_params['Accept'] = self.api_client.select_header_accept( + [ + 'application/json' + ] + ) + + + # authentication setting + _auth_settings: List[str] = [ + 'oauthFlow' + ] + + return self.api_client.param_serialize( + method='GET', + resource_path='/policies/v2/dlp/custom/classifications', + 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_built_in_dlp_classification_by_id( + self, + classification_id: Annotated[UUID, Field(description="The unique identifier of the classification.")], + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> DataClassification: + """Get Built-In DLP Classification + + Get the properties of the built-in DLP classification. + + :param classification_id: The unique identifier of the classification. (required) + :type classification_id: UUID + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores 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_built_in_dlp_classification_by_id_serialize( + classification_id=classification_id, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "DataClassification", + '400': "ApiErrorResponse", + '404': "ApiErrorResponse", + '500': "ApiErrorResponse", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ).data + + + @validate_call + def get_built_in_dlp_classification_by_id_with_http_info( + self, + classification_id: Annotated[UUID, Field(description="The unique identifier of the classification.")], + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[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[DataClassification]: + """Get Built-In DLP Classification + + Get the properties of the built-in DLP classification. + + :param classification_id: The unique identifier of the classification. (required) + :type classification_id: UUID + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores 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_built_in_dlp_classification_by_id_serialize( + classification_id=classification_id, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "DataClassification", + '400': "ApiErrorResponse", + '404': "ApiErrorResponse", + '500': "ApiErrorResponse", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ) + + + @validate_call + def get_built_in_dlp_classification_by_id_without_preload_content( + self, + classification_id: Annotated[UUID, Field(description="The unique identifier of the classification.")], + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[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 Built-In DLP Classification + + Get the properties of the built-in DLP classification. + + :param classification_id: The unique identifier of the classification. (required) + :type classification_id: UUID + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores 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_built_in_dlp_classification_by_id_serialize( + classification_id=classification_id, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "DataClassification", + '400': "ApiErrorResponse", + '404': "ApiErrorResponse", + '500': "ApiErrorResponse", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _get_built_in_dlp_classification_by_id_serialize( + self, + classification_id, + _request_auth, + _content_type, + _headers, + _host_index, + ) -> RequestSerialized: + + _host = None + + _collection_formats: Dict[str, str] = { + } + + _path_params: Dict[str, str] = {} + _query_params: List[Tuple[str, str]] = [] + _header_params: Dict[str, Optional[str]] = _headers or {} + _form_params: List[Tuple[str, str]] = [] + _files: Dict[ + str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] + ] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + if classification_id is not None: + _path_params['classificationId'] = classification_id + # process the query parameters + # process the header parameters + # process the form parameters + # process the body parameter + + + # set the HTTP header `Accept` + if 'Accept' not in _header_params: + _header_params['Accept'] = self.api_client.select_header_accept( + [ + 'application/json' + ] + ) + + + # authentication setting + _auth_settings: List[str] = [ + 'oauthFlow' + ] + + return self.api_client.param_serialize( + method='GET', + resource_path='/policies/v2/dlp/builtIn/classifications/{classificationId}', + 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_custom_dlp_classification_by_id( + self, + classification_id: Annotated[UUID, Field(description="The unique identifier of the classification.")], + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> DataClassification: + """Get Custom DLP Classification + + Get the properties of a specific DLP classification. + + :param classification_id: The unique identifier of the classification. (required) + :type classification_id: UUID + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._get_custom_dlp_classification_by_id_serialize( + classification_id=classification_id, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "DataClassification", + '400': "ApiErrorResponse", + '404': "ApiErrorResponse", + '500': "ApiErrorResponse", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ).data + + + @validate_call + def get_custom_dlp_classification_by_id_with_http_info( + self, + classification_id: Annotated[UUID, Field(description="The unique identifier of the classification.")], + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[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[DataClassification]: + """Get Custom DLP Classification + + Get the properties of a specific DLP classification. + + :param classification_id: The unique identifier of the classification. (required) + :type classification_id: UUID + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._get_custom_dlp_classification_by_id_serialize( + classification_id=classification_id, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "DataClassification", + '400': "ApiErrorResponse", + '404': "ApiErrorResponse", + '500': "ApiErrorResponse", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ) + + + @validate_call + def get_custom_dlp_classification_by_id_without_preload_content( + self, + classification_id: Annotated[UUID, Field(description="The unique identifier of the classification.")], + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> RESTResponseType: + """Get Custom DLP Classification + + Get the properties of a specific DLP classification. + + :param classification_id: The unique identifier of the classification. (required) + :type classification_id: UUID + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._get_custom_dlp_classification_by_id_serialize( + classification_id=classification_id, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "DataClassification", + '400': "ApiErrorResponse", + '404': "ApiErrorResponse", + '500': "ApiErrorResponse", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _get_custom_dlp_classification_by_id_serialize( + self, + classification_id, + _request_auth, + _content_type, + _headers, + _host_index, + ) -> RequestSerialized: + + _host = None + + _collection_formats: Dict[str, str] = { + } + + _path_params: Dict[str, str] = {} + _query_params: List[Tuple[str, str]] = [] + _header_params: Dict[str, Optional[str]] = _headers or {} + _form_params: List[Tuple[str, str]] = [] + _files: Dict[ + str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] + ] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + if classification_id is not None: + _path_params['classificationId'] = classification_id + # process the query parameters + # process the header parameters + # process the form parameters + # process the body parameter + + + # set the HTTP header `Accept` + if 'Accept' not in _header_params: + _header_params['Accept'] = self.api_client.select_header_accept( + [ + 'application/json' + ] + ) + + + # authentication setting + _auth_settings: List[str] = [ + 'oauthFlow' + ] + + return self.api_client.param_serialize( + method='GET', + resource_path='/policies/v2/dlp/custom/classifications/{classificationId}', + 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_custom_dlp_classification( + self, + classification_id: Annotated[UUID, Field(description="The unique identifier of the classification.")], + data_classification_patch_request: DataClassificationPatchRequest, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> DataClassification: + """Update Custom DLP Classification + + Update a custom DLP classification. + + :param classification_id: The unique identifier of the classification. (required) + :type classification_id: UUID + :param data_classification_patch_request: (required) + :type data_classification_patch_request: DataClassificationPatchRequest + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores 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_custom_dlp_classification_serialize( + classification_id=classification_id, + data_classification_patch_request=data_classification_patch_request, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "DataClassification", + '400': "ApiErrorResponse", + '404': "ApiErrorResponse", + '500': "ApiErrorResponse", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ).data + + + @validate_call + def update_custom_dlp_classification_with_http_info( + self, + classification_id: Annotated[UUID, Field(description="The unique identifier of the classification.")], + data_classification_patch_request: DataClassificationPatchRequest, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[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[DataClassification]: + """Update Custom DLP Classification + + Update a custom DLP classification. + + :param classification_id: The unique identifier of the classification. (required) + :type classification_id: UUID + :param data_classification_patch_request: (required) + :type data_classification_patch_request: DataClassificationPatchRequest + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores 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_custom_dlp_classification_serialize( + classification_id=classification_id, + data_classification_patch_request=data_classification_patch_request, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "DataClassification", + '400': "ApiErrorResponse", + '404': "ApiErrorResponse", + '500': "ApiErrorResponse", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ) + + + @validate_call + def update_custom_dlp_classification_without_preload_content( + self, + classification_id: Annotated[UUID, Field(description="The unique identifier of the classification.")], + data_classification_patch_request: DataClassificationPatchRequest, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[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 Custom DLP Classification + + Update a custom DLP classification. + + :param classification_id: The unique identifier of the classification. (required) + :type classification_id: UUID + :param data_classification_patch_request: (required) + :type data_classification_patch_request: DataClassificationPatchRequest + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores 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_custom_dlp_classification_serialize( + classification_id=classification_id, + data_classification_patch_request=data_classification_patch_request, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "DataClassification", + '400': "ApiErrorResponse", + '404': "ApiErrorResponse", + '500': "ApiErrorResponse", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _update_custom_dlp_classification_serialize( + self, + classification_id, + data_classification_patch_request, + _request_auth, + _content_type, + _headers, + _host_index, + ) -> RequestSerialized: + + _host = None + + _collection_formats: Dict[str, str] = { + } + + _path_params: Dict[str, str] = {} + _query_params: List[Tuple[str, str]] = [] + _header_params: Dict[str, Optional[str]] = _headers or {} + _form_params: List[Tuple[str, str]] = [] + _files: Dict[ + str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] + ] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + if classification_id is not None: + _path_params['classificationId'] = classification_id + # process the query parameters + # process the header parameters + # process the form parameters + # process the body parameter + if data_classification_patch_request is not None: + _body_params = data_classification_patch_request + + + # set the HTTP header `Accept` + if 'Accept' not in _header_params: + _header_params['Accept'] = self.api_client.select_header_accept( + [ + 'application/json' + ] + ) + + # set the HTTP header `Content-Type` + if _content_type: + _header_params['Content-Type'] = _content_type + else: + _default_content_type = ( + self.api_client.select_header_content_type( + [ + 'application/json' + ] + ) + ) + if _default_content_type is not None: + _header_params['Content-Type'] = _default_content_type + + # authentication setting + _auth_settings: List[str] = [ + 'oauthFlow' + ] + + return self.api_client.param_serialize( + method='PATCH', + resource_path='/policies/v2/dlp/custom/classifications/{classificationId}', + 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/secure_access/api/co_occurrences_for_a_domain_api.py b/secure_access/api/co_occurrences_for_a_domain_api.py index 1ff91ea..7ac7cb2 100644 --- a/secure_access/api/co_occurrences_for_a_domain_api.py +++ b/secure_access/api/co_occurrences_for_a_domain_api.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/api/connector_groups_api.py b/secure_access/api/connector_groups_api.py index c4ffa22..e5ddabc 100644 --- a/secure_access/api/connector_groups_api.py +++ b/secure_access/api/connector_groups_api.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) @@ -106,7 +106,7 @@ def create_connector_group( '400': "Model400ConnectorGroupError", '401': "ResourceConnectorGroups401Error", '403': "ResourceConnectorGroups403Error", - '409': "Model409Error", + '409': "ResourceConnectorGroups409Error", '500': "ResourceConnectorGroups500Error", } response_data = self.api_client.call_api( @@ -178,7 +178,7 @@ def create_connector_group_with_http_info( '400': "Model400ConnectorGroupError", '401': "ResourceConnectorGroups401Error", '403': "ResourceConnectorGroups403Error", - '409': "Model409Error", + '409': "ResourceConnectorGroups409Error", '500': "ResourceConnectorGroups500Error", } response_data = self.api_client.call_api( @@ -250,7 +250,7 @@ def create_connector_group_without_preload_content( '400': "Model400ConnectorGroupError", '401': "ResourceConnectorGroups401Error", '403': "ResourceConnectorGroups403Error", - '409': "Model409Error", + '409': "ResourceConnectorGroups409Error", '500': "ResourceConnectorGroups500Error", } response_data = self.api_client.call_api( diff --git a/secure_access/api/connectors_api.py b/secure_access/api/connectors_api.py index b14db59..dc18493 100644 --- a/secure_access/api/connectors_api.py +++ b/secure_access/api/connectors_api.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/api/content_categories_api.py b/secure_access/api/content_categories_api.py index 3667634..83769ae 100644 --- a/secure_access/api/content_categories_api.py +++ b/secure_access/api/content_categories_api.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/api/credentials_api.py b/secure_access/api/credentials_api.py index 7dfb809..12798ba 100644 --- a/secure_access/api/credentials_api.py +++ b/secure_access/api/credentials_api.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/api/data_identifiers_api.py b/secure_access/api/data_identifiers_api.py new file mode 100644 index 0000000..90ceadb --- /dev/null +++ b/secure_access/api/data_identifiers_api.py @@ -0,0 +1,5888 @@ +# Copyright 2026 Cisco Systems, Inc. and its affiliates +# +# SPDX-License-Identifier: Apache-2.0 + +# coding: utf-8 + +""" + Cisco Secure Access API + + Unified OpenAPI spec for Cisco Secure Access APIs. + + The version of the OpenAPI document: v2.0.202602030705 + Contact: devnet@cisco.com + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + +import warnings +from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt +from typing import Any, Dict, List, Optional, Tuple, Union +from typing_extensions import Annotated + +from pydantic import Field, StrictInt, StrictStr, field_validator +from typing import List, Optional +from typing_extensions import Annotated +from uuid import UUID +from secure_access.models.built_in_data_identifier import BuiltInDataIdentifier +from secure_access.models.built_in_data_identifier_list_item import BuiltInDataIdentifierListItem +from secure_access.models.custom_data_identifier import CustomDataIdentifier +from secure_access.models.custom_data_identifier_create_request import CustomDataIdentifierCreateRequest +from secure_access.models.custom_data_identifier_list_item import CustomDataIdentifierListItem +from secure_access.models.custom_data_identifier_update_request import CustomDataIdentifierUpdateRequest +from secure_access.models.edm_identifier_create_request import EDMIdentifierCreateRequest +from secure_access.models.edm_identifier_list_item import EDMIdentifierListItem +from secure_access.models.edm_identifier_response import EDMIdentifierResponse +from secure_access.models.edm_identifier_update_request import EDMIdentifierUpdateRequest +from secure_access.models.edm_type import EDMType +from secure_access.models.idm_data_identifier_list_item import IDMDataIdentifierListItem +from secure_access.models.idm_data_identifier_response import IDMDataIdentifierResponse +from secure_access.models.idm_identifier_create_request import IDMIdentifierCreateRequest +from secure_access.models.idm_identifier_update_request import IDMIdentifierUpdateRequest + +from secure_access.api_client import ApiClient, RequestSerialized +from secure_access.api_response import ApiResponse +from secure_access.rest import RESTResponseType + + +class DataIdentifiersApi: + """NOTE: This class is auto generated by OpenAPI Generator + Ref: https://openapi-generator.tech + + Do not edit the class manually. + """ + + def __init__(self, api_client=None) -> None: + if api_client is None: + api_client = ApiClient.get_default() + self.api_client = api_client + + + @validate_call + def create_custom_identifiers( + self, + custom_data_identifier_create_request: CustomDataIdentifierCreateRequest, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> CustomDataIdentifier: + """Create Custom Data Identifier + + Create a custom Data Identifier with the specified parameters. + + :param custom_data_identifier_create_request: (required) + :type custom_data_identifier_create_request: CustomDataIdentifierCreateRequest + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores 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_custom_identifiers_serialize( + custom_data_identifier_create_request=custom_data_identifier_create_request, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '201': "CustomDataIdentifier", + '400': "ApiErrorResponse", + '500': "ApiErrorResponse", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ).data + + + @validate_call + def create_custom_identifiers_with_http_info( + self, + custom_data_identifier_create_request: CustomDataIdentifierCreateRequest, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[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[CustomDataIdentifier]: + """Create Custom Data Identifier + + Create a custom Data Identifier with the specified parameters. + + :param custom_data_identifier_create_request: (required) + :type custom_data_identifier_create_request: CustomDataIdentifierCreateRequest + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores 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_custom_identifiers_serialize( + custom_data_identifier_create_request=custom_data_identifier_create_request, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '201': "CustomDataIdentifier", + '400': "ApiErrorResponse", + '500': "ApiErrorResponse", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ) + + + @validate_call + def create_custom_identifiers_without_preload_content( + self, + custom_data_identifier_create_request: CustomDataIdentifierCreateRequest, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[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 Custom Data Identifier + + Create a custom Data Identifier with the specified parameters. + + :param custom_data_identifier_create_request: (required) + :type custom_data_identifier_create_request: CustomDataIdentifierCreateRequest + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores 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_custom_identifiers_serialize( + custom_data_identifier_create_request=custom_data_identifier_create_request, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '201': "CustomDataIdentifier", + '400': "ApiErrorResponse", + '500': "ApiErrorResponse", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _create_custom_identifiers_serialize( + self, + custom_data_identifier_create_request, + _request_auth, + _content_type, + _headers, + _host_index, + ) -> RequestSerialized: + + _host = None + + _collection_formats: Dict[str, str] = { + } + + _path_params: Dict[str, str] = {} + _query_params: List[Tuple[str, str]] = [] + _header_params: Dict[str, Optional[str]] = _headers or {} + _form_params: List[Tuple[str, str]] = [] + _files: Dict[ + str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] + ] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + # process the query parameters + # process the header parameters + # process the form parameters + # process the body parameter + if custom_data_identifier_create_request is not None: + _body_params = custom_data_identifier_create_request + + + # set the HTTP header `Accept` + if 'Accept' not in _header_params: + _header_params['Accept'] = self.api_client.select_header_accept( + [ + 'application/json' + ] + ) + + # set the HTTP header `Content-Type` + if _content_type: + _header_params['Content-Type'] = _content_type + else: + _default_content_type = ( + self.api_client.select_header_content_type( + [ + 'application/json' + ] + ) + ) + if _default_content_type is not None: + _header_params['Content-Type'] = _default_content_type + + # authentication setting + _auth_settings: List[str] = [ + 'oauthFlow' + ] + + return self.api_client.param_serialize( + method='POST', + resource_path='/policies/v2/dlp/custom/dataIdentifiers', + path_params=_path_params, + query_params=_query_params, + header_params=_header_params, + body=_body_params, + post_params=_form_params, + files=_files, + auth_settings=_auth_settings, + collection_formats=_collection_formats, + _host=_host, + _request_auth=_request_auth + ) + + + + + @validate_call + def create_edm( + self, + edm_identifier_create_request: Annotated[EDMIdentifierCreateRequest, Field(description="The properties used to create the EDM data identifier.")], + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> EDMIdentifierResponse: + """Create EDM Data Identifier + + Create an Exact Data Match (EDM) data identifier. Use the EDM data identifier for exact data matching against structured data. + + :param edm_identifier_create_request: The properties used to create the EDM data identifier. (required) + :type edm_identifier_create_request: EDMIdentifierCreateRequest + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores 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_edm_serialize( + edm_identifier_create_request=edm_identifier_create_request, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '201': "EDMIdentifierResponse", + '400': "ApiErrorResponse", + '401': "ApiErrorResponse", + '403': "ApiErrorResponse", + '500': "ApiErrorResponse", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ).data + + + @validate_call + def create_edm_with_http_info( + self, + edm_identifier_create_request: Annotated[EDMIdentifierCreateRequest, Field(description="The properties used to create the EDM data identifier.")], + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> ApiResponse[EDMIdentifierResponse]: + """Create EDM Data Identifier + + Create an Exact Data Match (EDM) data identifier. Use the EDM data identifier for exact data matching against structured data. + + :param edm_identifier_create_request: The properties used to create the EDM data identifier. (required) + :type edm_identifier_create_request: EDMIdentifierCreateRequest + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores 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_edm_serialize( + edm_identifier_create_request=edm_identifier_create_request, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '201': "EDMIdentifierResponse", + '400': "ApiErrorResponse", + '401': "ApiErrorResponse", + '403': "ApiErrorResponse", + '500': "ApiErrorResponse", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ) + + + @validate_call + def create_edm_without_preload_content( + self, + edm_identifier_create_request: Annotated[EDMIdentifierCreateRequest, Field(description="The properties used to create the EDM data identifier.")], + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> RESTResponseType: + """Create EDM Data Identifier + + Create an Exact Data Match (EDM) data identifier. Use the EDM data identifier for exact data matching against structured data. + + :param edm_identifier_create_request: The properties used to create the EDM data identifier. (required) + :type edm_identifier_create_request: EDMIdentifierCreateRequest + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores 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_edm_serialize( + edm_identifier_create_request=edm_identifier_create_request, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '201': "EDMIdentifierResponse", + '400': "ApiErrorResponse", + '401': "ApiErrorResponse", + '403': "ApiErrorResponse", + '500': "ApiErrorResponse", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _create_edm_serialize( + self, + edm_identifier_create_request, + _request_auth, + _content_type, + _headers, + _host_index, + ) -> RequestSerialized: + + _host = None + + _collection_formats: Dict[str, str] = { + } + + _path_params: Dict[str, str] = {} + _query_params: List[Tuple[str, str]] = [] + _header_params: Dict[str, Optional[str]] = _headers or {} + _form_params: List[Tuple[str, str]] = [] + _files: Dict[ + str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] + ] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + # process the query parameters + # process the header parameters + # process the form parameters + # process the body parameter + if edm_identifier_create_request is not None: + _body_params = edm_identifier_create_request + + + # set the HTTP header `Accept` + if 'Accept' not in _header_params: + _header_params['Accept'] = self.api_client.select_header_accept( + [ + 'application/json' + ] + ) + + # set the HTTP header `Content-Type` + if _content_type: + _header_params['Content-Type'] = _content_type + else: + _default_content_type = ( + self.api_client.select_header_content_type( + [ + 'application/json' + ] + ) + ) + if _default_content_type is not None: + _header_params['Content-Type'] = _default_content_type + + # authentication setting + _auth_settings: List[str] = [ + 'oauthFlow' + ] + + return self.api_client.param_serialize( + method='POST', + resource_path='/policies/v2/dlp/edm/dataIdentifiers', + path_params=_path_params, + query_params=_query_params, + header_params=_header_params, + body=_body_params, + post_params=_form_params, + files=_files, + auth_settings=_auth_settings, + collection_formats=_collection_formats, + _host=_host, + _request_auth=_request_auth + ) + + + + + @validate_call + def create_idm_data_identifier( + self, + idm_identifier_create_request: Annotated[IDMIdentifierCreateRequest, Field(description="The properties of the IDM data identifier.")], + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> IDMDataIdentifierResponse: + """Create IDM Data Identifier + + Create an Indexed Document Match (IDM)) data identifier. You can use the IDM data identifier for document fingerprinting and matching. + + :param idm_identifier_create_request: The properties of the IDM data identifier. (required) + :type idm_identifier_create_request: IDMIdentifierCreateRequest + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores 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_idm_data_identifier_serialize( + idm_identifier_create_request=idm_identifier_create_request, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '201': "IDMDataIdentifierResponse", + '400': "ApiErrorResponse", + '401': "ApiErrorResponse", + '403': "ApiErrorResponse", + '500': "ApiErrorResponse", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ).data + + + @validate_call + def create_idm_data_identifier_with_http_info( + self, + idm_identifier_create_request: Annotated[IDMIdentifierCreateRequest, Field(description="The properties of the IDM data identifier.")], + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> ApiResponse[IDMDataIdentifierResponse]: + """Create IDM Data Identifier + + Create an Indexed Document Match (IDM)) data identifier. You can use the IDM data identifier for document fingerprinting and matching. + + :param idm_identifier_create_request: The properties of the IDM data identifier. (required) + :type idm_identifier_create_request: IDMIdentifierCreateRequest + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores 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_idm_data_identifier_serialize( + idm_identifier_create_request=idm_identifier_create_request, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '201': "IDMDataIdentifierResponse", + '400': "ApiErrorResponse", + '401': "ApiErrorResponse", + '403': "ApiErrorResponse", + '500': "ApiErrorResponse", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ) + + + @validate_call + def create_idm_data_identifier_without_preload_content( + self, + idm_identifier_create_request: Annotated[IDMIdentifierCreateRequest, Field(description="The properties of the IDM data identifier.")], + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> RESTResponseType: + """Create IDM Data Identifier + + Create an Indexed Document Match (IDM)) data identifier. You can use the IDM data identifier for document fingerprinting and matching. + + :param idm_identifier_create_request: The properties of the IDM data identifier. (required) + :type idm_identifier_create_request: IDMIdentifierCreateRequest + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores 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_idm_data_identifier_serialize( + idm_identifier_create_request=idm_identifier_create_request, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '201': "IDMDataIdentifierResponse", + '400': "ApiErrorResponse", + '401': "ApiErrorResponse", + '403': "ApiErrorResponse", + '500': "ApiErrorResponse", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _create_idm_data_identifier_serialize( + self, + idm_identifier_create_request, + _request_auth, + _content_type, + _headers, + _host_index, + ) -> RequestSerialized: + + _host = None + + _collection_formats: Dict[str, str] = { + } + + _path_params: Dict[str, str] = {} + _query_params: List[Tuple[str, str]] = [] + _header_params: Dict[str, Optional[str]] = _headers or {} + _form_params: List[Tuple[str, str]] = [] + _files: Dict[ + str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] + ] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + # process the query parameters + # process the header parameters + # process the form parameters + # process the body parameter + if idm_identifier_create_request is not None: + _body_params = idm_identifier_create_request + + + # set the HTTP header `Accept` + if 'Accept' not in _header_params: + _header_params['Accept'] = self.api_client.select_header_accept( + [ + 'application/json' + ] + ) + + # set the HTTP header `Content-Type` + if _content_type: + _header_params['Content-Type'] = _content_type + else: + _default_content_type = ( + self.api_client.select_header_content_type( + [ + 'application/json' + ] + ) + ) + if _default_content_type is not None: + _header_params['Content-Type'] = _default_content_type + + # authentication setting + _auth_settings: List[str] = [ + 'oauthFlow' + ] + + return self.api_client.param_serialize( + method='POST', + resource_path='/policies/v2/dlp/idm/dataIdentifiers', + 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_custom_data_identifier( + self, + id: Annotated[UUID, Field(description="The unique ID of the custom data identifier.")], + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> None: + """Delete Custom Data Identifier + + Delete a custom data identifier. If the data identifier is in use by any classifications or rules, the system does not delete the data identifier. + + :param id: The unique ID of the custom data identifier. (required) + :type id: UUID + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores 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_custom_data_identifier_serialize( + id=id, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '204': None, + '400': "ApiErrorResponse", + '404': "ApiErrorResponse", + '500': "ApiErrorResponse", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ).data + + + @validate_call + def delete_custom_data_identifier_with_http_info( + self, + id: Annotated[UUID, Field(description="The unique ID of the custom data identifier.")], + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> ApiResponse[None]: + """Delete Custom Data Identifier + + Delete a custom data identifier. If the data identifier is in use by any classifications or rules, the system does not delete the data identifier. + + :param id: The unique ID of the custom data identifier. (required) + :type id: UUID + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores 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_custom_data_identifier_serialize( + id=id, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '204': None, + '400': "ApiErrorResponse", + '404': "ApiErrorResponse", + '500': "ApiErrorResponse", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ) + + + @validate_call + def delete_custom_data_identifier_without_preload_content( + self, + id: Annotated[UUID, Field(description="The unique ID of the custom data identifier.")], + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> RESTResponseType: + """Delete Custom Data Identifier + + Delete a custom data identifier. If the data identifier is in use by any classifications or rules, the system does not delete the data identifier. + + :param id: The unique ID of the custom data identifier. (required) + :type id: UUID + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores 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_custom_data_identifier_serialize( + id=id, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '204': None, + '400': "ApiErrorResponse", + '404': "ApiErrorResponse", + '500': "ApiErrorResponse", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _delete_custom_data_identifier_serialize( + self, + id, + _request_auth, + _content_type, + _headers, + _host_index, + ) -> RequestSerialized: + + _host = None + + _collection_formats: Dict[str, str] = { + } + + _path_params: Dict[str, str] = {} + _query_params: List[Tuple[str, str]] = [] + _header_params: Dict[str, Optional[str]] = _headers or {} + _form_params: List[Tuple[str, str]] = [] + _files: Dict[ + str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] + ] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + if id is not None: + _path_params['id'] = id + # process the query parameters + # process the header parameters + # process the form parameters + # process the body parameter + + + # set the HTTP header `Accept` + if 'Accept' not in _header_params: + _header_params['Accept'] = self.api_client.select_header_accept( + [ + 'application/json' + ] + ) + + + # authentication setting + _auth_settings: List[str] = [ + 'oauthFlow' + ] + + return self.api_client.param_serialize( + method='DELETE', + resource_path='/policies/v2/dlp/custom/dataIdentifiers/{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 delete_edm( + self, + id: Annotated[UUID, Field(description="The unique ID of the Exact Data Match (EDM) data identifier.")], + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> None: + """Delete EDM Data Identifier + + Delete the Exact Data Match (EDM) data identifier. If the EDM identifier is in use by any classifications or rules, the system does not delete the EDM data identifier. + + :param id: The unique ID of the Exact Data Match (EDM) data identifier. (required) + :type id: UUID + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores 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_edm_serialize( + id=id, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '204': None, + '400': "ApiErrorResponse", + '404': "ApiErrorResponse", + '500': "ApiErrorResponse", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ).data + + + @validate_call + def delete_edm_with_http_info( + self, + id: Annotated[UUID, Field(description="The unique ID of the Exact Data Match (EDM) data identifier.")], + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> ApiResponse[None]: + """Delete EDM Data Identifier + + Delete the Exact Data Match (EDM) data identifier. If the EDM identifier is in use by any classifications or rules, the system does not delete the EDM data identifier. + + :param id: The unique ID of the Exact Data Match (EDM) data identifier. (required) + :type id: UUID + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores 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_edm_serialize( + id=id, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '204': None, + '400': "ApiErrorResponse", + '404': "ApiErrorResponse", + '500': "ApiErrorResponse", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ) + + + @validate_call + def delete_edm_without_preload_content( + self, + id: Annotated[UUID, Field(description="The unique ID of the Exact Data Match (EDM) data identifier.")], + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> RESTResponseType: + """Delete EDM Data Identifier + + Delete the Exact Data Match (EDM) data identifier. If the EDM identifier is in use by any classifications or rules, the system does not delete the EDM data identifier. + + :param id: The unique ID of the Exact Data Match (EDM) data identifier. (required) + :type id: UUID + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores 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_edm_serialize( + id=id, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '204': None, + '400': "ApiErrorResponse", + '404': "ApiErrorResponse", + '500': "ApiErrorResponse", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _delete_edm_serialize( + self, + id, + _request_auth, + _content_type, + _headers, + _host_index, + ) -> RequestSerialized: + + _host = None + + _collection_formats: Dict[str, str] = { + } + + _path_params: Dict[str, str] = {} + _query_params: List[Tuple[str, str]] = [] + _header_params: Dict[str, Optional[str]] = _headers or {} + _form_params: List[Tuple[str, str]] = [] + _files: Dict[ + str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] + ] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + if id is not None: + _path_params['id'] = id + # process the query parameters + # process the header parameters + # process the form parameters + # process the body parameter + + + # set the HTTP header `Accept` + if 'Accept' not in _header_params: + _header_params['Accept'] = self.api_client.select_header_accept( + [ + 'application/json' + ] + ) + + + # authentication setting + _auth_settings: List[str] = [ + 'oauthFlow' + ] + + return self.api_client.param_serialize( + method='DELETE', + resource_path='/policies/v2/dlp/edm/dataIdentifiers/{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 delete_idm_data_identifier( + self, + id: Annotated[UUID, Field(description="The unique ID of the Indexed Document Match (IDM) data identifier.")], + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> None: + """Delete IDM Data Identifier + + Delete the Indexed Document Match (IDM) data identifier. If the IDM data identifier is in use by any classifications or rules, the system does not delete the IDM identifier. + + :param id: The unique ID of the Indexed Document Match (IDM) data identifier. (required) + :type id: UUID + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores 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_idm_data_identifier_serialize( + id=id, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '204': None, + '400': "ApiErrorResponse", + '404': "ApiErrorResponse", + '500': "ApiErrorResponse", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ).data + + + @validate_call + def delete_idm_data_identifier_with_http_info( + self, + id: Annotated[UUID, Field(description="The unique ID of the Indexed Document Match (IDM) data identifier.")], + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> ApiResponse[None]: + """Delete IDM Data Identifier + + Delete the Indexed Document Match (IDM) data identifier. If the IDM data identifier is in use by any classifications or rules, the system does not delete the IDM identifier. + + :param id: The unique ID of the Indexed Document Match (IDM) data identifier. (required) + :type id: UUID + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores 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_idm_data_identifier_serialize( + id=id, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '204': None, + '400': "ApiErrorResponse", + '404': "ApiErrorResponse", + '500': "ApiErrorResponse", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ) + + + @validate_call + def delete_idm_data_identifier_without_preload_content( + self, + id: Annotated[UUID, Field(description="The unique ID of the Indexed Document Match (IDM) data identifier.")], + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> RESTResponseType: + """Delete IDM Data Identifier + + Delete the Indexed Document Match (IDM) data identifier. If the IDM data identifier is in use by any classifications or rules, the system does not delete the IDM identifier. + + :param id: The unique ID of the Indexed Document Match (IDM) data identifier. (required) + :type id: UUID + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores 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_idm_data_identifier_serialize( + id=id, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '204': None, + '400': "ApiErrorResponse", + '404': "ApiErrorResponse", + '500': "ApiErrorResponse", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _delete_idm_data_identifier_serialize( + self, + id, + _request_auth, + _content_type, + _headers, + _host_index, + ) -> RequestSerialized: + + _host = None + + _collection_formats: Dict[str, str] = { + } + + _path_params: Dict[str, str] = {} + _query_params: List[Tuple[str, str]] = [] + _header_params: Dict[str, Optional[str]] = _headers or {} + _form_params: List[Tuple[str, str]] = [] + _files: Dict[ + str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] + ] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + if id is not None: + _path_params['id'] = id + # process the query parameters + # process the header parameters + # process the form parameters + # process the body parameter + + + # set the HTTP header `Accept` + if 'Accept' not in _header_params: + _header_params['Accept'] = self.api_client.select_header_accept( + [ + 'application/json' + ] + ) + + + # authentication setting + _auth_settings: List[str] = [ + 'oauthFlow' + ] + + return self.api_client.param_serialize( + method='DELETE', + resource_path='/policies/v2/dlp/idm/dataIdentifiers/{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_ai_guardrails_data_identifier_by_id( + self, + id: Annotated[UUID, Field(description="The unique ID of the built-in data identifier.")], + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> BuiltInDataIdentifier: + """Get AI Guardrails Data Identifier + + Get the properties of a specific built-in AI Guardrails data identifier. + + :param id: The unique ID of the built-in data identifier. (required) + :type id: UUID + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores 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_ai_guardrails_data_identifier_by_id_serialize( + id=id, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "BuiltInDataIdentifier", + '400': "ApiErrorResponse", + '404': "ApiErrorResponse", + '500': "ApiErrorResponse", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ).data + + + @validate_call + def get_ai_guardrails_data_identifier_by_id_with_http_info( + self, + id: Annotated[UUID, Field(description="The unique ID of the built-in data identifier.")], + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> ApiResponse[BuiltInDataIdentifier]: + """Get AI Guardrails Data Identifier + + Get the properties of a specific built-in AI Guardrails data identifier. + + :param id: The unique ID of the built-in data identifier. (required) + :type id: UUID + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores 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_ai_guardrails_data_identifier_by_id_serialize( + id=id, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "BuiltInDataIdentifier", + '400': "ApiErrorResponse", + '404': "ApiErrorResponse", + '500': "ApiErrorResponse", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ) + + + @validate_call + def get_ai_guardrails_data_identifier_by_id_without_preload_content( + self, + id: Annotated[UUID, Field(description="The unique ID of the built-in data identifier.")], + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> RESTResponseType: + """Get AI Guardrails Data Identifier + + Get the properties of a specific built-in AI Guardrails data identifier. + + :param id: The unique ID of the built-in data identifier. (required) + :type id: UUID + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores 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_ai_guardrails_data_identifier_by_id_serialize( + id=id, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "BuiltInDataIdentifier", + '400': "ApiErrorResponse", + '404': "ApiErrorResponse", + '500': "ApiErrorResponse", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _get_ai_guardrails_data_identifier_by_id_serialize( + self, + id, + _request_auth, + _content_type, + _headers, + _host_index, + ) -> RequestSerialized: + + _host = None + + _collection_formats: Dict[str, str] = { + } + + _path_params: Dict[str, str] = {} + _query_params: List[Tuple[str, str]] = [] + _header_params: Dict[str, Optional[str]] = _headers or {} + _form_params: List[Tuple[str, str]] = [] + _files: Dict[ + str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] + ] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + if id is not None: + _path_params['id'] = id + # process the query parameters + # process the header parameters + # process the form parameters + # process the body parameter + + + # set the HTTP header `Accept` + if 'Accept' not in _header_params: + _header_params['Accept'] = self.api_client.select_header_accept( + [ + 'application/json' + ] + ) + + + # authentication setting + _auth_settings: List[str] = [ + 'oauthFlow' + ] + + return self.api_client.param_serialize( + method='GET', + resource_path='/policies/v2/dlp/aiGuardrails/dataIdentifiers/{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_ai_guardrails_data_identifiers( + self, + name: Annotated[Optional[StrictStr], Field(description="The name of the built-in data identifier. The value of `name` is case insensitive and the system allows partial matches.")] = None, + limit: Annotated[Optional[Annotated[int, Field(le=100, strict=True, ge=1)]], Field(description="The number of records returned by the system in the response. The maximum number of items that are allowed in the response is 100. The default number of items returned in the response is 50.")] = None, + offset: Annotated[Optional[StrictInt], Field(description="The numeric offset into the collection used for pagination. Set the `offset` to skip the number of records from the collection in the response. The default value is `0`. ")] = None, + fields: Annotated[Optional[List[StrictStr]], Field(description="A comma-separated list of fields to include in the 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, + ) -> List[BuiltInDataIdentifierListItem]: + """List AI Guardrails Data Identifiers + + List the AI Guardrails data identifiers. You can query the AI Guardrails data identifiers using the `name` parameter. + + :param name: The name of the built-in data identifier. The value of `name` is case insensitive and the system allows partial matches. + :type name: str + :param limit: The number of records returned by the system in the response. The maximum number of items that are allowed in the response is 100. The default number of items returned in the response is 50. + :type limit: int + :param offset: The numeric offset into the collection used for pagination. Set the `offset` to skip the number of records from the collection in the response. The default value is `0`. + :type offset: int + :param fields: A comma-separated list of fields to include in the response. + :type fields: List[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_ai_guardrails_data_identifiers_serialize( + name=name, + limit=limit, + offset=offset, + fields=fields, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "List[BuiltInDataIdentifierListItem]", + '400': "ApiErrorResponse", + '500': "ApiErrorResponse", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ).data + + + @validate_call + def get_ai_guardrails_data_identifiers_with_http_info( + self, + name: Annotated[Optional[StrictStr], Field(description="The name of the built-in data identifier. The value of `name` is case insensitive and the system allows partial matches.")] = None, + limit: Annotated[Optional[Annotated[int, Field(le=100, strict=True, ge=1)]], Field(description="The number of records returned by the system in the response. The maximum number of items that are allowed in the response is 100. The default number of items returned in the response is 50.")] = None, + offset: Annotated[Optional[StrictInt], Field(description="The numeric offset into the collection used for pagination. Set the `offset` to skip the number of records from the collection in the response. The default value is `0`. ")] = None, + fields: Annotated[Optional[List[StrictStr]], Field(description="A comma-separated list of fields to include in the 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[List[BuiltInDataIdentifierListItem]]: + """List AI Guardrails Data Identifiers + + List the AI Guardrails data identifiers. You can query the AI Guardrails data identifiers using the `name` parameter. + + :param name: The name of the built-in data identifier. The value of `name` is case insensitive and the system allows partial matches. + :type name: str + :param limit: The number of records returned by the system in the response. The maximum number of items that are allowed in the response is 100. The default number of items returned in the response is 50. + :type limit: int + :param offset: The numeric offset into the collection used for pagination. Set the `offset` to skip the number of records from the collection in the response. The default value is `0`. + :type offset: int + :param fields: A comma-separated list of fields to include in the response. + :type fields: List[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_ai_guardrails_data_identifiers_serialize( + name=name, + limit=limit, + offset=offset, + fields=fields, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "List[BuiltInDataIdentifierListItem]", + '400': "ApiErrorResponse", + '500': "ApiErrorResponse", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ) + + + @validate_call + def get_ai_guardrails_data_identifiers_without_preload_content( + self, + name: Annotated[Optional[StrictStr], Field(description="The name of the built-in data identifier. The value of `name` is case insensitive and the system allows partial matches.")] = None, + limit: Annotated[Optional[Annotated[int, Field(le=100, strict=True, ge=1)]], Field(description="The number of records returned by the system in the response. The maximum number of items that are allowed in the response is 100. The default number of items returned in the response is 50.")] = None, + offset: Annotated[Optional[StrictInt], Field(description="The numeric offset into the collection used for pagination. Set the `offset` to skip the number of records from the collection in the response. The default value is `0`. ")] = None, + fields: Annotated[Optional[List[StrictStr]], Field(description="A comma-separated list of fields to include in the 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 AI Guardrails Data Identifiers + + List the AI Guardrails data identifiers. You can query the AI Guardrails data identifiers using the `name` parameter. + + :param name: The name of the built-in data identifier. The value of `name` is case insensitive and the system allows partial matches. + :type name: str + :param limit: The number of records returned by the system in the response. The maximum number of items that are allowed in the response is 100. The default number of items returned in the response is 50. + :type limit: int + :param offset: The numeric offset into the collection used for pagination. Set the `offset` to skip the number of records from the collection in the response. The default value is `0`. + :type offset: int + :param fields: A comma-separated list of fields to include in the response. + :type fields: List[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_ai_guardrails_data_identifiers_serialize( + name=name, + limit=limit, + offset=offset, + fields=fields, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "List[BuiltInDataIdentifierListItem]", + '400': "ApiErrorResponse", + '500': "ApiErrorResponse", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _get_ai_guardrails_data_identifiers_serialize( + self, + name, + limit, + offset, + fields, + _request_auth, + _content_type, + _headers, + _host_index, + ) -> RequestSerialized: + + _host = None + + _collection_formats: Dict[str, str] = { + 'fields': 'csv', + } + + _path_params: Dict[str, str] = {} + _query_params: List[Tuple[str, str]] = [] + _header_params: Dict[str, Optional[str]] = _headers or {} + _form_params: List[Tuple[str, str]] = [] + _files: Dict[ + str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] + ] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + # process the query parameters + if name is not None: + + _query_params.append(('name', name)) + + if limit is not None: + + _query_params.append(('limit', limit)) + + if offset is not None: + + _query_params.append(('offset', offset)) + + if fields is not None: + + _query_params.append(('fields', fields)) + + # process the header parameters + # process the form parameters + # process the body parameter + + + # set the HTTP header `Accept` + if 'Accept' not in _header_params: + _header_params['Accept'] = self.api_client.select_header_accept( + [ + 'application/json' + ] + ) + + + # authentication setting + _auth_settings: List[str] = [ + 'oauthFlow' + ] + + return self.api_client.param_serialize( + method='GET', + resource_path='/policies/v2/dlp/aiGuardrails/dataIdentifiers', + 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_all_edm( + self, + name: Annotated[Optional[StrictStr], Field(description="The name of the Exact Data Match (EDM) data identifier. The value of `name` is case insensitive and the system allows partial matches.")] = None, + limit: Annotated[Optional[Annotated[int, Field(le=100, strict=True, ge=1)]], Field(description="The number of records returned by the system in the response. The maximum number of items that are allowed in the response is 100. The default number of items returned in the response is 50.")] = None, + offset: Annotated[Optional[StrictInt], Field(description="The numeric offset into the collection used for pagination. Set the `offset` to skip the number of records from the collection in the response. The default value is `0`. ")] = 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, + ) -> List[EDMIdentifierListItem]: + """List EDM Data Identifiers + + List the Exact Data Match (EDM) data identifiers. You can query the EDM data identifiers using the `name` parameter. + + :param name: The name of the Exact Data Match (EDM) data identifier. The value of `name` is case insensitive and the system allows partial matches. + :type name: str + :param limit: The number of records returned by the system in the response. The maximum number of items that are allowed in the response is 100. The default number of items returned in the response is 50. + :type limit: int + :param offset: The numeric offset into the collection used for pagination. Set the `offset` to skip the number of records from the collection in the response. The default value is `0`. + :type offset: int + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._get_all_edm_serialize( + name=name, + limit=limit, + offset=offset, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "List[EDMIdentifierListItem]", + '400': "ApiErrorResponse", + '500': "ApiErrorResponse", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ).data + + + @validate_call + def get_all_edm_with_http_info( + self, + name: Annotated[Optional[StrictStr], Field(description="The name of the Exact Data Match (EDM) data identifier. The value of `name` is case insensitive and the system allows partial matches.")] = None, + limit: Annotated[Optional[Annotated[int, Field(le=100, strict=True, ge=1)]], Field(description="The number of records returned by the system in the response. The maximum number of items that are allowed in the response is 100. The default number of items returned in the response is 50.")] = None, + offset: Annotated[Optional[StrictInt], Field(description="The numeric offset into the collection used for pagination. Set the `offset` to skip the number of records from the collection in the response. The default value is `0`. ")] = 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[List[EDMIdentifierListItem]]: + """List EDM Data Identifiers + + List the Exact Data Match (EDM) data identifiers. You can query the EDM data identifiers using the `name` parameter. + + :param name: The name of the Exact Data Match (EDM) data identifier. The value of `name` is case insensitive and the system allows partial matches. + :type name: str + :param limit: The number of records returned by the system in the response. The maximum number of items that are allowed in the response is 100. The default number of items returned in the response is 50. + :type limit: int + :param offset: The numeric offset into the collection used for pagination. Set the `offset` to skip the number of records from the collection in the response. The default value is `0`. + :type offset: int + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._get_all_edm_serialize( + name=name, + limit=limit, + offset=offset, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "List[EDMIdentifierListItem]", + '400': "ApiErrorResponse", + '500': "ApiErrorResponse", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ) + + + @validate_call + def get_all_edm_without_preload_content( + self, + name: Annotated[Optional[StrictStr], Field(description="The name of the Exact Data Match (EDM) data identifier. The value of `name` is case insensitive and the system allows partial matches.")] = None, + limit: Annotated[Optional[Annotated[int, Field(le=100, strict=True, ge=1)]], Field(description="The number of records returned by the system in the response. The maximum number of items that are allowed in the response is 100. The default number of items returned in the response is 50.")] = None, + offset: Annotated[Optional[StrictInt], Field(description="The numeric offset into the collection used for pagination. Set the `offset` to skip the number of records from the collection in the response. The default value is `0`. ")] = 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 EDM Data Identifiers + + List the Exact Data Match (EDM) data identifiers. You can query the EDM data identifiers using the `name` parameter. + + :param name: The name of the Exact Data Match (EDM) data identifier. The value of `name` is case insensitive and the system allows partial matches. + :type name: str + :param limit: The number of records returned by the system in the response. The maximum number of items that are allowed in the response is 100. The default number of items returned in the response is 50. + :type limit: int + :param offset: The numeric offset into the collection used for pagination. Set the `offset` to skip the number of records from the collection in the response. The default value is `0`. + :type offset: int + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._get_all_edm_serialize( + name=name, + limit=limit, + offset=offset, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "List[EDMIdentifierListItem]", + '400': "ApiErrorResponse", + '500': "ApiErrorResponse", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _get_all_edm_serialize( + self, + name, + limit, + offset, + _request_auth, + _content_type, + _headers, + _host_index, + ) -> RequestSerialized: + + _host = None + + _collection_formats: Dict[str, str] = { + } + + _path_params: Dict[str, str] = {} + _query_params: List[Tuple[str, str]] = [] + _header_params: Dict[str, Optional[str]] = _headers or {} + _form_params: List[Tuple[str, str]] = [] + _files: Dict[ + str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] + ] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + # process the query parameters + if name is not None: + + _query_params.append(('name', name)) + + if limit is not None: + + _query_params.append(('limit', limit)) + + if offset is not None: + + _query_params.append(('offset', offset)) + + # process the header parameters + # process the form parameters + # process the body parameter + + + # set the HTTP header `Accept` + if 'Accept' not in _header_params: + _header_params['Accept'] = self.api_client.select_header_accept( + [ + 'application/json' + ] + ) + + + # authentication setting + _auth_settings: List[str] = [ + 'oauthFlow' + ] + + return self.api_client.param_serialize( + method='GET', + resource_path='/policies/v2/dlp/edm/dataIdentifiers', + 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_all_idm( + self, + name: Annotated[Optional[StrictStr], Field(description="The name of the Indexed Document Match (IDM) data identifier. The value of `name` is case insensitive and the system allows partial matches.")] = None, + limit: Annotated[Optional[Annotated[int, Field(le=100, strict=True, ge=1)]], Field(description="The number of records returned by the system in the response. The maximum number of items that are allowed in the response is 100. The default number of items returned in the response is 50.")] = None, + offset: Annotated[Optional[StrictInt], Field(description="The numeric offset into the collection used for pagination. Set the `offset` to skip the number of records from the collection in the response. The default value is `0`. ")] = None, + fields: Annotated[Optional[List[StrictStr]], Field(description="A comma-separated list of fields to include in the 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, + ) -> List[IDMDataIdentifierListItem]: + """List IDM Data Identifiers + + List the Indexed Document Match (IDM) data identifiers. You can query the data identifiers using the `name` parameter. + + :param name: The name of the Indexed Document Match (IDM) data identifier. The value of `name` is case insensitive and the system allows partial matches. + :type name: str + :param limit: The number of records returned by the system in the response. The maximum number of items that are allowed in the response is 100. The default number of items returned in the response is 50. + :type limit: int + :param offset: The numeric offset into the collection used for pagination. Set the `offset` to skip the number of records from the collection in the response. The default value is `0`. + :type offset: int + :param fields: A comma-separated list of fields to include in the response. + :type fields: List[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_all_idm_serialize( + name=name, + limit=limit, + offset=offset, + fields=fields, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "List[IDMDataIdentifierListItem]", + '400': "ApiErrorResponse", + '401': "ApiErrorResponse", + '500': "ApiErrorResponse", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ).data + + + @validate_call + def get_all_idm_with_http_info( + self, + name: Annotated[Optional[StrictStr], Field(description="The name of the Indexed Document Match (IDM) data identifier. The value of `name` is case insensitive and the system allows partial matches.")] = None, + limit: Annotated[Optional[Annotated[int, Field(le=100, strict=True, ge=1)]], Field(description="The number of records returned by the system in the response. The maximum number of items that are allowed in the response is 100. The default number of items returned in the response is 50.")] = None, + offset: Annotated[Optional[StrictInt], Field(description="The numeric offset into the collection used for pagination. Set the `offset` to skip the number of records from the collection in the response. The default value is `0`. ")] = None, + fields: Annotated[Optional[List[StrictStr]], Field(description="A comma-separated list of fields to include in the 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[List[IDMDataIdentifierListItem]]: + """List IDM Data Identifiers + + List the Indexed Document Match (IDM) data identifiers. You can query the data identifiers using the `name` parameter. + + :param name: The name of the Indexed Document Match (IDM) data identifier. The value of `name` is case insensitive and the system allows partial matches. + :type name: str + :param limit: The number of records returned by the system in the response. The maximum number of items that are allowed in the response is 100. The default number of items returned in the response is 50. + :type limit: int + :param offset: The numeric offset into the collection used for pagination. Set the `offset` to skip the number of records from the collection in the response. The default value is `0`. + :type offset: int + :param fields: A comma-separated list of fields to include in the response. + :type fields: List[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_all_idm_serialize( + name=name, + limit=limit, + offset=offset, + fields=fields, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "List[IDMDataIdentifierListItem]", + '400': "ApiErrorResponse", + '401': "ApiErrorResponse", + '500': "ApiErrorResponse", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ) + + + @validate_call + def get_all_idm_without_preload_content( + self, + name: Annotated[Optional[StrictStr], Field(description="The name of the Indexed Document Match (IDM) data identifier. The value of `name` is case insensitive and the system allows partial matches.")] = None, + limit: Annotated[Optional[Annotated[int, Field(le=100, strict=True, ge=1)]], Field(description="The number of records returned by the system in the response. The maximum number of items that are allowed in the response is 100. The default number of items returned in the response is 50.")] = None, + offset: Annotated[Optional[StrictInt], Field(description="The numeric offset into the collection used for pagination. Set the `offset` to skip the number of records from the collection in the response. The default value is `0`. ")] = None, + fields: Annotated[Optional[List[StrictStr]], Field(description="A comma-separated list of fields to include in the 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 IDM Data Identifiers + + List the Indexed Document Match (IDM) data identifiers. You can query the data identifiers using the `name` parameter. + + :param name: The name of the Indexed Document Match (IDM) data identifier. The value of `name` is case insensitive and the system allows partial matches. + :type name: str + :param limit: The number of records returned by the system in the response. The maximum number of items that are allowed in the response is 100. The default number of items returned in the response is 50. + :type limit: int + :param offset: The numeric offset into the collection used for pagination. Set the `offset` to skip the number of records from the collection in the response. The default value is `0`. + :type offset: int + :param fields: A comma-separated list of fields to include in the response. + :type fields: List[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_all_idm_serialize( + name=name, + limit=limit, + offset=offset, + fields=fields, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "List[IDMDataIdentifierListItem]", + '400': "ApiErrorResponse", + '401': "ApiErrorResponse", + '500': "ApiErrorResponse", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _get_all_idm_serialize( + self, + name, + limit, + offset, + fields, + _request_auth, + _content_type, + _headers, + _host_index, + ) -> RequestSerialized: + + _host = None + + _collection_formats: Dict[str, str] = { + 'fields': 'csv', + } + + _path_params: Dict[str, str] = {} + _query_params: List[Tuple[str, str]] = [] + _header_params: Dict[str, Optional[str]] = _headers or {} + _form_params: List[Tuple[str, str]] = [] + _files: Dict[ + str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] + ] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + # process the query parameters + if name is not None: + + _query_params.append(('name', name)) + + if limit is not None: + + _query_params.append(('limit', limit)) + + if offset is not None: + + _query_params.append(('offset', offset)) + + if fields is not None: + + _query_params.append(('fields', fields)) + + # process the header parameters + # process the form parameters + # process the body parameter + + + # set the HTTP header `Accept` + if 'Accept' not in _header_params: + _header_params['Accept'] = self.api_client.select_header_accept( + [ + 'application/json' + ] + ) + + + # authentication setting + _auth_settings: List[str] = [ + 'oauthFlow' + ] + + return self.api_client.param_serialize( + method='GET', + resource_path='/policies/v2/dlp/idm/dataIdentifiers', + 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_built_in_data_identifier_by_id( + self, + id: Annotated[UUID, Field(description="The unique ID of the built-in data identifier.")], + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> BuiltInDataIdentifier: + """Get Built-In Data Identifier + + Get the detailed information about a specific built-in data identifier. + + :param id: The unique ID of the built-in data identifier. (required) + :type id: UUID + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores 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_built_in_data_identifier_by_id_serialize( + id=id, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "BuiltInDataIdentifier", + '400': "ApiErrorResponse", + '404': "ApiErrorResponse", + '500': "ApiErrorResponse", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ).data + + + @validate_call + def get_built_in_data_identifier_by_id_with_http_info( + self, + id: Annotated[UUID, Field(description="The unique ID of the built-in data identifier.")], + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> ApiResponse[BuiltInDataIdentifier]: + """Get Built-In Data Identifier + + Get the detailed information about a specific built-in data identifier. + + :param id: The unique ID of the built-in data identifier. (required) + :type id: UUID + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores 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_built_in_data_identifier_by_id_serialize( + id=id, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "BuiltInDataIdentifier", + '400': "ApiErrorResponse", + '404': "ApiErrorResponse", + '500': "ApiErrorResponse", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ) + + + @validate_call + def get_built_in_data_identifier_by_id_without_preload_content( + self, + id: Annotated[UUID, Field(description="The unique ID of the built-in data identifier.")], + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> RESTResponseType: + """Get Built-In Data Identifier + + Get the detailed information about a specific built-in data identifier. + + :param id: The unique ID of the built-in data identifier. (required) + :type id: UUID + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores 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_built_in_data_identifier_by_id_serialize( + id=id, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "BuiltInDataIdentifier", + '400': "ApiErrorResponse", + '404': "ApiErrorResponse", + '500': "ApiErrorResponse", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _get_built_in_data_identifier_by_id_serialize( + self, + id, + _request_auth, + _content_type, + _headers, + _host_index, + ) -> RequestSerialized: + + _host = None + + _collection_formats: Dict[str, str] = { + } + + _path_params: Dict[str, str] = {} + _query_params: List[Tuple[str, str]] = [] + _header_params: Dict[str, Optional[str]] = _headers or {} + _form_params: List[Tuple[str, str]] = [] + _files: Dict[ + str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] + ] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + if id is not None: + _path_params['id'] = id + # process the query parameters + # process the header parameters + # process the form parameters + # process the body parameter + + + # set the HTTP header `Accept` + if 'Accept' not in _header_params: + _header_params['Accept'] = self.api_client.select_header_accept( + [ + 'application/json' + ] + ) + + + # authentication setting + _auth_settings: List[str] = [ + 'oauthFlow' + ] + + return self.api_client.param_serialize( + method='GET', + resource_path='/policies/v2/dlp/builtIn/dataIdentifiers/{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_built_in_data_identifiers( + self, + name: Annotated[Optional[StrictStr], Field(description="The name of the built-in data identifier. The value of `name` is case insensitive and the system allows partial matches.")] = None, + limit: Annotated[Optional[Annotated[int, Field(le=100, strict=True, ge=1)]], Field(description="The number of records returned by the system in the response. The maximum number of items that are allowed in the response is 100. The default number of items returned in the response is 50.")] = None, + offset: Annotated[Optional[StrictInt], Field(description="The numeric offset into the collection used for pagination. Set the `offset` to skip the number of records from the collection in the response. The default value is `0`. ")] = None, + fields: Annotated[Optional[List[StrictStr]], Field(description="A comma-separated list of fields to include in the 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, + ) -> List[BuiltInDataIdentifierListItem]: + """List Built-In Data Identifiers + + List the built-in data identifiers. You can query the built-in data identifiers using the `name` parameter. + + :param name: The name of the built-in data identifier. The value of `name` is case insensitive and the system allows partial matches. + :type name: str + :param limit: The number of records returned by the system in the response. The maximum number of items that are allowed in the response is 100. The default number of items returned in the response is 50. + :type limit: int + :param offset: The numeric offset into the collection used for pagination. Set the `offset` to skip the number of records from the collection in the response. The default value is `0`. + :type offset: int + :param fields: A comma-separated list of fields to include in the response. + :type fields: List[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_built_in_data_identifiers_serialize( + name=name, + limit=limit, + offset=offset, + fields=fields, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "List[BuiltInDataIdentifierListItem]", + '400': "ApiErrorResponse", + '500': "ApiErrorResponse", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ).data + + + @validate_call + def get_built_in_data_identifiers_with_http_info( + self, + name: Annotated[Optional[StrictStr], Field(description="The name of the built-in data identifier. The value of `name` is case insensitive and the system allows partial matches.")] = None, + limit: Annotated[Optional[Annotated[int, Field(le=100, strict=True, ge=1)]], Field(description="The number of records returned by the system in the response. The maximum number of items that are allowed in the response is 100. The default number of items returned in the response is 50.")] = None, + offset: Annotated[Optional[StrictInt], Field(description="The numeric offset into the collection used for pagination. Set the `offset` to skip the number of records from the collection in the response. The default value is `0`. ")] = None, + fields: Annotated[Optional[List[StrictStr]], Field(description="A comma-separated list of fields to include in the 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[List[BuiltInDataIdentifierListItem]]: + """List Built-In Data Identifiers + + List the built-in data identifiers. You can query the built-in data identifiers using the `name` parameter. + + :param name: The name of the built-in data identifier. The value of `name` is case insensitive and the system allows partial matches. + :type name: str + :param limit: The number of records returned by the system in the response. The maximum number of items that are allowed in the response is 100. The default number of items returned in the response is 50. + :type limit: int + :param offset: The numeric offset into the collection used for pagination. Set the `offset` to skip the number of records from the collection in the response. The default value is `0`. + :type offset: int + :param fields: A comma-separated list of fields to include in the response. + :type fields: List[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_built_in_data_identifiers_serialize( + name=name, + limit=limit, + offset=offset, + fields=fields, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "List[BuiltInDataIdentifierListItem]", + '400': "ApiErrorResponse", + '500': "ApiErrorResponse", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ) + + + @validate_call + def get_built_in_data_identifiers_without_preload_content( + self, + name: Annotated[Optional[StrictStr], Field(description="The name of the built-in data identifier. The value of `name` is case insensitive and the system allows partial matches.")] = None, + limit: Annotated[Optional[Annotated[int, Field(le=100, strict=True, ge=1)]], Field(description="The number of records returned by the system in the response. The maximum number of items that are allowed in the response is 100. The default number of items returned in the response is 50.")] = None, + offset: Annotated[Optional[StrictInt], Field(description="The numeric offset into the collection used for pagination. Set the `offset` to skip the number of records from the collection in the response. The default value is `0`. ")] = None, + fields: Annotated[Optional[List[StrictStr]], Field(description="A comma-separated list of fields to include in the 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 Built-In Data Identifiers + + List the built-in data identifiers. You can query the built-in data identifiers using the `name` parameter. + + :param name: The name of the built-in data identifier. The value of `name` is case insensitive and the system allows partial matches. + :type name: str + :param limit: The number of records returned by the system in the response. The maximum number of items that are allowed in the response is 100. The default number of items returned in the response is 50. + :type limit: int + :param offset: The numeric offset into the collection used for pagination. Set the `offset` to skip the number of records from the collection in the response. The default value is `0`. + :type offset: int + :param fields: A comma-separated list of fields to include in the response. + :type fields: List[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_built_in_data_identifiers_serialize( + name=name, + limit=limit, + offset=offset, + fields=fields, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "List[BuiltInDataIdentifierListItem]", + '400': "ApiErrorResponse", + '500': "ApiErrorResponse", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _get_built_in_data_identifiers_serialize( + self, + name, + limit, + offset, + fields, + _request_auth, + _content_type, + _headers, + _host_index, + ) -> RequestSerialized: + + _host = None + + _collection_formats: Dict[str, str] = { + 'fields': 'csv', + } + + _path_params: Dict[str, str] = {} + _query_params: List[Tuple[str, str]] = [] + _header_params: Dict[str, Optional[str]] = _headers or {} + _form_params: List[Tuple[str, str]] = [] + _files: Dict[ + str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] + ] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + # process the query parameters + if name is not None: + + _query_params.append(('name', name)) + + if limit is not None: + + _query_params.append(('limit', limit)) + + if offset is not None: + + _query_params.append(('offset', offset)) + + if fields is not None: + + _query_params.append(('fields', fields)) + + # process the header parameters + # process the form parameters + # process the body parameter + + + # set the HTTP header `Accept` + if 'Accept' not in _header_params: + _header_params['Accept'] = self.api_client.select_header_accept( + [ + 'application/json' + ] + ) + + + # authentication setting + _auth_settings: List[str] = [ + 'oauthFlow' + ] + + return self.api_client.param_serialize( + method='GET', + resource_path='/policies/v2/dlp/builtIn/dataIdentifiers', + 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_custom_data_identifier_by_id( + self, + id: Annotated[UUID, Field(description="The unique ID of the custom data identifier.")], + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> CustomDataIdentifier: + """Get Custom Data Identifier + + Get the properties of a specific custom data identifier. + + :param id: The unique ID of the custom data identifier. (required) + :type id: UUID + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._get_custom_data_identifier_by_id_serialize( + id=id, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "CustomDataIdentifier", + '400': "ApiErrorResponse", + '404': "ApiErrorResponse", + '500': "ApiErrorResponse", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ).data + + + @validate_call + def get_custom_data_identifier_by_id_with_http_info( + self, + id: Annotated[UUID, Field(description="The unique ID of the custom data identifier.")], + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> ApiResponse[CustomDataIdentifier]: + """Get Custom Data Identifier + + Get the properties of a specific custom data identifier. + + :param id: The unique ID of the custom data identifier. (required) + :type id: UUID + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._get_custom_data_identifier_by_id_serialize( + id=id, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "CustomDataIdentifier", + '400': "ApiErrorResponse", + '404': "ApiErrorResponse", + '500': "ApiErrorResponse", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ) + + + @validate_call + def get_custom_data_identifier_by_id_without_preload_content( + self, + id: Annotated[UUID, Field(description="The unique ID of the custom data identifier.")], + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> RESTResponseType: + """Get Custom Data Identifier + + Get the properties of a specific custom data identifier. + + :param id: The unique ID of the custom data identifier. (required) + :type id: UUID + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._get_custom_data_identifier_by_id_serialize( + id=id, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "CustomDataIdentifier", + '400': "ApiErrorResponse", + '404': "ApiErrorResponse", + '500': "ApiErrorResponse", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _get_custom_data_identifier_by_id_serialize( + self, + id, + _request_auth, + _content_type, + _headers, + _host_index, + ) -> RequestSerialized: + + _host = None + + _collection_formats: Dict[str, str] = { + } + + _path_params: Dict[str, str] = {} + _query_params: List[Tuple[str, str]] = [] + _header_params: Dict[str, Optional[str]] = _headers or {} + _form_params: List[Tuple[str, str]] = [] + _files: Dict[ + str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] + ] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + if id is not None: + _path_params['id'] = id + # process the query parameters + # process the header parameters + # process the form parameters + # process the body parameter + + + # set the HTTP header `Accept` + if 'Accept' not in _header_params: + _header_params['Accept'] = self.api_client.select_header_accept( + [ + 'application/json' + ] + ) + + + # authentication setting + _auth_settings: List[str] = [ + 'oauthFlow' + ] + + return self.api_client.param_serialize( + method='GET', + resource_path='/policies/v2/dlp/custom/dataIdentifiers/{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_custom_data_identifiers( + self, + name: Annotated[Optional[StrictStr], Field(description="The name of the custom data identifier. The value of `name` is case insensitive and the system allows partial matches.")] = None, + limit: Annotated[Optional[Annotated[int, Field(le=100, strict=True, ge=1)]], Field(description="The number of records returned by the system in the response. The maximum number of items that are allowed in the response is 100. The default number of items returned in the response is 50.")] = None, + offset: Annotated[Optional[StrictInt], Field(description="The numeric offset into the collection used for pagination. Set the `offset` to skip the number of records from the collection in the response. The default value is `0`. ")] = None, + fields: Annotated[Optional[List[StrictStr]], Field(description="A comma-separated list of fields to include in the 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, + ) -> List[CustomDataIdentifierListItem]: + """List Custom Data Identifiers + + List the custom data identifiers. You can query the custom data identifiers using the `name` parameter. + + :param name: The name of the custom data identifier. The value of `name` is case insensitive and the system allows partial matches. + :type name: str + :param limit: The number of records returned by the system in the response. The maximum number of items that are allowed in the response is 100. The default number of items returned in the response is 50. + :type limit: int + :param offset: The numeric offset into the collection used for pagination. Set the `offset` to skip the number of records from the collection in the response. The default value is `0`. + :type offset: int + :param fields: A comma-separated list of fields to include in the response. + :type fields: List[str] + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._get_custom_data_identifiers_serialize( + name=name, + limit=limit, + offset=offset, + fields=fields, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "List[CustomDataIdentifierListItem]", + '400': "ApiErrorResponse", + '500': "ApiErrorResponse", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ).data + + + @validate_call + def get_custom_data_identifiers_with_http_info( + self, + name: Annotated[Optional[StrictStr], Field(description="The name of the custom data identifier. The value of `name` is case insensitive and the system allows partial matches.")] = None, + limit: Annotated[Optional[Annotated[int, Field(le=100, strict=True, ge=1)]], Field(description="The number of records returned by the system in the response. The maximum number of items that are allowed in the response is 100. The default number of items returned in the response is 50.")] = None, + offset: Annotated[Optional[StrictInt], Field(description="The numeric offset into the collection used for pagination. Set the `offset` to skip the number of records from the collection in the response. The default value is `0`. ")] = None, + fields: Annotated[Optional[List[StrictStr]], Field(description="A comma-separated list of fields to include in the 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[List[CustomDataIdentifierListItem]]: + """List Custom Data Identifiers + + List the custom data identifiers. You can query the custom data identifiers using the `name` parameter. + + :param name: The name of the custom data identifier. The value of `name` is case insensitive and the system allows partial matches. + :type name: str + :param limit: The number of records returned by the system in the response. The maximum number of items that are allowed in the response is 100. The default number of items returned in the response is 50. + :type limit: int + :param offset: The numeric offset into the collection used for pagination. Set the `offset` to skip the number of records from the collection in the response. The default value is `0`. + :type offset: int + :param fields: A comma-separated list of fields to include in the response. + :type fields: List[str] + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._get_custom_data_identifiers_serialize( + name=name, + limit=limit, + offset=offset, + fields=fields, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "List[CustomDataIdentifierListItem]", + '400': "ApiErrorResponse", + '500': "ApiErrorResponse", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ) + + + @validate_call + def get_custom_data_identifiers_without_preload_content( + self, + name: Annotated[Optional[StrictStr], Field(description="The name of the custom data identifier. The value of `name` is case insensitive and the system allows partial matches.")] = None, + limit: Annotated[Optional[Annotated[int, Field(le=100, strict=True, ge=1)]], Field(description="The number of records returned by the system in the response. The maximum number of items that are allowed in the response is 100. The default number of items returned in the response is 50.")] = None, + offset: Annotated[Optional[StrictInt], Field(description="The numeric offset into the collection used for pagination. Set the `offset` to skip the number of records from the collection in the response. The default value is `0`. ")] = None, + fields: Annotated[Optional[List[StrictStr]], Field(description="A comma-separated list of fields to include in the 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 Custom Data Identifiers + + List the custom data identifiers. You can query the custom data identifiers using the `name` parameter. + + :param name: The name of the custom data identifier. The value of `name` is case insensitive and the system allows partial matches. + :type name: str + :param limit: The number of records returned by the system in the response. The maximum number of items that are allowed in the response is 100. The default number of items returned in the response is 50. + :type limit: int + :param offset: The numeric offset into the collection used for pagination. Set the `offset` to skip the number of records from the collection in the response. The default value is `0`. + :type offset: int + :param fields: A comma-separated list of fields to include in the response. + :type fields: List[str] + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._get_custom_data_identifiers_serialize( + name=name, + limit=limit, + offset=offset, + fields=fields, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "List[CustomDataIdentifierListItem]", + '400': "ApiErrorResponse", + '500': "ApiErrorResponse", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _get_custom_data_identifiers_serialize( + self, + name, + limit, + offset, + fields, + _request_auth, + _content_type, + _headers, + _host_index, + ) -> RequestSerialized: + + _host = None + + _collection_formats: Dict[str, str] = { + 'fields': 'csv', + } + + _path_params: Dict[str, str] = {} + _query_params: List[Tuple[str, str]] = [] + _header_params: Dict[str, Optional[str]] = _headers or {} + _form_params: List[Tuple[str, str]] = [] + _files: Dict[ + str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] + ] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + # process the query parameters + if name is not None: + + _query_params.append(('name', name)) + + if limit is not None: + + _query_params.append(('limit', limit)) + + if offset is not None: + + _query_params.append(('offset', offset)) + + if fields is not None: + + _query_params.append(('fields', fields)) + + # process the header parameters + # process the form parameters + # process the body parameter + + + # set the HTTP header `Accept` + if 'Accept' not in _header_params: + _header_params['Accept'] = self.api_client.select_header_accept( + [ + 'application/json' + ] + ) + + + # authentication setting + _auth_settings: List[str] = [ + 'oauthFlow' + ] + + return self.api_client.param_serialize( + method='GET', + resource_path='/policies/v2/dlp/custom/dataIdentifiers', + 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_edm( + self, + id: Annotated[UUID, Field(description="The unique ID of the Exact Data Match (EDM) data identifier.")], + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> EDMIdentifierResponse: + """Get EDM Data Identifier + + Get the properties of a specific Exact Data Match (EDM) data identifier. + + :param id: The unique ID of the Exact Data Match (EDM) data identifier. (required) + :type id: UUID + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores 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_edm_serialize( + id=id, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "EDMIdentifierResponse", + '400': "ApiErrorResponse", + '401': "ApiErrorResponse", + '403': "ApiErrorResponse", + '404': "ApiErrorResponse", + '500': "ApiErrorResponse", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ).data + + + @validate_call + def get_edm_with_http_info( + self, + id: Annotated[UUID, Field(description="The unique ID of the Exact Data Match (EDM) data identifier.")], + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> ApiResponse[EDMIdentifierResponse]: + """Get EDM Data Identifier + + Get the properties of a specific Exact Data Match (EDM) data identifier. + + :param id: The unique ID of the Exact Data Match (EDM) data identifier. (required) + :type id: UUID + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores 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_edm_serialize( + id=id, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "EDMIdentifierResponse", + '400': "ApiErrorResponse", + '401': "ApiErrorResponse", + '403': "ApiErrorResponse", + '404': "ApiErrorResponse", + '500': "ApiErrorResponse", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ) + + + @validate_call + def get_edm_without_preload_content( + self, + id: Annotated[UUID, Field(description="The unique ID of the Exact Data Match (EDM) data identifier.")], + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> RESTResponseType: + """Get EDM Data Identifier + + Get the properties of a specific Exact Data Match (EDM) data identifier. + + :param id: The unique ID of the Exact Data Match (EDM) data identifier. (required) + :type id: UUID + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores 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_edm_serialize( + id=id, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "EDMIdentifierResponse", + '400': "ApiErrorResponse", + '401': "ApiErrorResponse", + '403': "ApiErrorResponse", + '404': "ApiErrorResponse", + '500': "ApiErrorResponse", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _get_edm_serialize( + self, + id, + _request_auth, + _content_type, + _headers, + _host_index, + ) -> RequestSerialized: + + _host = None + + _collection_formats: Dict[str, str] = { + } + + _path_params: Dict[str, str] = {} + _query_params: List[Tuple[str, str]] = [] + _header_params: Dict[str, Optional[str]] = _headers or {} + _form_params: List[Tuple[str, str]] = [] + _files: Dict[ + str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] + ] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + if id is not None: + _path_params['id'] = id + # process the query parameters + # process the header parameters + # process the form parameters + # process the body parameter + + + # set the HTTP header `Accept` + if 'Accept' not in _header_params: + _header_params['Accept'] = self.api_client.select_header_accept( + [ + 'application/json' + ] + ) + + + # authentication setting + _auth_settings: List[str] = [ + 'oauthFlow' + ] + + return self.api_client.param_serialize( + method='GET', + resource_path='/policies/v2/dlp/edm/dataIdentifiers/{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_edm_types( + self, + name: Annotated[Optional[StrictStr], Field(description="The name of the type for the Exact Data Match (EDM) data identifier. The value of `name` is case insensitive and the system allows partial matches.")] = None, + limit: Annotated[Optional[Annotated[int, Field(le=100, strict=True, ge=1)]], Field(description="The number of records returned by the system in the response. The maximum number of items that are allowed in the response is 100. The default number of items returned in the response is 50.")] = None, + offset: Annotated[Optional[StrictInt], Field(description="The numeric offset into the collection used for pagination. Set the `offset` to skip the number of records from the collection in the response. The default value is `0`. ")] = 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, + ) -> List[EDMType]: + """List EDM Types + + List the types of the Exact Data Match (EDM) data identifiers supported by the organization. The EDM types define the type of data that are allowed in the EDM columns. + + :param name: The name of the type for the Exact Data Match (EDM) data identifier. The value of `name` is case insensitive and the system allows partial matches. + :type name: str + :param limit: The number of records returned by the system in the response. The maximum number of items that are allowed in the response is 100. The default number of items returned in the response is 50. + :type limit: int + :param offset: The numeric offset into the collection used for pagination. Set the `offset` to skip the number of records from the collection in the response. The default value is `0`. + :type offset: int + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._get_edm_types_serialize( + name=name, + limit=limit, + offset=offset, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "List[EDMType]", + '400': "ApiErrorResponse", + '500': "ApiErrorResponse", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ).data + + + @validate_call + def get_edm_types_with_http_info( + self, + name: Annotated[Optional[StrictStr], Field(description="The name of the type for the Exact Data Match (EDM) data identifier. The value of `name` is case insensitive and the system allows partial matches.")] = None, + limit: Annotated[Optional[Annotated[int, Field(le=100, strict=True, ge=1)]], Field(description="The number of records returned by the system in the response. The maximum number of items that are allowed in the response is 100. The default number of items returned in the response is 50.")] = None, + offset: Annotated[Optional[StrictInt], Field(description="The numeric offset into the collection used for pagination. Set the `offset` to skip the number of records from the collection in the response. The default value is `0`. ")] = 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[List[EDMType]]: + """List EDM Types + + List the types of the Exact Data Match (EDM) data identifiers supported by the organization. The EDM types define the type of data that are allowed in the EDM columns. + + :param name: The name of the type for the Exact Data Match (EDM) data identifier. The value of `name` is case insensitive and the system allows partial matches. + :type name: str + :param limit: The number of records returned by the system in the response. The maximum number of items that are allowed in the response is 100. The default number of items returned in the response is 50. + :type limit: int + :param offset: The numeric offset into the collection used for pagination. Set the `offset` to skip the number of records from the collection in the response. The default value is `0`. + :type offset: int + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._get_edm_types_serialize( + name=name, + limit=limit, + offset=offset, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "List[EDMType]", + '400': "ApiErrorResponse", + '500': "ApiErrorResponse", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ) + + + @validate_call + def get_edm_types_without_preload_content( + self, + name: Annotated[Optional[StrictStr], Field(description="The name of the type for the Exact Data Match (EDM) data identifier. The value of `name` is case insensitive and the system allows partial matches.")] = None, + limit: Annotated[Optional[Annotated[int, Field(le=100, strict=True, ge=1)]], Field(description="The number of records returned by the system in the response. The maximum number of items that are allowed in the response is 100. The default number of items returned in the response is 50.")] = None, + offset: Annotated[Optional[StrictInt], Field(description="The numeric offset into the collection used for pagination. Set the `offset` to skip the number of records from the collection in the response. The default value is `0`. ")] = 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 EDM Types + + List the types of the Exact Data Match (EDM) data identifiers supported by the organization. The EDM types define the type of data that are allowed in the EDM columns. + + :param name: The name of the type for the Exact Data Match (EDM) data identifier. The value of `name` is case insensitive and the system allows partial matches. + :type name: str + :param limit: The number of records returned by the system in the response. The maximum number of items that are allowed in the response is 100. The default number of items returned in the response is 50. + :type limit: int + :param offset: The numeric offset into the collection used for pagination. Set the `offset` to skip the number of records from the collection in the response. The default value is `0`. + :type offset: int + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._get_edm_types_serialize( + name=name, + limit=limit, + offset=offset, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "List[EDMType]", + '400': "ApiErrorResponse", + '500': "ApiErrorResponse", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _get_edm_types_serialize( + self, + name, + limit, + offset, + _request_auth, + _content_type, + _headers, + _host_index, + ) -> RequestSerialized: + + _host = None + + _collection_formats: Dict[str, str] = { + } + + _path_params: Dict[str, str] = {} + _query_params: List[Tuple[str, str]] = [] + _header_params: Dict[str, Optional[str]] = _headers or {} + _form_params: List[Tuple[str, str]] = [] + _files: Dict[ + str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] + ] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + # process the query parameters + if name is not None: + + _query_params.append(('name', name)) + + if limit is not None: + + _query_params.append(('limit', limit)) + + if offset is not None: + + _query_params.append(('offset', offset)) + + # process the header parameters + # process the form parameters + # process the body parameter + + + # set the HTTP header `Accept` + if 'Accept' not in _header_params: + _header_params['Accept'] = self.api_client.select_header_accept( + [ + 'application/json' + ] + ) + + + # authentication setting + _auth_settings: List[str] = [ + 'oauthFlow' + ] + + return self.api_client.param_serialize( + method='GET', + resource_path='/policies/v2/dlp/edm/types', + 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_idm_data_identifier( + self, + id: Annotated[UUID, Field(description="The unique ID of the Indexed Document Match (IDM) data identifier.")], + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> IDMDataIdentifierResponse: + """Get IDM Data Identifier + + Get the properties of a specific Indexed Document Match (IDM) data identifier. + + :param id: The unique ID of the Indexed Document Match (IDM) data identifier. (required) + :type id: UUID + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores 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_idm_data_identifier_serialize( + id=id, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "IDMDataIdentifierResponse", + '400': "ApiErrorResponse", + '401': "ApiErrorResponse", + '403': "ApiErrorResponse", + '404': "ApiErrorResponse", + '500': "ApiErrorResponse", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ).data + + + @validate_call + def get_idm_data_identifier_with_http_info( + self, + id: Annotated[UUID, Field(description="The unique ID of the Indexed Document Match (IDM) data identifier.")], + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> ApiResponse[IDMDataIdentifierResponse]: + """Get IDM Data Identifier + + Get the properties of a specific Indexed Document Match (IDM) data identifier. + + :param id: The unique ID of the Indexed Document Match (IDM) data identifier. (required) + :type id: UUID + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores 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_idm_data_identifier_serialize( + id=id, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "IDMDataIdentifierResponse", + '400': "ApiErrorResponse", + '401': "ApiErrorResponse", + '403': "ApiErrorResponse", + '404': "ApiErrorResponse", + '500': "ApiErrorResponse", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ) + + + @validate_call + def get_idm_data_identifier_without_preload_content( + self, + id: Annotated[UUID, Field(description="The unique ID of the Indexed Document Match (IDM) data identifier.")], + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> RESTResponseType: + """Get IDM Data Identifier + + Get the properties of a specific Indexed Document Match (IDM) data identifier. + + :param id: The unique ID of the Indexed Document Match (IDM) data identifier. (required) + :type id: UUID + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores 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_idm_data_identifier_serialize( + id=id, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "IDMDataIdentifierResponse", + '400': "ApiErrorResponse", + '401': "ApiErrorResponse", + '403': "ApiErrorResponse", + '404': "ApiErrorResponse", + '500': "ApiErrorResponse", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _get_idm_data_identifier_serialize( + self, + id, + _request_auth, + _content_type, + _headers, + _host_index, + ) -> RequestSerialized: + + _host = None + + _collection_formats: Dict[str, str] = { + } + + _path_params: Dict[str, str] = {} + _query_params: List[Tuple[str, str]] = [] + _header_params: Dict[str, Optional[str]] = _headers or {} + _form_params: List[Tuple[str, str]] = [] + _files: Dict[ + str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] + ] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + if id is not None: + _path_params['id'] = id + # process the query parameters + # process the header parameters + # process the form parameters + # process the body parameter + + + # set the HTTP header `Accept` + if 'Accept' not in _header_params: + _header_params['Accept'] = self.api_client.select_header_accept( + [ + 'application/json' + ] + ) + + + # authentication setting + _auth_settings: List[str] = [ + 'oauthFlow' + ] + + return self.api_client.param_serialize( + method='GET', + resource_path='/policies/v2/dlp/idm/dataIdentifiers/{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 update_custom_data_identifier( + self, + id: Annotated[UUID, Field(description="The unique ID of the custom data identifier.")], + custom_data_identifier_update_request: CustomDataIdentifierUpdateRequest, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> CustomDataIdentifier: + """Update Custom Data Identifier + + Update a custom data identifier. + + :param id: The unique ID of the custom data identifier. (required) + :type id: UUID + :param custom_data_identifier_update_request: (required) + :type custom_data_identifier_update_request: CustomDataIdentifierUpdateRequest + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores 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_custom_data_identifier_serialize( + id=id, + custom_data_identifier_update_request=custom_data_identifier_update_request, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "CustomDataIdentifier", + '400': "ApiErrorResponse", + '401': "ApiErrorResponse", + '403': "ApiErrorResponse", + '404': "ApiErrorResponse", + '500': "ApiErrorResponse", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ).data + + + @validate_call + def update_custom_data_identifier_with_http_info( + self, + id: Annotated[UUID, Field(description="The unique ID of the custom data identifier.")], + custom_data_identifier_update_request: CustomDataIdentifierUpdateRequest, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[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[CustomDataIdentifier]: + """Update Custom Data Identifier + + Update a custom data identifier. + + :param id: The unique ID of the custom data identifier. (required) + :type id: UUID + :param custom_data_identifier_update_request: (required) + :type custom_data_identifier_update_request: CustomDataIdentifierUpdateRequest + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores 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_custom_data_identifier_serialize( + id=id, + custom_data_identifier_update_request=custom_data_identifier_update_request, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "CustomDataIdentifier", + '400': "ApiErrorResponse", + '401': "ApiErrorResponse", + '403': "ApiErrorResponse", + '404': "ApiErrorResponse", + '500': "ApiErrorResponse", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ) + + + @validate_call + def update_custom_data_identifier_without_preload_content( + self, + id: Annotated[UUID, Field(description="The unique ID of the custom data identifier.")], + custom_data_identifier_update_request: CustomDataIdentifierUpdateRequest, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[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 Custom Data Identifier + + Update a custom data identifier. + + :param id: The unique ID of the custom data identifier. (required) + :type id: UUID + :param custom_data_identifier_update_request: (required) + :type custom_data_identifier_update_request: CustomDataIdentifierUpdateRequest + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores 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_custom_data_identifier_serialize( + id=id, + custom_data_identifier_update_request=custom_data_identifier_update_request, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "CustomDataIdentifier", + '400': "ApiErrorResponse", + '401': "ApiErrorResponse", + '403': "ApiErrorResponse", + '404': "ApiErrorResponse", + '500': "ApiErrorResponse", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _update_custom_data_identifier_serialize( + self, + id, + custom_data_identifier_update_request, + _request_auth, + _content_type, + _headers, + _host_index, + ) -> RequestSerialized: + + _host = None + + _collection_formats: Dict[str, str] = { + } + + _path_params: Dict[str, str] = {} + _query_params: List[Tuple[str, str]] = [] + _header_params: Dict[str, Optional[str]] = _headers or {} + _form_params: List[Tuple[str, str]] = [] + _files: Dict[ + str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] + ] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + if id is not None: + _path_params['id'] = id + # process the query parameters + # process the header parameters + # process the form parameters + # process the body parameter + if custom_data_identifier_update_request is not None: + _body_params = custom_data_identifier_update_request + + + # set the HTTP header `Accept` + if 'Accept' not in _header_params: + _header_params['Accept'] = self.api_client.select_header_accept( + [ + 'application/json' + ] + ) + + # set the HTTP header `Content-Type` + if _content_type: + _header_params['Content-Type'] = _content_type + else: + _default_content_type = ( + self.api_client.select_header_content_type( + [ + 'application/json' + ] + ) + ) + if _default_content_type is not None: + _header_params['Content-Type'] = _default_content_type + + # authentication setting + _auth_settings: List[str] = [ + 'oauthFlow' + ] + + return self.api_client.param_serialize( + method='PATCH', + resource_path='/policies/v2/dlp/custom/dataIdentifiers/{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 update_edm( + self, + id: Annotated[UUID, Field(description="The unique ID of the Exact Data Match (EDM) data identifier.")], + edm_identifier_update_request: Annotated[EDMIdentifierUpdateRequest, Field(description="The properties used to update the EDM data identifier.")], + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> EDMIdentifierResponse: + """Update EDM Data Identifier + + Update the Exact Data Match (EDM) data identifier. The system requires that you set one or more fields in the request body. + + :param id: The unique ID of the Exact Data Match (EDM) data identifier. (required) + :type id: UUID + :param edm_identifier_update_request: The properties used to update the EDM data identifier. (required) + :type edm_identifier_update_request: EDMIdentifierUpdateRequest + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores 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_edm_serialize( + id=id, + edm_identifier_update_request=edm_identifier_update_request, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "EDMIdentifierResponse", + '400': "ApiErrorResponse", + '401': "ApiErrorResponse", + '403': "ApiErrorResponse", + '404': "ApiErrorResponse", + '500': "ApiErrorResponse", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ).data + + + @validate_call + def update_edm_with_http_info( + self, + id: Annotated[UUID, Field(description="The unique ID of the Exact Data Match (EDM) data identifier.")], + edm_identifier_update_request: Annotated[EDMIdentifierUpdateRequest, Field(description="The properties used to update the EDM data identifier.")], + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> ApiResponse[EDMIdentifierResponse]: + """Update EDM Data Identifier + + Update the Exact Data Match (EDM) data identifier. The system requires that you set one or more fields in the request body. + + :param id: The unique ID of the Exact Data Match (EDM) data identifier. (required) + :type id: UUID + :param edm_identifier_update_request: The properties used to update the EDM data identifier. (required) + :type edm_identifier_update_request: EDMIdentifierUpdateRequest + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores 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_edm_serialize( + id=id, + edm_identifier_update_request=edm_identifier_update_request, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "EDMIdentifierResponse", + '400': "ApiErrorResponse", + '401': "ApiErrorResponse", + '403': "ApiErrorResponse", + '404': "ApiErrorResponse", + '500': "ApiErrorResponse", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ) + + + @validate_call + def update_edm_without_preload_content( + self, + id: Annotated[UUID, Field(description="The unique ID of the Exact Data Match (EDM) data identifier.")], + edm_identifier_update_request: Annotated[EDMIdentifierUpdateRequest, Field(description="The properties used to update the EDM data identifier.")], + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> RESTResponseType: + """Update EDM Data Identifier + + Update the Exact Data Match (EDM) data identifier. The system requires that you set one or more fields in the request body. + + :param id: The unique ID of the Exact Data Match (EDM) data identifier. (required) + :type id: UUID + :param edm_identifier_update_request: The properties used to update the EDM data identifier. (required) + :type edm_identifier_update_request: EDMIdentifierUpdateRequest + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores 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_edm_serialize( + id=id, + edm_identifier_update_request=edm_identifier_update_request, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "EDMIdentifierResponse", + '400': "ApiErrorResponse", + '401': "ApiErrorResponse", + '403': "ApiErrorResponse", + '404': "ApiErrorResponse", + '500': "ApiErrorResponse", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _update_edm_serialize( + self, + id, + edm_identifier_update_request, + _request_auth, + _content_type, + _headers, + _host_index, + ) -> RequestSerialized: + + _host = None + + _collection_formats: Dict[str, str] = { + } + + _path_params: Dict[str, str] = {} + _query_params: List[Tuple[str, str]] = [] + _header_params: Dict[str, Optional[str]] = _headers or {} + _form_params: List[Tuple[str, str]] = [] + _files: Dict[ + str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] + ] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + if id is not None: + _path_params['id'] = id + # process the query parameters + # process the header parameters + # process the form parameters + # process the body parameter + if edm_identifier_update_request is not None: + _body_params = edm_identifier_update_request + + + # set the HTTP header `Accept` + if 'Accept' not in _header_params: + _header_params['Accept'] = self.api_client.select_header_accept( + [ + 'application/json' + ] + ) + + # set the HTTP header `Content-Type` + if _content_type: + _header_params['Content-Type'] = _content_type + else: + _default_content_type = ( + self.api_client.select_header_content_type( + [ + 'application/json' + ] + ) + ) + if _default_content_type is not None: + _header_params['Content-Type'] = _default_content_type + + # authentication setting + _auth_settings: List[str] = [ + 'oauthFlow' + ] + + return self.api_client.param_serialize( + method='PATCH', + resource_path='/policies/v2/dlp/edm/dataIdentifiers/{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 update_idm_data_identifier( + self, + id: Annotated[UUID, Field(description="The unique ID of the Indexed Document Match (IDM) data identifier.")], + idm_identifier_update_request: Annotated[IDMIdentifierUpdateRequest, Field(description="Update the properties of the IDM data identifier.")], + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> IDMDataIdentifierResponse: + """Update IDM Data Identifier + + Update the Indexed Document Match (IDM) data identifier. + + :param id: The unique ID of the Indexed Document Match (IDM) data identifier. (required) + :type id: UUID + :param idm_identifier_update_request: Update the properties of the IDM data identifier. (required) + :type idm_identifier_update_request: IDMIdentifierUpdateRequest + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores 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_idm_data_identifier_serialize( + id=id, + idm_identifier_update_request=idm_identifier_update_request, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "IDMDataIdentifierResponse", + '400': "ApiErrorResponse", + '401': "ApiErrorResponse", + '403': "ApiErrorResponse", + '404': "ApiErrorResponse", + '500': "ApiErrorResponse", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ).data + + + @validate_call + def update_idm_data_identifier_with_http_info( + self, + id: Annotated[UUID, Field(description="The unique ID of the Indexed Document Match (IDM) data identifier.")], + idm_identifier_update_request: Annotated[IDMIdentifierUpdateRequest, Field(description="Update the properties of the IDM data identifier.")], + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> ApiResponse[IDMDataIdentifierResponse]: + """Update IDM Data Identifier + + Update the Indexed Document Match (IDM) data identifier. + + :param id: The unique ID of the Indexed Document Match (IDM) data identifier. (required) + :type id: UUID + :param idm_identifier_update_request: Update the properties of the IDM data identifier. (required) + :type idm_identifier_update_request: IDMIdentifierUpdateRequest + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores 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_idm_data_identifier_serialize( + id=id, + idm_identifier_update_request=idm_identifier_update_request, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "IDMDataIdentifierResponse", + '400': "ApiErrorResponse", + '401': "ApiErrorResponse", + '403': "ApiErrorResponse", + '404': "ApiErrorResponse", + '500': "ApiErrorResponse", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ) + + + @validate_call + def update_idm_data_identifier_without_preload_content( + self, + id: Annotated[UUID, Field(description="The unique ID of the Indexed Document Match (IDM) data identifier.")], + idm_identifier_update_request: Annotated[IDMIdentifierUpdateRequest, Field(description="Update the properties of the IDM data identifier.")], + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> RESTResponseType: + """Update IDM Data Identifier + + Update the Indexed Document Match (IDM) data identifier. + + :param id: The unique ID of the Indexed Document Match (IDM) data identifier. (required) + :type id: UUID + :param idm_identifier_update_request: Update the properties of the IDM data identifier. (required) + :type idm_identifier_update_request: IDMIdentifierUpdateRequest + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores 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_idm_data_identifier_serialize( + id=id, + idm_identifier_update_request=idm_identifier_update_request, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "IDMDataIdentifierResponse", + '400': "ApiErrorResponse", + '401': "ApiErrorResponse", + '403': "ApiErrorResponse", + '404': "ApiErrorResponse", + '500': "ApiErrorResponse", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _update_idm_data_identifier_serialize( + self, + id, + idm_identifier_update_request, + _request_auth, + _content_type, + _headers, + _host_index, + ) -> RequestSerialized: + + _host = None + + _collection_formats: Dict[str, str] = { + } + + _path_params: Dict[str, str] = {} + _query_params: List[Tuple[str, str]] = [] + _header_params: Dict[str, Optional[str]] = _headers or {} + _form_params: List[Tuple[str, str]] = [] + _files: Dict[ + str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] + ] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + if id is not None: + _path_params['id'] = id + # process the query parameters + # process the header parameters + # process the form parameters + # process the body parameter + if idm_identifier_update_request is not None: + _body_params = idm_identifier_update_request + + + # set the HTTP header `Accept` + if 'Accept' not in _header_params: + _header_params['Accept'] = self.api_client.select_header_accept( + [ + 'application/json' + ] + ) + + # set the HTTP header `Content-Type` + if _content_type: + _header_params['Content-Type'] = _content_type + else: + _default_content_type = ( + self.api_client.select_header_content_type( + [ + 'application/json' + ] + ) + ) + if _default_content_type is not None: + _header_params['Content-Type'] = _default_content_type + + # authentication setting + _auth_settings: List[str] = [ + 'oauthFlow' + ] + + return self.api_client.param_serialize( + method='PATCH', + resource_path='/policies/v2/dlp/idm/dataIdentifiers/{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/secure_access/api/deployment_status_api.py b/secure_access/api/deployment_status_api.py index 20fe5f1..e48acd0 100644 --- a/secure_access/api/deployment_status_api.py +++ b/secure_access/api/deployment_status_api.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) @@ -67,7 +67,7 @@ def get_deployment_status( ) -> GetDeploymentStatus200Response: """Get Deployment Status - List the deployment status within the timeframe. **Access Scope:** Reports > Granular Events > Read-Only + List the deployment status within the timeframe. **Access Scope:** Reports > Aggregations > Read-Only :param var_from: A timestamp or relative time string (for example: '-1days'). Filter for data that appears after this time. (required) :type var_from: str @@ -155,7 +155,7 @@ def get_deployment_status_with_http_info( ) -> ApiResponse[GetDeploymentStatus200Response]: """Get Deployment Status - List the deployment status within the timeframe. **Access Scope:** Reports > Granular Events > Read-Only + List the deployment status within the timeframe. **Access Scope:** Reports > Aggregations > Read-Only :param var_from: A timestamp or relative time string (for example: '-1days'). Filter for data that appears after this time. (required) :type var_from: str @@ -243,7 +243,7 @@ def get_deployment_status_without_preload_content( ) -> RESTResponseType: """Get Deployment Status - List the deployment status within the timeframe. **Access Scope:** Reports > Granular Events > Read-Only + List the deployment status within the timeframe. **Access Scope:** Reports > Aggregations > Read-Only :param var_from: A timestamp or relative time string (for example: '-1days'). Filter for data that appears after this time. (required) :type var_from: str diff --git a/secure_access/api/destination_lists_api.py b/secure_access/api/destination_lists_api.py index 8d938fa..8109244 100644 --- a/secure_access/api/destination_lists_api.py +++ b/secure_access/api/destination_lists_api.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) @@ -51,7 +51,7 @@ def __init__(self, api_client=None) -> None: @validate_call def create_destination_list( self, - destination_list_create: Annotated[DestinationListCreate, Field(description="Provide destination information and an optional array of destination objects. * Each API request accepts no more than 500 destination objects in the destination list. * Does not support global destination lists. You must set the `isGlobal` field to `false`. * You cannot use the Destination Lists API to create a destination list with the `access` type of `thirdparty_block`. * You must set the `bundleTypeId` to `2`. Web profiles are applied on your policy rules. * Each fully qualified domain name (FQDN) that you add in a destination list must contain no more than 253 characters. If you make an API request on the POST operation that adds a URL on a high-volume domain to a destination list, the operation may succeed (`HTTP/200 OK`). However, the server returns an error message (`HTTP/400 Bad Request`) that indicates that the destination is on a high-volume domain. **Note:** Secure Access does not add URLs that are on high-volume domains to destination lists. Instead, we recommend that you add the domain only.")], + destination_list_create: Annotated[DestinationListCreate, Field(description="Provide destination information and an optional array of destination objects. * Each API request accepts no more than 500 destination objects in the destination list. * Secure Access supports a maximum of 250,000 destinations spread across all destination lists in an organization. * Secure Access does not support global destination lists. Set the `isGlobal` field to `false`. * You cannot use the Destination Lists API to create a destination list with the `access` type of `thirdparty_block`. * You must set the `bundleTypeId` to `2`. Web profiles are applied on your access rules. * Each fully qualified domain name (FQDN) that you add in a destination list must contain no more than 253 characters. If you make an API request on the POST operation that adds a URL on a high-volume domain to a destination list, the operation may succeed (`HTTP/200 OK`). However, the server returns an error message (`HTTP/400 Bad Request`) that indicates that the destination is on a high-volume domain. **Note:** Secure Access does not add URLs that are on high-volume domains to destination lists. Instead, we recommend that you add the domain only.")], _request_timeout: Union[ None, Annotated[StrictFloat, Field(gt=0)], @@ -69,7 +69,7 @@ def create_destination_list( Create a destination list in your organization. - :param destination_list_create: Provide destination information and an optional array of destination objects. * Each API request accepts no more than 500 destination objects in the destination list. * Does not support global destination lists. You must set the `isGlobal` field to `false`. * You cannot use the Destination Lists API to create a destination list with the `access` type of `thirdparty_block`. * You must set the `bundleTypeId` to `2`. Web profiles are applied on your policy rules. * Each fully qualified domain name (FQDN) that you add in a destination list must contain no more than 253 characters. If you make an API request on the POST operation that adds a URL on a high-volume domain to a destination list, the operation may succeed (`HTTP/200 OK`). However, the server returns an error message (`HTTP/400 Bad Request`) that indicates that the destination is on a high-volume domain. **Note:** Secure Access does not add URLs that are on high-volume domains to destination lists. Instead, we recommend that you add the domain only. (required) + :param destination_list_create: Provide destination information and an optional array of destination objects. * Each API request accepts no more than 500 destination objects in the destination list. * Secure Access supports a maximum of 250,000 destinations spread across all destination lists in an organization. * Secure Access does not support global destination lists. Set the `isGlobal` field to `false`. * You cannot use the Destination Lists API to create a destination list with the `access` type of `thirdparty_block`. * You must set the `bundleTypeId` to `2`. Web profiles are applied on your access rules. * Each fully qualified domain name (FQDN) that you add in a destination list must contain no more than 253 characters. If you make an API request on the POST operation that adds a URL on a high-volume domain to a destination list, the operation may succeed (`HTTP/200 OK`). However, the server returns an error message (`HTTP/400 Bad Request`) that indicates that the destination is on a high-volume domain. **Note:** Secure Access does not add URLs that are on high-volume domains to destination lists. Instead, we recommend that you add the domain only. (required) :type destination_list_create: DestinationListCreate :param _request_timeout: timeout setting for this request. If one number provided, it will be total request @@ -123,7 +123,7 @@ def create_destination_list( @validate_call def create_destination_list_with_http_info( self, - destination_list_create: Annotated[DestinationListCreate, Field(description="Provide destination information and an optional array of destination objects. * Each API request accepts no more than 500 destination objects in the destination list. * Does not support global destination lists. You must set the `isGlobal` field to `false`. * You cannot use the Destination Lists API to create a destination list with the `access` type of `thirdparty_block`. * You must set the `bundleTypeId` to `2`. Web profiles are applied on your policy rules. * Each fully qualified domain name (FQDN) that you add in a destination list must contain no more than 253 characters. If you make an API request on the POST operation that adds a URL on a high-volume domain to a destination list, the operation may succeed (`HTTP/200 OK`). However, the server returns an error message (`HTTP/400 Bad Request`) that indicates that the destination is on a high-volume domain. **Note:** Secure Access does not add URLs that are on high-volume domains to destination lists. Instead, we recommend that you add the domain only.")], + destination_list_create: Annotated[DestinationListCreate, Field(description="Provide destination information and an optional array of destination objects. * Each API request accepts no more than 500 destination objects in the destination list. * Secure Access supports a maximum of 250,000 destinations spread across all destination lists in an organization. * Secure Access does not support global destination lists. Set the `isGlobal` field to `false`. * You cannot use the Destination Lists API to create a destination list with the `access` type of `thirdparty_block`. * You must set the `bundleTypeId` to `2`. Web profiles are applied on your access rules. * Each fully qualified domain name (FQDN) that you add in a destination list must contain no more than 253 characters. If you make an API request on the POST operation that adds a URL on a high-volume domain to a destination list, the operation may succeed (`HTTP/200 OK`). However, the server returns an error message (`HTTP/400 Bad Request`) that indicates that the destination is on a high-volume domain. **Note:** Secure Access does not add URLs that are on high-volume domains to destination lists. Instead, we recommend that you add the domain only.")], _request_timeout: Union[ None, Annotated[StrictFloat, Field(gt=0)], @@ -141,7 +141,7 @@ def create_destination_list_with_http_info( Create a destination list in your organization. - :param destination_list_create: Provide destination information and an optional array of destination objects. * Each API request accepts no more than 500 destination objects in the destination list. * Does not support global destination lists. You must set the `isGlobal` field to `false`. * You cannot use the Destination Lists API to create a destination list with the `access` type of `thirdparty_block`. * You must set the `bundleTypeId` to `2`. Web profiles are applied on your policy rules. * Each fully qualified domain name (FQDN) that you add in a destination list must contain no more than 253 characters. If you make an API request on the POST operation that adds a URL on a high-volume domain to a destination list, the operation may succeed (`HTTP/200 OK`). However, the server returns an error message (`HTTP/400 Bad Request`) that indicates that the destination is on a high-volume domain. **Note:** Secure Access does not add URLs that are on high-volume domains to destination lists. Instead, we recommend that you add the domain only. (required) + :param destination_list_create: Provide destination information and an optional array of destination objects. * Each API request accepts no more than 500 destination objects in the destination list. * Secure Access supports a maximum of 250,000 destinations spread across all destination lists in an organization. * Secure Access does not support global destination lists. Set the `isGlobal` field to `false`. * You cannot use the Destination Lists API to create a destination list with the `access` type of `thirdparty_block`. * You must set the `bundleTypeId` to `2`. Web profiles are applied on your access rules. * Each fully qualified domain name (FQDN) that you add in a destination list must contain no more than 253 characters. If you make an API request on the POST operation that adds a URL on a high-volume domain to a destination list, the operation may succeed (`HTTP/200 OK`). However, the server returns an error message (`HTTP/400 Bad Request`) that indicates that the destination is on a high-volume domain. **Note:** Secure Access does not add URLs that are on high-volume domains to destination lists. Instead, we recommend that you add the domain only. (required) :type destination_list_create: DestinationListCreate :param _request_timeout: timeout setting for this request. If one number provided, it will be total request @@ -195,7 +195,7 @@ def create_destination_list_with_http_info( @validate_call def create_destination_list_without_preload_content( self, - destination_list_create: Annotated[DestinationListCreate, Field(description="Provide destination information and an optional array of destination objects. * Each API request accepts no more than 500 destination objects in the destination list. * Does not support global destination lists. You must set the `isGlobal` field to `false`. * You cannot use the Destination Lists API to create a destination list with the `access` type of `thirdparty_block`. * You must set the `bundleTypeId` to `2`. Web profiles are applied on your policy rules. * Each fully qualified domain name (FQDN) that you add in a destination list must contain no more than 253 characters. If you make an API request on the POST operation that adds a URL on a high-volume domain to a destination list, the operation may succeed (`HTTP/200 OK`). However, the server returns an error message (`HTTP/400 Bad Request`) that indicates that the destination is on a high-volume domain. **Note:** Secure Access does not add URLs that are on high-volume domains to destination lists. Instead, we recommend that you add the domain only.")], + destination_list_create: Annotated[DestinationListCreate, Field(description="Provide destination information and an optional array of destination objects. * Each API request accepts no more than 500 destination objects in the destination list. * Secure Access supports a maximum of 250,000 destinations spread across all destination lists in an organization. * Secure Access does not support global destination lists. Set the `isGlobal` field to `false`. * You cannot use the Destination Lists API to create a destination list with the `access` type of `thirdparty_block`. * You must set the `bundleTypeId` to `2`. Web profiles are applied on your access rules. * Each fully qualified domain name (FQDN) that you add in a destination list must contain no more than 253 characters. If you make an API request on the POST operation that adds a URL on a high-volume domain to a destination list, the operation may succeed (`HTTP/200 OK`). However, the server returns an error message (`HTTP/400 Bad Request`) that indicates that the destination is on a high-volume domain. **Note:** Secure Access does not add URLs that are on high-volume domains to destination lists. Instead, we recommend that you add the domain only.")], _request_timeout: Union[ None, Annotated[StrictFloat, Field(gt=0)], @@ -213,7 +213,7 @@ def create_destination_list_without_preload_content( Create a destination list in your organization. - :param destination_list_create: Provide destination information and an optional array of destination objects. * Each API request accepts no more than 500 destination objects in the destination list. * Does not support global destination lists. You must set the `isGlobal` field to `false`. * You cannot use the Destination Lists API to create a destination list with the `access` type of `thirdparty_block`. * You must set the `bundleTypeId` to `2`. Web profiles are applied on your policy rules. * Each fully qualified domain name (FQDN) that you add in a destination list must contain no more than 253 characters. If you make an API request on the POST operation that adds a URL on a high-volume domain to a destination list, the operation may succeed (`HTTP/200 OK`). However, the server returns an error message (`HTTP/400 Bad Request`) that indicates that the destination is on a high-volume domain. **Note:** Secure Access does not add URLs that are on high-volume domains to destination lists. Instead, we recommend that you add the domain only. (required) + :param destination_list_create: Provide destination information and an optional array of destination objects. * Each API request accepts no more than 500 destination objects in the destination list. * Secure Access supports a maximum of 250,000 destinations spread across all destination lists in an organization. * Secure Access does not support global destination lists. Set the `isGlobal` field to `false`. * You cannot use the Destination Lists API to create a destination list with the `access` type of `thirdparty_block`. * You must set the `bundleTypeId` to `2`. Web profiles are applied on your access rules. * Each fully qualified domain name (FQDN) that you add in a destination list must contain no more than 253 characters. If you make an API request on the POST operation that adds a URL on a high-volume domain to a destination list, the operation may succeed (`HTTP/200 OK`). However, the server returns an error message (`HTTP/400 Bad Request`) that indicates that the destination is on a high-volume domain. **Note:** Secure Access does not add URLs that are on high-volume domains to destination lists. Instead, we recommend that you add the domain only. (required) :type destination_list_create: DestinationListCreate :param _request_timeout: timeout setting for this request. If one number provided, it will be total request @@ -1204,7 +1204,7 @@ def update_destination_lists( ) -> DestinationListResponse: """Update Destination List - Update a destination list in your organization. + Update the name of a destination list in your organization. :param destination_list_id: The unique ID of the destination list. (required) :type destination_list_id: int @@ -1280,7 +1280,7 @@ def update_destination_lists_with_http_info( ) -> ApiResponse[DestinationListResponse]: """Update Destination List - Update a destination list in your organization. + Update the name of a destination list in your organization. :param destination_list_id: The unique ID of the destination list. (required) :type destination_list_id: int @@ -1356,7 +1356,7 @@ def update_destination_lists_without_preload_content( ) -> RESTResponseType: """Update Destination List - Update a destination list in your organization. + Update the name of a destination list in your organization. :param destination_list_id: The unique ID of the destination list. (required) :type destination_list_id: int diff --git a/secure_access/api/destinations_api.py b/secure_access/api/destinations_api.py index 8b72b92..95bfe9a 100644 --- a/secure_access/api/destinations_api.py +++ b/secure_access/api/destinations_api.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) @@ -50,7 +50,7 @@ def __init__(self, api_client=None) -> None: def create_destinations( self, destination_list_id: Annotated[StrictInt, Field(description="The unique ID of the destination list.")], - destination_create_object: Annotated[List[DestinationCreateObject], Field(description="Add destinations to a destination list. * Each API request accepts no more than 500 destination objects in the body of the request unless the destination list is of type `thirdparty_block`. * If the type of the destination list is `thirdparty_block`, then the system accepts 100 destination objects. * Each fully qualified domain name (FQDN) that you add in a destination list must contain no more than 253 characters. If you make an API request on the POST operation that adds a URL on a high-volume domain to a destination list, the operation may succeed (`HTTP/200 OK`). However, the server returns an error message (`HTTP/400 Bad Request`) that indicates that the destination is on a high-volume domain. **Note:** Secure Access does not add URLs that are on high-volume domains to destination lists. Instead, we recommend that you add the domain only.")], + destination_create_object: Annotated[List[DestinationCreateObject], Field(description="Add destinations to a destination list. * Each API request accepts no more than 500 destination objects in the body of the request unless the destination list is of type `thirdparty_block`. * Secure Access supports a maximum of 250,000 destinations spread across all destination lists in an organization. * If the type of the destination list is `thirdparty_block`, then the system accepts 100 destination objects. * Each fully qualified domain name (FQDN) that you add in a destination list must contain no more than 253 characters. If you make an API request on the POST operation that adds a URL on a high-volume domain to a destination list, the operation may succeed (`HTTP/200 OK`). However, the server returns an error message (`HTTP/400 Bad Request`) that indicates that the destination is on a high-volume domain. **Note:** Secure Access does not add URLs that are on high-volume domains to destination lists. Instead, we recommend that you add the domain only.")], _request_timeout: Union[ None, Annotated[StrictFloat, Field(gt=0)], @@ -70,7 +70,7 @@ def create_destinations( :param destination_list_id: The unique ID of the destination list. (required) :type destination_list_id: int - :param destination_create_object: Add destinations to a destination list. * Each API request accepts no more than 500 destination objects in the body of the request unless the destination list is of type `thirdparty_block`. * If the type of the destination list is `thirdparty_block`, then the system accepts 100 destination objects. * Each fully qualified domain name (FQDN) that you add in a destination list must contain no more than 253 characters. If you make an API request on the POST operation that adds a URL on a high-volume domain to a destination list, the operation may succeed (`HTTP/200 OK`). However, the server returns an error message (`HTTP/400 Bad Request`) that indicates that the destination is on a high-volume domain. **Note:** Secure Access does not add URLs that are on high-volume domains to destination lists. Instead, we recommend that you add the domain only. (required) + :param destination_create_object: Add destinations to a destination list. * Each API request accepts no more than 500 destination objects in the body of the request unless the destination list is of type `thirdparty_block`. * Secure Access supports a maximum of 250,000 destinations spread across all destination lists in an organization. * If the type of the destination list is `thirdparty_block`, then the system accepts 100 destination objects. * Each fully qualified domain name (FQDN) that you add in a destination list must contain no more than 253 characters. If you make an API request on the POST operation that adds a URL on a high-volume domain to a destination list, the operation may succeed (`HTTP/200 OK`). However, the server returns an error message (`HTTP/400 Bad Request`) that indicates that the destination is on a high-volume domain. **Note:** Secure Access does not add URLs that are on high-volume domains to destination lists. Instead, we recommend that you add the domain only. (required) :type destination_create_object: List[DestinationCreateObject] :param _request_timeout: timeout setting for this request. If one number provided, it will be total request @@ -126,7 +126,7 @@ def create_destinations( def create_destinations_with_http_info( self, destination_list_id: Annotated[StrictInt, Field(description="The unique ID of the destination list.")], - destination_create_object: Annotated[List[DestinationCreateObject], Field(description="Add destinations to a destination list. * Each API request accepts no more than 500 destination objects in the body of the request unless the destination list is of type `thirdparty_block`. * If the type of the destination list is `thirdparty_block`, then the system accepts 100 destination objects. * Each fully qualified domain name (FQDN) that you add in a destination list must contain no more than 253 characters. If you make an API request on the POST operation that adds a URL on a high-volume domain to a destination list, the operation may succeed (`HTTP/200 OK`). However, the server returns an error message (`HTTP/400 Bad Request`) that indicates that the destination is on a high-volume domain. **Note:** Secure Access does not add URLs that are on high-volume domains to destination lists. Instead, we recommend that you add the domain only.")], + destination_create_object: Annotated[List[DestinationCreateObject], Field(description="Add destinations to a destination list. * Each API request accepts no more than 500 destination objects in the body of the request unless the destination list is of type `thirdparty_block`. * Secure Access supports a maximum of 250,000 destinations spread across all destination lists in an organization. * If the type of the destination list is `thirdparty_block`, then the system accepts 100 destination objects. * Each fully qualified domain name (FQDN) that you add in a destination list must contain no more than 253 characters. If you make an API request on the POST operation that adds a URL on a high-volume domain to a destination list, the operation may succeed (`HTTP/200 OK`). However, the server returns an error message (`HTTP/400 Bad Request`) that indicates that the destination is on a high-volume domain. **Note:** Secure Access does not add URLs that are on high-volume domains to destination lists. Instead, we recommend that you add the domain only.")], _request_timeout: Union[ None, Annotated[StrictFloat, Field(gt=0)], @@ -146,7 +146,7 @@ def create_destinations_with_http_info( :param destination_list_id: The unique ID of the destination list. (required) :type destination_list_id: int - :param destination_create_object: Add destinations to a destination list. * Each API request accepts no more than 500 destination objects in the body of the request unless the destination list is of type `thirdparty_block`. * If the type of the destination list is `thirdparty_block`, then the system accepts 100 destination objects. * Each fully qualified domain name (FQDN) that you add in a destination list must contain no more than 253 characters. If you make an API request on the POST operation that adds a URL on a high-volume domain to a destination list, the operation may succeed (`HTTP/200 OK`). However, the server returns an error message (`HTTP/400 Bad Request`) that indicates that the destination is on a high-volume domain. **Note:** Secure Access does not add URLs that are on high-volume domains to destination lists. Instead, we recommend that you add the domain only. (required) + :param destination_create_object: Add destinations to a destination list. * Each API request accepts no more than 500 destination objects in the body of the request unless the destination list is of type `thirdparty_block`. * Secure Access supports a maximum of 250,000 destinations spread across all destination lists in an organization. * If the type of the destination list is `thirdparty_block`, then the system accepts 100 destination objects. * Each fully qualified domain name (FQDN) that you add in a destination list must contain no more than 253 characters. If you make an API request on the POST operation that adds a URL on a high-volume domain to a destination list, the operation may succeed (`HTTP/200 OK`). However, the server returns an error message (`HTTP/400 Bad Request`) that indicates that the destination is on a high-volume domain. **Note:** Secure Access does not add URLs that are on high-volume domains to destination lists. Instead, we recommend that you add the domain only. (required) :type destination_create_object: List[DestinationCreateObject] :param _request_timeout: timeout setting for this request. If one number provided, it will be total request @@ -202,7 +202,7 @@ def create_destinations_with_http_info( def create_destinations_without_preload_content( self, destination_list_id: Annotated[StrictInt, Field(description="The unique ID of the destination list.")], - destination_create_object: Annotated[List[DestinationCreateObject], Field(description="Add destinations to a destination list. * Each API request accepts no more than 500 destination objects in the body of the request unless the destination list is of type `thirdparty_block`. * If the type of the destination list is `thirdparty_block`, then the system accepts 100 destination objects. * Each fully qualified domain name (FQDN) that you add in a destination list must contain no more than 253 characters. If you make an API request on the POST operation that adds a URL on a high-volume domain to a destination list, the operation may succeed (`HTTP/200 OK`). However, the server returns an error message (`HTTP/400 Bad Request`) that indicates that the destination is on a high-volume domain. **Note:** Secure Access does not add URLs that are on high-volume domains to destination lists. Instead, we recommend that you add the domain only.")], + destination_create_object: Annotated[List[DestinationCreateObject], Field(description="Add destinations to a destination list. * Each API request accepts no more than 500 destination objects in the body of the request unless the destination list is of type `thirdparty_block`. * Secure Access supports a maximum of 250,000 destinations spread across all destination lists in an organization. * If the type of the destination list is `thirdparty_block`, then the system accepts 100 destination objects. * Each fully qualified domain name (FQDN) that you add in a destination list must contain no more than 253 characters. If you make an API request on the POST operation that adds a URL on a high-volume domain to a destination list, the operation may succeed (`HTTP/200 OK`). However, the server returns an error message (`HTTP/400 Bad Request`) that indicates that the destination is on a high-volume domain. **Note:** Secure Access does not add URLs that are on high-volume domains to destination lists. Instead, we recommend that you add the domain only.")], _request_timeout: Union[ None, Annotated[StrictFloat, Field(gt=0)], @@ -222,7 +222,7 @@ def create_destinations_without_preload_content( :param destination_list_id: The unique ID of the destination list. (required) :type destination_list_id: int - :param destination_create_object: Add destinations to a destination list. * Each API request accepts no more than 500 destination objects in the body of the request unless the destination list is of type `thirdparty_block`. * If the type of the destination list is `thirdparty_block`, then the system accepts 100 destination objects. * Each fully qualified domain name (FQDN) that you add in a destination list must contain no more than 253 characters. If you make an API request on the POST operation that adds a URL on a high-volume domain to a destination list, the operation may succeed (`HTTP/200 OK`). However, the server returns an error message (`HTTP/400 Bad Request`) that indicates that the destination is on a high-volume domain. **Note:** Secure Access does not add URLs that are on high-volume domains to destination lists. Instead, we recommend that you add the domain only. (required) + :param destination_create_object: Add destinations to a destination list. * Each API request accepts no more than 500 destination objects in the body of the request unless the destination list is of type `thirdparty_block`. * Secure Access supports a maximum of 250,000 destinations spread across all destination lists in an organization. * If the type of the destination list is `thirdparty_block`, then the system accepts 100 destination objects. * Each fully qualified domain name (FQDN) that you add in a destination list must contain no more than 253 characters. If you make an API request on the POST operation that adds a URL on a high-volume domain to a destination list, the operation may succeed (`HTTP/200 OK`). However, the server returns an error message (`HTTP/400 Bad Request`) that indicates that the destination is on a high-volume domain. **Note:** Secure Access does not add URLs that are on high-volume domains to destination lists. Instead, we recommend that you add the domain only. (required) :type destination_create_object: List[DestinationCreateObject] :param _request_timeout: timeout setting for this request. If one number provided, it will be total request diff --git a/secure_access/api/dlp_rule_events_api.py b/secure_access/api/dlp_rule_events_api.py new file mode 100644 index 0000000..20feb52 --- /dev/null +++ b/secure_access/api/dlp_rule_events_api.py @@ -0,0 +1,1563 @@ +# Copyright 2026 Cisco Systems, Inc. and its affiliates +# +# SPDX-License-Identifier: Apache-2.0 + +# coding: utf-8 + +""" + Cisco Secure Access API + + Unified OpenAPI spec for Cisco Secure Access APIs. + + The version of the OpenAPI document: v2.0.202602030705 + Contact: devnet@cisco.com + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + +import warnings +from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt +from typing import Any, Dict, List, Optional, Tuple, Union +from typing_extensions import Annotated + +from pydantic import Field, StrictInt, StrictStr, field_validator +from typing import Optional +from typing_extensions import Annotated +from secure_access.models.dlp_rule_event import DlpRuleEvent +from secure_access.models.list_ai_guardrails_dlp_rule_events import ListAiGuardrailsDlpRuleEvents +from secure_access.models.list_real_time_dlp_rule_events import ListRealTimeDlpRuleEvents +from secure_access.models.list_saa_s_api_dlp_rule_events import ListSaaSApiDlpRuleEvents + +from secure_access.api_client import ApiClient, RequestSerialized +from secure_access.api_response import ApiResponse +from secure_access.rest import RESTResponseType + + +class DLPRuleEventsApi: + """NOTE: This class is auto generated by OpenAPI Generator + Ref: https://openapi-generator.tech + + Do not edit the class manually. + """ + + def __init__(self, api_client=None) -> None: + if api_client is None: + api_client = ApiClient.get_default() + self.api_client = api_client + + + @validate_call + def get_all_ai_guardrails_events( + self, + var_from: Annotated[StrictStr, Field(description="A timestamp or relative time string (for example: '-1days'). Filters for data that appears **after** this time. ")], + to: Annotated[StrictStr, Field(description="A timestamp or relative time string (for example: 'now'). Filters for data that appears **before** this time. ")], + action: Annotated[Optional[StrictStr], Field(description="The action applied to the content. Supported values are: `blocked`, `deleted`, `monitored`, `quarantined`, `restored`, `revoked`. ")] = None, + severity: Annotated[Optional[StrictStr], Field(description="The severity of the DLP rule that triggered the event.")] = None, + identity_type: Annotated[Optional[StrictStr], Field(description="The type of the identity associated with the event, for example: `directory_user`, `directory_group`, or `network`. ")] = None, + limit: Annotated[Optional[StrictInt], Field(description="The maximum number of events to return on a page in the response.")] = None, + offset: Annotated[Optional[StrictInt], Field(description="A number that represents an index in the collection.")] = 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, + ) -> ListAiGuardrailsDlpRuleEvents: + """List AI Guardrails DLP Rule Events + + List the DLP events triggered by the AI Guardrails DLP rules applied to the AI Guardrails use cases. + + :param var_from: A timestamp or relative time string (for example: '-1days'). Filters for data that appears **after** this time. (required) + :type var_from: str + :param to: A timestamp or relative time string (for example: 'now'). Filters for data that appears **before** this time. (required) + :type to: str + :param action: The action applied to the content. Supported values are: `blocked`, `deleted`, `monitored`, `quarantined`, `restored`, `revoked`. + :type action: str + :param severity: The severity of the DLP rule that triggered the event. + :type severity: str + :param identity_type: The type of the identity associated with the event, for example: `directory_user`, `directory_group`, or `network`. + :type identity_type: str + :param limit: The maximum number of events to return on a page in the response. + :type limit: int + :param offset: A number that represents an index in the collection. + :type offset: int + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._get_all_ai_guardrails_events_serialize( + var_from=var_from, + to=to, + action=action, + severity=severity, + identity_type=identity_type, + limit=limit, + offset=offset, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "ListAiGuardrailsDlpRuleEvents", + '400': "ApiErrorResponse", + '401': "ApiErrorResponse", + '403': "ApiErrorResponse", + '404': "ApiErrorResponse", + '500': "ApiErrorResponse", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ).data + + + @validate_call + def get_all_ai_guardrails_events_with_http_info( + self, + var_from: Annotated[StrictStr, Field(description="A timestamp or relative time string (for example: '-1days'). Filters for data that appears **after** this time. ")], + to: Annotated[StrictStr, Field(description="A timestamp or relative time string (for example: 'now'). Filters for data that appears **before** this time. ")], + action: Annotated[Optional[StrictStr], Field(description="The action applied to the content. Supported values are: `blocked`, `deleted`, `monitored`, `quarantined`, `restored`, `revoked`. ")] = None, + severity: Annotated[Optional[StrictStr], Field(description="The severity of the DLP rule that triggered the event.")] = None, + identity_type: Annotated[Optional[StrictStr], Field(description="The type of the identity associated with the event, for example: `directory_user`, `directory_group`, or `network`. ")] = None, + limit: Annotated[Optional[StrictInt], Field(description="The maximum number of events to return on a page in the response.")] = None, + offset: Annotated[Optional[StrictInt], Field(description="A number that represents an index in the collection.")] = 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[ListAiGuardrailsDlpRuleEvents]: + """List AI Guardrails DLP Rule Events + + List the DLP events triggered by the AI Guardrails DLP rules applied to the AI Guardrails use cases. + + :param var_from: A timestamp or relative time string (for example: '-1days'). Filters for data that appears **after** this time. (required) + :type var_from: str + :param to: A timestamp or relative time string (for example: 'now'). Filters for data that appears **before** this time. (required) + :type to: str + :param action: The action applied to the content. Supported values are: `blocked`, `deleted`, `monitored`, `quarantined`, `restored`, `revoked`. + :type action: str + :param severity: The severity of the DLP rule that triggered the event. + :type severity: str + :param identity_type: The type of the identity associated with the event, for example: `directory_user`, `directory_group`, or `network`. + :type identity_type: str + :param limit: The maximum number of events to return on a page in the response. + :type limit: int + :param offset: A number that represents an index in the collection. + :type offset: int + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._get_all_ai_guardrails_events_serialize( + var_from=var_from, + to=to, + action=action, + severity=severity, + identity_type=identity_type, + limit=limit, + offset=offset, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "ListAiGuardrailsDlpRuleEvents", + '400': "ApiErrorResponse", + '401': "ApiErrorResponse", + '403': "ApiErrorResponse", + '404': "ApiErrorResponse", + '500': "ApiErrorResponse", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ) + + + @validate_call + def get_all_ai_guardrails_events_without_preload_content( + self, + var_from: Annotated[StrictStr, Field(description="A timestamp or relative time string (for example: '-1days'). Filters for data that appears **after** this time. ")], + to: Annotated[StrictStr, Field(description="A timestamp or relative time string (for example: 'now'). Filters for data that appears **before** this time. ")], + action: Annotated[Optional[StrictStr], Field(description="The action applied to the content. Supported values are: `blocked`, `deleted`, `monitored`, `quarantined`, `restored`, `revoked`. ")] = None, + severity: Annotated[Optional[StrictStr], Field(description="The severity of the DLP rule that triggered the event.")] = None, + identity_type: Annotated[Optional[StrictStr], Field(description="The type of the identity associated with the event, for example: `directory_user`, `directory_group`, or `network`. ")] = None, + limit: Annotated[Optional[StrictInt], Field(description="The maximum number of events to return on a page in the response.")] = None, + offset: Annotated[Optional[StrictInt], Field(description="A number that represents an index in the collection.")] = None, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> RESTResponseType: + """List AI Guardrails DLP Rule Events + + List the DLP events triggered by the AI Guardrails DLP rules applied to the AI Guardrails use cases. + + :param var_from: A timestamp or relative time string (for example: '-1days'). Filters for data that appears **after** this time. (required) + :type var_from: str + :param to: A timestamp or relative time string (for example: 'now'). Filters for data that appears **before** this time. (required) + :type to: str + :param action: The action applied to the content. Supported values are: `blocked`, `deleted`, `monitored`, `quarantined`, `restored`, `revoked`. + :type action: str + :param severity: The severity of the DLP rule that triggered the event. + :type severity: str + :param identity_type: The type of the identity associated with the event, for example: `directory_user`, `directory_group`, or `network`. + :type identity_type: str + :param limit: The maximum number of events to return on a page in the response. + :type limit: int + :param offset: A number that represents an index in the collection. + :type offset: int + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._get_all_ai_guardrails_events_serialize( + var_from=var_from, + to=to, + action=action, + severity=severity, + identity_type=identity_type, + limit=limit, + offset=offset, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "ListAiGuardrailsDlpRuleEvents", + '400': "ApiErrorResponse", + '401': "ApiErrorResponse", + '403': "ApiErrorResponse", + '404': "ApiErrorResponse", + '500': "ApiErrorResponse", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _get_all_ai_guardrails_events_serialize( + self, + var_from, + to, + action, + severity, + identity_type, + limit, + offset, + _request_auth, + _content_type, + _headers, + _host_index, + ) -> RequestSerialized: + + _host = None + + _collection_formats: Dict[str, str] = { + } + + _path_params: Dict[str, str] = {} + _query_params: List[Tuple[str, str]] = [] + _header_params: Dict[str, Optional[str]] = _headers or {} + _form_params: List[Tuple[str, str]] = [] + _files: Dict[ + str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] + ] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + # process the query parameters + if action is not None: + + _query_params.append(('action', action)) + + if severity is not None: + + _query_params.append(('severity', severity)) + + if identity_type is not None: + + _query_params.append(('identityType', identity_type)) + + if var_from is not None: + + _query_params.append(('from', var_from)) + + if to is not None: + + _query_params.append(('to', to)) + + if limit is not None: + + _query_params.append(('limit', limit)) + + if offset is not None: + + _query_params.append(('offset', offset)) + + # process the header parameters + # process the form parameters + # process the body parameter + + + # set the HTTP header `Accept` + if 'Accept' not in _header_params: + _header_params['Accept'] = self.api_client.select_header_accept( + [ + 'application/json' + ] + ) + + + # authentication setting + _auth_settings: List[str] = [ + 'oauthFlow' + ] + + return self.api_client.param_serialize( + method='GET', + resource_path='/dlp/aiGuardrails/events', + 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_all_real_time_events( + self, + var_from: Annotated[StrictStr, Field(description="A timestamp or relative time string (for example: '-1days'). Filters for data that appears **after** this time. ")], + to: Annotated[StrictStr, Field(description="A timestamp or relative time string (for example: 'now'). Filters for data that appears **before** this time. ")], + action: Annotated[Optional[StrictStr], Field(description="The action applied to the content. Supported values are: `blocked`, `deleted`, `monitored`, `quarantined`, `restored`, `revoked`. ")] = None, + severity: Annotated[Optional[StrictStr], Field(description="The severity of the DLP rule that triggered the event.")] = None, + identity_type: Annotated[Optional[StrictStr], Field(description="The type of the identity associated with the event, for example: `directory_user`, `directory_group`, or `network`. ")] = None, + application_id: Annotated[Optional[StrictInt], Field(description="The unique identifier of the application associated with the event.")] = None, + application_category_id: Annotated[Optional[StrictInt], Field(description="The unique identifier of the application category associated with the event. ")] = None, + limit: Annotated[Optional[StrictInt], Field(description="The maximum number of events to return on a page in the response.")] = None, + offset: Annotated[Optional[StrictInt], Field(description="A number that represents an index in the collection.")] = 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, + ) -> ListRealTimeDlpRuleEvents: + """List Real-Time DLP Rule Events + + List the DLP events triggered by the Real-time DLP rules applied to the private or internet resources. + + :param var_from: A timestamp or relative time string (for example: '-1days'). Filters for data that appears **after** this time. (required) + :type var_from: str + :param to: A timestamp or relative time string (for example: 'now'). Filters for data that appears **before** this time. (required) + :type to: str + :param action: The action applied to the content. Supported values are: `blocked`, `deleted`, `monitored`, `quarantined`, `restored`, `revoked`. + :type action: str + :param severity: The severity of the DLP rule that triggered the event. + :type severity: str + :param identity_type: The type of the identity associated with the event, for example: `directory_user`, `directory_group`, or `network`. + :type identity_type: str + :param application_id: The unique identifier of the application associated with the event. + :type application_id: int + :param application_category_id: The unique identifier of the application category associated with the event. + :type application_category_id: int + :param limit: The maximum number of events to return on a page in the response. + :type limit: int + :param offset: A number that represents an index in the collection. + :type offset: int + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._get_all_real_time_events_serialize( + var_from=var_from, + to=to, + action=action, + severity=severity, + identity_type=identity_type, + application_id=application_id, + application_category_id=application_category_id, + limit=limit, + offset=offset, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "ListRealTimeDlpRuleEvents", + '400': "ApiErrorResponse", + '401': "ApiErrorResponse", + '403': "ApiErrorResponse", + '404': "ApiErrorResponse", + '500': "ApiErrorResponse", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ).data + + + @validate_call + def get_all_real_time_events_with_http_info( + self, + var_from: Annotated[StrictStr, Field(description="A timestamp or relative time string (for example: '-1days'). Filters for data that appears **after** this time. ")], + to: Annotated[StrictStr, Field(description="A timestamp or relative time string (for example: 'now'). Filters for data that appears **before** this time. ")], + action: Annotated[Optional[StrictStr], Field(description="The action applied to the content. Supported values are: `blocked`, `deleted`, `monitored`, `quarantined`, `restored`, `revoked`. ")] = None, + severity: Annotated[Optional[StrictStr], Field(description="The severity of the DLP rule that triggered the event.")] = None, + identity_type: Annotated[Optional[StrictStr], Field(description="The type of the identity associated with the event, for example: `directory_user`, `directory_group`, or `network`. ")] = None, + application_id: Annotated[Optional[StrictInt], Field(description="The unique identifier of the application associated with the event.")] = None, + application_category_id: Annotated[Optional[StrictInt], Field(description="The unique identifier of the application category associated with the event. ")] = None, + limit: Annotated[Optional[StrictInt], Field(description="The maximum number of events to return on a page in the response.")] = None, + offset: Annotated[Optional[StrictInt], Field(description="A number that represents an index in the collection.")] = 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[ListRealTimeDlpRuleEvents]: + """List Real-Time DLP Rule Events + + List the DLP events triggered by the Real-time DLP rules applied to the private or internet resources. + + :param var_from: A timestamp or relative time string (for example: '-1days'). Filters for data that appears **after** this time. (required) + :type var_from: str + :param to: A timestamp or relative time string (for example: 'now'). Filters for data that appears **before** this time. (required) + :type to: str + :param action: The action applied to the content. Supported values are: `blocked`, `deleted`, `monitored`, `quarantined`, `restored`, `revoked`. + :type action: str + :param severity: The severity of the DLP rule that triggered the event. + :type severity: str + :param identity_type: The type of the identity associated with the event, for example: `directory_user`, `directory_group`, or `network`. + :type identity_type: str + :param application_id: The unique identifier of the application associated with the event. + :type application_id: int + :param application_category_id: The unique identifier of the application category associated with the event. + :type application_category_id: int + :param limit: The maximum number of events to return on a page in the response. + :type limit: int + :param offset: A number that represents an index in the collection. + :type offset: int + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._get_all_real_time_events_serialize( + var_from=var_from, + to=to, + action=action, + severity=severity, + identity_type=identity_type, + application_id=application_id, + application_category_id=application_category_id, + limit=limit, + offset=offset, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "ListRealTimeDlpRuleEvents", + '400': "ApiErrorResponse", + '401': "ApiErrorResponse", + '403': "ApiErrorResponse", + '404': "ApiErrorResponse", + '500': "ApiErrorResponse", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ) + + + @validate_call + def get_all_real_time_events_without_preload_content( + self, + var_from: Annotated[StrictStr, Field(description="A timestamp or relative time string (for example: '-1days'). Filters for data that appears **after** this time. ")], + to: Annotated[StrictStr, Field(description="A timestamp or relative time string (for example: 'now'). Filters for data that appears **before** this time. ")], + action: Annotated[Optional[StrictStr], Field(description="The action applied to the content. Supported values are: `blocked`, `deleted`, `monitored`, `quarantined`, `restored`, `revoked`. ")] = None, + severity: Annotated[Optional[StrictStr], Field(description="The severity of the DLP rule that triggered the event.")] = None, + identity_type: Annotated[Optional[StrictStr], Field(description="The type of the identity associated with the event, for example: `directory_user`, `directory_group`, or `network`. ")] = None, + application_id: Annotated[Optional[StrictInt], Field(description="The unique identifier of the application associated with the event.")] = None, + application_category_id: Annotated[Optional[StrictInt], Field(description="The unique identifier of the application category associated with the event. ")] = None, + limit: Annotated[Optional[StrictInt], Field(description="The maximum number of events to return on a page in the response.")] = None, + offset: Annotated[Optional[StrictInt], Field(description="A number that represents an index in the collection.")] = 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 Real-Time DLP Rule Events + + List the DLP events triggered by the Real-time DLP rules applied to the private or internet resources. + + :param var_from: A timestamp or relative time string (for example: '-1days'). Filters for data that appears **after** this time. (required) + :type var_from: str + :param to: A timestamp or relative time string (for example: 'now'). Filters for data that appears **before** this time. (required) + :type to: str + :param action: The action applied to the content. Supported values are: `blocked`, `deleted`, `monitored`, `quarantined`, `restored`, `revoked`. + :type action: str + :param severity: The severity of the DLP rule that triggered the event. + :type severity: str + :param identity_type: The type of the identity associated with the event, for example: `directory_user`, `directory_group`, or `network`. + :type identity_type: str + :param application_id: The unique identifier of the application associated with the event. + :type application_id: int + :param application_category_id: The unique identifier of the application category associated with the event. + :type application_category_id: int + :param limit: The maximum number of events to return on a page in the response. + :type limit: int + :param offset: A number that represents an index in the collection. + :type offset: int + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._get_all_real_time_events_serialize( + var_from=var_from, + to=to, + action=action, + severity=severity, + identity_type=identity_type, + application_id=application_id, + application_category_id=application_category_id, + limit=limit, + offset=offset, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "ListRealTimeDlpRuleEvents", + '400': "ApiErrorResponse", + '401': "ApiErrorResponse", + '403': "ApiErrorResponse", + '404': "ApiErrorResponse", + '500': "ApiErrorResponse", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _get_all_real_time_events_serialize( + self, + var_from, + to, + action, + severity, + identity_type, + application_id, + application_category_id, + limit, + offset, + _request_auth, + _content_type, + _headers, + _host_index, + ) -> RequestSerialized: + + _host = None + + _collection_formats: Dict[str, str] = { + } + + _path_params: Dict[str, str] = {} + _query_params: List[Tuple[str, str]] = [] + _header_params: Dict[str, Optional[str]] = _headers or {} + _form_params: List[Tuple[str, str]] = [] + _files: Dict[ + str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] + ] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + # process the query parameters + if action is not None: + + _query_params.append(('action', action)) + + if severity is not None: + + _query_params.append(('severity', severity)) + + if identity_type is not None: + + _query_params.append(('identityType', identity_type)) + + if application_id is not None: + + _query_params.append(('applicationId', application_id)) + + if application_category_id is not None: + + _query_params.append(('applicationCategoryId', application_category_id)) + + if var_from is not None: + + _query_params.append(('from', var_from)) + + if to is not None: + + _query_params.append(('to', to)) + + if limit is not None: + + _query_params.append(('limit', limit)) + + if offset is not None: + + _query_params.append(('offset', offset)) + + # process the header parameters + # process the form parameters + # process the body parameter + + + # set the HTTP header `Accept` + if 'Accept' not in _header_params: + _header_params['Accept'] = self.api_client.select_header_accept( + [ + 'application/json' + ] + ) + + + # authentication setting + _auth_settings: List[str] = [ + 'oauthFlow' + ] + + return self.api_client.param_serialize( + method='GET', + resource_path='/dlp/realTime/events', + 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_all_saa_sapi_events( + self, + var_from: Annotated[StrictStr, Field(description="A timestamp or relative time string (for example: '-1days'). Filters for data that appears **after** this time. ")], + to: Annotated[StrictStr, Field(description="A timestamp or relative time string (for example: 'now'). Filters for data that appears **before** this time. ")], + action: Annotated[Optional[StrictStr], Field(description="The action applied to the content. Supported values are: `blocked`, `deleted`, `monitored`, `quarantined`, `restored`, `revoked`. ")] = None, + severity: Annotated[Optional[StrictStr], Field(description="The severity of the DLP rule that triggered the event.")] = None, + identity_type: Annotated[Optional[StrictStr], Field(description="The type of the identity associated with the event, for example: `directory_user`, `directory_group`, or `network`. ")] = None, + application_id: Annotated[Optional[StrictInt], Field(description="The unique identifier of the application associated with the event.")] = None, + application_category_id: Annotated[Optional[StrictInt], Field(description="The unique identifier of the application category associated with the event. ")] = None, + limit: Annotated[Optional[StrictInt], Field(description="The maximum number of events to return on a page in the response.")] = None, + offset: Annotated[Optional[StrictInt], Field(description="A number that represents an index in the collection.")] = None, + exposure: Annotated[Optional[StrictStr], Field(description="The exposure level assigned to the scanned content.")] = 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, + ) -> ListSaaSApiDlpRuleEvents: + """List SaaS API DLP Rule Events + + List the DLP events triggered by the SaaS API DLP rules applied to the SaaS applications. + + :param var_from: A timestamp or relative time string (for example: '-1days'). Filters for data that appears **after** this time. (required) + :type var_from: str + :param to: A timestamp or relative time string (for example: 'now'). Filters for data that appears **before** this time. (required) + :type to: str + :param action: The action applied to the content. Supported values are: `blocked`, `deleted`, `monitored`, `quarantined`, `restored`, `revoked`. + :type action: str + :param severity: The severity of the DLP rule that triggered the event. + :type severity: str + :param identity_type: The type of the identity associated with the event, for example: `directory_user`, `directory_group`, or `network`. + :type identity_type: str + :param application_id: The unique identifier of the application associated with the event. + :type application_id: int + :param application_category_id: The unique identifier of the application category associated with the event. + :type application_category_id: int + :param limit: The maximum number of events to return on a page in the response. + :type limit: int + :param offset: A number that represents an index in the collection. + :type offset: int + :param exposure: The exposure level assigned to the scanned content. + :type exposure: 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_all_saa_sapi_events_serialize( + var_from=var_from, + to=to, + action=action, + severity=severity, + identity_type=identity_type, + application_id=application_id, + application_category_id=application_category_id, + limit=limit, + offset=offset, + exposure=exposure, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "ListSaaSApiDlpRuleEvents", + '400': "ApiErrorResponse", + '401': "ApiErrorResponse", + '403': "ApiErrorResponse", + '404': "ApiErrorResponse", + '500': "ApiErrorResponse", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ).data + + + @validate_call + def get_all_saa_sapi_events_with_http_info( + self, + var_from: Annotated[StrictStr, Field(description="A timestamp or relative time string (for example: '-1days'). Filters for data that appears **after** this time. ")], + to: Annotated[StrictStr, Field(description="A timestamp or relative time string (for example: 'now'). Filters for data that appears **before** this time. ")], + action: Annotated[Optional[StrictStr], Field(description="The action applied to the content. Supported values are: `blocked`, `deleted`, `monitored`, `quarantined`, `restored`, `revoked`. ")] = None, + severity: Annotated[Optional[StrictStr], Field(description="The severity of the DLP rule that triggered the event.")] = None, + identity_type: Annotated[Optional[StrictStr], Field(description="The type of the identity associated with the event, for example: `directory_user`, `directory_group`, or `network`. ")] = None, + application_id: Annotated[Optional[StrictInt], Field(description="The unique identifier of the application associated with the event.")] = None, + application_category_id: Annotated[Optional[StrictInt], Field(description="The unique identifier of the application category associated with the event. ")] = None, + limit: Annotated[Optional[StrictInt], Field(description="The maximum number of events to return on a page in the response.")] = None, + offset: Annotated[Optional[StrictInt], Field(description="A number that represents an index in the collection.")] = None, + exposure: Annotated[Optional[StrictStr], Field(description="The exposure level assigned to the scanned content.")] = 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[ListSaaSApiDlpRuleEvents]: + """List SaaS API DLP Rule Events + + List the DLP events triggered by the SaaS API DLP rules applied to the SaaS applications. + + :param var_from: A timestamp or relative time string (for example: '-1days'). Filters for data that appears **after** this time. (required) + :type var_from: str + :param to: A timestamp or relative time string (for example: 'now'). Filters for data that appears **before** this time. (required) + :type to: str + :param action: The action applied to the content. Supported values are: `blocked`, `deleted`, `monitored`, `quarantined`, `restored`, `revoked`. + :type action: str + :param severity: The severity of the DLP rule that triggered the event. + :type severity: str + :param identity_type: The type of the identity associated with the event, for example: `directory_user`, `directory_group`, or `network`. + :type identity_type: str + :param application_id: The unique identifier of the application associated with the event. + :type application_id: int + :param application_category_id: The unique identifier of the application category associated with the event. + :type application_category_id: int + :param limit: The maximum number of events to return on a page in the response. + :type limit: int + :param offset: A number that represents an index in the collection. + :type offset: int + :param exposure: The exposure level assigned to the scanned content. + :type exposure: 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_all_saa_sapi_events_serialize( + var_from=var_from, + to=to, + action=action, + severity=severity, + identity_type=identity_type, + application_id=application_id, + application_category_id=application_category_id, + limit=limit, + offset=offset, + exposure=exposure, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "ListSaaSApiDlpRuleEvents", + '400': "ApiErrorResponse", + '401': "ApiErrorResponse", + '403': "ApiErrorResponse", + '404': "ApiErrorResponse", + '500': "ApiErrorResponse", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ) + + + @validate_call + def get_all_saa_sapi_events_without_preload_content( + self, + var_from: Annotated[StrictStr, Field(description="A timestamp or relative time string (for example: '-1days'). Filters for data that appears **after** this time. ")], + to: Annotated[StrictStr, Field(description="A timestamp or relative time string (for example: 'now'). Filters for data that appears **before** this time. ")], + action: Annotated[Optional[StrictStr], Field(description="The action applied to the content. Supported values are: `blocked`, `deleted`, `monitored`, `quarantined`, `restored`, `revoked`. ")] = None, + severity: Annotated[Optional[StrictStr], Field(description="The severity of the DLP rule that triggered the event.")] = None, + identity_type: Annotated[Optional[StrictStr], Field(description="The type of the identity associated with the event, for example: `directory_user`, `directory_group`, or `network`. ")] = None, + application_id: Annotated[Optional[StrictInt], Field(description="The unique identifier of the application associated with the event.")] = None, + application_category_id: Annotated[Optional[StrictInt], Field(description="The unique identifier of the application category associated with the event. ")] = None, + limit: Annotated[Optional[StrictInt], Field(description="The maximum number of events to return on a page in the response.")] = None, + offset: Annotated[Optional[StrictInt], Field(description="A number that represents an index in the collection.")] = None, + exposure: Annotated[Optional[StrictStr], Field(description="The exposure level assigned to the scanned content.")] = 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 SaaS API DLP Rule Events + + List the DLP events triggered by the SaaS API DLP rules applied to the SaaS applications. + + :param var_from: A timestamp or relative time string (for example: '-1days'). Filters for data that appears **after** this time. (required) + :type var_from: str + :param to: A timestamp or relative time string (for example: 'now'). Filters for data that appears **before** this time. (required) + :type to: str + :param action: The action applied to the content. Supported values are: `blocked`, `deleted`, `monitored`, `quarantined`, `restored`, `revoked`. + :type action: str + :param severity: The severity of the DLP rule that triggered the event. + :type severity: str + :param identity_type: The type of the identity associated with the event, for example: `directory_user`, `directory_group`, or `network`. + :type identity_type: str + :param application_id: The unique identifier of the application associated with the event. + :type application_id: int + :param application_category_id: The unique identifier of the application category associated with the event. + :type application_category_id: int + :param limit: The maximum number of events to return on a page in the response. + :type limit: int + :param offset: A number that represents an index in the collection. + :type offset: int + :param exposure: The exposure level assigned to the scanned content. + :type exposure: 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_all_saa_sapi_events_serialize( + var_from=var_from, + to=to, + action=action, + severity=severity, + identity_type=identity_type, + application_id=application_id, + application_category_id=application_category_id, + limit=limit, + offset=offset, + exposure=exposure, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "ListSaaSApiDlpRuleEvents", + '400': "ApiErrorResponse", + '401': "ApiErrorResponse", + '403': "ApiErrorResponse", + '404': "ApiErrorResponse", + '500': "ApiErrorResponse", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _get_all_saa_sapi_events_serialize( + self, + var_from, + to, + action, + severity, + identity_type, + application_id, + application_category_id, + limit, + offset, + exposure, + _request_auth, + _content_type, + _headers, + _host_index, + ) -> RequestSerialized: + + _host = None + + _collection_formats: Dict[str, str] = { + } + + _path_params: Dict[str, str] = {} + _query_params: List[Tuple[str, str]] = [] + _header_params: Dict[str, Optional[str]] = _headers or {} + _form_params: List[Tuple[str, str]] = [] + _files: Dict[ + str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] + ] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + # process the query parameters + if action is not None: + + _query_params.append(('action', action)) + + if severity is not None: + + _query_params.append(('severity', severity)) + + if identity_type is not None: + + _query_params.append(('identityType', identity_type)) + + if application_id is not None: + + _query_params.append(('applicationId', application_id)) + + if application_category_id is not None: + + _query_params.append(('applicationCategoryId', application_category_id)) + + if var_from is not None: + + _query_params.append(('from', var_from)) + + if to is not None: + + _query_params.append(('to', to)) + + if limit is not None: + + _query_params.append(('limit', limit)) + + if offset is not None: + + _query_params.append(('offset', offset)) + + if exposure is not None: + + _query_params.append(('exposure', exposure)) + + # process the header parameters + # process the form parameters + # process the body parameter + + + # set the HTTP header `Accept` + if 'Accept' not in _header_params: + _header_params['Accept'] = self.api_client.select_header_accept( + [ + 'application/json' + ] + ) + + + # authentication setting + _auth_settings: List[str] = [ + 'oauthFlow' + ] + + return self.api_client.param_serialize( + method='GET', + resource_path='/dlp/saasApi/events', + 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_dlp_event_details_by_id( + self, + event_type: Annotated[StrictStr, Field(description="The type of the event. Use one of the event types. * For Real-Time events, use `realTime`. * For SaaS API events, use `saasApi`. * For AI Guardrails events, use `aiGuardrails`. ")], + id: Annotated[StrictStr, Field(description="The unique identifier of the event.")], + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> DlpRuleEvent: + """Get DLP Event Details + + Get the event details for a specific type of DLP rule using the event's unique ID. The event type is either Real Time, SaaS API, or AI Guardrails DLP rules. The response includes the event details, associated rule information, and classifications. + + :param event_type: The type of the event. Use one of the event types. * For Real-Time events, use `realTime`. * For SaaS API events, use `saasApi`. * For AI Guardrails events, use `aiGuardrails`. (required) + :type event_type: str + :param id: The unique identifier of the event. (required) + :type id: str + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._get_dlp_event_details_by_id_serialize( + event_type=event_type, + id=id, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "DlpRuleEvent", + '400': "ApiErrorResponse", + '401': "ApiErrorResponse", + '403': "ApiErrorResponse", + '404': "ApiErrorResponse", + '500': "ApiErrorResponse", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ).data + + + @validate_call + def get_dlp_event_details_by_id_with_http_info( + self, + event_type: Annotated[StrictStr, Field(description="The type of the event. Use one of the event types. * For Real-Time events, use `realTime`. * For SaaS API events, use `saasApi`. * For AI Guardrails events, use `aiGuardrails`. ")], + id: Annotated[StrictStr, Field(description="The unique identifier of the event.")], + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[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[DlpRuleEvent]: + """Get DLP Event Details + + Get the event details for a specific type of DLP rule using the event's unique ID. The event type is either Real Time, SaaS API, or AI Guardrails DLP rules. The response includes the event details, associated rule information, and classifications. + + :param event_type: The type of the event. Use one of the event types. * For Real-Time events, use `realTime`. * For SaaS API events, use `saasApi`. * For AI Guardrails events, use `aiGuardrails`. (required) + :type event_type: str + :param id: The unique identifier of the event. (required) + :type id: str + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._get_dlp_event_details_by_id_serialize( + event_type=event_type, + id=id, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "DlpRuleEvent", + '400': "ApiErrorResponse", + '401': "ApiErrorResponse", + '403': "ApiErrorResponse", + '404': "ApiErrorResponse", + '500': "ApiErrorResponse", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ) + + + @validate_call + def get_dlp_event_details_by_id_without_preload_content( + self, + event_type: Annotated[StrictStr, Field(description="The type of the event. Use one of the event types. * For Real-Time events, use `realTime`. * For SaaS API events, use `saasApi`. * For AI Guardrails events, use `aiGuardrails`. ")], + id: Annotated[StrictStr, Field(description="The unique identifier of the event.")], + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[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 DLP Event Details + + Get the event details for a specific type of DLP rule using the event's unique ID. The event type is either Real Time, SaaS API, or AI Guardrails DLP rules. The response includes the event details, associated rule information, and classifications. + + :param event_type: The type of the event. Use one of the event types. * For Real-Time events, use `realTime`. * For SaaS API events, use `saasApi`. * For AI Guardrails events, use `aiGuardrails`. (required) + :type event_type: str + :param id: The unique identifier of the event. (required) + :type id: str + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._get_dlp_event_details_by_id_serialize( + event_type=event_type, + id=id, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "DlpRuleEvent", + '400': "ApiErrorResponse", + '401': "ApiErrorResponse", + '403': "ApiErrorResponse", + '404': "ApiErrorResponse", + '500': "ApiErrorResponse", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _get_dlp_event_details_by_id_serialize( + self, + event_type, + id, + _request_auth, + _content_type, + _headers, + _host_index, + ) -> RequestSerialized: + + _host = None + + _collection_formats: Dict[str, str] = { + } + + _path_params: Dict[str, str] = {} + _query_params: List[Tuple[str, str]] = [] + _header_params: Dict[str, Optional[str]] = _headers or {} + _form_params: List[Tuple[str, str]] = [] + _files: Dict[ + str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] + ] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + if event_type is not None: + _path_params['eventType'] = event_type + if id is not None: + _path_params['id'] = id + # process the query parameters + # process the header parameters + # process the form parameters + # process the body parameter + + + # set the HTTP header `Accept` + if 'Accept' not in _header_params: + _header_params['Accept'] = self.api_client.select_header_accept( + [ + 'application/json' + ] + ) + + + # authentication setting + _auth_settings: List[str] = [ + 'oauthFlow' + ] + + return self.api_client.param_serialize( + method='GET', + resource_path='/dlp/{eventType}/events/{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/secure_access/api/dns_forwarders_api.py b/secure_access/api/dns_forwarders_api.py index 6fe58a4..9e21920 100644 --- a/secure_access/api/dns_forwarders_api.py +++ b/secure_access/api/dns_forwarders_api.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/api/domain_status_and_categorization_api.py b/secure_access/api/domain_status_and_categorization_api.py index 6ac710c..6ac6157 100644 --- a/secure_access/api/domain_status_and_categorization_api.py +++ b/secure_access/api/domain_status_and_categorization_api.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/api/domain_volume_api.py b/secure_access/api/domain_volume_api.py index ddbf2c7..d55fd55 100644 --- a/secure_access/api/domain_volume_api.py +++ b/secure_access/api/domain_volume_api.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/api/feeds_api.py b/secure_access/api/feeds_api.py index 8559369..92037b2 100644 --- a/secure_access/api/feeds_api.py +++ b/secure_access/api/feeds_api.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) @@ -49,7 +49,7 @@ def __init__(self, api_client=None) -> None: @validate_call def create_feed( self, - feed_create: Annotated[FeedCreate, Field(description="The request body used to create the threat feed.")], + feed_create: Annotated[FeedCreate, Field(description="The request body used to create the security feed.")], _request_timeout: Union[ None, Annotated[StrictFloat, Field(gt=0)], @@ -63,11 +63,11 @@ def create_feed( _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, ) -> FeedObject: - """Create Threat Feed + """Create Security Feed - Create a threat feed for a third-party or custom security vendor. + Create a security feed for a third-party or custom security vendor. - :param feed_create: The request body used to create the threat feed. (required) + :param feed_create: The request body used to create the security feed. (required) :type feed_create: FeedCreate :param _request_timeout: timeout setting for this request. If one number provided, it will be total request @@ -101,11 +101,11 @@ def create_feed( _response_types_map: Dict[str, Optional[str]] = { '200': "FeedObject", - '400': "ThreatIntelligenceFeedsBadRequestError", - '401': "ThreatIntelligenceFeedsUnauthorizedError", - '403': "ThreatIntelligenceFeedsForbiddenError", - '404': "ThreatIntelligenceFeedsNotFoundError", - '500': "ThreatIntelligenceFeedsServerError", + '400': "SecurityFeedsBadRequestError", + '401': "SecurityFeedsUnauthorizedError", + '403': "SecurityFeedsForbiddenError", + '404': "SecurityFeedsNotFoundError", + '500': "SecurityFeedsServerError", } response_data = self.api_client.call_api( *_param, @@ -121,7 +121,7 @@ def create_feed( @validate_call def create_feed_with_http_info( self, - feed_create: Annotated[FeedCreate, Field(description="The request body used to create the threat feed.")], + feed_create: Annotated[FeedCreate, Field(description="The request body used to create the security feed.")], _request_timeout: Union[ None, Annotated[StrictFloat, Field(gt=0)], @@ -135,11 +135,11 @@ def create_feed_with_http_info( _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, ) -> ApiResponse[FeedObject]: - """Create Threat Feed + """Create Security Feed - Create a threat feed for a third-party or custom security vendor. + Create a security feed for a third-party or custom security vendor. - :param feed_create: The request body used to create the threat feed. (required) + :param feed_create: The request body used to create the security feed. (required) :type feed_create: FeedCreate :param _request_timeout: timeout setting for this request. If one number provided, it will be total request @@ -173,11 +173,11 @@ def create_feed_with_http_info( _response_types_map: Dict[str, Optional[str]] = { '200': "FeedObject", - '400': "ThreatIntelligenceFeedsBadRequestError", - '401': "ThreatIntelligenceFeedsUnauthorizedError", - '403': "ThreatIntelligenceFeedsForbiddenError", - '404': "ThreatIntelligenceFeedsNotFoundError", - '500': "ThreatIntelligenceFeedsServerError", + '400': "SecurityFeedsBadRequestError", + '401': "SecurityFeedsUnauthorizedError", + '403': "SecurityFeedsForbiddenError", + '404': "SecurityFeedsNotFoundError", + '500': "SecurityFeedsServerError", } response_data = self.api_client.call_api( *_param, @@ -193,7 +193,7 @@ def create_feed_with_http_info( @validate_call def create_feed_without_preload_content( self, - feed_create: Annotated[FeedCreate, Field(description="The request body used to create the threat feed.")], + feed_create: Annotated[FeedCreate, Field(description="The request body used to create the security feed.")], _request_timeout: Union[ None, Annotated[StrictFloat, Field(gt=0)], @@ -207,11 +207,11 @@ def create_feed_without_preload_content( _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, ) -> RESTResponseType: - """Create Threat Feed + """Create Security Feed - Create a threat feed for a third-party or custom security vendor. + Create a security feed for a third-party or custom security vendor. - :param feed_create: The request body used to create the threat feed. (required) + :param feed_create: The request body used to create the security feed. (required) :type feed_create: FeedCreate :param _request_timeout: timeout setting for this request. If one number provided, it will be total request @@ -245,11 +245,11 @@ def create_feed_without_preload_content( _response_types_map: Dict[str, Optional[str]] = { '200': "FeedObject", - '400': "ThreatIntelligenceFeedsBadRequestError", - '401': "ThreatIntelligenceFeedsUnauthorizedError", - '403': "ThreatIntelligenceFeedsForbiddenError", - '404': "ThreatIntelligenceFeedsNotFoundError", - '500': "ThreatIntelligenceFeedsServerError", + '400': "SecurityFeedsBadRequestError", + '401': "SecurityFeedsUnauthorizedError", + '403': "SecurityFeedsForbiddenError", + '404': "SecurityFeedsNotFoundError", + '500': "SecurityFeedsServerError", } response_data = self.api_client.call_api( *_param, @@ -338,7 +338,7 @@ def _create_feed_serialize( @validate_call def delete_feed( self, - feed_id: Annotated[StrictInt, Field(description="The ID of the threat feed.")], + feed_id: Annotated[StrictInt, Field(description="The ID of the security feed.")], _request_timeout: Union[ None, Annotated[StrictFloat, Field(gt=0)], @@ -352,11 +352,11 @@ def delete_feed( _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, ) -> None: - """Delete Threat Feed + """Delete Security Feed - Delete the threat feed for a custom security vendor. **Note:** You cannot remove a threat feed for a third-party security vendor. You can only enable or disable a threat feed for a third-party security vendor. + Delete the securityfeed for a custom security vendor. **Note:** You can not remove a security feed for a third-party security vendor. You can only enable or disable a security feed for a third-party security vendor. - :param feed_id: The ID of the threat feed. (required) + :param feed_id: The ID of the security feed. (required) :type feed_id: int :param _request_timeout: timeout setting for this request. If one number provided, it will be total request @@ -390,11 +390,11 @@ def delete_feed( _response_types_map: Dict[str, Optional[str]] = { '204': None, - '400': "ThreatIntelligenceFeedsBadRequestError", - '401': "ThreatIntelligenceFeedsUnauthorizedError", - '403': "ThreatIntelligenceFeedsForbiddenError", - '404': "ThreatIntelligenceFeedsNotFoundError", - '500': "ThreatIntelligenceFeedsServerError", + '400': "SecurityFeedsBadRequestError", + '401': "SecurityFeedsUnauthorizedError", + '403': "SecurityFeedsForbiddenError", + '404': "SecurityFeedsNotFoundError", + '500': "SecurityFeedsServerError", } response_data = self.api_client.call_api( *_param, @@ -410,7 +410,7 @@ def delete_feed( @validate_call def delete_feed_with_http_info( self, - feed_id: Annotated[StrictInt, Field(description="The ID of the threat feed.")], + feed_id: Annotated[StrictInt, Field(description="The ID of the security feed.")], _request_timeout: Union[ None, Annotated[StrictFloat, Field(gt=0)], @@ -424,11 +424,11 @@ def delete_feed_with_http_info( _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, ) -> ApiResponse[None]: - """Delete Threat Feed + """Delete Security Feed - Delete the threat feed for a custom security vendor. **Note:** You cannot remove a threat feed for a third-party security vendor. You can only enable or disable a threat feed for a third-party security vendor. + Delete the securityfeed for a custom security vendor. **Note:** You can not remove a security feed for a third-party security vendor. You can only enable or disable a security feed for a third-party security vendor. - :param feed_id: The ID of the threat feed. (required) + :param feed_id: The ID of the security feed. (required) :type feed_id: int :param _request_timeout: timeout setting for this request. If one number provided, it will be total request @@ -462,11 +462,11 @@ def delete_feed_with_http_info( _response_types_map: Dict[str, Optional[str]] = { '204': None, - '400': "ThreatIntelligenceFeedsBadRequestError", - '401': "ThreatIntelligenceFeedsUnauthorizedError", - '403': "ThreatIntelligenceFeedsForbiddenError", - '404': "ThreatIntelligenceFeedsNotFoundError", - '500': "ThreatIntelligenceFeedsServerError", + '400': "SecurityFeedsBadRequestError", + '401': "SecurityFeedsUnauthorizedError", + '403': "SecurityFeedsForbiddenError", + '404': "SecurityFeedsNotFoundError", + '500': "SecurityFeedsServerError", } response_data = self.api_client.call_api( *_param, @@ -482,7 +482,7 @@ def delete_feed_with_http_info( @validate_call def delete_feed_without_preload_content( self, - feed_id: Annotated[StrictInt, Field(description="The ID of the threat feed.")], + feed_id: Annotated[StrictInt, Field(description="The ID of the security feed.")], _request_timeout: Union[ None, Annotated[StrictFloat, Field(gt=0)], @@ -496,11 +496,11 @@ def delete_feed_without_preload_content( _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, ) -> RESTResponseType: - """Delete Threat Feed + """Delete Security Feed - Delete the threat feed for a custom security vendor. **Note:** You cannot remove a threat feed for a third-party security vendor. You can only enable or disable a threat feed for a third-party security vendor. + Delete the securityfeed for a custom security vendor. **Note:** You can not remove a security feed for a third-party security vendor. You can only enable or disable a security feed for a third-party security vendor. - :param feed_id: The ID of the threat feed. (required) + :param feed_id: The ID of the security feed. (required) :type feed_id: int :param _request_timeout: timeout setting for this request. If one number provided, it will be total request @@ -534,11 +534,11 @@ def delete_feed_without_preload_content( _response_types_map: Dict[str, Optional[str]] = { '204': None, - '400': "ThreatIntelligenceFeedsBadRequestError", - '401': "ThreatIntelligenceFeedsUnauthorizedError", - '403': "ThreatIntelligenceFeedsForbiddenError", - '404': "ThreatIntelligenceFeedsNotFoundError", - '500': "ThreatIntelligenceFeedsServerError", + '400': "SecurityFeedsBadRequestError", + '401': "SecurityFeedsUnauthorizedError", + '403': "SecurityFeedsForbiddenError", + '404': "SecurityFeedsNotFoundError", + '500': "SecurityFeedsServerError", } response_data = self.api_client.call_api( *_param, @@ -614,7 +614,7 @@ def _delete_feed_serialize( @validate_call def get_feed( self, - feed_id: Annotated[StrictInt, Field(description="The ID of the threat feed.")], + feed_id: Annotated[StrictInt, Field(description="The ID of the security feed.")], _request_timeout: Union[ None, Annotated[StrictFloat, Field(gt=0)], @@ -628,11 +628,11 @@ def get_feed( _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, ) -> FeedObject: - """Get Threat Feed + """Get Security Feed - Get the properties of the threat feed for a third-party or custom security vendor. + Get the properties of the security feed for a third-party or custom security vendor. - :param feed_id: The ID of the threat feed. (required) + :param feed_id: The ID of the security feed. (required) :type feed_id: int :param _request_timeout: timeout setting for this request. If one number provided, it will be total request @@ -666,11 +666,11 @@ def get_feed( _response_types_map: Dict[str, Optional[str]] = { '200': "FeedObject", - '400': "ThreatIntelligenceFeedsBadRequestError", - '401': "ThreatIntelligenceFeedsUnauthorizedError", - '403': "ThreatIntelligenceFeedsForbiddenError", - '404': "ThreatIntelligenceFeedsNotFoundError", - '500': "ThreatIntelligenceFeedsServerError", + '400': "SecurityFeedsBadRequestError", + '401': "SecurityFeedsUnauthorizedError", + '403': "SecurityFeedsForbiddenError", + '404': "SecurityFeedsNotFoundError", + '500': "SecurityFeedsServerError", } response_data = self.api_client.call_api( *_param, @@ -686,7 +686,7 @@ def get_feed( @validate_call def get_feed_with_http_info( self, - feed_id: Annotated[StrictInt, Field(description="The ID of the threat feed.")], + feed_id: Annotated[StrictInt, Field(description="The ID of the security feed.")], _request_timeout: Union[ None, Annotated[StrictFloat, Field(gt=0)], @@ -700,11 +700,11 @@ def get_feed_with_http_info( _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, ) -> ApiResponse[FeedObject]: - """Get Threat Feed + """Get Security Feed - Get the properties of the threat feed for a third-party or custom security vendor. + Get the properties of the security feed for a third-party or custom security vendor. - :param feed_id: The ID of the threat feed. (required) + :param feed_id: The ID of the security feed. (required) :type feed_id: int :param _request_timeout: timeout setting for this request. If one number provided, it will be total request @@ -738,11 +738,11 @@ def get_feed_with_http_info( _response_types_map: Dict[str, Optional[str]] = { '200': "FeedObject", - '400': "ThreatIntelligenceFeedsBadRequestError", - '401': "ThreatIntelligenceFeedsUnauthorizedError", - '403': "ThreatIntelligenceFeedsForbiddenError", - '404': "ThreatIntelligenceFeedsNotFoundError", - '500': "ThreatIntelligenceFeedsServerError", + '400': "SecurityFeedsBadRequestError", + '401': "SecurityFeedsUnauthorizedError", + '403': "SecurityFeedsForbiddenError", + '404': "SecurityFeedsNotFoundError", + '500': "SecurityFeedsServerError", } response_data = self.api_client.call_api( *_param, @@ -758,7 +758,7 @@ def get_feed_with_http_info( @validate_call def get_feed_without_preload_content( self, - feed_id: Annotated[StrictInt, Field(description="The ID of the threat feed.")], + feed_id: Annotated[StrictInt, Field(description="The ID of the security feed.")], _request_timeout: Union[ None, Annotated[StrictFloat, Field(gt=0)], @@ -772,11 +772,11 @@ def get_feed_without_preload_content( _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, ) -> RESTResponseType: - """Get Threat Feed + """Get Security Feed - Get the properties of the threat feed for a third-party or custom security vendor. + Get the properties of the security feed for a third-party or custom security vendor. - :param feed_id: The ID of the threat feed. (required) + :param feed_id: The ID of the security feed. (required) :type feed_id: int :param _request_timeout: timeout setting for this request. If one number provided, it will be total request @@ -810,11 +810,11 @@ def get_feed_without_preload_content( _response_types_map: Dict[str, Optional[str]] = { '200': "FeedObject", - '400': "ThreatIntelligenceFeedsBadRequestError", - '401': "ThreatIntelligenceFeedsUnauthorizedError", - '403': "ThreatIntelligenceFeedsForbiddenError", - '404': "ThreatIntelligenceFeedsNotFoundError", - '500': "ThreatIntelligenceFeedsServerError", + '400': "SecurityFeedsBadRequestError", + '401': "SecurityFeedsUnauthorizedError", + '403': "SecurityFeedsForbiddenError", + '404': "SecurityFeedsNotFoundError", + '500': "SecurityFeedsServerError", } response_data = self.api_client.call_api( *_param, @@ -903,9 +903,9 @@ def get_feeds( _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, ) -> List[FeedObject]: - """List Threat Feeds + """List Security Feeds - List the threat feeds for the third-party and custom security vendors integrated in Secure Access. + List the security feeds for the third-party and custom security vendors integrated in Secure Access. :param _request_timeout: timeout setting for this request. If one number provided, it will be total request @@ -938,11 +938,11 @@ def get_feeds( _response_types_map: Dict[str, Optional[str]] = { '200': "List[FeedObject]", - '400': "ThreatIntelligenceFeedsBadRequestError", - '401': "ThreatIntelligenceFeedsUnauthorizedError", - '403': "ThreatIntelligenceFeedsForbiddenError", - '404': "ThreatIntelligenceFeedsNotFoundError", - '500': "ThreatIntelligenceFeedsServerError", + '400': "SecurityFeedsBadRequestError", + '401': "SecurityFeedsUnauthorizedError", + '403': "SecurityFeedsForbiddenError", + '404': "SecurityFeedsNotFoundError", + '500': "SecurityFeedsServerError", } response_data = self.api_client.call_api( *_param, @@ -971,9 +971,9 @@ def get_feeds_with_http_info( _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, ) -> ApiResponse[List[FeedObject]]: - """List Threat Feeds + """List Security Feeds - List the threat feeds for the third-party and custom security vendors integrated in Secure Access. + List the security feeds for the third-party and custom security vendors integrated in Secure Access. :param _request_timeout: timeout setting for this request. If one number provided, it will be total request @@ -1006,11 +1006,11 @@ def get_feeds_with_http_info( _response_types_map: Dict[str, Optional[str]] = { '200': "List[FeedObject]", - '400': "ThreatIntelligenceFeedsBadRequestError", - '401': "ThreatIntelligenceFeedsUnauthorizedError", - '403': "ThreatIntelligenceFeedsForbiddenError", - '404': "ThreatIntelligenceFeedsNotFoundError", - '500': "ThreatIntelligenceFeedsServerError", + '400': "SecurityFeedsBadRequestError", + '401': "SecurityFeedsUnauthorizedError", + '403': "SecurityFeedsForbiddenError", + '404': "SecurityFeedsNotFoundError", + '500': "SecurityFeedsServerError", } response_data = self.api_client.call_api( *_param, @@ -1039,9 +1039,9 @@ def get_feeds_without_preload_content( _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, ) -> RESTResponseType: - """List Threat Feeds + """List Security Feeds - List the threat feeds for the third-party and custom security vendors integrated in Secure Access. + List the security feeds for the third-party and custom security vendors integrated in Secure Access. :param _request_timeout: timeout setting for this request. If one number provided, it will be total request @@ -1074,11 +1074,11 @@ def get_feeds_without_preload_content( _response_types_map: Dict[str, Optional[str]] = { '200': "List[FeedObject]", - '400': "ThreatIntelligenceFeedsBadRequestError", - '401': "ThreatIntelligenceFeedsUnauthorizedError", - '403': "ThreatIntelligenceFeedsForbiddenError", - '404': "ThreatIntelligenceFeedsNotFoundError", - '500': "ThreatIntelligenceFeedsServerError", + '400': "SecurityFeedsBadRequestError", + '401': "SecurityFeedsUnauthorizedError", + '403': "SecurityFeedsForbiddenError", + '404': "SecurityFeedsNotFoundError", + '500': "SecurityFeedsServerError", } response_data = self.api_client.call_api( *_param, @@ -1151,8 +1151,8 @@ def _get_feeds_serialize( @validate_call def update_feed( self, - feed_id: Annotated[StrictInt, Field(description="The ID of the threat feed.")], - feed_patch: Annotated[FeedPatch, Field(description="The request body used to update the threat feed.")], + feed_id: Annotated[StrictInt, Field(description="The ID of the security feed.")], + feed_patch: Annotated[FeedPatch, Field(description="The request body used to update the security feed.")], _request_timeout: Union[ None, Annotated[StrictFloat, Field(gt=0)], @@ -1166,13 +1166,13 @@ def update_feed( _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, ) -> FeedObject: - """Update Threat Feed + """Update Security Feed - Update the properties of the threat feed for a third-party or custom security vendor. + Update the properties of the security feed for a third-party or custom security vendor. - :param feed_id: The ID of the threat feed. (required) + :param feed_id: The ID of the security feed. (required) :type feed_id: int - :param feed_patch: The request body used to update the threat feed. (required) + :param feed_patch: The request body used to update the security feed. (required) :type feed_patch: FeedPatch :param _request_timeout: timeout setting for this request. If one number provided, it will be total request @@ -1207,11 +1207,11 @@ def update_feed( _response_types_map: Dict[str, Optional[str]] = { '200': "FeedObject", - '400': "ThreatIntelligenceFeedsBadRequestError", - '401': "ThreatIntelligenceFeedsUnauthorizedError", - '403': "ThreatIntelligenceFeedsForbiddenError", - '404': "ThreatIntelligenceFeedsNotFoundError", - '500': "ThreatIntelligenceFeedsServerError", + '400': "SecurityFeedsBadRequestError", + '401': "SecurityFeedsUnauthorizedError", + '403': "SecurityFeedsForbiddenError", + '404': "SecurityFeedsNotFoundError", + '500': "SecurityFeedsServerError", } response_data = self.api_client.call_api( *_param, @@ -1227,8 +1227,8 @@ def update_feed( @validate_call def update_feed_with_http_info( self, - feed_id: Annotated[StrictInt, Field(description="The ID of the threat feed.")], - feed_patch: Annotated[FeedPatch, Field(description="The request body used to update the threat feed.")], + feed_id: Annotated[StrictInt, Field(description="The ID of the security feed.")], + feed_patch: Annotated[FeedPatch, Field(description="The request body used to update the security feed.")], _request_timeout: Union[ None, Annotated[StrictFloat, Field(gt=0)], @@ -1242,13 +1242,13 @@ def update_feed_with_http_info( _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, ) -> ApiResponse[FeedObject]: - """Update Threat Feed + """Update Security Feed - Update the properties of the threat feed for a third-party or custom security vendor. + Update the properties of the security feed for a third-party or custom security vendor. - :param feed_id: The ID of the threat feed. (required) + :param feed_id: The ID of the security feed. (required) :type feed_id: int - :param feed_patch: The request body used to update the threat feed. (required) + :param feed_patch: The request body used to update the security feed. (required) :type feed_patch: FeedPatch :param _request_timeout: timeout setting for this request. If one number provided, it will be total request @@ -1283,11 +1283,11 @@ def update_feed_with_http_info( _response_types_map: Dict[str, Optional[str]] = { '200': "FeedObject", - '400': "ThreatIntelligenceFeedsBadRequestError", - '401': "ThreatIntelligenceFeedsUnauthorizedError", - '403': "ThreatIntelligenceFeedsForbiddenError", - '404': "ThreatIntelligenceFeedsNotFoundError", - '500': "ThreatIntelligenceFeedsServerError", + '400': "SecurityFeedsBadRequestError", + '401': "SecurityFeedsUnauthorizedError", + '403': "SecurityFeedsForbiddenError", + '404': "SecurityFeedsNotFoundError", + '500': "SecurityFeedsServerError", } response_data = self.api_client.call_api( *_param, @@ -1303,8 +1303,8 @@ def update_feed_with_http_info( @validate_call def update_feed_without_preload_content( self, - feed_id: Annotated[StrictInt, Field(description="The ID of the threat feed.")], - feed_patch: Annotated[FeedPatch, Field(description="The request body used to update the threat feed.")], + feed_id: Annotated[StrictInt, Field(description="The ID of the security feed.")], + feed_patch: Annotated[FeedPatch, Field(description="The request body used to update the security feed.")], _request_timeout: Union[ None, Annotated[StrictFloat, Field(gt=0)], @@ -1318,13 +1318,13 @@ def update_feed_without_preload_content( _headers: Optional[Dict[StrictStr, Any]] = None, _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, ) -> RESTResponseType: - """Update Threat Feed + """Update Security Feed - Update the properties of the threat feed for a third-party or custom security vendor. + Update the properties of the security feed for a third-party or custom security vendor. - :param feed_id: The ID of the threat feed. (required) + :param feed_id: The ID of the security feed. (required) :type feed_id: int - :param feed_patch: The request body used to update the threat feed. (required) + :param feed_patch: The request body used to update the security feed. (required) :type feed_patch: FeedPatch :param _request_timeout: timeout setting for this request. If one number provided, it will be total request @@ -1359,11 +1359,11 @@ def update_feed_without_preload_content( _response_types_map: Dict[str, Optional[str]] = { '200': "FeedObject", - '400': "ThreatIntelligenceFeedsBadRequestError", - '401': "ThreatIntelligenceFeedsUnauthorizedError", - '403': "ThreatIntelligenceFeedsForbiddenError", - '404': "ThreatIntelligenceFeedsNotFoundError", - '500': "ThreatIntelligenceFeedsServerError", + '400': "SecurityFeedsBadRequestError", + '401': "SecurityFeedsUnauthorizedError", + '403': "SecurityFeedsForbiddenError", + '404': "SecurityFeedsNotFoundError", + '500': "SecurityFeedsServerError", } response_data = self.api_client.call_api( *_param, diff --git a/secure_access/api/identities_api.py b/secure_access/api/identities_api.py index d9580ab..042c6ee 100644 --- a/secure_access/api/identities_api.py +++ b/secure_access/api/identities_api.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/api/identity_distribution_api.py b/secure_access/api/identity_distribution_api.py index 02bf4aa..e84e710 100644 --- a/secure_access/api/identity_distribution_api.py +++ b/secure_access/api/identity_distribution_api.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/api/integration_types_api.py b/secure_access/api/integration_types_api.py index af07d4e..c6c0576 100644 --- a/secure_access/api/integration_types_api.py +++ b/secure_access/api/integration_types_api.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/api/integrations_api.py b/secure_access/api/integrations_api.py index aa318ad..2b1d1f9 100644 --- a/secure_access/api/integrations_api.py +++ b/secure_access/api/integrations_api.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/api/internal_domains_api.py b/secure_access/api/internal_domains_api.py index 5bbef66..17bd9c7 100644 --- a/secure_access/api/internal_domains_api.py +++ b/secure_access/api/internal_domains_api.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/api/internal_networks_api.py b/secure_access/api/internal_networks_api.py index 7fae1df..54caef4 100644 --- a/secure_access/api/internal_networks_api.py +++ b/secure_access/api/internal_networks_api.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/api/ips_profiles_api.py b/secure_access/api/ips_profiles_api.py index edc746e..9455c72 100644 --- a/secure_access/api/ips_profiles_api.py +++ b/secure_access/api/ips_profiles_api.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/api/network_devices_api.py b/secure_access/api/network_devices_api.py index 08a9226..04b0e31 100644 --- a/secure_access/api/network_devices_api.py +++ b/secure_access/api/network_devices_api.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/api/network_object_groups_api.py b/secure_access/api/network_object_groups_api.py index d653c18..4ac57da 100644 --- a/secure_access/api/network_object_groups_api.py +++ b/secure_access/api/network_object_groups_api.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/api/network_objects_api.py b/secure_access/api/network_objects_api.py index f37ccf2..955f4f7 100644 --- a/secure_access/api/network_objects_api.py +++ b/secure_access/api/network_objects_api.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/api/network_tunnel_groups_api.py b/secure_access/api/network_tunnel_groups_api.py index 32ad741..49e1a71 100644 --- a/secure_access/api/network_tunnel_groups_api.py +++ b/secure_access/api/network_tunnel_groups_api.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/api/network_tunnel_groups_peer_state_api.py b/secure_access/api/network_tunnel_groups_peer_state_api.py index efad2c4..165cc86 100644 --- a/secure_access/api/network_tunnel_groups_peer_state_api.py +++ b/secure_access/api/network_tunnel_groups_peer_state_api.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/api/network_tunnel_groups_regions_api.py b/secure_access/api/network_tunnel_groups_regions_api.py index 60a44f6..ad15beb 100644 --- a/secure_access/api/network_tunnel_groups_regions_api.py +++ b/secure_access/api/network_tunnel_groups_regions_api.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/api/network_tunnel_groups_state_api.py b/secure_access/api/network_tunnel_groups_state_api.py index 934ae90..73b4f4b 100644 --- a/secure_access/api/network_tunnel_groups_state_api.py +++ b/secure_access/api/network_tunnel_groups_state_api.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/api/network_tunnels_api.py b/secure_access/api/network_tunnels_api.py new file mode 100644 index 0000000..71bbdf1 --- /dev/null +++ b/secure_access/api/network_tunnels_api.py @@ -0,0 +1,526 @@ +# Copyright 2026 Cisco Systems, Inc. and its affiliates +# +# SPDX-License-Identifier: Apache-2.0 + +# coding: utf-8 + +""" + Cisco Secure Access API + + Unified OpenAPI spec for Cisco Secure Access APIs. + + The version of the OpenAPI document: v2.0.202602030705 + Contact: devnet@cisco.com + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + +import warnings +from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt +from typing import Any, Dict, List, Optional, Tuple, Union +from typing_extensions import Annotated + +from pydantic import Field, StrictFloat, StrictInt, StrictStr, field_validator +from typing import Optional, Union +from typing_extensions import Annotated +from secure_access.models.get_tunnel_events200_response import GetTunnelEvents200Response + +from secure_access.api_client import ApiClient, RequestSerialized +from secure_access.api_response import ApiResponse +from secure_access.rest import RESTResponseType + + +class NetworkTunnelsApi: + """NOTE: This class is auto generated by OpenAPI Generator + Ref: https://openapi-generator.tech + + Do not edit the class manually. + """ + + def __init__(self, api_client=None) -> None: + if api_client is None: + api_client = ApiClient.get_default() + self.api_client = api_client + + + @validate_call + def get_tunnel_events( + self, + var_from: Annotated[StrictStr, Field(description="A timestamp or relative time string (for example: '-1days'). Filter for data that appears after this time.")], + to: Annotated[StrictStr, Field(description="A timestamp or relative time string (for example: 'now'). Filter for data that appears before this time.")], + limit: Annotated[Union[StrictFloat, StrictInt], Field(description="The maximum number of records to return from the collection.")], + offset: Annotated[Optional[Union[StrictFloat, StrictInt]], Field(description="A number that represents an index in the collection.")] = None, + order: Annotated[Optional[StrictStr], Field(description="A string that describes how to order the results: ascending (`asc`) or descending (`desc`).")] = None, + timezone: Annotated[Optional[StrictStr], Field(description="Display the timestamp of the traffic events in the specified timezone. For the timezone, provide a continent and city separated by an url-encoded forward slash ('/'), for example: timezone='ASIA%2fCALCUTTA'.")] = None, + servicename: Annotated[Optional[StrictStr], Field(description="A comma-separated list of service type used to filter the collection.")] = None, + network_tunnel_level: Annotated[Optional[StrictStr], Field(description="A comma-separated list of log levels used to filter the collection of network tunnel logs.")] = None, + networktunnelgrouplabel: Annotated[Optional[StrictStr], Field(description="A comma-separated list of network tunnel group labels used to filter the collection.")] = None, + datacenterip: Annotated[Optional[StrictStr], Field(description="A comma-separated list of data center IP addresses.")] = None, + message: Annotated[Optional[StrictStr], Field(description="A comma-separated list of event messages.")] = None, + region: Annotated[Optional[StrictStr], Field(description="A comma-separated list of AWS or Azure regions where the system deployed the network tunnel groups.")] = None, + searchtext: Annotated[Optional[StrictStr], Field(description="A comma-separated list of text used to search the collection.")] = 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, + ) -> GetTunnelEvents200Response: + """Get Network Tunnel Logs + + List the events for the network tunnels deployed in the organization. **Access Scope:** Reports > Granular Events > Read-Only + + :param var_from: A timestamp or relative time string (for example: '-1days'). Filter for data that appears after this time. (required) + :type var_from: str + :param to: A timestamp or relative time string (for example: 'now'). Filter for data that appears before this time. (required) + :type to: str + :param limit: The maximum number of records to return from the collection. (required) + :type limit: float + :param offset: A number that represents an index in the collection. + :type offset: float + :param order: A string that describes how to order the results: ascending (`asc`) or descending (`desc`). + :type order: str + :param timezone: Display the timestamp of the traffic events in the specified timezone. For the timezone, provide a continent and city separated by an url-encoded forward slash ('/'), for example: timezone='ASIA%2fCALCUTTA'. + :type timezone: str + :param servicename: A comma-separated list of service type used to filter the collection. + :type servicename: str + :param network_tunnel_level: A comma-separated list of log levels used to filter the collection of network tunnel logs. + :type network_tunnel_level: str + :param networktunnelgrouplabel: A comma-separated list of network tunnel group labels used to filter the collection. + :type networktunnelgrouplabel: str + :param datacenterip: A comma-separated list of data center IP addresses. + :type datacenterip: str + :param message: A comma-separated list of event messages. + :type message: str + :param region: A comma-separated list of AWS or Azure regions where the system deployed the network tunnel groups. + :type region: str + :param searchtext: A comma-separated list of text used to search the collection. + :type searchtext: 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_tunnel_events_serialize( + var_from=var_from, + to=to, + limit=limit, + offset=offset, + order=order, + timezone=timezone, + servicename=servicename, + network_tunnel_level=network_tunnel_level, + networktunnelgrouplabel=networktunnelgrouplabel, + datacenterip=datacenterip, + message=message, + region=region, + searchtext=searchtext, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "GetTunnelEvents200Response", + '400': "Reporting400Error", + '401': "Reporting401Error", + '403': "Reporting403Error", + '404': "Reporting404Error", + '500': "Reporting500Error", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ).data + + + @validate_call + def get_tunnel_events_with_http_info( + self, + var_from: Annotated[StrictStr, Field(description="A timestamp or relative time string (for example: '-1days'). Filter for data that appears after this time.")], + to: Annotated[StrictStr, Field(description="A timestamp or relative time string (for example: 'now'). Filter for data that appears before this time.")], + limit: Annotated[Union[StrictFloat, StrictInt], Field(description="The maximum number of records to return from the collection.")], + offset: Annotated[Optional[Union[StrictFloat, StrictInt]], Field(description="A number that represents an index in the collection.")] = None, + order: Annotated[Optional[StrictStr], Field(description="A string that describes how to order the results: ascending (`asc`) or descending (`desc`).")] = None, + timezone: Annotated[Optional[StrictStr], Field(description="Display the timestamp of the traffic events in the specified timezone. For the timezone, provide a continent and city separated by an url-encoded forward slash ('/'), for example: timezone='ASIA%2fCALCUTTA'.")] = None, + servicename: Annotated[Optional[StrictStr], Field(description="A comma-separated list of service type used to filter the collection.")] = None, + network_tunnel_level: Annotated[Optional[StrictStr], Field(description="A comma-separated list of log levels used to filter the collection of network tunnel logs.")] = None, + networktunnelgrouplabel: Annotated[Optional[StrictStr], Field(description="A comma-separated list of network tunnel group labels used to filter the collection.")] = None, + datacenterip: Annotated[Optional[StrictStr], Field(description="A comma-separated list of data center IP addresses.")] = None, + message: Annotated[Optional[StrictStr], Field(description="A comma-separated list of event messages.")] = None, + region: Annotated[Optional[StrictStr], Field(description="A comma-separated list of AWS or Azure regions where the system deployed the network tunnel groups.")] = None, + searchtext: Annotated[Optional[StrictStr], Field(description="A comma-separated list of text used to search the collection.")] = 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[GetTunnelEvents200Response]: + """Get Network Tunnel Logs + + List the events for the network tunnels deployed in the organization. **Access Scope:** Reports > Granular Events > Read-Only + + :param var_from: A timestamp or relative time string (for example: '-1days'). Filter for data that appears after this time. (required) + :type var_from: str + :param to: A timestamp or relative time string (for example: 'now'). Filter for data that appears before this time. (required) + :type to: str + :param limit: The maximum number of records to return from the collection. (required) + :type limit: float + :param offset: A number that represents an index in the collection. + :type offset: float + :param order: A string that describes how to order the results: ascending (`asc`) or descending (`desc`). + :type order: str + :param timezone: Display the timestamp of the traffic events in the specified timezone. For the timezone, provide a continent and city separated by an url-encoded forward slash ('/'), for example: timezone='ASIA%2fCALCUTTA'. + :type timezone: str + :param servicename: A comma-separated list of service type used to filter the collection. + :type servicename: str + :param network_tunnel_level: A comma-separated list of log levels used to filter the collection of network tunnel logs. + :type network_tunnel_level: str + :param networktunnelgrouplabel: A comma-separated list of network tunnel group labels used to filter the collection. + :type networktunnelgrouplabel: str + :param datacenterip: A comma-separated list of data center IP addresses. + :type datacenterip: str + :param message: A comma-separated list of event messages. + :type message: str + :param region: A comma-separated list of AWS or Azure regions where the system deployed the network tunnel groups. + :type region: str + :param searchtext: A comma-separated list of text used to search the collection. + :type searchtext: 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_tunnel_events_serialize( + var_from=var_from, + to=to, + limit=limit, + offset=offset, + order=order, + timezone=timezone, + servicename=servicename, + network_tunnel_level=network_tunnel_level, + networktunnelgrouplabel=networktunnelgrouplabel, + datacenterip=datacenterip, + message=message, + region=region, + searchtext=searchtext, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "GetTunnelEvents200Response", + '400': "Reporting400Error", + '401': "Reporting401Error", + '403': "Reporting403Error", + '404': "Reporting404Error", + '500': "Reporting500Error", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ) + + + @validate_call + def get_tunnel_events_without_preload_content( + self, + var_from: Annotated[StrictStr, Field(description="A timestamp or relative time string (for example: '-1days'). Filter for data that appears after this time.")], + to: Annotated[StrictStr, Field(description="A timestamp or relative time string (for example: 'now'). Filter for data that appears before this time.")], + limit: Annotated[Union[StrictFloat, StrictInt], Field(description="The maximum number of records to return from the collection.")], + offset: Annotated[Optional[Union[StrictFloat, StrictInt]], Field(description="A number that represents an index in the collection.")] = None, + order: Annotated[Optional[StrictStr], Field(description="A string that describes how to order the results: ascending (`asc`) or descending (`desc`).")] = None, + timezone: Annotated[Optional[StrictStr], Field(description="Display the timestamp of the traffic events in the specified timezone. For the timezone, provide a continent and city separated by an url-encoded forward slash ('/'), for example: timezone='ASIA%2fCALCUTTA'.")] = None, + servicename: Annotated[Optional[StrictStr], Field(description="A comma-separated list of service type used to filter the collection.")] = None, + network_tunnel_level: Annotated[Optional[StrictStr], Field(description="A comma-separated list of log levels used to filter the collection of network tunnel logs.")] = None, + networktunnelgrouplabel: Annotated[Optional[StrictStr], Field(description="A comma-separated list of network tunnel group labels used to filter the collection.")] = None, + datacenterip: Annotated[Optional[StrictStr], Field(description="A comma-separated list of data center IP addresses.")] = None, + message: Annotated[Optional[StrictStr], Field(description="A comma-separated list of event messages.")] = None, + region: Annotated[Optional[StrictStr], Field(description="A comma-separated list of AWS or Azure regions where the system deployed the network tunnel groups.")] = None, + searchtext: Annotated[Optional[StrictStr], Field(description="A comma-separated list of text used to search the collection.")] = 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 Network Tunnel Logs + + List the events for the network tunnels deployed in the organization. **Access Scope:** Reports > Granular Events > Read-Only + + :param var_from: A timestamp or relative time string (for example: '-1days'). Filter for data that appears after this time. (required) + :type var_from: str + :param to: A timestamp or relative time string (for example: 'now'). Filter for data that appears before this time. (required) + :type to: str + :param limit: The maximum number of records to return from the collection. (required) + :type limit: float + :param offset: A number that represents an index in the collection. + :type offset: float + :param order: A string that describes how to order the results: ascending (`asc`) or descending (`desc`). + :type order: str + :param timezone: Display the timestamp of the traffic events in the specified timezone. For the timezone, provide a continent and city separated by an url-encoded forward slash ('/'), for example: timezone='ASIA%2fCALCUTTA'. + :type timezone: str + :param servicename: A comma-separated list of service type used to filter the collection. + :type servicename: str + :param network_tunnel_level: A comma-separated list of log levels used to filter the collection of network tunnel logs. + :type network_tunnel_level: str + :param networktunnelgrouplabel: A comma-separated list of network tunnel group labels used to filter the collection. + :type networktunnelgrouplabel: str + :param datacenterip: A comma-separated list of data center IP addresses. + :type datacenterip: str + :param message: A comma-separated list of event messages. + :type message: str + :param region: A comma-separated list of AWS or Azure regions where the system deployed the network tunnel groups. + :type region: str + :param searchtext: A comma-separated list of text used to search the collection. + :type searchtext: 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_tunnel_events_serialize( + var_from=var_from, + to=to, + limit=limit, + offset=offset, + order=order, + timezone=timezone, + servicename=servicename, + network_tunnel_level=network_tunnel_level, + networktunnelgrouplabel=networktunnelgrouplabel, + datacenterip=datacenterip, + message=message, + region=region, + searchtext=searchtext, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "GetTunnelEvents200Response", + '400': "Reporting400Error", + '401': "Reporting401Error", + '403': "Reporting403Error", + '404': "Reporting404Error", + '500': "Reporting500Error", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _get_tunnel_events_serialize( + self, + var_from, + to, + limit, + offset, + order, + timezone, + servicename, + network_tunnel_level, + networktunnelgrouplabel, + datacenterip, + message, + region, + searchtext, + _request_auth, + _content_type, + _headers, + _host_index, + ) -> RequestSerialized: + + _host = None + + _collection_formats: Dict[str, str] = { + } + + _path_params: Dict[str, str] = {} + _query_params: List[Tuple[str, str]] = [] + _header_params: Dict[str, Optional[str]] = _headers or {} + _form_params: List[Tuple[str, str]] = [] + _files: Dict[ + str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] + ] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + # process the query parameters + if var_from is not None: + + _query_params.append(('from', var_from)) + + if to is not None: + + _query_params.append(('to', to)) + + if limit is not None: + + _query_params.append(('limit', limit)) + + if offset is not None: + + _query_params.append(('offset', offset)) + + if order is not None: + + _query_params.append(('order', order)) + + if timezone is not None: + + _query_params.append(('timezone', timezone)) + + if servicename is not None: + + _query_params.append(('servicename', servicename)) + + if network_tunnel_level is not None: + + _query_params.append(('networkTunnelLevel', network_tunnel_level)) + + if networktunnelgrouplabel is not None: + + _query_params.append(('networktunnelgrouplabel', networktunnelgrouplabel)) + + if datacenterip is not None: + + _query_params.append(('datacenterip', datacenterip)) + + if message is not None: + + _query_params.append(('message', message)) + + if region is not None: + + _query_params.append(('region', region)) + + if searchtext is not None: + + _query_params.append(('searchtext', searchtext)) + + # process the header parameters + # process the form parameters + # process the body parameter + + + # set the HTTP header `Accept` + if 'Accept' not in _header_params: + _header_params['Accept'] = self.api_client.select_header_accept( + [ + 'application/json' + ] + ) + + + # authentication setting + _auth_settings: List[str] = [ + 'oauthFlow' + ] + + return self.api_client.param_serialize( + method='GET', + resource_path='/reports/v2/networkTunnelLogs', + 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/secure_access/api/networks_api.py b/secure_access/api/networks_api.py index 69df4e2..d0a2db6 100644 --- a/secure_access/api/networks_api.py +++ b/secure_access/api/networks_api.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/api/organization_information_api.py b/secure_access/api/organization_information_api.py index e43dc9a..5d5484e 100644 --- a/secure_access/api/organization_information_api.py +++ b/secure_access/api/organization_information_api.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/api/organization_requests_by_hour_and_category_api.py b/secure_access/api/organization_requests_by_hour_and_category_api.py index 39ce60d..be4f249 100644 --- a/secure_access/api/organization_requests_by_hour_and_category_api.py +++ b/secure_access/api/organization_requests_by_hour_and_category_api.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) @@ -85,7 +85,7 @@ def get_requests_by_hour_and_category( ) -> GetRequestsByHourAndCategory200Response: """Get Requests by Hour and Category (All) - List the activity volume within the timeframe by type of category. **Access Scope:** Reports > Granular Events > Read-Only + List the activity volume within the timeframe by type of category. **Access Scope:** Reports > Aggregations > Read-Only :param var_from: A timestamp or relative time string (for example: '-1days'). Filter for data that appears after this time. (required) :type var_from: str @@ -245,7 +245,7 @@ def get_requests_by_hour_and_category_with_http_info( ) -> ApiResponse[GetRequestsByHourAndCategory200Response]: """Get Requests by Hour and Category (All) - List the activity volume within the timeframe by type of category. **Access Scope:** Reports > Granular Events > Read-Only + List the activity volume within the timeframe by type of category. **Access Scope:** Reports > Aggregations > Read-Only :param var_from: A timestamp or relative time string (for example: '-1days'). Filter for data that appears after this time. (required) :type var_from: str @@ -405,7 +405,7 @@ def get_requests_by_hour_and_category_without_preload_content( ) -> RESTResponseType: """Get Requests by Hour and Category (All) - List the activity volume within the timeframe by type of category. **Access Scope:** Reports > Granular Events > Read-Only + List the activity volume within the timeframe by type of category. **Access Scope:** Reports > Aggregations > Read-Only :param var_from: A timestamp or relative time string (for example: '-1days'). Filter for data that appears after this time. (required) :type var_from: str @@ -738,7 +738,7 @@ def get_requests_by_hour_and_category_and_type( ) -> GetRequestsByHourAndCategory200Response: """Get Requests by Hour and Category - List the activity volume for the type of category within the timeframe. **Access Scope:** Reports > Granular Events > Read-Only + List the activity volume for the type of category within the timeframe. **Access Scope:** Reports > Aggregations > Read-Only :param type: Specify the type of traffic. (required) :type type: str @@ -902,7 +902,7 @@ def get_requests_by_hour_and_category_and_type_with_http_info( ) -> ApiResponse[GetRequestsByHourAndCategory200Response]: """Get Requests by Hour and Category - List the activity volume for the type of category within the timeframe. **Access Scope:** Reports > Granular Events > Read-Only + List the activity volume for the type of category within the timeframe. **Access Scope:** Reports > Aggregations > Read-Only :param type: Specify the type of traffic. (required) :type type: str @@ -1066,7 +1066,7 @@ def get_requests_by_hour_and_category_and_type_without_preload_content( ) -> RESTResponseType: """Get Requests by Hour and Category - List the activity volume for the type of category within the timeframe. **Access Scope:** Reports > Granular Events > Read-Only + List the activity volume for the type of category within the timeframe. **Access Scope:** Reports > Aggregations > Read-Only :param type: Specify the type of traffic. (required) :type type: str diff --git a/secure_access/api/organization_requests_by_hour_api.py b/secure_access/api/organization_requests_by_hour_api.py index 886bd25..d26df47 100644 --- a/secure_access/api/organization_requests_by_hour_api.py +++ b/secure_access/api/organization_requests_by_hour_api.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) @@ -87,7 +87,7 @@ def get_organization_requests_by_hour( ) -> GetRequestsByHour200Response: """Get Requests by Hour - List the activity volume within the timeframe. **Access Scope:** Reports > Granular Events > Read-Only + List the activity volume within the timeframe. **Access Scope:** Reports > Aggregations > Read-Only :param type: Specify the type of traffic. (required) :type type: str @@ -255,7 +255,7 @@ def get_organization_requests_by_hour_with_http_info( ) -> ApiResponse[GetRequestsByHour200Response]: """Get Requests by Hour - List the activity volume within the timeframe. **Access Scope:** Reports > Granular Events > Read-Only + List the activity volume within the timeframe. **Access Scope:** Reports > Aggregations > Read-Only :param type: Specify the type of traffic. (required) :type type: str @@ -423,7 +423,7 @@ def get_organization_requests_by_hour_without_preload_content( ) -> RESTResponseType: """Get Requests by Hour - List the activity volume within the timeframe. **Access Scope:** Reports > Granular Events > Read-Only + List the activity volume within the timeframe. **Access Scope:** Reports > Aggregations > Read-Only :param type: Specify the type of traffic. (required) :type type: str @@ -770,7 +770,7 @@ def get_requests_by_hour( ) -> GetRequestsByHour200Response: """Get Requests by Hour (All) - List the activity volume within the timeframe. **Access Scope:** Reports > Granular Events > Read-Only + List the activity volume within the timeframe. **Access Scope:** Reports > Aggregations > Read-Only :param var_from: A timestamp or relative time string (for example: '-1days'). Filter for data that appears after this time. (required) :type var_from: str @@ -934,7 +934,7 @@ def get_requests_by_hour_with_http_info( ) -> ApiResponse[GetRequestsByHour200Response]: """Get Requests by Hour (All) - List the activity volume within the timeframe. **Access Scope:** Reports > Granular Events > Read-Only + List the activity volume within the timeframe. **Access Scope:** Reports > Aggregations > Read-Only :param var_from: A timestamp or relative time string (for example: '-1days'). Filter for data that appears after this time. (required) :type var_from: str @@ -1098,7 +1098,7 @@ def get_requests_by_hour_without_preload_content( ) -> RESTResponseType: """Get Requests by Hour (All) - List the activity volume within the timeframe. **Access Scope:** Reports > Granular Events > Read-Only + List the activity volume within the timeframe. **Access Scope:** Reports > Aggregations > Read-Only :param var_from: A timestamp or relative time string (for example: '-1days'). Filter for data that appears after this time. (required) :type var_from: str diff --git a/secure_access/api/organization_requests_by_timerange_and_category_api.py b/secure_access/api/organization_requests_by_timerange_and_category_api.py index 3309f30..30236ca 100644 --- a/secure_access/api/organization_requests_by_timerange_and_category_api.py +++ b/secure_access/api/organization_requests_by_timerange_and_category_api.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) @@ -85,7 +85,7 @@ def get_requests_by_timerange_and_category( ) -> GetRequestsByHourAndCategory200Response: """Get Requests by Timerange and Category (All) - List the activity volume within the timeframe by category. **Access Scope:** Reports > Granular Events > Read-Only + List the activity volume within the timeframe by category. **Access Scope:** Reports > Aggregations > Read-Only :param var_from: A timestamp or relative time string (for example: '-1days'). Filter for data that appears after this time. (required) :type var_from: str @@ -245,7 +245,7 @@ def get_requests_by_timerange_and_category_with_http_info( ) -> ApiResponse[GetRequestsByHourAndCategory200Response]: """Get Requests by Timerange and Category (All) - List the activity volume within the timeframe by category. **Access Scope:** Reports > Granular Events > Read-Only + List the activity volume within the timeframe by category. **Access Scope:** Reports > Aggregations > Read-Only :param var_from: A timestamp or relative time string (for example: '-1days'). Filter for data that appears after this time. (required) :type var_from: str @@ -405,7 +405,7 @@ def get_requests_by_timerange_and_category_without_preload_content( ) -> RESTResponseType: """Get Requests by Timerange and Category (All) - List the activity volume within the timeframe by category. **Access Scope:** Reports > Granular Events > Read-Only + List the activity volume within the timeframe by category. **Access Scope:** Reports > Aggregations > Read-Only :param var_from: A timestamp or relative time string (for example: '-1days'). Filter for data that appears after this time. (required) :type var_from: str @@ -736,7 +736,7 @@ def get_requests_by_timerange_and_category_type( ) -> GetRequestsByHourAndCategory200Response: """Get Requests by Timerange and Category - List the activity volume within the timeframe by category. **Access Scope:** Reports > Granular Events > Read-Only + List the activity volume within the timeframe by category. **Access Scope:** Reports > Aggregations > Read-Only :param type: Specify the type of traffic. (required) :type type: str @@ -900,7 +900,7 @@ def get_requests_by_timerange_and_category_type_with_http_info( ) -> ApiResponse[GetRequestsByHourAndCategory200Response]: """Get Requests by Timerange and Category - List the activity volume within the timeframe by category. **Access Scope:** Reports > Granular Events > Read-Only + List the activity volume within the timeframe by category. **Access Scope:** Reports > Aggregations > Read-Only :param type: Specify the type of traffic. (required) :type type: str @@ -1064,7 +1064,7 @@ def get_requests_by_timerange_and_category_type_without_preload_content( ) -> RESTResponseType: """Get Requests by Timerange and Category - List the activity volume within the timeframe by category. **Access Scope:** Reports > Granular Events > Read-Only + List the activity volume within the timeframe by category. **Access Scope:** Reports > Aggregations > Read-Only :param type: Specify the type of traffic. (required) :type type: str diff --git a/secure_access/api/organization_requests_by_timerange_api.py b/secure_access/api/organization_requests_by_timerange_api.py index 15bdfb8..54fce5e 100644 --- a/secure_access/api/organization_requests_by_timerange_api.py +++ b/secure_access/api/organization_requests_by_timerange_api.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) @@ -88,7 +88,7 @@ def get_requests_by_timerange( ) -> GetRequestsByTimerange200Response: """Get Requests by Timerange (All) - List the activity volume within the timeframe. **Access Scope:** Reports > Granular Events > Read-Only + List the activity volume within the timeframe. **Access Scope:** Reports > Aggregations > Read-Only :param var_from: A timestamp or relative time string (for example: '-1days'). Filter for data that appears after this time. (required) :type var_from: str @@ -256,7 +256,7 @@ def get_requests_by_timerange_with_http_info( ) -> ApiResponse[GetRequestsByTimerange200Response]: """Get Requests by Timerange (All) - List the activity volume within the timeframe. **Access Scope:** Reports > Granular Events > Read-Only + List the activity volume within the timeframe. **Access Scope:** Reports > Aggregations > Read-Only :param var_from: A timestamp or relative time string (for example: '-1days'). Filter for data that appears after this time. (required) :type var_from: str @@ -424,7 +424,7 @@ def get_requests_by_timerange_without_preload_content( ) -> RESTResponseType: """Get Requests by Timerange (All) - List the activity volume within the timeframe. **Access Scope:** Reports > Granular Events > Read-Only + List the activity volume within the timeframe. **Access Scope:** Reports > Aggregations > Read-Only :param var_from: A timestamp or relative time string (for example: '-1days'). Filter for data that appears after this time. (required) :type var_from: str @@ -770,7 +770,7 @@ def get_requests_by_timerange_type( ) -> GetRequestsByHour200Response: """Get Requests by Timerange - List the activity volume within the timeframe. **Access Scope:** Reports > Granular Events > Read-Only + List the activity volume within the timeframe. **Access Scope:** Reports > Aggregations > Read-Only :param type: Specify the type of traffic. (required) :type type: str @@ -938,7 +938,7 @@ def get_requests_by_timerange_type_with_http_info( ) -> ApiResponse[GetRequestsByHour200Response]: """Get Requests by Timerange - List the activity volume within the timeframe. **Access Scope:** Reports > Granular Events > Read-Only + List the activity volume within the timeframe. **Access Scope:** Reports > Aggregations > Read-Only :param type: Specify the type of traffic. (required) :type type: str @@ -1106,7 +1106,7 @@ def get_requests_by_timerange_type_without_preload_content( ) -> RESTResponseType: """Get Requests by Timerange - List the activity volume within the timeframe. **Access Scope:** Reports > Granular Events > Read-Only + List the activity volume within the timeframe. **Access Scope:** Reports > Aggregations > Read-Only :param type: Specify the type of traffic. (required) :type type: str diff --git a/secure_access/api/passive_dns_api.py b/secure_access/api/passive_dns_api.py index 06b9068..452166b 100644 --- a/secure_access/api/passive_dns_api.py +++ b/secure_access/api/passive_dns_api.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/api/popularity_list_top_million_domains_api.py b/secure_access/api/popularity_list_top_million_domains_api.py index f88efd0..6d22936 100644 --- a/secure_access/api/popularity_list_top_million_domains_api.py +++ b/secure_access/api/popularity_list_top_million_domains_api.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/api/private_resource_api.py b/secure_access/api/private_resource_api.py index d445c7f..28dc5b5 100644 --- a/secure_access/api/private_resource_api.py +++ b/secure_access/api/private_resource_api.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/api/private_resources_api.py b/secure_access/api/private_resources_api.py index 2b69d0c..16cae24 100644 --- a/secure_access/api/private_resources_api.py +++ b/secure_access/api/private_resources_api.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/api/protocols_api.py b/secure_access/api/protocols_api.py index db2c34a..c3d8346 100644 --- a/secure_access/api/protocols_api.py +++ b/secure_access/api/protocols_api.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/api/related_domains_for_a_domain_api.py b/secure_access/api/related_domains_for_a_domain_api.py index 73116c3..0ae11a5 100644 --- a/secure_access/api/related_domains_for_a_domain_api.py +++ b/secure_access/api/related_domains_for_a_domain_api.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/api/remote_access_api.py b/secure_access/api/remote_access_api.py index b586281..81a328d 100644 --- a/secure_access/api/remote_access_api.py +++ b/secure_access/api/remote_access_api.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) @@ -72,7 +72,7 @@ def get_remote_access_events( ) -> GetRemoteAccessEvents200Response: """Get Remote Access Events - List the events logged by remote access VPN. **Access Scope:** Reports > Granular Events > Read-Only + List the events logged by remote access VPN. **Access Scope:** Reports > Aggregations > Read-Only :param var_from: A timestamp or relative time string (for example: '-1days'). Filter for data that appears after this time. (required) :type var_from: str @@ -180,7 +180,7 @@ def get_remote_access_events_with_http_info( ) -> ApiResponse[GetRemoteAccessEvents200Response]: """Get Remote Access Events - List the events logged by remote access VPN. **Access Scope:** Reports > Granular Events > Read-Only + List the events logged by remote access VPN. **Access Scope:** Reports > Aggregations > Read-Only :param var_from: A timestamp or relative time string (for example: '-1days'). Filter for data that appears after this time. (required) :type var_from: str @@ -288,7 +288,7 @@ def get_remote_access_events_without_preload_content( ) -> RESTResponseType: """Get Remote Access Events - List the events logged by remote access VPN. **Access Scope:** Reports > Granular Events > Read-Only + List the events logged by remote access VPN. **Access Scope:** Reports > Aggregations > Read-Only :param var_from: A timestamp or relative time string (for example: '-1days'). Filter for data that appears after this time. (required) :type var_from: str diff --git a/secure_access/api/requests_resource_connector_api.py b/secure_access/api/requests_resource_connector_api.py index 5560948..9ff68bf 100644 --- a/secure_access/api/requests_resource_connector_api.py +++ b/secure_access/api/requests_resource_connector_api.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/api/requests_summary_resource_connector_groups_api.py b/secure_access/api/requests_summary_resource_connector_groups_api.py index 1e04c10..d97a9f9 100644 --- a/secure_access/api/requests_summary_resource_connector_groups_api.py +++ b/secure_access/api/requests_summary_resource_connector_groups_api.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/api/resource_connectors_api.py b/secure_access/api/resource_connectors_api.py index efdeb8f..a8efa4a 100644 --- a/secure_access/api/resource_connectors_api.py +++ b/secure_access/api/resource_connectors_api.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/api/resource_groups_api.py b/secure_access/api/resource_groups_api.py index 75d6e12..fe55579 100644 --- a/secure_access/api/resource_groups_api.py +++ b/secure_access/api/resource_groups_api.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/api/roaming_computers_api.py b/secure_access/api/roaming_computers_api.py index 9fdfdd4..7b670a5 100644 --- a/secure_access/api/roaming_computers_api.py +++ b/secure_access/api/roaming_computers_api.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/api/rule_settings_and_defaults_api.py b/secure_access/api/rule_settings_and_defaults_api.py index 3a5fd43..8119357 100644 --- a/secure_access/api/rule_settings_and_defaults_api.py +++ b/secure_access/api/rule_settings_and_defaults_api.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/api/rules_activity_api.py b/secure_access/api/rules_activity_api.py index af2c190..818c547 100644 --- a/secure_access/api/rules_activity_api.py +++ b/secure_access/api/rules_activity_api.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/api/rules_api.py b/secure_access/api/rules_api.py new file mode 100644 index 0000000..a0bfb16 --- /dev/null +++ b/secure_access/api/rules_api.py @@ -0,0 +1,3843 @@ +# Copyright 2026 Cisco Systems, Inc. and its affiliates +# +# SPDX-License-Identifier: Apache-2.0 + +# coding: utf-8 + +""" + Cisco Secure Access API + + Unified OpenAPI spec for Cisco Secure Access APIs. + + The version of the OpenAPI document: v2.0.202602030705 + Contact: devnet@cisco.com + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + +import warnings +from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt +from typing import Any, Dict, List, Optional, Tuple, Union +from typing_extensions import Annotated + +from pydantic import Field, StrictInt, StrictStr, field_validator +from typing import List, Optional +from typing_extensions import Annotated +from uuid import UUID +from secure_access.models.dlp_rule import DLPRule +from secure_access.models.dlp_rule_create_request import DLPRuleCreateRequest +from secure_access.models.dlp_rule_list_item import DLPRuleListItem +from secure_access.models.dlp_rule_patch_request import DLPRulePatchRequest +from secure_access.models.oob_rule_create_request import OOBRuleCreateRequest +from secure_access.models.oob_rule_patch_request import OOBRulePatchRequest +from secure_access.models.oob_rule_response import OOBRuleResponse + +from secure_access.api_client import ApiClient, RequestSerialized +from secure_access.api_response import ApiResponse +from secure_access.rest import RESTResponseType + + +class RulesApi: + """NOTE: This class is auto generated by OpenAPI Generator + Ref: https://openapi-generator.tech + + Do not edit the class manually. + """ + + def __init__(self, api_client=None) -> None: + if api_client is None: + api_client = ApiClient.get_default() + self.api_client = api_client + + + @validate_call + def create_ai_guardrails_dlp_rule( + self, + dlp_rule_create_request: DLPRuleCreateRequest, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> DLPRule: + """Create AI Guardrails Rule + + Create an AI Guardrails DLP rule with the specified properties. + + :param dlp_rule_create_request: (required) + :type dlp_rule_create_request: DLPRuleCreateRequest + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores 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_ai_guardrails_dlp_rule_serialize( + dlp_rule_create_request=dlp_rule_create_request, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '201': "DLPRule", + '400': "ApiErrorResponse", + '500': "ApiErrorResponse", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ).data + + + @validate_call + def create_ai_guardrails_dlp_rule_with_http_info( + self, + dlp_rule_create_request: DLPRuleCreateRequest, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[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[DLPRule]: + """Create AI Guardrails Rule + + Create an AI Guardrails DLP rule with the specified properties. + + :param dlp_rule_create_request: (required) + :type dlp_rule_create_request: DLPRuleCreateRequest + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores 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_ai_guardrails_dlp_rule_serialize( + dlp_rule_create_request=dlp_rule_create_request, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '201': "DLPRule", + '400': "ApiErrorResponse", + '500': "ApiErrorResponse", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ) + + + @validate_call + def create_ai_guardrails_dlp_rule_without_preload_content( + self, + dlp_rule_create_request: DLPRuleCreateRequest, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[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 AI Guardrails Rule + + Create an AI Guardrails DLP rule with the specified properties. + + :param dlp_rule_create_request: (required) + :type dlp_rule_create_request: DLPRuleCreateRequest + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores 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_ai_guardrails_dlp_rule_serialize( + dlp_rule_create_request=dlp_rule_create_request, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '201': "DLPRule", + '400': "ApiErrorResponse", + '500': "ApiErrorResponse", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _create_ai_guardrails_dlp_rule_serialize( + self, + dlp_rule_create_request, + _request_auth, + _content_type, + _headers, + _host_index, + ) -> RequestSerialized: + + _host = None + + _collection_formats: Dict[str, str] = { + } + + _path_params: Dict[str, str] = {} + _query_params: List[Tuple[str, str]] = [] + _header_params: Dict[str, Optional[str]] = _headers or {} + _form_params: List[Tuple[str, str]] = [] + _files: Dict[ + str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] + ] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + # process the query parameters + # process the header parameters + # process the form parameters + # process the body parameter + if dlp_rule_create_request is not None: + _body_params = dlp_rule_create_request + + + # set the HTTP header `Accept` + if 'Accept' not in _header_params: + _header_params['Accept'] = self.api_client.select_header_accept( + [ + 'application/json' + ] + ) + + # set the HTTP header `Content-Type` + if _content_type: + _header_params['Content-Type'] = _content_type + else: + _default_content_type = ( + self.api_client.select_header_content_type( + [ + 'application/json' + ] + ) + ) + if _default_content_type is not None: + _header_params['Content-Type'] = _default_content_type + + # authentication setting + _auth_settings: List[str] = [ + 'oauthFlow' + ] + + return self.api_client.param_serialize( + method='POST', + resource_path='/policies/v2/dlp/aiGuardrails/rules', + path_params=_path_params, + query_params=_query_params, + header_params=_header_params, + body=_body_params, + post_params=_form_params, + files=_files, + auth_settings=_auth_settings, + collection_formats=_collection_formats, + _host=_host, + _request_auth=_request_auth + ) + + + + + @validate_call + def create_real_time_dlp_rule( + self, + dlp_rule_create_request: DLPRuleCreateRequest, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> DLPRule: + """Create Real-Time DLP Rule + + Create a real-time DLP rule with the specified properties. + + :param dlp_rule_create_request: (required) + :type dlp_rule_create_request: DLPRuleCreateRequest + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores 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_real_time_dlp_rule_serialize( + dlp_rule_create_request=dlp_rule_create_request, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '201': "DLPRule", + '400': "ApiErrorResponse", + '500': "ApiErrorResponse", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ).data + + + @validate_call + def create_real_time_dlp_rule_with_http_info( + self, + dlp_rule_create_request: DLPRuleCreateRequest, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[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[DLPRule]: + """Create Real-Time DLP Rule + + Create a real-time DLP rule with the specified properties. + + :param dlp_rule_create_request: (required) + :type dlp_rule_create_request: DLPRuleCreateRequest + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores 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_real_time_dlp_rule_serialize( + dlp_rule_create_request=dlp_rule_create_request, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '201': "DLPRule", + '400': "ApiErrorResponse", + '500': "ApiErrorResponse", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ) + + + @validate_call + def create_real_time_dlp_rule_without_preload_content( + self, + dlp_rule_create_request: DLPRuleCreateRequest, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[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 Real-Time DLP Rule + + Create a real-time DLP rule with the specified properties. + + :param dlp_rule_create_request: (required) + :type dlp_rule_create_request: DLPRuleCreateRequest + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores 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_real_time_dlp_rule_serialize( + dlp_rule_create_request=dlp_rule_create_request, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '201': "DLPRule", + '400': "ApiErrorResponse", + '500': "ApiErrorResponse", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _create_real_time_dlp_rule_serialize( + self, + dlp_rule_create_request, + _request_auth, + _content_type, + _headers, + _host_index, + ) -> RequestSerialized: + + _host = None + + _collection_formats: Dict[str, str] = { + } + + _path_params: Dict[str, str] = {} + _query_params: List[Tuple[str, str]] = [] + _header_params: Dict[str, Optional[str]] = _headers or {} + _form_params: List[Tuple[str, str]] = [] + _files: Dict[ + str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] + ] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + # process the query parameters + # process the header parameters + # process the form parameters + # process the body parameter + if dlp_rule_create_request is not None: + _body_params = dlp_rule_create_request + + + # set the HTTP header `Accept` + if 'Accept' not in _header_params: + _header_params['Accept'] = self.api_client.select_header_accept( + [ + 'application/json' + ] + ) + + # set the HTTP header `Content-Type` + if _content_type: + _header_params['Content-Type'] = _content_type + else: + _default_content_type = ( + self.api_client.select_header_content_type( + [ + 'application/json' + ] + ) + ) + if _default_content_type is not None: + _header_params['Content-Type'] = _default_content_type + + # authentication setting + _auth_settings: List[str] = [ + 'oauthFlow' + ] + + return self.api_client.param_serialize( + method='POST', + resource_path='/policies/v2/dlp/realTime/rules', + path_params=_path_params, + query_params=_query_params, + header_params=_header_params, + body=_body_params, + post_params=_form_params, + files=_files, + auth_settings=_auth_settings, + collection_formats=_collection_formats, + _host=_host, + _request_auth=_request_auth + ) + + + + + @validate_call + def create_saas_api_dlp_rule( + self, + oob_rule_create_request: OOBRuleCreateRequest, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> OOBRuleResponse: + """Create SaaS API DLP Rule + + Create an Out-of-Band SaaS API DLP rule. The default value of the `action` field is `MONITOR`. + + :param oob_rule_create_request: (required) + :type oob_rule_create_request: OOBRuleCreateRequest + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores 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_saas_api_dlp_rule_serialize( + oob_rule_create_request=oob_rule_create_request, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '201': "OOBRuleResponse", + '400': "ApiErrorResponse", + '500': "ApiErrorResponse", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ).data + + + @validate_call + def create_saas_api_dlp_rule_with_http_info( + self, + oob_rule_create_request: OOBRuleCreateRequest, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[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[OOBRuleResponse]: + """Create SaaS API DLP Rule + + Create an Out-of-Band SaaS API DLP rule. The default value of the `action` field is `MONITOR`. + + :param oob_rule_create_request: (required) + :type oob_rule_create_request: OOBRuleCreateRequest + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores 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_saas_api_dlp_rule_serialize( + oob_rule_create_request=oob_rule_create_request, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '201': "OOBRuleResponse", + '400': "ApiErrorResponse", + '500': "ApiErrorResponse", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ) + + + @validate_call + def create_saas_api_dlp_rule_without_preload_content( + self, + oob_rule_create_request: OOBRuleCreateRequest, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[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 SaaS API DLP Rule + + Create an Out-of-Band SaaS API DLP rule. The default value of the `action` field is `MONITOR`. + + :param oob_rule_create_request: (required) + :type oob_rule_create_request: OOBRuleCreateRequest + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores 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_saas_api_dlp_rule_serialize( + oob_rule_create_request=oob_rule_create_request, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '201': "OOBRuleResponse", + '400': "ApiErrorResponse", + '500': "ApiErrorResponse", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _create_saas_api_dlp_rule_serialize( + self, + oob_rule_create_request, + _request_auth, + _content_type, + _headers, + _host_index, + ) -> RequestSerialized: + + _host = None + + _collection_formats: Dict[str, str] = { + } + + _path_params: Dict[str, str] = {} + _query_params: List[Tuple[str, str]] = [] + _header_params: Dict[str, Optional[str]] = _headers or {} + _form_params: List[Tuple[str, str]] = [] + _files: Dict[ + str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] + ] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + # process the query parameters + # process the header parameters + # process the form parameters + # process the body parameter + if oob_rule_create_request is not None: + _body_params = oob_rule_create_request + + + # set the HTTP header `Accept` + if 'Accept' not in _header_params: + _header_params['Accept'] = self.api_client.select_header_accept( + [ + 'application/json' + ] + ) + + # set the HTTP header `Content-Type` + if _content_type: + _header_params['Content-Type'] = _content_type + else: + _default_content_type = ( + self.api_client.select_header_content_type( + [ + 'application/json' + ] + ) + ) + if _default_content_type is not None: + _header_params['Content-Type'] = _default_content_type + + # authentication setting + _auth_settings: List[str] = [ + 'oauthFlow' + ] + + return self.api_client.param_serialize( + method='POST', + resource_path='/policies/v2/dlp/saasApi/rules', + 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_rule( + self, + rule_type: Annotated[StrictStr, Field(description="The type of the DLP rule, either `saasApi`, `realTime`, or `aiGuardrails`.")], + id: Annotated[UUID, Field(description="The unique identifier of the DLP rule.")], + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[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 DLP Rule + + Delete the DLP rule with the specified rule type. The type of the DLP rule is either `SaaSAPI`, `RealTime`, or `AI Guardrails`. + + :param rule_type: The type of the DLP rule, either `saasApi`, `realTime`, or `aiGuardrails`. (required) + :type rule_type: str + :param id: The unique identifier of the DLP rule. (required) + :type id: UUID + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores 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_rule_serialize( + rule_type=rule_type, + id=id, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '204': None, + '400': "ApiErrorResponse", + '404': "ApiErrorResponse", + '500': "ApiErrorResponse", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ).data + + + @validate_call + def delete_rule_with_http_info( + self, + rule_type: Annotated[StrictStr, Field(description="The type of the DLP rule, either `saasApi`, `realTime`, or `aiGuardrails`.")], + id: Annotated[UUID, Field(description="The unique identifier of the DLP rule.")], + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[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 DLP Rule + + Delete the DLP rule with the specified rule type. The type of the DLP rule is either `SaaSAPI`, `RealTime`, or `AI Guardrails`. + + :param rule_type: The type of the DLP rule, either `saasApi`, `realTime`, or `aiGuardrails`. (required) + :type rule_type: str + :param id: The unique identifier of the DLP rule. (required) + :type id: UUID + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores 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_rule_serialize( + rule_type=rule_type, + id=id, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '204': None, + '400': "ApiErrorResponse", + '404': "ApiErrorResponse", + '500': "ApiErrorResponse", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ) + + + @validate_call + def delete_rule_without_preload_content( + self, + rule_type: Annotated[StrictStr, Field(description="The type of the DLP rule, either `saasApi`, `realTime`, or `aiGuardrails`.")], + id: Annotated[UUID, Field(description="The unique identifier of the DLP rule.")], + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[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 DLP Rule + + Delete the DLP rule with the specified rule type. The type of the DLP rule is either `SaaSAPI`, `RealTime`, or `AI Guardrails`. + + :param rule_type: The type of the DLP rule, either `saasApi`, `realTime`, or `aiGuardrails`. (required) + :type rule_type: str + :param id: The unique identifier of the DLP rule. (required) + :type id: UUID + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores 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_rule_serialize( + rule_type=rule_type, + id=id, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '204': None, + '400': "ApiErrorResponse", + '404': "ApiErrorResponse", + '500': "ApiErrorResponse", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _delete_rule_serialize( + self, + rule_type, + id, + _request_auth, + _content_type, + _headers, + _host_index, + ) -> RequestSerialized: + + _host = None + + _collection_formats: Dict[str, str] = { + } + + _path_params: Dict[str, str] = {} + _query_params: List[Tuple[str, str]] = [] + _header_params: Dict[str, Optional[str]] = _headers or {} + _form_params: List[Tuple[str, str]] = [] + _files: Dict[ + str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] + ] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + if rule_type is not None: + _path_params['ruleType'] = rule_type + if id is not None: + _path_params['id'] = id + # process the query parameters + # process the header parameters + # process the form parameters + # process the body parameter + + + # set the HTTP header `Accept` + if 'Accept' not in _header_params: + _header_params['Accept'] = self.api_client.select_header_accept( + [ + 'application/json' + ] + ) + + + # authentication setting + _auth_settings: List[str] = [ + 'oauthFlow' + ] + + return self.api_client.param_serialize( + method='DELETE', + resource_path='/policies/v2/dlp/{ruleType}/rules/{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_ai_guardrails_dlp_rule_by_id( + self, + id: Annotated[UUID, Field(description="The unique identifier of the AI Guardrails DLP rule.")], + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> DLPRule: + """Get AI Guardrails DLP Rule + + Get the properties of the AI Guardrails DLP rule. + + :param id: The unique identifier of the AI Guardrails DLP rule. (required) + :type id: UUID + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores 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_ai_guardrails_dlp_rule_by_id_serialize( + id=id, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "DLPRule", + '400': "ApiErrorResponse", + '404': "ApiErrorResponse", + '500': "ApiErrorResponse", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ).data + + + @validate_call + def get_ai_guardrails_dlp_rule_by_id_with_http_info( + self, + id: Annotated[UUID, Field(description="The unique identifier of the AI Guardrails DLP rule.")], + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[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[DLPRule]: + """Get AI Guardrails DLP Rule + + Get the properties of the AI Guardrails DLP rule. + + :param id: The unique identifier of the AI Guardrails DLP rule. (required) + :type id: UUID + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores 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_ai_guardrails_dlp_rule_by_id_serialize( + id=id, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "DLPRule", + '400': "ApiErrorResponse", + '404': "ApiErrorResponse", + '500': "ApiErrorResponse", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ) + + + @validate_call + def get_ai_guardrails_dlp_rule_by_id_without_preload_content( + self, + id: Annotated[UUID, Field(description="The unique identifier of the AI Guardrails DLP rule.")], + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> RESTResponseType: + """Get AI Guardrails DLP Rule + + Get the properties of the AI Guardrails DLP rule. + + :param id: The unique identifier of the AI Guardrails DLP rule. (required) + :type id: UUID + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores 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_ai_guardrails_dlp_rule_by_id_serialize( + id=id, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "DLPRule", + '400': "ApiErrorResponse", + '404': "ApiErrorResponse", + '500': "ApiErrorResponse", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _get_ai_guardrails_dlp_rule_by_id_serialize( + self, + id, + _request_auth, + _content_type, + _headers, + _host_index, + ) -> RequestSerialized: + + _host = None + + _collection_formats: Dict[str, str] = { + } + + _path_params: Dict[str, str] = {} + _query_params: List[Tuple[str, str]] = [] + _header_params: Dict[str, Optional[str]] = _headers or {} + _form_params: List[Tuple[str, str]] = [] + _files: Dict[ + str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] + ] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + if id is not None: + _path_params['id'] = id + # process the query parameters + # process the header parameters + # process the form parameters + # process the body parameter + + + # set the HTTP header `Accept` + if 'Accept' not in _header_params: + _header_params['Accept'] = self.api_client.select_header_accept( + [ + 'application/json' + ] + ) + + + # authentication setting + _auth_settings: List[str] = [ + 'oauthFlow' + ] + + return self.api_client.param_serialize( + method='GET', + resource_path='/policies/v2/dlp/aiGuardrails/rules/{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_all_ai_guardrails_dlp_rules( + self, + name: Annotated[Optional[StrictStr], Field(description="The name of the AI Guardrails DLP rule. The value of `name` is case insensitive and the system allows partial matches.")] = None, + limit: Annotated[Optional[Annotated[int, Field(le=100, strict=True, ge=1)]], Field(description="The number of records returned by the system in the response. The maximum number of items that are allowed in the response is 100. The default number of items returned in the response is 50.")] = None, + offset: Annotated[Optional[StrictInt], Field(description="The numeric offset into the collection used for pagination. Set the `offset` to skip the number of records from the collection in the response. The default value is `0`. ")] = None, + fields: Annotated[Optional[List[StrictStr]], Field(description="A comma-separated list of fields to include in the 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, + ) -> List[DLPRuleListItem]: + """List AI Guardrails DLP Rules + + List the AI Guardrails Data Loss Prevention (DLP) rules. You can query the data identifiers using the `name` parameter. Use the `fields` query parameter to include additional fields in the response. + + :param name: The name of the AI Guardrails DLP rule. The value of `name` is case insensitive and the system allows partial matches. + :type name: str + :param limit: The number of records returned by the system in the response. The maximum number of items that are allowed in the response is 100. The default number of items returned in the response is 50. + :type limit: int + :param offset: The numeric offset into the collection used for pagination. Set the `offset` to skip the number of records from the collection in the response. The default value is `0`. + :type offset: int + :param fields: A comma-separated list of fields to include in the response. + :type fields: List[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_all_ai_guardrails_dlp_rules_serialize( + name=name, + limit=limit, + offset=offset, + fields=fields, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "List[DLPRuleListItem]", + '400': "ApiErrorResponse", + '500': "ApiErrorResponse", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ).data + + + @validate_call + def get_all_ai_guardrails_dlp_rules_with_http_info( + self, + name: Annotated[Optional[StrictStr], Field(description="The name of the AI Guardrails DLP rule. The value of `name` is case insensitive and the system allows partial matches.")] = None, + limit: Annotated[Optional[Annotated[int, Field(le=100, strict=True, ge=1)]], Field(description="The number of records returned by the system in the response. The maximum number of items that are allowed in the response is 100. The default number of items returned in the response is 50.")] = None, + offset: Annotated[Optional[StrictInt], Field(description="The numeric offset into the collection used for pagination. Set the `offset` to skip the number of records from the collection in the response. The default value is `0`. ")] = None, + fields: Annotated[Optional[List[StrictStr]], Field(description="A comma-separated list of fields to include in the 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[List[DLPRuleListItem]]: + """List AI Guardrails DLP Rules + + List the AI Guardrails Data Loss Prevention (DLP) rules. You can query the data identifiers using the `name` parameter. Use the `fields` query parameter to include additional fields in the response. + + :param name: The name of the AI Guardrails DLP rule. The value of `name` is case insensitive and the system allows partial matches. + :type name: str + :param limit: The number of records returned by the system in the response. The maximum number of items that are allowed in the response is 100. The default number of items returned in the response is 50. + :type limit: int + :param offset: The numeric offset into the collection used for pagination. Set the `offset` to skip the number of records from the collection in the response. The default value is `0`. + :type offset: int + :param fields: A comma-separated list of fields to include in the response. + :type fields: List[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_all_ai_guardrails_dlp_rules_serialize( + name=name, + limit=limit, + offset=offset, + fields=fields, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "List[DLPRuleListItem]", + '400': "ApiErrorResponse", + '500': "ApiErrorResponse", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ) + + + @validate_call + def get_all_ai_guardrails_dlp_rules_without_preload_content( + self, + name: Annotated[Optional[StrictStr], Field(description="The name of the AI Guardrails DLP rule. The value of `name` is case insensitive and the system allows partial matches.")] = None, + limit: Annotated[Optional[Annotated[int, Field(le=100, strict=True, ge=1)]], Field(description="The number of records returned by the system in the response. The maximum number of items that are allowed in the response is 100. The default number of items returned in the response is 50.")] = None, + offset: Annotated[Optional[StrictInt], Field(description="The numeric offset into the collection used for pagination. Set the `offset` to skip the number of records from the collection in the response. The default value is `0`. ")] = None, + fields: Annotated[Optional[List[StrictStr]], Field(description="A comma-separated list of fields to include in the 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 AI Guardrails DLP Rules + + List the AI Guardrails Data Loss Prevention (DLP) rules. You can query the data identifiers using the `name` parameter. Use the `fields` query parameter to include additional fields in the response. + + :param name: The name of the AI Guardrails DLP rule. The value of `name` is case insensitive and the system allows partial matches. + :type name: str + :param limit: The number of records returned by the system in the response. The maximum number of items that are allowed in the response is 100. The default number of items returned in the response is 50. + :type limit: int + :param offset: The numeric offset into the collection used for pagination. Set the `offset` to skip the number of records from the collection in the response. The default value is `0`. + :type offset: int + :param fields: A comma-separated list of fields to include in the response. + :type fields: List[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_all_ai_guardrails_dlp_rules_serialize( + name=name, + limit=limit, + offset=offset, + fields=fields, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "List[DLPRuleListItem]", + '400': "ApiErrorResponse", + '500': "ApiErrorResponse", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _get_all_ai_guardrails_dlp_rules_serialize( + self, + name, + limit, + offset, + fields, + _request_auth, + _content_type, + _headers, + _host_index, + ) -> RequestSerialized: + + _host = None + + _collection_formats: Dict[str, str] = { + 'fields': 'csv', + } + + _path_params: Dict[str, str] = {} + _query_params: List[Tuple[str, str]] = [] + _header_params: Dict[str, Optional[str]] = _headers or {} + _form_params: List[Tuple[str, str]] = [] + _files: Dict[ + str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] + ] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + # process the query parameters + if name is not None: + + _query_params.append(('name', name)) + + if limit is not None: + + _query_params.append(('limit', limit)) + + if offset is not None: + + _query_params.append(('offset', offset)) + + if fields is not None: + + _query_params.append(('fields', fields)) + + # process the header parameters + # process the form parameters + # process the body parameter + + + # set the HTTP header `Accept` + if 'Accept' not in _header_params: + _header_params['Accept'] = self.api_client.select_header_accept( + [ + 'application/json' + ] + ) + + + # authentication setting + _auth_settings: List[str] = [ + 'oauthFlow' + ] + + return self.api_client.param_serialize( + method='GET', + resource_path='/policies/v2/dlp/aiGuardrails/rules', + 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_all_real_time_dlp_rules( + self, + name: Annotated[Optional[StrictStr], Field(description="The name of the real-time DLP rule. The value of `name` is case insensitive and the system allows partial matches.")] = None, + limit: Annotated[Optional[Annotated[int, Field(le=100, strict=True, ge=1)]], Field(description="The number of records returned by the system in the response. The maximum number of items that are allowed in the response is 100. The default number of items returned in the response is 50.")] = None, + offset: Annotated[Optional[StrictInt], Field(description="The numeric offset into the collection used for pagination. Set the `offset` to skip the number of records from the collection in the response. The default value is `0`. ")] = None, + fields: Annotated[Optional[List[StrictStr]], Field(description="A comma-separated list of fields to include in the 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, + ) -> List[DLPRuleListItem]: + """List Real-Time DLP Rules + + List the real-time Data Loss Prevention (DLP) rules. You can query the data identifiers using the `name` parameter. Use the `fields` query parameter to include additional fields in the response. + + :param name: The name of the real-time DLP rule. The value of `name` is case insensitive and the system allows partial matches. + :type name: str + :param limit: The number of records returned by the system in the response. The maximum number of items that are allowed in the response is 100. The default number of items returned in the response is 50. + :type limit: int + :param offset: The numeric offset into the collection used for pagination. Set the `offset` to skip the number of records from the collection in the response. The default value is `0`. + :type offset: int + :param fields: A comma-separated list of fields to include in the response. + :type fields: List[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_all_real_time_dlp_rules_serialize( + name=name, + limit=limit, + offset=offset, + fields=fields, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "List[DLPRuleListItem]", + '400': "ApiErrorResponse", + '500': "ApiErrorResponse", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ).data + + + @validate_call + def get_all_real_time_dlp_rules_with_http_info( + self, + name: Annotated[Optional[StrictStr], Field(description="The name of the real-time DLP rule. The value of `name` is case insensitive and the system allows partial matches.")] = None, + limit: Annotated[Optional[Annotated[int, Field(le=100, strict=True, ge=1)]], Field(description="The number of records returned by the system in the response. The maximum number of items that are allowed in the response is 100. The default number of items returned in the response is 50.")] = None, + offset: Annotated[Optional[StrictInt], Field(description="The numeric offset into the collection used for pagination. Set the `offset` to skip the number of records from the collection in the response. The default value is `0`. ")] = None, + fields: Annotated[Optional[List[StrictStr]], Field(description="A comma-separated list of fields to include in the 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[List[DLPRuleListItem]]: + """List Real-Time DLP Rules + + List the real-time Data Loss Prevention (DLP) rules. You can query the data identifiers using the `name` parameter. Use the `fields` query parameter to include additional fields in the response. + + :param name: The name of the real-time DLP rule. The value of `name` is case insensitive and the system allows partial matches. + :type name: str + :param limit: The number of records returned by the system in the response. The maximum number of items that are allowed in the response is 100. The default number of items returned in the response is 50. + :type limit: int + :param offset: The numeric offset into the collection used for pagination. Set the `offset` to skip the number of records from the collection in the response. The default value is `0`. + :type offset: int + :param fields: A comma-separated list of fields to include in the response. + :type fields: List[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_all_real_time_dlp_rules_serialize( + name=name, + limit=limit, + offset=offset, + fields=fields, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "List[DLPRuleListItem]", + '400': "ApiErrorResponse", + '500': "ApiErrorResponse", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ) + + + @validate_call + def get_all_real_time_dlp_rules_without_preload_content( + self, + name: Annotated[Optional[StrictStr], Field(description="The name of the real-time DLP rule. The value of `name` is case insensitive and the system allows partial matches.")] = None, + limit: Annotated[Optional[Annotated[int, Field(le=100, strict=True, ge=1)]], Field(description="The number of records returned by the system in the response. The maximum number of items that are allowed in the response is 100. The default number of items returned in the response is 50.")] = None, + offset: Annotated[Optional[StrictInt], Field(description="The numeric offset into the collection used for pagination. Set the `offset` to skip the number of records from the collection in the response. The default value is `0`. ")] = None, + fields: Annotated[Optional[List[StrictStr]], Field(description="A comma-separated list of fields to include in the 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 Real-Time DLP Rules + + List the real-time Data Loss Prevention (DLP) rules. You can query the data identifiers using the `name` parameter. Use the `fields` query parameter to include additional fields in the response. + + :param name: The name of the real-time DLP rule. The value of `name` is case insensitive and the system allows partial matches. + :type name: str + :param limit: The number of records returned by the system in the response. The maximum number of items that are allowed in the response is 100. The default number of items returned in the response is 50. + :type limit: int + :param offset: The numeric offset into the collection used for pagination. Set the `offset` to skip the number of records from the collection in the response. The default value is `0`. + :type offset: int + :param fields: A comma-separated list of fields to include in the response. + :type fields: List[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_all_real_time_dlp_rules_serialize( + name=name, + limit=limit, + offset=offset, + fields=fields, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "List[DLPRuleListItem]", + '400': "ApiErrorResponse", + '500': "ApiErrorResponse", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _get_all_real_time_dlp_rules_serialize( + self, + name, + limit, + offset, + fields, + _request_auth, + _content_type, + _headers, + _host_index, + ) -> RequestSerialized: + + _host = None + + _collection_formats: Dict[str, str] = { + 'fields': 'csv', + } + + _path_params: Dict[str, str] = {} + _query_params: List[Tuple[str, str]] = [] + _header_params: Dict[str, Optional[str]] = _headers or {} + _form_params: List[Tuple[str, str]] = [] + _files: Dict[ + str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] + ] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + # process the query parameters + if name is not None: + + _query_params.append(('name', name)) + + if limit is not None: + + _query_params.append(('limit', limit)) + + if offset is not None: + + _query_params.append(('offset', offset)) + + if fields is not None: + + _query_params.append(('fields', fields)) + + # process the header parameters + # process the form parameters + # process the body parameter + + + # set the HTTP header `Accept` + if 'Accept' not in _header_params: + _header_params['Accept'] = self.api_client.select_header_accept( + [ + 'application/json' + ] + ) + + + # authentication setting + _auth_settings: List[str] = [ + 'oauthFlow' + ] + + return self.api_client.param_serialize( + method='GET', + resource_path='/policies/v2/dlp/realTime/rules', + 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_all_saas_api_dlp_rules( + self, + name: Annotated[Optional[StrictStr], Field(description="The name of the SaaS API DLP rule. The value of `name` is case insensitive and the system allows partial matches.")] = None, + limit: Annotated[Optional[Annotated[int, Field(le=100, strict=True, ge=1)]], Field(description="The number of records returned by the system in the response. The maximum number of items that are allowed in the response is 100. The default number of items returned in the response is 50.")] = None, + offset: Annotated[Optional[StrictInt], Field(description="The numeric offset into the collection used for pagination. Set the `offset` to skip the number of records from the collection in the response. The default value is `0`. ")] = None, + fields: Annotated[Optional[List[StrictStr]], Field(description="A comma-separated list of fields to include in the 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, + ) -> List[DLPRuleListItem]: + """List SaaS API DLP Rules + + List the SaaS API (Out-of-Band) DLP rules. + + :param name: The name of the SaaS API DLP rule. The value of `name` is case insensitive and the system allows partial matches. + :type name: str + :param limit: The number of records returned by the system in the response. The maximum number of items that are allowed in the response is 100. The default number of items returned in the response is 50. + :type limit: int + :param offset: The numeric offset into the collection used for pagination. Set the `offset` to skip the number of records from the collection in the response. The default value is `0`. + :type offset: int + :param fields: A comma-separated list of fields to include in the response. + :type fields: List[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_all_saas_api_dlp_rules_serialize( + name=name, + limit=limit, + offset=offset, + fields=fields, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "List[DLPRuleListItem]", + '400': "ApiErrorResponse", + '500': "ApiErrorResponse", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ).data + + + @validate_call + def get_all_saas_api_dlp_rules_with_http_info( + self, + name: Annotated[Optional[StrictStr], Field(description="The name of the SaaS API DLP rule. The value of `name` is case insensitive and the system allows partial matches.")] = None, + limit: Annotated[Optional[Annotated[int, Field(le=100, strict=True, ge=1)]], Field(description="The number of records returned by the system in the response. The maximum number of items that are allowed in the response is 100. The default number of items returned in the response is 50.")] = None, + offset: Annotated[Optional[StrictInt], Field(description="The numeric offset into the collection used for pagination. Set the `offset` to skip the number of records from the collection in the response. The default value is `0`. ")] = None, + fields: Annotated[Optional[List[StrictStr]], Field(description="A comma-separated list of fields to include in the 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[List[DLPRuleListItem]]: + """List SaaS API DLP Rules + + List the SaaS API (Out-of-Band) DLP rules. + + :param name: The name of the SaaS API DLP rule. The value of `name` is case insensitive and the system allows partial matches. + :type name: str + :param limit: The number of records returned by the system in the response. The maximum number of items that are allowed in the response is 100. The default number of items returned in the response is 50. + :type limit: int + :param offset: The numeric offset into the collection used for pagination. Set the `offset` to skip the number of records from the collection in the response. The default value is `0`. + :type offset: int + :param fields: A comma-separated list of fields to include in the response. + :type fields: List[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_all_saas_api_dlp_rules_serialize( + name=name, + limit=limit, + offset=offset, + fields=fields, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "List[DLPRuleListItem]", + '400': "ApiErrorResponse", + '500': "ApiErrorResponse", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ) + + + @validate_call + def get_all_saas_api_dlp_rules_without_preload_content( + self, + name: Annotated[Optional[StrictStr], Field(description="The name of the SaaS API DLP rule. The value of `name` is case insensitive and the system allows partial matches.")] = None, + limit: Annotated[Optional[Annotated[int, Field(le=100, strict=True, ge=1)]], Field(description="The number of records returned by the system in the response. The maximum number of items that are allowed in the response is 100. The default number of items returned in the response is 50.")] = None, + offset: Annotated[Optional[StrictInt], Field(description="The numeric offset into the collection used for pagination. Set the `offset` to skip the number of records from the collection in the response. The default value is `0`. ")] = None, + fields: Annotated[Optional[List[StrictStr]], Field(description="A comma-separated list of fields to include in the 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 SaaS API DLP Rules + + List the SaaS API (Out-of-Band) DLP rules. + + :param name: The name of the SaaS API DLP rule. The value of `name` is case insensitive and the system allows partial matches. + :type name: str + :param limit: The number of records returned by the system in the response. The maximum number of items that are allowed in the response is 100. The default number of items returned in the response is 50. + :type limit: int + :param offset: The numeric offset into the collection used for pagination. Set the `offset` to skip the number of records from the collection in the response. The default value is `0`. + :type offset: int + :param fields: A comma-separated list of fields to include in the response. + :type fields: List[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_all_saas_api_dlp_rules_serialize( + name=name, + limit=limit, + offset=offset, + fields=fields, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "List[DLPRuleListItem]", + '400': "ApiErrorResponse", + '500': "ApiErrorResponse", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _get_all_saas_api_dlp_rules_serialize( + self, + name, + limit, + offset, + fields, + _request_auth, + _content_type, + _headers, + _host_index, + ) -> RequestSerialized: + + _host = None + + _collection_formats: Dict[str, str] = { + 'fields': 'csv', + } + + _path_params: Dict[str, str] = {} + _query_params: List[Tuple[str, str]] = [] + _header_params: Dict[str, Optional[str]] = _headers or {} + _form_params: List[Tuple[str, str]] = [] + _files: Dict[ + str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] + ] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + # process the query parameters + if name is not None: + + _query_params.append(('name', name)) + + if limit is not None: + + _query_params.append(('limit', limit)) + + if offset is not None: + + _query_params.append(('offset', offset)) + + if fields is not None: + + _query_params.append(('fields', fields)) + + # process the header parameters + # process the form parameters + # process the body parameter + + + # set the HTTP header `Accept` + if 'Accept' not in _header_params: + _header_params['Accept'] = self.api_client.select_header_accept( + [ + 'application/json' + ] + ) + + + # authentication setting + _auth_settings: List[str] = [ + 'oauthFlow' + ] + + return self.api_client.param_serialize( + method='GET', + resource_path='/policies/v2/dlp/saasApi/rules', + 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_real_time_dlp_rule_by_id( + self, + id: Annotated[UUID, Field(description="The unique identifier of the real-time DLP rule.")], + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> DLPRule: + """Get Real-Time DLP Rule + + Get the properties of the real-time DLP rule. + + :param id: The unique identifier of the real-time DLP rule. (required) + :type id: UUID + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores 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_real_time_dlp_rule_by_id_serialize( + id=id, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "DLPRule", + '400': "ApiErrorResponse", + '404': "ApiErrorResponse", + '500': "ApiErrorResponse", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ).data + + + @validate_call + def get_real_time_dlp_rule_by_id_with_http_info( + self, + id: Annotated[UUID, Field(description="The unique identifier of the real-time DLP rule.")], + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[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[DLPRule]: + """Get Real-Time DLP Rule + + Get the properties of the real-time DLP rule. + + :param id: The unique identifier of the real-time DLP rule. (required) + :type id: UUID + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores 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_real_time_dlp_rule_by_id_serialize( + id=id, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "DLPRule", + '400': "ApiErrorResponse", + '404': "ApiErrorResponse", + '500': "ApiErrorResponse", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ) + + + @validate_call + def get_real_time_dlp_rule_by_id_without_preload_content( + self, + id: Annotated[UUID, Field(description="The unique identifier of the real-time DLP rule.")], + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[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 Real-Time DLP Rule + + Get the properties of the real-time DLP rule. + + :param id: The unique identifier of the real-time DLP rule. (required) + :type id: UUID + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores 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_real_time_dlp_rule_by_id_serialize( + id=id, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "DLPRule", + '400': "ApiErrorResponse", + '404': "ApiErrorResponse", + '500': "ApiErrorResponse", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _get_real_time_dlp_rule_by_id_serialize( + self, + id, + _request_auth, + _content_type, + _headers, + _host_index, + ) -> RequestSerialized: + + _host = None + + _collection_formats: Dict[str, str] = { + } + + _path_params: Dict[str, str] = {} + _query_params: List[Tuple[str, str]] = [] + _header_params: Dict[str, Optional[str]] = _headers or {} + _form_params: List[Tuple[str, str]] = [] + _files: Dict[ + str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] + ] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + if id is not None: + _path_params['id'] = id + # process the query parameters + # process the header parameters + # process the form parameters + # process the body parameter + + + # set the HTTP header `Accept` + if 'Accept' not in _header_params: + _header_params['Accept'] = self.api_client.select_header_accept( + [ + 'application/json' + ] + ) + + + # authentication setting + _auth_settings: List[str] = [ + 'oauthFlow' + ] + + return self.api_client.param_serialize( + method='GET', + resource_path='/policies/v2/dlp/realTime/rules/{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_saas_api_dlp_rule_by_id( + self, + id: Annotated[UUID, Field(description="The unique identifier of the SaaS API DLP rule.")], + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> OOBRuleResponse: + """Get SaaS API DLP Rule + + Get the properties of the SaaS API (Out-of-Band) DLP rule. + + :param id: The unique identifier of the SaaS API DLP rule. (required) + :type id: UUID + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores 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_saas_api_dlp_rule_by_id_serialize( + id=id, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "OOBRuleResponse", + '400': "ApiErrorResponse", + '404': "ApiErrorResponse", + '500': "ApiErrorResponse", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ).data + + + @validate_call + def get_saas_api_dlp_rule_by_id_with_http_info( + self, + id: Annotated[UUID, Field(description="The unique identifier of the SaaS API DLP rule.")], + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[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[OOBRuleResponse]: + """Get SaaS API DLP Rule + + Get the properties of the SaaS API (Out-of-Band) DLP rule. + + :param id: The unique identifier of the SaaS API DLP rule. (required) + :type id: UUID + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores 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_saas_api_dlp_rule_by_id_serialize( + id=id, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "OOBRuleResponse", + '400': "ApiErrorResponse", + '404': "ApiErrorResponse", + '500': "ApiErrorResponse", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ) + + + @validate_call + def get_saas_api_dlp_rule_by_id_without_preload_content( + self, + id: Annotated[UUID, Field(description="The unique identifier of the SaaS API DLP rule.")], + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[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 SaaS API DLP Rule + + Get the properties of the SaaS API (Out-of-Band) DLP rule. + + :param id: The unique identifier of the SaaS API DLP rule. (required) + :type id: UUID + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores 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_saas_api_dlp_rule_by_id_serialize( + id=id, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "OOBRuleResponse", + '400': "ApiErrorResponse", + '404': "ApiErrorResponse", + '500': "ApiErrorResponse", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _get_saas_api_dlp_rule_by_id_serialize( + self, + id, + _request_auth, + _content_type, + _headers, + _host_index, + ) -> RequestSerialized: + + _host = None + + _collection_formats: Dict[str, str] = { + } + + _path_params: Dict[str, str] = {} + _query_params: List[Tuple[str, str]] = [] + _header_params: Dict[str, Optional[str]] = _headers or {} + _form_params: List[Tuple[str, str]] = [] + _files: Dict[ + str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] + ] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + if id is not None: + _path_params['id'] = id + # process the query parameters + # process the header parameters + # process the form parameters + # process the body parameter + + + # set the HTTP header `Accept` + if 'Accept' not in _header_params: + _header_params['Accept'] = self.api_client.select_header_accept( + [ + 'application/json' + ] + ) + + + # authentication setting + _auth_settings: List[str] = [ + 'oauthFlow' + ] + + return self.api_client.param_serialize( + method='GET', + resource_path='/policies/v2/dlp/saasApi/rules/{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 update_ai_guardrails_dlp_rule( + self, + id: Annotated[UUID, Field(description="The unique identifier of the AI Guardrails DLP rule.")], + dlp_rule_patch_request: DLPRulePatchRequest, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> DLPRule: + """Update AI Guardrails DLP Rule + + Update the properties of the AI Guardrails DLP rule. + + :param id: The unique identifier of the AI Guardrails DLP rule. (required) + :type id: UUID + :param dlp_rule_patch_request: (required) + :type dlp_rule_patch_request: DLPRulePatchRequest + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._update_ai_guardrails_dlp_rule_serialize( + id=id, + dlp_rule_patch_request=dlp_rule_patch_request, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "DLPRule", + '400': "ApiErrorResponse", + '404': "ApiErrorResponse", + '500': "ApiErrorResponse", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ).data + + + @validate_call + def update_ai_guardrails_dlp_rule_with_http_info( + self, + id: Annotated[UUID, Field(description="The unique identifier of the AI Guardrails DLP rule.")], + dlp_rule_patch_request: DLPRulePatchRequest, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[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[DLPRule]: + """Update AI Guardrails DLP Rule + + Update the properties of the AI Guardrails DLP rule. + + :param id: The unique identifier of the AI Guardrails DLP rule. (required) + :type id: UUID + :param dlp_rule_patch_request: (required) + :type dlp_rule_patch_request: DLPRulePatchRequest + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._update_ai_guardrails_dlp_rule_serialize( + id=id, + dlp_rule_patch_request=dlp_rule_patch_request, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "DLPRule", + '400': "ApiErrorResponse", + '404': "ApiErrorResponse", + '500': "ApiErrorResponse", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ) + + + @validate_call + def update_ai_guardrails_dlp_rule_without_preload_content( + self, + id: Annotated[UUID, Field(description="The unique identifier of the AI Guardrails DLP rule.")], + dlp_rule_patch_request: DLPRulePatchRequest, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> RESTResponseType: + """Update AI Guardrails DLP Rule + + Update the properties of the AI Guardrails DLP rule. + + :param id: The unique identifier of the AI Guardrails DLP rule. (required) + :type id: UUID + :param dlp_rule_patch_request: (required) + :type dlp_rule_patch_request: DLPRulePatchRequest + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._update_ai_guardrails_dlp_rule_serialize( + id=id, + dlp_rule_patch_request=dlp_rule_patch_request, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "DLPRule", + '400': "ApiErrorResponse", + '404': "ApiErrorResponse", + '500': "ApiErrorResponse", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _update_ai_guardrails_dlp_rule_serialize( + self, + id, + dlp_rule_patch_request, + _request_auth, + _content_type, + _headers, + _host_index, + ) -> RequestSerialized: + + _host = None + + _collection_formats: Dict[str, str] = { + } + + _path_params: Dict[str, str] = {} + _query_params: List[Tuple[str, str]] = [] + _header_params: Dict[str, Optional[str]] = _headers or {} + _form_params: List[Tuple[str, str]] = [] + _files: Dict[ + str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] + ] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + if id is not None: + _path_params['id'] = id + # process the query parameters + # process the header parameters + # process the form parameters + # process the body parameter + if dlp_rule_patch_request is not None: + _body_params = dlp_rule_patch_request + + + # set the HTTP header `Accept` + if 'Accept' not in _header_params: + _header_params['Accept'] = self.api_client.select_header_accept( + [ + 'application/json' + ] + ) + + # set the HTTP header `Content-Type` + if _content_type: + _header_params['Content-Type'] = _content_type + else: + _default_content_type = ( + self.api_client.select_header_content_type( + [ + 'application/json' + ] + ) + ) + if _default_content_type is not None: + _header_params['Content-Type'] = _default_content_type + + # authentication setting + _auth_settings: List[str] = [ + 'oauthFlow' + ] + + return self.api_client.param_serialize( + method='PATCH', + resource_path='/policies/v2/dlp/aiGuardrails/rules/{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 update_real_time_dlp_rule( + self, + id: Annotated[UUID, Field(description="The unique identifier of the real-time DLP rule.")], + dlp_rule_patch_request: DLPRulePatchRequest, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> DLPRule: + """Update Real-Time DLP Rule + + Update the properties of the real-time DLP rule. + + :param id: The unique identifier of the real-time DLP rule. (required) + :type id: UUID + :param dlp_rule_patch_request: (required) + :type dlp_rule_patch_request: DLPRulePatchRequest + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores 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_real_time_dlp_rule_serialize( + id=id, + dlp_rule_patch_request=dlp_rule_patch_request, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "DLPRule", + '400': "ApiErrorResponse", + '404': "ApiErrorResponse", + '500': "ApiErrorResponse", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ).data + + + @validate_call + def update_real_time_dlp_rule_with_http_info( + self, + id: Annotated[UUID, Field(description="The unique identifier of the real-time DLP rule.")], + dlp_rule_patch_request: DLPRulePatchRequest, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[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[DLPRule]: + """Update Real-Time DLP Rule + + Update the properties of the real-time DLP rule. + + :param id: The unique identifier of the real-time DLP rule. (required) + :type id: UUID + :param dlp_rule_patch_request: (required) + :type dlp_rule_patch_request: DLPRulePatchRequest + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores 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_real_time_dlp_rule_serialize( + id=id, + dlp_rule_patch_request=dlp_rule_patch_request, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "DLPRule", + '400': "ApiErrorResponse", + '404': "ApiErrorResponse", + '500': "ApiErrorResponse", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ) + + + @validate_call + def update_real_time_dlp_rule_without_preload_content( + self, + id: Annotated[UUID, Field(description="The unique identifier of the real-time DLP rule.")], + dlp_rule_patch_request: DLPRulePatchRequest, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[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 Real-Time DLP Rule + + Update the properties of the real-time DLP rule. + + :param id: The unique identifier of the real-time DLP rule. (required) + :type id: UUID + :param dlp_rule_patch_request: (required) + :type dlp_rule_patch_request: DLPRulePatchRequest + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores 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_real_time_dlp_rule_serialize( + id=id, + dlp_rule_patch_request=dlp_rule_patch_request, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "DLPRule", + '400': "ApiErrorResponse", + '404': "ApiErrorResponse", + '500': "ApiErrorResponse", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _update_real_time_dlp_rule_serialize( + self, + id, + dlp_rule_patch_request, + _request_auth, + _content_type, + _headers, + _host_index, + ) -> RequestSerialized: + + _host = None + + _collection_formats: Dict[str, str] = { + } + + _path_params: Dict[str, str] = {} + _query_params: List[Tuple[str, str]] = [] + _header_params: Dict[str, Optional[str]] = _headers or {} + _form_params: List[Tuple[str, str]] = [] + _files: Dict[ + str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] + ] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + if id is not None: + _path_params['id'] = id + # process the query parameters + # process the header parameters + # process the form parameters + # process the body parameter + if dlp_rule_patch_request is not None: + _body_params = dlp_rule_patch_request + + + # set the HTTP header `Accept` + if 'Accept' not in _header_params: + _header_params['Accept'] = self.api_client.select_header_accept( + [ + 'application/json' + ] + ) + + # set the HTTP header `Content-Type` + if _content_type: + _header_params['Content-Type'] = _content_type + else: + _default_content_type = ( + self.api_client.select_header_content_type( + [ + 'application/json' + ] + ) + ) + if _default_content_type is not None: + _header_params['Content-Type'] = _default_content_type + + # authentication setting + _auth_settings: List[str] = [ + 'oauthFlow' + ] + + return self.api_client.param_serialize( + method='PATCH', + resource_path='/policies/v2/dlp/realTime/rules/{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 update_saas_api_dlp_rule( + self, + id: Annotated[UUID, Field(description="The unique identifier of the SaaS API DLP rule.")], + oob_rule_patch_request: OOBRulePatchRequest, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> OOBRuleResponse: + """Update SaaS API DLP Rule + + Update the properties of the SaaS API Out-of-Band (OOB) DLP rule. + + :param id: The unique identifier of the SaaS API DLP rule. (required) + :type id: UUID + :param oob_rule_patch_request: (required) + :type oob_rule_patch_request: OOBRulePatchRequest + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores 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_saas_api_dlp_rule_serialize( + id=id, + oob_rule_patch_request=oob_rule_patch_request, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "OOBRuleResponse", + '400': "ApiErrorResponse", + '404': "ApiErrorResponse", + '500': "ApiErrorResponse", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ).data + + + @validate_call + def update_saas_api_dlp_rule_with_http_info( + self, + id: Annotated[UUID, Field(description="The unique identifier of the SaaS API DLP rule.")], + oob_rule_patch_request: OOBRulePatchRequest, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[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[OOBRuleResponse]: + """Update SaaS API DLP Rule + + Update the properties of the SaaS API Out-of-Band (OOB) DLP rule. + + :param id: The unique identifier of the SaaS API DLP rule. (required) + :type id: UUID + :param oob_rule_patch_request: (required) + :type oob_rule_patch_request: OOBRulePatchRequest + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores 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_saas_api_dlp_rule_serialize( + id=id, + oob_rule_patch_request=oob_rule_patch_request, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "OOBRuleResponse", + '400': "ApiErrorResponse", + '404': "ApiErrorResponse", + '500': "ApiErrorResponse", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ) + + + @validate_call + def update_saas_api_dlp_rule_without_preload_content( + self, + id: Annotated[UUID, Field(description="The unique identifier of the SaaS API DLP rule.")], + oob_rule_patch_request: OOBRulePatchRequest, + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[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 SaaS API DLP Rule + + Update the properties of the SaaS API Out-of-Band (OOB) DLP rule. + + :param id: The unique identifier of the SaaS API DLP rule. (required) + :type id: UUID + :param oob_rule_patch_request: (required) + :type oob_rule_patch_request: OOBRulePatchRequest + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores 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_saas_api_dlp_rule_serialize( + id=id, + oob_rule_patch_request=oob_rule_patch_request, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "OOBRuleResponse", + '400': "ApiErrorResponse", + '404': "ApiErrorResponse", + '500': "ApiErrorResponse", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _update_saas_api_dlp_rule_serialize( + self, + id, + oob_rule_patch_request, + _request_auth, + _content_type, + _headers, + _host_index, + ) -> RequestSerialized: + + _host = None + + _collection_formats: Dict[str, str] = { + } + + _path_params: Dict[str, str] = {} + _query_params: List[Tuple[str, str]] = [] + _header_params: Dict[str, Optional[str]] = _headers or {} + _form_params: List[Tuple[str, str]] = [] + _files: Dict[ + str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] + ] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + if id is not None: + _path_params['id'] = id + # process the query parameters + # process the header parameters + # process the form parameters + # process the body parameter + if oob_rule_patch_request is not None: + _body_params = oob_rule_patch_request + + + # set the HTTP header `Accept` + if 'Accept' not in _header_params: + _header_params['Accept'] = self.api_client.select_header_accept( + [ + 'application/json' + ] + ) + + # set the HTTP header `Content-Type` + if _content_type: + _header_params['Content-Type'] = _content_type + else: + _default_content_type = ( + self.api_client.select_header_content_type( + [ + 'application/json' + ] + ) + ) + if _default_content_type is not None: + _header_params['Content-Type'] = _default_content_type + + # authentication setting + _auth_settings: List[str] = [ + 'oauthFlow' + ] + + return self.api_client.param_serialize( + method='PATCH', + resource_path='/policies/v2/dlp/saasApi/rules/{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/secure_access/api/s3_bucket_key_rotation_api.py b/secure_access/api/s3_bucket_key_rotation_api.py index de602fd..15513d8 100644 --- a/secure_access/api/s3_bucket_key_rotation_api.py +++ b/secure_access/api/s3_bucket_key_rotation_api.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/api/search_domain_api.py b/secure_access/api/search_domain_api.py index c3ba758..69bc7e5 100644 --- a/secure_access/api/search_domain_api.py +++ b/secure_access/api/search_domain_api.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/api/security_information_for_a_domain_api.py b/secure_access/api/security_information_for_a_domain_api.py index a1a8309..31add0a 100644 --- a/secure_access/api/security_information_for_a_domain_api.py +++ b/secure_access/api/security_information_for_a_domain_api.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/api/security_profiles_api.py b/secure_access/api/security_profiles_api.py index 50dece3..5417a7c 100644 --- a/secure_access/api/security_profiles_api.py +++ b/secure_access/api/security_profiles_api.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/api/service_object_groups_api.py b/secure_access/api/service_object_groups_api.py index 75da209..6d59531 100644 --- a/secure_access/api/service_object_groups_api.py +++ b/secure_access/api/service_object_groups_api.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/api/service_objects_api.py b/secure_access/api/service_objects_api.py index bfaf546..a989a67 100644 --- a/secure_access/api/service_objects_api.py +++ b/secure_access/api/service_objects_api.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/api/sites_api.py b/secure_access/api/sites_api.py index af32d95..930969e 100644 --- a/secure_access/api/sites_api.py +++ b/secure_access/api/sites_api.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/api/subdomains_for_a_domain_api.py b/secure_access/api/subdomains_for_a_domain_api.py index 4afe095..eb75b0e 100644 --- a/secure_access/api/subdomains_for_a_domain_api.py +++ b/secure_access/api/subdomains_for_a_domain_api.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/api/summaries_by_category_api.py b/secure_access/api/summaries_by_category_api.py index f845ab1..6900f4c 100644 --- a/secure_access/api/summaries_by_category_api.py +++ b/secure_access/api/summaries_by_category_api.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/api/summaries_by_destination_api.py b/secure_access/api/summaries_by_destination_api.py index da3335c..a83f6e3 100644 --- a/secure_access/api/summaries_by_destination_api.py +++ b/secure_access/api/summaries_by_destination_api.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/api/summaries_by_rule_api.py b/secure_access/api/summaries_by_rule_api.py index 6b346e9..313668c 100644 --- a/secure_access/api/summaries_by_rule_api.py +++ b/secure_access/api/summaries_by_rule_api.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/api/summary_api.py b/secure_access/api/summary_api.py index 650a0d9..ba71895 100644 --- a/secure_access/api/summary_api.py +++ b/secure_access/api/summary_api.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/api/tagging_timeline_api.py b/secure_access/api/tagging_timeline_api.py index e942514..259a57e 100644 --- a/secure_access/api/tagging_timeline_api.py +++ b/secure_access/api/tagging_timeline_api.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/api/tenant_controls_profiles_api.py b/secure_access/api/tenant_controls_profiles_api.py index e7c4478..bdeb68e 100644 --- a/secure_access/api/tenant_controls_profiles_api.py +++ b/secure_access/api/tenant_controls_profiles_api.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/api/tenants_api.py b/secure_access/api/tenants_api.py new file mode 100644 index 0000000..e4515f9 --- /dev/null +++ b/secure_access/api/tenants_api.py @@ -0,0 +1,376 @@ +# Copyright 2026 Cisco Systems, Inc. and its affiliates +# +# SPDX-License-Identifier: Apache-2.0 + +# coding: utf-8 + +""" + Cisco Secure Access API + + Unified OpenAPI spec for Cisco Secure Access APIs. + + The version of the OpenAPI document: v2.0.202602030705 + Contact: devnet@cisco.com + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + +import warnings +from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt +from typing import Any, Dict, List, Optional, Tuple, Union +from typing_extensions import Annotated + +from pydantic import Field, StrictStr, field_validator +from typing import List, Optional +from typing_extensions import Annotated +from secure_access.models.list_tenants_filters_parameter import ListTenantsFiltersParameter +from secure_access.models.list_tenants_sort_parameter import ListTenantsSortParameter +from secure_access.models.tenant_response import TenantResponse + +from secure_access.api_client import ApiClient, RequestSerialized +from secure_access.api_response import ApiResponse +from secure_access.rest import RESTResponseType + + +class TenantsApi: + """NOTE: This class is auto generated by OpenAPI Generator + Ref: https://openapi-generator.tech + + Do not edit the class manually. + """ + + def __init__(self, api_client=None) -> None: + if api_client is None: + api_client = ApiClient.get_default() + self.api_client = api_client + + + @validate_call + def list_tenants( + self, + organization_ids: Annotated[str, Field(strict=True, description="A comma-separated list of IDs for the tenant organizations.")], + optional_fields: Annotated[Optional[List[StrictStr]], Field(description="Optional fields to request additional data along with regular response.")] = None, + filters: Annotated[Optional[ListTenantsFiltersParameter], Field(description="Filters that can be applied to the response by the system.")] = None, + sort: Annotated[Optional[ListTenantsSortParameter], Field(description="The properties to sort the collection.")] = 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, + ) -> List[TenantResponse]: + """List Tenants + + List the tenants in the organization. + + :param organization_ids: A comma-separated list of IDs for the tenant organizations. (required) + :type organization_ids: str + :param optional_fields: Optional fields to request additional data along with regular response. + :type optional_fields: List[str] + :param filters: Filters that can be applied to the response by the system. + :type filters: ListTenantsFiltersParameter + :param sort: The properties to sort the collection. + :type sort: ListTenantsSortParameter + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._list_tenants_serialize( + organization_ids=organization_ids, + optional_fields=optional_fields, + filters=filters, + sort=sort, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "List[TenantResponse]", + '400': "MultiTenants400Error", + '401': "MultiTenants401Error", + '403': "MultiTenants403Error", + '404': "MultiTenants404Error", + '500': "MultiTenants500Error", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ).data + + + @validate_call + def list_tenants_with_http_info( + self, + organization_ids: Annotated[str, Field(strict=True, description="A comma-separated list of IDs for the tenant organizations.")], + optional_fields: Annotated[Optional[List[StrictStr]], Field(description="Optional fields to request additional data along with regular response.")] = None, + filters: Annotated[Optional[ListTenantsFiltersParameter], Field(description="Filters that can be applied to the response by the system.")] = None, + sort: Annotated[Optional[ListTenantsSortParameter], Field(description="The properties to sort the collection.")] = 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[List[TenantResponse]]: + """List Tenants + + List the tenants in the organization. + + :param organization_ids: A comma-separated list of IDs for the tenant organizations. (required) + :type organization_ids: str + :param optional_fields: Optional fields to request additional data along with regular response. + :type optional_fields: List[str] + :param filters: Filters that can be applied to the response by the system. + :type filters: ListTenantsFiltersParameter + :param sort: The properties to sort the collection. + :type sort: ListTenantsSortParameter + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._list_tenants_serialize( + organization_ids=organization_ids, + optional_fields=optional_fields, + filters=filters, + sort=sort, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "List[TenantResponse]", + '400': "MultiTenants400Error", + '401': "MultiTenants401Error", + '403': "MultiTenants403Error", + '404': "MultiTenants404Error", + '500': "MultiTenants500Error", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ) + + + @validate_call + def list_tenants_without_preload_content( + self, + organization_ids: Annotated[str, Field(strict=True, description="A comma-separated list of IDs for the tenant organizations.")], + optional_fields: Annotated[Optional[List[StrictStr]], Field(description="Optional fields to request additional data along with regular response.")] = None, + filters: Annotated[Optional[ListTenantsFiltersParameter], Field(description="Filters that can be applied to the response by the system.")] = None, + sort: Annotated[Optional[ListTenantsSortParameter], Field(description="The properties to sort the collection.")] = 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 Tenants + + List the tenants in the organization. + + :param organization_ids: A comma-separated list of IDs for the tenant organizations. (required) + :type organization_ids: str + :param optional_fields: Optional fields to request additional data along with regular response. + :type optional_fields: List[str] + :param filters: Filters that can be applied to the response by the system. + :type filters: ListTenantsFiltersParameter + :param sort: The properties to sort the collection. + :type sort: ListTenantsSortParameter + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._list_tenants_serialize( + organization_ids=organization_ids, + optional_fields=optional_fields, + filters=filters, + sort=sort, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "List[TenantResponse]", + '400': "MultiTenants400Error", + '401': "MultiTenants401Error", + '403': "MultiTenants403Error", + '404': "MultiTenants404Error", + '500': "MultiTenants500Error", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _list_tenants_serialize( + self, + organization_ids, + optional_fields, + filters, + sort, + _request_auth, + _content_type, + _headers, + _host_index, + ) -> RequestSerialized: + + _host = None + + _collection_formats: Dict[str, str] = { + 'optionalFields': 'multi', + } + + _path_params: Dict[str, str] = {} + _query_params: List[Tuple[str, str]] = [] + _header_params: Dict[str, Optional[str]] = _headers or {} + _form_params: List[Tuple[str, str]] = [] + _files: Dict[ + str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] + ] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + # process the query parameters + if organization_ids is not None: + + _query_params.append(('organizationIds', organization_ids)) + + if optional_fields is not None: + + _query_params.append(('optionalFields', optional_fields)) + + if filters is not None: + + _query_params.append(('filters', filters)) + + if sort is not None: + + _query_params.append(('sort', sort)) + + # process the header parameters + # process the form parameters + # process the body parameter + + + # set the HTTP header `Accept` + if 'Accept' not in _header_params: + _header_params['Accept'] = self.api_client.select_header_accept( + [ + 'application/json' + ] + ) + + + # authentication setting + _auth_settings: List[str] = [ + 'oauthFlow' + ] + + return self.api_client.param_serialize( + method='GET', + resource_path='/admin/v2/tenants/list', + 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/secure_access/api/token_api.py b/secure_access/api/token_api.py index 6be9db9..18e1f12 100644 --- a/secure_access/api/token_api.py +++ b/secure_access/api/token_api.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/api/top_categories_api.py b/secure_access/api/top_categories_api.py index cc99097..7146685 100644 --- a/secure_access/api/top_categories_api.py +++ b/secure_access/api/top_categories_api.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/api/top_destinations_api.py b/secure_access/api/top_destinations_api.py index 43e4362..64b0dda 100644 --- a/secure_access/api/top_destinations_api.py +++ b/secure_access/api/top_destinations_api.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/api/top_dns_query_types_api.py b/secure_access/api/top_dns_query_types_api.py index 8849a68..f86effa 100644 --- a/secure_access/api/top_dns_query_types_api.py +++ b/secure_access/api/top_dns_query_types_api.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/api/top_event_types_api.py b/secure_access/api/top_event_types_api.py index dcdf1c0..8268577 100644 --- a/secure_access/api/top_event_types_api.py +++ b/secure_access/api/top_event_types_api.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/api/top_files_api.py b/secure_access/api/top_files_api.py index 4517244..15889c1 100644 --- a/secure_access/api/top_files_api.py +++ b/secure_access/api/top_files_api.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/api/top_identities_api.py b/secure_access/api/top_identities_api.py index 4ab4a64..c1f5a36 100644 --- a/secure_access/api/top_identities_api.py +++ b/secure_access/api/top_identities_api.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/api/top_ips_api.py b/secure_access/api/top_ips_api.py index 4ecae60..fe92efd 100644 --- a/secure_access/api/top_ips_api.py +++ b/secure_access/api/top_ips_api.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/api/top_resources_api.py b/secure_access/api/top_resources_api.py index dff607f..77101d7 100644 --- a/secure_access/api/top_resources_api.py +++ b/secure_access/api/top_resources_api.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/api/top_threat_types_api.py b/secure_access/api/top_threat_types_api.py index 2ec4e62..5d8f6ce 100644 --- a/secure_access/api/top_threat_types_api.py +++ b/secure_access/api/top_threat_types_api.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/api/top_threats_api.py b/secure_access/api/top_threats_api.py index 00be3ec..497d43c 100644 --- a/secure_access/api/top_threats_api.py +++ b/secure_access/api/top_threats_api.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/api/total_requests_api.py b/secure_access/api/total_requests_api.py index 8e2d51b..d7313fb 100644 --- a/secure_access/api/total_requests_api.py +++ b/secure_access/api/total_requests_api.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) @@ -187,6 +187,7 @@ def get_total_requests( _response_types_map: Dict[str, Optional[str]] = { '200': "GetOverloadedGroupsCount200Response", + '207': "Model207TotalRequestsMultiStatus", '400': "Reporting400Error", '401': "Reporting401Error", '403': "Reporting403Error", @@ -347,6 +348,7 @@ def get_total_requests_with_http_info( _response_types_map: Dict[str, Optional[str]] = { '200': "GetOverloadedGroupsCount200Response", + '207': "Model207TotalRequestsMultiStatus", '400': "Reporting400Error", '401': "Reporting401Error", '403': "Reporting403Error", @@ -507,6 +509,7 @@ def get_total_requests_without_preload_content( _response_types_map: Dict[str, Optional[str]] = { '200': "GetOverloadedGroupsCount200Response", + '207': "Model207TotalRequestsMultiStatus", '400': "Reporting400Error", '401': "Reporting401Error", '403': "Reporting403Error", diff --git a/secure_access/api/unified_objects_api.py b/secure_access/api/unified_objects_api.py index 6d22b86..785665f 100644 --- a/secure_access/api/unified_objects_api.py +++ b/secure_access/api/unified_objects_api.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/api/unique_resources_api.py b/secure_access/api/unique_resources_api.py index 76cc476..0c0287a 100644 --- a/secure_access/api/unique_resources_api.py +++ b/secure_access/api/unique_resources_api.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/api/usage_metrics_api.py b/secure_access/api/usage_metrics_api.py index 03b8637..ccb7ef9 100644 --- a/secure_access/api/usage_metrics_api.py +++ b/secure_access/api/usage_metrics_api.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/api/utility_api.py b/secure_access/api/utility_api.py index 22b0514..2a10934 100644 --- a/secure_access/api/utility_api.py +++ b/secure_access/api/utility_api.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/api/virtual_appliances_api.py b/secure_access/api/virtual_appliances_api.py new file mode 100644 index 0000000..2e752ae --- /dev/null +++ b/secure_access/api/virtual_appliances_api.py @@ -0,0 +1,1196 @@ +# Copyright 2026 Cisco Systems, Inc. and its affiliates +# +# SPDX-License-Identifier: Apache-2.0 + +# coding: utf-8 + +""" + Cisco Secure Access API + + Unified OpenAPI spec for Cisco Secure Access APIs. + + The version of the OpenAPI document: v2.0.202602030705 + Contact: devnet@cisco.com + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + +import warnings +from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt +from typing import Any, Dict, List, Optional, Tuple, Union +from typing_extensions import Annotated + +from pydantic import Field, StrictInt +from typing import List, Optional +from typing_extensions import Annotated +from secure_access.models.update_virtual_appliance_request import UpdateVirtualApplianceRequest +from secure_access.models.virtual_appliance_object import VirtualApplianceObject + +from secure_access.api_client import ApiClient, RequestSerialized +from secure_access.api_response import ApiResponse +from secure_access.rest import RESTResponseType + + +class VirtualAppliancesApi: + """NOTE: This class is auto generated by OpenAPI Generator + Ref: https://openapi-generator.tech + + Do not edit the class manually. + """ + + def __init__(self, api_client=None) -> None: + if api_client is None: + api_client = ApiClient.get_default() + self.api_client = api_client + + + @validate_call + def delete_virtual_appliance( + self, + virtual_appliance_id: Annotated[StrictInt, Field(description="The origin ID (originId) of the virtual appliance.")], + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[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 Virtual Appliance + + Delete a virtual appliance in the organization. + + :param virtual_appliance_id: The origin ID (originId) of the virtual appliance. (required) + :type virtual_appliance_id: int + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._delete_virtual_appliance_serialize( + virtual_appliance_id=virtual_appliance_id, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '204': None, + '400': "Model400Error", + '401': "Model401Error", + '403': "Model403Error", + '404': "Model404Error", + '500': "VirtualAppliances500Error", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ).data + + + @validate_call + def delete_virtual_appliance_with_http_info( + self, + virtual_appliance_id: Annotated[StrictInt, Field(description="The origin ID (originId) of the virtual appliance.")], + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[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 Virtual Appliance + + Delete a virtual appliance in the organization. + + :param virtual_appliance_id: The origin ID (originId) of the virtual appliance. (required) + :type virtual_appliance_id: int + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._delete_virtual_appliance_serialize( + virtual_appliance_id=virtual_appliance_id, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '204': None, + '400': "Model400Error", + '401': "Model401Error", + '403': "Model403Error", + '404': "Model404Error", + '500': "VirtualAppliances500Error", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ) + + + @validate_call + def delete_virtual_appliance_without_preload_content( + self, + virtual_appliance_id: Annotated[StrictInt, Field(description="The origin ID (originId) of the virtual appliance.")], + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[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 Virtual Appliance + + Delete a virtual appliance in the organization. + + :param virtual_appliance_id: The origin ID (originId) of the virtual appliance. (required) + :type virtual_appliance_id: int + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._delete_virtual_appliance_serialize( + virtual_appliance_id=virtual_appliance_id, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '204': None, + '400': "Model400Error", + '401': "Model401Error", + '403': "Model403Error", + '404': "Model404Error", + '500': "VirtualAppliances500Error", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _delete_virtual_appliance_serialize( + self, + virtual_appliance_id, + _request_auth, + _content_type, + _headers, + _host_index, + ) -> RequestSerialized: + + _host = None + + _collection_formats: Dict[str, str] = { + } + + _path_params: Dict[str, str] = {} + _query_params: List[Tuple[str, str]] = [] + _header_params: Dict[str, Optional[str]] = _headers or {} + _form_params: List[Tuple[str, str]] = [] + _files: Dict[ + str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] + ] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + if virtual_appliance_id is not None: + _path_params['virtualApplianceId'] = virtual_appliance_id + # process the query parameters + # process the header parameters + # process the form parameters + # process the body parameter + + + # set the HTTP header `Accept` + if 'Accept' not in _header_params: + _header_params['Accept'] = self.api_client.select_header_accept( + [ + 'application/json' + ] + ) + + + # authentication setting + _auth_settings: List[str] = [ + 'oauthFlow' + ] + + return self.api_client.param_serialize( + method='DELETE', + resource_path='/deployments/v2/virtualappliances/{virtualApplianceId}', + 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_virtual_appliance( + self, + virtual_appliance_id: Annotated[StrictInt, Field(description="The origin ID (originId) of the virtual appliance.")], + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> VirtualApplianceObject: + """Get Virtual Appliance + + Get a virtual appliance in the organization. + + :param virtual_appliance_id: The origin ID (originId) of the virtual appliance. (required) + :type virtual_appliance_id: int + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._get_virtual_appliance_serialize( + virtual_appliance_id=virtual_appliance_id, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "VirtualApplianceObject", + '400': "Model400Error", + '401': "Model401Error", + '403': "Model403Error", + '404': "Model404Error", + '500': "VirtualAppliances500Error", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ).data + + + @validate_call + def get_virtual_appliance_with_http_info( + self, + virtual_appliance_id: Annotated[StrictInt, Field(description="The origin ID (originId) of the virtual appliance.")], + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[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[VirtualApplianceObject]: + """Get Virtual Appliance + + Get a virtual appliance in the organization. + + :param virtual_appliance_id: The origin ID (originId) of the virtual appliance. (required) + :type virtual_appliance_id: int + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._get_virtual_appliance_serialize( + virtual_appliance_id=virtual_appliance_id, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "VirtualApplianceObject", + '400': "Model400Error", + '401': "Model401Error", + '403': "Model403Error", + '404': "Model404Error", + '500': "VirtualAppliances500Error", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ) + + + @validate_call + def get_virtual_appliance_without_preload_content( + self, + virtual_appliance_id: Annotated[StrictInt, Field(description="The origin ID (originId) of the virtual appliance.")], + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[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 Virtual Appliance + + Get a virtual appliance in the organization. + + :param virtual_appliance_id: The origin ID (originId) of the virtual appliance. (required) + :type virtual_appliance_id: int + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._get_virtual_appliance_serialize( + virtual_appliance_id=virtual_appliance_id, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "VirtualApplianceObject", + '400': "Model400Error", + '401': "Model401Error", + '403': "Model403Error", + '404': "Model404Error", + '500': "VirtualAppliances500Error", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _get_virtual_appliance_serialize( + self, + virtual_appliance_id, + _request_auth, + _content_type, + _headers, + _host_index, + ) -> RequestSerialized: + + _host = None + + _collection_formats: Dict[str, str] = { + } + + _path_params: Dict[str, str] = {} + _query_params: List[Tuple[str, str]] = [] + _header_params: Dict[str, Optional[str]] = _headers or {} + _form_params: List[Tuple[str, str]] = [] + _files: Dict[ + str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] + ] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + if virtual_appliance_id is not None: + _path_params['virtualApplianceId'] = virtual_appliance_id + # process the query parameters + # process the header parameters + # process the form parameters + # process the body parameter + + + # set the HTTP header `Accept` + if 'Accept' not in _header_params: + _header_params['Accept'] = self.api_client.select_header_accept( + [ + 'application/json' + ] + ) + + + # authentication setting + _auth_settings: List[str] = [ + 'oauthFlow' + ] + + return self.api_client.param_serialize( + method='GET', + resource_path='/deployments/v2/virtualappliances/{virtualApplianceId}', + path_params=_path_params, + query_params=_query_params, + header_params=_header_params, + body=_body_params, + post_params=_form_params, + files=_files, + auth_settings=_auth_settings, + collection_formats=_collection_formats, + _host=_host, + _request_auth=_request_auth + ) + + + + + @validate_call + def list_virtual_appliances( + self, + page: Annotated[Optional[Annotated[int, Field(strict=True, ge=1)]], Field(description="The number of a page in the collection.")] = None, + limit: Annotated[Optional[Annotated[int, Field(le=100, strict=True, ge=1)]], Field(description="The number of records in the collection to return on the page.")] = 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, + ) -> List[VirtualApplianceObject]: + """List Virtual Appliances + + List the virtual appliances in the organization. + + :param page: The number of a page in the collection. + :type page: int + :param limit: The number of records in the collection to return on the page. + :type limit: int + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._list_virtual_appliances_serialize( + page=page, + limit=limit, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "List[VirtualApplianceObject]", + '400': "Model400Error", + '401': "Model401Error", + '403': "Model403Error", + '404': "Model404Error", + '500': "VirtualAppliances500Error", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ).data + + + @validate_call + def list_virtual_appliances_with_http_info( + self, + page: Annotated[Optional[Annotated[int, Field(strict=True, ge=1)]], Field(description="The number of a page in the collection.")] = None, + limit: Annotated[Optional[Annotated[int, Field(le=100, strict=True, ge=1)]], Field(description="The number of records in the collection to return on the page.")] = 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[List[VirtualApplianceObject]]: + """List Virtual Appliances + + List the virtual appliances in the organization. + + :param page: The number of a page in the collection. + :type page: int + :param limit: The number of records in the collection to return on the page. + :type limit: int + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._list_virtual_appliances_serialize( + page=page, + limit=limit, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "List[VirtualApplianceObject]", + '400': "Model400Error", + '401': "Model401Error", + '403': "Model403Error", + '404': "Model404Error", + '500': "VirtualAppliances500Error", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ) + + + @validate_call + def list_virtual_appliances_without_preload_content( + self, + page: Annotated[Optional[Annotated[int, Field(strict=True, ge=1)]], Field(description="The number of a page in the collection.")] = None, + limit: Annotated[Optional[Annotated[int, Field(le=100, strict=True, ge=1)]], Field(description="The number of records in the collection to return on the page.")] = 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 Virtual Appliances + + List the virtual appliances in the organization. + + :param page: The number of a page in the collection. + :type page: int + :param limit: The number of records in the collection to return on the page. + :type limit: int + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores the host_index + in the spec for a single request. + :type _host_index: int, optional + :return: Returns the result object. + """ # noqa: E501 + + _param = self._list_virtual_appliances_serialize( + page=page, + limit=limit, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "List[VirtualApplianceObject]", + '400': "Model400Error", + '401': "Model401Error", + '403': "Model403Error", + '404': "Model404Error", + '500': "VirtualAppliances500Error", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _list_virtual_appliances_serialize( + self, + page, + limit, + _request_auth, + _content_type, + _headers, + _host_index, + ) -> RequestSerialized: + + _host = None + + _collection_formats: Dict[str, str] = { + } + + _path_params: Dict[str, str] = {} + _query_params: List[Tuple[str, str]] = [] + _header_params: Dict[str, Optional[str]] = _headers or {} + _form_params: List[Tuple[str, str]] = [] + _files: Dict[ + str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] + ] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + # process the query parameters + if page is not None: + + _query_params.append(('page', page)) + + if limit is not None: + + _query_params.append(('limit', limit)) + + # process the header parameters + # process the form parameters + # process the body parameter + + + # set the HTTP header `Accept` + if 'Accept' not in _header_params: + _header_params['Accept'] = self.api_client.select_header_accept( + [ + 'application/json' + ] + ) + + + # authentication setting + _auth_settings: List[str] = [ + 'oauthFlow' + ] + + return self.api_client.param_serialize( + method='GET', + resource_path='/deployments/v2/virtualappliances', + 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_virtual_appliance( + self, + virtual_appliance_id: Annotated[StrictInt, Field(description="The origin ID (originId) of the virtual appliance.")], + update_virtual_appliance_request: Annotated[UpdateVirtualApplianceRequest, Field(description="Update the virtual appliance.")], + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[StrictStr, Any]] = None, + _content_type: Optional[StrictStr] = None, + _headers: Optional[Dict[StrictStr, Any]] = None, + _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, + ) -> VirtualApplianceObject: + """Update Virtual Appliance + + Update a virtual appliance in the organization. + + :param virtual_appliance_id: The origin ID (originId) of the virtual appliance. (required) + :type virtual_appliance_id: int + :param update_virtual_appliance_request: Update the virtual appliance. (required) + :type update_virtual_appliance_request: UpdateVirtualApplianceRequest + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores 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_virtual_appliance_serialize( + virtual_appliance_id=virtual_appliance_id, + update_virtual_appliance_request=update_virtual_appliance_request, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "VirtualApplianceObject", + '400': "Model400Error", + '401': "Model401Error", + '403': "Model403Error", + '404': "Model404Error", + '500': "VirtualAppliances500Error", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ).data + + + @validate_call + def update_virtual_appliance_with_http_info( + self, + virtual_appliance_id: Annotated[StrictInt, Field(description="The origin ID (originId) of the virtual appliance.")], + update_virtual_appliance_request: Annotated[UpdateVirtualApplianceRequest, Field(description="Update the virtual appliance.")], + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[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[VirtualApplianceObject]: + """Update Virtual Appliance + + Update a virtual appliance in the organization. + + :param virtual_appliance_id: The origin ID (originId) of the virtual appliance. (required) + :type virtual_appliance_id: int + :param update_virtual_appliance_request: Update the virtual appliance. (required) + :type update_virtual_appliance_request: UpdateVirtualApplianceRequest + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores 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_virtual_appliance_serialize( + virtual_appliance_id=virtual_appliance_id, + update_virtual_appliance_request=update_virtual_appliance_request, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "VirtualApplianceObject", + '400': "Model400Error", + '401': "Model401Error", + '403': "Model403Error", + '404': "Model404Error", + '500': "VirtualAppliances500Error", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + response_data.read() + return self.api_client.response_deserialize( + response_data=response_data, + response_types_map=_response_types_map, + ) + + + @validate_call + def update_virtual_appliance_without_preload_content( + self, + virtual_appliance_id: Annotated[StrictInt, Field(description="The origin ID (originId) of the virtual appliance.")], + update_virtual_appliance_request: Annotated[UpdateVirtualApplianceRequest, Field(description="Update the virtual appliance.")], + _request_timeout: Union[ + None, + Annotated[StrictFloat, Field(gt=0)], + Tuple[ + Annotated[StrictFloat, Field(gt=0)], + Annotated[StrictFloat, Field(gt=0)] + ] + ] = None, + _request_auth: Optional[Dict[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 Virtual Appliance + + Update a virtual appliance in the organization. + + :param virtual_appliance_id: The origin ID (originId) of the virtual appliance. (required) + :type virtual_appliance_id: int + :param update_virtual_appliance_request: Update the virtual appliance. (required) + :type update_virtual_appliance_request: UpdateVirtualApplianceRequest + :param _request_timeout: timeout setting for this request. If one + number provided, it will be total request + timeout. It can also be a pair (tuple) of + (connection, read) timeouts. + :type _request_timeout: int, tuple(int, int), optional + :param _request_auth: set to override the auth_settings for an a single + request; this effectively ignores the + authentication in the spec for a single request. + :type _request_auth: dict, optional + :param _content_type: force content-type for the request. + :type _content_type: str, Optional + :param _headers: set to override the headers for a single + request; this effectively ignores the headers + in the spec for a single request. + :type _headers: dict, optional + :param _host_index: set to override the host_index for a single + request; this effectively ignores 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_virtual_appliance_serialize( + virtual_appliance_id=virtual_appliance_id, + update_virtual_appliance_request=update_virtual_appliance_request, + _request_auth=_request_auth, + _content_type=_content_type, + _headers=_headers, + _host_index=_host_index + ) + + _response_types_map: Dict[str, Optional[str]] = { + '200': "VirtualApplianceObject", + '400': "Model400Error", + '401': "Model401Error", + '403': "Model403Error", + '404': "Model404Error", + '500': "VirtualAppliances500Error", + } + response_data = self.api_client.call_api( + *_param, + _request_timeout=_request_timeout + ) + return response_data.response + + + def _update_virtual_appliance_serialize( + self, + virtual_appliance_id, + update_virtual_appliance_request, + _request_auth, + _content_type, + _headers, + _host_index, + ) -> RequestSerialized: + + _host = None + + _collection_formats: Dict[str, str] = { + } + + _path_params: Dict[str, str] = {} + _query_params: List[Tuple[str, str]] = [] + _header_params: Dict[str, Optional[str]] = _headers or {} + _form_params: List[Tuple[str, str]] = [] + _files: Dict[ + str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]] + ] = {} + _body_params: Optional[bytes] = None + + # process the path parameters + if virtual_appliance_id is not None: + _path_params['virtualApplianceId'] = virtual_appliance_id + # process the query parameters + # process the header parameters + # process the form parameters + # process the body parameter + if update_virtual_appliance_request is not None: + _body_params = update_virtual_appliance_request + + + # set the HTTP header `Accept` + if 'Accept' not in _header_params: + _header_params['Accept'] = self.api_client.select_header_accept( + [ + 'application/json' + ] + ) + + # set the HTTP header `Content-Type` + if _content_type: + _header_params['Content-Type'] = _content_type + else: + _default_content_type = ( + self.api_client.select_header_content_type( + [ + 'application/json' + ] + ) + ) + if _default_content_type is not None: + _header_params['Content-Type'] = _default_content_type + + # authentication setting + _auth_settings: List[str] = [ + 'oauthFlow' + ] + + return self.api_client.param_serialize( + method='PUT', + resource_path='/deployments/v2/virtualappliances/{virtualApplianceId}', + 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/secure_access/api/vpn_sessions_api.py b/secure_access/api/vpn_sessions_api.py index 7e26a7d..bb32fa9 100644 --- a/secure_access/api/vpn_sessions_api.py +++ b/secure_access/api/vpn_sessions_api.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/api/whois_information_for_a_domain_api.py b/secure_access/api/whois_information_for_a_domain_api.py index 8ec5990..e318185 100644 --- a/secure_access/api/whois_information_for_a_domain_api.py +++ b/secure_access/api/whois_information_for_a_domain_api.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/api_client.py b/secure_access/api_client.py index aeb5838..c30bd83 100644 --- a/secure_access/api_client.py +++ b/secure_access/api_client.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) @@ -96,7 +96,7 @@ def __init__( self.default_headers[header_name] = header_value self.cookie = cookie # Set default User-Agent. - self.user_agent = 'secure-access-python-sdk/v2.0.202510221109' + self.user_agent = 'secure-access-python-sdk/v2.0.202602030705' self.client_side_validation = configuration.client_side_validation def __enter__(self): @@ -317,7 +317,7 @@ def response_deserialize( return_data = self.__deserialize_file(response_data) elif response_type is not None: match = None - content_type = response_data.getheader('content-type') + content_type = response_data.headers.get('content-type') if content_type is not None: match = re.search(r"charset=([a-zA-Z\-\d]+)[\s;]?", content_type) encoding = match.group(1) if match else "utf-8" @@ -334,7 +334,7 @@ def response_deserialize( return ApiResponse( status_code = response_data.status, data = return_data, - headers = response_data.getheaders(), + headers = response_data.headers, raw_data = response_data.data ) @@ -706,7 +706,7 @@ def __deserialize_file(self, response): os.close(fd) os.remove(path) - content_disposition = response.getheader("Content-Disposition") + content_disposition = response.headers.get("Content-Disposition") if content_disposition: m = re.search( r'filename=[\'"]?([^\'"\s]+)[\'"]?', diff --git a/secure_access/api_response.py b/secure_access/api_response.py index dd1a742..d37443e 100644 --- a/secure_access/api_response.py +++ b/secure_access/api_response.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 diff --git a/secure_access/configuration.py b/secure_access/configuration.py index 5264d0f..875bacd 100644 --- a/secure_access/configuration.py +++ b/secure_access/configuration.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) @@ -118,11 +118,14 @@ AuthSettings = TypedDict( "AuthSettings", { + "alertingOauthFlow": OAuth2AuthSetting, "apiUsageApiOauthFlow": OAuth2AuthSetting, "appDiscoveryOauthFlow": OAuth2AuthSetting, "applicationCategoriesOauthFlow": OAuth2AuthSetting, "applicationListsOauthFlow": OAuth2AuthSetting, "contentCategoriesOauthFlow": OAuth2AuthSetting, + "dataLossPreventionOauthFlow": OAuth2AuthSetting, + "dataLossPreventionOauthFlow2": OAuth2AuthSetting, "destinationListsOauthFlow": OAuth2AuthSetting, "dnsForwardersOauthFlow": OAuth2AuthSetting, "http": BasicAuthSetting, @@ -132,6 +135,7 @@ "ipsProfilesOauthFlow": OAuth2AuthSetting, "keyAdminOauthFlow": OAuth2AuthSetting, "meteringOauthFlow": OAuth2AuthSetting, + "multiTenantsOauthFlow": OAuth2AuthSetting, "networkDevicesOauthFlow": OAuth2AuthSetting, "networkOauthFlow": OAuth2AuthSetting, "networkTunnelGroupsOauthFlow": OAuth2AuthSetting, @@ -143,11 +147,12 @@ "resourceConnectorGroupsOauthFlow": OAuth2AuthSetting, "roamingComputersOauthFlow": OAuth2AuthSetting, "s3BucketOauthFlow": OAuth2AuthSetting, + "securityFeedsOauthFlow": OAuth2AuthSetting, "securityProfilesOauthFlow": OAuth2AuthSetting, "sitesOauthFlow": OAuth2AuthSetting, "tenantControlsProfilesOauthFlow": OAuth2AuthSetting, "thirdPartyIntegrationsOauthFlow": OAuth2AuthSetting, - "threatIntelligenceFeedsOauthFlow": OAuth2AuthSetting, + "virtualAppliancesOauthFlow": OAuth2AuthSetting, "vpnUserConnectionsOauthFlow": OAuth2AuthSetting, "zeroTrustUserDevicesOauthFlow": OAuth2AuthSetting, }, @@ -199,6 +204,8 @@ class Configuration: :param retries: Number of retries for API requests. :param ca_cert_data: verify the peer using concatenated CA certificate data in PEM (str) or DER (bytes) format. + :param cert_file: the path to a client certificate file, for mTLS. + :param key_file: the path to a client key file, for mTLS. :Example: @@ -237,6 +244,8 @@ def __init__( ssl_ca_cert: Optional[str]=None, retries: Optional[int] = None, ca_cert_data: Optional[Union[str, bytes]] = None, + cert_file: Optional[str]=None, + key_file: Optional[str]=None, *, debug: Optional[bool] = None, ) -> None: @@ -318,10 +327,10 @@ def __init__( """Set this to verify the peer using PEM (str) or DER (bytes) certificate data. """ - self.cert_file = None + self.cert_file = cert_file """client certificate file """ - self.key_file = None + self.key_file = key_file """client key file """ self.assert_hostname = None @@ -534,6 +543,7 @@ def get_basic_auth_token(self) -> Optional[str]: password = "" if self.password is not None: password = self.password + return urllib3.util.make_headers( basic_auth=username + ':' + password ).get('authorization') @@ -544,6 +554,13 @@ def auth_settings(self)-> AuthSettings: :return: The Auth Settings information dict. """ auth: AuthSettings = {} + if self.access_token is not None: + auth['alertingOauthFlow'] = { + 'type': 'oauth2', + 'in': 'header', + 'key': 'Authorization', + 'value': 'Bearer ' + self.access_token + } if self.access_token is not None: auth['apiUsageApiOauthFlow'] = { 'type': 'oauth2', @@ -579,6 +596,20 @@ def auth_settings(self)-> AuthSettings: 'key': 'Authorization', 'value': 'Bearer ' + self.access_token } + if self.access_token is not None: + auth['dataLossPreventionOauthFlow'] = { + 'type': 'oauth2', + 'in': 'header', + 'key': 'Authorization', + 'value': 'Bearer ' + self.access_token + } + if self.access_token is not None: + auth['dataLossPreventionOauthFlow2'] = { + 'type': 'oauth2', + 'in': 'header', + 'key': 'Authorization', + 'value': 'Bearer ' + self.access_token + } if self.access_token is not None: auth['destinationListsOauthFlow'] = { 'type': 'oauth2', @@ -642,6 +673,13 @@ def auth_settings(self)-> AuthSettings: 'key': 'Authorization', 'value': 'Bearer ' + self.access_token } + if self.access_token is not None: + auth['multiTenantsOauthFlow'] = { + 'type': 'oauth2', + 'in': 'header', + 'key': 'Authorization', + 'value': 'Bearer ' + self.access_token + } if self.access_token is not None: auth['networkDevicesOauthFlow'] = { 'type': 'oauth2', @@ -719,6 +757,13 @@ def auth_settings(self)-> AuthSettings: 'key': 'Authorization', 'value': 'Bearer ' + self.access_token } + if self.access_token is not None: + auth['securityFeedsOauthFlow'] = { + 'type': 'oauth2', + 'in': 'header', + 'key': 'Authorization', + 'value': 'Bearer ' + self.access_token + } if self.access_token is not None: auth['securityProfilesOauthFlow'] = { 'type': 'oauth2', @@ -748,7 +793,7 @@ def auth_settings(self)-> AuthSettings: 'value': 'Bearer ' + self.access_token } if self.access_token is not None: - auth['threatIntelligenceFeedsOauthFlow'] = { + auth['virtualAppliancesOauthFlow'] = { 'type': 'oauth2', 'in': 'header', 'key': 'Authorization', @@ -778,8 +823,8 @@ def to_debug_report(self) -> str: return "Python SDK Debug Report:\n"\ "OS: {env}\n"\ "Python Version: {pyversion}\n"\ - "Version of the API: v2.0.202510221109\n"\ - "SDK Package Version: v2.0.202510221109".\ + "Version of the API: v2.0.202602030705\n"\ + "SDK Package Version: v2.0.202602030705".\ format(env=sys.platform, pyversion=sys.version) def get_host_settings(self) -> List[HostSetting]: @@ -801,6 +846,20 @@ def get_host_settings(self) -> List[HostSetting]: 'default_value': "deployments/v2", } } + }, + { + 'url': "https://api.sse.cisco.com/reports.{region}/v2", + 'description': "No description provided", + 'variables': { + 'region': { + 'description': "The region in the cloud where the system stores the DLP events.", + 'default_value': "us", + 'enum_values': [ + "us", + "eu" + ] + } + } } ] @@ -837,6 +896,7 @@ def get_host_from_settings( variable_name, variable['default_value']) if 'enum_values' in variable \ + and variable['enum_values'] \ and used_value not in variable['enum_values']: raise ValueError( "The variable `{0}` in the host URL has invalid value " diff --git a/secure_access/exceptions.py b/secure_access/exceptions.py index 5f654d4..ad138a2 100644 --- a/secure_access/exceptions.py +++ b/secure_access/exceptions.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) @@ -133,7 +133,7 @@ def __init__( self.body = http_resp.data.decode('utf-8') except Exception: pass - self.headers = http_resp.getheaders() + self.headers = http_resp.headers @classmethod def from_response( @@ -174,8 +174,11 @@ def __str__(self): error_message += "HTTP response headers: {0}\n".format( self.headers) - if self.data or self.body: - error_message += "HTTP response body: {0}\n".format(self.data or self.body) + if self.body: + error_message += "HTTP response body: {0}\n".format(self.body) + + if self.data: + error_message += "HTTP response data: {0}\n".format(self.data) return error_message diff --git a/secure_access/models/__init__.py b/secure_access/models/__init__.py index ee95c0c..6f7fd32 100644 --- a/secure_access/models/__init__.py +++ b/secure_access/models/__init__.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -10,7 +10,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) @@ -20,15 +20,14 @@ if __import__("typing").TYPE_CHECKING: # import models into model package from secure_access.models.access import Access + from secure_access.models.access_rule_context import AccessRuleContext from secure_access.models.access_types_inner import AccessTypesInner from secure_access.models.access_types_request_inner import AccessTypesRequestInner - from secure_access.models.action import Action from secure_access.models.action_counts import ActionCounts from secure_access.models.activity_amp_retro import ActivityAMPRetro from secure_access.models.activity_decryption import ActivityDecryption from secure_access.models.activity_dns import ActivityDns from secure_access.models.activity_firewall import ActivityFirewall - from secure_access.models.activity_ip import ActivityIP from secure_access.models.activity_intrusion import ActivityIntrusion from secure_access.models.activity_proxy import ActivityProxy from secure_access.models.activity_ztna import ActivityZTNA @@ -37,8 +36,19 @@ from secure_access.models.add_network_tunnel_group_request import AddNetworkTunnelGroupRequest from secure_access.models.add_network_tunnel_group_request_auth_id_prefix import AddNetworkTunnelGroupRequestAuthIdPrefix from secure_access.models.add_rule_request import AddRuleRequest + from secure_access.models.ai_guardrails_dlp_rule_event import AiGuardrailsDlpRuleEvent + from secure_access.models.alert import Alert + from secure_access.models.alert_rule import AlertRule + from secure_access.models.alert_with_additional_context import AlertWithAdditionalContext + from secure_access.models.alerting400_error import Alerting400Error + from secure_access.models.alerting401_error import Alerting401Error + from secure_access.models.alerting403_error import Alerting403Error + from secure_access.models.alerting404_error import Alerting404Error + from secure_access.models.alerting500_error import Alerting500Error + from secure_access.models.all_destinations_scope import AllDestinationsScope from secure_access.models.already_exists_error import AlreadyExistsError from secure_access.models.antivirus_threats import AntivirusThreats + from secure_access.models.api_error_response import ApiErrorResponse from secure_access.models.api_usage_api400_error import ApiUsageApi400Error from secure_access.models.api_usage_api401_error import ApiUsageApi401Error from secure_access.models.api_usage_api403_error import ApiUsageApi403Error @@ -75,6 +85,7 @@ from secure_access.models.application_object import ApplicationObject from secure_access.models.application_risk import ApplicationRisk from secure_access.models.application_risk_vendor_compliance_inner import ApplicationRiskVendorComplianceInner + from secure_access.models.application_saas_api import ApplicationSaasAPI from secure_access.models.application_usage_response_inner import ApplicationUsageResponseInner from secure_access.models.application_usage_response_inner_used_by import ApplicationUsageResponseInnerUsedBy from secure_access.models.application_usage_response_inner_used_by_application_lists_inner import ApplicationUsageResponseInnerUsedByApplicationListsInner @@ -96,6 +107,7 @@ from secure_access.models.bad_request_status import BadRequestStatus from secure_access.models.bandwidthby_hour import BandwidthbyHour from secure_access.models.behavior import Behavior + from secure_access.models.behavior_analytics_context import BehaviorAnalyticsContext from secure_access.models.bgp import Bgp from secure_access.models.bgp_data_request_obj import BgpDataRequestObj from secure_access.models.bgp_data_response_obj import BgpDataResponseObj @@ -103,6 +115,8 @@ from secure_access.models.browser_based_access_common import BrowserBasedAccessCommon from secure_access.models.browser_based_access_request import BrowserBasedAccessRequest from secure_access.models.browser_based_access_response import BrowserBasedAccessResponse + from secure_access.models.built_in_data_identifier import BuiltInDataIdentifier + from secure_access.models.built_in_data_identifier_list_item import BuiltInDataIdentifierListItem from secure_access.models.bulk_label_applications import BulkLabelApplications from secure_access.models.bundle_type_id import BundleTypeId from secure_access.models.business_risk import BusinessRisk @@ -112,9 +126,17 @@ from secure_access.models.cdfw_source import CdfwSource from secure_access.models.certificate import Certificate from secure_access.models.cisco_amp import CiscoAMP + from secure_access.models.classifications_inner import ClassificationsInner + from secure_access.models.classifications_inner_classifiers_inner import ClassificationsInnerClassifiersInner + from secure_access.models.classifications_inner_classifiers_inner_matches_inner import ClassificationsInnerClassifiersInnerMatchesInner + from secure_access.models.classifier_evaluation_strategy import ClassifierEvaluationStrategy from secure_access.models.client_based_access import ClientBasedAccess from secure_access.models.collection_reference_response import CollectionReferenceResponse from secure_access.models.collection_reference_response_results_inner import CollectionReferenceResponseResultsInner + from secure_access.models.columns_edm_create_inner import ColumnsEdmCreateInner + from secure_access.models.columns_edm_with_id_inner import ColumnsEdmWithIdInner + from secure_access.models.conditions_alert_rule import ConditionsAlertRule + from secure_access.models.conditions_alert_rule_rows_inner import ConditionsAlertRuleRowsInner from secure_access.models.connection import Connection from secure_access.models.connector_counts_response import ConnectorCountsResponse from secure_access.models.connector_group_counts_response import ConnectorGroupCountsResponse @@ -128,6 +150,8 @@ from secure_access.models.connector_response import ConnectorResponse from secure_access.models.content_category_setting import ContentCategorySetting from secure_access.models.create_api_keys_request import CreateAPIKeysRequest + from secure_access.models.create_alert_rule201_response import CreateAlertRule201Response + from secure_access.models.create_alert_rule_request import CreateAlertRuleRequest from secure_access.models.create_custom_ips_profile_request import CreateCustomIpsProfileRequest from secure_access.models.create_integration_credential_input_body import CreateIntegrationCredentialInputBody from secure_access.models.create_integration_input_body import CreateIntegrationInputBody @@ -143,14 +167,43 @@ from secure_access.models.credential import Credential from secure_access.models.credential_type import CredentialType from secure_access.models.credential_value import CredentialValue + from secure_access.models.custom_data_identifier import CustomDataIdentifier + from secure_access.models.custom_data_identifier_create_request import CustomDataIdentifierCreateRequest + from secure_access.models.custom_data_identifier_list_item import CustomDataIdentifierListItem + from secure_access.models.custom_data_identifier_update_request import CustomDataIdentifierUpdateRequest + from secure_access.models.dlp_rule import DLPRule + from secure_access.models.dlp_rule_create_request import DLPRuleCreateRequest + from secure_access.models.dlp_rule_event_by_type import DLPRuleEventByType + from secure_access.models.dlp_rule_event_by_type_rule import DLPRuleEventByTypeRule + from secure_access.models.dlp_rule_list_item import DLPRuleListItem + from secure_access.models.dlp_rule_patch_request import DLPRulePatchRequest from secure_access.models.dns_forwarder_create_response import DNSForwarderCreateResponse from secure_access.models.dns_forwarder_object import DNSForwarderObject from secure_access.models.dns_forwarder_object_create import DNSForwarderObjectCreate from secure_access.models.dns_forwarder_object_update import DNSForwarderObjectUpdate + from secure_access.models.data_classification import DataClassification + from secure_access.models.data_classification_create_request import DataClassificationCreateRequest + from secure_access.models.data_classification_list_item import DataClassificationListItem + from secure_access.models.data_classification_patch_request import DataClassificationPatchRequest + from secure_access.models.data_classification_type import DataClassificationType + from secure_access.models.data_loss_prevention_action import DataLossPreventionAction + from secure_access.models.data_loss_prevention_action2 import DataLossPreventionAction2 + from secure_access.models.data_loss_prevention_api_error_response import DataLossPreventionApiErrorResponse + from secure_access.models.data_loss_prevention_application import DataLossPreventionApplication + from secure_access.models.data_loss_prevention_application_category import DataLossPreventionApplicationCategory + from secure_access.models.data_loss_prevention_application_category2 import DataLossPreventionApplicationCategory2 + from secure_access.models.data_loss_prevention_destination import DataLossPreventionDestination + from secure_access.models.data_loss_prevention_identity import DataLossPreventionIdentity + from secure_access.models.data_loss_prevention_private_resource import DataLossPreventionPrivateResource + from secure_access.models.data_loss_prevention_private_resource_group import DataLossPreventionPrivateResourceGroup + from secure_access.models.data_loss_prevention_severity import DataLossPreventionSeverity + from secure_access.models.data_loss_prevention_severity2 import DataLossPreventionSeverity2 from secure_access.models.data_loss_prevention_state import DataLossPreventionState from secure_access.models.data_storage import DataStorage from secure_access.models.datacenter_hub import DatacenterHub from secure_access.models.datacenter_with_ip import DatacenterWithIP + from secure_access.models.delete_alert_rules200_response import DeleteAlertRules200Response + from secure_access.models.delete_alert_rules_request import DeleteAlertRulesRequest from secure_access.models.delete_private_resource200_response import DeletePrivateResource200Response from secure_access.models.delete_private_resource_group200_response import DeletePrivateResourceGroup200Response from secure_access.models.deployment_status import DeploymentStatus @@ -168,10 +221,16 @@ from secure_access.models.device import Device from secure_access.models.device_certificate_info import DeviceCertificateInfo from secure_access.models.device_type import DeviceType + from secure_access.models.dlp_rule_event import DlpRuleEvent from secure_access.models.dns_forwarders500_error import DnsForwarders500Error from secure_access.models.dns_forwarders_type import DnsForwardersType from secure_access.models.dns_source import DnsSource from secure_access.models.domain_categorization import DomainCategorization + from secure_access.models.edm_identifier_create_request import EDMIdentifierCreateRequest + from secure_access.models.edm_identifier_list_item import EDMIdentifierListItem + from secure_access.models.edm_identifier_response import EDMIdentifierResponse + from secure_access.models.edm_identifier_update_request import EDMIdentifierUpdateRequest + from secure_access.models.edm_type import EDMType from secure_access.models.egress import Egress from secure_access.models.enabled import Enabled from secure_access.models.environment import Environment @@ -181,6 +240,7 @@ from secure_access.models.feed_create import FeedCreate from secure_access.models.feed_object import FeedObject from secure_access.models.feed_patch import FeedPatch + from secure_access.models.file_metadata import FileMetadata from secure_access.models.filters_ntgs_object import FiltersNTGsObject from secure_access.models.filters_regions_object import FiltersRegionsObject from secure_access.models.financial_viability import FinancialViability @@ -261,6 +321,7 @@ from secure_access.models.get_top_urls200_response import GetTopUrls200Response from secure_access.models.get_total_requests_for_app_connector200_response import GetTotalRequestsForAppConnector200Response from secure_access.models.get_total_requests_for_app_connector_group200_response import GetTotalRequestsForAppConnectorGroup200Response + from secure_access.models.get_tunnel_events200_response import GetTunnelEvents200Response from secure_access.models.get_unique_resources200_response import GetUniqueResources200Response from secure_access.models.get_usage_metrics200_response import GetUsageMetrics200Response from secure_access.models.get_usage_metrics200_response_body import GetUsageMetrics200ResponseBody @@ -272,10 +333,14 @@ from secure_access.models.grid import Grid from secure_access.models.http_error import HttpError from secure_access.models.hub_state import HubState - from secure_access.models.hub_status import HubStatus from secure_access.models.hubs_inner import HubsInner from secure_access.models.hubs_with_ip_inner import HubsWithIPInner from secure_access.models.hubs_with_state_inner import HubsWithStateInner + from secure_access.models.idm_data_identifier_list_item import IDMDataIdentifierListItem + from secure_access.models.idm_data_identifier_response import IDMDataIdentifierResponse + from secure_access.models.idm_identifier_create_request import IDMIdentifierCreateRequest + from secure_access.models.idm_identifier_update_request import IDMIdentifierUpdateRequest + from secure_access.models.id_name_ref import IdNameRef from secure_access.models.identities_get_response_inner import IdentitiesGetResponseInner from secure_access.models.identities_registration500_error import IdentitiesRegistration500Error from secure_access.models.identities_registration_status import IdentitiesRegistrationStatus @@ -284,6 +349,7 @@ from secure_access.models.identity_endpoints_get_response import IdentityEndpointsGetResponse from secure_access.models.identity_type import IdentityType from secure_access.models.identity_with_stats import IdentityWithStats + from secure_access.models.idm_accuracy import IdmAccuracy from secure_access.models.integration import Integration from secure_access.models.integration_status import IntegrationStatus from secure_access.models.integration_type import IntegrationType @@ -321,14 +387,24 @@ from secure_access.models.keys_information_inner import KeysInformationInner from secure_access.models.keys_response_list import KeysResponseList from secure_access.models.label import Label + from secure_access.models.label_action_parameters import LabelActionParameters + from secure_access.models.label_criteria import LabelCriteria + from secure_access.models.level import Level + from secure_access.models.list_ai_guardrails_dlp_rule_events import ListAiGuardrailsDlpRuleEvents + from secure_access.models.list_alerts200_response import ListAlerts200Response + from secure_access.models.list_alerts_response import ListAlertsResponse from secure_access.models.list_application_categories_response_inner import ListApplicationCategoriesResponseInner from secure_access.models.list_int_types_output_body import ListIntTypesOutputBody from secure_access.models.list_integrations_output_body import ListIntegrationsOutputBody from secure_access.models.list_network_objects200_response import ListNetworkObjects200Response from secure_access.models.list_private_resources_filters_parameter import ListPrivateResourcesFiltersParameter + from secure_access.models.list_real_time_dlp_rule_events import ListRealTimeDlpRuleEvents from secure_access.models.list_resource_groups_filters_parameter import ListResourceGroupsFiltersParameter + from secure_access.models.list_saa_s_api_dlp_rule_events import ListSaaSApiDlpRuleEvents from secure_access.models.list_security_profiles_response_inner import ListSecurityProfilesResponseInner from secure_access.models.list_tenant_controls_profiles_response_inner import ListTenantControlsProfilesResponseInner + from secure_access.models.list_tenants_filters_parameter import ListTenantsFiltersParameter + from secure_access.models.list_tenants_sort_parameter import ListTenantsSortParameter from secure_access.models.list_unified_network_objects200_response import ListUnifiedNetworkObjects200Response from secure_access.models.list_unified_network_objects200_response_results_inner import ListUnifiedNetworkObjects200ResponseResultsInner from secure_access.models.list_unified_network_objects200_response_results_inner_any_of import ListUnifiedNetworkObjects200ResponseResultsInnerAnyOf @@ -345,6 +421,12 @@ from secure_access.models.metering403_error import Metering403Error from secure_access.models.metering404_error import Metering404Error from secure_access.models.metering500_error import Metering500Error + from secure_access.models.model207_activity_multi_status import Model207ActivityMultiStatus + from secure_access.models.model207_activity_multi_status_meta import Model207ActivityMultiStatusMeta + from secure_access.models.model207_partial_response import Model207PartialResponse + from secure_access.models.model207_total_requests_multi_status import Model207TotalRequestsMultiStatus + from secure_access.models.model207_total_requests_multi_status_data import Model207TotalRequestsMultiStatusData + from secure_access.models.model207_total_requests_multi_status_meta import Model207TotalRequestsMultiStatusMeta from secure_access.models.model400_bulk_states_error import Model400BulkStatesError from secure_access.models.model400_bulk_states_error_validation_errors import Model400BulkStatesErrorValidationErrors from secure_access.models.model400_connector_agent_error import Model400ConnectorAgentError @@ -373,8 +455,15 @@ from secure_access.models.model404_error import Model404Error from secure_access.models.model404_error_object import Model404ErrorObject from secure_access.models.model409_error import Model409Error + from secure_access.models.model422_error import Model422Error + from secure_access.models.model429_error import Model429Error from secure_access.models.model500_error import Model500Error from secure_access.models.model500_error_object import Model500ErrorObject + from secure_access.models.multi_tenants400_error import MultiTenants400Error + from secure_access.models.multi_tenants401_error import MultiTenants401Error + from secure_access.models.multi_tenants403_error import MultiTenants403Error + from secure_access.models.multi_tenants404_error import MultiTenants404Error + from secure_access.models.multi_tenants500_error import MultiTenants500Error from secure_access.models.network_based_access import NetworkBasedAccess from secure_access.models.network_device_create import NetworkDeviceCreate from secure_access.models.network_device_entity import NetworkDeviceEntity @@ -389,6 +478,7 @@ from secure_access.models.network_object_request_schema_value import NetworkObjectRequestSchemaValue from secure_access.models.network_object_response_schema import NetworkObjectResponseSchema from secure_access.models.network_object_response_schema_value import NetworkObjectResponseSchemaValue + from secure_access.models.network_tunnel_event import NetworkTunnelEvent from secure_access.models.network_tunnel_group_bulk_state_response import NetworkTunnelGroupBulkStateResponse from secure_access.models.network_tunnel_group_list_response import NetworkTunnelGroupListResponse from secure_access.models.network_tunnel_group_response import NetworkTunnelGroupResponse @@ -401,6 +491,22 @@ from secure_access.models.not_found_data import NotFoundData from secure_access.models.not_found_error import NotFoundError from secure_access.models.not_found_status import NotFoundStatus + from secure_access.models.notification_info_alert_rule import NotificationInfoAlertRule + from secure_access.models.notification_type_all import NotificationTypeAll + from secure_access.models.notification_type_email import NotificationTypeEmail + from secure_access.models.oob_exposure_config import OOBExposureConfig + from secure_access.models.oob_exposure_item import OOBExposureItem + from secure_access.models.oob_incremental_config import OOBIncrementalConfig + from secure_access.models.oob_instance_config import OOBInstanceConfig + from secure_access.models.oob_patch_incremental_config import OOBPatchIncrementalConfig + from secure_access.models.oob_platform_config import OOBPlatformConfig + from secure_access.models.oob_rule_create_request import OOBRuleCreateRequest + from secure_access.models.oob_rule_create_request_with_classifications import OOBRuleCreateRequestWithClassifications + from secure_access.models.oob_rule_create_request_with_file_size_from import OOBRuleCreateRequestWithFileSizeFrom + from secure_access.models.oob_rule_create_request_with_labels import OOBRuleCreateRequestWithLabels + from secure_access.models.oob_rule_create_request_with_mip_tags import OOBRuleCreateRequestWithMipTags + from secure_access.models.oob_rule_patch_request import OOBRulePatchRequest + from secure_access.models.oob_rule_response import OOBRuleResponse from secure_access.models.object_reference_response import ObjectReferenceResponse from secure_access.models.op import Op from secure_access.models.org_info import OrgInfo @@ -418,13 +524,16 @@ from secure_access.models.policy_rules403_error import PolicyRules403Error from secure_access.models.policy_rules404_error import PolicyRules404Error from secure_access.models.policy_rules500_error import PolicyRules500Error + from secure_access.models.policy_rules_rule import PolicyRulesRule from secure_access.models.policy_rules_rules import PolicyRulesRules from secure_access.models.policy_ztna import PolicyZTNA from secure_access.models.post_identities_request import PostIdentitiesRequest from secure_access.models.private_application_group import PrivateApplicationGroup + from secure_access.models.private_resource import PrivateResource from secure_access.models.private_resource_detailed_stats_identities import PrivateResourceDetailedStatsIdentities from secure_access.models.private_resource_detailed_stats_timerange import PrivateResourceDetailedStatsTimerange from secure_access.models.private_resource_detailed_stats_timerange_total_hits_count import PrivateResourceDetailedStatsTimerangeTotalHitsCount + from secure_access.models.private_resource_group import PrivateResourceGroup from secure_access.models.private_resource_group_list import PrivateResourceGroupList from secure_access.models.private_resource_group_request import PrivateResourceGroupRequest from secure_access.models.private_resource_group_response import PrivateResourceGroupResponse @@ -448,6 +557,7 @@ from secure_access.models.put_rule_request import PutRuleRequest from secure_access.models.put_rules_request import PutRulesRequest from secure_access.models.put_rules_request_properties_inner import PutRulesRequestPropertiesInner + from secure_access.models.real_time_dlp_rule_event import RealTimeDlpRuleEvent from secure_access.models.record import Record from secure_access.models.referenced_groups_response_schema import ReferencedGroupsResponseSchema from secure_access.models.referenced_rules_response_schema import ReferencedRulesResponseSchema @@ -465,9 +575,13 @@ from secure_access.models.reporting403_error import Reporting403Error from secure_access.models.reporting404_error import Reporting404Error from secure_access.models.reporting500_error import Reporting500Error + from secure_access.models.reporting_application import ReportingApplication + from secure_access.models.reporting_application_category import ReportingApplicationCategory from secure_access.models.reporting_category import ReportingCategory from secure_access.models.reporting_data_center import ReportingDataCenter + from secure_access.models.reporting_identity import ReportingIdentity from secure_access.models.reporting_rule import ReportingRule + from secure_access.models.reporting_severity import ReportingSeverity from secure_access.models.reporting_summary import ReportingSummary from secure_access.models.request_and_connection_counts import RequestAndConnectionCounts from secure_access.models.request_counts import RequestCounts @@ -485,6 +599,7 @@ from secure_access.models.resource_connector_groups401_error import ResourceConnectorGroups401Error from secure_access.models.resource_connector_groups403_error import ResourceConnectorGroups403Error from secure_access.models.resource_connector_groups404_error import ResourceConnectorGroups404Error + from secure_access.models.resource_connector_groups409_error import ResourceConnectorGroups409Error from secure_access.models.resource_connector_groups500_error import ResourceConnectorGroups500Error from secure_access.models.response import Response from secure_access.models.response_data import ResponseData @@ -510,6 +625,7 @@ from secure_access.models.rule_param import RuleParam from secure_access.models.rule_settings_inner import RuleSettingsInner from secure_access.models.rule_source_dest_filters import RuleSourceDestFilters + from secure_access.models.rule_type import RuleType from secure_access.models.rules_activity import RulesActivity from secure_access.models.rules_activity200_response import RulesActivity200Response from secure_access.models.rules_response_inner import RulesResponseInner @@ -519,15 +635,27 @@ from secure_access.models.s3_bucket403_error import S3Bucket403Error from secure_access.models.s3_bucket404_error import S3Bucket404Error from secure_access.models.s3_bucket500_error import S3Bucket500Error + from secure_access.models.saas_api_dlp_rule_event import SaasApiDlpRuleEvent + from secure_access.models.saas_api_event_user import SaasApiEventUser from secure_access.models.sample import Sample from secure_access.models.sample_hash_behaviors import SampleHashBehaviors from secure_access.models.sample_hash_connections import SampleHashConnections from secure_access.models.sample_hash_samples import SampleHashSamples + from secure_access.models.scannable_context import ScannableContext + from secure_access.models.security_events_config import SecurityEventsConfig + from secure_access.models.security_events_config_input import SecurityEventsConfigInput + from secure_access.models.security_events_config_patch_input import SecurityEventsConfigPatchInput + from secure_access.models.security_feeds_bad_request_error import SecurityFeedsBadRequestError + from secure_access.models.security_feeds_forbidden_error import SecurityFeedsForbiddenError + from secure_access.models.security_feeds_not_found_error import SecurityFeedsNotFoundError + from secure_access.models.security_feeds_server_error import SecurityFeedsServerError + from secure_access.models.security_feeds_unauthorized_error import SecurityFeedsUnauthorizedError from secure_access.models.security_group_tag_identity_get_response import SecurityGroupTagIdentityGetResponse from secure_access.models.security_profile_response import SecurityProfileResponse from secure_access.models.server_error import ServerError from secure_access.models.server_error_data import ServerErrorData from secure_access.models.server_error_status import ServerErrorStatus + from secure_access.models.service_name import ServiceName from secure_access.models.service_object_group_request_schema import ServiceObjectGroupRequestSchema from secure_access.models.service_object_group_response_schema import ServiceObjectGroupResponseSchema from secure_access.models.service_object_group_response_schema_groups_inner import ServiceObjectGroupResponseSchemaGroupsInner @@ -545,7 +673,7 @@ from secure_access.models.settings_request_object import SettingsRequestObject from secure_access.models.settings_response_inner import SettingsResponseInner from secure_access.models.settings_response_object import SettingsResponseObject - from secure_access.models.severity import Severity + from secure_access.models.severity_alert import SeverityAlert from secure_access.models.signature import Signature from secure_access.models.signature_list import SignatureList from secure_access.models.signature_list_summary import SignatureListSummary @@ -557,6 +685,8 @@ from secure_access.models.static_data_request_obj import StaticDataRequestObj from secure_access.models.static_data_response_obj import StaticDataResponseObj from secure_access.models.status import Status + from secure_access.models.status_alert import StatusAlert + from secure_access.models.status_alert_rule import StatusAlertRule from secure_access.models.status_code import StatusCode from secure_access.models.status_code_body import StatusCodeBody from secure_access.models.subdomains_inner import SubdomainsInner @@ -568,8 +698,12 @@ from secure_access.models.system_mode import SystemMode from secure_access.models.tenant_controls_restriction import TenantControlsRestriction from secure_access.models.tenant_controls_restrictions_inner import TenantControlsRestrictionsInner + from secure_access.models.tenant_response import TenantResponse from secure_access.models.terminate_sessions import TerminateSessions from secure_access.models.terminate_sessions_failed import TerminateSessionsFailed + from secure_access.models.test_email_notification_response import TestEmailNotificationResponse + from secure_access.models.test_email_notification_response_results_inner import TestEmailNotificationResponseResultsInner + from secure_access.models.test_notification import TestNotification from secure_access.models.third_party_integrations400_error import ThirdPartyIntegrations400Error from secure_access.models.third_party_integrations401_error import ThirdPartyIntegrations401Error from secure_access.models.third_party_integrations403_error import ThirdPartyIntegrations403Error @@ -577,13 +711,9 @@ from secure_access.models.third_party_integrations500_error import ThirdPartyIntegrations500Error from secure_access.models.third_party_integrations_integration_type import ThirdPartyIntegrationsIntegrationType from secure_access.models.threat import Threat - from secure_access.models.threat_intelligence_feeds_bad_request_error import ThreatIntelligenceFeedsBadRequestError - from secure_access.models.threat_intelligence_feeds_forbidden_error import ThreatIntelligenceFeedsForbiddenError - from secure_access.models.threat_intelligence_feeds_not_found_error import ThreatIntelligenceFeedsNotFoundError - from secure_access.models.threat_intelligence_feeds_server_error import ThreatIntelligenceFeedsServerError - from secure_access.models.threat_intelligence_feeds_unauthorized_error import ThreatIntelligenceFeedsUnauthorizedError from secure_access.models.threat_name import ThreatName from secure_access.models.threat_type import ThreatType + from secure_access.models.time_range import TimeRange from secure_access.models.time_series_app_connector_agent_data import TimeSeriesAppConnectorAgentData from secure_access.models.time_series_app_connector_group_data import TimeSeriesAppConnectorGroupData from secure_access.models.time_series_hits_count import TimeSeriesHitsCount @@ -606,7 +736,9 @@ from secure_access.models.top_threat_types import TopThreatTypes from secure_access.models.top_threats import TopThreats from secure_access.models.top_url import TopURL + from secure_access.models.total_count_alerts_response import TotalCountAlertsResponse from secure_access.models.total_request import TotalRequest + from secure_access.models.traffic_direction_type import TrafficDirectionType from secure_access.models.tunnel_data_state import TunnelDataState from secure_access.models.tunnel_ike_state import TunnelIKEState from secure_access.models.tunnel_ip_sec_state import TunnelIPSecState @@ -627,16 +759,21 @@ from secure_access.models.unified_service_object_type import UnifiedServiceObjectType from secure_access.models.unique_resources import UniqueResources from secure_access.models.unsupported_media_error import UnsupportedMediaError + from secure_access.models.update_alert_rule200_response import UpdateAlertRule200Response + from secure_access.models.update_alert_rules_status200_response import UpdateAlertRulesStatus200Response + from secure_access.models.update_alerts_status200_response import UpdateAlertsStatus200Response + from secure_access.models.update_alerts_status_request import UpdateAlertsStatusRequest from secure_access.models.update_application_request import UpdateApplicationRequest from secure_access.models.update_identities200_response import UpdateIdentities200Response from secure_access.models.update_identities_request_inner import UpdateIdentitiesRequestInner - from secure_access.models.update_identity_endpoints import UpdateIdentityEndpoints + from secure_access.models.update_identity_devices import UpdateIdentityDevices from secure_access.models.update_ips_profile_request_inner import UpdateIpsProfileRequestInner from secure_access.models.update_ips_profile_request_inner_value import UpdateIpsProfileRequestInnerValue from secure_access.models.update_network403_response import UpdateNetwork403Response from secure_access.models.update_network_request import UpdateNetworkRequest from secure_access.models.update_roaming_computer_request import UpdateRoamingComputerRequest from secure_access.models.update_security_group_tags import UpdateSecurityGroupTags + from secure_access.models.update_virtual_appliance_request import UpdateVirtualApplianceRequest from secure_access.models.update_vpn_connections_request import UpdateVpnConnectionsRequest from secure_access.models.upload_response import UploadResponse from secure_access.models.usage import Usage @@ -654,6 +791,11 @@ from secure_access.models.values_service_object_group_inner import ValuesServiceObjectGroupInner from secure_access.models.verdict import Verdict from secure_access.models.verdict_detected import VerdictDetected + from secure_access.models.virtual_appliance_object import VirtualApplianceObject + from secure_access.models.virtual_appliance_object_settings import VirtualApplianceObjectSettings + from secure_access.models.virtual_appliance_object_state import VirtualApplianceObjectState + from secure_access.models.virtual_appliances500_error import VirtualAppliances500Error + from secure_access.models.vpn_user_connections_action import VpnUserConnectionsAction from secure_access.models.webhook_config import WebhookConfig from secure_access.models.webhook_config_input import WebhookConfigInput from secure_access.models.weighted_risk import WeightedRisk @@ -661,12 +803,6 @@ from secure_access.models.whois_emails_and_nameservers import WhoisEmailsAndNameservers from secure_access.models.zero_trust_user_devices_error import ZeroTrustUserDevicesError from secure_access.models.zero_trust_user_devices_unauthorized_error import ZeroTrustUserDevicesUnauthorizedError - from secure_access.models.ztna_application import ZtnaApplication - from secure_access.models.ztna_application_category import ZtnaApplicationCategory - from secure_access.models.ztna_policy import ZtnaPolicy - from secure_access.models.ztna_policy_privateapplicationgroup import ZtnaPolicyPrivateapplicationgroup - from secure_access.models.ztna_policy_ruleset import ZtnaPolicyRuleset - from secure_access.models.ztna_summary import ZtnaSummary else: from lazy_imports import LazyModule, as_package, load @@ -676,15 +812,14 @@ *as_package(__file__), """# import models into model package from secure_access.models.access import Access +from secure_access.models.access_rule_context import AccessRuleContext from secure_access.models.access_types_inner import AccessTypesInner from secure_access.models.access_types_request_inner import AccessTypesRequestInner -from secure_access.models.action import Action from secure_access.models.action_counts import ActionCounts from secure_access.models.activity_amp_retro import ActivityAMPRetro from secure_access.models.activity_decryption import ActivityDecryption from secure_access.models.activity_dns import ActivityDns from secure_access.models.activity_firewall import ActivityFirewall -from secure_access.models.activity_ip import ActivityIP from secure_access.models.activity_intrusion import ActivityIntrusion from secure_access.models.activity_proxy import ActivityProxy from secure_access.models.activity_ztna import ActivityZTNA @@ -693,8 +828,19 @@ from secure_access.models.add_network_tunnel_group_request import AddNetworkTunnelGroupRequest from secure_access.models.add_network_tunnel_group_request_auth_id_prefix import AddNetworkTunnelGroupRequestAuthIdPrefix from secure_access.models.add_rule_request import AddRuleRequest +from secure_access.models.ai_guardrails_dlp_rule_event import AiGuardrailsDlpRuleEvent +from secure_access.models.alert import Alert +from secure_access.models.alert_rule import AlertRule +from secure_access.models.alert_with_additional_context import AlertWithAdditionalContext +from secure_access.models.alerting400_error import Alerting400Error +from secure_access.models.alerting401_error import Alerting401Error +from secure_access.models.alerting403_error import Alerting403Error +from secure_access.models.alerting404_error import Alerting404Error +from secure_access.models.alerting500_error import Alerting500Error +from secure_access.models.all_destinations_scope import AllDestinationsScope from secure_access.models.already_exists_error import AlreadyExistsError from secure_access.models.antivirus_threats import AntivirusThreats +from secure_access.models.api_error_response import ApiErrorResponse from secure_access.models.api_usage_api400_error import ApiUsageApi400Error from secure_access.models.api_usage_api401_error import ApiUsageApi401Error from secure_access.models.api_usage_api403_error import ApiUsageApi403Error @@ -731,6 +877,7 @@ from secure_access.models.application_object import ApplicationObject from secure_access.models.application_risk import ApplicationRisk from secure_access.models.application_risk_vendor_compliance_inner import ApplicationRiskVendorComplianceInner +from secure_access.models.application_saas_api import ApplicationSaasAPI from secure_access.models.application_usage_response_inner import ApplicationUsageResponseInner from secure_access.models.application_usage_response_inner_used_by import ApplicationUsageResponseInnerUsedBy from secure_access.models.application_usage_response_inner_used_by_application_lists_inner import ApplicationUsageResponseInnerUsedByApplicationListsInner @@ -752,6 +899,7 @@ from secure_access.models.bad_request_status import BadRequestStatus from secure_access.models.bandwidthby_hour import BandwidthbyHour from secure_access.models.behavior import Behavior +from secure_access.models.behavior_analytics_context import BehaviorAnalyticsContext from secure_access.models.bgp import Bgp from secure_access.models.bgp_data_request_obj import BgpDataRequestObj from secure_access.models.bgp_data_response_obj import BgpDataResponseObj @@ -759,6 +907,8 @@ from secure_access.models.browser_based_access_common import BrowserBasedAccessCommon from secure_access.models.browser_based_access_request import BrowserBasedAccessRequest from secure_access.models.browser_based_access_response import BrowserBasedAccessResponse +from secure_access.models.built_in_data_identifier import BuiltInDataIdentifier +from secure_access.models.built_in_data_identifier_list_item import BuiltInDataIdentifierListItem from secure_access.models.bulk_label_applications import BulkLabelApplications from secure_access.models.bundle_type_id import BundleTypeId from secure_access.models.business_risk import BusinessRisk @@ -768,9 +918,17 @@ from secure_access.models.cdfw_source import CdfwSource from secure_access.models.certificate import Certificate from secure_access.models.cisco_amp import CiscoAMP +from secure_access.models.classifications_inner import ClassificationsInner +from secure_access.models.classifications_inner_classifiers_inner import ClassificationsInnerClassifiersInner +from secure_access.models.classifications_inner_classifiers_inner_matches_inner import ClassificationsInnerClassifiersInnerMatchesInner +from secure_access.models.classifier_evaluation_strategy import ClassifierEvaluationStrategy from secure_access.models.client_based_access import ClientBasedAccess from secure_access.models.collection_reference_response import CollectionReferenceResponse from secure_access.models.collection_reference_response_results_inner import CollectionReferenceResponseResultsInner +from secure_access.models.columns_edm_create_inner import ColumnsEdmCreateInner +from secure_access.models.columns_edm_with_id_inner import ColumnsEdmWithIdInner +from secure_access.models.conditions_alert_rule import ConditionsAlertRule +from secure_access.models.conditions_alert_rule_rows_inner import ConditionsAlertRuleRowsInner from secure_access.models.connection import Connection from secure_access.models.connector_counts_response import ConnectorCountsResponse from secure_access.models.connector_group_counts_response import ConnectorGroupCountsResponse @@ -784,6 +942,8 @@ from secure_access.models.connector_response import ConnectorResponse from secure_access.models.content_category_setting import ContentCategorySetting from secure_access.models.create_api_keys_request import CreateAPIKeysRequest +from secure_access.models.create_alert_rule201_response import CreateAlertRule201Response +from secure_access.models.create_alert_rule_request import CreateAlertRuleRequest from secure_access.models.create_custom_ips_profile_request import CreateCustomIpsProfileRequest from secure_access.models.create_integration_credential_input_body import CreateIntegrationCredentialInputBody from secure_access.models.create_integration_input_body import CreateIntegrationInputBody @@ -799,14 +959,43 @@ from secure_access.models.credential import Credential from secure_access.models.credential_type import CredentialType from secure_access.models.credential_value import CredentialValue +from secure_access.models.custom_data_identifier import CustomDataIdentifier +from secure_access.models.custom_data_identifier_create_request import CustomDataIdentifierCreateRequest +from secure_access.models.custom_data_identifier_list_item import CustomDataIdentifierListItem +from secure_access.models.custom_data_identifier_update_request import CustomDataIdentifierUpdateRequest +from secure_access.models.dlp_rule import DLPRule +from secure_access.models.dlp_rule_create_request import DLPRuleCreateRequest +from secure_access.models.dlp_rule_event_by_type import DLPRuleEventByType +from secure_access.models.dlp_rule_event_by_type_rule import DLPRuleEventByTypeRule +from secure_access.models.dlp_rule_list_item import DLPRuleListItem +from secure_access.models.dlp_rule_patch_request import DLPRulePatchRequest from secure_access.models.dns_forwarder_create_response import DNSForwarderCreateResponse from secure_access.models.dns_forwarder_object import DNSForwarderObject from secure_access.models.dns_forwarder_object_create import DNSForwarderObjectCreate from secure_access.models.dns_forwarder_object_update import DNSForwarderObjectUpdate +from secure_access.models.data_classification import DataClassification +from secure_access.models.data_classification_create_request import DataClassificationCreateRequest +from secure_access.models.data_classification_list_item import DataClassificationListItem +from secure_access.models.data_classification_patch_request import DataClassificationPatchRequest +from secure_access.models.data_classification_type import DataClassificationType +from secure_access.models.data_loss_prevention_action import DataLossPreventionAction +from secure_access.models.data_loss_prevention_action2 import DataLossPreventionAction2 +from secure_access.models.data_loss_prevention_api_error_response import DataLossPreventionApiErrorResponse +from secure_access.models.data_loss_prevention_application import DataLossPreventionApplication +from secure_access.models.data_loss_prevention_application_category import DataLossPreventionApplicationCategory +from secure_access.models.data_loss_prevention_application_category2 import DataLossPreventionApplicationCategory2 +from secure_access.models.data_loss_prevention_destination import DataLossPreventionDestination +from secure_access.models.data_loss_prevention_identity import DataLossPreventionIdentity +from secure_access.models.data_loss_prevention_private_resource import DataLossPreventionPrivateResource +from secure_access.models.data_loss_prevention_private_resource_group import DataLossPreventionPrivateResourceGroup +from secure_access.models.data_loss_prevention_severity import DataLossPreventionSeverity +from secure_access.models.data_loss_prevention_severity2 import DataLossPreventionSeverity2 from secure_access.models.data_loss_prevention_state import DataLossPreventionState from secure_access.models.data_storage import DataStorage from secure_access.models.datacenter_hub import DatacenterHub from secure_access.models.datacenter_with_ip import DatacenterWithIP +from secure_access.models.delete_alert_rules200_response import DeleteAlertRules200Response +from secure_access.models.delete_alert_rules_request import DeleteAlertRulesRequest from secure_access.models.delete_private_resource200_response import DeletePrivateResource200Response from secure_access.models.delete_private_resource_group200_response import DeletePrivateResourceGroup200Response from secure_access.models.deployment_status import DeploymentStatus @@ -824,10 +1013,16 @@ from secure_access.models.device import Device from secure_access.models.device_certificate_info import DeviceCertificateInfo from secure_access.models.device_type import DeviceType +from secure_access.models.dlp_rule_event import DlpRuleEvent from secure_access.models.dns_forwarders500_error import DnsForwarders500Error from secure_access.models.dns_forwarders_type import DnsForwardersType from secure_access.models.dns_source import DnsSource from secure_access.models.domain_categorization import DomainCategorization +from secure_access.models.edm_identifier_create_request import EDMIdentifierCreateRequest +from secure_access.models.edm_identifier_list_item import EDMIdentifierListItem +from secure_access.models.edm_identifier_response import EDMIdentifierResponse +from secure_access.models.edm_identifier_update_request import EDMIdentifierUpdateRequest +from secure_access.models.edm_type import EDMType from secure_access.models.egress import Egress from secure_access.models.enabled import Enabled from secure_access.models.environment import Environment @@ -837,6 +1032,7 @@ from secure_access.models.feed_create import FeedCreate from secure_access.models.feed_object import FeedObject from secure_access.models.feed_patch import FeedPatch +from secure_access.models.file_metadata import FileMetadata from secure_access.models.filters_ntgs_object import FiltersNTGsObject from secure_access.models.filters_regions_object import FiltersRegionsObject from secure_access.models.financial_viability import FinancialViability @@ -917,6 +1113,7 @@ from secure_access.models.get_top_urls200_response import GetTopUrls200Response from secure_access.models.get_total_requests_for_app_connector200_response import GetTotalRequestsForAppConnector200Response from secure_access.models.get_total_requests_for_app_connector_group200_response import GetTotalRequestsForAppConnectorGroup200Response +from secure_access.models.get_tunnel_events200_response import GetTunnelEvents200Response from secure_access.models.get_unique_resources200_response import GetUniqueResources200Response from secure_access.models.get_usage_metrics200_response import GetUsageMetrics200Response from secure_access.models.get_usage_metrics200_response_body import GetUsageMetrics200ResponseBody @@ -928,10 +1125,14 @@ from secure_access.models.grid import Grid from secure_access.models.http_error import HttpError from secure_access.models.hub_state import HubState -from secure_access.models.hub_status import HubStatus from secure_access.models.hubs_inner import HubsInner from secure_access.models.hubs_with_ip_inner import HubsWithIPInner from secure_access.models.hubs_with_state_inner import HubsWithStateInner +from secure_access.models.idm_data_identifier_list_item import IDMDataIdentifierListItem +from secure_access.models.idm_data_identifier_response import IDMDataIdentifierResponse +from secure_access.models.idm_identifier_create_request import IDMIdentifierCreateRequest +from secure_access.models.idm_identifier_update_request import IDMIdentifierUpdateRequest +from secure_access.models.id_name_ref import IdNameRef from secure_access.models.identities_get_response_inner import IdentitiesGetResponseInner from secure_access.models.identities_registration500_error import IdentitiesRegistration500Error from secure_access.models.identities_registration_status import IdentitiesRegistrationStatus @@ -940,6 +1141,7 @@ from secure_access.models.identity_endpoints_get_response import IdentityEndpointsGetResponse from secure_access.models.identity_type import IdentityType from secure_access.models.identity_with_stats import IdentityWithStats +from secure_access.models.idm_accuracy import IdmAccuracy from secure_access.models.integration import Integration from secure_access.models.integration_status import IntegrationStatus from secure_access.models.integration_type import IntegrationType @@ -977,14 +1179,24 @@ from secure_access.models.keys_information_inner import KeysInformationInner from secure_access.models.keys_response_list import KeysResponseList from secure_access.models.label import Label +from secure_access.models.label_action_parameters import LabelActionParameters +from secure_access.models.label_criteria import LabelCriteria +from secure_access.models.level import Level +from secure_access.models.list_ai_guardrails_dlp_rule_events import ListAiGuardrailsDlpRuleEvents +from secure_access.models.list_alerts200_response import ListAlerts200Response +from secure_access.models.list_alerts_response import ListAlertsResponse from secure_access.models.list_application_categories_response_inner import ListApplicationCategoriesResponseInner from secure_access.models.list_int_types_output_body import ListIntTypesOutputBody from secure_access.models.list_integrations_output_body import ListIntegrationsOutputBody from secure_access.models.list_network_objects200_response import ListNetworkObjects200Response from secure_access.models.list_private_resources_filters_parameter import ListPrivateResourcesFiltersParameter +from secure_access.models.list_real_time_dlp_rule_events import ListRealTimeDlpRuleEvents from secure_access.models.list_resource_groups_filters_parameter import ListResourceGroupsFiltersParameter +from secure_access.models.list_saa_s_api_dlp_rule_events import ListSaaSApiDlpRuleEvents from secure_access.models.list_security_profiles_response_inner import ListSecurityProfilesResponseInner from secure_access.models.list_tenant_controls_profiles_response_inner import ListTenantControlsProfilesResponseInner +from secure_access.models.list_tenants_filters_parameter import ListTenantsFiltersParameter +from secure_access.models.list_tenants_sort_parameter import ListTenantsSortParameter from secure_access.models.list_unified_network_objects200_response import ListUnifiedNetworkObjects200Response from secure_access.models.list_unified_network_objects200_response_results_inner import ListUnifiedNetworkObjects200ResponseResultsInner from secure_access.models.list_unified_network_objects200_response_results_inner_any_of import ListUnifiedNetworkObjects200ResponseResultsInnerAnyOf @@ -1001,6 +1213,12 @@ from secure_access.models.metering403_error import Metering403Error from secure_access.models.metering404_error import Metering404Error from secure_access.models.metering500_error import Metering500Error +from secure_access.models.model207_activity_multi_status import Model207ActivityMultiStatus +from secure_access.models.model207_activity_multi_status_meta import Model207ActivityMultiStatusMeta +from secure_access.models.model207_partial_response import Model207PartialResponse +from secure_access.models.model207_total_requests_multi_status import Model207TotalRequestsMultiStatus +from secure_access.models.model207_total_requests_multi_status_data import Model207TotalRequestsMultiStatusData +from secure_access.models.model207_total_requests_multi_status_meta import Model207TotalRequestsMultiStatusMeta from secure_access.models.model400_bulk_states_error import Model400BulkStatesError from secure_access.models.model400_bulk_states_error_validation_errors import Model400BulkStatesErrorValidationErrors from secure_access.models.model400_connector_agent_error import Model400ConnectorAgentError @@ -1029,8 +1247,15 @@ from secure_access.models.model404_error import Model404Error from secure_access.models.model404_error_object import Model404ErrorObject from secure_access.models.model409_error import Model409Error +from secure_access.models.model422_error import Model422Error +from secure_access.models.model429_error import Model429Error from secure_access.models.model500_error import Model500Error from secure_access.models.model500_error_object import Model500ErrorObject +from secure_access.models.multi_tenants400_error import MultiTenants400Error +from secure_access.models.multi_tenants401_error import MultiTenants401Error +from secure_access.models.multi_tenants403_error import MultiTenants403Error +from secure_access.models.multi_tenants404_error import MultiTenants404Error +from secure_access.models.multi_tenants500_error import MultiTenants500Error from secure_access.models.network_based_access import NetworkBasedAccess from secure_access.models.network_device_create import NetworkDeviceCreate from secure_access.models.network_device_entity import NetworkDeviceEntity @@ -1045,6 +1270,7 @@ from secure_access.models.network_object_request_schema_value import NetworkObjectRequestSchemaValue from secure_access.models.network_object_response_schema import NetworkObjectResponseSchema from secure_access.models.network_object_response_schema_value import NetworkObjectResponseSchemaValue +from secure_access.models.network_tunnel_event import NetworkTunnelEvent from secure_access.models.network_tunnel_group_bulk_state_response import NetworkTunnelGroupBulkStateResponse from secure_access.models.network_tunnel_group_list_response import NetworkTunnelGroupListResponse from secure_access.models.network_tunnel_group_response import NetworkTunnelGroupResponse @@ -1057,6 +1283,22 @@ from secure_access.models.not_found_data import NotFoundData from secure_access.models.not_found_error import NotFoundError from secure_access.models.not_found_status import NotFoundStatus +from secure_access.models.notification_info_alert_rule import NotificationInfoAlertRule +from secure_access.models.notification_type_all import NotificationTypeAll +from secure_access.models.notification_type_email import NotificationTypeEmail +from secure_access.models.oob_exposure_config import OOBExposureConfig +from secure_access.models.oob_exposure_item import OOBExposureItem +from secure_access.models.oob_incremental_config import OOBIncrementalConfig +from secure_access.models.oob_instance_config import OOBInstanceConfig +from secure_access.models.oob_patch_incremental_config import OOBPatchIncrementalConfig +from secure_access.models.oob_platform_config import OOBPlatformConfig +from secure_access.models.oob_rule_create_request import OOBRuleCreateRequest +from secure_access.models.oob_rule_create_request_with_classifications import OOBRuleCreateRequestWithClassifications +from secure_access.models.oob_rule_create_request_with_file_size_from import OOBRuleCreateRequestWithFileSizeFrom +from secure_access.models.oob_rule_create_request_with_labels import OOBRuleCreateRequestWithLabels +from secure_access.models.oob_rule_create_request_with_mip_tags import OOBRuleCreateRequestWithMipTags +from secure_access.models.oob_rule_patch_request import OOBRulePatchRequest +from secure_access.models.oob_rule_response import OOBRuleResponse from secure_access.models.object_reference_response import ObjectReferenceResponse from secure_access.models.op import Op from secure_access.models.org_info import OrgInfo @@ -1074,13 +1316,16 @@ from secure_access.models.policy_rules403_error import PolicyRules403Error from secure_access.models.policy_rules404_error import PolicyRules404Error from secure_access.models.policy_rules500_error import PolicyRules500Error +from secure_access.models.policy_rules_rule import PolicyRulesRule from secure_access.models.policy_rules_rules import PolicyRulesRules from secure_access.models.policy_ztna import PolicyZTNA from secure_access.models.post_identities_request import PostIdentitiesRequest from secure_access.models.private_application_group import PrivateApplicationGroup +from secure_access.models.private_resource import PrivateResource from secure_access.models.private_resource_detailed_stats_identities import PrivateResourceDetailedStatsIdentities from secure_access.models.private_resource_detailed_stats_timerange import PrivateResourceDetailedStatsTimerange from secure_access.models.private_resource_detailed_stats_timerange_total_hits_count import PrivateResourceDetailedStatsTimerangeTotalHitsCount +from secure_access.models.private_resource_group import PrivateResourceGroup from secure_access.models.private_resource_group_list import PrivateResourceGroupList from secure_access.models.private_resource_group_request import PrivateResourceGroupRequest from secure_access.models.private_resource_group_response import PrivateResourceGroupResponse @@ -1104,6 +1349,7 @@ from secure_access.models.put_rule_request import PutRuleRequest from secure_access.models.put_rules_request import PutRulesRequest from secure_access.models.put_rules_request_properties_inner import PutRulesRequestPropertiesInner +from secure_access.models.real_time_dlp_rule_event import RealTimeDlpRuleEvent from secure_access.models.record import Record from secure_access.models.referenced_groups_response_schema import ReferencedGroupsResponseSchema from secure_access.models.referenced_rules_response_schema import ReferencedRulesResponseSchema @@ -1121,9 +1367,13 @@ from secure_access.models.reporting403_error import Reporting403Error from secure_access.models.reporting404_error import Reporting404Error from secure_access.models.reporting500_error import Reporting500Error +from secure_access.models.reporting_application import ReportingApplication +from secure_access.models.reporting_application_category import ReportingApplicationCategory from secure_access.models.reporting_category import ReportingCategory from secure_access.models.reporting_data_center import ReportingDataCenter +from secure_access.models.reporting_identity import ReportingIdentity from secure_access.models.reporting_rule import ReportingRule +from secure_access.models.reporting_severity import ReportingSeverity from secure_access.models.reporting_summary import ReportingSummary from secure_access.models.request_and_connection_counts import RequestAndConnectionCounts from secure_access.models.request_counts import RequestCounts @@ -1141,6 +1391,7 @@ from secure_access.models.resource_connector_groups401_error import ResourceConnectorGroups401Error from secure_access.models.resource_connector_groups403_error import ResourceConnectorGroups403Error from secure_access.models.resource_connector_groups404_error import ResourceConnectorGroups404Error +from secure_access.models.resource_connector_groups409_error import ResourceConnectorGroups409Error from secure_access.models.resource_connector_groups500_error import ResourceConnectorGroups500Error from secure_access.models.response import Response from secure_access.models.response_data import ResponseData @@ -1166,6 +1417,7 @@ from secure_access.models.rule_param import RuleParam from secure_access.models.rule_settings_inner import RuleSettingsInner from secure_access.models.rule_source_dest_filters import RuleSourceDestFilters +from secure_access.models.rule_type import RuleType from secure_access.models.rules_activity import RulesActivity from secure_access.models.rules_activity200_response import RulesActivity200Response from secure_access.models.rules_response_inner import RulesResponseInner @@ -1175,15 +1427,27 @@ from secure_access.models.s3_bucket403_error import S3Bucket403Error from secure_access.models.s3_bucket404_error import S3Bucket404Error from secure_access.models.s3_bucket500_error import S3Bucket500Error +from secure_access.models.saas_api_dlp_rule_event import SaasApiDlpRuleEvent +from secure_access.models.saas_api_event_user import SaasApiEventUser from secure_access.models.sample import Sample from secure_access.models.sample_hash_behaviors import SampleHashBehaviors from secure_access.models.sample_hash_connections import SampleHashConnections from secure_access.models.sample_hash_samples import SampleHashSamples +from secure_access.models.scannable_context import ScannableContext +from secure_access.models.security_events_config import SecurityEventsConfig +from secure_access.models.security_events_config_input import SecurityEventsConfigInput +from secure_access.models.security_events_config_patch_input import SecurityEventsConfigPatchInput +from secure_access.models.security_feeds_bad_request_error import SecurityFeedsBadRequestError +from secure_access.models.security_feeds_forbidden_error import SecurityFeedsForbiddenError +from secure_access.models.security_feeds_not_found_error import SecurityFeedsNotFoundError +from secure_access.models.security_feeds_server_error import SecurityFeedsServerError +from secure_access.models.security_feeds_unauthorized_error import SecurityFeedsUnauthorizedError from secure_access.models.security_group_tag_identity_get_response import SecurityGroupTagIdentityGetResponse from secure_access.models.security_profile_response import SecurityProfileResponse from secure_access.models.server_error import ServerError from secure_access.models.server_error_data import ServerErrorData from secure_access.models.server_error_status import ServerErrorStatus +from secure_access.models.service_name import ServiceName from secure_access.models.service_object_group_request_schema import ServiceObjectGroupRequestSchema from secure_access.models.service_object_group_response_schema import ServiceObjectGroupResponseSchema from secure_access.models.service_object_group_response_schema_groups_inner import ServiceObjectGroupResponseSchemaGroupsInner @@ -1201,7 +1465,7 @@ from secure_access.models.settings_request_object import SettingsRequestObject from secure_access.models.settings_response_inner import SettingsResponseInner from secure_access.models.settings_response_object import SettingsResponseObject -from secure_access.models.severity import Severity +from secure_access.models.severity_alert import SeverityAlert from secure_access.models.signature import Signature from secure_access.models.signature_list import SignatureList from secure_access.models.signature_list_summary import SignatureListSummary @@ -1213,6 +1477,8 @@ from secure_access.models.static_data_request_obj import StaticDataRequestObj from secure_access.models.static_data_response_obj import StaticDataResponseObj from secure_access.models.status import Status +from secure_access.models.status_alert import StatusAlert +from secure_access.models.status_alert_rule import StatusAlertRule from secure_access.models.status_code import StatusCode from secure_access.models.status_code_body import StatusCodeBody from secure_access.models.subdomains_inner import SubdomainsInner @@ -1224,8 +1490,12 @@ from secure_access.models.system_mode import SystemMode from secure_access.models.tenant_controls_restriction import TenantControlsRestriction from secure_access.models.tenant_controls_restrictions_inner import TenantControlsRestrictionsInner +from secure_access.models.tenant_response import TenantResponse from secure_access.models.terminate_sessions import TerminateSessions from secure_access.models.terminate_sessions_failed import TerminateSessionsFailed +from secure_access.models.test_email_notification_response import TestEmailNotificationResponse +from secure_access.models.test_email_notification_response_results_inner import TestEmailNotificationResponseResultsInner +from secure_access.models.test_notification import TestNotification from secure_access.models.third_party_integrations400_error import ThirdPartyIntegrations400Error from secure_access.models.third_party_integrations401_error import ThirdPartyIntegrations401Error from secure_access.models.third_party_integrations403_error import ThirdPartyIntegrations403Error @@ -1233,13 +1503,9 @@ from secure_access.models.third_party_integrations500_error import ThirdPartyIntegrations500Error from secure_access.models.third_party_integrations_integration_type import ThirdPartyIntegrationsIntegrationType from secure_access.models.threat import Threat -from secure_access.models.threat_intelligence_feeds_bad_request_error import ThreatIntelligenceFeedsBadRequestError -from secure_access.models.threat_intelligence_feeds_forbidden_error import ThreatIntelligenceFeedsForbiddenError -from secure_access.models.threat_intelligence_feeds_not_found_error import ThreatIntelligenceFeedsNotFoundError -from secure_access.models.threat_intelligence_feeds_server_error import ThreatIntelligenceFeedsServerError -from secure_access.models.threat_intelligence_feeds_unauthorized_error import ThreatIntelligenceFeedsUnauthorizedError from secure_access.models.threat_name import ThreatName from secure_access.models.threat_type import ThreatType +from secure_access.models.time_range import TimeRange from secure_access.models.time_series_app_connector_agent_data import TimeSeriesAppConnectorAgentData from secure_access.models.time_series_app_connector_group_data import TimeSeriesAppConnectorGroupData from secure_access.models.time_series_hits_count import TimeSeriesHitsCount @@ -1262,7 +1528,9 @@ from secure_access.models.top_threat_types import TopThreatTypes from secure_access.models.top_threats import TopThreats from secure_access.models.top_url import TopURL +from secure_access.models.total_count_alerts_response import TotalCountAlertsResponse from secure_access.models.total_request import TotalRequest +from secure_access.models.traffic_direction_type import TrafficDirectionType from secure_access.models.tunnel_data_state import TunnelDataState from secure_access.models.tunnel_ike_state import TunnelIKEState from secure_access.models.tunnel_ip_sec_state import TunnelIPSecState @@ -1283,16 +1551,21 @@ from secure_access.models.unified_service_object_type import UnifiedServiceObjectType from secure_access.models.unique_resources import UniqueResources from secure_access.models.unsupported_media_error import UnsupportedMediaError +from secure_access.models.update_alert_rule200_response import UpdateAlertRule200Response +from secure_access.models.update_alert_rules_status200_response import UpdateAlertRulesStatus200Response +from secure_access.models.update_alerts_status200_response import UpdateAlertsStatus200Response +from secure_access.models.update_alerts_status_request import UpdateAlertsStatusRequest from secure_access.models.update_application_request import UpdateApplicationRequest from secure_access.models.update_identities200_response import UpdateIdentities200Response from secure_access.models.update_identities_request_inner import UpdateIdentitiesRequestInner -from secure_access.models.update_identity_endpoints import UpdateIdentityEndpoints +from secure_access.models.update_identity_devices import UpdateIdentityDevices from secure_access.models.update_ips_profile_request_inner import UpdateIpsProfileRequestInner from secure_access.models.update_ips_profile_request_inner_value import UpdateIpsProfileRequestInnerValue from secure_access.models.update_network403_response import UpdateNetwork403Response from secure_access.models.update_network_request import UpdateNetworkRequest from secure_access.models.update_roaming_computer_request import UpdateRoamingComputerRequest from secure_access.models.update_security_group_tags import UpdateSecurityGroupTags +from secure_access.models.update_virtual_appliance_request import UpdateVirtualApplianceRequest from secure_access.models.update_vpn_connections_request import UpdateVpnConnectionsRequest from secure_access.models.upload_response import UploadResponse from secure_access.models.usage import Usage @@ -1310,6 +1583,11 @@ from secure_access.models.values_service_object_group_inner import ValuesServiceObjectGroupInner from secure_access.models.verdict import Verdict from secure_access.models.verdict_detected import VerdictDetected +from secure_access.models.virtual_appliance_object import VirtualApplianceObject +from secure_access.models.virtual_appliance_object_settings import VirtualApplianceObjectSettings +from secure_access.models.virtual_appliance_object_state import VirtualApplianceObjectState +from secure_access.models.virtual_appliances500_error import VirtualAppliances500Error +from secure_access.models.vpn_user_connections_action import VpnUserConnectionsAction from secure_access.models.webhook_config import WebhookConfig from secure_access.models.webhook_config_input import WebhookConfigInput from secure_access.models.weighted_risk import WeightedRisk @@ -1317,12 +1595,6 @@ from secure_access.models.whois_emails_and_nameservers import WhoisEmailsAndNameservers from secure_access.models.zero_trust_user_devices_error import ZeroTrustUserDevicesError from secure_access.models.zero_trust_user_devices_unauthorized_error import ZeroTrustUserDevicesUnauthorizedError -from secure_access.models.ztna_application import ZtnaApplication -from secure_access.models.ztna_application_category import ZtnaApplicationCategory -from secure_access.models.ztna_policy import ZtnaPolicy -from secure_access.models.ztna_policy_privateapplicationgroup import ZtnaPolicyPrivateapplicationgroup -from secure_access.models.ztna_policy_ruleset import ZtnaPolicyRuleset -from secure_access.models.ztna_summary import ZtnaSummary """, name=__name__, diff --git a/secure_access/models/access.py b/secure_access/models/access.py index f6c1275..9513550 100644 --- a/secure_access/models/access.py +++ b/secure_access/models/access.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/access_rule_context.py b/secure_access/models/access_rule_context.py new file mode 100644 index 0000000..7045f06 --- /dev/null +++ b/secure_access/models/access_rule_context.py @@ -0,0 +1,108 @@ +# Copyright 2026 Cisco Systems, Inc. and its affiliates +# +# SPDX-License-Identifier: Apache-2.0 + +# coding: utf-8 + +""" + Cisco Secure Access API + + Unified OpenAPI spec for Cisco Secure Access APIs. + + The version of the OpenAPI document: v2.0.202602030705 + Contact: devnet@cisco.com + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator +from typing import Any, ClassVar, Dict, List, Optional +from typing import Optional, Set +from typing_extensions import Self + +class AccessRuleContext(BaseModel): + """ + The properties of the context for the changes to the access rules alerts. + """ # noqa: E501 + change_type: Optional[StrictStr] = Field(default=None, description="The type of change made on the access rule.") + changes_made: Optional[StrictStr] = Field(default=None, description="The description of the changes made by the system on the access rule.") + redirect_entity_url: Optional[StrictStr] = Field(default=None, description="The URL for the entity in Secure Access.") + redirect_entity_url_label: Optional[StrictStr] = Field(default=None, description="The label for the entity's redirect URL.") + __properties: ClassVar[List[str]] = ["change_type", "changes_made", "redirect_entity_url", "redirect_entity_url_label"] + + @field_validator('change_type') + def change_type_validate_enum(cls, value): + """Validates the enum""" + if value is None: + return value + + if value not in set(['create', 'update', 'delete']): + raise ValueError("must be one of enum values ('create', 'update', 'delete')") + return value + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of AccessRuleContext 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 AccessRuleContext from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "change_type": obj.get("change_type"), + "changes_made": obj.get("changes_made"), + "redirect_entity_url": obj.get("redirect_entity_url"), + "redirect_entity_url_label": obj.get("redirect_entity_url_label") + }) + return _obj + + diff --git a/secure_access/models/access_types_inner.py b/secure_access/models/access_types_inner.py index 967c2dc..cc41e48 100644 --- a/secure_access/models/access_types_inner.py +++ b/secure_access/models/access_types_inner.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/access_types_request_inner.py b/secure_access/models/access_types_request_inner.py index d8658b9..3f4625e 100644 --- a/secure_access/models/access_types_request_inner.py +++ b/secure_access/models/access_types_request_inner.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/action_counts.py b/secure_access/models/action_counts.py index c5a3382..0b035ea 100644 --- a/secure_access/models/action_counts.py +++ b/secure_access/models/action_counts.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/activity_amp_retro.py b/secure_access/models/activity_amp_retro.py index 65f4af2..9af9b66 100644 --- a/secure_access/models/activity_amp_retro.py +++ b/secure_access/models/activity_amp_retro.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/activity_decryption.py b/secure_access/models/activity_decryption.py index c62741d..a5334ec 100644 --- a/secure_access/models/activity_decryption.py +++ b/secure_access/models/activity_decryption.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) @@ -24,7 +24,7 @@ from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt, StrictStr from typing import Any, ClassVar, Dict, List, Union -from secure_access.models.identity import Identity +from secure_access.models.reporting_identity import ReportingIdentity from typing import Optional, Set from typing_extensions import Self @@ -34,7 +34,7 @@ class ActivityDecryption(BaseModel): """ # noqa: E501 var_date: StrictStr = Field(description="The date from the timestamp based on the timezone parameter.", alias="date") decrypt_action: StrictStr = Field(description="Type of decryption action (Decrypt Inbound, Decrypt Outbound, Do Not Decrypt, Decrypt Error).", alias="decryptAction") - identities: List[Identity] = Field(description="The list of identities for the entry.") + identities: List[ReportingIdentity] = Field(description="The list of identities for the entry.") time: StrictStr = Field(description="The time in 24-hour format based on the timezone parameter.") timestamp: Union[StrictFloat, StrictInt] = Field(description="The timestamp represented in milliseconds.") type: StrictStr = Field(description="type of the request. Decryption") @@ -100,7 +100,7 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: _obj = cls.model_validate({ "date": obj.get("date"), "decryptAction": obj.get("decryptAction"), - "identities": [Identity.from_dict(_item) for _item in obj["identities"]] if obj.get("identities") is not None else None, + "identities": [ReportingIdentity.from_dict(_item) for _item in obj["identities"]] if obj.get("identities") is not None else None, "time": obj.get("time"), "timestamp": obj.get("timestamp"), "type": obj.get("type") diff --git a/secure_access/models/activity_dns.py b/secure_access/models/activity_dns.py index b6371ad..3c0e599 100644 --- a/secure_access/models/activity_dns.py +++ b/secure_access/models/activity_dns.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) @@ -24,9 +24,9 @@ from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt, StrictStr, field_validator from typing import Any, ClassVar, Dict, List, Union -from secure_access.models.application import Application -from secure_access.models.identity import Identity +from secure_access.models.reporting_application import ReportingApplication from secure_access.models.reporting_category import ReportingCategory +from secure_access.models.reporting_identity import ReportingIdentity from secure_access.models.threat import Threat from secure_access.models.verdict import Verdict from typing import Optional, Set @@ -36,14 +36,14 @@ class ActivityDns(BaseModel): """ The information about the DNS activity. """ # noqa: E501 - allapplications: List[Application] = Field(description="The list of all applications for the entry.") - allowedapplications: List[Application] = Field(description="The list of allowed applications.") - blockedapplications: List[Application] = Field(description="The list of blocked applications.") + allapplications: List[ReportingApplication] = Field(description="The list of all applications for the entry.") + allowedapplications: List[ReportingApplication] = Field(description="The list of allowed applications.") + blockedapplications: List[ReportingApplication] = Field(description="The list of blocked applications.") categories: List[ReportingCategory] = Field(description="The list of categories.") var_date: StrictStr = Field(description="The date from the timestamp based on the timezone parameter.", alias="date") domain: StrictStr = Field(description="The domain name for the entry.") externalip: StrictStr = Field(description="The external IP for the entry.") - identities: List[Identity] = Field(description="The list of identities for the entry.") + identities: List[ReportingIdentity] = Field(description="The list of identities for the entry.") internalip: StrictStr = Field(description="The internal IP for the entry.") policycategories: List[ReportingCategory] = Field(description="The list of the policy categories.") querytype: StrictStr = Field(description="The type of the DNS request.") @@ -162,14 +162,14 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: return cls.model_validate(obj) _obj = cls.model_validate({ - "allapplications": [Application.from_dict(_item) for _item in obj["allapplications"]] if obj.get("allapplications") is not None else None, - "allowedapplications": [Application.from_dict(_item) for _item in obj["allowedapplications"]] if obj.get("allowedapplications") is not None else None, - "blockedapplications": [Application.from_dict(_item) for _item in obj["blockedapplications"]] if obj.get("blockedapplications") is not None else None, + "allapplications": [ReportingApplication.from_dict(_item) for _item in obj["allapplications"]] if obj.get("allapplications") is not None else None, + "allowedapplications": [ReportingApplication.from_dict(_item) for _item in obj["allowedapplications"]] if obj.get("allowedapplications") is not None else None, + "blockedapplications": [ReportingApplication.from_dict(_item) for _item in obj["blockedapplications"]] if obj.get("blockedapplications") is not None else None, "categories": [ReportingCategory.from_dict(_item) for _item in obj["categories"]] if obj.get("categories") is not None else None, "date": obj.get("date"), "domain": obj.get("domain"), "externalip": obj.get("externalip"), - "identities": [Identity.from_dict(_item) for _item in obj["identities"]] if obj.get("identities") is not None else None, + "identities": [ReportingIdentity.from_dict(_item) for _item in obj["identities"]] if obj.get("identities") is not None else None, "internalip": obj.get("internalip"), "policycategories": [ReportingCategory.from_dict(_item) for _item in obj["policycategories"]] if obj.get("policycategories") is not None else None, "querytype": obj.get("querytype"), diff --git a/secure_access/models/activity_firewall.py b/secure_access/models/activity_firewall.py index 0ef38e8..35a04f7 100644 --- a/secure_access/models/activity_firewall.py +++ b/secure_access/models/activity_firewall.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) @@ -24,11 +24,11 @@ from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt, StrictStr from typing import Any, ClassVar, Dict, List, Optional, Union -from secure_access.models.application import Application from secure_access.models.firewall_application import FirewallApplication -from secure_access.models.identity import Identity from secure_access.models.protocol import Protocol +from secure_access.models.reporting_application import ReportingApplication from secure_access.models.reporting_category import ReportingCategory +from secure_access.models.reporting_identity import ReportingIdentity from secure_access.models.reporting_rule import ReportingRule from secure_access.models.verdict import Verdict from typing import Optional, Set @@ -38,14 +38,14 @@ class ActivityFirewall(BaseModel): """ The information about the firewall activity. """ # noqa: E501 - allapplications: List[Application] = Field(description="The list of applications for the entry.") + allapplications: List[ReportingApplication] = Field(description="The list of applications for the entry.") applicationprotocols: List[FirewallApplication] = Field(description="A list of firewall application protocols.") categories: Optional[List[ReportingCategory]] = Field(default=None, description="The list of categories.") var_date: StrictStr = Field(description="The date from the timestamp based on the timezone parameter.", alias="date") destinationip: StrictStr = Field(description="The destination IP for the entry.") destinationport: Union[StrictFloat, StrictInt] = Field(description="The destination port for entry.") direction: StrictStr = Field(description="The direction of the packet. It is destined either towards the internet or to the customer's network.") - identities: List[Identity] = Field(description="The list of identities for the entry.") + identities: List[ReportingIdentity] = Field(description="The list of identities for the entry.") packetsize: Union[StrictFloat, StrictInt] = Field(description="The size of the packet that was received.") protocol: Protocol rule: ReportingRule @@ -142,14 +142,14 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: return cls.model_validate(obj) _obj = cls.model_validate({ - "allapplications": [Application.from_dict(_item) for _item in obj["allapplications"]] if obj.get("allapplications") is not None else None, + "allapplications": [ReportingApplication.from_dict(_item) for _item in obj["allapplications"]] if obj.get("allapplications") is not None else None, "applicationprotocols": [FirewallApplication.from_dict(_item) for _item in obj["applicationprotocols"]] if obj.get("applicationprotocols") is not None else None, "categories": [ReportingCategory.from_dict(_item) for _item in obj["categories"]] if obj.get("categories") is not None else None, "date": obj.get("date"), "destinationip": obj.get("destinationip"), "destinationport": obj.get("destinationport"), "direction": obj.get("direction"), - "identities": [Identity.from_dict(_item) for _item in obj["identities"]] if obj.get("identities") is not None else None, + "identities": [ReportingIdentity.from_dict(_item) for _item in obj["identities"]] if obj.get("identities") is not None else None, "packetsize": obj.get("packetsize"), "protocol": Protocol.from_dict(obj["protocol"]) if obj.get("protocol") is not None else None, "rule": ReportingRule.from_dict(obj["rule"]) if obj.get("rule") is not None else None, diff --git a/secure_access/models/activity_intrusion.py b/secure_access/models/activity_intrusion.py index 41e9c7a..bd9392e 100644 --- a/secure_access/models/activity_intrusion.py +++ b/secure_access/models/activity_intrusion.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) @@ -24,9 +24,9 @@ from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt, StrictStr from typing import Any, ClassVar, Dict, List, Union -from secure_access.models.identity import Identity from secure_access.models.protocol import Protocol -from secure_access.models.severity import Severity +from secure_access.models.reporting_identity import ReportingIdentity +from secure_access.models.reporting_severity import ReportingSeverity from secure_access.models.signature import Signature from secure_access.models.signature_list import SignatureList from secure_access.models.verdict_detected import VerdictDetected @@ -41,10 +41,10 @@ class ActivityIntrusion(BaseModel): var_date: StrictStr = Field(description="The date from the timestamp based on the timezone parameter.", alias="date") destinationip: StrictStr = Field(description="The destination IP for the entry.") destinationport: Union[StrictFloat, StrictInt] = Field(description="The destination port for entry.") - identities: List[Identity] = Field(description="The list of identities for the entry.") + identities: List[ReportingIdentity] = Field(description="The list of identities for the entry.") protocol: Protocol sessionid: Union[StrictFloat, StrictInt] = Field(description="The unique identifier of a session, which is used to group the correlated events between various services.") - severity: Severity + severity: ReportingSeverity signature: Signature signaturelist: SignatureList sourceip: StrictStr = Field(description="The source IP for the entry.") @@ -126,7 +126,7 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: "date": obj.get("date"), "destinationip": obj.get("destinationip"), "destinationport": obj.get("destinationport"), - "identities": [Identity.from_dict(_item) for _item in obj["identities"]] if obj.get("identities") is not None else None, + "identities": [ReportingIdentity.from_dict(_item) for _item in obj["identities"]] if obj.get("identities") is not None else None, "protocol": Protocol.from_dict(obj["protocol"]) if obj.get("protocol") is not None else None, "sessionid": obj.get("sessionid"), "severity": obj.get("severity"), diff --git a/secure_access/models/activity_ip.py b/secure_access/models/activity_ip.py deleted file mode 100644 index 1cfdc66..0000000 --- a/secure_access/models/activity_ip.py +++ /dev/null @@ -1,129 +0,0 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates -# -# SPDX-License-Identifier: Apache-2.0 - -# coding: utf-8 - -""" - Cisco Secure Access API - - Unified OpenAPI spec for Cisco Secure Access APIs. - - The version of the OpenAPI document: v2.0.202510221109 - Contact: devnet@cisco.com - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt, StrictStr -from typing import Any, ClassVar, Dict, List, Union -from secure_access.models.identity import Identity -from secure_access.models.reporting_category import ReportingCategory -from secure_access.models.verdict import Verdict -from typing import Optional, Set -from typing_extensions import Self - -class ActivityIP(BaseModel): - """ - ActivityIP - """ # noqa: E501 - categories: List[ReportingCategory] = Field(description="The list of categories.") - var_date: StrictStr = Field(description="The date from the timestamp based on the timezone parameter.", alias="date") - destinationip: StrictStr = Field(description="The destination IP for the entry.") - destinationport: Union[StrictFloat, StrictInt] = Field(description="The destination port for entry.") - identities: List[Identity] = Field(description="The list of identities for the entry.") - sourceip: StrictStr = Field(description="The source IP for the entry.") - sourceport: Union[StrictFloat, StrictInt] = Field(description="The source port for the entry.") - time: StrictStr = Field(description="The time in 24-hour format based on the timezone parameter.") - timestamp: Union[StrictFloat, StrictInt] = Field(description="The timestamp represented in milliseconds.") - type: StrictStr = Field(description="The type of the request. An IP request always has type `ip`.") - verdict: Verdict - __properties: ClassVar[List[str]] = ["categories", "date", "destinationip", "destinationport", "identities", "sourceip", "sourceport", "time", "timestamp", "type", "verdict"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of ActivityIP 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 categories (list) - _items = [] - if self.categories: - for _item_categories in self.categories: - if _item_categories: - _items.append(_item_categories.to_dict()) - _dict['categories'] = _items - # override the default output from pydantic by calling `to_dict()` of each item in identities (list) - _items = [] - if self.identities: - for _item_identities in self.identities: - if _item_identities: - _items.append(_item_identities.to_dict()) - _dict['identities'] = _items - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of ActivityIP from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "categories": [ReportingCategory.from_dict(_item) for _item in obj["categories"]] if obj.get("categories") is not None else None, - "date": obj.get("date"), - "destinationip": obj.get("destinationip"), - "destinationport": obj.get("destinationport"), - "identities": [Identity.from_dict(_item) for _item in obj["identities"]] if obj.get("identities") is not None else None, - "sourceip": obj.get("sourceip"), - "sourceport": obj.get("sourceport"), - "time": obj.get("time"), - "timestamp": obj.get("timestamp"), - "type": obj.get("type"), - "verdict": obj.get("verdict") - }) - return _obj - - diff --git a/secure_access/models/activity_proxy.py b/secure_access/models/activity_proxy.py index 9592c10..1239d0f 100644 --- a/secure_access/models/activity_proxy.py +++ b/secure_access/models/activity_proxy.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) @@ -25,16 +25,16 @@ from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictFloat, StrictInt, StrictStr, field_validator from typing import Any, ClassVar, Dict, List, Optional, Union from secure_access.models.antivirus_threats import AntivirusThreats -from secure_access.models.application import Application from secure_access.models.cisco_amp import CiscoAMP from secure_access.models.data_loss_prevention_state import DataLossPreventionState from secure_access.models.egress import Egress from secure_access.models.http_error import HttpError -from secure_access.models.identity import Identity from secure_access.models.isolated import Isolated from secure_access.models.policy import Policy +from secure_access.models.reporting_application import ReportingApplication from secure_access.models.reporting_category import ReportingCategory from secure_access.models.reporting_data_center import ReportingDataCenter +from secure_access.models.reporting_identity import ReportingIdentity from secure_access.models.threat import Threat from secure_access.models.verdict import Verdict from typing import Optional, Set @@ -44,11 +44,11 @@ class ActivityProxy(BaseModel): """ The activity of the proxy. """ # noqa: E501 - allapplications: List[Application] = Field(description="The list of applications for the entry.") - allowedapplications: List[Application] = Field(description="The list of allowed applications for the entry.") + allapplications: List[ReportingApplication] = Field(description="The list of applications for the entry.") + allowedapplications: List[ReportingApplication] = Field(description="The list of allowed applications for the entry.") amp: CiscoAMP antivirusthreats: AntivirusThreats - blockedapplications: List[Application] = Field(description="The list of blocked applications for the entry.") + blockedapplications: List[ReportingApplication] = Field(description="The list of blocked applications for the entry.") blockedfiletype: StrictStr = Field(description="The blocked file type for the entry.") bundleid: Union[StrictFloat, StrictInt] = Field(description="The ID of the bundle type.") categories: List[ReportingCategory] = Field(description="The list of categories.") @@ -61,7 +61,7 @@ class ActivityProxy(BaseModel): externalip: StrictStr = Field(description="The external IP for the entry.") forwardingmethod: StrictStr = Field(description="The request method (GET, POST, HEAD, etc.)") httperrors: List[HttpError] = Field(description="Certificate & TLS Errors") - identities: List[Identity] = Field(description="The list of identities for the entry.") + identities: List[ReportingIdentity] = Field(description="The list of identities for the entry.") internalip: StrictStr = Field(description="The internal IP for the entry.") isolated: Isolated policy: Policy @@ -226,11 +226,11 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: return cls.model_validate(obj) _obj = cls.model_validate({ - "allapplications": [Application.from_dict(_item) for _item in obj["allapplications"]] if obj.get("allapplications") is not None else None, - "allowedapplications": [Application.from_dict(_item) for _item in obj["allowedapplications"]] if obj.get("allowedapplications") is not None else None, + "allapplications": [ReportingApplication.from_dict(_item) for _item in obj["allapplications"]] if obj.get("allapplications") is not None else None, + "allowedapplications": [ReportingApplication.from_dict(_item) for _item in obj["allowedapplications"]] if obj.get("allowedapplications") is not None else None, "amp": CiscoAMP.from_dict(obj["amp"]) if obj.get("amp") is not None else None, "antivirusthreats": AntivirusThreats.from_dict(obj["antivirusthreats"]) if obj.get("antivirusthreats") is not None else None, - "blockedapplications": [Application.from_dict(_item) for _item in obj["blockedapplications"]] if obj.get("blockedapplications") is not None else None, + "blockedapplications": [ReportingApplication.from_dict(_item) for _item in obj["blockedapplications"]] if obj.get("blockedapplications") is not None else None, "blockedfiletype": obj.get("blockedfiletype"), "bundleid": obj.get("bundleid"), "categories": [ReportingCategory.from_dict(_item) for _item in obj["categories"]] if obj.get("categories") is not None else None, @@ -243,7 +243,7 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: "externalip": obj.get("externalip"), "forwardingmethod": obj.get("forwardingmethod"), "httperrors": [HttpError.from_dict(_item) for _item in obj["httperrors"]] if obj.get("httperrors") is not None else None, - "identities": [Identity.from_dict(_item) for _item in obj["identities"]] if obj.get("identities") is not None else None, + "identities": [ReportingIdentity.from_dict(_item) for _item in obj["identities"]] if obj.get("identities") is not None else None, "internalip": obj.get("internalip"), "isolated": Isolated.from_dict(obj["isolated"]) if obj.get("isolated") is not None else None, "policy": Policy.from_dict(obj["policy"]) if obj.get("policy") is not None else None, diff --git a/secure_access/models/activity_ztna.py b/secure_access/models/activity_ztna.py index 522c712..66e79fb 100644 --- a/secure_access/models/activity_ztna.py +++ b/secure_access/models/activity_ztna.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) @@ -26,8 +26,8 @@ from typing import Any, ClassVar, Dict, List, Optional, Union from secure_access.models.activity_ztna_allapplications_inner import ActivityZTNAAllapplicationsInner from secure_access.models.device import Device -from secure_access.models.identity import Identity from secure_access.models.policy_ztna import PolicyZTNA +from secure_access.models.reporting_identity import ReportingIdentity from typing import Optional, Set from typing_extensions import Self @@ -42,7 +42,7 @@ class ActivityZTNA(BaseModel): destinationip: Optional[StrictStr] = Field(default=None, description="The resolved IP for Zero Trust Network Access (ZTNA) client-based events.") device: Optional[Device] = None diskencryption: Optional[StrictStr] = Field(default=None, description="Type of the disk encryption, either `SYS`, `THIRDPARTY`, `NONE`.") - identities: List[Identity] = Field(description="The list of identities for the entry.") + identities: List[ReportingIdentity] = Field(description="The list of identities for the entry.") policy: PolicyZTNA systempassword: Optional[StrictStr] = Field(default=None, description="The system password.") time: StrictStr = Field(description="The time in 24-hour format based on the timezone parameter.") @@ -163,7 +163,7 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: "destinationip": obj.get("destinationip"), "device": Device.from_dict(obj["device"]) if obj.get("device") is not None else None, "diskencryption": obj.get("diskencryption"), - "identities": [Identity.from_dict(_item) for _item in obj["identities"]] if obj.get("identities") is not None else None, + "identities": [ReportingIdentity.from_dict(_item) for _item in obj["identities"]] if obj.get("identities") is not None else None, "policy": PolicyZTNA.from_dict(obj["policy"]) if obj.get("policy") is not None else None, "systempassword": obj.get("systempassword"), "time": obj.get("time"), diff --git a/secure_access/models/activity_ztna_allapplications_inner.py b/secure_access/models/activity_ztna_allapplications_inner.py index f57b441..9ef50c7 100644 --- a/secure_access/models/activity_ztna_allapplications_inner.py +++ b/secure_access/models/activity_ztna_allapplications_inner.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/activity_ztna_allapplications_inner_category.py b/secure_access/models/activity_ztna_allapplications_inner_category.py index 456bc2c..85e8012 100644 --- a/secure_access/models/activity_ztna_allapplications_inner_category.py +++ b/secure_access/models/activity_ztna_allapplications_inner_category.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/add_network_tunnel_group_request.py b/secure_access/models/add_network_tunnel_group_request.py index 0498f5d..ef136a6 100644 --- a/secure_access/models/add_network_tunnel_group_request.py +++ b/secure_access/models/add_network_tunnel_group_request.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/add_network_tunnel_group_request_auth_id_prefix.py b/secure_access/models/add_network_tunnel_group_request_auth_id_prefix.py index ffd54d7..cb51bd4 100644 --- a/secure_access/models/add_network_tunnel_group_request_auth_id_prefix.py +++ b/secure_access/models/add_network_tunnel_group_request_auth_id_prefix.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/add_rule_request.py b/secure_access/models/add_rule_request.py index a78b07f..a5fd2c1 100644 --- a/secure_access/models/add_rule_request.py +++ b/secure_access/models/add_rule_request.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/ai_guardrails_dlp_rule_event.py b/secure_access/models/ai_guardrails_dlp_rule_event.py new file mode 100644 index 0000000..c1fe7b9 --- /dev/null +++ b/secure_access/models/ai_guardrails_dlp_rule_event.py @@ -0,0 +1,135 @@ +# Copyright 2026 Cisco Systems, Inc. and its affiliates +# +# SPDX-License-Identifier: Apache-2.0 + +# coding: utf-8 + +""" + Cisco Secure Access API + + Unified OpenAPI spec for Cisco Secure Access APIs. + + The version of the OpenAPI document: v2.0.202602030705 + Contact: devnet@cisco.com + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from datetime import datetime +from pydantic import BaseModel, ConfigDict, Field, StrictInt, StrictStr +from typing import Any, ClassVar, Dict, List, Optional +from secure_access.models.application import Application +from secure_access.models.data_loss_prevention_application_category import DataLossPreventionApplicationCategory +from secure_access.models.identity import Identity +from secure_access.models.rule import Rule +from typing import Optional, Set +from typing_extensions import Self + +class AiGuardrailsDlpRuleEvent(BaseModel): + """ + The properties of the AI Guardrails DLP rule event. + """ # noqa: E501 + action: Optional[StrictStr] = Field(default=None, description="The action triggered by the DLP rule.") + application: Optional[Application] = None + application_category: Optional[DataLossPreventionApplicationCategory] = Field(default=None, alias="applicationCategory") + content_type: Optional[StrictStr] = Field(default=None, description="The type of data that triggered the DLP rule event.", alias="contentType") + destination_url: Optional[StrictStr] = Field(default=None, description="The URL where the end user uploadedor posted the file.", alias="destinationUrl") + detected: Optional[datetime] = Field(default=None, description="The date and time when the system detected the content, formatted as an ISO 8601 timestamp.") + direction: Optional[StrictStr] = Field(default=None, description="The direction of the detected traffic.") + event_id: Optional[StrictStr] = Field(default=None, description="The unique identifier of the event.", alias="eventId") + file_name: Optional[StrictStr] = Field(default=None, description="The value of `fileName` is `Form`.", alias="fileName") + identity: Optional[Identity] = None + rule: Optional[Rule] = None + severity: Optional[StrictStr] = Field(default=None, description="The severity of the DLP rule.") + sha256_hash: Optional[StrictStr] = Field(default=None, description="The unique SHA256 hash of the file.", alias="sha256Hash") + total_size_in_bytes: Optional[StrictInt] = Field(default=None, description="The size of the file in bytes that triggered the DLP rule event.", alias="totalSizeInBytes") + __properties: ClassVar[List[str]] = ["action", "application", "applicationCategory", "contentType", "destinationUrl", "detected", "direction", "eventId", "fileName", "identity", "rule", "severity", "sha256Hash", "totalSizeInBytes"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of AiGuardrailsDlpRuleEvent 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 application + if self.application: + _dict['application'] = self.application.to_dict() + # override the default output from pydantic by calling `to_dict()` of application_category + if self.application_category: + _dict['applicationCategory'] = self.application_category.to_dict() + # override the default output from pydantic by calling `to_dict()` of identity + if self.identity: + _dict['identity'] = self.identity.to_dict() + # override the default output from pydantic by calling `to_dict()` of rule + if self.rule: + _dict['rule'] = self.rule.to_dict() + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of AiGuardrailsDlpRuleEvent from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "action": obj.get("action"), + "application": Application.from_dict(obj["application"]) if obj.get("application") is not None else None, + "applicationCategory": DataLossPreventionApplicationCategory.from_dict(obj["applicationCategory"]) if obj.get("applicationCategory") is not None else None, + "contentType": obj.get("contentType"), + "destinationUrl": obj.get("destinationUrl"), + "detected": obj.get("detected"), + "direction": obj.get("direction"), + "eventId": obj.get("eventId"), + "fileName": obj.get("fileName"), + "identity": Identity.from_dict(obj["identity"]) if obj.get("identity") is not None else None, + "rule": Rule.from_dict(obj["rule"]) if obj.get("rule") is not None else None, + "severity": obj.get("severity"), + "sha256Hash": obj.get("sha256Hash"), + "totalSizeInBytes": obj.get("totalSizeInBytes") + }) + return _obj + + diff --git a/secure_access/models/alert.py b/secure_access/models/alert.py new file mode 100644 index 0000000..36731bb --- /dev/null +++ b/secure_access/models/alert.py @@ -0,0 +1,125 @@ +# Copyright 2026 Cisco Systems, Inc. and its affiliates +# +# SPDX-License-Identifier: Apache-2.0 + +# coding: utf-8 + +""" + Cisco Secure Access API + + Unified OpenAPI spec for Cisco Secure Access APIs. + + The version of the OpenAPI document: v2.0.202602030705 + Contact: devnet@cisco.com + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from datetime import datetime +from pydantic import BaseModel, ConfigDict, Field, StrictInt, StrictStr +from typing import Any, ClassVar, Dict, List, Optional +from secure_access.models.access_rule_context import AccessRuleContext +from secure_access.models.behavior_analytics_context import BehaviorAnalyticsContext +from secure_access.models.severity_alert import SeverityAlert +from secure_access.models.status_alert import StatusAlert +from typing import Optional, Set +from typing_extensions import Self + +class Alert(BaseModel): + """ + The properties of the alert. + """ # noqa: E501 + access_rule_context: Optional[AccessRuleContext] = None + alert_id: Optional[StrictStr] = Field(default=None, description="The unique identifier of the alert.", alias="alertId") + behavior_analytics_context: Optional[BehaviorAnalyticsContext] = None + created_at: Optional[datetime] = Field(default=None, description="The time and date (ISO 8601 timestamp) when the system created the alert.") + description: Optional[StrictStr] = Field(default=None, description="The description of the alert.") + modified_at: Optional[datetime] = Field(default=None, description="The time and date (ISO 8601 timestamp) when the system last modified the alert.") + name: Optional[StrictStr] = Field(default=None, description="The name of the alert.") + organization_id: Optional[StrictInt] = Field(default=None, description="The unique identifier of the organization.") + rule_id: Optional[StrictInt] = Field(default=None, description="The unique identifier of the associated rule.") + rule_type_id: Optional[StrictInt] = Field(default=None, description="The identifier of the rule type.") + severity: Optional[SeverityAlert] = None + status: Optional[StatusAlert] = None + __properties: ClassVar[List[str]] = ["access_rule_context", "alertId", "behavior_analytics_context", "created_at", "description", "modified_at", "name", "organization_id", "rule_id", "rule_type_id", "severity", "status"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of Alert 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 access_rule_context + if self.access_rule_context: + _dict['access_rule_context'] = self.access_rule_context.to_dict() + # override the default output from pydantic by calling `to_dict()` of behavior_analytics_context + if self.behavior_analytics_context: + _dict['behavior_analytics_context'] = self.behavior_analytics_context.to_dict() + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of Alert from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "access_rule_context": AccessRuleContext.from_dict(obj["access_rule_context"]) if obj.get("access_rule_context") is not None else None, + "alertId": obj.get("alertId"), + "behavior_analytics_context": BehaviorAnalyticsContext.from_dict(obj["behavior_analytics_context"]) if obj.get("behavior_analytics_context") is not None else None, + "created_at": obj.get("created_at"), + "description": obj.get("description"), + "modified_at": obj.get("modified_at"), + "name": obj.get("name"), + "organization_id": obj.get("organization_id"), + "rule_id": obj.get("rule_id"), + "rule_type_id": obj.get("rule_type_id"), + "severity": obj.get("severity"), + "status": obj.get("status") + }) + return _obj + + diff --git a/secure_access/models/alert_rule.py b/secure_access/models/alert_rule.py new file mode 100644 index 0000000..99b1088 --- /dev/null +++ b/secure_access/models/alert_rule.py @@ -0,0 +1,128 @@ +# Copyright 2026 Cisco Systems, Inc. and its affiliates +# +# SPDX-License-Identifier: Apache-2.0 + +# coding: utf-8 + +""" + Cisco Secure Access API + + Unified OpenAPI spec for Cisco Secure Access APIs. + + The version of the OpenAPI document: v2.0.202602030705 + Contact: devnet@cisco.com + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from datetime import datetime +from pydantic import BaseModel, ConfigDict, Field, StrictInt +from typing import Any, ClassVar, Dict, List, Optional +from typing_extensions import Annotated +from secure_access.models.conditions_alert_rule import ConditionsAlertRule +from secure_access.models.notification_info_alert_rule import NotificationInfoAlertRule +from secure_access.models.severity_alert import SeverityAlert +from secure_access.models.status_alert_rule import StatusAlertRule +from typing import Optional, Set +from typing_extensions import Self + +class AlertRule(BaseModel): + """ + The properties of the alert rule. + """ # noqa: E501 + conditions: Optional[ConditionsAlertRule] = None + created_at: Optional[datetime] = Field(default=None, description="The time and date (ISO 8601 timestamp) when the system created the alert rule.") + description: Optional[Annotated[str, Field(strict=True, max_length=100)]] = Field(default=None, description="The description of the alert rule.") + id: Optional[StrictInt] = Field(default=None, description="The unique identifier of the alert rule.") + modified_at: Optional[datetime] = Field(default=None, description="The time and date (ISO 8601 timestamp) when the system last modified the alert rule.") + name: Optional[Annotated[str, Field(strict=True, max_length=255)]] = Field(default=None, description="The unique name of the alert rule.") + notification_info: Optional[List[NotificationInfoAlertRule]] = Field(default=None, description="List of notification configurations for this rule") + organization_id: Optional[StrictInt] = Field(default=None, description="The unique identifier of the organization.") + rule_type_id: Optional[StrictInt] = Field(default=None, description="The identifier of the rule type.") + severity: Optional[SeverityAlert] = None + status: Optional[StatusAlertRule] = None + __properties: ClassVar[List[str]] = ["conditions", "created_at", "description", "id", "modified_at", "name", "notification_info", "organization_id", "rule_type_id", "severity", "status"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of AlertRule 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 conditions + if self.conditions: + _dict['conditions'] = self.conditions.to_dict() + # override the default output from pydantic by calling `to_dict()` of each item in notification_info (list) + _items = [] + if self.notification_info: + for _item_notification_info in self.notification_info: + if _item_notification_info: + _items.append(_item_notification_info.to_dict()) + _dict['notification_info'] = _items + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of AlertRule from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "conditions": ConditionsAlertRule.from_dict(obj["conditions"]) if obj.get("conditions") is not None else None, + "created_at": obj.get("created_at"), + "description": obj.get("description"), + "id": obj.get("id"), + "modified_at": obj.get("modified_at"), + "name": obj.get("name"), + "notification_info": [NotificationInfoAlertRule.from_dict(_item) for _item in obj["notification_info"]] if obj.get("notification_info") is not None else None, + "organization_id": obj.get("organization_id"), + "rule_type_id": obj.get("rule_type_id"), + "severity": obj.get("severity"), + "status": obj.get("status") + }) + return _obj + + diff --git a/secure_access/models/alert_with_additional_context.py b/secure_access/models/alert_with_additional_context.py new file mode 100644 index 0000000..31b5d92 --- /dev/null +++ b/secure_access/models/alert_with_additional_context.py @@ -0,0 +1,125 @@ +# Copyright 2026 Cisco Systems, Inc. and its affiliates +# +# SPDX-License-Identifier: Apache-2.0 + +# coding: utf-8 + +""" + Cisco Secure Access API + + Unified OpenAPI spec for Cisco Secure Access APIs. + + The version of the OpenAPI document: v2.0.202602030705 + Contact: devnet@cisco.com + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from datetime import datetime +from pydantic import BaseModel, ConfigDict, Field, StrictInt, StrictStr +from typing import Any, ClassVar, Dict, List, Optional +from secure_access.models.access_rule_context import AccessRuleContext +from secure_access.models.behavior_analytics_context import BehaviorAnalyticsContext +from secure_access.models.severity_alert import SeverityAlert +from secure_access.models.status_alert import StatusAlert +from typing import Optional, Set +from typing_extensions import Self + +class AlertWithAdditionalContext(BaseModel): + """ + AlertWithAdditionalContext + """ # noqa: E501 + access_rule_context: Optional[AccessRuleContext] = None + alert_id: Optional[StrictStr] = Field(default=None, description="The unique identifier of the alert.", alias="alertId") + behavior_analytics_context: Optional[BehaviorAnalyticsContext] = None + created_at: Optional[datetime] = Field(default=None, description="The time and date (ISO 8601 timestamp) when the system created the alert.") + description: Optional[StrictStr] = Field(default=None, description="The description of the alert.") + modified_at: Optional[datetime] = Field(default=None, description="The time and date (ISO 8601 timestamp) when the system last modified the alert.") + name: Optional[StrictStr] = Field(default=None, description="The name of the alert.") + organization_id: Optional[StrictInt] = Field(default=None, description="The unique identifier of the organization.") + rule_id: Optional[StrictInt] = Field(default=None, description="The unique identifier of the associated rule.") + rule_type_id: Optional[StrictInt] = Field(default=None, description="The identifier of the rule type.") + severity: Optional[SeverityAlert] = None + status: Optional[StatusAlert] = None + __properties: ClassVar[List[str]] = ["access_rule_context", "alertId", "behavior_analytics_context", "created_at", "description", "modified_at", "name", "organization_id", "rule_id", "rule_type_id", "severity", "status"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of AlertWithAdditionalContext 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 access_rule_context + if self.access_rule_context: + _dict['access_rule_context'] = self.access_rule_context.to_dict() + # override the default output from pydantic by calling `to_dict()` of behavior_analytics_context + if self.behavior_analytics_context: + _dict['behavior_analytics_context'] = self.behavior_analytics_context.to_dict() + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of AlertWithAdditionalContext from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "access_rule_context": AccessRuleContext.from_dict(obj["access_rule_context"]) if obj.get("access_rule_context") is not None else None, + "alertId": obj.get("alertId"), + "behavior_analytics_context": BehaviorAnalyticsContext.from_dict(obj["behavior_analytics_context"]) if obj.get("behavior_analytics_context") is not None else None, + "created_at": obj.get("created_at"), + "description": obj.get("description"), + "modified_at": obj.get("modified_at"), + "name": obj.get("name"), + "organization_id": obj.get("organization_id"), + "rule_id": obj.get("rule_id"), + "rule_type_id": obj.get("rule_type_id"), + "severity": obj.get("severity"), + "status": obj.get("status") + }) + return _obj + + diff --git a/secure_access/models/alerting400_error.py b/secure_access/models/alerting400_error.py new file mode 100644 index 0000000..ae78df9 --- /dev/null +++ b/secure_access/models/alerting400_error.py @@ -0,0 +1,94 @@ +# Copyright 2026 Cisco Systems, Inc. and its affiliates +# +# SPDX-License-Identifier: Apache-2.0 + +# coding: utf-8 + +""" + Cisco Secure Access API + + Unified OpenAPI spec for Cisco Secure Access APIs. + + The version of the OpenAPI document: v2.0.202602030705 + Contact: devnet@cisco.com + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, Field, StrictInt, StrictStr +from typing import Any, ClassVar, Dict, List, Optional +from typing import Optional, Set +from typing_extensions import Self + +class Alerting400Error(BaseModel): + """ + Alerting400Error + """ # noqa: E501 + error: Optional[StrictStr] = Field(default=None, description="Bad Request") + status: Optional[StrictInt] = Field(default=None, description="The HTTP status code returned in the response.") + __properties: ClassVar[List[str]] = ["error", "status"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of Alerting400Error 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 Alerting400Error from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "error": obj.get("error"), + "status": obj.get("status") + }) + return _obj + + diff --git a/secure_access/models/alerting401_error.py b/secure_access/models/alerting401_error.py new file mode 100644 index 0000000..c9e2077 --- /dev/null +++ b/secure_access/models/alerting401_error.py @@ -0,0 +1,94 @@ +# Copyright 2026 Cisco Systems, Inc. and its affiliates +# +# SPDX-License-Identifier: Apache-2.0 + +# coding: utf-8 + +""" + Cisco Secure Access API + + Unified OpenAPI spec for Cisco Secure Access APIs. + + The version of the OpenAPI document: v2.0.202602030705 + Contact: devnet@cisco.com + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, Field, StrictInt, StrictStr +from typing import Any, ClassVar, Dict, List, Optional +from typing import Optional, Set +from typing_extensions import Self + +class Alerting401Error(BaseModel): + """ + Alerting401Error + """ # noqa: E501 + error: Optional[StrictStr] = Field(default=None, description="Unauthorized") + status: Optional[StrictInt] = Field(default=None, description="The HTTP status code returned in the response.") + __properties: ClassVar[List[str]] = ["error", "status"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of Alerting401Error 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 Alerting401Error from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "error": obj.get("error"), + "status": obj.get("status") + }) + return _obj + + diff --git a/secure_access/models/alerting403_error.py b/secure_access/models/alerting403_error.py new file mode 100644 index 0000000..ae89413 --- /dev/null +++ b/secure_access/models/alerting403_error.py @@ -0,0 +1,94 @@ +# Copyright 2026 Cisco Systems, Inc. and its affiliates +# +# SPDX-License-Identifier: Apache-2.0 + +# coding: utf-8 + +""" + Cisco Secure Access API + + Unified OpenAPI spec for Cisco Secure Access APIs. + + The version of the OpenAPI document: v2.0.202602030705 + Contact: devnet@cisco.com + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, Field, StrictInt, StrictStr +from typing import Any, ClassVar, Dict, List, Optional +from typing import Optional, Set +from typing_extensions import Self + +class Alerting403Error(BaseModel): + """ + Alerting403Error + """ # noqa: E501 + error: Optional[StrictStr] = Field(default=None, description="Error message explaining the reason for failure.") + status: Optional[StrictInt] = Field(default=None, description="The HTTP status code returned in the response.") + __properties: ClassVar[List[str]] = ["error", "status"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of Alerting403Error 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 Alerting403Error from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "error": obj.get("error"), + "status": obj.get("status") + }) + return _obj + + diff --git a/secure_access/models/alerting404_error.py b/secure_access/models/alerting404_error.py new file mode 100644 index 0000000..413a7bd --- /dev/null +++ b/secure_access/models/alerting404_error.py @@ -0,0 +1,94 @@ +# Copyright 2026 Cisco Systems, Inc. and its affiliates +# +# SPDX-License-Identifier: Apache-2.0 + +# coding: utf-8 + +""" + Cisco Secure Access API + + Unified OpenAPI spec for Cisco Secure Access APIs. + + The version of the OpenAPI document: v2.0.202602030705 + Contact: devnet@cisco.com + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, Field, StrictInt, StrictStr +from typing import Any, ClassVar, Dict, List, Optional +from typing import Optional, Set +from typing_extensions import Self + +class Alerting404Error(BaseModel): + """ + Alerting404Error + """ # noqa: E501 + error: Optional[StrictStr] = Field(default=None, description="Error message explaining the reason for failure.") + status: Optional[StrictInt] = Field(default=None, description="The HTTP status code returned in the response.") + __properties: ClassVar[List[str]] = ["error", "status"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of Alerting404Error 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 Alerting404Error from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "error": obj.get("error"), + "status": obj.get("status") + }) + return _obj + + diff --git a/secure_access/models/alerting500_error.py b/secure_access/models/alerting500_error.py new file mode 100644 index 0000000..ef947f8 --- /dev/null +++ b/secure_access/models/alerting500_error.py @@ -0,0 +1,94 @@ +# Copyright 2026 Cisco Systems, Inc. and its affiliates +# +# SPDX-License-Identifier: Apache-2.0 + +# coding: utf-8 + +""" + Cisco Secure Access API + + Unified OpenAPI spec for Cisco Secure Access APIs. + + The version of the OpenAPI document: v2.0.202602030705 + Contact: devnet@cisco.com + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, Field, StrictInt, StrictStr +from typing import Any, ClassVar, Dict, List, Optional +from typing import Optional, Set +from typing_extensions import Self + +class Alerting500Error(BaseModel): + """ + Alerting500Error + """ # noqa: E501 + error: Optional[StrictStr] = Field(default=None, description="Error message explaining the reason for failure.") + status: Optional[StrictInt] = Field(default=None, description="The HTTP status code returned in the response.") + __properties: ClassVar[List[str]] = ["error", "status"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of Alerting500Error 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 Alerting500Error from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "error": obj.get("error"), + "status": obj.get("status") + }) + return _obj + + diff --git a/secure_access/models/all_destinations_scope.py b/secure_access/models/all_destinations_scope.py new file mode 100644 index 0000000..22d4c62 --- /dev/null +++ b/secure_access/models/all_destinations_scope.py @@ -0,0 +1,43 @@ +# Copyright 2026 Cisco Systems, Inc. and its affiliates +# +# SPDX-License-Identifier: Apache-2.0 + +# coding: utf-8 + +""" + Cisco Secure Access API + + Unified OpenAPI spec for Cisco Secure Access APIs. + + The version of the OpenAPI document: v2.0.202602030705 + Contact: devnet@cisco.com + 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 AllDestinationsScope(str, Enum): + """ + The scope of all of the destinations for the DLP rule. + """ + + """ + allowed enum values + """ + NONE = 'NONE' + FILES_AND_FORMS = 'FILES_AND_FORMS' + FILES_AND_VETTED_APPS_FORMS = 'FILES_AND_VETTED_APPS_FORMS' + + @classmethod + def from_json(cls, json_str: str) -> Self: + """Create an instance of AllDestinationsScope from a JSON string""" + return cls(json.loads(json_str)) + + diff --git a/secure_access/models/already_exists_error.py b/secure_access/models/already_exists_error.py index dc7b0b4..66d86d0 100644 --- a/secure_access/models/already_exists_error.py +++ b/secure_access/models/already_exists_error.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/antivirus_threats.py b/secure_access/models/antivirus_threats.py index b867769..7a4f739 100644 --- a/secure_access/models/antivirus_threats.py +++ b/secure_access/models/antivirus_threats.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/api_error_response.py b/secure_access/models/api_error_response.py new file mode 100644 index 0000000..d484696 --- /dev/null +++ b/secure_access/models/api_error_response.py @@ -0,0 +1,96 @@ +# Copyright 2026 Cisco Systems, Inc. and its affiliates +# +# SPDX-License-Identifier: Apache-2.0 + +# coding: utf-8 + +""" + Cisco Secure Access API + + Unified OpenAPI spec for Cisco Secure Access APIs. + + The version of the OpenAPI document: v2.0.202602030705 + Contact: devnet@cisco.com + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, Field, StrictInt, StrictStr +from typing import Any, ClassVar, Dict, List, Optional +from typing import Optional, Set +from typing_extensions import Self + +class ApiErrorResponse(BaseModel): + """ + The standard error response format. + """ # noqa: E501 + error: Optional[StrictStr] = Field(default=None, description="Error description") + status_code: Optional[StrictInt] = Field(default=None, description="HTTP status code", alias="statusCode") + tx_id: Optional[StrictStr] = Field(default=None, description="Unique transaction ID for tracing the request", alias="txId") + __properties: ClassVar[List[str]] = ["error", "statusCode", "txId"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of ApiErrorResponse 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 ApiErrorResponse from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "error": obj.get("error"), + "statusCode": obj.get("statusCode"), + "txId": obj.get("txId") + }) + return _obj + + diff --git a/secure_access/models/api_usage_api400_error.py b/secure_access/models/api_usage_api400_error.py index 40776a6..f4069af 100644 --- a/secure_access/models/api_usage_api400_error.py +++ b/secure_access/models/api_usage_api400_error.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/api_usage_api401_error.py b/secure_access/models/api_usage_api401_error.py index 06e0b27..88b4508 100644 --- a/secure_access/models/api_usage_api401_error.py +++ b/secure_access/models/api_usage_api401_error.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/api_usage_api403_error.py b/secure_access/models/api_usage_api403_error.py index 096fc52..210c5b9 100644 --- a/secure_access/models/api_usage_api403_error.py +++ b/secure_access/models/api_usage_api403_error.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/api_usage_api404_error.py b/secure_access/models/api_usage_api404_error.py index e15467f..8543438 100644 --- a/secure_access/models/api_usage_api404_error.py +++ b/secure_access/models/api_usage_api404_error.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/api_usage_api500_error.py b/secure_access/models/api_usage_api500_error.py index 801f69f..8a98a1e 100644 --- a/secure_access/models/api_usage_api500_error.py +++ b/secure_access/models/api_usage_api500_error.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/app_connector_agent_detailed_stats_timerange.py b/secure_access/models/app_connector_agent_detailed_stats_timerange.py index 4fcd0c2..0700d3d 100644 --- a/secure_access/models/app_connector_agent_detailed_stats_timerange.py +++ b/secure_access/models/app_connector_agent_detailed_stats_timerange.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/app_connector_agent_summary_data.py b/secure_access/models/app_connector_agent_summary_data.py index c1e4326..98b5eb5 100644 --- a/secure_access/models/app_connector_agent_summary_data.py +++ b/secure_access/models/app_connector_agent_summary_data.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/app_connector_group_detailed_stats_timerange.py b/secure_access/models/app_connector_group_detailed_stats_timerange.py index 51e6ed6..a23f137 100644 --- a/secure_access/models/app_connector_group_detailed_stats_timerange.py +++ b/secure_access/models/app_connector_group_detailed_stats_timerange.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/app_connector_group_summary_data.py b/secure_access/models/app_connector_group_summary_data.py index 1a3d05f..2eb2222 100644 --- a/secure_access/models/app_connector_group_summary_data.py +++ b/secure_access/models/app_connector_group_summary_data.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/app_type.py b/secure_access/models/app_type.py index c7168aa..d13df1f 100644 --- a/secure_access/models/app_type.py +++ b/secure_access/models/app_type.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/application.py b/secure_access/models/application.py index 50899d1..f77df55 100644 --- a/secure_access/models/application.py +++ b/secure_access/models/application.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) @@ -22,31 +22,18 @@ import re # noqa: F401 import json -from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt, StrictStr, field_validator -from typing import Any, ClassVar, Dict, List, Optional, Union -from secure_access.models.application_category import ApplicationCategory +from pydantic import BaseModel, ConfigDict, Field, StrictInt, StrictStr +from typing import Any, ClassVar, Dict, List, Optional from typing import Optional, Set from typing_extensions import Self class Application(BaseModel): """ - The information about the application. + The properties of the application associated with the DLP rule event. """ # noqa: E501 - category: Optional[ApplicationCategory] = None - id: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="The ID of the application.") - label: Optional[StrictStr] = Field(default=None, description="The descriptive label for the application.") - type: Optional[StrictStr] = Field(default=None, description="The type of the application: NBAR or AVC.") - __properties: ClassVar[List[str]] = ["category", "id", "label", "type"] - - @field_validator('type') - def type_validate_enum(cls, value): - """Validates the enum""" - if value is None: - return value - - if value not in set(['NBAR', 'AVC']): - raise ValueError("must be one of enum values ('NBAR', 'AVC')") - return value + id: Optional[StrictInt] = Field(default=None, description="The unique identifier of the application.") + name: Optional[StrictStr] = Field(default=None, description="The name of the application.") + __properties: ClassVar[List[str]] = ["id", "name"] model_config = ConfigDict( populate_by_name=True, @@ -87,9 +74,6 @@ def to_dict(self) -> Dict[str, Any]: exclude=excluded_fields, exclude_none=True, ) - # override the default output from pydantic by calling `to_dict()` of category - if self.category: - _dict['category'] = self.category.to_dict() return _dict @classmethod @@ -102,10 +86,8 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: return cls.model_validate(obj) _obj = cls.model_validate({ - "category": ApplicationCategory.from_dict(obj["category"]) if obj.get("category") is not None else None, "id": obj.get("id"), - "label": obj.get("label"), - "type": obj.get("type") + "name": obj.get("name") }) return _obj diff --git a/secure_access/models/application_actions_inner.py b/secure_access/models/application_actions_inner.py index 38c9803..549d7ec 100644 --- a/secure_access/models/application_actions_inner.py +++ b/secure_access/models/application_actions_inner.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/application_attribute.py b/secure_access/models/application_attribute.py index 859301e..4072c49 100644 --- a/secure_access/models/application_attribute.py +++ b/secure_access/models/application_attribute.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/application_attribute_category.py b/secure_access/models/application_attribute_category.py index 6a02dc5..7f48450 100644 --- a/secure_access/models/application_attribute_category.py +++ b/secure_access/models/application_attribute_category.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/application_attribute_category_list.py b/secure_access/models/application_attribute_category_list.py index 6b4e1c4..f6aad8a 100644 --- a/secure_access/models/application_attribute_category_list.py +++ b/secure_access/models/application_attribute_category_list.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/application_attribute_value.py b/secure_access/models/application_attribute_value.py index 3b00a73..15f120b 100644 --- a/secure_access/models/application_attribute_value.py +++ b/secure_access/models/application_attribute_value.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/application_categories.py b/secure_access/models/application_categories.py index 1881780..b2a302c 100644 --- a/secure_access/models/application_categories.py +++ b/secure_access/models/application_categories.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/application_category.py b/secure_access/models/application_category.py index 0a677e3..e8da53d 100644 --- a/secure_access/models/application_category.py +++ b/secure_access/models/application_category.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) @@ -22,18 +22,17 @@ import re # noqa: F401 import json -from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt, StrictStr -from typing import Any, ClassVar, Dict, List, Optional, Union +from 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 ApplicationCategory(BaseModel): """ - The category of the application. + The application category information. """ # noqa: E501 - id: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="The ID of the application category.") - label: Optional[StrictStr] = Field(default=None, description="The label of the application category.") - __properties: ClassVar[List[str]] = ["id", "label"] + name: Optional[StrictStr] = Field(default=None, description="The name of the application category.") + __properties: ClassVar[List[str]] = ["name"] model_config = ConfigDict( populate_by_name=True, @@ -86,8 +85,7 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: return cls.model_validate(obj) _obj = cls.model_validate({ - "id": obj.get("id"), - "label": obj.get("label") + "name": obj.get("name") }) return _obj diff --git a/secure_access/models/application_category_list.py b/secure_access/models/application_category_list.py index ea6b468..a5f42c4 100644 --- a/secure_access/models/application_category_list.py +++ b/secure_access/models/application_category_list.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/application_identity.py b/secure_access/models/application_identity.py index e797aa3..62ec8ec 100644 --- a/secure_access/models/application_identity.py +++ b/secure_access/models/application_identity.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/application_identity_list.py b/secure_access/models/application_identity_list.py index 1be7103..79c4485 100644 --- a/secure_access/models/application_identity_list.py +++ b/secure_access/models/application_identity_list.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/application_in_list.py b/secure_access/models/application_in_list.py index ce2b9c0..4b0c3b9 100644 --- a/secure_access/models/application_in_list.py +++ b/secure_access/models/application_in_list.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/application_list.py b/secure_access/models/application_list.py index 25b2e01..4d877db 100644 --- a/secure_access/models/application_list.py +++ b/secure_access/models/application_list.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/application_list_request.py b/secure_access/models/application_list_request.py index b4b3fee..2b98c36 100644 --- a/secure_access/models/application_list_request.py +++ b/secure_access/models/application_list_request.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/application_list_with_info.py b/secure_access/models/application_list_with_info.py index 1686726..4d5a979 100644 --- a/secure_access/models/application_list_with_info.py +++ b/secure_access/models/application_list_with_info.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/application_lists.py b/secure_access/models/application_lists.py index 6d42f47..41fda9b 100644 --- a/secure_access/models/application_lists.py +++ b/secure_access/models/application_lists.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/application_lists400_error.py b/secure_access/models/application_lists400_error.py index 5eec58e..9345a62 100644 --- a/secure_access/models/application_lists400_error.py +++ b/secure_access/models/application_lists400_error.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/application_lists401_error.py b/secure_access/models/application_lists401_error.py index b5ccc22..38c2a64 100644 --- a/secure_access/models/application_lists401_error.py +++ b/secure_access/models/application_lists401_error.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/application_lists403_error.py b/secure_access/models/application_lists403_error.py index a10eff3..609728a 100644 --- a/secure_access/models/application_lists403_error.py +++ b/secure_access/models/application_lists403_error.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/application_lists404_error.py b/secure_access/models/application_lists404_error.py index 3251ba4..fae3c20 100644 --- a/secure_access/models/application_lists404_error.py +++ b/secure_access/models/application_lists404_error.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/application_lists500_error.py b/secure_access/models/application_lists500_error.py index c6bb9c2..ebbda57 100644 --- a/secure_access/models/application_lists500_error.py +++ b/secure_access/models/application_lists500_error.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/application_lists_application_list.py b/secure_access/models/application_lists_application_list.py index 9ec9887..dca338f 100644 --- a/secure_access/models/application_lists_application_list.py +++ b/secure_access/models/application_lists_application_list.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/application_lists_result_inner.py b/secure_access/models/application_lists_result_inner.py index c9f58ae..f62945f 100644 --- a/secure_access/models/application_lists_result_inner.py +++ b/secure_access/models/application_lists_result_inner.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/application_object.py b/secure_access/models/application_object.py index b1b35d5..9432a61 100644 --- a/secure_access/models/application_object.py +++ b/secure_access/models/application_object.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/application_risk.py b/secure_access/models/application_risk.py index 6215286..5619ecd 100644 --- a/secure_access/models/application_risk.py +++ b/secure_access/models/application_risk.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/application_risk_vendor_compliance_inner.py b/secure_access/models/application_risk_vendor_compliance_inner.py index 4382e6b..0cb5a02 100644 --- a/secure_access/models/application_risk_vendor_compliance_inner.py +++ b/secure_access/models/application_risk_vendor_compliance_inner.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/application_saas_api.py b/secure_access/models/application_saas_api.py new file mode 100644 index 0000000..1fe0762 --- /dev/null +++ b/secure_access/models/application_saas_api.py @@ -0,0 +1,94 @@ +# Copyright 2026 Cisco Systems, Inc. and its affiliates +# +# SPDX-License-Identifier: Apache-2.0 + +# coding: utf-8 + +""" + Cisco Secure Access API + + Unified OpenAPI spec for Cisco Secure Access APIs. + + The version of the OpenAPI document: v2.0.202602030705 + Contact: devnet@cisco.com + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, Field, StrictInt, StrictStr +from typing import Any, ClassVar, Dict, List, Optional +from typing import Optional, Set +from typing_extensions import Self + +class ApplicationSaasAPI(BaseModel): + """ + The properties of the application associated with the DLP rule event. + """ # noqa: E501 + id: Optional[StrictInt] = Field(default=None, description="The unique identifier of the application.") + name: Optional[StrictStr] = Field(default=None, description="The name of the application.") + __properties: ClassVar[List[str]] = ["id", "name"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of ApplicationSaasAPI 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 ApplicationSaasAPI from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "id": obj.get("id"), + "name": obj.get("name") + }) + return _obj + + diff --git a/secure_access/models/application_usage_response_inner.py b/secure_access/models/application_usage_response_inner.py index 8560dcb..a3a4ead 100644 --- a/secure_access/models/application_usage_response_inner.py +++ b/secure_access/models/application_usage_response_inner.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/application_usage_response_inner_used_by.py b/secure_access/models/application_usage_response_inner_used_by.py index 43de4be..93d9aeb 100644 --- a/secure_access/models/application_usage_response_inner_used_by.py +++ b/secure_access/models/application_usage_response_inner_used_by.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/application_usage_response_inner_used_by_application_lists_inner.py b/secure_access/models/application_usage_response_inner_used_by_application_lists_inner.py index 3f28847..dd3ef14 100644 --- a/secure_access/models/application_usage_response_inner_used_by_application_lists_inner.py +++ b/secure_access/models/application_usage_response_inner_used_by_application_lists_inner.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/applications_with_categories.py b/secure_access/models/applications_with_categories.py index ca9e8e3..20ebff9 100644 --- a/secure_access/models/applications_with_categories.py +++ b/secure_access/models/applications_with_categories.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) @@ -24,8 +24,8 @@ from pydantic import BaseModel, ConfigDict, Field from typing import Any, ClassVar, Dict, List, Optional -from secure_access.models.application import Application from secure_access.models.application_categories import ApplicationCategories +from secure_access.models.reporting_application import ReportingApplication from typing import Optional, Set from typing_extensions import Self @@ -33,7 +33,7 @@ class ApplicationsWithCategories(BaseModel): """ The information about the applications and categories. """ # noqa: E501 - applications: Optional[List[Application]] = Field(default=None, description="The list of applications.") + applications: Optional[List[ReportingApplication]] = Field(default=None, description="The list of applications.") categories: Optional[List[ApplicationCategories]] = Field(default=None, description="The list of application categories.") __properties: ClassVar[List[str]] = ["applications", "categories"] @@ -102,7 +102,7 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: return cls.model_validate(obj) _obj = cls.model_validate({ - "applications": [Application.from_dict(_item) for _item in obj["applications"]] if obj.get("applications") is not None else None, + "applications": [ReportingApplication.from_dict(_item) for _item in obj["applications"]] if obj.get("applications") is not None else None, "categories": [ApplicationCategories.from_dict(_item) for _item in obj["categories"]] if obj.get("categories") is not None else None }) return _obj diff --git a/secure_access/models/apply_to.py b/secure_access/models/apply_to.py index ca5dbed..1274e5a 100644 --- a/secure_access/models/apply_to.py +++ b/secure_access/models/apply_to.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/attribute_name.py b/secure_access/models/attribute_name.py index 6b4d526..6014335 100644 --- a/secure_access/models/attribute_name.py +++ b/secure_access/models/attribute_name.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/attribute_name_destination.py b/secure_access/models/attribute_name_destination.py index 6c6402c..779827e 100644 --- a/secure_access/models/attribute_name_destination.py +++ b/secure_access/models/attribute_name_destination.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/attribute_name_destination_composite.py b/secure_access/models/attribute_name_destination_composite.py index 2ceb8f3..0a3893d 100644 --- a/secure_access/models/attribute_name_destination_composite.py +++ b/secure_access/models/attribute_name_destination_composite.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/attribute_name_in_query.py b/secure_access/models/attribute_name_in_query.py index 1ad07b0..100c379 100644 --- a/secure_access/models/attribute_name_in_query.py +++ b/secure_access/models/attribute_name_in_query.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/attribute_name_source.py b/secure_access/models/attribute_name_source.py index 222ecc4..30b5eab 100644 --- a/secure_access/models/attribute_name_source.py +++ b/secure_access/models/attribute_name_source.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/attribute_name_source_composite.py b/secure_access/models/attribute_name_source_composite.py index f3170b4..e1ff587 100644 --- a/secure_access/models/attribute_name_source_composite.py +++ b/secure_access/models/attribute_name_source_composite.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/attribute_operator.py b/secure_access/models/attribute_operator.py index b58de04..547c84a 100644 --- a/secure_access/models/attribute_operator.py +++ b/secure_access/models/attribute_operator.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/attribute_value.py b/secure_access/models/attribute_value.py index 2f6ceb4..fee5732 100644 --- a/secure_access/models/attribute_value.py +++ b/secure_access/models/attribute_value.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/attribute_value_network_service_objects.py b/secure_access/models/attribute_value_network_service_objects.py index 0f6891c..6642219 100644 --- a/secure_access/models/attribute_value_network_service_objects.py +++ b/secure_access/models/attribute_value_network_service_objects.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/avresult.py b/secure_access/models/avresult.py index 5264632..c62a4e8 100644 --- a/secure_access/models/avresult.py +++ b/secure_access/models/avresult.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/bad_request.py b/secure_access/models/bad_request.py index cbd0a01..e1a0542 100644 --- a/secure_access/models/bad_request.py +++ b/secure_access/models/bad_request.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/bad_request_data.py b/secure_access/models/bad_request_data.py index 44cdef5..29194a5 100644 --- a/secure_access/models/bad_request_data.py +++ b/secure_access/models/bad_request_data.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/bad_request_error.py b/secure_access/models/bad_request_error.py index 5157f2b..68bd8ba 100644 --- a/secure_access/models/bad_request_error.py +++ b/secure_access/models/bad_request_error.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/bad_request_status.py b/secure_access/models/bad_request_status.py index 5c7079b..59f7ca9 100644 --- a/secure_access/models/bad_request_status.py +++ b/secure_access/models/bad_request_status.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/bandwidthby_hour.py b/secure_access/models/bandwidthby_hour.py index f66ee0c..4cf725e 100644 --- a/secure_access/models/bandwidthby_hour.py +++ b/secure_access/models/bandwidthby_hour.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/behavior.py b/secure_access/models/behavior.py index 6ebb0cc..cebd717 100644 --- a/secure_access/models/behavior.py +++ b/secure_access/models/behavior.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/behavior_analytics_context.py b/secure_access/models/behavior_analytics_context.py new file mode 100644 index 0000000..66384d9 --- /dev/null +++ b/secure_access/models/behavior_analytics_context.py @@ -0,0 +1,96 @@ +# Copyright 2026 Cisco Systems, Inc. and its affiliates +# +# SPDX-License-Identifier: Apache-2.0 + +# coding: utf-8 + +""" + Cisco Secure Access API + + Unified OpenAPI spec for Cisco Secure Access APIs. + + The version of the OpenAPI document: v2.0.202602030705 + Contact: devnet@cisco.com + 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 BehaviorAnalyticsContext(BaseModel): + """ + The properties of the context for the Behavior Analytics (UEBA) alerts. + """ # noqa: E501 + redirect_entity_url: Optional[StrictStr] = Field(default=None, description="The URL for the entity in Secure Access.") + redirect_entity_url_label: Optional[StrictStr] = Field(default=None, description="The label for the entity's redirect URL.") + redirect_event_url: Optional[StrictStr] = Field(default=None, description="The URL for the UEBA event in Secure Access.") + __properties: ClassVar[List[str]] = ["redirect_entity_url", "redirect_entity_url_label", "redirect_event_url"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of BehaviorAnalyticsContext 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 BehaviorAnalyticsContext from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "redirect_entity_url": obj.get("redirect_entity_url"), + "redirect_entity_url_label": obj.get("redirect_entity_url_label"), + "redirect_event_url": obj.get("redirect_event_url") + }) + return _obj + + diff --git a/secure_access/models/bgp.py b/secure_access/models/bgp.py index 990bae6..337f14a 100644 --- a/secure_access/models/bgp.py +++ b/secure_access/models/bgp.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/bgp_data_request_obj.py b/secure_access/models/bgp_data_request_obj.py index 44a39d2..44274aa 100644 --- a/secure_access/models/bgp_data_request_obj.py +++ b/secure_access/models/bgp_data_request_obj.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) @@ -22,8 +22,8 @@ import re # noqa: F401 import json -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List +from pydantic import BaseModel, ConfigDict, Field, StrictInt, StrictStr +from typing import Any, ClassVar, Dict, List, Optional from typing import Optional, Set from typing_extensions import Self @@ -32,7 +32,10 @@ class BgpDataRequestObj(BaseModel): The autonomous system (AS) number for the private access tunnels. """ # noqa: E501 as_number: StrictStr = Field(description="The border gateway protocol (BGP) autonomous system (AS) number for private access network tunnels. Only required for the `bgp` routing type. Any other routing types except `bgp` are ignored. Specify an integer between 0–65536.", alias="asNumber") - __properties: ClassVar[List[str]] = ["asNumber"] + bgp_hop_count: Optional[StrictInt] = Field(default=None, description="Indicates how many network hops a packet can traverse before being discarded by a router. It can only be an integer from 1 to 64 and if it is defined, then at least of BGP neighbor CIDR must be provided.", alias="bgpHopCount") + bgp_neighbor_cidrs: Optional[List[StrictStr]] = Field(default=None, description="The list of CIDR netmasks to limit the customer peers that can talk to the headend BGP. The system allows a maximum of 20 CIDRs.", alias="bgpNeighborCIDRs") + bgp_server_subnets: Optional[List[StrictStr]] = Field(default=None, description="The list of BGP server custom IP address ranges applicable only when the device type is `Azure S2S VPN`. The two ranges must be unique and have the `/32` mask.", alias="bgpServerSubnets") + __properties: ClassVar[List[str]] = ["asNumber", "bgpHopCount", "bgpNeighborCIDRs", "bgpServerSubnets"] model_config = ConfigDict( populate_by_name=True, @@ -85,7 +88,10 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: return cls.model_validate(obj) _obj = cls.model_validate({ - "asNumber": obj.get("asNumber") + "asNumber": obj.get("asNumber"), + "bgpHopCount": obj.get("bgpHopCount"), + "bgpNeighborCIDRs": obj.get("bgpNeighborCIDRs"), + "bgpServerSubnets": obj.get("bgpServerSubnets") }) return _obj diff --git a/secure_access/models/bgp_data_response_obj.py b/secure_access/models/bgp_data_response_obj.py index b76c370..020dd08 100644 --- a/secure_access/models/bgp_data_response_obj.py +++ b/secure_access/models/bgp_data_response_obj.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) @@ -22,8 +22,8 @@ import re # noqa: F401 import json -from pydantic import BaseModel, ConfigDict, Field, StrictStr -from typing import Any, ClassVar, Dict, List +from pydantic import BaseModel, ConfigDict, Field, StrictInt, StrictStr +from typing import Any, ClassVar, Dict, List, Optional from typing import Optional, Set from typing_extensions import Self @@ -32,7 +32,10 @@ class BgpDataResponseObj(BaseModel): The autonomous system (AS) number for the private access tunnels. """ # noqa: E501 as_number: StrictStr = Field(description="The border gateway protocol (BGP) autonomous system (AS) number for private access network tunnels. Only required for the `bgp` routing type. Any other routing types except `bgp` are ignored. Specify an integer between 0–65536.", alias="asNumber") - __properties: ClassVar[List[str]] = ["asNumber"] + bgp_hop_count: Optional[StrictInt] = Field(default=None, description="Indicates how many network hops a packet can traverse before being discarded by a router. It can only be an integer from 1 to 64 and if it is defined, then at least of BGP neighbor CIDR must be provided.", alias="bgpHopCount") + bgp_neighbor_cidrs: Optional[List[StrictStr]] = Field(default=None, description="The list of CIDR netmasks to limit the customer peers that can talk to the headend BGP. The system allows a maximum of 20 CIDRs.", alias="bgpNeighborCIDRs") + bgp_server_subnets: Optional[List[StrictStr]] = Field(default=None, description="The list of BGP server custom IP address ranges applicable only when the device type is `Azure S2S VPN`. The two ranges must be unique and have the `/32` mask.", alias="bgpServerSubnets") + __properties: ClassVar[List[str]] = ["asNumber", "bgpHopCount", "bgpNeighborCIDRs", "bgpServerSubnets"] model_config = ConfigDict( populate_by_name=True, @@ -85,7 +88,10 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: return cls.model_validate(obj) _obj = cls.model_validate({ - "asNumber": obj.get("asNumber") + "asNumber": obj.get("asNumber"), + "bgpHopCount": obj.get("bgpHopCount"), + "bgpNeighborCIDRs": obj.get("bgpNeighborCIDRs"), + "bgpServerSubnets": obj.get("bgpServerSubnets") }) return _obj diff --git a/secure_access/models/branch_access.py b/secure_access/models/branch_access.py index 59aebdd..8bde9a2 100644 --- a/secure_access/models/branch_access.py +++ b/secure_access/models/branch_access.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/browser_based_access_common.py b/secure_access/models/browser_based_access_common.py index b6c4adc..1c2d43a 100644 --- a/secure_access/models/browser_based_access_common.py +++ b/secure_access/models/browser_based_access_common.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/browser_based_access_request.py b/secure_access/models/browser_based_access_request.py index db19a59..6c9c63d 100644 --- a/secure_access/models/browser_based_access_request.py +++ b/secure_access/models/browser_based_access_request.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/browser_based_access_response.py b/secure_access/models/browser_based_access_response.py index c5d7dbf..7ff0d52 100644 --- a/secure_access/models/browser_based_access_response.py +++ b/secure_access/models/browser_based_access_response.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/built_in_data_identifier.py b/secure_access/models/built_in_data_identifier.py new file mode 100644 index 0000000..36c092d --- /dev/null +++ b/secure_access/models/built_in_data_identifier.py @@ -0,0 +1,103 @@ +# Copyright 2026 Cisco Systems, Inc. and its affiliates +# +# SPDX-License-Identifier: Apache-2.0 + +# coding: utf-8 + +""" + Cisco Secure Access API + + Unified OpenAPI spec for Cisco Secure Access APIs. + + The version of the OpenAPI document: v2.0.202602030705 + Contact: devnet@cisco.com + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictInt, StrictStr +from typing import Any, ClassVar, Dict, List, Optional +from uuid import UUID +from typing import Optional, Set +from typing_extensions import Self + +class BuiltInDataIdentifier(BaseModel): + """ + The properties of the built-in data identifier. + """ # noqa: E501 + creation_time: Optional[StrictInt] = Field(default=None, description="The date and time represented in seconds since the UNIX Epoch when the system created the built-in data identifier.", alias="creationTime") + description: Optional[StrictStr] = Field(default=None, description="A brief description of the data identifier.") + id: Optional[UUID] = Field(default=None, description="Unique identifier of the data identifier.") + low_specificity: Optional[StrictBool] = Field(default=None, description="Indicates whether the identifier has low specificity.", alias="lowSpecificity") + modification_time: Optional[StrictInt] = Field(default=None, description="The date and time represented in seconds since the UNIX Epoch when the system updated the built-in data identifier.", alias="modificationTime") + name: Optional[StrictStr] = Field(default=None, description="Name of the data identifier.") + __properties: ClassVar[List[str]] = ["creationTime", "description", "id", "lowSpecificity", "modificationTime", "name"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of BuiltInDataIdentifier 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 BuiltInDataIdentifier from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "creationTime": obj.get("creationTime"), + "description": obj.get("description"), + "id": obj.get("id"), + "lowSpecificity": obj.get("lowSpecificity"), + "modificationTime": obj.get("modificationTime"), + "name": obj.get("name") + }) + return _obj + + diff --git a/secure_access/models/built_in_data_identifier_list_item.py b/secure_access/models/built_in_data_identifier_list_item.py new file mode 100644 index 0000000..2248140 --- /dev/null +++ b/secure_access/models/built_in_data_identifier_list_item.py @@ -0,0 +1,95 @@ +# Copyright 2026 Cisco Systems, Inc. and its affiliates +# +# SPDX-License-Identifier: Apache-2.0 + +# coding: utf-8 + +""" + Cisco Secure Access API + + Unified OpenAPI spec for Cisco Secure Access APIs. + + The version of the OpenAPI document: v2.0.202602030705 + Contact: devnet@cisco.com + 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 uuid import UUID +from typing import Optional, Set +from typing_extensions import Self + +class BuiltInDataIdentifierListItem(BaseModel): + """ + The properties of the built-in data identifier. + """ # noqa: E501 + id: Optional[UUID] = Field(default=None, description="Unique identifier of the data identifier.") + name: Optional[StrictStr] = Field(default=None, description="Name of the data identifier.") + __properties: ClassVar[List[str]] = ["id", "name"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of BuiltInDataIdentifierListItem 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 BuiltInDataIdentifierListItem from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "id": obj.get("id"), + "name": obj.get("name") + }) + return _obj + + diff --git a/secure_access/models/bulk_label_applications.py b/secure_access/models/bulk_label_applications.py index 895ae3e..90c3f5d 100644 --- a/secure_access/models/bulk_label_applications.py +++ b/secure_access/models/bulk_label_applications.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/bundle_type_id.py b/secure_access/models/bundle_type_id.py index 81cd7bb..1c5ff18 100644 --- a/secure_access/models/bundle_type_id.py +++ b/secure_access/models/bundle_type_id.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/business_risk.py b/secure_access/models/business_risk.py index 9d32e2e..438b9e1 100644 --- a/secure_access/models/business_risk.py +++ b/secure_access/models/business_risk.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/category_by_hour.py b/secure_access/models/category_by_hour.py index aed1dc0..002a09f 100644 --- a/secure_access/models/category_by_hour.py +++ b/secure_access/models/category_by_hour.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/category_count.py b/secure_access/models/category_count.py index d44d00f..674dd72 100644 --- a/secure_access/models/category_count.py +++ b/secure_access/models/category_count.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/category_with_legacy_id.py b/secure_access/models/category_with_legacy_id.py index 1617b25..3b54d80 100644 --- a/secure_access/models/category_with_legacy_id.py +++ b/secure_access/models/category_with_legacy_id.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/cdfw_source.py b/secure_access/models/cdfw_source.py index c0bfede..9eedb9a 100644 --- a/secure_access/models/cdfw_source.py +++ b/secure_access/models/cdfw_source.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/certificate.py b/secure_access/models/certificate.py index e7a46de..044ecae 100644 --- a/secure_access/models/certificate.py +++ b/secure_access/models/certificate.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/cisco_amp.py b/secure_access/models/cisco_amp.py index 224ac83..617a41c 100644 --- a/secure_access/models/cisco_amp.py +++ b/secure_access/models/cisco_amp.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/classifications_inner.py b/secure_access/models/classifications_inner.py new file mode 100644 index 0000000..9dd0cff --- /dev/null +++ b/secure_access/models/classifications_inner.py @@ -0,0 +1,104 @@ +# Copyright 2026 Cisco Systems, Inc. and its affiliates +# +# SPDX-License-Identifier: Apache-2.0 + +# coding: utf-8 + +""" + Cisco Secure Access API + + Unified OpenAPI spec for Cisco Secure Access APIs. + + The version of the OpenAPI document: v2.0.202602030705 + Contact: devnet@cisco.com + 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 secure_access.models.classifications_inner_classifiers_inner import ClassificationsInnerClassifiersInner +from typing import Optional, Set +from typing_extensions import Self + +class ClassificationsInner(BaseModel): + """ + The properties of the classifications. + """ # noqa: E501 + classifiers: Optional[List[ClassificationsInnerClassifiersInner]] = Field(default=None, description="The list of classifiers associated with the classification.") + id: Optional[StrictStr] = Field(default=None, description="The unique identifier of the classification.") + name: Optional[StrictStr] = Field(default=None, description="The name of the classification.") + __properties: ClassVar[List[str]] = ["classifiers", "id", "name"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of ClassificationsInner 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 classifiers (list) + _items = [] + if self.classifiers: + for _item_classifiers in self.classifiers: + if _item_classifiers: + _items.append(_item_classifiers.to_dict()) + _dict['classifiers'] = _items + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of ClassificationsInner from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "classifiers": [ClassificationsInnerClassifiersInner.from_dict(_item) for _item in obj["classifiers"]] if obj.get("classifiers") is not None else None, + "id": obj.get("id"), + "name": obj.get("name") + }) + return _obj + + diff --git a/secure_access/models/classifications_inner_classifiers_inner.py b/secure_access/models/classifications_inner_classifiers_inner.py new file mode 100644 index 0000000..35e0cfa --- /dev/null +++ b/secure_access/models/classifications_inner_classifiers_inner.py @@ -0,0 +1,106 @@ +# Copyright 2026 Cisco Systems, Inc. and its affiliates +# +# SPDX-License-Identifier: Apache-2.0 + +# coding: utf-8 + +""" + Cisco Secure Access API + + Unified OpenAPI spec for Cisco Secure Access APIs. + + The version of the OpenAPI document: v2.0.202602030705 + Contact: devnet@cisco.com + 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 secure_access.models.classifications_inner_classifiers_inner_matches_inner import ClassificationsInnerClassifiersInnerMatchesInner +from typing import Optional, Set +from typing_extensions import Self + +class ClassificationsInnerClassifiersInner(BaseModel): + """ + The properties of the classifier. + """ # noqa: E501 + id: Optional[StrictStr] = Field(default=None, description="The unique identifier of the classifier.") + matches: Optional[List[ClassificationsInnerClassifiersInnerMatchesInner]] = Field(default=None, description="The list of matches found by the classifier.") + name: Optional[StrictStr] = Field(default=None, description="The name of the classifier.") + total_matches: Optional[StrictInt] = Field(default=None, description="The total number of matches found by the classifier.", alias="totalMatches") + __properties: ClassVar[List[str]] = ["id", "matches", "name", "totalMatches"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of ClassificationsInnerClassifiersInner 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 matches (list) + _items = [] + if self.matches: + for _item_matches in self.matches: + if _item_matches: + _items.append(_item_matches.to_dict()) + _dict['matches'] = _items + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of ClassificationsInnerClassifiersInner 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"), + "matches": [ClassificationsInnerClassifiersInnerMatchesInner.from_dict(_item) for _item in obj["matches"]] if obj.get("matches") is not None else None, + "name": obj.get("name"), + "totalMatches": obj.get("totalMatches") + }) + return _obj + + diff --git a/secure_access/models/classifications_inner_classifiers_inner_matches_inner.py b/secure_access/models/classifications_inner_classifiers_inner_matches_inner.py new file mode 100644 index 0000000..9d20dbc --- /dev/null +++ b/secure_access/models/classifications_inner_classifiers_inner_matches_inner.py @@ -0,0 +1,92 @@ +# Copyright 2026 Cisco Systems, Inc. and its affiliates +# +# SPDX-License-Identifier: Apache-2.0 + +# coding: utf-8 + +""" + Cisco Secure Access API + + Unified OpenAPI spec for Cisco Secure Access APIs. + + The version of the OpenAPI document: v2.0.202602030705 + Contact: devnet@cisco.com + 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 ClassificationsInnerClassifiersInnerMatchesInner(BaseModel): + """ + The properties of the match. + """ # noqa: E501 + text: Optional[StrictStr] = Field(default=None, description="The excerpt where the match was found.") + __properties: ClassVar[List[str]] = ["text"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of ClassificationsInnerClassifiersInnerMatchesInner 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 ClassificationsInnerClassifiersInnerMatchesInner from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "text": obj.get("text") + }) + return _obj + + diff --git a/secure_access/models/classifier_evaluation_strategy.py b/secure_access/models/classifier_evaluation_strategy.py new file mode 100644 index 0000000..e115330 --- /dev/null +++ b/secure_access/models/classifier_evaluation_strategy.py @@ -0,0 +1,42 @@ +# Copyright 2026 Cisco Systems, Inc. and its affiliates +# +# SPDX-License-Identifier: Apache-2.0 + +# coding: utf-8 + +""" + Cisco Secure Access API + + Unified OpenAPI spec for Cisco Secure Access APIs. + + The version of the OpenAPI document: v2.0.202602030705 + Contact: devnet@cisco.com + 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 ClassifierEvaluationStrategy(str, Enum): + """ + The strategy for evaluating the classifiers. + """ + + """ + allowed enum values + """ + ALL = 'all' + ANY = 'any' + + @classmethod + def from_json(cls, json_str: str) -> Self: + """Create an instance of ClassifierEvaluationStrategy from a JSON string""" + return cls(json.loads(json_str)) + + diff --git a/secure_access/models/client_based_access.py b/secure_access/models/client_based_access.py index 7a6f22d..6185775 100644 --- a/secure_access/models/client_based_access.py +++ b/secure_access/models/client_based_access.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/collection_reference_response.py b/secure_access/models/collection_reference_response.py index be12a61..66faf6d 100644 --- a/secure_access/models/collection_reference_response.py +++ b/secure_access/models/collection_reference_response.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/collection_reference_response_results_inner.py b/secure_access/models/collection_reference_response_results_inner.py index fe8e811..369632d 100644 --- a/secure_access/models/collection_reference_response_results_inner.py +++ b/secure_access/models/collection_reference_response_results_inner.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/columns_edm_create_inner.py b/secure_access/models/columns_edm_create_inner.py new file mode 100644 index 0000000..9f1e36e --- /dev/null +++ b/secure_access/models/columns_edm_create_inner.py @@ -0,0 +1,99 @@ +# Copyright 2026 Cisco Systems, Inc. and its affiliates +# +# SPDX-License-Identifier: Apache-2.0 + +# coding: utf-8 + +""" + Cisco Secure Access API + + Unified OpenAPI spec for Cisco Secure Access APIs. + + The version of the OpenAPI document: v2.0.202602030705 + Contact: devnet@cisco.com + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr +from typing import Any, ClassVar, Dict, List +from uuid import UUID +from typing import Optional, Set +from typing_extensions import Self + +class ColumnsEdmCreateInner(BaseModel): + """ + The properties of the column in the EDM data identifier. + """ # noqa: E501 + name: StrictStr = Field(description="The name of the column.") + primary: StrictBool = Field(description="Specifies whether the column is the primary column.") + samples: List[StrictStr] = Field(description="The list of sample data for the column.") + type_id: UUID = Field(description="The ID of the type for the column.", alias="typeId") + __properties: ClassVar[List[str]] = ["name", "primary", "samples", "typeId"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of ColumnsEdmCreateInner 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 ColumnsEdmCreateInner from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "name": obj.get("name"), + "primary": obj.get("primary"), + "samples": obj.get("samples"), + "typeId": obj.get("typeId") + }) + return _obj + + diff --git a/secure_access/models/columns_edm_with_id_inner.py b/secure_access/models/columns_edm_with_id_inner.py new file mode 100644 index 0000000..a68ac37 --- /dev/null +++ b/secure_access/models/columns_edm_with_id_inner.py @@ -0,0 +1,101 @@ +# Copyright 2026 Cisco Systems, Inc. and its affiliates +# +# SPDX-License-Identifier: Apache-2.0 + +# coding: utf-8 + +""" + Cisco Secure Access API + + Unified OpenAPI spec for Cisco Secure Access APIs. + + The version of the OpenAPI document: v2.0.202602030705 + Contact: devnet@cisco.com + 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 uuid import UUID +from typing import Optional, Set +from typing_extensions import Self + +class ColumnsEdmWithIdInner(BaseModel): + """ + ColumnsEdmWithIdInner + """ # noqa: E501 + id: Optional[StrictStr] = Field(default=None, description="The unique identifier of the column.") + name: StrictStr = Field(description="The name of the column.") + primary: StrictBool = Field(description="Specifies whether the column is the primary column.") + samples: List[StrictStr] = Field(description="The list of sample data for the column.") + type_id: UUID = Field(description="The ID of the type for the column.", alias="typeId") + __properties: ClassVar[List[str]] = ["id", "name", "primary", "samples", "typeId"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of ColumnsEdmWithIdInner 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 ColumnsEdmWithIdInner 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"), + "primary": obj.get("primary"), + "samples": obj.get("samples"), + "typeId": obj.get("typeId") + }) + return _obj + + diff --git a/secure_access/models/conditions_alert_rule.py b/secure_access/models/conditions_alert_rule.py new file mode 100644 index 0000000..13f1f19 --- /dev/null +++ b/secure_access/models/conditions_alert_rule.py @@ -0,0 +1,112 @@ +# Copyright 2026 Cisco Systems, Inc. and its affiliates +# +# SPDX-License-Identifier: Apache-2.0 + +# coding: utf-8 + +""" + Cisco Secure Access API + + Unified OpenAPI spec for Cisco Secure Access APIs. + + The version of the OpenAPI document: v2.0.202602030705 + Contact: devnet@cisco.com + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator +from typing import Any, ClassVar, Dict, List, Optional +from secure_access.models.conditions_alert_rule_rows_inner import ConditionsAlertRuleRowsInner +from typing import Optional, Set +from typing_extensions import Self + +class ConditionsAlertRule(BaseModel): + """ + The conditions that trigger the type of notification. + """ # noqa: E501 + match_type: Optional[StrictStr] = Field(default=None, description="Choose from one of the accepted conditions: `all` (AND), `any` (OR), or ''.") + rows: Optional[List[ConditionsAlertRuleRowsInner]] = Field(default=None, description="The list of conditions that the system uses to evaluate the alert rule.") + __properties: ClassVar[List[str]] = ["match_type", "rows"] + + @field_validator('match_type') + def match_type_validate_enum(cls, value): + """Validates the enum""" + if value is None: + return value + + if value not in set(['all', 'any', '']): + raise ValueError("must be one of enum values ('all', 'any', '')") + return value + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of ConditionsAlertRule 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 rows (list) + _items = [] + if self.rows: + for _item_rows in self.rows: + if _item_rows: + _items.append(_item_rows.to_dict()) + _dict['rows'] = _items + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of ConditionsAlertRule from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "match_type": obj.get("match_type"), + "rows": [ConditionsAlertRuleRowsInner.from_dict(_item) for _item in obj["rows"]] if obj.get("rows") is not None else None + }) + return _obj + + diff --git a/secure_access/models/ztna_summary.py b/secure_access/models/conditions_alert_rule_rows_inner.py similarity index 68% rename from secure_access/models/ztna_summary.py rename to secure_access/models/conditions_alert_rule_rows_inner.py index 7505c99..d86d39a 100644 --- a/secure_access/models/ztna_summary.py +++ b/secure_access/models/conditions_alert_rule_rows_inner.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) @@ -22,19 +22,18 @@ import re # noqa: F401 import json -from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt -from typing import Any, ClassVar, Dict, List, Optional, Union +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 ZtnaSummary(BaseModel): +class ConditionsAlertRuleRowsInner(BaseModel): """ - ZtnaSummary + The conditions that define the alert rule. """ # noqa: E501 - count: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="the number of requests associated with the rule") - lasteventat: Optional[Union[StrictFloat, StrictInt]] = None - ruleid: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="the rule ID for the policy") - __properties: ClassVar[List[str]] = ["count", "lasteventat", "ruleid"] + var_field: StrictStr = Field(description="The name of the condition.", alias="field") + value: StrictStr = Field(description="The canonical name of the geographical region for the data center where the notification occurs.") + __properties: ClassVar[List[str]] = ["field", "value"] model_config = ConfigDict( populate_by_name=True, @@ -54,7 +53,7 @@ def to_json(self) -> str: @classmethod def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of ZtnaSummary from a JSON string""" + """Create an instance of ConditionsAlertRuleRowsInner from a JSON string""" return cls.from_dict(json.loads(json_str)) def to_dict(self) -> Dict[str, Any]: @@ -79,7 +78,7 @@ def to_dict(self) -> Dict[str, Any]: @classmethod def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of ZtnaSummary from a dict""" + """Create an instance of ConditionsAlertRuleRowsInner from a dict""" if obj is None: return None @@ -87,9 +86,8 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: return cls.model_validate(obj) _obj = cls.model_validate({ - "count": obj.get("count"), - "lasteventat": obj.get("lasteventat"), - "ruleid": obj.get("ruleid") + "field": obj.get("field"), + "value": obj.get("value") }) return _obj diff --git a/secure_access/models/connection.py b/secure_access/models/connection.py index cd18714..a3562ac 100644 --- a/secure_access/models/connection.py +++ b/secure_access/models/connection.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/connector_counts_response.py b/secure_access/models/connector_counts_response.py index a89efd0..50bf8ee 100644 --- a/secure_access/models/connector_counts_response.py +++ b/secure_access/models/connector_counts_response.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/connector_group_counts_response.py b/secure_access/models/connector_group_counts_response.py index 6fd82a6..936f44a 100644 --- a/secure_access/models/connector_group_counts_response.py +++ b/secure_access/models/connector_group_counts_response.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/connector_group_list.py b/secure_access/models/connector_group_list.py index 4307c3a..e98471e 100644 --- a/secure_access/models/connector_group_list.py +++ b/secure_access/models/connector_group_list.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/connector_group_patch_req_inner.py b/secure_access/models/connector_group_patch_req_inner.py index 49af023..5ed8183 100644 --- a/secure_access/models/connector_group_patch_req_inner.py +++ b/secure_access/models/connector_group_patch_req_inner.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/connector_group_patch_req_inner_value.py b/secure_access/models/connector_group_patch_req_inner_value.py index 16a0602..c102840 100644 --- a/secure_access/models/connector_group_patch_req_inner_value.py +++ b/secure_access/models/connector_group_patch_req_inner_value.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/connector_group_req.py b/secure_access/models/connector_group_req.py index 483aa90..e2c5308 100644 --- a/secure_access/models/connector_group_req.py +++ b/secure_access/models/connector_group_req.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/connector_group_response.py b/secure_access/models/connector_group_response.py index 30755dc..a163510 100644 --- a/secure_access/models/connector_group_response.py +++ b/secure_access/models/connector_group_response.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/connector_list_res.py b/secure_access/models/connector_list_res.py index e17fe2d..166a8b8 100644 --- a/secure_access/models/connector_list_res.py +++ b/secure_access/models/connector_list_res.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/connector_patch_req_inner.py b/secure_access/models/connector_patch_req_inner.py index 7dc389d..2b0045c 100644 --- a/secure_access/models/connector_patch_req_inner.py +++ b/secure_access/models/connector_patch_req_inner.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/connector_response.py b/secure_access/models/connector_response.py index 07e8b0c..f3dbbbd 100644 --- a/secure_access/models/connector_response.py +++ b/secure_access/models/connector_response.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/content_category_setting.py b/secure_access/models/content_category_setting.py index 062cc42..e435a61 100644 --- a/secure_access/models/content_category_setting.py +++ b/secure_access/models/content_category_setting.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/create_alert_rule201_response.py b/secure_access/models/create_alert_rule201_response.py new file mode 100644 index 0000000..6759466 --- /dev/null +++ b/secure_access/models/create_alert_rule201_response.py @@ -0,0 +1,92 @@ +# Copyright 2026 Cisco Systems, Inc. and its affiliates +# +# SPDX-License-Identifier: Apache-2.0 + +# coding: utf-8 + +""" + Cisco Secure Access API + + Unified OpenAPI spec for Cisco Secure Access APIs. + + The version of the OpenAPI document: v2.0.202602030705 + Contact: devnet@cisco.com + 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 CreateAlertRule201Response(BaseModel): + """ + The properties of the created alert rule. + """ # noqa: E501 + message: Optional[StrictStr] = Field(default=None, description="The message from the system about the creation of the alert rule.") + __properties: ClassVar[List[str]] = ["message"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of CreateAlertRule201Response 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 CreateAlertRule201Response from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "message": obj.get("message") + }) + return _obj + + diff --git a/secure_access/models/create_alert_rule_request.py b/secure_access/models/create_alert_rule_request.py new file mode 100644 index 0000000..1e241ae --- /dev/null +++ b/secure_access/models/create_alert_rule_request.py @@ -0,0 +1,119 @@ +# Copyright 2026 Cisco Systems, Inc. and its affiliates +# +# SPDX-License-Identifier: Apache-2.0 + +# coding: utf-8 + +""" + Cisco Secure Access API + + Unified OpenAPI spec for Cisco Secure Access APIs. + + The version of the OpenAPI document: v2.0.202602030705 + Contact: devnet@cisco.com + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, Field, StrictInt +from typing import Any, ClassVar, Dict, List, Optional +from typing_extensions import Annotated +from secure_access.models.conditions_alert_rule import ConditionsAlertRule +from secure_access.models.notification_info_alert_rule import NotificationInfoAlertRule +from secure_access.models.severity_alert import SeverityAlert +from secure_access.models.status_alert_rule import StatusAlertRule +from typing import Optional, Set +from typing_extensions import Self + +class CreateAlertRuleRequest(BaseModel): + """ + The properties of the alert rule used by the system to create or update an alert rule. + """ # noqa: E501 + conditions: Optional[ConditionsAlertRule] = None + description: Optional[Annotated[str, Field(strict=True, max_length=100)]] = Field(default=None, description="The description of the alert rule.") + name: Annotated[str, Field(strict=True, max_length=255)] = Field(description="The unique name of the alert rule.") + notification_info: Optional[List[NotificationInfoAlertRule]] = Field(default=None, description="The list of notifications for the alert rule.") + rule_type_id: StrictInt = Field(description="The identifier of the rule type.") + severity: SeverityAlert + status: StatusAlertRule + __properties: ClassVar[List[str]] = ["conditions", "description", "name", "notification_info", "rule_type_id", "severity", "status"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of CreateAlertRuleRequest 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 conditions + if self.conditions: + _dict['conditions'] = self.conditions.to_dict() + # override the default output from pydantic by calling `to_dict()` of each item in notification_info (list) + _items = [] + if self.notification_info: + for _item_notification_info in self.notification_info: + if _item_notification_info: + _items.append(_item_notification_info.to_dict()) + _dict['notification_info'] = _items + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of CreateAlertRuleRequest from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "conditions": ConditionsAlertRule.from_dict(obj["conditions"]) if obj.get("conditions") is not None else None, + "description": obj.get("description"), + "name": obj.get("name"), + "notification_info": [NotificationInfoAlertRule.from_dict(_item) for _item in obj["notification_info"]] if obj.get("notification_info") is not None else None, + "rule_type_id": obj.get("rule_type_id"), + "severity": obj.get("severity"), + "status": obj.get("status") + }) + return _obj + + diff --git a/secure_access/models/create_api_keys_request.py b/secure_access/models/create_api_keys_request.py index f2fe5f2..739509b 100644 --- a/secure_access/models/create_api_keys_request.py +++ b/secure_access/models/create_api_keys_request.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/create_custom_ips_profile_request.py b/secure_access/models/create_custom_ips_profile_request.py index 84c36be..ee7d81b 100644 --- a/secure_access/models/create_custom_ips_profile_request.py +++ b/secure_access/models/create_custom_ips_profile_request.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/create_integration_credential_input_body.py b/secure_access/models/create_integration_credential_input_body.py index f75628f..aeeb6d0 100644 --- a/secure_access/models/create_integration_credential_input_body.py +++ b/secure_access/models/create_integration_credential_input_body.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/create_integration_input_body.py b/secure_access/models/create_integration_input_body.py index 8be2639..a03dfa1 100644 --- a/secure_access/models/create_integration_input_body.py +++ b/secure_access/models/create_integration_input_body.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) @@ -25,9 +25,10 @@ from pydantic import BaseModel, ConfigDict, Field, StrictStr from typing import Any, ClassVar, Dict, List, Optional from typing_extensions import Annotated -from secure_access.models.integration_type import IntegrationType from secure_access.models.intune_config_input import IntuneConfigInput from secure_access.models.jamf_config_input import JamfConfigInput +from secure_access.models.security_events_config_input import SecurityEventsConfigInput +from secure_access.models.third_party_integrations_integration_type import ThirdPartyIntegrationsIntegrationType from secure_access.models.webhook_config_input import WebhookConfigInput from typing import Optional, Set from typing_extensions import Self @@ -39,10 +40,11 @@ class CreateIntegrationInputBody(BaseModel): intune_config: Optional[IntuneConfigInput] = Field(default=None, alias="intuneConfig") jamf_config: Optional[JamfConfigInput] = Field(default=None, alias="jamfConfig") name: Annotated[str, Field(min_length=1, strict=True, max_length=250)] = Field(description="The name of the integration.") + security_events_config: Optional[SecurityEventsConfigInput] = Field(default=None, alias="securityEventsConfig") tags: Optional[List[StrictStr]] = Field(default=None, description="The list of tags associated with the integration.") - type: IntegrationType + type: ThirdPartyIntegrationsIntegrationType webhook_config: Optional[WebhookConfigInput] = Field(default=None, alias="webhookConfig") - __properties: ClassVar[List[str]] = ["intuneConfig", "jamfConfig", "name", "tags", "type", "webhookConfig"] + __properties: ClassVar[List[str]] = ["intuneConfig", "jamfConfig", "name", "securityEventsConfig", "tags", "type", "webhookConfig"] model_config = ConfigDict( populate_by_name=True, @@ -89,6 +91,9 @@ def to_dict(self) -> Dict[str, Any]: # override the default output from pydantic by calling `to_dict()` of jamf_config if self.jamf_config: _dict['jamfConfig'] = self.jamf_config.to_dict() + # override the default output from pydantic by calling `to_dict()` of security_events_config + if self.security_events_config: + _dict['securityEventsConfig'] = self.security_events_config.to_dict() # override the default output from pydantic by calling `to_dict()` of webhook_config if self.webhook_config: _dict['webhookConfig'] = self.webhook_config.to_dict() @@ -107,6 +112,7 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: "intuneConfig": IntuneConfigInput.from_dict(obj["intuneConfig"]) if obj.get("intuneConfig") is not None else None, "jamfConfig": JamfConfigInput.from_dict(obj["jamfConfig"]) if obj.get("jamfConfig") is not None else None, "name": obj.get("name"), + "securityEventsConfig": SecurityEventsConfigInput.from_dict(obj["securityEventsConfig"]) if obj.get("securityEventsConfig") is not None else None, "tags": obj.get("tags"), "type": obj.get("type"), "webhookConfig": WebhookConfigInput.from_dict(obj["webhookConfig"]) if obj.get("webhookConfig") is not None else None diff --git a/secure_access/models/create_internal_domain_request.py b/secure_access/models/create_internal_domain_request.py index 0876098..e14a414 100644 --- a/secure_access/models/create_internal_domain_request.py +++ b/secure_access/models/create_internal_domain_request.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/create_internal_network_request.py b/secure_access/models/create_internal_network_request.py index d988df3..2b11cc7 100644 --- a/secure_access/models/create_internal_network_request.py +++ b/secure_access/models/create_internal_network_request.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/create_network403_response.py b/secure_access/models/create_network403_response.py index 53d0603..811cc73 100644 --- a/secure_access/models/create_network403_response.py +++ b/secure_access/models/create_network403_response.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/create_network_request.py b/secure_access/models/create_network_request.py index cd1e03e..84887eb 100644 --- a/secure_access/models/create_network_request.py +++ b/secure_access/models/create_network_request.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/create_output_body.py b/secure_access/models/create_output_body.py index a18deff..ec3cc1d 100644 --- a/secure_access/models/create_output_body.py +++ b/secure_access/models/create_output_body.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/create_site_request.py b/secure_access/models/create_site_request.py index d3da337..c147d89 100644 --- a/secure_access/models/create_site_request.py +++ b/secure_access/models/create_site_request.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/create_validate_network_objects_request_inner.py b/secure_access/models/create_validate_network_objects_request_inner.py index 77eaa35..44170ac 100644 --- a/secure_access/models/create_validate_network_objects_request_inner.py +++ b/secure_access/models/create_validate_network_objects_request_inner.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/create_validate_network_objects_request_inner_value.py b/secure_access/models/create_validate_network_objects_request_inner_value.py index f3bb671..f0e1515 100644 --- a/secure_access/models/create_validate_network_objects_request_inner_value.py +++ b/secure_access/models/create_validate_network_objects_request_inner_value.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/create_validate_service_objects_request_inner.py b/secure_access/models/create_validate_service_objects_request_inner.py index f781bf7..423559a 100644 --- a/secure_access/models/create_validate_service_objects_request_inner.py +++ b/secure_access/models/create_validate_service_objects_request_inner.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/credential.py b/secure_access/models/credential.py index e7190d6..fadb1ba 100644 --- a/secure_access/models/credential.py +++ b/secure_access/models/credential.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/credential_type.py b/secure_access/models/credential_type.py index e5d5d4e..58e07ef 100644 --- a/secure_access/models/credential_type.py +++ b/secure_access/models/credential_type.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/credential_value.py b/secure_access/models/credential_value.py index b7629e0..58df4cc 100644 --- a/secure_access/models/credential_value.py +++ b/secure_access/models/credential_value.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/custom_data_identifier.py b/secure_access/models/custom_data_identifier.py new file mode 100644 index 0000000..e542077 --- /dev/null +++ b/secure_access/models/custom_data_identifier.py @@ -0,0 +1,110 @@ +# Copyright 2026 Cisco Systems, Inc. and its affiliates +# +# SPDX-License-Identifier: Apache-2.0 + +# coding: utf-8 + +""" + Cisco Secure Access API + + Unified OpenAPI spec for Cisco Secure Access APIs. + + The version of the OpenAPI document: v2.0.202602030705 + Contact: devnet@cisco.com + 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 +from typing_extensions import Annotated +from uuid import UUID +from typing import Optional, Set +from typing_extensions import Self + +class CustomDataIdentifier(BaseModel): + """ + The properties of the custom data identifier. + """ # noqa: E501 + creation_time: StrictInt = Field(description="The date and time represented in seconds since the UNIX Epoch when the system created the custom data identifier.", alias="creationTime") + description: Annotated[str, Field(min_length=1, strict=True, max_length=255)] = Field(description="A meaningful description of the custom data identifier. `description` is a sequence of 1–255 characters.") + id: UUID = Field(description="The unique ID of the custom data identifier.") + modification_time: StrictInt = Field(description="The date and time represented in seconds since the UNIX Epoch when the system updated the custom data identifier.", alias="modificationTime") + name: Annotated[str, Field(min_length=1, strict=True, max_length=255)] = Field(description="The unique name of the the custom data identifier. `name` is a sequence of 1–255 characters and is unique within the organization.") + patterns: Annotated[List[Annotated[str, Field(min_length=3, strict=True)]], Field(max_length=10)] = Field(description="The set of regex patterns for the custom data identifier. Limited to 10 patterns. Each pattern must be at least three characters long and cannot start with `^ ` or end with `$`. Set at least one of the `terms` or `patterns` fields. ") + proximity: Annotated[List[StrictStr], Field(max_length=10)] = Field(description="The set of proximity values for the custom data identifier. Limited to 10 proximity values.") + terms: Annotated[List[Annotated[str, Field(min_length=1, strict=True)]], Field(max_length=100)] = Field(description="The set of terms for the custom data identifier. Limited to 100 terms. Set at least one of the `terms` or `patterns` fields. ") + threshold: Annotated[int, Field(le=2000, strict=True, ge=1)] = Field(description="The threshold value for the custom identifier. `threshold` is between 1 and 2000 and determines the sensitivity of the custom data identifier.") + __properties: ClassVar[List[str]] = ["creationTime", "description", "id", "modificationTime", "name", "patterns", "proximity", "terms", "threshold"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of CustomDataIdentifier 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 CustomDataIdentifier from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "creationTime": obj.get("creationTime"), + "description": obj.get("description"), + "id": obj.get("id"), + "modificationTime": obj.get("modificationTime"), + "name": obj.get("name"), + "patterns": obj.get("patterns"), + "proximity": obj.get("proximity"), + "terms": obj.get("terms"), + "threshold": obj.get("threshold") + }) + return _obj + + diff --git a/secure_access/models/custom_data_identifier_create_request.py b/secure_access/models/custom_data_identifier_create_request.py new file mode 100644 index 0000000..41dec7b --- /dev/null +++ b/secure_access/models/custom_data_identifier_create_request.py @@ -0,0 +1,107 @@ +# Copyright 2026 Cisco Systems, Inc. and its affiliates +# +# SPDX-License-Identifier: Apache-2.0 + +# coding: utf-8 + +""" + Cisco Secure Access API + + Unified OpenAPI spec for Cisco Secure Access APIs. + + The version of the OpenAPI document: v2.0.202602030705 + Contact: devnet@cisco.com + 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 CustomDataIdentifierCreateRequest(BaseModel): + """ + The properties used to create a custom data identifier. + """ # noqa: E501 + creation_time: Optional[StrictInt] = Field(default=None, description="The date and time represented in seconds since the UNIX Epoch when the system created the custom data identifier.", alias="creationTime") + description: Optional[Annotated[str, Field(min_length=1, strict=True, max_length=255)]] = Field(default=None, description="A meaningful description of the custom data identifier. `description` is a sequence of 1–255 characters.") + modification_time: Optional[StrictInt] = Field(default=None, description="The date and time represented in seconds since the UNIX Epoch when the system updated the custom data identifier.", alias="modificationTime") + name: Annotated[str, Field(min_length=1, strict=True, max_length=255)] = Field(description="The unique name of the the custom data identifier. `name` is a sequence of 1–255 characters and is unique within the organization.") + patterns: Optional[Annotated[List[Annotated[str, Field(min_length=3, strict=True)]], Field(max_length=10)]] = Field(default=None, description="The set of regex patterns for the custom data identifier. Limited to 10 patterns. Each pattern must be at least three characters long and cannot start with `^ ` or end with `$`. Set at least one of the `terms` or `patterns` fields. ") + proximity: Optional[Annotated[List[StrictStr], Field(max_length=10)]] = Field(default=None, description="The set of proximity values for the custom data identifier. Limited to 10 proximity values.") + terms: Optional[Annotated[List[Annotated[str, Field(min_length=1, strict=True)]], Field(max_length=100)]] = Field(default=None, description="The set of terms for the custom data identifier. Limited to 100 terms. Set at least one of the `terms` or `patterns` fields. ") + threshold: Annotated[int, Field(le=2000, strict=True, ge=1)] = Field(description="The threshold value for the custom identifier. `threshold` is between 1 and 2000 and determines the sensitivity of the custom data identifier.") + __properties: ClassVar[List[str]] = ["creationTime", "description", "modificationTime", "name", "patterns", "proximity", "terms", "threshold"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of CustomDataIdentifierCreateRequest 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 CustomDataIdentifierCreateRequest from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "creationTime": obj.get("creationTime"), + "description": obj.get("description"), + "modificationTime": obj.get("modificationTime"), + "name": obj.get("name"), + "patterns": obj.get("patterns"), + "proximity": obj.get("proximity"), + "terms": obj.get("terms"), + "threshold": obj.get("threshold") + }) + return _obj + + diff --git a/secure_access/models/custom_data_identifier_list_item.py b/secure_access/models/custom_data_identifier_list_item.py new file mode 100644 index 0000000..f439bb7 --- /dev/null +++ b/secure_access/models/custom_data_identifier_list_item.py @@ -0,0 +1,96 @@ +# Copyright 2026 Cisco Systems, Inc. and its affiliates +# +# SPDX-License-Identifier: Apache-2.0 + +# coding: utf-8 + +""" + Cisco Secure Access API + + Unified OpenAPI spec for Cisco Secure Access APIs. + + The version of the OpenAPI document: v2.0.202602030705 + Contact: devnet@cisco.com + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, Field +from typing import Any, ClassVar, Dict, List, Optional +from typing_extensions import Annotated +from uuid import UUID +from typing import Optional, Set +from typing_extensions import Self + +class CustomDataIdentifierListItem(BaseModel): + """ + The properties of the custom data identifier. + """ # noqa: E501 + id: Optional[UUID] = Field(default=None, description="The unique ID of the custom data identifier.") + name: Optional[Annotated[str, Field(min_length=1, strict=True, max_length=255)]] = Field(default=None, description="The unique name of the the custom data identifier. `name` is a sequence of 1–255 characters and is unique within the organization.") + __properties: ClassVar[List[str]] = ["id", "name"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of CustomDataIdentifierListItem 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 CustomDataIdentifierListItem from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "id": obj.get("id"), + "name": obj.get("name") + }) + return _obj + + diff --git a/secure_access/models/custom_data_identifier_update_request.py b/secure_access/models/custom_data_identifier_update_request.py new file mode 100644 index 0000000..d3a1091 --- /dev/null +++ b/secure_access/models/custom_data_identifier_update_request.py @@ -0,0 +1,107 @@ +# Copyright 2026 Cisco Systems, Inc. and its affiliates +# +# SPDX-License-Identifier: Apache-2.0 + +# coding: utf-8 + +""" + Cisco Secure Access API + + Unified OpenAPI spec for Cisco Secure Access APIs. + + The version of the OpenAPI document: v2.0.202602030705 + Contact: devnet@cisco.com + 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 CustomDataIdentifierUpdateRequest(BaseModel): + """ + The properties used to update a custom data identifier. The system requires that you set at least one field of the custom data identifier in the request body. + """ # noqa: E501 + creation_time: Optional[StrictInt] = Field(default=None, description="The date and time represented in seconds since the UNIX Epoch when the system created the custom data identifier.", alias="creationTime") + description: Optional[Annotated[str, Field(min_length=1, strict=True, max_length=255)]] = Field(default=None, description="A meaningful description of the custom data identifier. `description` is a sequence of 1–255 characters.") + modification_time: Optional[StrictInt] = Field(default=None, description="The date and time represented in seconds since the UNIX Epoch when the system updated the custom data identifier.", alias="modificationTime") + name: Optional[Annotated[str, Field(min_length=1, strict=True, max_length=255)]] = Field(default=None, description="The unique name of the the custom data identifier. `name` is a sequence of 1–255 characters and is unique within the organization.") + patterns: Optional[Annotated[List[Annotated[str, Field(min_length=3, strict=True)]], Field(max_length=10)]] = Field(default=None, description="The set of regex patterns for the custom data identifier. Limited to 10 patterns. Each pattern must be at least three characters long and cannot start with `^ ` or end with `$`. Set at least one of the `terms` or `patterns` fields. ") + proximity: Optional[Annotated[List[StrictStr], Field(max_length=10)]] = Field(default=None, description="The set of proximity values for the custom data identifier. Limited to 10 proximity values.") + terms: Optional[Annotated[List[Annotated[str, Field(min_length=1, strict=True)]], Field(max_length=100)]] = Field(default=None, description="The set of terms for the custom data identifier. Limited to 100 terms. Set at least one of the `terms` or `patterns` fields. ") + threshold: Optional[Annotated[int, Field(le=2000, strict=True, ge=1)]] = Field(default=None, description="The threshold value for the custom identifier. `threshold` is between 1 and 2000 and determines the sensitivity of the custom data identifier.") + __properties: ClassVar[List[str]] = ["creationTime", "description", "modificationTime", "name", "patterns", "proximity", "terms", "threshold"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of CustomDataIdentifierUpdateRequest 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 CustomDataIdentifierUpdateRequest from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "creationTime": obj.get("creationTime"), + "description": obj.get("description"), + "modificationTime": obj.get("modificationTime"), + "name": obj.get("name"), + "patterns": obj.get("patterns"), + "proximity": obj.get("proximity"), + "terms": obj.get("terms"), + "threshold": obj.get("threshold") + }) + return _obj + + diff --git a/secure_access/models/data_classification.py b/secure_access/models/data_classification.py new file mode 100644 index 0000000..a358b02 --- /dev/null +++ b/secure_access/models/data_classification.py @@ -0,0 +1,112 @@ +# Copyright 2026 Cisco Systems, Inc. and its affiliates +# +# SPDX-License-Identifier: Apache-2.0 + +# coding: utf-8 + +""" + Cisco Secure Access API + + Unified OpenAPI spec for Cisco Secure Access APIs. + + The version of the OpenAPI document: v2.0.202602030705 + Contact: devnet@cisco.com + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, Field, StrictInt, StrictStr +from typing import Any, ClassVar, Dict, List, Optional +from typing_extensions import Annotated +from uuid import UUID +from secure_access.models.classifier_evaluation_strategy import ClassifierEvaluationStrategy +from secure_access.models.data_classification_type import DataClassificationType +from typing import Optional, Set +from typing_extensions import Self + +class DataClassification(BaseModel): + """ + Details of a data classification. + """ # noqa: E501 + classifier_evaluation_strategy: Optional[ClassifierEvaluationStrategy] = Field(default=None, alias="classifierEvaluationStrategy") + creation_time: Optional[StrictInt] = Field(default=None, description="The date and time represented in seconds since the UNIX Epoch when the system created the data classification.", alias="creationTime") + data_identifiers: Optional[List[UUID]] = Field(default=None, description="The list of IDs for the data classifiers associated with the classification.", alias="dataIdentifiers") + description: Optional[StrictStr] = Field(default=None, description="The detailed description of the classification.") + excluded_data_identifiers: Optional[List[UUID]] = Field(default=None, description="The list of IDs for excluded classifiers associated with the classification.", alias="excludedDataIdentifiers") + id: UUID = Field(description="The unique identifier of the classification.") + modification_time: Optional[StrictInt] = Field(default=None, description="The date and time represented in seconds since the UNIX Epoch when the system updated the data classification.", alias="modificationTime") + name: Annotated[str, Field(min_length=6, strict=True, max_length=255)] = Field(description="The name of the classification.") + type: DataClassificationType + __properties: ClassVar[List[str]] = ["classifierEvaluationStrategy", "creationTime", "dataIdentifiers", "description", "excludedDataIdentifiers", "id", "modificationTime", "name", "type"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of DataClassification 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 DataClassification from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "classifierEvaluationStrategy": obj.get("classifierEvaluationStrategy"), + "creationTime": obj.get("creationTime"), + "dataIdentifiers": obj.get("dataIdentifiers"), + "description": obj.get("description"), + "excludedDataIdentifiers": obj.get("excludedDataIdentifiers"), + "id": obj.get("id"), + "modificationTime": obj.get("modificationTime"), + "name": obj.get("name"), + "type": obj.get("type") + }) + return _obj + + diff --git a/secure_access/models/data_classification_create_request.py b/secure_access/models/data_classification_create_request.py new file mode 100644 index 0000000..40f6ec0 --- /dev/null +++ b/secure_access/models/data_classification_create_request.py @@ -0,0 +1,103 @@ +# Copyright 2026 Cisco Systems, Inc. and its affiliates +# +# SPDX-License-Identifier: Apache-2.0 + +# coding: utf-8 + +""" + Cisco Secure Access API + + Unified OpenAPI spec for Cisco Secure Access APIs. + + The version of the OpenAPI document: v2.0.202602030705 + Contact: devnet@cisco.com + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, Field, StrictStr +from typing import Any, ClassVar, Dict, List, Optional +from typing_extensions import Annotated +from uuid import UUID +from secure_access.models.classifier_evaluation_strategy import ClassifierEvaluationStrategy +from typing import Optional, Set +from typing_extensions import Self + +class DataClassificationCreateRequest(BaseModel): + """ + Request body for creating a new data classification. + """ # noqa: E501 + classifier_evaluation_strategy: ClassifierEvaluationStrategy = Field(alias="classifierEvaluationStrategy") + data_identifiers: List[UUID] = Field(description="The list of IDs for the data classifiers associated with the classification.", alias="dataIdentifiers") + description: Optional[StrictStr] = Field(default=None, description="The detailed description of the classification.") + excluded_data_identifiers: Optional[List[UUID]] = Field(default=None, description="The list of IDs for excluded classifiers associated with the classification.", alias="excludedDataIdentifiers") + name: Annotated[str, Field(min_length=6, strict=True, max_length=255)] = Field(description="The name of the data classification.") + __properties: ClassVar[List[str]] = ["classifierEvaluationStrategy", "dataIdentifiers", "description", "excludedDataIdentifiers", "name"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of DataClassificationCreateRequest 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 DataClassificationCreateRequest from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "classifierEvaluationStrategy": obj.get("classifierEvaluationStrategy"), + "dataIdentifiers": obj.get("dataIdentifiers"), + "description": obj.get("description"), + "excludedDataIdentifiers": obj.get("excludedDataIdentifiers"), + "name": obj.get("name") + }) + return _obj + + diff --git a/secure_access/models/data_classification_list_item.py b/secure_access/models/data_classification_list_item.py new file mode 100644 index 0000000..e24815d --- /dev/null +++ b/secure_access/models/data_classification_list_item.py @@ -0,0 +1,96 @@ +# Copyright 2026 Cisco Systems, Inc. and its affiliates +# +# SPDX-License-Identifier: Apache-2.0 + +# coding: utf-8 + +""" + Cisco Secure Access API + + Unified OpenAPI spec for Cisco Secure Access APIs. + + The version of the OpenAPI document: v2.0.202602030705 + Contact: devnet@cisco.com + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, Field +from typing import Any, ClassVar, Dict, List, Optional +from typing_extensions import Annotated +from uuid import UUID +from typing import Optional, Set +from typing_extensions import Self + +class DataClassificationListItem(BaseModel): + """ + Details of a data classification. + """ # noqa: E501 + id: Optional[UUID] = Field(default=None, description="The unique identifier of the classification.") + name: Optional[Annotated[str, Field(min_length=6, strict=True, max_length=255)]] = Field(default=None, description="The name of the classification.") + __properties: ClassVar[List[str]] = ["id", "name"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of DataClassificationListItem 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 DataClassificationListItem from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "id": obj.get("id"), + "name": obj.get("name") + }) + return _obj + + diff --git a/secure_access/models/data_classification_patch_request.py b/secure_access/models/data_classification_patch_request.py new file mode 100644 index 0000000..6ab0789 --- /dev/null +++ b/secure_access/models/data_classification_patch_request.py @@ -0,0 +1,103 @@ +# Copyright 2026 Cisco Systems, Inc. and its affiliates +# +# SPDX-License-Identifier: Apache-2.0 + +# coding: utf-8 + +""" + Cisco Secure Access API + + Unified OpenAPI spec for Cisco Secure Access APIs. + + The version of the OpenAPI document: v2.0.202602030705 + Contact: devnet@cisco.com + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, Field, StrictStr +from typing import Any, ClassVar, Dict, List, Optional +from typing_extensions import Annotated +from uuid import UUID +from secure_access.models.classifier_evaluation_strategy import ClassifierEvaluationStrategy +from typing import Optional, Set +from typing_extensions import Self + +class DataClassificationPatchRequest(BaseModel): + """ + Request body for updating an existing data classification. + """ # noqa: E501 + classifier_evaluation_strategy: Optional[ClassifierEvaluationStrategy] = Field(default=None, alias="classifierEvaluationStrategy") + data_identifiers: Optional[List[UUID]] = Field(default=None, description="The list of IDs for the data classifiers associated with the classification.", alias="dataIdentifiers") + description: Optional[StrictStr] = Field(default=None, description="Description of the classification.") + excluded_data_identifiers: Optional[List[UUID]] = Field(default=None, description="The list of IDs for excluded classifiers associated with the classification.", alias="excludedDataIdentifiers") + name: Optional[Annotated[str, Field(min_length=6, strict=True, max_length=255)]] = Field(default=None, description="The name of the data classification.") + __properties: ClassVar[List[str]] = ["classifierEvaluationStrategy", "dataIdentifiers", "description", "excludedDataIdentifiers", "name"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of DataClassificationPatchRequest 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 DataClassificationPatchRequest from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "classifierEvaluationStrategy": obj.get("classifierEvaluationStrategy"), + "dataIdentifiers": obj.get("dataIdentifiers"), + "description": obj.get("description"), + "excludedDataIdentifiers": obj.get("excludedDataIdentifiers"), + "name": obj.get("name") + }) + return _obj + + diff --git a/secure_access/models/data_classification_type.py b/secure_access/models/data_classification_type.py new file mode 100644 index 0000000..a1d6ac1 --- /dev/null +++ b/secure_access/models/data_classification_type.py @@ -0,0 +1,44 @@ +# Copyright 2026 Cisco Systems, Inc. and its affiliates +# +# SPDX-License-Identifier: Apache-2.0 + +# coding: utf-8 + +""" + Cisco Secure Access API + + Unified OpenAPI spec for Cisco Secure Access APIs. + + The version of the OpenAPI document: v2.0.202602030705 + Contact: devnet@cisco.com + 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 DataClassificationType(str, Enum): + """ + The type of the classification. + """ + + """ + allowed enum values + """ + BUILT_MINUS_IN = 'built-in' + BUILT_MINUS_IN_MINUS_AI_MINUS_DEFENSE = 'built-in-ai-defense' + CUSTOM = 'custom' + CUSTOM_MINUS_AI_MINUS_DEFENSE = 'custom-ai-defense' + + @classmethod + def from_json(cls, json_str: str) -> Self: + """Create an instance of DataClassificationType from a JSON string""" + return cls(json.loads(json_str)) + + diff --git a/secure_access/models/data_loss_prevention_action.py b/secure_access/models/data_loss_prevention_action.py new file mode 100644 index 0000000..6898206 --- /dev/null +++ b/secure_access/models/data_loss_prevention_action.py @@ -0,0 +1,45 @@ +# Copyright 2026 Cisco Systems, Inc. and its affiliates +# +# SPDX-License-Identifier: Apache-2.0 + +# coding: utf-8 + +""" + Cisco Secure Access API + + Unified OpenAPI spec for Cisco Secure Access APIs. + + The version of the OpenAPI document: v2.0.202602030705 + Contact: devnet@cisco.com + 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 DataLossPreventionAction(str, Enum): + """ + Action to take when the rule matches. + """ + + """ + allowed enum values + """ + BLOCK = 'BLOCK' + DELETE = 'DELETE' + MONITOR = 'MONITOR' + QUARANTINE = 'QUARANTINE' + REVOKE_SHARING = 'REVOKE_SHARING' + + @classmethod + def from_json(cls, json_str: str) -> Self: + """Create an instance of DataLossPreventionAction from a JSON string""" + return cls(json.loads(json_str)) + + diff --git a/secure_access/models/data_loss_prevention_action2.py b/secure_access/models/data_loss_prevention_action2.py new file mode 100644 index 0000000..4c43a0e --- /dev/null +++ b/secure_access/models/data_loss_prevention_action2.py @@ -0,0 +1,42 @@ +# Copyright 2026 Cisco Systems, Inc. and its affiliates +# +# SPDX-License-Identifier: Apache-2.0 + +# coding: utf-8 + +""" + Cisco Secure Access API + + Unified OpenAPI spec for Cisco Secure Access APIs. + + The version of the OpenAPI document: v2.0.202602030705 + Contact: devnet@cisco.com + 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 DataLossPreventionAction2(str, Enum): + """ + The action taken by the system when the rule is triggered. + """ + + """ + allowed enum values + """ + BLOCK = 'BLOCK' + MONITOR = 'MONITOR' + + @classmethod + def from_json(cls, json_str: str) -> Self: + """Create an instance of DataLossPreventionAction2 from a JSON string""" + return cls(json.loads(json_str)) + + diff --git a/secure_access/models/data_loss_prevention_api_error_response.py b/secure_access/models/data_loss_prevention_api_error_response.py new file mode 100644 index 0000000..4f4f36d --- /dev/null +++ b/secure_access/models/data_loss_prevention_api_error_response.py @@ -0,0 +1,96 @@ +# Copyright 2026 Cisco Systems, Inc. and its affiliates +# +# SPDX-License-Identifier: Apache-2.0 + +# coding: utf-8 + +""" + Cisco Secure Access API + + Unified OpenAPI spec for Cisco Secure Access APIs. + + The version of the OpenAPI document: v2.0.202602030705 + Contact: devnet@cisco.com + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, Field, StrictInt, StrictStr +from typing import Any, ClassVar, Dict, List, Optional +from typing import Optional, Set +from typing_extensions import Self + +class DataLossPreventionApiErrorResponse(BaseModel): + """ + Standard error response format + """ # noqa: E501 + error: Optional[StrictStr] = Field(default=None, description="Error description") + status_code: Optional[StrictInt] = Field(default=None, description="HTTP status code", alias="statusCode") + tx_id: Optional[StrictStr] = Field(default=None, description="Unique transaction ID for tracing the request", alias="txId") + __properties: ClassVar[List[str]] = ["error", "statusCode", "txId"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of DataLossPreventionApiErrorResponse 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 DataLossPreventionApiErrorResponse from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "error": obj.get("error"), + "statusCode": obj.get("statusCode"), + "txId": obj.get("txId") + }) + return _obj + + diff --git a/secure_access/models/data_loss_prevention_application.py b/secure_access/models/data_loss_prevention_application.py new file mode 100644 index 0000000..94a1b2d --- /dev/null +++ b/secure_access/models/data_loss_prevention_application.py @@ -0,0 +1,95 @@ +# Copyright 2026 Cisco Systems, Inc. and its affiliates +# +# SPDX-License-Identifier: Apache-2.0 + +# coding: utf-8 + +""" + Cisco Secure Access API + + Unified OpenAPI spec for Cisco Secure Access APIs. + + The version of the OpenAPI document: v2.0.202602030705 + Contact: devnet@cisco.com + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, Field, StrictInt +from typing import Any, ClassVar, Dict, List, Optional +from secure_access.models.traffic_direction_type import TrafficDirectionType +from typing import Optional, Set +from typing_extensions import Self + +class DataLossPreventionApplication(BaseModel): + """ + Details of an application. + """ # noqa: E501 + id: StrictInt = Field(description="Unique application identifier.") + traffic_direction: Optional[TrafficDirectionType] = Field(default=None, alias="trafficDirection") + __properties: ClassVar[List[str]] = ["id", "trafficDirection"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of DataLossPreventionApplication 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 DataLossPreventionApplication 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"), + "trafficDirection": obj.get("trafficDirection") + }) + return _obj + + diff --git a/secure_access/models/data_loss_prevention_application_category.py b/secure_access/models/data_loss_prevention_application_category.py new file mode 100644 index 0000000..7df2464 --- /dev/null +++ b/secure_access/models/data_loss_prevention_application_category.py @@ -0,0 +1,94 @@ +# Copyright 2026 Cisco Systems, Inc. and its affiliates +# +# SPDX-License-Identifier: Apache-2.0 + +# coding: utf-8 + +""" + Cisco Secure Access API + + Unified OpenAPI spec for Cisco Secure Access APIs. + + The version of the OpenAPI document: v2.0.202602030705 + Contact: devnet@cisco.com + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, Field, StrictInt, StrictStr +from typing import Any, ClassVar, Dict, List, Optional +from typing import Optional, Set +from typing_extensions import Self + +class DataLossPreventionApplicationCategory(BaseModel): + """ + The properties of the application category associated with the DLP rule event. + """ # noqa: E501 + id: Optional[StrictInt] = Field(default=None, description="The unique identifier of the application category.") + name: Optional[StrictStr] = Field(default=None, description="The name of the application category.") + __properties: ClassVar[List[str]] = ["id", "name"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of DataLossPreventionApplicationCategory 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 DataLossPreventionApplicationCategory from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "id": obj.get("id"), + "name": obj.get("name") + }) + return _obj + + diff --git a/secure_access/models/data_loss_prevention_application_category2.py b/secure_access/models/data_loss_prevention_application_category2.py new file mode 100644 index 0000000..0a51a67 --- /dev/null +++ b/secure_access/models/data_loss_prevention_application_category2.py @@ -0,0 +1,95 @@ +# Copyright 2026 Cisco Systems, Inc. and its affiliates +# +# SPDX-License-Identifier: Apache-2.0 + +# coding: utf-8 + +""" + Cisco Secure Access API + + Unified OpenAPI spec for Cisco Secure Access APIs. + + The version of the OpenAPI document: v2.0.202602030705 + Contact: devnet@cisco.com + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, Field, StrictInt +from typing import Any, ClassVar, Dict, List, Optional +from secure_access.models.traffic_direction_type import TrafficDirectionType +from typing import Optional, Set +from typing_extensions import Self + +class DataLossPreventionApplicationCategory2(BaseModel): + """ + Details of an application category. + """ # noqa: E501 + id: StrictInt = Field(description="Unique application category identifier.") + traffic_direction: Optional[TrafficDirectionType] = Field(default=None, alias="trafficDirection") + __properties: ClassVar[List[str]] = ["id", "trafficDirection"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of DataLossPreventionApplicationCategory2 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 DataLossPreventionApplicationCategory2 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"), + "trafficDirection": obj.get("trafficDirection") + }) + return _obj + + diff --git a/secure_access/models/data_loss_prevention_destination.py b/secure_access/models/data_loss_prevention_destination.py new file mode 100644 index 0000000..c0e6cf8 --- /dev/null +++ b/secure_access/models/data_loss_prevention_destination.py @@ -0,0 +1,94 @@ +# Copyright 2026 Cisco Systems, Inc. and its affiliates +# +# SPDX-License-Identifier: Apache-2.0 + +# coding: utf-8 + +""" + Cisco Secure Access API + + Unified OpenAPI spec for Cisco Secure Access APIs. + + The version of the OpenAPI document: v2.0.202602030705 + Contact: devnet@cisco.com + 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 DataLossPreventionDestination(BaseModel): + """ + Details of a destination. + """ # noqa: E501 + address: Optional[StrictStr] = Field(default=None, description="Address of the destination.") + type: Optional[StrictStr] = Field(default=None, description="Type of the destination (e.g., url, domain).") + __properties: ClassVar[List[str]] = ["address", "type"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of DataLossPreventionDestination 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 DataLossPreventionDestination from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "address": obj.get("address"), + "type": obj.get("type") + }) + return _obj + + diff --git a/secure_access/models/data_loss_prevention_identity.py b/secure_access/models/data_loss_prevention_identity.py new file mode 100644 index 0000000..49a9a00 --- /dev/null +++ b/secure_access/models/data_loss_prevention_identity.py @@ -0,0 +1,96 @@ +# Copyright 2026 Cisco Systems, Inc. and its affiliates +# +# SPDX-License-Identifier: Apache-2.0 + +# coding: utf-8 + +""" + Cisco Secure Access API + + Unified OpenAPI spec for Cisco Secure Access APIs. + + The version of the OpenAPI document: v2.0.202602030705 + Contact: devnet@cisco.com + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, Field, StrictInt, StrictStr +from typing import Any, ClassVar, Dict, List, Optional +from typing import Optional, Set +from typing_extensions import Self + +class DataLossPreventionIdentity(BaseModel): + """ + The properties of the identity. + """ # noqa: E501 + details: Optional[StrictStr] = Field(default=None, description="The additonal details about the identity described in the JSON format.") + origin_id: Optional[StrictInt] = Field(default=None, description="The unique identifier of the identity.", alias="originId") + origin_type_id: Optional[StrictInt] = Field(default=None, description="The type of the identity either directory_user or directory_group.", alias="originTypeId") + __properties: ClassVar[List[str]] = ["details", "originId", "originTypeId"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of DataLossPreventionIdentity 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 DataLossPreventionIdentity from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "details": obj.get("details"), + "originId": obj.get("originId"), + "originTypeId": obj.get("originTypeId") + }) + return _obj + + diff --git a/secure_access/models/data_loss_prevention_private_resource.py b/secure_access/models/data_loss_prevention_private_resource.py new file mode 100644 index 0000000..4a53d9f --- /dev/null +++ b/secure_access/models/data_loss_prevention_private_resource.py @@ -0,0 +1,95 @@ +# Copyright 2026 Cisco Systems, Inc. and its affiliates +# +# SPDX-License-Identifier: Apache-2.0 + +# coding: utf-8 + +""" + Cisco Secure Access API + + Unified OpenAPI spec for Cisco Secure Access APIs. + + The version of the OpenAPI document: v2.0.202602030705 + Contact: devnet@cisco.com + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, Field, StrictInt +from typing import Any, ClassVar, Dict, List, Optional +from secure_access.models.traffic_direction_type import TrafficDirectionType +from typing import Optional, Set +from typing_extensions import Self + +class DataLossPreventionPrivateResource(BaseModel): + """ + Details of a private resource. + """ # noqa: E501 + id: StrictInt = Field(description="Unique private resource identifier.") + traffic_direction: Optional[TrafficDirectionType] = Field(default=None, alias="trafficDirection") + __properties: ClassVar[List[str]] = ["id", "trafficDirection"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of DataLossPreventionPrivateResource 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 DataLossPreventionPrivateResource 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"), + "trafficDirection": obj.get("trafficDirection") + }) + return _obj + + diff --git a/secure_access/models/data_loss_prevention_private_resource_group.py b/secure_access/models/data_loss_prevention_private_resource_group.py new file mode 100644 index 0000000..21256ae --- /dev/null +++ b/secure_access/models/data_loss_prevention_private_resource_group.py @@ -0,0 +1,95 @@ +# Copyright 2026 Cisco Systems, Inc. and its affiliates +# +# SPDX-License-Identifier: Apache-2.0 + +# coding: utf-8 + +""" + Cisco Secure Access API + + Unified OpenAPI spec for Cisco Secure Access APIs. + + The version of the OpenAPI document: v2.0.202602030705 + Contact: devnet@cisco.com + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, Field, StrictInt +from typing import Any, ClassVar, Dict, List, Optional +from secure_access.models.traffic_direction_type import TrafficDirectionType +from typing import Optional, Set +from typing_extensions import Self + +class DataLossPreventionPrivateResourceGroup(BaseModel): + """ + Priovate Resource Group details + """ # noqa: E501 + id: StrictInt = Field(description="Unique private resource identifier.") + traffic_direction: Optional[TrafficDirectionType] = Field(default=None, alias="trafficDirection") + __properties: ClassVar[List[str]] = ["id", "trafficDirection"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of DataLossPreventionPrivateResourceGroup 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 DataLossPreventionPrivateResourceGroup 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"), + "trafficDirection": obj.get("trafficDirection") + }) + return _obj + + diff --git a/secure_access/models/data_loss_prevention_severity.py b/secure_access/models/data_loss_prevention_severity.py new file mode 100644 index 0000000..528b0e6 --- /dev/null +++ b/secure_access/models/data_loss_prevention_severity.py @@ -0,0 +1,42 @@ +# Copyright 2026 Cisco Systems, Inc. and its affiliates +# +# SPDX-License-Identifier: Apache-2.0 + +# coding: utf-8 + +""" + Cisco Secure Access API + + Unified OpenAPI spec for Cisco Secure Access APIs. + + The version of the OpenAPI document: v2.0.202602030705 + Contact: devnet@cisco.com + 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 DataLossPreventionSeverity(str, Enum): + """ + The severity level of the rule. + """ + + """ + allowed enum values + """ + WARNING = 'WARNING' + ALERT = 'ALERT' + + @classmethod + def from_json(cls, json_str: str) -> Self: + """Create an instance of DataLossPreventionSeverity from a JSON string""" + return cls(json.loads(json_str)) + + diff --git a/secure_access/models/data_loss_prevention_severity2.py b/secure_access/models/data_loss_prevention_severity2.py new file mode 100644 index 0000000..b4b6a6c --- /dev/null +++ b/secure_access/models/data_loss_prevention_severity2.py @@ -0,0 +1,44 @@ +# Copyright 2026 Cisco Systems, Inc. and its affiliates +# +# SPDX-License-Identifier: Apache-2.0 + +# coding: utf-8 + +""" + Cisco Secure Access API + + Unified OpenAPI spec for Cisco Secure Access APIs. + + The version of the OpenAPI document: v2.0.202602030705 + Contact: devnet@cisco.com + 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 DataLossPreventionSeverity2(str, Enum): + """ + Severity of the rule. + """ + + """ + allowed enum values + """ + INFO = 'INFO' + WARNING = 'WARNING' + ALERT = 'ALERT' + CRITICAL = 'CRITICAL' + + @classmethod + def from_json(cls, json_str: str) -> Self: + """Create an instance of DataLossPreventionSeverity2 from a JSON string""" + return cls(json.loads(json_str)) + + diff --git a/secure_access/models/data_loss_prevention_state.py b/secure_access/models/data_loss_prevention_state.py index a209fc4..abfdad3 100644 --- a/secure_access/models/data_loss_prevention_state.py +++ b/secure_access/models/data_loss_prevention_state.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/data_storage.py b/secure_access/models/data_storage.py index c3e7b4d..fff9063 100644 --- a/secure_access/models/data_storage.py +++ b/secure_access/models/data_storage.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/datacenter_hub.py b/secure_access/models/datacenter_hub.py index 3e888ac..120c3e5 100644 --- a/secure_access/models/datacenter_hub.py +++ b/secure_access/models/datacenter_hub.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/datacenter_with_ip.py b/secure_access/models/datacenter_with_ip.py index 27703fe..bc8280c 100644 --- a/secure_access/models/datacenter_with_ip.py +++ b/secure_access/models/datacenter_with_ip.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/delete_alert_rules200_response.py b/secure_access/models/delete_alert_rules200_response.py new file mode 100644 index 0000000..1382cfd --- /dev/null +++ b/secure_access/models/delete_alert_rules200_response.py @@ -0,0 +1,96 @@ +# Copyright 2026 Cisco Systems, Inc. and its affiliates +# +# SPDX-License-Identifier: Apache-2.0 + +# coding: utf-8 + +""" + Cisco Secure Access API + + Unified OpenAPI spec for Cisco Secure Access APIs. + + The version of the OpenAPI document: v2.0.202602030705 + Contact: devnet@cisco.com + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictInt +from typing import Any, ClassVar, Dict, List, Optional +from typing import Optional, Set +from typing_extensions import Self + +class DeleteAlertRules200Response(BaseModel): + """ + The properties of the deleted alert rules. + """ # noqa: E501 + error_ids: Optional[List[StrictInt]] = Field(default=None, description="The list of unique identifiers that either do no exist or the system failed to delete or update.", alias="errorIds") + success: Optional[StrictBool] = Field(default=None, description="Specifies whether the system completed all operations successfully. If any ID is invalid, the system is unable to complete the operation.") + successful_ids: Optional[List[StrictInt]] = Field(default=None, description="The list of IDs for the alert rules that the system deleted.", alias="successfulIds") + __properties: ClassVar[List[str]] = ["errorIds", "success", "successfulIds"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of DeleteAlertRules200Response 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 DeleteAlertRules200Response from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "errorIds": obj.get("errorIds"), + "success": obj.get("success"), + "successfulIds": obj.get("successfulIds") + }) + return _obj + + diff --git a/secure_access/models/delete_alert_rules_request.py b/secure_access/models/delete_alert_rules_request.py new file mode 100644 index 0000000..6fa3393 --- /dev/null +++ b/secure_access/models/delete_alert_rules_request.py @@ -0,0 +1,93 @@ +# Copyright 2026 Cisco Systems, Inc. and its affiliates +# +# SPDX-License-Identifier: Apache-2.0 + +# coding: utf-8 + +""" + Cisco Secure Access API + + Unified OpenAPI spec for Cisco Secure Access APIs. + + The version of the OpenAPI document: v2.0.202602030705 + Contact: devnet@cisco.com + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, Field, StrictInt +from typing import Any, ClassVar, Dict, List +from typing_extensions import Annotated +from typing import Optional, Set +from typing_extensions import Self + +class DeleteAlertRulesRequest(BaseModel): + """ + The properties of the alert rules used by the system to delete the alert rules. + """ # noqa: E501 + rule_ids: Annotated[List[StrictInt], Field(max_length=100)] = Field(description="The list of rule IDs used by the system to delete the alert rules.", alias="ruleIds") + __properties: ClassVar[List[str]] = ["ruleIds"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of DeleteAlertRulesRequest 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 DeleteAlertRulesRequest from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "ruleIds": obj.get("ruleIds") + }) + return _obj + + diff --git a/secure_access/models/delete_private_resource200_response.py b/secure_access/models/delete_private_resource200_response.py index e62b1d6..f41858f 100644 --- a/secure_access/models/delete_private_resource200_response.py +++ b/secure_access/models/delete_private_resource200_response.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/delete_private_resource_group200_response.py b/secure_access/models/delete_private_resource_group200_response.py index 69c64de..9568cf8 100644 --- a/secure_access/models/delete_private_resource_group200_response.py +++ b/secure_access/models/delete_private_resource_group200_response.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/deployment_status.py b/secure_access/models/deployment_status.py index c21d636..9f08cc9 100644 --- a/secure_access/models/deployment_status.py +++ b/secure_access/models/deployment_status.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/destination_create_object.py b/secure_access/models/destination_create_object.py index a6ae553..4ee7496 100644 --- a/secure_access/models/destination_create_object.py +++ b/secure_access/models/destination_create_object.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/destination_list_create.py b/secure_access/models/destination_list_create.py index 3969365..3707487 100644 --- a/secure_access/models/destination_list_create.py +++ b/secure_access/models/destination_list_create.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/destination_list_create_destinations_inner.py b/secure_access/models/destination_list_create_destinations_inner.py index 384ebc3..edae492 100644 --- a/secure_access/models/destination_list_create_destinations_inner.py +++ b/secure_access/models/destination_list_create_destinations_inner.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/destination_list_delete.py b/secure_access/models/destination_list_delete.py index d73e712..5b5eb1d 100644 --- a/secure_access/models/destination_list_delete.py +++ b/secure_access/models/destination_list_delete.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/destination_list_object.py b/secure_access/models/destination_list_object.py index 3ad1b63..e0f1a0c 100644 --- a/secure_access/models/destination_list_object.py +++ b/secure_access/models/destination_list_object.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/destination_list_object_meta.py b/secure_access/models/destination_list_object_meta.py index 0a3fc89..8ba972e 100644 --- a/secure_access/models/destination_list_object_meta.py +++ b/secure_access/models/destination_list_object_meta.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/destination_list_patch.py b/secure_access/models/destination_list_patch.py index 7dfb7c9..eeeb2cd 100644 --- a/secure_access/models/destination_list_patch.py +++ b/secure_access/models/destination_list_patch.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/destination_list_response.py b/secure_access/models/destination_list_response.py index 9c15420..0650679 100644 --- a/secure_access/models/destination_list_response.py +++ b/secure_access/models/destination_list_response.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/destination_lists_bundle_type_id.py b/secure_access/models/destination_lists_bundle_type_id.py index 8560bd4..d5cc747 100644 --- a/secure_access/models/destination_lists_bundle_type_id.py +++ b/secure_access/models/destination_lists_bundle_type_id.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/destination_lists_server_error.py b/secure_access/models/destination_lists_server_error.py index 936133c..0400d6e 100644 --- a/secure_access/models/destination_lists_server_error.py +++ b/secure_access/models/destination_lists_server_error.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/destination_object_with_string_id.py b/secure_access/models/destination_object_with_string_id.py index a9a91c4..df6883c 100644 --- a/secure_access/models/destination_object_with_string_id.py +++ b/secure_access/models/destination_object_with_string_id.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/device.py b/secure_access/models/device.py index a487db0..ddbf0bc 100644 --- a/secure_access/models/device.py +++ b/secure_access/models/device.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/device_certificate_info.py b/secure_access/models/device_certificate_info.py index fd746f6..4b8babf 100644 --- a/secure_access/models/device_certificate_info.py +++ b/secure_access/models/device_certificate_info.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/device_type.py b/secure_access/models/device_type.py index e0ba612..e960715 100644 --- a/secure_access/models/device_type.py +++ b/secure_access/models/device_type.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) @@ -32,6 +32,8 @@ class DeviceType(str, Enum): allowed enum values """ ASA = 'ASA' + AWS_S2S_VPN = 'AWS S2S VPN' + AZURE_S2S_VPN = 'AZURE S2S VPN' FTD = 'FTD' ISR = 'ISR' MERAKI_MX = 'Meraki MX' diff --git a/secure_access/models/dlp_rule.py b/secure_access/models/dlp_rule.py new file mode 100644 index 0000000..1e2fa33 --- /dev/null +++ b/secure_access/models/dlp_rule.py @@ -0,0 +1,137 @@ +# Copyright 2026 Cisco Systems, Inc. and its affiliates +# +# SPDX-License-Identifier: Apache-2.0 + +# coding: utf-8 + +""" + Cisco Secure Access API + + Unified OpenAPI spec for Cisco Secure Access APIs. + + The version of the OpenAPI document: v2.0.202602030705 + Contact: devnet@cisco.com + 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 secure_access.models.data_loss_prevention_action import DataLossPreventionAction +from secure_access.models.data_loss_prevention_application import DataLossPreventionApplication +from secure_access.models.data_loss_prevention_identity import DataLossPreventionIdentity +from secure_access.models.data_loss_prevention_severity2 import DataLossPreventionSeverity2 +from secure_access.models.id_name_ref import IdNameRef +from typing import Optional, Set +from typing_extensions import Self + +class DLPRule(BaseModel): + """ + The properties of a DLP rule. + """ # noqa: E501 + action: Optional[DataLossPreventionAction] = DataLossPreventionAction.MONITOR + applications: Optional[List[DataLossPreventionApplication]] = Field(default=None, description="List of applications associated with the rule. This field is only included if `includeDetails` contains `applications`. ") + classifications: Optional[List[IdNameRef]] = Field(default=None, description="The list of data classifications associated with the rule. This field is only included if `includeDetails` contains `classifications`.") + description: Optional[StrictStr] = Field(default=None, description="The description of the DLP rule.") + enabled: Optional[StrictBool] = Field(default=None, description="Specifies whether the system enabled the DLP rule.") + id: Optional[StrictStr] = Field(default=None, description="The unique identifier of the DLP rule.") + identities: Optional[List[DataLossPreventionIdentity]] = Field(default=None, description="List of identities associated with the rule. This field is only included if `includeDetails` contains `identities`. ") + name: Optional[Annotated[str, Field(min_length=6, strict=True, max_length=255)]] = Field(default=None, description="The name of the DLP rule.") + secure_icap_enabled: Optional[StrictBool] = Field(default=None, description="Indicates whether Secure ICAP is enabled.", alias="secureIcapEnabled") + severity: Optional[DataLossPreventionSeverity2] = None + __properties: ClassVar[List[str]] = ["action", "applications", "classifications", "description", "enabled", "id", "identities", "name", "secureIcapEnabled", "severity"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of DLPRule 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 applications (list) + _items = [] + if self.applications: + for _item_applications in self.applications: + if _item_applications: + _items.append(_item_applications.to_dict()) + _dict['applications'] = _items + # override the default output from pydantic by calling `to_dict()` of each item in classifications (list) + _items = [] + if self.classifications: + for _item_classifications in self.classifications: + if _item_classifications: + _items.append(_item_classifications.to_dict()) + _dict['classifications'] = _items + # override the default output from pydantic by calling `to_dict()` of each item in identities (list) + _items = [] + if self.identities: + for _item_identities in self.identities: + if _item_identities: + _items.append(_item_identities.to_dict()) + _dict['identities'] = _items + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of DLPRule from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "action": obj.get("action") if obj.get("action") is not None else DataLossPreventionAction.MONITOR, + "applications": [DataLossPreventionApplication.from_dict(_item) for _item in obj["applications"]] if obj.get("applications") is not None else None, + "classifications": [IdNameRef.from_dict(_item) for _item in obj["classifications"]] if obj.get("classifications") is not None else None, + "description": obj.get("description"), + "enabled": obj.get("enabled"), + "id": obj.get("id"), + "identities": [DataLossPreventionIdentity.from_dict(_item) for _item in obj["identities"]] if obj.get("identities") is not None else None, + "name": obj.get("name"), + "secureIcapEnabled": obj.get("secureIcapEnabled"), + "severity": obj.get("severity") + }) + return _obj + + diff --git a/secure_access/models/dlp_rule_create_request.py b/secure_access/models/dlp_rule_create_request.py new file mode 100644 index 0000000..1764db4 --- /dev/null +++ b/secure_access/models/dlp_rule_create_request.py @@ -0,0 +1,216 @@ +# Copyright 2026 Cisco Systems, Inc. and its affiliates +# +# SPDX-License-Identifier: Apache-2.0 + +# coding: utf-8 + +""" + Cisco Secure Access API + + Unified OpenAPI spec for Cisco Secure Access APIs. + + The version of the OpenAPI document: v2.0.202602030705 + Contact: devnet@cisco.com + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictInt, StrictStr +from typing import Any, ClassVar, Dict, List, Optional +from typing_extensions import Annotated +from uuid import UUID +from secure_access.models.all_destinations_scope import AllDestinationsScope +from secure_access.models.data_loss_prevention_action import DataLossPreventionAction +from secure_access.models.data_loss_prevention_application import DataLossPreventionApplication +from secure_access.models.data_loss_prevention_application_category2 import DataLossPreventionApplicationCategory2 +from secure_access.models.data_loss_prevention_destination import DataLossPreventionDestination +from secure_access.models.data_loss_prevention_identity import DataLossPreventionIdentity +from secure_access.models.data_loss_prevention_private_resource import DataLossPreventionPrivateResource +from secure_access.models.data_loss_prevention_private_resource_group import DataLossPreventionPrivateResourceGroup +from secure_access.models.data_loss_prevention_severity2 import DataLossPreventionSeverity2 +from secure_access.models.rule_type import RuleType +from secure_access.models.scannable_context import ScannableContext +from typing import Optional, Set +from typing_extensions import Self + +class DLPRuleCreateRequest(BaseModel): + """ + The properties used to create a DLP rule. + """ # noqa: E501 + action: DataLossPreventionAction + all_destinations_scope: Optional[AllDestinationsScope] = Field(default=None, alias="allDestinationsScope") + application_categories: Optional[List[DataLossPreventionApplicationCategory2]] = Field(default=None, description="The list of application categories associated with the DLP rule.", alias="applicationCategories") + application_category_ids: Optional[List[StrictInt]] = Field(default=None, description="The list of IDs for the application categories associated with the DLP rule.", alias="applicationCategoryIds") + application_ids: Optional[List[StrictInt]] = Field(default=None, description="The list of IDs for applications associated with the DLP rule.", alias="applicationIds") + applications: Optional[List[DataLossPreventionApplication]] = Field(default=None, description="The list of applications associated with the DLP rule.") + classifications: Optional[List[UUID]] = Field(default=None, description="The list of the data classifications associated with the DLP rule.") + description: Optional[StrictStr] = Field(default=None, description="The description of the DLP rule.") + destination_list_ids: Optional[List[StrictInt]] = Field(default=None, description="The list of IDs for the destination lists associated with the DLP rule.", alias="destinationListIds") + destinations: Optional[DataLossPreventionDestination] = None + enabled: Optional[StrictBool] = Field(default=None, description="Specifies whether the system enabled the DLP rule.") + excluded_destination_list_ids: Optional[List[StrictInt]] = Field(default=None, description="The list of IDs for the destination lists that the system excludes from the DLP rule.", alias="excludedDestinationListIds") + excluded_identities: Optional[List[DataLossPreventionIdentity]] = Field(default=None, description="The list of identities that the system excludes from the DLP rule.", alias="excludedIdentities") + excluded_private_resource_groups: Optional[List[DataLossPreventionPrivateResourceGroup]] = Field(default=None, description="List of private resource groups to be excluded from the rule.", alias="excludedPrivateResourceGroups") + excluded_private_resources: Optional[List[DataLossPreventionPrivateResource]] = Field(default=None, description="The list of private resources to exclude from the DLP rule.", alias="excludedPrivateResources") + file_size_from: Optional[StrictInt] = Field(default=None, description="The minimum file size in KB for the system to apply the DLP rule.", alias="fileSizeFrom") + file_size_to: Optional[StrictInt] = Field(default=None, description="The maximum file size in KB for the system to apply the DLP rule.", alias="fileSizeTo") + identities: Optional[List[DataLossPreventionIdentity]] = Field(default=None, description="The list of identities associated with the DLP rule.") + mip_tags: Optional[List[StrictStr]] = Field(default=None, description="The list of of Microsoft Information Protection (MIP) tags.", alias="mipTags") + name: Annotated[str, Field(min_length=6, strict=True, max_length=255)] = Field(description="The name of the DLP rule.") + notify_actor: Optional[StrictBool] = Field(default=None, description="Specifies whether the system notifies the actor when the rule is triggered.", alias="notifyActor") + notify_owner: Optional[StrictBool] = Field(default=None, description="Specifies whether the system notifies the owner when the rule is triggered.", alias="notifyOwner") + private_resource_groups: Optional[List[DataLossPreventionPrivateResourceGroup]] = Field(default=None, description="The list of private resource groups associated with the DLP rule.", alias="privateResourceGroups") + private_resources: Optional[List[DataLossPreventionPrivateResource]] = Field(default=None, description="The list of private resources associated with the DLP rule.", alias="privateResources") + scannable_contexts: Optional[List[ScannableContext]] = Field(default=None, description="The list of scannable contexts.", alias="scannableContexts") + severity: Optional[DataLossPreventionSeverity2] = None + type: RuleType + __properties: ClassVar[List[str]] = ["action", "allDestinationsScope", "applicationCategories", "applicationCategoryIds", "applicationIds", "applications", "classifications", "description", "destinationListIds", "destinations", "enabled", "excludedDestinationListIds", "excludedIdentities", "excludedPrivateResourceGroups", "excludedPrivateResources", "fileSizeFrom", "fileSizeTo", "identities", "mipTags", "name", "notifyActor", "notifyOwner", "privateResourceGroups", "privateResources", "scannableContexts", "severity", "type"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of DLPRuleCreateRequest 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 application_categories (list) + _items = [] + if self.application_categories: + for _item_application_categories in self.application_categories: + if _item_application_categories: + _items.append(_item_application_categories.to_dict()) + _dict['applicationCategories'] = _items + # override the default output from pydantic by calling `to_dict()` of each item in applications (list) + _items = [] + if self.applications: + for _item_applications in self.applications: + if _item_applications: + _items.append(_item_applications.to_dict()) + _dict['applications'] = _items + # override the default output from pydantic by calling `to_dict()` of destinations + if self.destinations: + _dict['destinations'] = self.destinations.to_dict() + # override the default output from pydantic by calling `to_dict()` of each item in excluded_identities (list) + _items = [] + if self.excluded_identities: + for _item_excluded_identities in self.excluded_identities: + if _item_excluded_identities: + _items.append(_item_excluded_identities.to_dict()) + _dict['excludedIdentities'] = _items + # override the default output from pydantic by calling `to_dict()` of each item in excluded_private_resource_groups (list) + _items = [] + if self.excluded_private_resource_groups: + for _item_excluded_private_resource_groups in self.excluded_private_resource_groups: + if _item_excluded_private_resource_groups: + _items.append(_item_excluded_private_resource_groups.to_dict()) + _dict['excludedPrivateResourceGroups'] = _items + # override the default output from pydantic by calling `to_dict()` of each item in excluded_private_resources (list) + _items = [] + if self.excluded_private_resources: + for _item_excluded_private_resources in self.excluded_private_resources: + if _item_excluded_private_resources: + _items.append(_item_excluded_private_resources.to_dict()) + _dict['excludedPrivateResources'] = _items + # override the default output from pydantic by calling `to_dict()` of each item in identities (list) + _items = [] + if self.identities: + for _item_identities in self.identities: + if _item_identities: + _items.append(_item_identities.to_dict()) + _dict['identities'] = _items + # override the default output from pydantic by calling `to_dict()` of each item in private_resource_groups (list) + _items = [] + if self.private_resource_groups: + for _item_private_resource_groups in self.private_resource_groups: + if _item_private_resource_groups: + _items.append(_item_private_resource_groups.to_dict()) + _dict['privateResourceGroups'] = _items + # override the default output from pydantic by calling `to_dict()` of each item in private_resources (list) + _items = [] + if self.private_resources: + for _item_private_resources in self.private_resources: + if _item_private_resources: + _items.append(_item_private_resources.to_dict()) + _dict['privateResources'] = _items + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of DLPRuleCreateRequest from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "action": obj.get("action") if obj.get("action") is not None else DataLossPreventionAction.MONITOR, + "allDestinationsScope": obj.get("allDestinationsScope"), + "applicationCategories": [DataLossPreventionApplicationCategory2.from_dict(_item) for _item in obj["applicationCategories"]] if obj.get("applicationCategories") is not None else None, + "applicationCategoryIds": obj.get("applicationCategoryIds"), + "applicationIds": obj.get("applicationIds"), + "applications": [DataLossPreventionApplication.from_dict(_item) for _item in obj["applications"]] if obj.get("applications") is not None else None, + "classifications": obj.get("classifications"), + "description": obj.get("description"), + "destinationListIds": obj.get("destinationListIds"), + "destinations": DataLossPreventionDestination.from_dict(obj["destinations"]) if obj.get("destinations") is not None else None, + "enabled": obj.get("enabled"), + "excludedDestinationListIds": obj.get("excludedDestinationListIds"), + "excludedIdentities": [DataLossPreventionIdentity.from_dict(_item) for _item in obj["excludedIdentities"]] if obj.get("excludedIdentities") is not None else None, + "excludedPrivateResourceGroups": [DataLossPreventionPrivateResourceGroup.from_dict(_item) for _item in obj["excludedPrivateResourceGroups"]] if obj.get("excludedPrivateResourceGroups") is not None else None, + "excludedPrivateResources": [DataLossPreventionPrivateResource.from_dict(_item) for _item in obj["excludedPrivateResources"]] if obj.get("excludedPrivateResources") is not None else None, + "fileSizeFrom": obj.get("fileSizeFrom"), + "fileSizeTo": obj.get("fileSizeTo"), + "identities": [DataLossPreventionIdentity.from_dict(_item) for _item in obj["identities"]] if obj.get("identities") is not None else None, + "mipTags": obj.get("mipTags"), + "name": obj.get("name"), + "notifyActor": obj.get("notifyActor"), + "notifyOwner": obj.get("notifyOwner"), + "privateResourceGroups": [DataLossPreventionPrivateResourceGroup.from_dict(_item) for _item in obj["privateResourceGroups"]] if obj.get("privateResourceGroups") is not None else None, + "privateResources": [DataLossPreventionPrivateResource.from_dict(_item) for _item in obj["privateResources"]] if obj.get("privateResources") is not None else None, + "scannableContexts": obj.get("scannableContexts"), + "severity": obj.get("severity"), + "type": obj.get("type") + }) + return _obj + + diff --git a/secure_access/models/dlp_rule_event.py b/secure_access/models/dlp_rule_event.py new file mode 100644 index 0000000..9cef29f --- /dev/null +++ b/secure_access/models/dlp_rule_event.py @@ -0,0 +1,142 @@ +# Copyright 2026 Cisco Systems, Inc. and its affiliates +# +# SPDX-License-Identifier: Apache-2.0 + +# coding: utf-8 + +""" + Cisco Secure Access API + + Unified OpenAPI spec for Cisco Secure Access APIs. + + The version of the OpenAPI document: v2.0.202602030705 + Contact: devnet@cisco.com + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import json +import pprint +from pydantic import BaseModel, ConfigDict, Field, StrictStr, ValidationError, field_validator +from typing import Any, List, Optional +from secure_access.models.dlp_rule_event_by_type import DLPRuleEventByType +from secure_access.models.saas_api_dlp_rule_event import SaasApiDlpRuleEvent +from pydantic import StrictStr, Field +from typing import Union, List, Set, Optional, Dict +from typing_extensions import Literal, Self + +DLPRULEEVENT_ONE_OF_SCHEMAS = ["DLPRuleEventByType", "SaasApiDlpRuleEvent"] + +class DlpRuleEvent(BaseModel): + """ + The specific type of DLP rule event returned by the system in the response. + """ + # data type: DLPRuleEventByType + oneof_schema_1_validator: Optional[DLPRuleEventByType] = None + # data type: SaasApiDlpRuleEvent + oneof_schema_2_validator: Optional[SaasApiDlpRuleEvent] = None + actual_instance: Optional[Union[DLPRuleEventByType, SaasApiDlpRuleEvent]] = None + one_of_schemas: Set[str] = { "DLPRuleEventByType", "SaasApiDlpRuleEvent" } + + model_config = ConfigDict( + validate_assignment=True, + protected_namespaces=(), + ) + + + def __init__(self, *args, **kwargs) -> None: + if args: + if len(args) > 1: + raise ValueError("If a position argument is used, only 1 is allowed to set `actual_instance`") + if kwargs: + raise ValueError("If a position argument is used, keyword arguments cannot be used.") + super().__init__(actual_instance=args[0]) + else: + super().__init__(**kwargs) + + @field_validator('actual_instance') + def actual_instance_must_validate_oneof(cls, v): + instance = DlpRuleEvent.model_construct() + error_messages = [] + match = 0 + # validate data type: DLPRuleEventByType + if not isinstance(v, DLPRuleEventByType): + error_messages.append(f"Error! Input type `{type(v)}` is not `DLPRuleEventByType`") + else: + match += 1 + # validate data type: SaasApiDlpRuleEvent + if not isinstance(v, SaasApiDlpRuleEvent): + error_messages.append(f"Error! Input type `{type(v)}` is not `SaasApiDlpRuleEvent`") + else: + match += 1 + if match > 1: + # more than 1 match + raise ValueError("Multiple matches found when setting `actual_instance` in DlpRuleEvent with oneOf schemas: DLPRuleEventByType, SaasApiDlpRuleEvent. Details: " + ", ".join(error_messages)) + elif match == 0: + # no match + raise ValueError("No match found when setting `actual_instance` in DlpRuleEvent with oneOf schemas: DLPRuleEventByType, SaasApiDlpRuleEvent. Details: " + ", ".join(error_messages)) + else: + return v + + @classmethod + def from_dict(cls, obj: Union[str, Dict[str, Any]]) -> Self: + return cls.from_json(json.dumps(obj)) + + @classmethod + def from_json(cls, json_str: str) -> Self: + """Returns the object represented by the json string""" + instance = cls.model_construct() + error_messages = [] + match = 0 + + # deserialize data into DLPRuleEventByType + try: + instance.actual_instance = DLPRuleEventByType.from_json(json_str) + match += 1 + except (ValidationError, ValueError) as e: + error_messages.append(str(e)) + # deserialize data into SaasApiDlpRuleEvent + try: + instance.actual_instance = SaasApiDlpRuleEvent.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 DlpRuleEvent with oneOf schemas: DLPRuleEventByType, SaasApiDlpRuleEvent. Details: " + ", ".join(error_messages)) + elif match == 0: + # no match + raise ValueError("No match found when deserializing the JSON string into DlpRuleEvent with oneOf schemas: DLPRuleEventByType, SaasApiDlpRuleEvent. Details: " + ", ".join(error_messages)) + else: + return instance + + def to_json(self) -> str: + """Returns the JSON representation of the actual instance""" + if self.actual_instance is None: + return "null" + + if hasattr(self.actual_instance, "to_json") and callable(self.actual_instance.to_json): + return self.actual_instance.to_json() + else: + return json.dumps(self.actual_instance) + + def to_dict(self) -> Optional[Union[Dict[str, Any], DLPRuleEventByType, SaasApiDlpRuleEvent]]: + """Returns the dict representation of the actual instance""" + if self.actual_instance is None: + return None + + if hasattr(self.actual_instance, "to_dict") and callable(self.actual_instance.to_dict): + return self.actual_instance.to_dict() + else: + # primitive type + return self.actual_instance + + def to_str(self) -> str: + """Returns the string representation of the actual instance""" + return pprint.pformat(self.model_dump()) + + diff --git a/secure_access/models/dlp_rule_event_by_type.py b/secure_access/models/dlp_rule_event_by_type.py new file mode 100644 index 0000000..2fc3b10 --- /dev/null +++ b/secure_access/models/dlp_rule_event_by_type.py @@ -0,0 +1,147 @@ +# Copyright 2026 Cisco Systems, Inc. and its affiliates +# +# SPDX-License-Identifier: Apache-2.0 + +# coding: utf-8 + +""" + Cisco Secure Access API + + Unified OpenAPI spec for Cisco Secure Access APIs. + + The version of the OpenAPI document: v2.0.202602030705 + Contact: devnet@cisco.com + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from datetime import datetime +from pydantic import BaseModel, ConfigDict, Field, StrictInt, StrictStr +from typing import Any, ClassVar, Dict, List, Optional +from secure_access.models.application import Application +from secure_access.models.data_loss_prevention_application_category import DataLossPreventionApplicationCategory +from secure_access.models.dlp_rule_event_by_type_rule import DLPRuleEventByTypeRule +from secure_access.models.identity import Identity +from secure_access.models.private_resource import PrivateResource +from secure_access.models.private_resource_group import PrivateResourceGroup +from typing import Optional, Set +from typing_extensions import Self + +class DLPRuleEventByType(BaseModel): + """ + The properties of the event including the associated DLP rule and classifications. + """ # noqa: E501 + action: Optional[StrictStr] = Field(default=None, description="The action triggered by the DLP rule.") + application: Optional[Application] = None + application_category: Optional[DataLossPreventionApplicationCategory] = Field(default=None, alias="applicationCategory") + content_type: Optional[StrictStr] = Field(default=None, description="The type of data that triggered the DLP rule event.", alias="contentType") + destination_url: Optional[StrictStr] = Field(default=None, description="The URL where the end user uploadedor posted the file.", alias="destinationUrl") + detected: Optional[datetime] = Field(default=None, description="The date and time when the system detected the content, formatted as an ISO 8601 timestamp.") + direction: Optional[StrictStr] = Field(default=None, description="The direction of the detected traffic.") + file_labels: Optional[List[StrictStr]] = Field(default=None, description="The list of labels associated with the file.", alias="fileLabels") + file_name: Optional[StrictStr] = Field(default=None, description="The name of the file where the system identified a classification match. For messages or posts, the system returns `Content`.", alias="fileName") + identity: Optional[Identity] = None + private_resource: Optional[PrivateResource] = Field(default=None, alias="privateResource") + private_resource_group: Optional[PrivateResourceGroup] = Field(default=None, alias="privateResourceGroup") + rule: Optional[DLPRuleEventByTypeRule] = None + severity: Optional[StrictStr] = Field(default=None, description="The severity of the DLP rule.") + sha256_hash: Optional[StrictStr] = Field(default=None, description="The unique SHA256 hash of the file.", alias="sha256Hash") + total_size_in_bytes: Optional[StrictInt] = Field(default=None, description="The size of the file in bytes that triggered the DLP rule event.", alias="totalSizeInBytes") + __properties: ClassVar[List[str]] = ["action", "application", "applicationCategory", "contentType", "destinationUrl", "detected", "direction", "fileLabels", "fileName", "identity", "privateResource", "privateResourceGroup", "rule", "severity", "sha256Hash", "totalSizeInBytes"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of DLPRuleEventByType 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 application + if self.application: + _dict['application'] = self.application.to_dict() + # override the default output from pydantic by calling `to_dict()` of application_category + if self.application_category: + _dict['applicationCategory'] = self.application_category.to_dict() + # override the default output from pydantic by calling `to_dict()` of identity + if self.identity: + _dict['identity'] = self.identity.to_dict() + # override the default output from pydantic by calling `to_dict()` of private_resource + if self.private_resource: + _dict['privateResource'] = self.private_resource.to_dict() + # override the default output from pydantic by calling `to_dict()` of private_resource_group + if self.private_resource_group: + _dict['privateResourceGroup'] = self.private_resource_group.to_dict() + # override the default output from pydantic by calling `to_dict()` of rule + if self.rule: + _dict['rule'] = self.rule.to_dict() + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of DLPRuleEventByType from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "action": obj.get("action"), + "application": Application.from_dict(obj["application"]) if obj.get("application") is not None else None, + "applicationCategory": DataLossPreventionApplicationCategory.from_dict(obj["applicationCategory"]) if obj.get("applicationCategory") is not None else None, + "contentType": obj.get("contentType"), + "destinationUrl": obj.get("destinationUrl"), + "detected": obj.get("detected"), + "direction": obj.get("direction"), + "fileLabels": obj.get("fileLabels"), + "fileName": obj.get("fileName"), + "identity": Identity.from_dict(obj["identity"]) if obj.get("identity") is not None else None, + "privateResource": PrivateResource.from_dict(obj["privateResource"]) if obj.get("privateResource") is not None else None, + "privateResourceGroup": PrivateResourceGroup.from_dict(obj["privateResourceGroup"]) if obj.get("privateResourceGroup") is not None else None, + "rule": DLPRuleEventByTypeRule.from_dict(obj["rule"]) if obj.get("rule") is not None else None, + "severity": obj.get("severity"), + "sha256Hash": obj.get("sha256Hash"), + "totalSizeInBytes": obj.get("totalSizeInBytes") + }) + return _obj + + diff --git a/secure_access/models/dlp_rule_event_by_type_rule.py b/secure_access/models/dlp_rule_event_by_type_rule.py new file mode 100644 index 0000000..ae1077a --- /dev/null +++ b/secure_access/models/dlp_rule_event_by_type_rule.py @@ -0,0 +1,104 @@ +# Copyright 2026 Cisco Systems, Inc. and its affiliates +# +# SPDX-License-Identifier: Apache-2.0 + +# coding: utf-8 + +""" + Cisco Secure Access API + + Unified OpenAPI spec for Cisco Secure Access APIs. + + The version of the OpenAPI document: v2.0.202602030705 + Contact: devnet@cisco.com + 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 secure_access.models.classifications_inner import ClassificationsInner +from typing import Optional, Set +from typing_extensions import Self + +class DLPRuleEventByTypeRule(BaseModel): + """ + The properties of the DLP rule associated with the event. + """ # noqa: E501 + classifications: Optional[List[ClassificationsInner]] = Field(default=None, description="The list of the classifications associated with the rule.") + id: Optional[StrictStr] = Field(default=None, description="The unique identifier of the DLP rule.") + name: Optional[StrictStr] = Field(default=None, description="The name of the DLP rule.") + __properties: ClassVar[List[str]] = ["classifications", "id", "name"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of DLPRuleEventByTypeRule 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 classifications (list) + _items = [] + if self.classifications: + for _item_classifications in self.classifications: + if _item_classifications: + _items.append(_item_classifications.to_dict()) + _dict['classifications'] = _items + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of DLPRuleEventByTypeRule from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "classifications": [ClassificationsInner.from_dict(_item) for _item in obj["classifications"]] if obj.get("classifications") is not None else None, + "id": obj.get("id"), + "name": obj.get("name") + }) + return _obj + + diff --git a/secure_access/models/dlp_rule_list_item.py b/secure_access/models/dlp_rule_list_item.py new file mode 100644 index 0000000..9dd1336 --- /dev/null +++ b/secure_access/models/dlp_rule_list_item.py @@ -0,0 +1,95 @@ +# Copyright 2026 Cisco Systems, Inc. and its affiliates +# +# SPDX-License-Identifier: Apache-2.0 + +# coding: utf-8 + +""" + Cisco Secure Access API + + Unified OpenAPI spec for Cisco Secure Access APIs. + + The version of the OpenAPI document: v2.0.202602030705 + Contact: devnet@cisco.com + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, Field, StrictStr +from typing import Any, ClassVar, Dict, List, Optional +from typing_extensions import Annotated +from typing import Optional, Set +from typing_extensions import Self + +class DLPRuleListItem(BaseModel): + """ + The properties of a DLP rule. + """ # noqa: E501 + id: Optional[StrictStr] = Field(default=None, description="The unique identifier of the DLP rule.") + name: Optional[Annotated[str, Field(min_length=6, strict=True, max_length=255)]] = Field(default=None, description="The name of the DLP rule.") + __properties: ClassVar[List[str]] = ["id", "name"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of DLPRuleListItem 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 DLPRuleListItem from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "id": obj.get("id"), + "name": obj.get("name") + }) + return _obj + + diff --git a/secure_access/models/dlp_rule_patch_request.py b/secure_access/models/dlp_rule_patch_request.py new file mode 100644 index 0000000..f8dee8d --- /dev/null +++ b/secure_access/models/dlp_rule_patch_request.py @@ -0,0 +1,213 @@ +# Copyright 2026 Cisco Systems, Inc. and its affiliates +# +# SPDX-License-Identifier: Apache-2.0 + +# coding: utf-8 + +""" + Cisco Secure Access API + + Unified OpenAPI spec for Cisco Secure Access APIs. + + The version of the OpenAPI document: v2.0.202602030705 + Contact: devnet@cisco.com + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictInt, StrictStr +from typing import Any, ClassVar, Dict, List, Optional +from typing_extensions import Annotated +from uuid import UUID +from secure_access.models.all_destinations_scope import AllDestinationsScope +from secure_access.models.data_loss_prevention_action2 import DataLossPreventionAction2 +from secure_access.models.data_loss_prevention_application import DataLossPreventionApplication +from secure_access.models.data_loss_prevention_application_category2 import DataLossPreventionApplicationCategory2 +from secure_access.models.data_loss_prevention_destination import DataLossPreventionDestination +from secure_access.models.data_loss_prevention_identity import DataLossPreventionIdentity +from secure_access.models.data_loss_prevention_private_resource import DataLossPreventionPrivateResource +from secure_access.models.data_loss_prevention_private_resource_group import DataLossPreventionPrivateResourceGroup +from secure_access.models.data_loss_prevention_severity import DataLossPreventionSeverity +from secure_access.models.scannable_context import ScannableContext +from typing import Optional, Set +from typing_extensions import Self + +class DLPRulePatchRequest(BaseModel): + """ + The properties used to update the DLP rule. + """ # noqa: E501 + action: Optional[DataLossPreventionAction2] = None + all_destinations_scope: Optional[AllDestinationsScope] = Field(default=None, alias="allDestinationsScope") + application_categories: Optional[List[DataLossPreventionApplicationCategory2]] = Field(default=None, description="The list of application categories associated with the DLP rule.", alias="applicationCategories") + application_category_ids: Optional[List[StrictInt]] = Field(default=None, description="The list of IDs for the application categories associated with the DLP rule.", alias="applicationCategoryIds") + application_ids: Optional[List[StrictInt]] = Field(default=None, description="The list of IDs for applications associated with the DLP rule.", alias="applicationIds") + applications: Optional[List[DataLossPreventionApplication]] = Field(default=None, description="The list of applications associated with the DLP rule.") + classifications: Optional[List[UUID]] = Field(default=None, description="The list of the data classifications associated with the DLP rule.") + description: Optional[StrictStr] = Field(default=None, description="The description of the DLP rule.") + destination_list_ids: Optional[List[StrictInt]] = Field(default=None, description="The list of IDs for the destination lists associated with the DLP rule.", alias="destinationListIds") + destinations: Optional[DataLossPreventionDestination] = None + enabled: Optional[StrictBool] = Field(default=None, description="Specifies whether the system enabled the DLP rule.") + excluded_destination_list_ids: Optional[List[StrictInt]] = Field(default=None, description="The list of IDs for the destination lists that the system excludes from the DLP rule.", alias="excludedDestinationListIds") + excluded_identities: Optional[List[DataLossPreventionIdentity]] = Field(default=None, description="The list of identities that the system excludes from the DLP rule.", alias="excludedIdentities") + excluded_private_resource_groups: Optional[List[DataLossPreventionPrivateResourceGroup]] = Field(default=None, description="List of private resource groups to be excluded from the rule.", alias="excludedPrivateResourceGroups") + excluded_private_resources: Optional[List[DataLossPreventionPrivateResource]] = Field(default=None, description="The list of private resources to exclude from the DLP rule.", alias="excludedPrivateResources") + file_size_from: Optional[StrictInt] = Field(default=None, description="The minimum file size in KB for the system to apply the DLP rule.", alias="fileSizeFrom") + file_size_to: Optional[StrictInt] = Field(default=None, description="The maximum file size in KB for the system to apply the DLP rule.", alias="fileSizeTo") + identities: Optional[List[DataLossPreventionIdentity]] = Field(default=None, description="The list of identities associated with the DLP rule.") + mip_tags: Optional[List[StrictStr]] = Field(default=None, description="The list of of Microsoft Information Protection (MIP) tags.", alias="mipTags") + name: Optional[Annotated[str, Field(min_length=6, strict=True, max_length=255)]] = Field(default=None, description="The name of the DLP rule.") + notify_actor: Optional[StrictBool] = Field(default=None, description="Specifies whether the system notifies the actor when the rule is triggered.", alias="notifyActor") + notify_owner: Optional[StrictBool] = Field(default=None, description="Specifies whether the system notifies the owner when the rule is triggered.", alias="notifyOwner") + private_resource_groups: Optional[List[DataLossPreventionPrivateResourceGroup]] = Field(default=None, description="The list of private resource groups associated with the DLP rule.", alias="privateResourceGroups") + private_resources: Optional[List[DataLossPreventionPrivateResource]] = Field(default=None, description="The list of private resources associated with the DLP rule.", alias="privateResources") + scannable_contexts: Optional[List[ScannableContext]] = Field(default=None, description="The list of scannable contexts.", alias="scannableContexts") + severity: Optional[DataLossPreventionSeverity] = None + __properties: ClassVar[List[str]] = ["action", "allDestinationsScope", "applicationCategories", "applicationCategoryIds", "applicationIds", "applications", "classifications", "description", "destinationListIds", "destinations", "enabled", "excludedDestinationListIds", "excludedIdentities", "excludedPrivateResourceGroups", "excludedPrivateResources", "fileSizeFrom", "fileSizeTo", "identities", "mipTags", "name", "notifyActor", "notifyOwner", "privateResourceGroups", "privateResources", "scannableContexts", "severity"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of DLPRulePatchRequest 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 application_categories (list) + _items = [] + if self.application_categories: + for _item_application_categories in self.application_categories: + if _item_application_categories: + _items.append(_item_application_categories.to_dict()) + _dict['applicationCategories'] = _items + # override the default output from pydantic by calling `to_dict()` of each item in applications (list) + _items = [] + if self.applications: + for _item_applications in self.applications: + if _item_applications: + _items.append(_item_applications.to_dict()) + _dict['applications'] = _items + # override the default output from pydantic by calling `to_dict()` of destinations + if self.destinations: + _dict['destinations'] = self.destinations.to_dict() + # override the default output from pydantic by calling `to_dict()` of each item in excluded_identities (list) + _items = [] + if self.excluded_identities: + for _item_excluded_identities in self.excluded_identities: + if _item_excluded_identities: + _items.append(_item_excluded_identities.to_dict()) + _dict['excludedIdentities'] = _items + # override the default output from pydantic by calling `to_dict()` of each item in excluded_private_resource_groups (list) + _items = [] + if self.excluded_private_resource_groups: + for _item_excluded_private_resource_groups in self.excluded_private_resource_groups: + if _item_excluded_private_resource_groups: + _items.append(_item_excluded_private_resource_groups.to_dict()) + _dict['excludedPrivateResourceGroups'] = _items + # override the default output from pydantic by calling `to_dict()` of each item in excluded_private_resources (list) + _items = [] + if self.excluded_private_resources: + for _item_excluded_private_resources in self.excluded_private_resources: + if _item_excluded_private_resources: + _items.append(_item_excluded_private_resources.to_dict()) + _dict['excludedPrivateResources'] = _items + # override the default output from pydantic by calling `to_dict()` of each item in identities (list) + _items = [] + if self.identities: + for _item_identities in self.identities: + if _item_identities: + _items.append(_item_identities.to_dict()) + _dict['identities'] = _items + # override the default output from pydantic by calling `to_dict()` of each item in private_resource_groups (list) + _items = [] + if self.private_resource_groups: + for _item_private_resource_groups in self.private_resource_groups: + if _item_private_resource_groups: + _items.append(_item_private_resource_groups.to_dict()) + _dict['privateResourceGroups'] = _items + # override the default output from pydantic by calling `to_dict()` of each item in private_resources (list) + _items = [] + if self.private_resources: + for _item_private_resources in self.private_resources: + if _item_private_resources: + _items.append(_item_private_resources.to_dict()) + _dict['privateResources'] = _items + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of DLPRulePatchRequest from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "action": obj.get("action"), + "allDestinationsScope": obj.get("allDestinationsScope"), + "applicationCategories": [DataLossPreventionApplicationCategory2.from_dict(_item) for _item in obj["applicationCategories"]] if obj.get("applicationCategories") is not None else None, + "applicationCategoryIds": obj.get("applicationCategoryIds"), + "applicationIds": obj.get("applicationIds"), + "applications": [DataLossPreventionApplication.from_dict(_item) for _item in obj["applications"]] if obj.get("applications") is not None else None, + "classifications": obj.get("classifications"), + "description": obj.get("description"), + "destinationListIds": obj.get("destinationListIds"), + "destinations": DataLossPreventionDestination.from_dict(obj["destinations"]) if obj.get("destinations") is not None else None, + "enabled": obj.get("enabled"), + "excludedDestinationListIds": obj.get("excludedDestinationListIds"), + "excludedIdentities": [DataLossPreventionIdentity.from_dict(_item) for _item in obj["excludedIdentities"]] if obj.get("excludedIdentities") is not None else None, + "excludedPrivateResourceGroups": [DataLossPreventionPrivateResourceGroup.from_dict(_item) for _item in obj["excludedPrivateResourceGroups"]] if obj.get("excludedPrivateResourceGroups") is not None else None, + "excludedPrivateResources": [DataLossPreventionPrivateResource.from_dict(_item) for _item in obj["excludedPrivateResources"]] if obj.get("excludedPrivateResources") is not None else None, + "fileSizeFrom": obj.get("fileSizeFrom"), + "fileSizeTo": obj.get("fileSizeTo"), + "identities": [DataLossPreventionIdentity.from_dict(_item) for _item in obj["identities"]] if obj.get("identities") is not None else None, + "mipTags": obj.get("mipTags"), + "name": obj.get("name"), + "notifyActor": obj.get("notifyActor"), + "notifyOwner": obj.get("notifyOwner"), + "privateResourceGroups": [DataLossPreventionPrivateResourceGroup.from_dict(_item) for _item in obj["privateResourceGroups"]] if obj.get("privateResourceGroups") is not None else None, + "privateResources": [DataLossPreventionPrivateResource.from_dict(_item) for _item in obj["privateResources"]] if obj.get("privateResources") is not None else None, + "scannableContexts": obj.get("scannableContexts"), + "severity": obj.get("severity") + }) + return _obj + + diff --git a/secure_access/models/dns_forwarder_create_response.py b/secure_access/models/dns_forwarder_create_response.py index 1152578..fe4f257 100644 --- a/secure_access/models/dns_forwarder_create_response.py +++ b/secure_access/models/dns_forwarder_create_response.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/dns_forwarder_object.py b/secure_access/models/dns_forwarder_object.py index ae4f251..c075353 100644 --- a/secure_access/models/dns_forwarder_object.py +++ b/secure_access/models/dns_forwarder_object.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/dns_forwarder_object_create.py b/secure_access/models/dns_forwarder_object_create.py index d2d4dff..b7a6d5d 100644 --- a/secure_access/models/dns_forwarder_object_create.py +++ b/secure_access/models/dns_forwarder_object_create.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/dns_forwarder_object_update.py b/secure_access/models/dns_forwarder_object_update.py index 440dace..3ac8ac7 100644 --- a/secure_access/models/dns_forwarder_object_update.py +++ b/secure_access/models/dns_forwarder_object_update.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/dns_forwarders500_error.py b/secure_access/models/dns_forwarders500_error.py index 0a01de8..5ad6302 100644 --- a/secure_access/models/dns_forwarders500_error.py +++ b/secure_access/models/dns_forwarders500_error.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/dns_forwarders_type.py b/secure_access/models/dns_forwarders_type.py index 129b801..1d24ab5 100644 --- a/secure_access/models/dns_forwarders_type.py +++ b/secure_access/models/dns_forwarders_type.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/dns_source.py b/secure_access/models/dns_source.py index f126f79..71a1b47 100644 --- a/secure_access/models/dns_source.py +++ b/secure_access/models/dns_source.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/domain_categorization.py b/secure_access/models/domain_categorization.py index 75b1eb6..5f2b21e 100644 --- a/secure_access/models/domain_categorization.py +++ b/secure_access/models/domain_categorization.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/edm_identifier_create_request.py b/secure_access/models/edm_identifier_create_request.py new file mode 100644 index 0000000..441e308 --- /dev/null +++ b/secure_access/models/edm_identifier_create_request.py @@ -0,0 +1,107 @@ +# Copyright 2026 Cisco Systems, Inc. and its affiliates +# +# SPDX-License-Identifier: Apache-2.0 + +# coding: utf-8 + +""" + Cisco Secure Access API + + Unified OpenAPI spec for Cisco Secure Access APIs. + + The version of the OpenAPI document: v2.0.202602030705 + Contact: devnet@cisco.com + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, Field, StrictInt +from typing import Any, ClassVar, Dict, List +from typing_extensions import Annotated +from secure_access.models.columns_edm_create_inner import ColumnsEdmCreateInner +from typing import Optional, Set +from typing_extensions import Self + +class EDMIdentifierCreateRequest(BaseModel): + """ + The properties of the request body used to create an EDM data identifier. + """ # noqa: E501 + columns: List[ColumnsEdmCreateInner] = Field(description="The list of the columns for the Exact Data Match (EDM) data identifier.") + description: Annotated[str, Field(strict=True, max_length=255)] = Field(description="The description of the EDM data identifier.") + minimum_number_of_matches: StrictInt = Field(description="The minimum number of matches required for Exact Data Match (EDM).", alias="minimumNumberOfMatches") + name: Annotated[str, Field(strict=True, max_length=255)] = Field(description="The name of the EDM data identifier.") + __properties: ClassVar[List[str]] = ["columns", "description", "minimumNumberOfMatches", "name"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of EDMIdentifierCreateRequest 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 columns (list) + _items = [] + if self.columns: + for _item_columns in self.columns: + if _item_columns: + _items.append(_item_columns.to_dict()) + _dict['columns'] = _items + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of EDMIdentifierCreateRequest from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "columns": [ColumnsEdmCreateInner.from_dict(_item) for _item in obj["columns"]] if obj.get("columns") is not None else None, + "description": obj.get("description"), + "minimumNumberOfMatches": obj.get("minimumNumberOfMatches"), + "name": obj.get("name") + }) + return _obj + + diff --git a/secure_access/models/edm_identifier_list_item.py b/secure_access/models/edm_identifier_list_item.py new file mode 100644 index 0000000..5158094 --- /dev/null +++ b/secure_access/models/edm_identifier_list_item.py @@ -0,0 +1,96 @@ +# Copyright 2026 Cisco Systems, Inc. and its affiliates +# +# SPDX-License-Identifier: Apache-2.0 + +# coding: utf-8 + +""" + Cisco Secure Access API + + Unified OpenAPI spec for Cisco Secure Access APIs. + + The version of the OpenAPI document: v2.0.202602030705 + Contact: devnet@cisco.com + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, Field +from typing import Any, ClassVar, Dict, List, Optional +from typing_extensions import Annotated +from uuid import UUID +from typing import Optional, Set +from typing_extensions import Self + +class EDMIdentifierListItem(BaseModel): + """ + The properties of the Exact Data Match (EDM) data identifier. + """ # noqa: E501 + id: Optional[UUID] = Field(default=None, description="The unique identifier of the EDM data identifier.") + name: Optional[Annotated[str, Field(strict=True, max_length=255)]] = Field(default=None, description="The name of the EDM data identifier.") + __properties: ClassVar[List[str]] = ["id", "name"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of EDMIdentifierListItem 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 EDMIdentifierListItem from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "id": obj.get("id"), + "name": obj.get("name") + }) + return _obj + + diff --git a/secure_access/models/edm_identifier_response.py b/secure_access/models/edm_identifier_response.py new file mode 100644 index 0000000..09c9f8b --- /dev/null +++ b/secure_access/models/edm_identifier_response.py @@ -0,0 +1,116 @@ +# Copyright 2026 Cisco Systems, Inc. and its affiliates +# +# SPDX-License-Identifier: Apache-2.0 + +# coding: utf-8 + +""" + Cisco Secure Access API + + Unified OpenAPI spec for Cisco Secure Access APIs. + + The version of the OpenAPI document: v2.0.202602030705 + Contact: devnet@cisco.com + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictInt +from typing import Any, ClassVar, Dict, List +from typing_extensions import Annotated +from uuid import UUID +from secure_access.models.columns_edm_with_id_inner import ColumnsEdmWithIdInner +from typing import Optional, Set +from typing_extensions import Self + +class EDMIdentifierResponse(BaseModel): + """ + The properties of the Exact Data Match (EDM) data identifier. + """ # noqa: E501 + columns: List[ColumnsEdmWithIdInner] = Field(description="The list of columns for the Exact Data Match (EDM) identifier.") + creation_time: StrictInt = Field(description="The date and time represented in seconds since the UNIX Epoch when the system created the EDM data identifier.", alias="creationTime") + description: Annotated[str, Field(strict=True, max_length=255)] = Field(description="The description of the EDM data identifier.") + id: UUID = Field(description="The unique identifier of the EDM data identifier.") + is_active: StrictBool = Field(description="Specifies whether the EDM data identifier is active.", alias="isActive") + minimum_number_of_matches: StrictInt = Field(description="The minimum number of matches required for Exact Data Match (EDM).", alias="minimumNumberOfMatches") + modification_time: StrictInt = Field(description="The date and time represented in seconds since the UNIX Epoch when the system updated the EDM data identifier.", alias="modificationTime") + name: Annotated[str, Field(strict=True, max_length=255)] = Field(description="The name of the EDM data identifier.") + __properties: ClassVar[List[str]] = ["columns", "creationTime", "description", "id", "isActive", "minimumNumberOfMatches", "modificationTime", "name"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of EDMIdentifierResponse 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 columns (list) + _items = [] + if self.columns: + for _item_columns in self.columns: + if _item_columns: + _items.append(_item_columns.to_dict()) + _dict['columns'] = _items + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of EDMIdentifierResponse from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "columns": [ColumnsEdmWithIdInner.from_dict(_item) for _item in obj["columns"]] if obj.get("columns") is not None else None, + "creationTime": obj.get("creationTime"), + "description": obj.get("description"), + "id": obj.get("id"), + "isActive": obj.get("isActive"), + "minimumNumberOfMatches": obj.get("minimumNumberOfMatches"), + "modificationTime": obj.get("modificationTime"), + "name": obj.get("name") + }) + return _obj + + diff --git a/secure_access/models/edm_identifier_update_request.py b/secure_access/models/edm_identifier_update_request.py new file mode 100644 index 0000000..e1d539c --- /dev/null +++ b/secure_access/models/edm_identifier_update_request.py @@ -0,0 +1,107 @@ +# Copyright 2026 Cisco Systems, Inc. and its affiliates +# +# SPDX-License-Identifier: Apache-2.0 + +# coding: utf-8 + +""" + Cisco Secure Access API + + Unified OpenAPI spec for Cisco Secure Access APIs. + + The version of the OpenAPI document: v2.0.202602030705 + Contact: devnet@cisco.com + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, Field, StrictInt +from typing import Any, ClassVar, Dict, List, Optional +from typing_extensions import Annotated +from secure_access.models.columns_edm_with_id_inner import ColumnsEdmWithIdInner +from typing import Optional, Set +from typing_extensions import Self + +class EDMIdentifierUpdateRequest(BaseModel): + """ + The properties used to update an Exact Data Match (EDM) data identifier. **Note:** Where the system completed data indexing, you cannot update the columns for the EDM data identifier . + """ # noqa: E501 + columns: Optional[List[ColumnsEdmWithIdInner]] = Field(default=None, description="The list of columns for the Exact Data Match (EDM) identifier.") + description: Optional[Annotated[str, Field(strict=True, max_length=255)]] = Field(default=None, description="The description of the EDM data identifier.") + minimum_number_of_matches: Optional[StrictInt] = Field(default=None, description="The minimum number of matches required for Exact Data Match (EDM).", alias="minimumNumberOfMatches") + name: Optional[Annotated[str, Field(strict=True, max_length=255)]] = Field(default=None, description="The name of the EDM data identifier.") + __properties: ClassVar[List[str]] = ["columns", "description", "minimumNumberOfMatches", "name"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of EDMIdentifierUpdateRequest 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 columns (list) + _items = [] + if self.columns: + for _item_columns in self.columns: + if _item_columns: + _items.append(_item_columns.to_dict()) + _dict['columns'] = _items + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of EDMIdentifierUpdateRequest from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "columns": [ColumnsEdmWithIdInner.from_dict(_item) for _item in obj["columns"]] if obj.get("columns") is not None else None, + "description": obj.get("description"), + "minimumNumberOfMatches": obj.get("minimumNumberOfMatches"), + "name": obj.get("name") + }) + return _obj + + diff --git a/secure_access/models/ztna_policy_privateapplicationgroup.py b/secure_access/models/edm_type.py similarity index 74% rename from secure_access/models/ztna_policy_privateapplicationgroup.py rename to secure_access/models/edm_type.py index 53f2ea8..aafa9e2 100644 --- a/secure_access/models/ztna_policy_privateapplicationgroup.py +++ b/secure_access/models/edm_type.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) @@ -22,18 +22,19 @@ import re # noqa: F401 import json -from pydantic import BaseModel, ConfigDict, StrictFloat, StrictInt, StrictStr -from typing import Any, ClassVar, Dict, List, Optional, Union +from pydantic import BaseModel, ConfigDict, Field, StrictStr +from typing import Any, ClassVar, Dict, List +from uuid import UUID from typing import Optional, Set from typing_extensions import Self -class ZtnaPolicyPrivateapplicationgroup(BaseModel): +class EDMType(BaseModel): """ - ZtnaPolicyPrivateapplicationgroup + The properties of the Exact Data Match (EDM) type. """ # noqa: E501 - id: Optional[Union[StrictFloat, StrictInt]] = None - label: Optional[StrictStr] = None - __properties: ClassVar[List[str]] = ["id", "label"] + id: UUID = Field(description="The unique identifier for the EDM type.") + name: StrictStr = Field(description="The name of the EDM type.") + __properties: ClassVar[List[str]] = ["id", "name"] model_config = ConfigDict( populate_by_name=True, @@ -53,7 +54,7 @@ def to_json(self) -> str: @classmethod def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of ZtnaPolicyPrivateapplicationgroup from a JSON string""" + """Create an instance of EDMType from a JSON string""" return cls.from_dict(json.loads(json_str)) def to_dict(self) -> Dict[str, Any]: @@ -78,7 +79,7 @@ def to_dict(self) -> Dict[str, Any]: @classmethod def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of ZtnaPolicyPrivateapplicationgroup from a dict""" + """Create an instance of EDMType from a dict""" if obj is None: return None @@ -87,7 +88,7 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: _obj = cls.model_validate({ "id": obj.get("id"), - "label": obj.get("label") + "name": obj.get("name") }) return _obj diff --git a/secure_access/models/egress.py b/secure_access/models/egress.py index daf410e..24424e0 100644 --- a/secure_access/models/egress.py +++ b/secure_access/models/egress.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/enabled.py b/secure_access/models/enabled.py index 79eb726..cea7880 100644 --- a/secure_access/models/enabled.py +++ b/secure_access/models/enabled.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) @@ -25,7 +25,7 @@ class Enabled(str, Enum): """ - Specify whether to enable the threat feed. + Specify whether to enable the security feed. """ """ diff --git a/secure_access/models/environment.py b/secure_access/models/environment.py index a94839b..3474a67 100644 --- a/secure_access/models/environment.py +++ b/secure_access/models/environment.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/error.py b/secure_access/models/error.py index 0735704..58cc721 100644 --- a/secure_access/models/error.py +++ b/secure_access/models/error.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/external_fqdn.py b/secure_access/models/external_fqdn.py index b78192a..6e0d12a 100644 --- a/secure_access/models/external_fqdn.py +++ b/secure_access/models/external_fqdn.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/external_fqdn_prefix.py b/secure_access/models/external_fqdn_prefix.py index 88eedcd..c9b870b 100644 --- a/secure_access/models/external_fqdn_prefix.py +++ b/secure_access/models/external_fqdn_prefix.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/feed_create.py b/secure_access/models/feed_create.py index 426b5cd..7a68fb8 100644 --- a/secure_access/models/feed_create.py +++ b/secure_access/models/feed_create.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) @@ -30,12 +30,12 @@ class FeedCreate(BaseModel): """ - The properties used to create the threat feeds for the third-party or custom security vendor. + The properties used to create the security feeds for the third-party or custom security vendor. """ # noqa: E501 - api_key: Optional[StrictStr] = Field(default=None, description="The API key for the threat feed. The `apiKey` field is optional.", alias="apiKey") + api_key: Optional[StrictStr] = Field(default=None, description="The API key for the security feed. The `apiKey` field is optional.", alias="apiKey") enabled: Optional[Enabled] = Enabled.N - name: StrictStr = Field(description="The name of the threat feed.") - vendor_id: StrictInt = Field(description="The ID of the third-party or custom security vendor. The vendor ID for custom security vendors (`0`) is not required to create the threat feed. | Security Vendor | Feed ID | | --------------------------- | -- | | Custom Feed | 0 | | FireEye | 1 | | Cyphort | 3 | | ZeroFOX | 5 | | ThreatQ | 8 | | ThreatConnect | 10 | | Cisco AMP Threat Grid | 11 |", alias="vendorId") + name: StrictStr = Field(description="The name of the security feed.") + vendor_id: StrictInt = Field(description="The ID of the third-party or custom security vendor. The vendor ID for custom security vendors (`0`) is not required to create the security feed. | Security Vendor | Feed ID | | --------------------------- | -- | | Custom Feed | 0 | | FireEye | 1 | | Cyphort | 3 | | ZeroFOX | 5 | | ThreatQ | 8 | | ThreatConnect | 10 | | Cisco AMP Threat Grid | 11 |", alias="vendorId") __properties: ClassVar[List[str]] = ["apiKey", "enabled", "name", "vendorId"] model_config = ConfigDict( diff --git a/secure_access/models/feed_object.py b/secure_access/models/feed_object.py index d45bf85..369181b 100644 --- a/secure_access/models/feed_object.py +++ b/secure_access/models/feed_object.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) @@ -31,16 +31,16 @@ class FeedObject(BaseModel): """ - The properties of the threat feed. + The properties of the security feed. """ # noqa: E501 - created_at: datetime = Field(description="The date and time when the system created the threat feed. The system specifies the timestamp in the ISO 8601 format.", alias="createdAt") - destination_list_id: StrictInt = Field(description="The ID of the destination list created by Secure Access for the threat feed and security vendor integration. The destination list has the `access` type of `thirdparty_block`.", alias="destinationListId") + created_at: datetime = Field(description="The date and time when the system created the security feed. The system specifies the timestamp in the ISO 8601 format.", alias="createdAt") + destination_list_id: StrictInt = Field(description="The ID of the destination list created for the security feed and security vendor integration. The destination list has the `access` type of `thirdparty_block`.", alias="destinationListId") enabled: Optional[Enabled] = Enabled.N - id: StrictInt = Field(description="The ID of the threat feed.") - modified_at: datetime = Field(description="The date and time when the system updated the threat feed. The system specifies the timestamp in the ISO 8601 format.", alias="modifiedAt") - name: StrictStr = Field(description="The name of the threat feed.") + id: StrictInt = Field(description="The ID of the security feed.") + modified_at: datetime = Field(description="The date and time when the system updated the security feed. The system specifies the timestamp in the ISO 8601 format.", alias="modifiedAt") + name: StrictStr = Field(description="The name of the security feed.") organization_id: StrictInt = Field(description="The ID of the organization.", alias="organizationId") - vendor_id: StrictInt = Field(description="The ID of the third-party or custom security vendor. The vendor ID for custom security vendors (`0`) is not required to create the threat feed. | Security Vendor | Feed ID | | --------------------------- | -- | | Custom Feed | 0 | | FireEye | 1 | | Cyphort | 3 | | ZeroFOX | 5 | | ThreatQ | 8 | | ThreatConnect | 10 | | Cisco AMP Threat Grid | 11 |", alias="vendorId") + vendor_id: StrictInt = Field(description="The ID of the third-party or custom security vendor. The vendor ID for custom security vendors (`0`) is not required to create the security feed. | Security Vendor | Feed ID | | --------------------------- | -- | | Custom Feed | 0 | | FireEye | 1 | | Cyphort | 3 | | ZeroFOX | 5 | | ThreatQ | 8 | | ThreatConnect | 10 | | Cisco AMP Threat Grid | 11 |", alias="vendorId") __properties: ClassVar[List[str]] = ["createdAt", "destinationListId", "enabled", "id", "modifiedAt", "name", "organizationId", "vendorId"] model_config = ConfigDict( diff --git a/secure_access/models/feed_patch.py b/secure_access/models/feed_patch.py index 79b6b68..9abf5e7 100644 --- a/secure_access/models/feed_patch.py +++ b/secure_access/models/feed_patch.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) @@ -30,11 +30,11 @@ class FeedPatch(BaseModel): """ - Update the properties of the threat feed. + Update the properties of the security feed. """ # noqa: E501 - api_key: Optional[StrictStr] = Field(default=None, description="The API key for the threat feed. The `apiKey` field is optional.", alias="apiKey") + api_key: Optional[StrictStr] = Field(default=None, description="The API key for the security feed. The `apiKey` field is optional.", alias="apiKey") enabled: Optional[Enabled] = Enabled.N - name: StrictStr = Field(description="The name of the threat feed.") + name: StrictStr = Field(description="The name of the security feed.") __properties: ClassVar[List[str]] = ["apiKey", "enabled", "name"] model_config = ConfigDict( diff --git a/secure_access/models/file_metadata.py b/secure_access/models/file_metadata.py new file mode 100644 index 0000000..e1d0f2d --- /dev/null +++ b/secure_access/models/file_metadata.py @@ -0,0 +1,101 @@ +# Copyright 2026 Cisco Systems, Inc. and its affiliates +# +# SPDX-License-Identifier: Apache-2.0 + +# coding: utf-8 + +""" + Cisco Secure Access API + + Unified OpenAPI spec for Cisco Secure Access APIs. + + The version of the OpenAPI document: v2.0.202602030705 + Contact: devnet@cisco.com + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from datetime import datetime +from pydantic import BaseModel, ConfigDict, Field, StrictInt, StrictStr +from typing import Any, ClassVar, Dict, List, Optional +from typing import Optional, Set +from typing_extensions import Self + +class FileMetadata(BaseModel): + """ + The properties of the metadata for the files associated with Indexed Document Match (IDM) identifiers. + """ # noqa: E501 + document_id: Optional[StrictStr] = Field(default=None, description="The unique identifier for the document.", alias="documentId") + file_name: Optional[StrictStr] = Field(default=None, description="The name of the file.", alias="fileName") + file_size: Optional[StrictInt] = Field(default=None, description="The size of the file in bytes.", alias="fileSize") + file_type: Optional[StrictStr] = Field(default=None, description="The type or format of the file.", alias="fileType") + uploaded_date: Optional[datetime] = Field(default=None, description="The date and time when the file was uploaded. Specify an ISO 8601-formatted timestamp.", alias="uploadedDate") + __properties: ClassVar[List[str]] = ["documentId", "fileName", "fileSize", "fileType", "uploadedDate"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of FileMetadata 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 FileMetadata from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "documentId": obj.get("documentId"), + "fileName": obj.get("fileName"), + "fileSize": obj.get("fileSize"), + "fileType": obj.get("fileType"), + "uploadedDate": obj.get("uploadedDate") + }) + return _obj + + diff --git a/secure_access/models/filters_ntgs_object.py b/secure_access/models/filters_ntgs_object.py index ed5a147..8f120d5 100644 --- a/secure_access/models/filters_ntgs_object.py +++ b/secure_access/models/filters_ntgs_object.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/filters_regions_object.py b/secure_access/models/filters_regions_object.py index 604d6af..fd9116a 100644 --- a/secure_access/models/filters_regions_object.py +++ b/secure_access/models/filters_regions_object.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/financial_viability.py b/secure_access/models/financial_viability.py index f89a964..77db364 100644 --- a/secure_access/models/financial_viability.py +++ b/secure_access/models/financial_viability.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/firewall_application.py b/secure_access/models/firewall_application.py index 35ed407..b84e845 100644 --- a/secure_access/models/firewall_application.py +++ b/secure_access/models/firewall_application.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/firewall_rule_hitcount_summary.py b/secure_access/models/firewall_rule_hitcount_summary.py index 02c0c0d..0442e53 100644 --- a/secure_access/models/firewall_rule_hitcount_summary.py +++ b/secure_access/models/firewall_rule_hitcount_summary.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/forbidden.py b/secure_access/models/forbidden.py index 8688511..9cdb9c2 100644 --- a/secure_access/models/forbidden.py +++ b/secure_access/models/forbidden.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/forbidden_data.py b/secure_access/models/forbidden_data.py index 2975781..88013e4 100644 --- a/secure_access/models/forbidden_data.py +++ b/secure_access/models/forbidden_data.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/forbidden_error.py b/secure_access/models/forbidden_error.py index 10e21b4..44eb30b 100644 --- a/secure_access/models/forbidden_error.py +++ b/secure_access/models/forbidden_error.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/forbidden_status.py b/secure_access/models/forbidden_status.py index 15fa1be..ceb100b 100644 --- a/secure_access/models/forbidden_status.py +++ b/secure_access/models/forbidden_status.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/forward_dns_inner.py b/secure_access/models/forward_dns_inner.py index 5f41b76..58195f4 100644 --- a/secure_access/models/forward_dns_inner.py +++ b/secure_access/models/forward_dns_inner.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/fqdn_value_type.py b/secure_access/models/fqdn_value_type.py index 14e7f15..261445f 100644 --- a/secure_access/models/fqdn_value_type.py +++ b/secure_access/models/fqdn_value_type.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/get_activities200_response.py b/secure_access/models/get_activities200_response.py index 8a3e123..07a28e3 100644 --- a/secure_access/models/get_activities200_response.py +++ b/secure_access/models/get_activities200_response.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/get_activities200_response_data_inner.py b/secure_access/models/get_activities200_response_data_inner.py index 16a06f4..4f51a14 100644 --- a/secure_access/models/get_activities200_response_data_inner.py +++ b/secure_access/models/get_activities200_response_data_inner.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/get_activity_amp_retrospective200_response.py b/secure_access/models/get_activity_amp_retrospective200_response.py index 2f8aab5..fa8c032 100644 --- a/secure_access/models/get_activity_amp_retrospective200_response.py +++ b/secure_access/models/get_activity_amp_retrospective200_response.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/get_activity_decryption200_response.py b/secure_access/models/get_activity_decryption200_response.py index 3aa43a3..eb76f8d 100644 --- a/secure_access/models/get_activity_decryption200_response.py +++ b/secure_access/models/get_activity_decryption200_response.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/get_activity_dns200_response.py b/secure_access/models/get_activity_dns200_response.py index 7156da7..db89b9b 100644 --- a/secure_access/models/get_activity_dns200_response.py +++ b/secure_access/models/get_activity_dns200_response.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/get_activity_firewall200_response.py b/secure_access/models/get_activity_firewall200_response.py index 8843664..a55dc52 100644 --- a/secure_access/models/get_activity_firewall200_response.py +++ b/secure_access/models/get_activity_firewall200_response.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/get_activity_intrusion200_response.py b/secure_access/models/get_activity_intrusion200_response.py index 9c98eb8..87ec4bb 100644 --- a/secure_access/models/get_activity_intrusion200_response.py +++ b/secure_access/models/get_activity_intrusion200_response.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/get_activity_ip200_response.py b/secure_access/models/get_activity_ip200_response.py index f45bad8..7ebef24 100644 --- a/secure_access/models/get_activity_ip200_response.py +++ b/secure_access/models/get_activity_ip200_response.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/get_activity_proxy200_response.py b/secure_access/models/get_activity_proxy200_response.py index 7c2028a..4c1d0ce 100644 --- a/secure_access/models/get_activity_proxy200_response.py +++ b/secure_access/models/get_activity_proxy200_response.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/get_activity_ztna200_response.py b/secure_access/models/get_activity_ztna200_response.py index 7e26cd1..d2bdde3 100644 --- a/secure_access/models/get_activity_ztna200_response.py +++ b/secure_access/models/get_activity_ztna200_response.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/get_applications200_response.py b/secure_access/models/get_applications200_response.py index 1018c22..7fb3326 100644 --- a/secure_access/models/get_applications200_response.py +++ b/secure_access/models/get_applications200_response.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/get_bandwidth_by_hour200_response.py b/secure_access/models/get_bandwidth_by_hour200_response.py index 181e7ad..cd53cdc 100644 --- a/secure_access/models/get_bandwidth_by_hour200_response.py +++ b/secure_access/models/get_bandwidth_by_hour200_response.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/get_bgp_routes_asn200_response.py b/secure_access/models/get_bgp_routes_asn200_response.py index 53c1823..f578743 100644 --- a/secure_access/models/get_bgp_routes_asn200_response.py +++ b/secure_access/models/get_bgp_routes_asn200_response.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/get_bgp_routes_asn200_response_geo.py b/secure_access/models/get_bgp_routes_asn200_response_geo.py index d956122..c454e3e 100644 --- a/secure_access/models/get_bgp_routes_asn200_response_geo.py +++ b/secure_access/models/get_bgp_routes_asn200_response_geo.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/get_bgp_routes_ip200_response.py b/secure_access/models/get_bgp_routes_ip200_response.py index 9555274..2199326 100644 --- a/secure_access/models/get_bgp_routes_ip200_response.py +++ b/secure_access/models/get_bgp_routes_ip200_response.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/get_categories200_response.py b/secure_access/models/get_categories200_response.py index 6eaeaf7..80276d9 100644 --- a/secure_access/models/get_categories200_response.py +++ b/secure_access/models/get_categories200_response.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/get_credential_output_body.py b/secure_access/models/get_credential_output_body.py index dac0e72..2f46446 100644 --- a/secure_access/models/get_credential_output_body.py +++ b/secure_access/models/get_credential_output_body.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/get_deployment_status200_response.py b/secure_access/models/get_deployment_status200_response.py index 2aa097e..de3fdcd 100644 --- a/secure_access/models/get_deployment_status200_response.py +++ b/secure_access/models/get_deployment_status200_response.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/get_detailed_stats_for_app_connector200_response.py b/secure_access/models/get_detailed_stats_for_app_connector200_response.py index 3e79c45..ca59297 100644 --- a/secure_access/models/get_detailed_stats_for_app_connector200_response.py +++ b/secure_access/models/get_detailed_stats_for_app_connector200_response.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/get_detailed_stats_for_app_connector_groups200_response.py b/secure_access/models/get_detailed_stats_for_app_connector_groups200_response.py index 9fe595c..49521be 100644 --- a/secure_access/models/get_detailed_stats_for_app_connector_groups200_response.py +++ b/secure_access/models/get_detailed_stats_for_app_connector_groups200_response.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/get_domain_volume200_response.py b/secure_access/models/get_domain_volume200_response.py index c0e42f9..39b9148 100644 --- a/secure_access/models/get_domain_volume200_response.py +++ b/secure_access/models/get_domain_volume200_response.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/get_identities200_response.py b/secure_access/models/get_identities200_response.py index c281427..05dd4c1 100644 --- a/secure_access/models/get_identities200_response.py +++ b/secure_access/models/get_identities200_response.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/get_identitiesreportsidentities200_response.py b/secure_access/models/get_identitiesreportsidentities200_response.py index 24f89bf..237f308 100644 --- a/secure_access/models/get_identitiesreportsidentities200_response.py +++ b/secure_access/models/get_identitiesreportsidentities200_response.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) @@ -24,7 +24,7 @@ from pydantic import BaseModel, ConfigDict, Field from typing import Any, ClassVar, Dict, List -from secure_access.models.identity import Identity +from secure_access.models.reporting_identity import ReportingIdentity from typing import Optional, Set from typing_extensions import Self @@ -32,7 +32,7 @@ class GetIdentitiesreportsidentities200Response(BaseModel): """ GetIdentitiesreportsidentities200Response """ # noqa: E501 - data: List[Identity] + data: List[ReportingIdentity] meta: Dict[str, Any] = Field(description="The properties of the metadata.") __properties: ClassVar[List[str]] = ["data", "meta"] @@ -94,7 +94,7 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: return cls.model_validate(obj) _obj = cls.model_validate({ - "data": [Identity.from_dict(_item) for _item in obj["data"]] if obj.get("data") is not None else None, + "data": [ReportingIdentity.from_dict(_item) for _item in obj["data"]] if obj.get("data") is not None else None, "meta": obj.get("meta") }) return _obj diff --git a/secure_access/models/get_identity200_response.py b/secure_access/models/get_identity200_response.py index d47c00f..4951082 100644 --- a/secure_access/models/get_identity200_response.py +++ b/secure_access/models/get_identity200_response.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) @@ -24,7 +24,7 @@ from pydantic import BaseModel, ConfigDict, Field from typing import Any, ClassVar, Dict, List -from secure_access.models.identity import Identity +from secure_access.models.reporting_identity import ReportingIdentity from typing import Optional, Set from typing_extensions import Self @@ -32,7 +32,7 @@ class GetIdentity200Response(BaseModel): """ GetIdentity200Response """ # noqa: E501 - data: Identity + data: ReportingIdentity meta: Dict[str, Any] = Field(description="The properties of the metadata.") __properties: ClassVar[List[str]] = ["data", "meta"] @@ -90,7 +90,7 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: return cls.model_validate(obj) _obj = cls.model_validate({ - "data": Identity.from_dict(obj["data"]) if obj.get("data") is not None else None, + "data": ReportingIdentity.from_dict(obj["data"]) if obj.get("data") is not None else None, "meta": obj.get("meta") }) return _obj diff --git a/secure_access/models/get_identity_distribution200_response.py b/secure_access/models/get_identity_distribution200_response.py index 8a41a31..4420037 100644 --- a/secure_access/models/get_identity_distribution200_response.py +++ b/secure_access/models/get_identity_distribution200_response.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/get_identity_distribution_type200_response.py b/secure_access/models/get_identity_distribution_type200_response.py index 7182f9c..546b7f9 100644 --- a/secure_access/models/get_identity_distribution_type200_response.py +++ b/secure_access/models/get_identity_distribution_type200_response.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/get_integration_output_body.py b/secure_access/models/get_integration_output_body.py index 622d553..3c7f4b5 100644 --- a/secure_access/models/get_integration_output_body.py +++ b/secure_access/models/get_integration_output_body.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/get_ips_profiles200_response.py b/secure_access/models/get_ips_profiles200_response.py index 46c8f39..e727490 100644 --- a/secure_access/models/get_ips_profiles200_response.py +++ b/secure_access/models/get_ips_profiles200_response.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/get_links_name200_response.py b/secure_access/models/get_links_name200_response.py index a9297ca..1399b22 100644 --- a/secure_access/models/get_links_name200_response.py +++ b/secure_access/models/get_links_name200_response.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/get_links_name200_response_tb1_inner.py b/secure_access/models/get_links_name200_response_tb1_inner.py index d7493af..c781322 100644 --- a/secure_access/models/get_links_name200_response_tb1_inner.py +++ b/secure_access/models/get_links_name200_response_tb1_inner.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/get_network_object_groups200_response.py b/secure_access/models/get_network_object_groups200_response.py index f4f1b0b..e371d95 100644 --- a/secure_access/models/get_network_object_groups200_response.py +++ b/secure_access/models/get_network_object_groups200_response.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/get_overloaded_groups_count200_response.py b/secure_access/models/get_overloaded_groups_count200_response.py index a49a2af..41963d3 100644 --- a/secure_access/models/get_overloaded_groups_count200_response.py +++ b/secure_access/models/get_overloaded_groups_count200_response.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/get_private_resource_detailed_stats_identities200_response.py b/secure_access/models/get_private_resource_detailed_stats_identities200_response.py index d818d41..7b6fe25 100644 --- a/secure_access/models/get_private_resource_detailed_stats_identities200_response.py +++ b/secure_access/models/get_private_resource_detailed_stats_identities200_response.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/get_private_resource_detailed_stats_timerange200_response.py b/secure_access/models/get_private_resource_detailed_stats_timerange200_response.py index bce8652..ae6d168 100644 --- a/secure_access/models/get_private_resource_detailed_stats_timerange200_response.py +++ b/secure_access/models/get_private_resource_detailed_stats_timerange200_response.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/get_private_resource_stats200_response.py b/secure_access/models/get_private_resource_stats200_response.py index ddd4858..e65b8c3 100644 --- a/secure_access/models/get_private_resource_stats200_response.py +++ b/secure_access/models/get_private_resource_stats200_response.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/get_recommendations_name200_response.py b/secure_access/models/get_recommendations_name200_response.py index 9a5a83a..04f1e49 100644 --- a/secure_access/models/get_recommendations_name200_response.py +++ b/secure_access/models/get_recommendations_name200_response.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/get_remote_access_events200_response.py b/secure_access/models/get_remote_access_events200_response.py index 514bbc6..b838674 100644 --- a/secure_access/models/get_remote_access_events200_response.py +++ b/secure_access/models/get_remote_access_events200_response.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/get_requests_by_hour200_response.py b/secure_access/models/get_requests_by_hour200_response.py index d97a594..c6e2a13 100644 --- a/secure_access/models/get_requests_by_hour200_response.py +++ b/secure_access/models/get_requests_by_hour200_response.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/get_requests_by_hour_and_category200_response.py b/secure_access/models/get_requests_by_hour_and_category200_response.py index 08bbd2d..aa6fa72 100644 --- a/secure_access/models/get_requests_by_hour_and_category200_response.py +++ b/secure_access/models/get_requests_by_hour_and_category200_response.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/get_requests_by_timerange200_response.py b/secure_access/models/get_requests_by_timerange200_response.py index 3af76a8..6b2a6f9 100644 --- a/secure_access/models/get_requests_by_timerange200_response.py +++ b/secure_access/models/get_requests_by_timerange200_response.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/get_requests_summary_for_app_connector_groups200_response.py b/secure_access/models/get_requests_summary_for_app_connector_groups200_response.py index 9007d81..7b59bc0 100644 --- a/secure_access/models/get_requests_summary_for_app_connector_groups200_response.py +++ b/secure_access/models/get_requests_summary_for_app_connector_groups200_response.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/get_search200_response.py b/secure_access/models/get_search200_response.py index 1777fd7..4a7375d 100644 --- a/secure_access/models/get_search200_response.py +++ b/secure_access/models/get_search200_response.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/get_security_name200_response.py b/secure_access/models/get_security_name200_response.py index 15506da..6d4db7c 100644 --- a/secure_access/models/get_security_name200_response.py +++ b/secure_access/models/get_security_name200_response.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/get_service_object_groups200_response.py b/secure_access/models/get_service_object_groups200_response.py index f50e5df..3ff2ee5 100644 --- a/secure_access/models/get_service_object_groups200_response.py +++ b/secure_access/models/get_service_object_groups200_response.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/get_service_objects200_response.py b/secure_access/models/get_service_objects200_response.py index 5922900..6d45937 100644 --- a/secure_access/models/get_service_objects200_response.py +++ b/secure_access/models/get_service_objects200_response.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/get_signatures_in_signature_profile200_response.py b/secure_access/models/get_signatures_in_signature_profile200_response.py index 22751c6..2291714 100644 --- a/secure_access/models/get_signatures_in_signature_profile200_response.py +++ b/secure_access/models/get_signatures_in_signature_profile200_response.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/get_summaries_by_category200_response.py b/secure_access/models/get_summaries_by_category200_response.py index 3854412..a826815 100644 --- a/secure_access/models/get_summaries_by_category200_response.py +++ b/secure_access/models/get_summaries_by_category200_response.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/get_summaries_by_destination200_response.py b/secure_access/models/get_summaries_by_destination200_response.py index 7be61ba..7a3f5cd 100644 --- a/secure_access/models/get_summaries_by_destination200_response.py +++ b/secure_access/models/get_summaries_by_destination200_response.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/get_summaries_by_rule_firewall_hitcount200_response.py b/secure_access/models/get_summaries_by_rule_firewall_hitcount200_response.py index 6872043..0d9a8c4 100644 --- a/secure_access/models/get_summaries_by_rule_firewall_hitcount200_response.py +++ b/secure_access/models/get_summaries_by_rule_firewall_hitcount200_response.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/get_summaries_by_rule_hitcount200_response.py b/secure_access/models/get_summaries_by_rule_hitcount200_response.py index 806e982..88a7dae 100644 --- a/secure_access/models/get_summaries_by_rule_hitcount200_response.py +++ b/secure_access/models/get_summaries_by_rule_hitcount200_response.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/get_summaries_by_rule_intrusion200_response.py b/secure_access/models/get_summaries_by_rule_intrusion200_response.py index 975d1f3..5399696 100644 --- a/secure_access/models/get_summaries_by_rule_intrusion200_response.py +++ b/secure_access/models/get_summaries_by_rule_intrusion200_response.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/get_summary200_response.py b/secure_access/models/get_summary200_response.py index 527a2a4..592f1d5 100644 --- a/secure_access/models/get_summary200_response.py +++ b/secure_access/models/get_summary200_response.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/get_threat_name200_response.py b/secure_access/models/get_threat_name200_response.py index 76a2412..99f1577 100644 --- a/secure_access/models/get_threat_name200_response.py +++ b/secure_access/models/get_threat_name200_response.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/get_threat_names200_response.py b/secure_access/models/get_threat_names200_response.py index a5cc8ac..0fbc56f 100644 --- a/secure_access/models/get_threat_names200_response.py +++ b/secure_access/models/get_threat_names200_response.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/get_threat_type200_response.py b/secure_access/models/get_threat_type200_response.py index 78341e7..7c8d1e8 100644 --- a/secure_access/models/get_threat_type200_response.py +++ b/secure_access/models/get_threat_type200_response.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/get_threat_types200_response.py b/secure_access/models/get_threat_types200_response.py index 4686e19..c092116 100644 --- a/secure_access/models/get_threat_types200_response.py +++ b/secure_access/models/get_threat_types200_response.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/get_top_categories200_response.py b/secure_access/models/get_top_categories200_response.py index 05e6f63..7ec3685 100644 --- a/secure_access/models/get_top_categories200_response.py +++ b/secure_access/models/get_top_categories200_response.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/get_top_destinations200_response.py b/secure_access/models/get_top_destinations200_response.py index fc5dddf..de5e4a5 100644 --- a/secure_access/models/get_top_destinations200_response.py +++ b/secure_access/models/get_top_destinations200_response.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/get_top_dns_query_types200_response.py b/secure_access/models/get_top_dns_query_types200_response.py index 1492841..16b337e 100644 --- a/secure_access/models/get_top_dns_query_types200_response.py +++ b/secure_access/models/get_top_dns_query_types200_response.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/get_top_event_types200_response.py b/secure_access/models/get_top_event_types200_response.py index 2c60b6d..e4921a5 100644 --- a/secure_access/models/get_top_event_types200_response.py +++ b/secure_access/models/get_top_event_types200_response.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/get_top_files_proxy200_response.py b/secure_access/models/get_top_files_proxy200_response.py index f7e026c..f68c0bd 100644 --- a/secure_access/models/get_top_files_proxy200_response.py +++ b/secure_access/models/get_top_files_proxy200_response.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/get_top_identities200_response.py b/secure_access/models/get_top_identities200_response.py index da343bd..13f71b6 100644 --- a/secure_access/models/get_top_identities200_response.py +++ b/secure_access/models/get_top_identities200_response.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/get_top_ips200_response.py b/secure_access/models/get_top_ips200_response.py index 76c3562..fbce728 100644 --- a/secure_access/models/get_top_ips200_response.py +++ b/secure_access/models/get_top_ips200_response.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/get_top_resources200_response.py b/secure_access/models/get_top_resources200_response.py index fa07996..127f4d8 100644 --- a/secure_access/models/get_top_resources200_response.py +++ b/secure_access/models/get_top_resources200_response.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/get_top_threat_types200_response.py b/secure_access/models/get_top_threat_types200_response.py index b2e3bc2..d5bfff5 100644 --- a/secure_access/models/get_top_threat_types200_response.py +++ b/secure_access/models/get_top_threat_types200_response.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/get_top_threats200_response.py b/secure_access/models/get_top_threats200_response.py index 262df14..5c6dee5 100644 --- a/secure_access/models/get_top_threats200_response.py +++ b/secure_access/models/get_top_threats200_response.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/get_top_urls200_response.py b/secure_access/models/get_top_urls200_response.py index 997862d..9747709 100644 --- a/secure_access/models/get_top_urls200_response.py +++ b/secure_access/models/get_top_urls200_response.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/get_total_requests_for_app_connector200_response.py b/secure_access/models/get_total_requests_for_app_connector200_response.py index c6d67ed..87797e9 100644 --- a/secure_access/models/get_total_requests_for_app_connector200_response.py +++ b/secure_access/models/get_total_requests_for_app_connector200_response.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/get_total_requests_for_app_connector_group200_response.py b/secure_access/models/get_total_requests_for_app_connector_group200_response.py index 48f2f8e..768ae4c 100644 --- a/secure_access/models/get_total_requests_for_app_connector_group200_response.py +++ b/secure_access/models/get_total_requests_for_app_connector_group200_response.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/get_tunnel_events200_response.py b/secure_access/models/get_tunnel_events200_response.py new file mode 100644 index 0000000..0d2d91b --- /dev/null +++ b/secure_access/models/get_tunnel_events200_response.py @@ -0,0 +1,102 @@ +# Copyright 2026 Cisco Systems, Inc. and its affiliates +# +# SPDX-License-Identifier: Apache-2.0 + +# coding: utf-8 + +""" + Cisco Secure Access API + + Unified OpenAPI spec for Cisco Secure Access APIs. + + The version of the OpenAPI document: v2.0.202602030705 + Contact: devnet@cisco.com + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, Field +from typing import Any, ClassVar, Dict, List +from secure_access.models.network_tunnel_event import NetworkTunnelEvent +from typing import Optional, Set +from typing_extensions import Self + +class GetTunnelEvents200Response(BaseModel): + """ + The properties of the events for the network tunnels deployed in the organization. + """ # noqa: E501 + data: List[NetworkTunnelEvent] = Field(description="The list of events for the network tunnels.") + meta: Dict[str, Any] = Field(description="The properties of the metadata.") + __properties: ClassVar[List[str]] = ["data", "meta"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of GetTunnelEvents200Response from a JSON string""" + return cls.from_dict(json.loads(json_str)) + + def to_dict(self) -> Dict[str, Any]: + """Return the dictionary representation of the model using alias. + + This has the following differences from calling pydantic's + `self.model_dump(by_alias=True)`: + + * `None` is only added to the output dict for nullable fields that + were set at model initialization. Other fields with value `None` + are ignored. + """ + excluded_fields: Set[str] = set([ + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + # override the default output from pydantic by calling `to_dict()` of each item in data (list) + _items = [] + if self.data: + for _item_data in self.data: + if _item_data: + _items.append(_item_data.to_dict()) + _dict['data'] = _items + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of GetTunnelEvents200Response from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "data": [NetworkTunnelEvent.from_dict(_item) for _item in obj["data"]] if obj.get("data") is not None else None, + "meta": obj.get("meta") + }) + return _obj + + diff --git a/secure_access/models/get_unique_resources200_response.py b/secure_access/models/get_unique_resources200_response.py index 840a469..72a3e4c 100644 --- a/secure_access/models/get_unique_resources200_response.py +++ b/secure_access/models/get_unique_resources200_response.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/get_usage_metrics200_response.py b/secure_access/models/get_usage_metrics200_response.py index b593dd4..cf04c65 100644 --- a/secure_access/models/get_usage_metrics200_response.py +++ b/secure_access/models/get_usage_metrics200_response.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/get_usage_metrics200_response_body.py b/secure_access/models/get_usage_metrics200_response_body.py index d061629..b36e53a 100644 --- a/secure_access/models/get_usage_metrics200_response_body.py +++ b/secure_access/models/get_usage_metrics200_response_body.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/get_value_output_body.py b/secure_access/models/get_value_output_body.py index e47023c..9825922 100644 --- a/secure_access/models/get_value_output_body.py +++ b/secure_access/models/get_value_output_body.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/get_whois_email200_response.py b/secure_access/models/get_whois_email200_response.py index be75794..5c66241 100644 --- a/secure_access/models/get_whois_email200_response.py +++ b/secure_access/models/get_whois_email200_response.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/get_whois_nameserver200_response.py b/secure_access/models/get_whois_nameserver200_response.py index 5dae14c..97ac1a7 100644 --- a/secure_access/models/get_whois_nameserver200_response.py +++ b/secure_access/models/get_whois_nameserver200_response.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/get_whois_nameservers200_response.py b/secure_access/models/get_whois_nameservers200_response.py index 1ddfe95..a820e17 100644 --- a/secure_access/models/get_whois_nameservers200_response.py +++ b/secure_access/models/get_whois_nameservers200_response.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/get_whois_search200_response.py b/secure_access/models/get_whois_search200_response.py index 0540255..7eee263 100644 --- a/secure_access/models/get_whois_search200_response.py +++ b/secure_access/models/get_whois_search200_response.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/grid.py b/secure_access/models/grid.py index 06039a6..f66bc42 100644 --- a/secure_access/models/grid.py +++ b/secure_access/models/grid.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/http_error.py b/secure_access/models/http_error.py index 5841b86..6a47af2 100644 --- a/secure_access/models/http_error.py +++ b/secure_access/models/http_error.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/hub_state.py b/secure_access/models/hub_state.py index 8452729..ae6a465 100644 --- a/secure_access/models/hub_state.py +++ b/secure_access/models/hub_state.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) @@ -32,15 +32,15 @@ class HubState(BaseModel): """ The properties of a Hub for the Network Tunnel Group. """ # noqa: E501 - status: StrictStr = Field(description="The high-level status of the Hub: * UP - The hub is active. * DOWN - The hub is inactive. * UNKNOWN - The current status is unknown and pending updated information. ") + status: StrictStr = Field(description="The high-level status of the Hub: * UP - The hub is active. * DOWN - The hub is inactive. ") time: datetime = Field(description="The date and time (UTC time, with milliseconds) when the state event record was generated.") __properties: ClassVar[List[str]] = ["status", "time"] @field_validator('status') def status_validate_enum(cls, value): """Validates the enum""" - if value not in set(['UP', 'DOWN', 'UNKNOWN']): - raise ValueError("must be one of enum values ('UP', 'DOWN', 'UNKNOWN')") + if value not in set(['UP', 'DOWN']): + raise ValueError("must be one of enum values ('UP', 'DOWN')") return value model_config = ConfigDict( diff --git a/secure_access/models/hubs_inner.py b/secure_access/models/hubs_inner.py index 5a64631..3b62ccc 100644 --- a/secure_access/models/hubs_inner.py +++ b/secure_access/models/hubs_inner.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) @@ -25,7 +25,7 @@ from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictInt, StrictStr from typing import Any, ClassVar, Dict, List, Optional from secure_access.models.datacenter_hub import DatacenterHub -from secure_access.models.hub_status import HubStatus +from secure_access.models.hub_state import HubState from typing import Optional, Set from typing_extensions import Self @@ -37,7 +37,7 @@ class HubsInner(BaseModel): datacenter: Optional[DatacenterHub] = None id: Optional[StrictInt] = Field(default=None, description="The ID of the Hub.") is_primary: Optional[StrictBool] = Field(default=None, description="Specifies whether the Hub is a primary data center.", alias="isPrimary") - status: Optional[HubStatus] = None + status: Optional[HubState] = None tunnels_count: Optional[StrictInt] = Field(default=None, description="The number of tunnels in the hub.", alias="tunnelsCount") __properties: ClassVar[List[str]] = ["authId", "datacenter", "id", "isPrimary", "status", "tunnelsCount"] @@ -110,7 +110,7 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: "datacenter": DatacenterHub.from_dict(obj["datacenter"]) if obj.get("datacenter") is not None else None, "id": obj.get("id"), "isPrimary": obj.get("isPrimary"), - "status": HubStatus.from_dict(obj["status"]) if obj.get("status") is not None else None, + "status": HubState.from_dict(obj["status"]) if obj.get("status") is not None else None, "tunnelsCount": obj.get("tunnelsCount") }) return _obj diff --git a/secure_access/models/hubs_with_ip_inner.py b/secure_access/models/hubs_with_ip_inner.py index c4defb1..e2ec436 100644 --- a/secure_access/models/hubs_with_ip_inner.py +++ b/secure_access/models/hubs_with_ip_inner.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/hubs_with_state_inner.py b/secure_access/models/hubs_with_state_inner.py index 9011d4d..833e426 100644 --- a/secure_access/models/hubs_with_state_inner.py +++ b/secure_access/models/hubs_with_state_inner.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/id_name_ref.py b/secure_access/models/id_name_ref.py new file mode 100644 index 0000000..00532bd --- /dev/null +++ b/secure_access/models/id_name_ref.py @@ -0,0 +1,95 @@ +# Copyright 2026 Cisco Systems, Inc. and its affiliates +# +# SPDX-License-Identifier: Apache-2.0 + +# coding: utf-8 + +""" + Cisco Secure Access API + + Unified OpenAPI spec for Cisco Secure Access APIs. + + The version of the OpenAPI document: v2.0.202602030705 + Contact: devnet@cisco.com + 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 uuid import UUID +from typing import Optional, Set +from typing_extensions import Self + +class IdNameRef(BaseModel): + """ + The ID and name of the Reference object. + """ # noqa: E501 + id: UUID = Field(description="The unique identifier of the Reference object.") + name: Optional[StrictStr] = Field(default=None, description="The name of the Reference object.") + __properties: ClassVar[List[str]] = ["id", "name"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of IdNameRef 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 IdNameRef from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "id": obj.get("id"), + "name": obj.get("name") + }) + return _obj + + diff --git a/secure_access/models/identities_get_response_inner.py b/secure_access/models/identities_get_response_inner.py index f4e7ca5..3420f90 100644 --- a/secure_access/models/identities_get_response_inner.py +++ b/secure_access/models/identities_get_response_inner.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/identities_registration500_error.py b/secure_access/models/identities_registration500_error.py index 129d83a..5ebd358 100644 --- a/secure_access/models/identities_registration500_error.py +++ b/secure_access/models/identities_registration500_error.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/identities_registration_status.py b/secure_access/models/identities_registration_status.py index eff906a..6ae3997 100644 --- a/secure_access/models/identities_registration_status.py +++ b/secure_access/models/identities_registration_status.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/identity.py b/secure_access/models/identity.py index d016fd1..cdd6cbe 100644 --- a/secure_access/models/identity.py +++ b/secure_access/models/identity.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) @@ -22,21 +22,28 @@ import re # noqa: F401 import json -from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictFloat, StrictInt, StrictStr -from typing import Any, ClassVar, Dict, List, Union -from secure_access.models.identity_type import IdentityType +from pydantic import BaseModel, ConfigDict, Field, StrictInt, field_validator +from typing import Any, ClassVar, Dict, List, Optional from typing import Optional, Set from typing_extensions import Self class Identity(BaseModel): """ - The information about the identity. + The properties of the identity or end user that requested the events. """ # noqa: E501 - deleted: StrictBool = Field(description="Indicates whether the identity was deleted.") - id: Union[StrictFloat, StrictInt] = Field(description="The ID of the identity.") - label: StrictStr = Field(description="The descriptive label for the identity.") - type: IdentityType - __properties: ClassVar[List[str]] = ["deleted", "id", "label", "type"] + origin_id: Optional[StrictInt] = Field(default=None, description="The unique identifier of the identity.", alias="originId") + origin_type_id: Optional[StrictInt] = Field(default=None, description="The numeric identifier of the identity for either `directory_user` or `directory_group`.", alias="originTypeId") + __properties: ClassVar[List[str]] = ["originId", "originTypeId"] + + @field_validator('origin_type_id') + def origin_type_id_validate_enum(cls, value): + """Validates the enum""" + if value is None: + return value + + if value not in set([7]): + raise ValueError("must be one of enum values (7)") + return value model_config = ConfigDict( populate_by_name=True, @@ -77,9 +84,6 @@ def to_dict(self) -> Dict[str, Any]: exclude=excluded_fields, exclude_none=True, ) - # override the default output from pydantic by calling `to_dict()` of type - if self.type: - _dict['type'] = self.type.to_dict() return _dict @classmethod @@ -92,10 +96,8 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: return cls.model_validate(obj) _obj = cls.model_validate({ - "deleted": obj.get("deleted"), - "id": obj.get("id"), - "label": obj.get("label"), - "type": IdentityType.from_dict(obj["type"]) if obj.get("type") is not None else None + "originId": obj.get("originId"), + "originTypeId": obj.get("originTypeId") }) return _obj diff --git a/secure_access/models/identity_distribution.py b/secure_access/models/identity_distribution.py index 1c99274..e88e86d 100644 --- a/secure_access/models/identity_distribution.py +++ b/secure_access/models/identity_distribution.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/identity_endpoints_get_response.py b/secure_access/models/identity_endpoints_get_response.py index b730870..e952ce4 100644 --- a/secure_access/models/identity_endpoints_get_response.py +++ b/secure_access/models/identity_endpoints_get_response.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/identity_type.py b/secure_access/models/identity_type.py index feb6878..2205ec5 100644 --- a/secure_access/models/identity_type.py +++ b/secure_access/models/identity_type.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/identity_with_stats.py b/secure_access/models/identity_with_stats.py index 2ceb430..b90ad9b 100644 --- a/secure_access/models/identity_with_stats.py +++ b/secure_access/models/identity_with_stats.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/idm_accuracy.py b/secure_access/models/idm_accuracy.py new file mode 100644 index 0000000..6a46ac0 --- /dev/null +++ b/secure_access/models/idm_accuracy.py @@ -0,0 +1,43 @@ +# Copyright 2026 Cisco Systems, Inc. and its affiliates +# +# SPDX-License-Identifier: Apache-2.0 + +# coding: utf-8 + +""" + Cisco Secure Access API + + Unified OpenAPI spec for Cisco Secure Access APIs. + + The version of the OpenAPI document: v2.0.202602030705 + Contact: devnet@cisco.com + 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 IdmAccuracy(str, Enum): + """ + The accuracy level for the IDM identifier. + """ + + """ + allowed enum values + """ + LOW = 'LOW' + MEDIUM = 'MEDIUM' + HIGH = 'HIGH' + + @classmethod + def from_json(cls, json_str: str) -> Self: + """Create an instance of IdmAccuracy from a JSON string""" + return cls(json.loads(json_str)) + + diff --git a/secure_access/models/idm_data_identifier_list_item.py b/secure_access/models/idm_data_identifier_list_item.py new file mode 100644 index 0000000..f436754 --- /dev/null +++ b/secure_access/models/idm_data_identifier_list_item.py @@ -0,0 +1,96 @@ +# Copyright 2026 Cisco Systems, Inc. and its affiliates +# +# SPDX-License-Identifier: Apache-2.0 + +# coding: utf-8 + +""" + Cisco Secure Access API + + Unified OpenAPI spec for Cisco Secure Access APIs. + + The version of the OpenAPI document: v2.0.202602030705 + Contact: devnet@cisco.com + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, Field +from typing import Any, ClassVar, Dict, List, Optional +from typing_extensions import Annotated +from uuid import UUID +from typing import Optional, Set +from typing_extensions import Self + +class IDMDataIdentifierListItem(BaseModel): + """ + The properties of the Indexed Document Match (IDM) data identifier. + """ # noqa: E501 + id: Optional[UUID] = Field(default=None, description="Unique identifier of the IDM data identifier") + name: Optional[Annotated[str, Field(strict=True, max_length=255)]] = Field(default=None, description="The name of the Indexed Document Match (IDM) data identifier.") + __properties: ClassVar[List[str]] = ["id", "name"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of IDMDataIdentifierListItem 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 IDMDataIdentifierListItem from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "id": obj.get("id"), + "name": obj.get("name") + }) + return _obj + + diff --git a/secure_access/models/idm_data_identifier_response.py b/secure_access/models/idm_data_identifier_response.py new file mode 100644 index 0000000..f6fcbc1 --- /dev/null +++ b/secure_access/models/idm_data_identifier_response.py @@ -0,0 +1,121 @@ +# Copyright 2026 Cisco Systems, Inc. and its affiliates +# +# SPDX-License-Identifier: Apache-2.0 + +# coding: utf-8 + +""" + Cisco Secure Access API + + Unified OpenAPI spec for Cisco Secure Access APIs. + + The version of the OpenAPI document: v2.0.202602030705 + Contact: devnet@cisco.com + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictInt +from typing import Any, ClassVar, Dict, List, Optional +from typing_extensions import Annotated +from uuid import UUID +from secure_access.models.file_metadata import FileMetadata +from secure_access.models.idm_accuracy import IdmAccuracy +from typing import Optional, Set +from typing_extensions import Self + +class IDMDataIdentifierResponse(BaseModel): + """ + The properties of the Indexed Document Match (IDM) data identifier. + """ # noqa: E501 + creation_time_idm_identifier: Optional[StrictInt] = Field(default=None, description="The date and time represented in seconds since the UNIX Epoch when the system created the IDM data identifier.", alias="creationTimeIDMIdentifier") + description: Annotated[str, Field(strict=True, max_length=255)] = Field(description="The description of the IDM data identifier.") + documents: Optional[List[FileMetadata]] = Field(default=None, description="The collection of file metadata documents associated with the IDM data identifier.") + id: UUID = Field(description="Unique identifier of the IDM data identifier") + idm_accuracy: Optional[IdmAccuracy] = Field(default=None, alias="idmAccuracy") + is_active: StrictBool = Field(description="Indicates whether the IDM data identifier is active.", alias="isActive") + modification_time_idm_identifier: Optional[StrictInt] = Field(default=None, description="The date and time represented in seconds since the UNIX Epoch when the system updated the IDM data identifier.", alias="modificationTimeIDMIdentifier") + name: Annotated[str, Field(strict=True, max_length=255)] = Field(description="The name of the Indexed Document Match (IDM) data identifier.") + number_of_indexed_files: StrictInt = Field(description="The number of indexed files associated with the IDM data identifier.", alias="numberOfIndexedFiles") + uploaded_idm_size: StrictInt = Field(description="The size in bytes of the uploaded IDM data identifier.", alias="uploadedIdmSize") + __properties: ClassVar[List[str]] = ["creationTimeIDMIdentifier", "description", "documents", "id", "idmAccuracy", "isActive", "modificationTimeIDMIdentifier", "name", "numberOfIndexedFiles", "uploadedIdmSize"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of IDMDataIdentifierResponse 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 documents (list) + _items = [] + if self.documents: + for _item_documents in self.documents: + if _item_documents: + _items.append(_item_documents.to_dict()) + _dict['documents'] = _items + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of IDMDataIdentifierResponse from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "creationTimeIDMIdentifier": obj.get("creationTimeIDMIdentifier"), + "description": obj.get("description"), + "documents": [FileMetadata.from_dict(_item) for _item in obj["documents"]] if obj.get("documents") is not None else None, + "id": obj.get("id"), + "idmAccuracy": obj.get("idmAccuracy"), + "isActive": obj.get("isActive"), + "modificationTimeIDMIdentifier": obj.get("modificationTimeIDMIdentifier"), + "name": obj.get("name"), + "numberOfIndexedFiles": obj.get("numberOfIndexedFiles"), + "uploadedIdmSize": obj.get("uploadedIdmSize") + }) + return _obj + + diff --git a/secure_access/models/idm_identifier_create_request.py b/secure_access/models/idm_identifier_create_request.py new file mode 100644 index 0000000..a702c33 --- /dev/null +++ b/secure_access/models/idm_identifier_create_request.py @@ -0,0 +1,98 @@ +# Copyright 2026 Cisco Systems, Inc. and its affiliates +# +# SPDX-License-Identifier: Apache-2.0 + +# coding: utf-8 + +""" + Cisco Secure Access API + + Unified OpenAPI spec for Cisco Secure Access APIs. + + The version of the OpenAPI document: v2.0.202602030705 + Contact: devnet@cisco.com + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, Field +from typing import Any, ClassVar, Dict, List, Optional +from typing_extensions import Annotated +from secure_access.models.idm_accuracy import IdmAccuracy +from typing import Optional, Set +from typing_extensions import Self + +class IDMIdentifierCreateRequest(BaseModel): + """ + The properties used to create an Indexed Document Match (IDM) data identifier. + """ # noqa: E501 + description: Optional[Annotated[str, Field(strict=True, max_length=255)]] = Field(default=None, description="The description of the IDM data identifier.") + idm_accuracy: IdmAccuracy = Field(alias="idmAccuracy") + name: Annotated[str, Field(strict=True, max_length=255)] = Field(description="The name of the Indexed Document Match (IDM) data identifier.") + __properties: ClassVar[List[str]] = ["description", "idmAccuracy", "name"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of IDMIdentifierCreateRequest 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 IDMIdentifierCreateRequest from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "description": obj.get("description"), + "idmAccuracy": obj.get("idmAccuracy"), + "name": obj.get("name") + }) + return _obj + + diff --git a/secure_access/models/idm_identifier_update_request.py b/secure_access/models/idm_identifier_update_request.py new file mode 100644 index 0000000..a3bb1e6 --- /dev/null +++ b/secure_access/models/idm_identifier_update_request.py @@ -0,0 +1,98 @@ +# Copyright 2026 Cisco Systems, Inc. and its affiliates +# +# SPDX-License-Identifier: Apache-2.0 + +# coding: utf-8 + +""" + Cisco Secure Access API + + Unified OpenAPI spec for Cisco Secure Access APIs. + + The version of the OpenAPI document: v2.0.202602030705 + Contact: devnet@cisco.com + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, Field +from typing import Any, ClassVar, Dict, List, Optional +from typing_extensions import Annotated +from secure_access.models.idm_accuracy import IdmAccuracy +from typing import Optional, Set +from typing_extensions import Self + +class IDMIdentifierUpdateRequest(BaseModel): + """ + The properties used to update an Indexed Document Match (IDM) data identifier. + """ # noqa: E501 + description: Optional[Annotated[str, Field(strict=True, max_length=255)]] = Field(default=None, description="The description of the IDM data identifier.") + idm_accuracy: Optional[IdmAccuracy] = Field(default=None, alias="idmAccuracy") + name: Optional[Annotated[str, Field(strict=True, max_length=255)]] = Field(default=None, description="The name of the Indexed Document Match (IDM) data identifier.") + __properties: ClassVar[List[str]] = ["description", "idmAccuracy", "name"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of IDMIdentifierUpdateRequest 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 IDMIdentifierUpdateRequest from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "description": obj.get("description"), + "idmAccuracy": obj.get("idmAccuracy"), + "name": obj.get("name") + }) + return _obj + + diff --git a/secure_access/models/integration.py b/secure_access/models/integration.py index c132bd5..8ce9b36 100644 --- a/secure_access/models/integration.py +++ b/secure_access/models/integration.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) @@ -28,9 +28,10 @@ from typing_extensions import Annotated from secure_access.models.credential import Credential from secure_access.models.integration_status import IntegrationStatus -from secure_access.models.integration_type import IntegrationType from secure_access.models.intune_config import IntuneConfig from secure_access.models.jamf_config import JamfConfig +from secure_access.models.security_events_config import SecurityEventsConfig +from secure_access.models.third_party_integrations_integration_type import ThirdPartyIntegrationsIntegrationType from secure_access.models.webhook_config import WebhookConfig from typing import Optional, Set from typing_extensions import Self @@ -48,12 +49,13 @@ class Integration(BaseModel): jamf_config: Optional[JamfConfig] = Field(default=None, alias="jamfConfig") name: Annotated[str, Field(min_length=1, strict=True, max_length=250)] = Field(description="The name of the integration.") region: Optional[StrictStr] = Field(default=None, description="The region where the system deployed the integration.") + security_events_config: Optional[SecurityEventsConfig] = Field(default=None, alias="securityEventsConfig") status: IntegrationStatus tags: Optional[List[StrictStr]] = Field(default=None, description="The list of tags associated with the integration.") - type: IntegrationType + type: ThirdPartyIntegrationsIntegrationType updated_from_ip: Optional[StrictStr] = Field(default=None, description="The IP address of the device or network where the integration was last updated.", alias="updatedFromIp") webhook_config: Optional[WebhookConfig] = Field(default=None, alias="webhookConfig") - __properties: ClassVar[List[str]] = ["createdAt", "createdBy", "createdFromIp", "credentials", "href", "intuneConfig", "jamfConfig", "name", "region", "status", "tags", "type", "updatedFromIp", "webhookConfig"] + __properties: ClassVar[List[str]] = ["createdAt", "createdBy", "createdFromIp", "credentials", "href", "intuneConfig", "jamfConfig", "name", "region", "securityEventsConfig", "status", "tags", "type", "updatedFromIp", "webhookConfig"] model_config = ConfigDict( populate_by_name=True, @@ -107,6 +109,9 @@ def to_dict(self) -> Dict[str, Any]: # override the default output from pydantic by calling `to_dict()` of jamf_config if self.jamf_config: _dict['jamfConfig'] = self.jamf_config.to_dict() + # override the default output from pydantic by calling `to_dict()` of security_events_config + if self.security_events_config: + _dict['securityEventsConfig'] = self.security_events_config.to_dict() # override the default output from pydantic by calling `to_dict()` of webhook_config if self.webhook_config: _dict['webhookConfig'] = self.webhook_config.to_dict() @@ -131,6 +136,7 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: "jamfConfig": JamfConfig.from_dict(obj["jamfConfig"]) if obj.get("jamfConfig") is not None else None, "name": obj.get("name"), "region": obj.get("region"), + "securityEventsConfig": SecurityEventsConfig.from_dict(obj["securityEventsConfig"]) if obj.get("securityEventsConfig") is not None else None, "status": obj.get("status"), "tags": obj.get("tags"), "type": obj.get("type"), diff --git a/secure_access/models/integration_status.py b/secure_access/models/integration_status.py index 86fa0c9..9c6b1a8 100644 --- a/secure_access/models/integration_status.py +++ b/secure_access/models/integration_status.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/integration_type.py b/secure_access/models/integration_type.py index ca8d7dc..8607661 100644 --- a/secure_access/models/integration_type.py +++ b/secure_access/models/integration_type.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) @@ -18,27 +18,79 @@ from __future__ import annotations +import pprint +import re # noqa: F401 import json -from enum import Enum -from typing_extensions import Self +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 IntegrationType(str, Enum): - """ - The type of the integration. +class IntegrationType(BaseModel): """ + The properties of the integration type. + """ # noqa: E501 + description: StrictStr = Field(description="The description of the integration type.") + id: StrictStr = Field(description="The ID of the integration.") + name: StrictStr = Field(description="The name of the integration type.") + __properties: ClassVar[List[str]] = ["description", "id", "name"] - """ - allowed enum values - """ - CHROME_MINUS_ENTERPRISE_DOT_V1 = 'chrome-enterprise.v1' - WEBHOOK_DOT_V1 = 'webhook.v1' - JAMF_DOT_V1 = 'jamf.v1' - INTUNE_DOT_V1 = 'intune.v1' + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) @classmethod - def from_json(cls, json_str: str) -> Self: + def from_json(cls, json_str: str) -> Optional[Self]: """Create an instance of IntegrationType from a JSON string""" - return cls(json.loads(json_str)) + 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 IntegrationType from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "description": obj.get("description"), + "id": obj.get("id"), + "name": obj.get("name") + }) + return _obj diff --git a/secure_access/models/internal_domain_object.py b/secure_access/models/internal_domain_object.py index d7be418..13f782e 100644 --- a/secure_access/models/internal_domain_object.py +++ b/secure_access/models/internal_domain_object.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/internal_network_object.py b/secure_access/models/internal_network_object.py index fea0e96..85633df 100644 --- a/secure_access/models/internal_network_object.py +++ b/secure_access/models/internal_network_object.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/internal_server_error.py b/secure_access/models/internal_server_error.py index 8067525..9d22469 100644 --- a/secure_access/models/internal_server_error.py +++ b/secure_access/models/internal_server_error.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/intune_config.py b/secure_access/models/intune_config.py index 58aa82b..9b006a8 100644 --- a/secure_access/models/intune_config.py +++ b/secure_access/models/intune_config.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/intune_config_input.py b/secure_access/models/intune_config_input.py index 216d20a..c56dde8 100644 --- a/secure_access/models/intune_config_input.py +++ b/secure_access/models/intune_config_input.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/invalid_request_error.py b/secure_access/models/invalid_request_error.py index 8dd5203..9fd648c 100644 --- a/secure_access/models/invalid_request_error.py +++ b/secure_access/models/invalid_request_error.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/investigate400_error.py b/secure_access/models/investigate400_error.py index 0f4a4ce..21ae4b6 100644 --- a/secure_access/models/investigate400_error.py +++ b/secure_access/models/investigate400_error.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/investigate401_error.py b/secure_access/models/investigate401_error.py index 6eb8aa8..a749db4 100644 --- a/secure_access/models/investigate401_error.py +++ b/secure_access/models/investigate401_error.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/investigate403_error.py b/secure_access/models/investigate403_error.py index 09944f4..6881adf 100644 --- a/secure_access/models/investigate403_error.py +++ b/secure_access/models/investigate403_error.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/investigate404_error.py b/secure_access/models/investigate404_error.py index 550cad3..5e488d5 100644 --- a/secure_access/models/investigate404_error.py +++ b/secure_access/models/investigate404_error.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/investigate500_error.py b/secure_access/models/investigate500_error.py index fa2c9ac..2bb8301 100644 --- a/secure_access/models/investigate500_error.py +++ b/secure_access/models/investigate500_error.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/ips_profiles_bad_request.py b/secure_access/models/ips_profiles_bad_request.py index e436cbc..a002c8b 100644 --- a/secure_access/models/ips_profiles_bad_request.py +++ b/secure_access/models/ips_profiles_bad_request.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/ips_profiles_forbidden.py b/secure_access/models/ips_profiles_forbidden.py index a5aaf23..cd528fa 100644 --- a/secure_access/models/ips_profiles_forbidden.py +++ b/secure_access/models/ips_profiles_forbidden.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/ips_profiles_meta.py b/secure_access/models/ips_profiles_meta.py index 22f21a1..9335c3a 100644 --- a/secure_access/models/ips_profiles_meta.py +++ b/secure_access/models/ips_profiles_meta.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/ips_profiles_not_found.py b/secure_access/models/ips_profiles_not_found.py index b10ce82..69006b0 100644 --- a/secure_access/models/ips_profiles_not_found.py +++ b/secure_access/models/ips_profiles_not_found.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/ips_profiles_server_error.py b/secure_access/models/ips_profiles_server_error.py index b0b18cd..ed59941 100644 --- a/secure_access/models/ips_profiles_server_error.py +++ b/secure_access/models/ips_profiles_server_error.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/ips_profiles_unauthorized.py b/secure_access/models/ips_profiles_unauthorized.py index f72f909..c1ff87e 100644 --- a/secure_access/models/ips_profiles_unauthorized.py +++ b/secure_access/models/ips_profiles_unauthorized.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/ips_signature.py b/secure_access/models/ips_signature.py index 992f7a2..ee2696e 100644 --- a/secure_access/models/ips_signature.py +++ b/secure_access/models/ips_signature.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/ips_signature_profile.py b/secure_access/models/ips_signature_profile.py index 4e725ef..34fcb88 100644 --- a/secure_access/models/ips_signature_profile.py +++ b/secure_access/models/ips_signature_profile.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/isolated.py b/secure_access/models/isolated.py index ad12805..5570dba 100644 --- a/secure_access/models/isolated.py +++ b/secure_access/models/isolated.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/jamf_config.py b/secure_access/models/jamf_config.py index d34f5a4..5418ad5 100644 --- a/secure_access/models/jamf_config.py +++ b/secure_access/models/jamf_config.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/jamf_config_input.py b/secure_access/models/jamf_config_input.py index 5fd1d08..d65685f 100644 --- a/secure_access/models/jamf_config_input.py +++ b/secure_access/models/jamf_config_input.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/key_admin_key.py b/secure_access/models/key_admin_key.py index a82143c..a14d305 100644 --- a/secure_access/models/key_admin_key.py +++ b/secure_access/models/key_admin_key.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/key_for_list.py b/secure_access/models/key_for_list.py index db4601b..6a16487 100644 --- a/secure_access/models/key_for_list.py +++ b/secure_access/models/key_for_list.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/key_refresh_secret.py b/secure_access/models/key_refresh_secret.py index 35fe645..92f7eb8 100644 --- a/secure_access/models/key_refresh_secret.py +++ b/secure_access/models/key_refresh_secret.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/key_response.py b/secure_access/models/key_response.py index c58ba8e..0283461 100644 --- a/secure_access/models/key_response.py +++ b/secure_access/models/key_response.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/key_response_refresh_secret.py b/secure_access/models/key_response_refresh_secret.py index 8255ac1..bd17216 100644 --- a/secure_access/models/key_response_refresh_secret.py +++ b/secure_access/models/key_response_refresh_secret.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/key_response_with_secret.py b/secure_access/models/key_response_with_secret.py index c166044..f472132 100644 --- a/secure_access/models/key_response_with_secret.py +++ b/secure_access/models/key_response_with_secret.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/key_rotation.py b/secure_access/models/key_rotation.py index e1508ae..aa42373 100644 --- a/secure_access/models/key_rotation.py +++ b/secure_access/models/key_rotation.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/key_with_secret.py b/secure_access/models/key_with_secret.py index 9e57007..b510d56 100644 --- a/secure_access/models/key_with_secret.py +++ b/secure_access/models/key_with_secret.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/keys.py b/secure_access/models/keys.py index 5c04d7b..7206247 100644 --- a/secure_access/models/keys.py +++ b/secure_access/models/keys.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/keys_information_inner.py b/secure_access/models/keys_information_inner.py index 4f3f152..9ed876c 100644 --- a/secure_access/models/keys_information_inner.py +++ b/secure_access/models/keys_information_inner.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/keys_response_list.py b/secure_access/models/keys_response_list.py index e24b4dc..f4d6968 100644 --- a/secure_access/models/keys_response_list.py +++ b/secure_access/models/keys_response_list.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/label.py b/secure_access/models/label.py index c7e2886..d80db1b 100644 --- a/secure_access/models/label.py +++ b/secure_access/models/label.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/label_action_parameters.py b/secure_access/models/label_action_parameters.py new file mode 100644 index 0000000..0577553 --- /dev/null +++ b/secure_access/models/label_action_parameters.py @@ -0,0 +1,102 @@ +# Copyright 2026 Cisco Systems, Inc. and its affiliates +# +# SPDX-License-Identifier: Apache-2.0 + +# coding: utf-8 + +""" + Cisco Secure Access API + + Unified OpenAPI spec for Cisco Secure Access APIs. + + The version of the OpenAPI document: v2.0.202602030705 + Contact: devnet@cisco.com + 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 secure_access.models.label_criteria import LabelCriteria +from typing import Optional, Set +from typing_extensions import Self + +class LabelActionParameters(BaseModel): + """ + The labels or MIP tags applied as part of action. + """ # noqa: E501 + labels_data: Optional[List[LabelCriteria]] = Field(default=None, description="The list of label identifier and type.", alias="labelsData") + mip_data: Optional[List[StrictStr]] = Field(default=None, description="The list of of Microsoft Information Protection (MIP) tags.", alias="mipData") + __properties: ClassVar[List[str]] = ["labelsData", "mipData"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of LabelActionParameters 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 labels_data (list) + _items = [] + if self.labels_data: + for _item_labels_data in self.labels_data: + if _item_labels_data: + _items.append(_item_labels_data.to_dict()) + _dict['labelsData'] = _items + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of LabelActionParameters from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "labelsData": [LabelCriteria.from_dict(_item) for _item in obj["labelsData"]] if obj.get("labelsData") is not None else None, + "mipData": obj.get("mipData") + }) + return _obj + + diff --git a/secure_access/models/label_criteria.py b/secure_access/models/label_criteria.py new file mode 100644 index 0000000..a7326dc --- /dev/null +++ b/secure_access/models/label_criteria.py @@ -0,0 +1,95 @@ +# Copyright 2026 Cisco Systems, Inc. and its affiliates +# +# SPDX-License-Identifier: Apache-2.0 + +# coding: utf-8 + +""" + Cisco Secure Access API + + Unified OpenAPI spec for Cisco Secure Access APIs. + + The version of the OpenAPI document: v2.0.202602030705 + Contact: devnet@cisco.com + 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 uuid import UUID +from typing import Optional, Set +from typing_extensions import Self + +class LabelCriteria(BaseModel): + """ + The label criteria used when matching the DLP rule. + """ # noqa: E501 + label_id: Optional[UUID] = Field(default=None, description="The unique identifier of the label.", alias="labelId") + label_type: Optional[StrictStr] = Field(default=None, description="The type of the label.", alias="labelType") + __properties: ClassVar[List[str]] = ["labelId", "labelType"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of LabelCriteria 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 LabelCriteria from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "labelId": obj.get("labelId"), + "labelType": obj.get("labelType") + }) + return _obj + + diff --git a/secure_access/models/level.py b/secure_access/models/level.py new file mode 100644 index 0000000..c5430a0 --- /dev/null +++ b/secure_access/models/level.py @@ -0,0 +1,43 @@ +# Copyright 2026 Cisco Systems, Inc. and its affiliates +# +# SPDX-License-Identifier: Apache-2.0 + +# coding: utf-8 + +""" + Cisco Secure Access API + + Unified OpenAPI spec for Cisco Secure Access APIs. + + The version of the OpenAPI document: v2.0.202602030705 + Contact: devnet@cisco.com + 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 Level(str, Enum): + """ + The severity level of the event. + """ + + """ + allowed enum values + """ + INFO = 'INFO' + WARNING = 'WARNING' + ERROR = 'ERROR' + + @classmethod + def from_json(cls, json_str: str) -> Self: + """Create an instance of Level from a JSON string""" + return cls(json.loads(json_str)) + + diff --git a/secure_access/models/list_ai_guardrails_dlp_rule_events.py b/secure_access/models/list_ai_guardrails_dlp_rule_events.py new file mode 100644 index 0000000..6b47888 --- /dev/null +++ b/secure_access/models/list_ai_guardrails_dlp_rule_events.py @@ -0,0 +1,100 @@ +# Copyright 2026 Cisco Systems, Inc. and its affiliates +# +# SPDX-License-Identifier: Apache-2.0 + +# coding: utf-8 + +""" + Cisco Secure Access API + + Unified OpenAPI spec for Cisco Secure Access APIs. + + The version of the OpenAPI document: v2.0.202602030705 + Contact: devnet@cisco.com + 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 secure_access.models.ai_guardrails_dlp_rule_event import AiGuardrailsDlpRuleEvent +from typing import Optional, Set +from typing_extensions import Self + +class ListAiGuardrailsDlpRuleEvents(BaseModel): + """ + The specific type of DLP rule events returned by the system in the response. + """ # noqa: E501 + events: Optional[List[AiGuardrailsDlpRuleEvent]] = Field(default=None, description="The list of DLP rule events.") + __properties: ClassVar[List[str]] = ["events"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of ListAiGuardrailsDlpRuleEvents 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 events (list) + _items = [] + if self.events: + for _item_events in self.events: + if _item_events: + _items.append(_item_events.to_dict()) + _dict['events'] = _items + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of ListAiGuardrailsDlpRuleEvents from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "events": [AiGuardrailsDlpRuleEvent.from_dict(_item) for _item in obj["events"]] if obj.get("events") is not None else None + }) + return _obj + + diff --git a/secure_access/models/list_alerts200_response.py b/secure_access/models/list_alerts200_response.py new file mode 100644 index 0000000..e61b318 --- /dev/null +++ b/secure_access/models/list_alerts200_response.py @@ -0,0 +1,142 @@ +# Copyright 2026 Cisco Systems, Inc. and its affiliates +# +# SPDX-License-Identifier: Apache-2.0 + +# coding: utf-8 + +""" + Cisco Secure Access API + + Unified OpenAPI spec for Cisco Secure Access APIs. + + The version of the OpenAPI document: v2.0.202602030705 + Contact: devnet@cisco.com + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import json +import pprint +from pydantic import BaseModel, ConfigDict, Field, StrictStr, ValidationError, field_validator +from typing import Any, List, Optional +from secure_access.models.list_alerts_response import ListAlertsResponse +from secure_access.models.total_count_alerts_response import TotalCountAlertsResponse +from pydantic import StrictStr, Field +from typing import Union, List, Set, Optional, Dict +from typing_extensions import Literal, Self + +LISTALERTS200RESPONSE_ONE_OF_SCHEMAS = ["ListAlertsResponse", "TotalCountAlertsResponse"] + +class ListAlerts200Response(BaseModel): + """ + ListAlerts200Response + """ + # data type: ListAlertsResponse + oneof_schema_1_validator: Optional[ListAlertsResponse] = None + # data type: TotalCountAlertsResponse + oneof_schema_2_validator: Optional[TotalCountAlertsResponse] = None + actual_instance: Optional[Union[ListAlertsResponse, TotalCountAlertsResponse]] = None + one_of_schemas: Set[str] = { "ListAlertsResponse", "TotalCountAlertsResponse" } + + model_config = ConfigDict( + validate_assignment=True, + protected_namespaces=(), + ) + + + def __init__(self, *args, **kwargs) -> None: + if args: + if len(args) > 1: + raise ValueError("If a position argument is used, only 1 is allowed to set `actual_instance`") + if kwargs: + raise ValueError("If a position argument is used, keyword arguments cannot be used.") + super().__init__(actual_instance=args[0]) + else: + super().__init__(**kwargs) + + @field_validator('actual_instance') + def actual_instance_must_validate_oneof(cls, v): + instance = ListAlerts200Response.model_construct() + error_messages = [] + match = 0 + # validate data type: ListAlertsResponse + if not isinstance(v, ListAlertsResponse): + error_messages.append(f"Error! Input type `{type(v)}` is not `ListAlertsResponse`") + else: + match += 1 + # validate data type: TotalCountAlertsResponse + if not isinstance(v, TotalCountAlertsResponse): + error_messages.append(f"Error! Input type `{type(v)}` is not `TotalCountAlertsResponse`") + else: + match += 1 + if match > 1: + # more than 1 match + raise ValueError("Multiple matches found when setting `actual_instance` in ListAlerts200Response with oneOf schemas: ListAlertsResponse, TotalCountAlertsResponse. Details: " + ", ".join(error_messages)) + elif match == 0: + # no match + raise ValueError("No match found when setting `actual_instance` in ListAlerts200Response with oneOf schemas: ListAlertsResponse, TotalCountAlertsResponse. Details: " + ", ".join(error_messages)) + else: + return v + + @classmethod + def from_dict(cls, obj: Union[str, Dict[str, Any]]) -> Self: + return cls.from_json(json.dumps(obj)) + + @classmethod + def from_json(cls, json_str: str) -> Self: + """Returns the object represented by the json string""" + instance = cls.model_construct() + error_messages = [] + match = 0 + + # deserialize data into ListAlertsResponse + try: + instance.actual_instance = ListAlertsResponse.from_json(json_str) + match += 1 + except (ValidationError, ValueError) as e: + error_messages.append(str(e)) + # deserialize data into TotalCountAlertsResponse + try: + instance.actual_instance = TotalCountAlertsResponse.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 ListAlerts200Response with oneOf schemas: ListAlertsResponse, TotalCountAlertsResponse. Details: " + ", ".join(error_messages)) + elif match == 0: + # no match + raise ValueError("No match found when deserializing the JSON string into ListAlerts200Response with oneOf schemas: ListAlertsResponse, TotalCountAlertsResponse. Details: " + ", ".join(error_messages)) + else: + return instance + + def to_json(self) -> str: + """Returns the JSON representation of the actual instance""" + if self.actual_instance is None: + return "null" + + if hasattr(self.actual_instance, "to_json") and callable(self.actual_instance.to_json): + return self.actual_instance.to_json() + else: + return json.dumps(self.actual_instance) + + def to_dict(self) -> Optional[Union[Dict[str, Any], ListAlertsResponse, TotalCountAlertsResponse]]: + """Returns the dict representation of the actual instance""" + if self.actual_instance is None: + return None + + if hasattr(self.actual_instance, "to_dict") and callable(self.actual_instance.to_dict): + return self.actual_instance.to_dict() + else: + # primitive type + return self.actual_instance + + def to_str(self) -> str: + """Returns the string representation of the actual instance""" + return pprint.pformat(self.model_dump()) + + diff --git a/secure_access/models/list_alerts_response.py b/secure_access/models/list_alerts_response.py new file mode 100644 index 0000000..9ddf667 --- /dev/null +++ b/secure_access/models/list_alerts_response.py @@ -0,0 +1,104 @@ +# Copyright 2026 Cisco Systems, Inc. and its affiliates +# +# SPDX-License-Identifier: Apache-2.0 + +# coding: utf-8 + +""" + Cisco Secure Access API + + Unified OpenAPI spec for Cisco Secure Access APIs. + + The version of the OpenAPI document: v2.0.202602030705 + Contact: devnet@cisco.com + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, Field, StrictInt +from typing import Any, ClassVar, Dict, List +from secure_access.models.alert_with_additional_context import AlertWithAdditionalContext +from typing import Optional, Set +from typing_extensions import Self + +class ListAlertsResponse(BaseModel): + """ + The properties of the alerts with the alert metadata. + """ # noqa: E501 + alerts: List[AlertWithAdditionalContext] = Field(description="The list of the details for the alerts.") + severity_counts: Dict[str, StrictInt] = Field(description="The number of alerts categorized by the severity.", alias="severityCounts") + total: StrictInt = Field(description="The total number of active alerts.") + __properties: ClassVar[List[str]] = ["alerts", "severityCounts", "total"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of ListAlertsResponse 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 alerts (list) + _items = [] + if self.alerts: + for _item_alerts in self.alerts: + if _item_alerts: + _items.append(_item_alerts.to_dict()) + _dict['alerts'] = _items + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of ListAlertsResponse from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "alerts": [AlertWithAdditionalContext.from_dict(_item) for _item in obj["alerts"]] if obj.get("alerts") is not None else None, + "severityCounts": obj.get("severityCounts"), + "total": obj.get("total") + }) + return _obj + + diff --git a/secure_access/models/list_application_categories_response_inner.py b/secure_access/models/list_application_categories_response_inner.py index fb40e1b..99e0f51 100644 --- a/secure_access/models/list_application_categories_response_inner.py +++ b/secure_access/models/list_application_categories_response_inner.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/list_int_types_output_body.py b/secure_access/models/list_int_types_output_body.py index 224a15a..aff3ace 100644 --- a/secure_access/models/list_int_types_output_body.py +++ b/secure_access/models/list_int_types_output_body.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) @@ -24,7 +24,7 @@ from pydantic import BaseModel, ConfigDict, Field from typing import Any, ClassVar, Dict, List -from secure_access.models.third_party_integrations_integration_type import ThirdPartyIntegrationsIntegrationType +from secure_access.models.integration_type import IntegrationType from typing import Optional, Set from typing_extensions import Self @@ -32,7 +32,7 @@ class ListIntTypesOutputBody(BaseModel): """ The resource that includes the list of integration types. """ # noqa: E501 - integration_types: List[ThirdPartyIntegrationsIntegrationType] = Field(description="The list of integration types.", alias="integrationTypes") + integration_types: List[IntegrationType] = Field(description="The list of integration types.", alias="integrationTypes") __properties: ClassVar[List[str]] = ["integrationTypes"] model_config = ConfigDict( @@ -93,7 +93,7 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: return cls.model_validate(obj) _obj = cls.model_validate({ - "integrationTypes": [ThirdPartyIntegrationsIntegrationType.from_dict(_item) for _item in obj["integrationTypes"]] if obj.get("integrationTypes") is not None else None + "integrationTypes": [IntegrationType.from_dict(_item) for _item in obj["integrationTypes"]] if obj.get("integrationTypes") is not None else None }) return _obj diff --git a/secure_access/models/list_integrations_output_body.py b/secure_access/models/list_integrations_output_body.py index 8ac1733..81b89ad 100644 --- a/secure_access/models/list_integrations_output_body.py +++ b/secure_access/models/list_integrations_output_body.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/list_network_objects200_response.py b/secure_access/models/list_network_objects200_response.py index 5dc2afb..9202eb9 100644 --- a/secure_access/models/list_network_objects200_response.py +++ b/secure_access/models/list_network_objects200_response.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/list_private_resources_filters_parameter.py b/secure_access/models/list_private_resources_filters_parameter.py index 66eb9be..628ff7a 100644 --- a/secure_access/models/list_private_resources_filters_parameter.py +++ b/secure_access/models/list_private_resources_filters_parameter.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/list_real_time_dlp_rule_events.py b/secure_access/models/list_real_time_dlp_rule_events.py new file mode 100644 index 0000000..869a758 --- /dev/null +++ b/secure_access/models/list_real_time_dlp_rule_events.py @@ -0,0 +1,100 @@ +# Copyright 2026 Cisco Systems, Inc. and its affiliates +# +# SPDX-License-Identifier: Apache-2.0 + +# coding: utf-8 + +""" + Cisco Secure Access API + + Unified OpenAPI spec for Cisco Secure Access APIs. + + The version of the OpenAPI document: v2.0.202602030705 + Contact: devnet@cisco.com + 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 secure_access.models.real_time_dlp_rule_event import RealTimeDlpRuleEvent +from typing import Optional, Set +from typing_extensions import Self + +class ListRealTimeDlpRuleEvents(BaseModel): + """ + The specific type of DLP rule events returned by the system in the response. + """ # noqa: E501 + events: Optional[List[RealTimeDlpRuleEvent]] = Field(default=None, description="The list of DLP rule events.") + __properties: ClassVar[List[str]] = ["events"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of ListRealTimeDlpRuleEvents 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 events (list) + _items = [] + if self.events: + for _item_events in self.events: + if _item_events: + _items.append(_item_events.to_dict()) + _dict['events'] = _items + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of ListRealTimeDlpRuleEvents from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "events": [RealTimeDlpRuleEvent.from_dict(_item) for _item in obj["events"]] if obj.get("events") is not None else None + }) + return _obj + + diff --git a/secure_access/models/list_resource_groups_filters_parameter.py b/secure_access/models/list_resource_groups_filters_parameter.py index 23e7764..3ce3b24 100644 --- a/secure_access/models/list_resource_groups_filters_parameter.py +++ b/secure_access/models/list_resource_groups_filters_parameter.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/list_saa_s_api_dlp_rule_events.py b/secure_access/models/list_saa_s_api_dlp_rule_events.py new file mode 100644 index 0000000..ad628f9 --- /dev/null +++ b/secure_access/models/list_saa_s_api_dlp_rule_events.py @@ -0,0 +1,100 @@ +# Copyright 2026 Cisco Systems, Inc. and its affiliates +# +# SPDX-License-Identifier: Apache-2.0 + +# coding: utf-8 + +""" + Cisco Secure Access API + + Unified OpenAPI spec for Cisco Secure Access APIs. + + The version of the OpenAPI document: v2.0.202602030705 + Contact: devnet@cisco.com + 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 secure_access.models.saas_api_dlp_rule_event import SaasApiDlpRuleEvent +from typing import Optional, Set +from typing_extensions import Self + +class ListSaaSApiDlpRuleEvents(BaseModel): + """ + The specific type of DLP rule events returned by the system in the response. + """ # noqa: E501 + events: Optional[List[SaasApiDlpRuleEvent]] = Field(default=None, description="The list of DLP rule events.") + __properties: ClassVar[List[str]] = ["events"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of ListSaaSApiDlpRuleEvents 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 events (list) + _items = [] + if self.events: + for _item_events in self.events: + if _item_events: + _items.append(_item_events.to_dict()) + _dict['events'] = _items + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of ListSaaSApiDlpRuleEvents from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "events": [SaasApiDlpRuleEvent.from_dict(_item) for _item in obj["events"]] if obj.get("events") is not None else None + }) + return _obj + + diff --git a/secure_access/models/list_security_profiles_response_inner.py b/secure_access/models/list_security_profiles_response_inner.py index 08b448f..262bde6 100644 --- a/secure_access/models/list_security_profiles_response_inner.py +++ b/secure_access/models/list_security_profiles_response_inner.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/list_tenant_controls_profiles_response_inner.py b/secure_access/models/list_tenant_controls_profiles_response_inner.py index ab6b570..3a32caf 100644 --- a/secure_access/models/list_tenant_controls_profiles_response_inner.py +++ b/secure_access/models/list_tenant_controls_profiles_response_inner.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/list_tenants_filters_parameter.py b/secure_access/models/list_tenants_filters_parameter.py new file mode 100644 index 0000000..e906051 --- /dev/null +++ b/secure_access/models/list_tenants_filters_parameter.py @@ -0,0 +1,94 @@ +# Copyright 2026 Cisco Systems, Inc. and its affiliates +# +# SPDX-License-Identifier: Apache-2.0 + +# coding: utf-8 + +""" + Cisco Secure Access API + + Unified OpenAPI spec for Cisco Secure Access APIs. + + The version of the OpenAPI document: v2.0.202602030705 + Contact: devnet@cisco.com + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, Field, StrictInt, StrictStr +from typing import Any, ClassVar, Dict, List, Optional +from typing import Optional, Set +from typing_extensions import Self + +class ListTenantsFiltersParameter(BaseModel): + """ + The properties of the tenant. + """ # noqa: E501 + organization_id: Optional[StrictInt] = Field(default=None, description="Filter by the ID of the tenant.", alias="organizationId") + organization_name: Optional[StrictStr] = Field(default=None, description="Filter by the name of the tenant.", alias="organizationName") + __properties: ClassVar[List[str]] = ["organizationId", "organizationName"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of ListTenantsFiltersParameter 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 ListTenantsFiltersParameter from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "organizationId": obj.get("organizationId"), + "organizationName": obj.get("organizationName") + }) + return _obj + + diff --git a/secure_access/models/list_tenants_sort_parameter.py b/secure_access/models/list_tenants_sort_parameter.py new file mode 100644 index 0000000..7d033dc --- /dev/null +++ b/secure_access/models/list_tenants_sort_parameter.py @@ -0,0 +1,114 @@ +# Copyright 2026 Cisco Systems, Inc. and its affiliates +# +# SPDX-License-Identifier: Apache-2.0 + +# coding: utf-8 + +""" + Cisco Secure Access API + + Unified OpenAPI spec for Cisco Secure Access APIs. + + The version of the OpenAPI document: v2.0.202602030705 + Contact: devnet@cisco.com + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator +from typing import Any, ClassVar, Dict, List, Optional +from typing import Optional, Set +from typing_extensions import Self + +class ListTenantsSortParameter(BaseModel): + """ + The properties to use when sorting the collection. + """ # noqa: E501 + order_organization_id: Optional[StrictStr] = Field(default=None, description="The order to use when sorting the ID of the tenants.", alias="order[organizationId]") + order_organization_name: Optional[StrictStr] = Field(default=None, description="The order to use when sorting the name of the tenants.", alias="order[organizationName]") + __properties: ClassVar[List[str]] = ["order[organizationId]", "order[organizationName]"] + + @field_validator('order_organization_id') + def order_organization_id_validate_enum(cls, value): + """Validates the enum""" + if value is None: + return value + + if value not in set(['asc', 'desc']): + raise ValueError("must be one of enum values ('asc', 'desc')") + return value + + @field_validator('order_organization_name') + def order_organization_name_validate_enum(cls, value): + """Validates the enum""" + if value is None: + return value + + if value not in set(['asc', 'desc']): + raise ValueError("must be one of enum values ('asc', 'desc')") + return value + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of ListTenantsSortParameter 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 ListTenantsSortParameter from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "order[organizationId]": obj.get("order[organizationId]"), + "order[organizationName]": obj.get("order[organizationName]") + }) + return _obj + + diff --git a/secure_access/models/list_unified_network_objects200_response.py b/secure_access/models/list_unified_network_objects200_response.py index db4d892..0301146 100644 --- a/secure_access/models/list_unified_network_objects200_response.py +++ b/secure_access/models/list_unified_network_objects200_response.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/list_unified_network_objects200_response_results_inner.py b/secure_access/models/list_unified_network_objects200_response_results_inner.py index e36674a..fcab1f7 100644 --- a/secure_access/models/list_unified_network_objects200_response_results_inner.py +++ b/secure_access/models/list_unified_network_objects200_response_results_inner.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/list_unified_network_objects200_response_results_inner_any_of.py b/secure_access/models/list_unified_network_objects200_response_results_inner_any_of.py index 2d1087b..034cded 100644 --- a/secure_access/models/list_unified_network_objects200_response_results_inner_any_of.py +++ b/secure_access/models/list_unified_network_objects200_response_results_inner_any_of.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/list_unified_network_objects200_response_results_inner_any_of1.py b/secure_access/models/list_unified_network_objects200_response_results_inner_any_of1.py index 9ace00e..68aebe9 100644 --- a/secure_access/models/list_unified_network_objects200_response_results_inner_any_of1.py +++ b/secure_access/models/list_unified_network_objects200_response_results_inner_any_of1.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/list_unified_service_objects200_response.py b/secure_access/models/list_unified_service_objects200_response.py index 3cbaeaa..e508937 100644 --- a/secure_access/models/list_unified_service_objects200_response.py +++ b/secure_access/models/list_unified_service_objects200_response.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/list_unified_service_objects200_response_results_inner.py b/secure_access/models/list_unified_service_objects200_response_results_inner.py index 107e27c..802a40a 100644 --- a/secure_access/models/list_unified_service_objects200_response_results_inner.py +++ b/secure_access/models/list_unified_service_objects200_response_results_inner.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/list_unified_service_objects200_response_results_inner_any_of.py b/secure_access/models/list_unified_service_objects200_response_results_inner_any_of.py index ba2d467..526680f 100644 --- a/secure_access/models/list_unified_service_objects200_response_results_inner_any_of.py +++ b/secure_access/models/list_unified_service_objects200_response_results_inner_any_of.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/list_unified_service_objects200_response_results_inner_any_of1.py b/secure_access/models/list_unified_service_objects200_response_results_inner_any_of1.py index d54a01c..399b10a 100644 --- a/secure_access/models/list_unified_service_objects200_response_results_inner_any_of1.py +++ b/secure_access/models/list_unified_service_objects200_response_results_inner_any_of1.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/list_vpn_sessions.py b/secure_access/models/list_vpn_sessions.py index 7ab7500..849f837 100644 --- a/secure_access/models/list_vpn_sessions.py +++ b/secure_access/models/list_vpn_sessions.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/list_vpn_sessions_data_inner.py b/secure_access/models/list_vpn_sessions_data_inner.py index f95ac32..4ec865e 100644 --- a/secure_access/models/list_vpn_sessions_data_inner.py +++ b/secure_access/models/list_vpn_sessions_data_inner.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/match_record.py b/secure_access/models/match_record.py index 31e55b4..99e70f8 100644 --- a/secure_access/models/match_record.py +++ b/secure_access/models/match_record.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/meta.py b/secure_access/models/meta.py index a0028fd..4ca98c9 100644 --- a/secure_access/models/meta.py +++ b/secure_access/models/meta.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/metering401_error.py b/secure_access/models/metering401_error.py index b26e810..9b1d4bc 100644 --- a/secure_access/models/metering401_error.py +++ b/secure_access/models/metering401_error.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/metering403_error.py b/secure_access/models/metering403_error.py index 41e9b12..ee6d0db 100644 --- a/secure_access/models/metering403_error.py +++ b/secure_access/models/metering403_error.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/metering404_error.py b/secure_access/models/metering404_error.py index bae2190..6dadb71 100644 --- a/secure_access/models/metering404_error.py +++ b/secure_access/models/metering404_error.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/metering500_error.py b/secure_access/models/metering500_error.py index 2f0355d..3939233 100644 --- a/secure_access/models/metering500_error.py +++ b/secure_access/models/metering500_error.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/model207_activity_multi_status.py b/secure_access/models/model207_activity_multi_status.py new file mode 100644 index 0000000..b2f63c1 --- /dev/null +++ b/secure_access/models/model207_activity_multi_status.py @@ -0,0 +1,106 @@ +# Copyright 2026 Cisco Systems, Inc. and its affiliates +# +# SPDX-License-Identifier: Apache-2.0 + +# coding: utf-8 + +""" + Cisco Secure Access API + + Unified OpenAPI spec for Cisco Secure Access APIs. + + The version of the OpenAPI document: v2.0.202602030705 + Contact: devnet@cisco.com + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, Field +from typing import Any, ClassVar, Dict, List +from secure_access.models.get_activities200_response_data_inner import GetActivities200ResponseDataInner +from secure_access.models.model207_activity_multi_status_meta import Model207ActivityMultiStatusMeta +from typing import Optional, Set +from typing_extensions import Self + +class Model207ActivityMultiStatus(BaseModel): + """ + Model207ActivityMultiStatus + """ # noqa: E501 + data: List[GetActivities200ResponseDataInner] = Field(description="The system returns the data for successful queries only. If the system fails to get the data for a specific activity type, the system does not include this data in the response.") + meta: Model207ActivityMultiStatusMeta + __properties: ClassVar[List[str]] = ["data", "meta"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of Model207ActivityMultiStatus from a JSON string""" + return cls.from_dict(json.loads(json_str)) + + def to_dict(self) -> Dict[str, Any]: + """Return the dictionary representation of the model using alias. + + This has the following differences from calling pydantic's + `self.model_dump(by_alias=True)`: + + * `None` is only added to the output dict for nullable fields that + were set at model initialization. Other fields with value `None` + are ignored. + """ + excluded_fields: Set[str] = set([ + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + # override the default output from pydantic by calling `to_dict()` of each item in data (list) + _items = [] + if self.data: + for _item_data in self.data: + if _item_data: + _items.append(_item_data.to_dict()) + _dict['data'] = _items + # override the default output from pydantic by calling `to_dict()` of meta + if self.meta: + _dict['meta'] = self.meta.to_dict() + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of Model207ActivityMultiStatus from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "data": [GetActivities200ResponseDataInner.from_dict(_item) for _item in obj["data"]] if obj.get("data") is not None else None, + "meta": Model207ActivityMultiStatusMeta.from_dict(obj["meta"]) if obj.get("meta") is not None else None + }) + return _obj + + diff --git a/secure_access/models/model207_activity_multi_status_meta.py b/secure_access/models/model207_activity_multi_status_meta.py new file mode 100644 index 0000000..3e9b646 --- /dev/null +++ b/secure_access/models/model207_activity_multi_status_meta.py @@ -0,0 +1,94 @@ +# Copyright 2026 Cisco Systems, Inc. and its affiliates +# +# SPDX-License-Identifier: Apache-2.0 + +# coding: utf-8 + +""" + Cisco Secure Access API + + Unified OpenAPI spec for Cisco Secure Access APIs. + + The version of the OpenAPI document: v2.0.202602030705 + Contact: devnet@cisco.com + 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 Model207ActivityMultiStatusMeta(BaseModel): + """ + The properties of the metadata. + """ # noqa: E501 + failed: Optional[List[StrictStr]] = Field(default=None, description="The list of the type of activities that failed.") + successful: Optional[List[StrictStr]] = Field(default=None, description="The list of the type of activities that succeeded.") + __properties: ClassVar[List[str]] = ["failed", "successful"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of Model207ActivityMultiStatusMeta 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 Model207ActivityMultiStatusMeta from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "failed": obj.get("failed"), + "successful": obj.get("successful") + }) + return _obj + + diff --git a/secure_access/models/model207_partial_response.py b/secure_access/models/model207_partial_response.py new file mode 100644 index 0000000..c4ee2a6 --- /dev/null +++ b/secure_access/models/model207_partial_response.py @@ -0,0 +1,96 @@ +# Copyright 2026 Cisco Systems, Inc. and its affiliates +# +# SPDX-License-Identifier: Apache-2.0 + +# coding: utf-8 + +""" + Cisco Secure Access API + + Unified OpenAPI spec for Cisco Secure Access APIs. + + The version of the OpenAPI document: v2.0.202602030705 + Contact: devnet@cisco.com + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr +from typing import Any, ClassVar, Dict, List, Optional +from typing import Optional, Set +from typing_extensions import Self + +class Model207PartialResponse(BaseModel): + """ + The properties of the operation. + """ # noqa: E501 + error_ids: Optional[List[StrictStr]] = Field(default=None, description="The identifiers that the system was unable to take an action on or do not exist.", alias="errorIds") + success: Optional[StrictBool] = Field(default=None, description="Specifies whether the operation was successful. False indicates a partial success.") + successful_ids: Optional[List[StrictStr]] = Field(default=None, description="The identifiers that the system updated successfully.", alias="successfulIds") + __properties: ClassVar[List[str]] = ["errorIds", "success", "successfulIds"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of Model207PartialResponse 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 Model207PartialResponse from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "errorIds": obj.get("errorIds"), + "success": obj.get("success"), + "successfulIds": obj.get("successfulIds") + }) + return _obj + + diff --git a/secure_access/models/ztna_policy.py b/secure_access/models/model207_total_requests_multi_status.py similarity index 64% rename from secure_access/models/ztna_policy.py rename to secure_access/models/model207_total_requests_multi_status.py index 354d9d9..957d8f1 100644 --- a/secure_access/models/ztna_policy.py +++ b/secure_access/models/model207_total_requests_multi_status.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) @@ -23,19 +23,19 @@ import json from pydantic import BaseModel, ConfigDict -from typing import Any, ClassVar, Dict, List, Optional -from secure_access.models.ztna_policy_privateapplicationgroup import ZtnaPolicyPrivateapplicationgroup -from secure_access.models.ztna_policy_ruleset import ZtnaPolicyRuleset +from typing import Any, ClassVar, Dict, List +from secure_access.models.model207_total_requests_multi_status_data import Model207TotalRequestsMultiStatusData +from secure_access.models.model207_total_requests_multi_status_meta import Model207TotalRequestsMultiStatusMeta from typing import Optional, Set from typing_extensions import Self -class ZtnaPolicy(BaseModel): +class Model207TotalRequestsMultiStatus(BaseModel): """ - ZtnaPolicy + Model207TotalRequestsMultiStatus """ # noqa: E501 - privateapplicationgroup: Optional[ZtnaPolicyPrivateapplicationgroup] = None - ruleset: ZtnaPolicyRuleset - __properties: ClassVar[List[str]] = ["privateapplicationgroup", "ruleset"] + data: Model207TotalRequestsMultiStatusData + meta: Model207TotalRequestsMultiStatusMeta + __properties: ClassVar[List[str]] = ["data", "meta"] model_config = ConfigDict( populate_by_name=True, @@ -55,7 +55,7 @@ def to_json(self) -> str: @classmethod def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of ZtnaPolicy from a JSON string""" + """Create an instance of Model207TotalRequestsMultiStatus from a JSON string""" return cls.from_dict(json.loads(json_str)) def to_dict(self) -> Dict[str, Any]: @@ -76,17 +76,17 @@ def to_dict(self) -> Dict[str, Any]: exclude=excluded_fields, exclude_none=True, ) - # override the default output from pydantic by calling `to_dict()` of privateapplicationgroup - if self.privateapplicationgroup: - _dict['privateapplicationgroup'] = self.privateapplicationgroup.to_dict() - # override the default output from pydantic by calling `to_dict()` of ruleset - if self.ruleset: - _dict['ruleset'] = self.ruleset.to_dict() + # override the default output from pydantic by calling `to_dict()` of data + if self.data: + _dict['data'] = self.data.to_dict() + # override the default output from pydantic by calling `to_dict()` of meta + if self.meta: + _dict['meta'] = self.meta.to_dict() return _dict @classmethod def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of ZtnaPolicy from a dict""" + """Create an instance of Model207TotalRequestsMultiStatus from a dict""" if obj is None: return None @@ -94,8 +94,8 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: return cls.model_validate(obj) _obj = cls.model_validate({ - "privateapplicationgroup": ZtnaPolicyPrivateapplicationgroup.from_dict(obj["privateapplicationgroup"]) if obj.get("privateapplicationgroup") is not None else None, - "ruleset": ZtnaPolicyRuleset.from_dict(obj["ruleset"]) if obj.get("ruleset") is not None else None + "data": Model207TotalRequestsMultiStatusData.from_dict(obj["data"]) if obj.get("data") is not None else None, + "meta": Model207TotalRequestsMultiStatusMeta.from_dict(obj["meta"]) if obj.get("meta") is not None else None }) return _obj diff --git a/secure_access/models/model207_total_requests_multi_status_data.py b/secure_access/models/model207_total_requests_multi_status_data.py new file mode 100644 index 0000000..3fd256b --- /dev/null +++ b/secure_access/models/model207_total_requests_multi_status_data.py @@ -0,0 +1,92 @@ +# Copyright 2026 Cisco Systems, Inc. and its affiliates +# +# SPDX-License-Identifier: Apache-2.0 + +# coding: utf-8 + +""" + Cisco Secure Access API + + Unified OpenAPI spec for Cisco Secure Access APIs. + + The version of the OpenAPI document: v2.0.202602030705 + Contact: devnet@cisco.com + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, Field, StrictInt +from typing import Any, ClassVar, Dict, List, Optional +from typing import Optional, Set +from typing_extensions import Self + +class Model207TotalRequestsMultiStatusData(BaseModel): + """ + The system returns the total count for successful queries only. + """ # noqa: E501 + count: Optional[StrictInt] = Field(default=None, description="The total count of the activities recorded by the system for the organization. If the system fails to get the count for a specific activity type, the system does not include this count in the total count.") + __properties: ClassVar[List[str]] = ["count"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of Model207TotalRequestsMultiStatusData 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 Model207TotalRequestsMultiStatusData from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "count": obj.get("count") + }) + return _obj + + diff --git a/secure_access/models/model207_total_requests_multi_status_meta.py b/secure_access/models/model207_total_requests_multi_status_meta.py new file mode 100644 index 0000000..ccf606b --- /dev/null +++ b/secure_access/models/model207_total_requests_multi_status_meta.py @@ -0,0 +1,94 @@ +# Copyright 2026 Cisco Systems, Inc. and its affiliates +# +# SPDX-License-Identifier: Apache-2.0 + +# coding: utf-8 + +""" + Cisco Secure Access API + + Unified OpenAPI spec for Cisco Secure Access APIs. + + The version of the OpenAPI document: v2.0.202602030705 + Contact: devnet@cisco.com + 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 Model207TotalRequestsMultiStatusMeta(BaseModel): + """ + The properties of the metadata. + """ # noqa: E501 + failed: Optional[List[StrictStr]] = Field(default=None, description="The list of the type of activities that failed.") + successful: Optional[List[StrictStr]] = Field(default=None, description="The list of the type of activities that succeeded.") + __properties: ClassVar[List[str]] = ["failed", "successful"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of Model207TotalRequestsMultiStatusMeta 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 Model207TotalRequestsMultiStatusMeta from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "failed": obj.get("failed"), + "successful": obj.get("successful") + }) + return _obj + + diff --git a/secure_access/models/model400_bulk_states_error.py b/secure_access/models/model400_bulk_states_error.py index 404acc6..ab41c8d 100644 --- a/secure_access/models/model400_bulk_states_error.py +++ b/secure_access/models/model400_bulk_states_error.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/model400_bulk_states_error_validation_errors.py b/secure_access/models/model400_bulk_states_error_validation_errors.py index 186f40a..91e2e82 100644 --- a/secure_access/models/model400_bulk_states_error_validation_errors.py +++ b/secure_access/models/model400_bulk_states_error_validation_errors.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/model400_connector_agent_error.py b/secure_access/models/model400_connector_agent_error.py index 0f00223..8d78c81 100644 --- a/secure_access/models/model400_connector_agent_error.py +++ b/secure_access/models/model400_connector_agent_error.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/model400_connector_agent_error_validation_errors.py b/secure_access/models/model400_connector_agent_error_validation_errors.py index d9efbd7..aeef742 100644 --- a/secure_access/models/model400_connector_agent_error_validation_errors.py +++ b/secure_access/models/model400_connector_agent_error_validation_errors.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/model400_connector_group_error.py b/secure_access/models/model400_connector_group_error.py index a1e8793..bf6b9e6 100644 --- a/secure_access/models/model400_connector_group_error.py +++ b/secure_access/models/model400_connector_group_error.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/model400_connector_group_error_validation_errors.py b/secure_access/models/model400_connector_group_error_validation_errors.py index 8868b00..ccc32ef 100644 --- a/secure_access/models/model400_connector_group_error_validation_errors.py +++ b/secure_access/models/model400_connector_group_error_validation_errors.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/model400_error.py b/secure_access/models/model400_error.py index 671ec97..e5b6def 100644 --- a/secure_access/models/model400_error.py +++ b/secure_access/models/model400_error.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/model400_error_object.py b/secure_access/models/model400_error_object.py index 172c54a..d437a80 100644 --- a/secure_access/models/model400_error_object.py +++ b/secure_access/models/model400_error_object.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/model400_list_error.py b/secure_access/models/model400_list_error.py index a0f47e3..3edcd43 100644 --- a/secure_access/models/model400_list_error.py +++ b/secure_access/models/model400_list_error.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/model400_list_error_one_of.py b/secure_access/models/model400_list_error_one_of.py index a62c8bb..210d4a5 100644 --- a/secure_access/models/model400_list_error_one_of.py +++ b/secure_access/models/model400_list_error_one_of.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/model400_list_error_one_of1.py b/secure_access/models/model400_list_error_one_of1.py index 01d5a01..5e2d4bd 100644 --- a/secure_access/models/model400_list_error_one_of1.py +++ b/secure_access/models/model400_list_error_one_of1.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/model400_list_error_one_of1_validation_errors.py b/secure_access/models/model400_list_error_one_of1_validation_errors.py index 3816afa..ff24dc8 100644 --- a/secure_access/models/model400_list_error_one_of1_validation_errors.py +++ b/secure_access/models/model400_list_error_one_of1_validation_errors.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/model400_ntgid_error.py b/secure_access/models/model400_ntgid_error.py index f32f726..2cebcae 100644 --- a/secure_access/models/model400_ntgid_error.py +++ b/secure_access/models/model400_ntgid_error.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/model400_regions_error.py b/secure_access/models/model400_regions_error.py index 92b7cfd..a10e355 100644 --- a/secure_access/models/model400_regions_error.py +++ b/secure_access/models/model400_regions_error.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/model400_regions_error_one_of.py b/secure_access/models/model400_regions_error_one_of.py index dd81515..2939318 100644 --- a/secure_access/models/model400_regions_error_one_of.py +++ b/secure_access/models/model400_regions_error_one_of.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/model400_regions_error_one_of1.py b/secure_access/models/model400_regions_error_one_of1.py index e29cec4..2712a68 100644 --- a/secure_access/models/model400_regions_error_one_of1.py +++ b/secure_access/models/model400_regions_error_one_of1.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/model400_regions_error_one_of1_validation_errors.py b/secure_access/models/model400_regions_error_one_of1_validation_errors.py index 0872146..a24fd46 100644 --- a/secure_access/models/model400_regions_error_one_of1_validation_errors.py +++ b/secure_access/models/model400_regions_error_one_of1_validation_errors.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) @@ -22,8 +22,8 @@ import re # noqa: F401 import json -from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt, StrictStr -from typing import Any, ClassVar, Dict, List, Optional, Union +from pydantic import BaseModel, ConfigDict, Field, StrictStr +from typing import Any, ClassVar, Dict, List, Optional from typing import Optional, Set from typing_extensions import Self @@ -31,8 +31,8 @@ class Model400RegionsErrorOneOf1ValidationErrors(BaseModel): """ Model400RegionsErrorOneOf1ValidationErrors """ # noqa: E501 - latitude: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="Indicates the problem with latitude.") - longitude: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="Indicates the problem with longitude.") + latitude: Optional[StrictStr] = Field(default=None, description="Indicates the problem with latitude.") + longitude: Optional[StrictStr] = Field(default=None, description="Indicates the problem with longitude.") peer_ip: Optional[StrictStr] = Field(default=None, description="Indicates the problem with the peer IP in query param.", alias="peerIP") __properties: ClassVar[List[str]] = ["latitude", "longitude", "peerIP"] diff --git a/secure_access/models/model400_validation_error.py b/secure_access/models/model400_validation_error.py index 0926ac4..d5560b8 100644 --- a/secure_access/models/model400_validation_error.py +++ b/secure_access/models/model400_validation_error.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/model400_validation_error_one_of.py b/secure_access/models/model400_validation_error_one_of.py index 2e201a4..fcc23a7 100644 --- a/secure_access/models/model400_validation_error_one_of.py +++ b/secure_access/models/model400_validation_error_one_of.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/model400_validation_error_one_of1.py b/secure_access/models/model400_validation_error_one_of1.py index 3408b86..ee089a6 100644 --- a/secure_access/models/model400_validation_error_one_of1.py +++ b/secure_access/models/model400_validation_error_one_of1.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/model400_validation_error_one_of_validation_errors.py b/secure_access/models/model400_validation_error_one_of_validation_errors.py index f21a66d..db566e3 100644 --- a/secure_access/models/model400_validation_error_one_of_validation_errors.py +++ b/secure_access/models/model400_validation_error_one_of_validation_errors.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/model401_error.py b/secure_access/models/model401_error.py index b54355a..dc159ad 100644 --- a/secure_access/models/model401_error.py +++ b/secure_access/models/model401_error.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/model401_error_object.py b/secure_access/models/model401_error_object.py index dc113db..4004e92 100644 --- a/secure_access/models/model401_error_object.py +++ b/secure_access/models/model401_error_object.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/model403_error.py b/secure_access/models/model403_error.py index 6c27ae2..17049f2 100644 --- a/secure_access/models/model403_error.py +++ b/secure_access/models/model403_error.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/model403_error_object.py b/secure_access/models/model403_error_object.py index eff6df2..a58b177 100644 --- a/secure_access/models/model403_error_object.py +++ b/secure_access/models/model403_error_object.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/model404_error.py b/secure_access/models/model404_error.py index 8203a25..97ed8de 100644 --- a/secure_access/models/model404_error.py +++ b/secure_access/models/model404_error.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/model404_error_object.py b/secure_access/models/model404_error_object.py index 1dbc8d0..f1dbfce 100644 --- a/secure_access/models/model404_error_object.py +++ b/secure_access/models/model404_error_object.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/model409_error.py b/secure_access/models/model409_error.py index cf28d7f..abf8679 100644 --- a/secure_access/models/model409_error.py +++ b/secure_access/models/model409_error.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) @@ -22,7 +22,7 @@ import re # noqa: F401 import json -from pydantic import BaseModel, ConfigDict, Field, StrictStr +from pydantic import BaseModel, ConfigDict, Field, StrictInt, StrictStr from typing import Any, ClassVar, Dict, List, Optional from typing import Optional, Set from typing_extensions import Self @@ -32,7 +32,8 @@ class Model409Error(BaseModel): Model409Error """ # noqa: E501 error: Optional[StrictStr] = Field(default=None, description="Error message explaining the reason for failure.") - __properties: ClassVar[List[str]] = ["error"] + status: Optional[StrictInt] = Field(default=None, description="The HTTP status code returned in the response.") + __properties: ClassVar[List[str]] = ["error", "status"] model_config = ConfigDict( populate_by_name=True, @@ -85,7 +86,8 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: return cls.model_validate(obj) _obj = cls.model_validate({ - "error": obj.get("error") + "error": obj.get("error"), + "status": obj.get("status") }) return _obj diff --git a/secure_access/models/model422_error.py b/secure_access/models/model422_error.py new file mode 100644 index 0000000..b2dc563 --- /dev/null +++ b/secure_access/models/model422_error.py @@ -0,0 +1,94 @@ +# Copyright 2026 Cisco Systems, Inc. and its affiliates +# +# SPDX-License-Identifier: Apache-2.0 + +# coding: utf-8 + +""" + Cisco Secure Access API + + Unified OpenAPI spec for Cisco Secure Access APIs. + + The version of the OpenAPI document: v2.0.202602030705 + Contact: devnet@cisco.com + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, Field, StrictInt, StrictStr +from typing import Any, ClassVar, Dict, List, Optional +from typing import Optional, Set +from typing_extensions import Self + +class Model422Error(BaseModel): + """ + Model422Error + """ # noqa: E501 + error: Optional[StrictStr] = None + status: Optional[StrictInt] = Field(default=None, description="The HTTP status code returned in the response.") + __properties: ClassVar[List[str]] = ["error", "status"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of Model422Error 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 Model422Error from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "error": obj.get("error"), + "status": obj.get("status") + }) + return _obj + + diff --git a/secure_access/models/model429_error.py b/secure_access/models/model429_error.py new file mode 100644 index 0000000..e9db8e9 --- /dev/null +++ b/secure_access/models/model429_error.py @@ -0,0 +1,94 @@ +# Copyright 2026 Cisco Systems, Inc. and its affiliates +# +# SPDX-License-Identifier: Apache-2.0 + +# coding: utf-8 + +""" + Cisco Secure Access API + + Unified OpenAPI spec for Cisco Secure Access APIs. + + The version of the OpenAPI document: v2.0.202602030705 + Contact: devnet@cisco.com + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, Field, StrictInt, StrictStr +from typing import Any, ClassVar, Dict, List, Optional +from typing import Optional, Set +from typing_extensions import Self + +class Model429Error(BaseModel): + """ + Model429Error + """ # noqa: E501 + error: Optional[StrictStr] = Field(default=None, description="Error message explaining the reason for failure.") + status: Optional[StrictInt] = Field(default=None, description="The HTTP status code returned in the response.") + __properties: ClassVar[List[str]] = ["error", "status"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of Model429Error 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 Model429Error from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "error": obj.get("error"), + "status": obj.get("status") + }) + return _obj + + diff --git a/secure_access/models/model500_error.py b/secure_access/models/model500_error.py index 076576c..2294c9b 100644 --- a/secure_access/models/model500_error.py +++ b/secure_access/models/model500_error.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/model500_error_object.py b/secure_access/models/model500_error_object.py index c4e45e9..8b5ae8b 100644 --- a/secure_access/models/model500_error_object.py +++ b/secure_access/models/model500_error_object.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/multi_tenants400_error.py b/secure_access/models/multi_tenants400_error.py new file mode 100644 index 0000000..b8fa8ce --- /dev/null +++ b/secure_access/models/multi_tenants400_error.py @@ -0,0 +1,92 @@ +# Copyright 2026 Cisco Systems, Inc. and its affiliates +# +# SPDX-License-Identifier: Apache-2.0 + +# coding: utf-8 + +""" + Cisco Secure Access API + + Unified OpenAPI spec for Cisco Secure Access APIs. + + The version of the OpenAPI document: v2.0.202602030705 + Contact: devnet@cisco.com + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, StrictStr +from typing import Any, ClassVar, Dict, List, Optional +from typing import Optional, Set +from typing_extensions import Self + +class MultiTenants400Error(BaseModel): + """ + MultiTenants400Error + """ # noqa: E501 + message: Optional[StrictStr] = None + __properties: ClassVar[List[str]] = ["message"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of MultiTenants400Error 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 MultiTenants400Error from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "message": obj.get("message") + }) + return _obj + + diff --git a/secure_access/models/multi_tenants401_error.py b/secure_access/models/multi_tenants401_error.py new file mode 100644 index 0000000..80258da --- /dev/null +++ b/secure_access/models/multi_tenants401_error.py @@ -0,0 +1,92 @@ +# Copyright 2026 Cisco Systems, Inc. and its affiliates +# +# SPDX-License-Identifier: Apache-2.0 + +# coding: utf-8 + +""" + Cisco Secure Access API + + Unified OpenAPI spec for Cisco Secure Access APIs. + + The version of the OpenAPI document: v2.0.202602030705 + Contact: devnet@cisco.com + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, StrictStr +from typing import Any, ClassVar, Dict, List, Optional +from typing import Optional, Set +from typing_extensions import Self + +class MultiTenants401Error(BaseModel): + """ + MultiTenants401Error + """ # noqa: E501 + message: Optional[StrictStr] = None + __properties: ClassVar[List[str]] = ["message"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of MultiTenants401Error 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 MultiTenants401Error from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "message": obj.get("message") + }) + return _obj + + diff --git a/secure_access/models/multi_tenants403_error.py b/secure_access/models/multi_tenants403_error.py new file mode 100644 index 0000000..0d7ae48 --- /dev/null +++ b/secure_access/models/multi_tenants403_error.py @@ -0,0 +1,92 @@ +# Copyright 2026 Cisco Systems, Inc. and its affiliates +# +# SPDX-License-Identifier: Apache-2.0 + +# coding: utf-8 + +""" + Cisco Secure Access API + + Unified OpenAPI spec for Cisco Secure Access APIs. + + The version of the OpenAPI document: v2.0.202602030705 + Contact: devnet@cisco.com + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, StrictStr +from typing import Any, ClassVar, Dict, List, Optional +from typing import Optional, Set +from typing_extensions import Self + +class MultiTenants403Error(BaseModel): + """ + MultiTenants403Error + """ # noqa: E501 + message: Optional[StrictStr] = None + __properties: ClassVar[List[str]] = ["message"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of MultiTenants403Error 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 MultiTenants403Error from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "message": obj.get("message") + }) + return _obj + + diff --git a/secure_access/models/multi_tenants404_error.py b/secure_access/models/multi_tenants404_error.py new file mode 100644 index 0000000..560280a --- /dev/null +++ b/secure_access/models/multi_tenants404_error.py @@ -0,0 +1,92 @@ +# Copyright 2026 Cisco Systems, Inc. and its affiliates +# +# SPDX-License-Identifier: Apache-2.0 + +# coding: utf-8 + +""" + Cisco Secure Access API + + Unified OpenAPI spec for Cisco Secure Access APIs. + + The version of the OpenAPI document: v2.0.202602030705 + Contact: devnet@cisco.com + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, StrictStr +from typing import Any, ClassVar, Dict, List, Optional +from typing import Optional, Set +from typing_extensions import Self + +class MultiTenants404Error(BaseModel): + """ + MultiTenants404Error + """ # noqa: E501 + message: Optional[StrictStr] = None + __properties: ClassVar[List[str]] = ["message"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of MultiTenants404Error 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 MultiTenants404Error from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "message": obj.get("message") + }) + return _obj + + diff --git a/secure_access/models/multi_tenants500_error.py b/secure_access/models/multi_tenants500_error.py new file mode 100644 index 0000000..9323e7f --- /dev/null +++ b/secure_access/models/multi_tenants500_error.py @@ -0,0 +1,92 @@ +# Copyright 2026 Cisco Systems, Inc. and its affiliates +# +# SPDX-License-Identifier: Apache-2.0 + +# coding: utf-8 + +""" + Cisco Secure Access API + + Unified OpenAPI spec for Cisco Secure Access APIs. + + The version of the OpenAPI document: v2.0.202602030705 + Contact: devnet@cisco.com + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, StrictStr +from typing import Any, ClassVar, Dict, List, Optional +from typing import Optional, Set +from typing_extensions import Self + +class MultiTenants500Error(BaseModel): + """ + MultiTenants500Error + """ # noqa: E501 + message: Optional[StrictStr] = None + __properties: ClassVar[List[str]] = ["message"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of MultiTenants500Error 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 MultiTenants500Error from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "message": obj.get("message") + }) + return _obj + + diff --git a/secure_access/models/network_based_access.py b/secure_access/models/network_based_access.py index 0d068ef..6d7fa65 100644 --- a/secure_access/models/network_based_access.py +++ b/secure_access/models/network_based_access.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/network_device_create.py b/secure_access/models/network_device_create.py index 39c2d03..6b7fc8b 100644 --- a/secure_access/models/network_device_create.py +++ b/secure_access/models/network_device_create.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/network_device_entity.py b/secure_access/models/network_device_entity.py index 16bfa33..f48554f 100644 --- a/secure_access/models/network_device_entity.py +++ b/secure_access/models/network_device_entity.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/network_device_patch.py b/secure_access/models/network_device_patch.py index 4b3776f..92fb093 100644 --- a/secure_access/models/network_device_patch.py +++ b/secure_access/models/network_device_patch.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/network_devices500_error.py b/secure_access/models/network_devices500_error.py index 904b3b0..1d881c1 100644 --- a/secure_access/models/network_devices500_error.py +++ b/secure_access/models/network_devices500_error.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/network_object.py b/secure_access/models/network_object.py index a4adc53..85d4083 100644 --- a/secure_access/models/network_object.py +++ b/secure_access/models/network_object.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/network_object_group_request_schema.py b/secure_access/models/network_object_group_request_schema.py index 5180ca6..928090b 100644 --- a/secure_access/models/network_object_group_request_schema.py +++ b/secure_access/models/network_object_group_request_schema.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/network_object_group_response_schema.py b/secure_access/models/network_object_group_response_schema.py index 7a3fc15..1c2af36 100644 --- a/secure_access/models/network_object_group_response_schema.py +++ b/secure_access/models/network_object_group_response_schema.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/network_object_group_response_schema_groups_inner.py b/secure_access/models/network_object_group_response_schema_groups_inner.py index ff75db9..38b2a7d 100644 --- a/secure_access/models/network_object_group_response_schema_groups_inner.py +++ b/secure_access/models/network_object_group_response_schema_groups_inner.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/network_object_group_response_schema_objects_inner.py b/secure_access/models/network_object_group_response_schema_objects_inner.py index 097453d..ab35842 100644 --- a/secure_access/models/network_object_group_response_schema_objects_inner.py +++ b/secure_access/models/network_object_group_response_schema_objects_inner.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/network_object_request_schema.py b/secure_access/models/network_object_request_schema.py index 2f4ae3f..1a5b681 100644 --- a/secure_access/models/network_object_request_schema.py +++ b/secure_access/models/network_object_request_schema.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/network_object_request_schema_value.py b/secure_access/models/network_object_request_schema_value.py index acc0b9a..28fe898 100644 --- a/secure_access/models/network_object_request_schema_value.py +++ b/secure_access/models/network_object_request_schema_value.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/network_object_response_schema.py b/secure_access/models/network_object_response_schema.py index 638f9f7..5f3e404 100644 --- a/secure_access/models/network_object_response_schema.py +++ b/secure_access/models/network_object_response_schema.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/network_object_response_schema_value.py b/secure_access/models/network_object_response_schema_value.py index ffe416a..6d56efa 100644 --- a/secure_access/models/network_object_response_schema_value.py +++ b/secure_access/models/network_object_response_schema_value.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/network_tunnel_event.py b/secure_access/models/network_tunnel_event.py new file mode 100644 index 0000000..e7872bc --- /dev/null +++ b/secure_access/models/network_tunnel_event.py @@ -0,0 +1,146 @@ +# Copyright 2026 Cisco Systems, Inc. and its affiliates +# +# SPDX-License-Identifier: Apache-2.0 + +# coding: utf-8 + +""" + Cisco Secure Access API + + Unified OpenAPI spec for Cisco Secure Access APIs. + + The version of the OpenAPI document: v2.0.202602030705 + Contact: devnet@cisco.com + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictFloat, StrictInt, StrictStr +from typing import Any, ClassVar, Dict, List, Optional, Union +from secure_access.models.level import Level +from secure_access.models.service_name import ServiceName +from typing import Optional, Set +from typing_extensions import Self + +class NetworkTunnelEvent(BaseModel): + """ + The properties of the event for the network tunnel. + """ # noqa: E501 + bgp_peer_ip: Optional[StrictStr] = Field(default=None, description="The CIDR netmask used to limit the customer peers that can talk to the headend BGP.", alias="bgpPeerIp") + datacenter: Optional[StrictStr] = Field(default=None, description="The canonical name of the data center where the system deployed the hub.") + datacenter_ip: Optional[StrictStr] = Field(default=None, description="The comma-separated list of IP addresses of the data centers where the system deployed the hub.", alias="datacenterIp") + device_type: Optional[StrictStr] = Field(default=None, description="The type of the device.", alias="deviceType") + hub_id: Optional[StrictStr] = Field(default=None, description="The unique identifier of the hub.", alias="hubId") + hub_is_primary: Optional[StrictBool] = Field(default=None, description="Specifies whether the hub is a primary data center.", alias="hubIsPrimary") + ike_auth_id: Optional[StrictStr] = Field(default=None, description="The unique identifier of the IKE session for the network tunnel.", alias="ikeAuthId") + ike_customer_address: Optional[StrictStr] = Field(default=None, description="The IP address used by the end user for the IKE session.", alias="ikeCustomerAddress") + ike_customer_port: Optional[StrictInt] = Field(default=None, description="The port used by the end user for the IKE session.", alias="ikeCustomerPort") + ike_spi: Optional[StrictStr] = Field(default=None, alias="ikeSpi") + level: Optional[Level] = None + message: Optional[StrictStr] = Field(default=None, description="The message for the event.") + network_tunnel_group_id: Optional[StrictInt] = Field(default=None, description="The unique identifier of the network tunnel group.", alias="networkTunnelGroupId") + network_tunnel_group_label: Optional[StrictStr] = Field(default=None, description="The name of the network tunnel group. A Network Tunnel Group name is a sequence of 1–50 characters, which does not contain any special characters other than spaces and hyphens.", alias="networkTunnelGroupLabel") + origin_id: Optional[StrictInt] = Field(default=None, description="The unique identifier of the network device that established the IPsec tunnel.", alias="originId") + origin_type: Optional[StrictInt] = Field(default=None, description="The numeric type that identifies the origin.", alias="originType") + region: Optional[StrictStr] = Field(default=None, description="The name of the region that the system uses to obtain the primary and secondary data centers for the Hubs.") + service_name: Optional[ServiceName] = Field(default=None, alias="serviceName") + timestamp: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="The timestamp represented in seconds.") + tunnel_id: Optional[StrictInt] = Field(default=None, description="The unique identifier of the network tunnel.", alias="tunnelId") + umbrella_org_id: Optional[StrictInt] = Field(default=None, description="The unique identifier of the organization.", alias="umbrellaOrgId") + __properties: ClassVar[List[str]] = ["bgpPeerIp", "datacenter", "datacenterIp", "deviceType", "hubId", "hubIsPrimary", "ikeAuthId", "ikeCustomerAddress", "ikeCustomerPort", "ikeSpi", "level", "message", "networkTunnelGroupId", "networkTunnelGroupLabel", "originId", "originType", "region", "serviceName", "timestamp", "tunnelId", "umbrellaOrgId"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of NetworkTunnelEvent 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. + """ + excluded_fields: Set[str] = set([ + "datacenter", + "datacenter_ip", + "hub_id", + "hub_is_primary", + "network_tunnel_group_id", + "umbrella_org_id", + ]) + + _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 NetworkTunnelEvent from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "bgpPeerIp": obj.get("bgpPeerIp"), + "datacenter": obj.get("datacenter"), + "datacenterIp": obj.get("datacenterIp"), + "deviceType": obj.get("deviceType"), + "hubId": obj.get("hubId"), + "hubIsPrimary": obj.get("hubIsPrimary"), + "ikeAuthId": obj.get("ikeAuthId"), + "ikeCustomerAddress": obj.get("ikeCustomerAddress"), + "ikeCustomerPort": obj.get("ikeCustomerPort"), + "ikeSpi": obj.get("ikeSpi"), + "level": obj.get("level"), + "message": obj.get("message"), + "networkTunnelGroupId": obj.get("networkTunnelGroupId"), + "networkTunnelGroupLabel": obj.get("networkTunnelGroupLabel"), + "originId": obj.get("originId"), + "originType": obj.get("originType"), + "region": obj.get("region"), + "serviceName": obj.get("serviceName"), + "timestamp": obj.get("timestamp"), + "tunnelId": obj.get("tunnelId"), + "umbrellaOrgId": obj.get("umbrellaOrgId") + }) + return _obj + + diff --git a/secure_access/models/network_tunnel_group_bulk_state_response.py b/secure_access/models/network_tunnel_group_bulk_state_response.py index 4c68b7a..f881ee6 100644 --- a/secure_access/models/network_tunnel_group_bulk_state_response.py +++ b/secure_access/models/network_tunnel_group_bulk_state_response.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/network_tunnel_group_list_response.py b/secure_access/models/network_tunnel_group_list_response.py index db4aef7..925233f 100644 --- a/secure_access/models/network_tunnel_group_list_response.py +++ b/secure_access/models/network_tunnel_group_list_response.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/network_tunnel_group_response.py b/secure_access/models/network_tunnel_group_response.py index d25dfa9..b56993d 100644 --- a/secure_access/models/network_tunnel_group_response.py +++ b/secure_access/models/network_tunnel_group_response.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/network_tunnel_group_state_response.py b/secure_access/models/network_tunnel_group_state_response.py index 10f2821..2b66c0a 100644 --- a/secure_access/models/network_tunnel_group_state_response.py +++ b/secure_access/models/network_tunnel_group_state_response.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/network_tunnel_groups_list.py b/secure_access/models/network_tunnel_groups_list.py index 33e8336..e673fd1 100644 --- a/secure_access/models/network_tunnel_groups_list.py +++ b/secure_access/models/network_tunnel_groups_list.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/network_tunnel_groups_status.py b/secure_access/models/network_tunnel_groups_status.py index 8fa84d7..49fda7a 100644 --- a/secure_access/models/network_tunnel_groups_status.py +++ b/secure_access/models/network_tunnel_groups_status.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/network_value_type.py b/secure_access/models/network_value_type.py index 2092f3e..f98747b 100644 --- a/secure_access/models/network_value_type.py +++ b/secure_access/models/network_value_type.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/networks500_error.py b/secure_access/models/networks500_error.py index 8ac130b..b4de472 100644 --- a/secure_access/models/networks500_error.py +++ b/secure_access/models/networks500_error.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/not_found.py b/secure_access/models/not_found.py index 31e6fba..32f3487 100644 --- a/secure_access/models/not_found.py +++ b/secure_access/models/not_found.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/not_found_data.py b/secure_access/models/not_found_data.py index b0a1c4c..ea98538 100644 --- a/secure_access/models/not_found_data.py +++ b/secure_access/models/not_found_data.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/not_found_error.py b/secure_access/models/not_found_error.py index bdcd5fa..c29a5f8 100644 --- a/secure_access/models/not_found_error.py +++ b/secure_access/models/not_found_error.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/not_found_status.py b/secure_access/models/not_found_status.py index a6eb2b3..79fdfec 100644 --- a/secure_access/models/not_found_status.py +++ b/secure_access/models/not_found_status.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/notification_info_alert_rule.py b/secure_access/models/notification_info_alert_rule.py new file mode 100644 index 0000000..f2fbeb0 --- /dev/null +++ b/secure_access/models/notification_info_alert_rule.py @@ -0,0 +1,98 @@ +# Copyright 2026 Cisco Systems, Inc. and its affiliates +# +# SPDX-License-Identifier: Apache-2.0 + +# coding: utf-8 + +""" + Cisco Secure Access API + + Unified OpenAPI spec for Cisco Secure Access APIs. + + The version of the OpenAPI document: v2.0.202602030705 + Contact: devnet@cisco.com + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, Field, StrictStr +from typing import Any, ClassVar, Dict, List, Optional +from typing_extensions import Annotated +from secure_access.models.notification_type_all import NotificationTypeAll +from typing import Optional, Set +from typing_extensions import Self + +class NotificationInfoAlertRule(BaseModel): + """ + The properties of the notification for the alert rule. + """ # noqa: E501 + recipients: Optional[Annotated[List[StrictStr], Field(min_length=1, max_length=50)]] = Field(default=None, description="The list of email recipients configured in the alert rule to receive the notification.") + type: Optional[NotificationTypeAll] = None + webhook_ids: Optional[List[StrictStr]] = Field(default=None, description="The list of unique identifiers for the Webhooks configured on the alert rule.") + __properties: ClassVar[List[str]] = ["recipients", "type", "webhook_ids"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of NotificationInfoAlertRule 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 NotificationInfoAlertRule from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "recipients": obj.get("recipients"), + "type": obj.get("type"), + "webhook_ids": obj.get("webhook_ids") + }) + return _obj + + diff --git a/secure_access/models/notification_type_all.py b/secure_access/models/notification_type_all.py new file mode 100644 index 0000000..4ae7f85 --- /dev/null +++ b/secure_access/models/notification_type_all.py @@ -0,0 +1,42 @@ +# Copyright 2026 Cisco Systems, Inc. and its affiliates +# +# SPDX-License-Identifier: Apache-2.0 + +# coding: utf-8 + +""" + Cisco Secure Access API + + Unified OpenAPI spec for Cisco Secure Access APIs. + + The version of the OpenAPI document: v2.0.202602030705 + Contact: devnet@cisco.com + 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 NotificationTypeAll(str, Enum): + """ + The type of the notification for the alert rule. + """ + + """ + allowed enum values + """ + EMAIL = 'email' + WEBHOOK = 'webhook' + + @classmethod + def from_json(cls, json_str: str) -> Self: + """Create an instance of NotificationTypeAll from a JSON string""" + return cls(json.loads(json_str)) + + diff --git a/secure_access/models/notification_type_email.py b/secure_access/models/notification_type_email.py new file mode 100644 index 0000000..e7eb069 --- /dev/null +++ b/secure_access/models/notification_type_email.py @@ -0,0 +1,41 @@ +# Copyright 2026 Cisco Systems, Inc. and its affiliates +# +# SPDX-License-Identifier: Apache-2.0 + +# coding: utf-8 + +""" + Cisco Secure Access API + + Unified OpenAPI spec for Cisco Secure Access APIs. + + The version of the OpenAPI document: v2.0.202602030705 + Contact: devnet@cisco.com + 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 NotificationTypeEmail(str, Enum): + """ + The type of the notification. + """ + + """ + allowed enum values + """ + EMAIL = 'email' + + @classmethod + def from_json(cls, json_str: str) -> Self: + """Create an instance of NotificationTypeEmail from a JSON string""" + return cls(json.loads(json_str)) + + diff --git a/secure_access/models/object_reference_response.py b/secure_access/models/object_reference_response.py index 66e227e..7c51963 100644 --- a/secure_access/models/object_reference_response.py +++ b/secure_access/models/object_reference_response.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/oob_exposure_config.py b/secure_access/models/oob_exposure_config.py new file mode 100644 index 0000000..5696c0b --- /dev/null +++ b/secure_access/models/oob_exposure_config.py @@ -0,0 +1,102 @@ +# Copyright 2026 Cisco Systems, Inc. and its affiliates +# +# SPDX-License-Identifier: Apache-2.0 + +# coding: utf-8 + +""" + Cisco Secure Access API + + Unified OpenAPI spec for Cisco Secure Access APIs. + + The version of the OpenAPI document: v2.0.202602030705 + Contact: devnet@cisco.com + 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 secure_access.models.oob_exposure_item import OOBExposureItem +from typing import Optional, Set +from typing_extensions import Self + +class OOBExposureConfig(BaseModel): + """ + The properties of the exposure configuration grouped by platform. + """ # noqa: E501 + exposure: List[OOBExposureItem] = Field(description="The list of exposure configuration.") + platform: StrictStr = Field(description="The label for the platform.") + __properties: ClassVar[List[str]] = ["exposure", "platform"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of OOBExposureConfig 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 exposure (list) + _items = [] + if self.exposure: + for _item_exposure in self.exposure: + if _item_exposure: + _items.append(_item_exposure.to_dict()) + _dict['exposure'] = _items + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of OOBExposureConfig from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "exposure": [OOBExposureItem.from_dict(_item) for _item in obj["exposure"]] if obj.get("exposure") is not None else None, + "platform": obj.get("platform") + }) + return _obj + + diff --git a/secure_access/models/hub_status.py b/secure_access/models/oob_exposure_item.py similarity index 68% rename from secure_access/models/hub_status.py rename to secure_access/models/oob_exposure_item.py index e54d1fa..b44a499 100644 --- a/secure_access/models/hub_status.py +++ b/secure_access/models/oob_exposure_item.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) @@ -22,28 +22,27 @@ import re # noqa: F401 import json -from datetime import datetime from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator from typing import Any, ClassVar, Dict, List, Optional from typing import Optional, Set from typing_extensions import Self -class HubStatus(BaseModel): +class OOBExposureItem(BaseModel): """ - The properties of a Hub for the Network Tunnel Group. + The properties of the exposure configuration. """ # noqa: E501 - status: Optional[StrictStr] = Field(default=None, description="The status of the hub.") - time: Optional[datetime] = Field(default=None, description="The date and time (timestamp) when the hub status was last reported.") - __properties: ClassVar[List[str]] = ["status", "time"] + type: Optional[StrictStr] = Field(default=None, description="The type of exposure.") + users: Optional[List[StrictStr]] = Field(default=None, description="The list of users when required by the type of exposure.") + __properties: ClassVar[List[str]] = ["type", "users"] - @field_validator('status') - def status_validate_enum(cls, value): + @field_validator('type') + def type_validate_enum(cls, value): """Validates the enum""" if value is None: return value - if value not in set(['UP', 'DOWN']): - raise ValueError("must be one of enum values ('UP', 'DOWN')") + if value not in set(['PUBLIC', 'DOMAIN', 'PRIVATE', 'FOR_SPECIFIC_USERS']): + raise ValueError("must be one of enum values ('PUBLIC', 'DOMAIN', 'PRIVATE', 'FOR_SPECIFIC_USERS')") return value model_config = ConfigDict( @@ -64,7 +63,7 @@ def to_json(self) -> str: @classmethod def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of HubStatus from a JSON string""" + """Create an instance of OOBExposureItem from a JSON string""" return cls.from_dict(json.loads(json_str)) def to_dict(self) -> Dict[str, Any]: @@ -76,12 +75,8 @@ def to_dict(self) -> Dict[str, Any]: * `None` is only added to the output dict for nullable fields that were set at model initialization. Other fields with value `None` are ignored. - * OpenAPI `readOnly` fields are excluded. - * OpenAPI `readOnly` fields are excluded. """ excluded_fields: Set[str] = set([ - "status", - "time", ]) _dict = self.model_dump( @@ -93,7 +88,7 @@ def to_dict(self) -> Dict[str, Any]: @classmethod def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of HubStatus from a dict""" + """Create an instance of OOBExposureItem from a dict""" if obj is None: return None @@ -101,8 +96,8 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: return cls.model_validate(obj) _obj = cls.model_validate({ - "status": obj.get("status"), - "time": obj.get("time") + "type": obj.get("type"), + "users": obj.get("users") }) return _obj diff --git a/secure_access/models/oob_incremental_config.py b/secure_access/models/oob_incremental_config.py new file mode 100644 index 0000000..25b5370 --- /dev/null +++ b/secure_access/models/oob_incremental_config.py @@ -0,0 +1,120 @@ +# Copyright 2026 Cisco Systems, Inc. and its affiliates +# +# SPDX-License-Identifier: Apache-2.0 + +# coding: utf-8 + +""" + Cisco Secure Access API + + Unified OpenAPI spec for Cisco Secure Access APIs. + + The version of the OpenAPI document: v2.0.202602030705 + Contact: devnet@cisco.com + 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 secure_access.models.oob_exposure_config import OOBExposureConfig +from secure_access.models.oob_platform_config import OOBPlatformConfig +from typing import Optional, Set +from typing_extensions import Self + +class OOBIncrementalConfig(BaseModel): + """ + The properties of the SaaS API (OOB) incremental configuration. + """ # noqa: E501 + domains: Optional[List[StrictStr]] = Field(default=None, description="The list of domains.") + exposures: Optional[List[OOBExposureConfig]] = Field(default=None, description="The list of SaaS API OOB exposure configurations.") + owners: Optional[List[StrictStr]] = Field(default=None, description="The list of emails for the owners.") + platforms: List[OOBPlatformConfig] = Field(description="The list of SaaS API OOB platform configurations.") + resource_ids: Optional[List[StrictStr]] = Field(default=None, description="The list of resource identifiers.", alias="resourceIds") + resource_tags: Optional[List[Dict[str, StrictStr]]] = Field(default=None, description="The list of resource tags.", alias="resourceTags") + revoke_sharing_parameters: Optional[Dict[str, StrictStr]] = Field(default=None, description="The parameters controlling the revoke sharing action, which are specific to the platform.", alias="revokeSharingParameters") + __properties: ClassVar[List[str]] = ["domains", "exposures", "owners", "platforms", "resourceIds", "resourceTags", "revokeSharingParameters"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of OOBIncrementalConfig 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 exposures (list) + _items = [] + if self.exposures: + for _item_exposures in self.exposures: + if _item_exposures: + _items.append(_item_exposures.to_dict()) + _dict['exposures'] = _items + # override the default output from pydantic by calling `to_dict()` of each item in platforms (list) + _items = [] + if self.platforms: + for _item_platforms in self.platforms: + if _item_platforms: + _items.append(_item_platforms.to_dict()) + _dict['platforms'] = _items + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of OOBIncrementalConfig from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "domains": obj.get("domains"), + "exposures": [OOBExposureConfig.from_dict(_item) for _item in obj["exposures"]] if obj.get("exposures") is not None else None, + "owners": obj.get("owners"), + "platforms": [OOBPlatformConfig.from_dict(_item) for _item in obj["platforms"]] if obj.get("platforms") is not None else None, + "resourceIds": obj.get("resourceIds"), + "resourceTags": obj.get("resourceTags"), + "revokeSharingParameters": obj.get("revokeSharingParameters") + }) + return _obj + + diff --git a/secure_access/models/oob_instance_config.py b/secure_access/models/oob_instance_config.py new file mode 100644 index 0000000..800fe84 --- /dev/null +++ b/secure_access/models/oob_instance_config.py @@ -0,0 +1,94 @@ +# Copyright 2026 Cisco Systems, Inc. and its affiliates +# +# SPDX-License-Identifier: Apache-2.0 + +# coding: utf-8 + +""" + Cisco Secure Access API + + Unified OpenAPI spec for Cisco Secure Access APIs. + + The version of the OpenAPI document: v2.0.202602030705 + Contact: devnet@cisco.com + 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 +from typing import Optional, Set +from typing_extensions import Self + +class OOBInstanceConfig(BaseModel): + """ + The properties of the SaaS API OOB instance configuration. + """ # noqa: E501 + application_labels: List[StrictStr] = Field(description="The list of the application labels.", alias="applicationLabels") + id: StrictInt = Field(description="The identifier of the cloud connector or account.") + __properties: ClassVar[List[str]] = ["applicationLabels", "id"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of OOBInstanceConfig 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 OOBInstanceConfig from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "applicationLabels": obj.get("applicationLabels"), + "id": obj.get("id") + }) + return _obj + + diff --git a/secure_access/models/oob_patch_incremental_config.py b/secure_access/models/oob_patch_incremental_config.py new file mode 100644 index 0000000..d7c530f --- /dev/null +++ b/secure_access/models/oob_patch_incremental_config.py @@ -0,0 +1,120 @@ +# Copyright 2026 Cisco Systems, Inc. and its affiliates +# +# SPDX-License-Identifier: Apache-2.0 + +# coding: utf-8 + +""" + Cisco Secure Access API + + Unified OpenAPI spec for Cisco Secure Access APIs. + + The version of the OpenAPI document: v2.0.202602030705 + Contact: devnet@cisco.com + 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 secure_access.models.oob_exposure_config import OOBExposureConfig +from secure_access.models.oob_platform_config import OOBPlatformConfig +from typing import Optional, Set +from typing_extensions import Self + +class OOBPatchIncrementalConfig(BaseModel): + """ + The properties used to update the SaaS API (OOB) incremental configuration. + """ # noqa: E501 + domains: Optional[List[StrictStr]] = Field(default=None, description="The list of domains.") + exposures: Optional[List[OOBExposureConfig]] = Field(default=None, description="The list of SaaS API OOB exposure configurations.") + owners: Optional[List[StrictStr]] = Field(default=None, description="The list of emails for the owners.") + platforms: Optional[List[OOBPlatformConfig]] = Field(default=None, description="The list of SaaS API OOB platform configurations.") + resource_ids: Optional[List[StrictStr]] = Field(default=None, description="The list of resource identifiers.", alias="resourceIds") + resource_tags: Optional[List[Dict[str, StrictStr]]] = Field(default=None, description="The list of resource tags.", alias="resourceTags") + revoke_sharing_parameters: Optional[Dict[str, StrictStr]] = Field(default=None, description="The parameters controlling the revoke sharing action, which are specific to the platform.", alias="revokeSharingParameters") + __properties: ClassVar[List[str]] = ["domains", "exposures", "owners", "platforms", "resourceIds", "resourceTags", "revokeSharingParameters"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of OOBPatchIncrementalConfig 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 exposures (list) + _items = [] + if self.exposures: + for _item_exposures in self.exposures: + if _item_exposures: + _items.append(_item_exposures.to_dict()) + _dict['exposures'] = _items + # override the default output from pydantic by calling `to_dict()` of each item in platforms (list) + _items = [] + if self.platforms: + for _item_platforms in self.platforms: + if _item_platforms: + _items.append(_item_platforms.to_dict()) + _dict['platforms'] = _items + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of OOBPatchIncrementalConfig from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "domains": obj.get("domains"), + "exposures": [OOBExposureConfig.from_dict(_item) for _item in obj["exposures"]] if obj.get("exposures") is not None else None, + "owners": obj.get("owners"), + "platforms": [OOBPlatformConfig.from_dict(_item) for _item in obj["platforms"]] if obj.get("platforms") is not None else None, + "resourceIds": obj.get("resourceIds"), + "resourceTags": obj.get("resourceTags"), + "revokeSharingParameters": obj.get("revokeSharingParameters") + }) + return _obj + + diff --git a/secure_access/models/oob_platform_config.py b/secure_access/models/oob_platform_config.py new file mode 100644 index 0000000..7b37c41 --- /dev/null +++ b/secure_access/models/oob_platform_config.py @@ -0,0 +1,102 @@ +# Copyright 2026 Cisco Systems, Inc. and its affiliates +# +# SPDX-License-Identifier: Apache-2.0 + +# coding: utf-8 + +""" + Cisco Secure Access API + + Unified OpenAPI spec for Cisco Secure Access APIs. + + The version of the OpenAPI document: v2.0.202602030705 + Contact: devnet@cisco.com + 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 secure_access.models.oob_instance_config import OOBInstanceConfig +from typing import Optional, Set +from typing_extensions import Self + +class OOBPlatformConfig(BaseModel): + """ + The properties of the SaaS API OOB platform configuration. + """ # noqa: E501 + instances: List[OOBInstanceConfig] = Field(description="The list of the SaaS API OOB instances.") + name: StrictStr = Field(description="The name of the SaaS platform name, for example: office365, google, spark.") + __properties: ClassVar[List[str]] = ["instances", "name"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of OOBPlatformConfig 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 instances (list) + _items = [] + if self.instances: + for _item_instances in self.instances: + if _item_instances: + _items.append(_item_instances.to_dict()) + _dict['instances'] = _items + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of OOBPlatformConfig from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "instances": [OOBInstanceConfig.from_dict(_item) for _item in obj["instances"]] if obj.get("instances") is not None else None, + "name": obj.get("name") + }) + return _obj + + diff --git a/secure_access/models/oob_rule_create_request.py b/secure_access/models/oob_rule_create_request.py new file mode 100644 index 0000000..7bba8e2 --- /dev/null +++ b/secure_access/models/oob_rule_create_request.py @@ -0,0 +1,169 @@ +# Copyright 2026 Cisco Systems, Inc. and its affiliates +# +# SPDX-License-Identifier: Apache-2.0 + +# coding: utf-8 + +""" + Cisco Secure Access API + + Unified OpenAPI spec for Cisco Secure Access APIs. + + The version of the OpenAPI document: v2.0.202602030705 + Contact: devnet@cisco.com + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +from inspect import getfullargspec +import json +import pprint +import re # noqa: F401 +from pydantic import BaseModel, ConfigDict, Field, StrictStr, ValidationError, field_validator +from typing import Optional +from secure_access.models.oob_rule_create_request_with_classifications import OOBRuleCreateRequestWithClassifications +from secure_access.models.oob_rule_create_request_with_file_size_from import OOBRuleCreateRequestWithFileSizeFrom +from secure_access.models.oob_rule_create_request_with_labels import OOBRuleCreateRequestWithLabels +from secure_access.models.oob_rule_create_request_with_mip_tags import OOBRuleCreateRequestWithMipTags +from typing import Union, Any, List, Set, TYPE_CHECKING, Optional, Dict +from typing_extensions import Literal, Self +from pydantic import Field + +OOBRULECREATEREQUEST_ANY_OF_SCHEMAS = ["OOBRuleCreateRequestWithClassifications", "OOBRuleCreateRequestWithFileSizeFrom", "OOBRuleCreateRequestWithLabels", "OOBRuleCreateRequestWithMipTags"] + +class OOBRuleCreateRequest(BaseModel): + """ + The properties used to create a SaaS API (OOB) DLP rule. + """ + + # data type: OOBRuleCreateRequestWithClassifications + anyof_schema_1_validator: Optional[OOBRuleCreateRequestWithClassifications] = None + # data type: OOBRuleCreateRequestWithLabels + anyof_schema_2_validator: Optional[OOBRuleCreateRequestWithLabels] = None + # data type: OOBRuleCreateRequestWithMipTags + anyof_schema_3_validator: Optional[OOBRuleCreateRequestWithMipTags] = None + # data type: OOBRuleCreateRequestWithFileSizeFrom + anyof_schema_4_validator: Optional[OOBRuleCreateRequestWithFileSizeFrom] = None + if TYPE_CHECKING: + actual_instance: Optional[Union[OOBRuleCreateRequestWithClassifications, OOBRuleCreateRequestWithFileSizeFrom, OOBRuleCreateRequestWithLabels, OOBRuleCreateRequestWithMipTags]] = None + else: + actual_instance: Any = None + any_of_schemas: Set[str] = { "OOBRuleCreateRequestWithClassifications", "OOBRuleCreateRequestWithFileSizeFrom", "OOBRuleCreateRequestWithLabels", "OOBRuleCreateRequestWithMipTags" } + + model_config = { + "validate_assignment": True, + "protected_namespaces": (), + } + + def __init__(self, *args, **kwargs) -> None: + if args: + if len(args) > 1: + raise ValueError("If a position argument is used, only 1 is allowed to set `actual_instance`") + if kwargs: + raise ValueError("If a position argument is used, keyword arguments cannot be used.") + super().__init__(actual_instance=args[0]) + else: + super().__init__(**kwargs) + + @field_validator('actual_instance') + def actual_instance_must_validate_anyof(cls, v): + instance = OOBRuleCreateRequest.model_construct() + error_messages = [] + # validate data type: OOBRuleCreateRequestWithClassifications + if not isinstance(v, OOBRuleCreateRequestWithClassifications): + error_messages.append(f"Error! Input type `{type(v)}` is not `OOBRuleCreateRequestWithClassifications`") + else: + return v + + # validate data type: OOBRuleCreateRequestWithLabels + if not isinstance(v, OOBRuleCreateRequestWithLabels): + error_messages.append(f"Error! Input type `{type(v)}` is not `OOBRuleCreateRequestWithLabels`") + else: + return v + + # validate data type: OOBRuleCreateRequestWithMipTags + if not isinstance(v, OOBRuleCreateRequestWithMipTags): + error_messages.append(f"Error! Input type `{type(v)}` is not `OOBRuleCreateRequestWithMipTags`") + else: + return v + + # validate data type: OOBRuleCreateRequestWithFileSizeFrom + if not isinstance(v, OOBRuleCreateRequestWithFileSizeFrom): + error_messages.append(f"Error! Input type `{type(v)}` is not `OOBRuleCreateRequestWithFileSizeFrom`") + else: + return v + + if error_messages: + # no match + raise ValueError("No match found when setting the actual_instance in OOBRuleCreateRequest with anyOf schemas: OOBRuleCreateRequestWithClassifications, OOBRuleCreateRequestWithFileSizeFrom, OOBRuleCreateRequestWithLabels, OOBRuleCreateRequestWithMipTags. Details: " + ", ".join(error_messages)) + else: + return v + + @classmethod + def from_dict(cls, obj: Dict[str, Any]) -> Self: + return cls.from_json(json.dumps(obj)) + + @classmethod + def from_json(cls, json_str: str) -> Self: + """Returns the object represented by the json string""" + instance = cls.model_construct() + error_messages = [] + # anyof_schema_1_validator: Optional[OOBRuleCreateRequestWithClassifications] = None + try: + instance.actual_instance = OOBRuleCreateRequestWithClassifications.from_json(json_str) + return instance + except (ValidationError, ValueError) as e: + error_messages.append(str(e)) + # anyof_schema_2_validator: Optional[OOBRuleCreateRequestWithLabels] = None + try: + instance.actual_instance = OOBRuleCreateRequestWithLabels.from_json(json_str) + return instance + except (ValidationError, ValueError) as e: + error_messages.append(str(e)) + # anyof_schema_3_validator: Optional[OOBRuleCreateRequestWithMipTags] = None + try: + instance.actual_instance = OOBRuleCreateRequestWithMipTags.from_json(json_str) + return instance + except (ValidationError, ValueError) as e: + error_messages.append(str(e)) + # anyof_schema_4_validator: Optional[OOBRuleCreateRequestWithFileSizeFrom] = None + try: + instance.actual_instance = OOBRuleCreateRequestWithFileSizeFrom.from_json(json_str) + return instance + except (ValidationError, ValueError) as e: + error_messages.append(str(e)) + + if error_messages: + # no match + raise ValueError("No match found when deserializing the JSON string into OOBRuleCreateRequest with anyOf schemas: OOBRuleCreateRequestWithClassifications, OOBRuleCreateRequestWithFileSizeFrom, OOBRuleCreateRequestWithLabels, OOBRuleCreateRequestWithMipTags. Details: " + ", ".join(error_messages)) + else: + return instance + + def to_json(self) -> str: + """Returns the JSON representation of the actual instance""" + if self.actual_instance is None: + return "null" + + if hasattr(self.actual_instance, "to_json") and callable(self.actual_instance.to_json): + return self.actual_instance.to_json() + else: + return json.dumps(self.actual_instance) + + def to_dict(self) -> Optional[Union[Dict[str, Any], OOBRuleCreateRequestWithClassifications, OOBRuleCreateRequestWithFileSizeFrom, OOBRuleCreateRequestWithLabels, OOBRuleCreateRequestWithMipTags]]: + """Returns the dict representation of the actual instance""" + if self.actual_instance is None: + return None + + if hasattr(self.actual_instance, "to_dict") and callable(self.actual_instance.to_dict): + return self.actual_instance.to_dict() + else: + return self.actual_instance + + def to_str(self) -> str: + """Returns the string representation of the actual instance""" + return pprint.pformat(self.model_dump()) + + diff --git a/secure_access/models/oob_rule_create_request_with_classifications.py b/secure_access/models/oob_rule_create_request_with_classifications.py new file mode 100644 index 0000000..95f8209 --- /dev/null +++ b/secure_access/models/oob_rule_create_request_with_classifications.py @@ -0,0 +1,150 @@ +# Copyright 2026 Cisco Systems, Inc. and its affiliates +# +# SPDX-License-Identifier: Apache-2.0 + +# coding: utf-8 + +""" + Cisco Secure Access API + + Unified OpenAPI spec for Cisco Secure Access APIs. + + The version of the OpenAPI document: v2.0.202602030705 + Contact: devnet@cisco.com + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictInt, StrictStr +from typing import Any, ClassVar, Dict, List, Optional +from typing_extensions import Annotated +from uuid import UUID +from secure_access.models.data_loss_prevention_action import DataLossPreventionAction +from secure_access.models.data_loss_prevention_identity import DataLossPreventionIdentity +from secure_access.models.data_loss_prevention_severity2 import DataLossPreventionSeverity2 +from secure_access.models.label_action_parameters import LabelActionParameters +from secure_access.models.label_criteria import LabelCriteria +from secure_access.models.oob_incremental_config import OOBIncrementalConfig +from typing import Optional, Set +from typing_extensions import Self + +class OOBRuleCreateRequestWithClassifications(BaseModel): + """ + The properties used to create a SaaS API (OOB) DLP rule with the classifications. + """ # noqa: E501 + action: Optional[DataLossPreventionAction] = DataLossPreventionAction.MONITOR + classifications: List[UUID] = Field(description="The list of the data classifications associated with the DLP rule.") + description: Optional[StrictStr] = Field(default=None, description="The meaningful description of the SaaS API OOB DLP Rule.") + enabled: Optional[StrictBool] = Field(default=None, description="Specifies whether the system enabled the DLP rule.") + file_size_from: Optional[StrictInt] = Field(default=None, description="The minimum file size in KB for the system to apply the DLP rule.", alias="fileSizeFrom") + file_size_to: Optional[StrictInt] = Field(default=None, description="The maximum file size in KB for the system to apply the DLP rule.", alias="fileSizeTo") + identities: Optional[List[DataLossPreventionIdentity]] = Field(default=None, description="The list of identities associated with the DLP rule.") + incremental_config: OOBIncrementalConfig = Field(alias="incrementalConfig") + label_file_parameters: Optional[LabelActionParameters] = Field(default=None, alias="labelFileParameters") + labels: Optional[List[LabelCriteria]] = Field(default=None, description="The list of label criteria.") + mip_tags: Optional[List[StrictStr]] = Field(default=None, description="The list of of Microsoft Information Protection (MIP) tags.", alias="mipTags") + name: Annotated[str, Field(strict=True, max_length=255)] = Field(description="The name of the SaaS API OOB DLP Rule.") + notification_template_uuid: Optional[UUID] = Field(default=None, description="The unique identifier of the notification template.", alias="notificationTemplateUuid") + notify_actor: Optional[StrictBool] = Field(default=None, description="Specifies whether the system notifies the actor when the rule is triggered.", alias="notifyActor") + notify_owner: Optional[StrictBool] = Field(default=None, description="Specifies whether the system notifies the owner when the rule is triggered.", alias="notifyOwner") + severity: DataLossPreventionSeverity2 + __properties: ClassVar[List[str]] = ["action", "classifications", "description", "enabled", "fileSizeFrom", "fileSizeTo", "identities", "incrementalConfig", "labelFileParameters", "labels", "mipTags", "name", "notificationTemplateUuid", "notifyActor", "notifyOwner", "severity"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of OOBRuleCreateRequestWithClassifications 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 identities (list) + _items = [] + if self.identities: + for _item_identities in self.identities: + if _item_identities: + _items.append(_item_identities.to_dict()) + _dict['identities'] = _items + # override the default output from pydantic by calling `to_dict()` of incremental_config + if self.incremental_config: + _dict['incrementalConfig'] = self.incremental_config.to_dict() + # override the default output from pydantic by calling `to_dict()` of label_file_parameters + if self.label_file_parameters: + _dict['labelFileParameters'] = self.label_file_parameters.to_dict() + # override the default output from pydantic by calling `to_dict()` of each item in labels (list) + _items = [] + if self.labels: + for _item_labels in self.labels: + if _item_labels: + _items.append(_item_labels.to_dict()) + _dict['labels'] = _items + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of OOBRuleCreateRequestWithClassifications from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "action": obj.get("action") if obj.get("action") is not None else DataLossPreventionAction.MONITOR, + "classifications": obj.get("classifications"), + "description": obj.get("description"), + "enabled": obj.get("enabled"), + "fileSizeFrom": obj.get("fileSizeFrom"), + "fileSizeTo": obj.get("fileSizeTo"), + "identities": [DataLossPreventionIdentity.from_dict(_item) for _item in obj["identities"]] if obj.get("identities") is not None else None, + "incrementalConfig": OOBIncrementalConfig.from_dict(obj["incrementalConfig"]) if obj.get("incrementalConfig") is not None else None, + "labelFileParameters": LabelActionParameters.from_dict(obj["labelFileParameters"]) if obj.get("labelFileParameters") is not None else None, + "labels": [LabelCriteria.from_dict(_item) for _item in obj["labels"]] if obj.get("labels") is not None else None, + "mipTags": obj.get("mipTags"), + "name": obj.get("name"), + "notificationTemplateUuid": obj.get("notificationTemplateUuid"), + "notifyActor": obj.get("notifyActor"), + "notifyOwner": obj.get("notifyOwner"), + "severity": obj.get("severity") + }) + return _obj + + diff --git a/secure_access/models/oob_rule_create_request_with_file_size_from.py b/secure_access/models/oob_rule_create_request_with_file_size_from.py new file mode 100644 index 0000000..39c7cf2 --- /dev/null +++ b/secure_access/models/oob_rule_create_request_with_file_size_from.py @@ -0,0 +1,150 @@ +# Copyright 2026 Cisco Systems, Inc. and its affiliates +# +# SPDX-License-Identifier: Apache-2.0 + +# coding: utf-8 + +""" + Cisco Secure Access API + + Unified OpenAPI spec for Cisco Secure Access APIs. + + The version of the OpenAPI document: v2.0.202602030705 + Contact: devnet@cisco.com + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictInt, StrictStr +from typing import Any, ClassVar, Dict, List, Optional +from typing_extensions import Annotated +from uuid import UUID +from secure_access.models.data_loss_prevention_action import DataLossPreventionAction +from secure_access.models.data_loss_prevention_identity import DataLossPreventionIdentity +from secure_access.models.data_loss_prevention_severity2 import DataLossPreventionSeverity2 +from secure_access.models.label_action_parameters import LabelActionParameters +from secure_access.models.label_criteria import LabelCriteria +from secure_access.models.oob_incremental_config import OOBIncrementalConfig +from typing import Optional, Set +from typing_extensions import Self + +class OOBRuleCreateRequestWithFileSizeFrom(BaseModel): + """ + The properties used to create a SaaS API (OOB) DLP rule with the File size. + """ # noqa: E501 + action: Optional[DataLossPreventionAction] = DataLossPreventionAction.MONITOR + classifications: Optional[List[UUID]] = Field(default=None, description="The list of the data classifications associated with the DLP rule.") + description: Optional[StrictStr] = Field(default=None, description="The meaningful description of the SaaS API OOB DLP Rule.") + enabled: Optional[StrictBool] = Field(default=None, description="Specifies whether the system enabled the DLP rule.") + file_size_from: StrictInt = Field(description="The minimum file size in KB for the system to apply the DLP rule.", alias="fileSizeFrom") + file_size_to: Optional[StrictInt] = Field(default=None, description="The maximum file size in KB for the system to apply the DLP rule.", alias="fileSizeTo") + identities: Optional[List[DataLossPreventionIdentity]] = Field(default=None, description="The list of identities associated with the DLP rule.") + incremental_config: OOBIncrementalConfig = Field(alias="incrementalConfig") + label_file_parameters: Optional[LabelActionParameters] = Field(default=None, alias="labelFileParameters") + labels: Optional[List[LabelCriteria]] = Field(default=None, description="The list of label criteria.") + mip_tags: Optional[List[StrictStr]] = Field(default=None, description="The list of of Microsoft Information Protection (MIP) tags.", alias="mipTags") + name: Annotated[str, Field(strict=True, max_length=255)] = Field(description="The name of the SaaS API OOB DLP Rule.") + notification_template_uuid: Optional[UUID] = Field(default=None, description="The unique identifier of the notification template.", alias="notificationTemplateUuid") + notify_actor: Optional[StrictBool] = Field(default=None, description="Specifies whether the system notifies the actor when the rule is triggered.", alias="notifyActor") + notify_owner: Optional[StrictBool] = Field(default=None, description="Specifies whether the system notifies the owner when the rule is triggered.", alias="notifyOwner") + severity: DataLossPreventionSeverity2 + __properties: ClassVar[List[str]] = ["action", "classifications", "description", "enabled", "fileSizeFrom", "fileSizeTo", "identities", "incrementalConfig", "labelFileParameters", "labels", "mipTags", "name", "notificationTemplateUuid", "notifyActor", "notifyOwner", "severity"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of OOBRuleCreateRequestWithFileSizeFrom 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 identities (list) + _items = [] + if self.identities: + for _item_identities in self.identities: + if _item_identities: + _items.append(_item_identities.to_dict()) + _dict['identities'] = _items + # override the default output from pydantic by calling `to_dict()` of incremental_config + if self.incremental_config: + _dict['incrementalConfig'] = self.incremental_config.to_dict() + # override the default output from pydantic by calling `to_dict()` of label_file_parameters + if self.label_file_parameters: + _dict['labelFileParameters'] = self.label_file_parameters.to_dict() + # override the default output from pydantic by calling `to_dict()` of each item in labels (list) + _items = [] + if self.labels: + for _item_labels in self.labels: + if _item_labels: + _items.append(_item_labels.to_dict()) + _dict['labels'] = _items + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of OOBRuleCreateRequestWithFileSizeFrom from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "action": obj.get("action") if obj.get("action") is not None else DataLossPreventionAction.MONITOR, + "classifications": obj.get("classifications"), + "description": obj.get("description"), + "enabled": obj.get("enabled"), + "fileSizeFrom": obj.get("fileSizeFrom"), + "fileSizeTo": obj.get("fileSizeTo"), + "identities": [DataLossPreventionIdentity.from_dict(_item) for _item in obj["identities"]] if obj.get("identities") is not None else None, + "incrementalConfig": OOBIncrementalConfig.from_dict(obj["incrementalConfig"]) if obj.get("incrementalConfig") is not None else None, + "labelFileParameters": LabelActionParameters.from_dict(obj["labelFileParameters"]) if obj.get("labelFileParameters") is not None else None, + "labels": [LabelCriteria.from_dict(_item) for _item in obj["labels"]] if obj.get("labels") is not None else None, + "mipTags": obj.get("mipTags"), + "name": obj.get("name"), + "notificationTemplateUuid": obj.get("notificationTemplateUuid"), + "notifyActor": obj.get("notifyActor"), + "notifyOwner": obj.get("notifyOwner"), + "severity": obj.get("severity") + }) + return _obj + + diff --git a/secure_access/models/oob_rule_create_request_with_labels.py b/secure_access/models/oob_rule_create_request_with_labels.py new file mode 100644 index 0000000..ebf496e --- /dev/null +++ b/secure_access/models/oob_rule_create_request_with_labels.py @@ -0,0 +1,150 @@ +# Copyright 2026 Cisco Systems, Inc. and its affiliates +# +# SPDX-License-Identifier: Apache-2.0 + +# coding: utf-8 + +""" + Cisco Secure Access API + + Unified OpenAPI spec for Cisco Secure Access APIs. + + The version of the OpenAPI document: v2.0.202602030705 + Contact: devnet@cisco.com + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictInt, StrictStr +from typing import Any, ClassVar, Dict, List, Optional +from typing_extensions import Annotated +from uuid import UUID +from secure_access.models.data_loss_prevention_action import DataLossPreventionAction +from secure_access.models.data_loss_prevention_identity import DataLossPreventionIdentity +from secure_access.models.data_loss_prevention_severity2 import DataLossPreventionSeverity2 +from secure_access.models.label_action_parameters import LabelActionParameters +from secure_access.models.label_criteria import LabelCriteria +from secure_access.models.oob_incremental_config import OOBIncrementalConfig +from typing import Optional, Set +from typing_extensions import Self + +class OOBRuleCreateRequestWithLabels(BaseModel): + """ + The properties used to create a SaaS API (OOB) DLP rule with the labels. + """ # noqa: E501 + action: Optional[DataLossPreventionAction] = DataLossPreventionAction.MONITOR + classifications: Optional[List[UUID]] = Field(default=None, description="The list of the data classifications associated with the DLP rule.") + description: Optional[StrictStr] = Field(default=None, description="The meaningful description of the SaaS API OOB DLP Rule.") + enabled: Optional[StrictBool] = Field(default=None, description="Specifies whether the system enabled the DLP rule.") + file_size_from: Optional[StrictInt] = Field(default=None, description="The minimum file size in KB for the system to apply the DLP rule.", alias="fileSizeFrom") + file_size_to: Optional[StrictInt] = Field(default=None, description="The maximum file size in KB for the system to apply the DLP rule.", alias="fileSizeTo") + identities: Optional[List[DataLossPreventionIdentity]] = Field(default=None, description="The list of identities associated with the DLP rule.") + incremental_config: OOBIncrementalConfig = Field(alias="incrementalConfig") + label_file_parameters: Optional[LabelActionParameters] = Field(default=None, alias="labelFileParameters") + labels: List[LabelCriteria] = Field(description="The list of label criteria.") + mip_tags: Optional[List[StrictStr]] = Field(default=None, description="The list of of Microsoft Information Protection (MIP) tags.", alias="mipTags") + name: Annotated[str, Field(strict=True, max_length=255)] = Field(description="The name of the SaaS API OOB DLP Rule.") + notification_template_uuid: Optional[UUID] = Field(default=None, description="The unique identifier of the notification template.", alias="notificationTemplateUuid") + notify_actor: Optional[StrictBool] = Field(default=None, description="Specifies whether the system notifies the actor when the rule is triggered.", alias="notifyActor") + notify_owner: Optional[StrictBool] = Field(default=None, description="Specifies whether the system notifies the owner when the rule is triggered.", alias="notifyOwner") + severity: DataLossPreventionSeverity2 + __properties: ClassVar[List[str]] = ["action", "classifications", "description", "enabled", "fileSizeFrom", "fileSizeTo", "identities", "incrementalConfig", "labelFileParameters", "labels", "mipTags", "name", "notificationTemplateUuid", "notifyActor", "notifyOwner", "severity"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of OOBRuleCreateRequestWithLabels 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 identities (list) + _items = [] + if self.identities: + for _item_identities in self.identities: + if _item_identities: + _items.append(_item_identities.to_dict()) + _dict['identities'] = _items + # override the default output from pydantic by calling `to_dict()` of incremental_config + if self.incremental_config: + _dict['incrementalConfig'] = self.incremental_config.to_dict() + # override the default output from pydantic by calling `to_dict()` of label_file_parameters + if self.label_file_parameters: + _dict['labelFileParameters'] = self.label_file_parameters.to_dict() + # override the default output from pydantic by calling `to_dict()` of each item in labels (list) + _items = [] + if self.labels: + for _item_labels in self.labels: + if _item_labels: + _items.append(_item_labels.to_dict()) + _dict['labels'] = _items + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of OOBRuleCreateRequestWithLabels from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "action": obj.get("action") if obj.get("action") is not None else DataLossPreventionAction.MONITOR, + "classifications": obj.get("classifications"), + "description": obj.get("description"), + "enabled": obj.get("enabled"), + "fileSizeFrom": obj.get("fileSizeFrom"), + "fileSizeTo": obj.get("fileSizeTo"), + "identities": [DataLossPreventionIdentity.from_dict(_item) for _item in obj["identities"]] if obj.get("identities") is not None else None, + "incrementalConfig": OOBIncrementalConfig.from_dict(obj["incrementalConfig"]) if obj.get("incrementalConfig") is not None else None, + "labelFileParameters": LabelActionParameters.from_dict(obj["labelFileParameters"]) if obj.get("labelFileParameters") is not None else None, + "labels": [LabelCriteria.from_dict(_item) for _item in obj["labels"]] if obj.get("labels") is not None else None, + "mipTags": obj.get("mipTags"), + "name": obj.get("name"), + "notificationTemplateUuid": obj.get("notificationTemplateUuid"), + "notifyActor": obj.get("notifyActor"), + "notifyOwner": obj.get("notifyOwner"), + "severity": obj.get("severity") + }) + return _obj + + diff --git a/secure_access/models/oob_rule_create_request_with_mip_tags.py b/secure_access/models/oob_rule_create_request_with_mip_tags.py new file mode 100644 index 0000000..7e02a32 --- /dev/null +++ b/secure_access/models/oob_rule_create_request_with_mip_tags.py @@ -0,0 +1,150 @@ +# Copyright 2026 Cisco Systems, Inc. and its affiliates +# +# SPDX-License-Identifier: Apache-2.0 + +# coding: utf-8 + +""" + Cisco Secure Access API + + Unified OpenAPI spec for Cisco Secure Access APIs. + + The version of the OpenAPI document: v2.0.202602030705 + Contact: devnet@cisco.com + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictInt, StrictStr +from typing import Any, ClassVar, Dict, List, Optional +from typing_extensions import Annotated +from uuid import UUID +from secure_access.models.data_loss_prevention_action import DataLossPreventionAction +from secure_access.models.data_loss_prevention_identity import DataLossPreventionIdentity +from secure_access.models.data_loss_prevention_severity2 import DataLossPreventionSeverity2 +from secure_access.models.label_action_parameters import LabelActionParameters +from secure_access.models.label_criteria import LabelCriteria +from secure_access.models.oob_incremental_config import OOBIncrementalConfig +from typing import Optional, Set +from typing_extensions import Self + +class OOBRuleCreateRequestWithMipTags(BaseModel): + """ + The properties used to create a SaaS API (OOB) DLP rule with the MIP tags. + """ # noqa: E501 + action: Optional[DataLossPreventionAction] = DataLossPreventionAction.MONITOR + classifications: Optional[List[UUID]] = Field(default=None, description="The list of the data classifications associated with the DLP rule.") + description: Optional[StrictStr] = Field(default=None, description="The meaningful description of the SaaS API OOB DLP Rule.") + enabled: Optional[StrictBool] = Field(default=None, description="Specifies whether the system enabled the DLP rule.") + file_size_from: Optional[StrictInt] = Field(default=None, description="The minimum file size in KB for the system to apply the DLP rule.", alias="fileSizeFrom") + file_size_to: Optional[StrictInt] = Field(default=None, description="The maximum file size in KB for the system to apply the DLP rule.", alias="fileSizeTo") + identities: Optional[List[DataLossPreventionIdentity]] = Field(default=None, description="The list of identities associated with the DLP rule.") + incremental_config: OOBIncrementalConfig = Field(alias="incrementalConfig") + label_file_parameters: Optional[LabelActionParameters] = Field(default=None, alias="labelFileParameters") + labels: Optional[List[LabelCriteria]] = Field(default=None, description="The list of label criteria.") + mip_tags: List[StrictStr] = Field(description="The list of of Microsoft Information Protection (MIP) tags.", alias="mipTags") + name: Annotated[str, Field(strict=True, max_length=255)] = Field(description="The name of the SaaS API OOB DLP Rule.") + notification_template_uuid: Optional[UUID] = Field(default=None, description="The unique identifier of the notification template.", alias="notificationTemplateUuid") + notify_actor: Optional[StrictBool] = Field(default=None, description="Specifies whether the system notifies the actor when the rule is triggered.", alias="notifyActor") + notify_owner: Optional[StrictBool] = Field(default=None, description="Specifies whether the system notifies the owner when the rule is triggered.", alias="notifyOwner") + severity: DataLossPreventionSeverity2 + __properties: ClassVar[List[str]] = ["action", "classifications", "description", "enabled", "fileSizeFrom", "fileSizeTo", "identities", "incrementalConfig", "labelFileParameters", "labels", "mipTags", "name", "notificationTemplateUuid", "notifyActor", "notifyOwner", "severity"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of OOBRuleCreateRequestWithMipTags 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 identities (list) + _items = [] + if self.identities: + for _item_identities in self.identities: + if _item_identities: + _items.append(_item_identities.to_dict()) + _dict['identities'] = _items + # override the default output from pydantic by calling `to_dict()` of incremental_config + if self.incremental_config: + _dict['incrementalConfig'] = self.incremental_config.to_dict() + # override the default output from pydantic by calling `to_dict()` of label_file_parameters + if self.label_file_parameters: + _dict['labelFileParameters'] = self.label_file_parameters.to_dict() + # override the default output from pydantic by calling `to_dict()` of each item in labels (list) + _items = [] + if self.labels: + for _item_labels in self.labels: + if _item_labels: + _items.append(_item_labels.to_dict()) + _dict['labels'] = _items + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of OOBRuleCreateRequestWithMipTags from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "action": obj.get("action") if obj.get("action") is not None else DataLossPreventionAction.MONITOR, + "classifications": obj.get("classifications"), + "description": obj.get("description"), + "enabled": obj.get("enabled"), + "fileSizeFrom": obj.get("fileSizeFrom"), + "fileSizeTo": obj.get("fileSizeTo"), + "identities": [DataLossPreventionIdentity.from_dict(_item) for _item in obj["identities"]] if obj.get("identities") is not None else None, + "incrementalConfig": OOBIncrementalConfig.from_dict(obj["incrementalConfig"]) if obj.get("incrementalConfig") is not None else None, + "labelFileParameters": LabelActionParameters.from_dict(obj["labelFileParameters"]) if obj.get("labelFileParameters") is not None else None, + "labels": [LabelCriteria.from_dict(_item) for _item in obj["labels"]] if obj.get("labels") is not None else None, + "mipTags": obj.get("mipTags"), + "name": obj.get("name"), + "notificationTemplateUuid": obj.get("notificationTemplateUuid"), + "notifyActor": obj.get("notifyActor"), + "notifyOwner": obj.get("notifyOwner"), + "severity": obj.get("severity") + }) + return _obj + + diff --git a/secure_access/models/oob_rule_patch_request.py b/secure_access/models/oob_rule_patch_request.py new file mode 100644 index 0000000..56429dc --- /dev/null +++ b/secure_access/models/oob_rule_patch_request.py @@ -0,0 +1,140 @@ +# Copyright 2026 Cisco Systems, Inc. and its affiliates +# +# SPDX-License-Identifier: Apache-2.0 + +# coding: utf-8 + +""" + Cisco Secure Access API + + Unified OpenAPI spec for Cisco Secure Access APIs. + + The version of the OpenAPI document: v2.0.202602030705 + Contact: devnet@cisco.com + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictInt, StrictStr +from typing import Any, ClassVar, Dict, List, Optional +from typing_extensions import Annotated +from uuid import UUID +from secure_access.models.data_loss_prevention_action import DataLossPreventionAction +from secure_access.models.data_loss_prevention_severity2 import DataLossPreventionSeverity2 +from secure_access.models.label_action_parameters import LabelActionParameters +from secure_access.models.label_criteria import LabelCriteria +from secure_access.models.oob_patch_incremental_config import OOBPatchIncrementalConfig +from typing import Optional, Set +from typing_extensions import Self + +class OOBRulePatchRequest(BaseModel): + """ + The properties used to update a SaaS API (OOB) DLP rule. + """ # noqa: E501 + action: Optional[DataLossPreventionAction] = DataLossPreventionAction.MONITOR + classifications: Optional[List[UUID]] = Field(default=None, description="The list of the data classifications associated with the DLP rule.") + description: Optional[StrictStr] = Field(default=None, description="The meaningful description of the SaaS API OOB DLP Rule.") + enabled: Optional[StrictBool] = Field(default=None, description="Specifies whether the system enabled the DLP rule.") + file_size_from: Optional[StrictInt] = Field(default=None, description="The minimum file size in KB for the system to apply the DLP rule.", alias="fileSizeFrom") + file_size_to: Optional[StrictInt] = Field(default=None, description="The maximum file size in KB for the system to apply the DLP rule.", alias="fileSizeTo") + incremental_config: Optional[OOBPatchIncrementalConfig] = Field(default=None, alias="incrementalConfig") + label_file_parameters: Optional[LabelActionParameters] = Field(default=None, alias="labelFileParameters") + labels: Optional[List[LabelCriteria]] = Field(default=None, description="The list of label criteria.") + mip_tags: Optional[List[StrictStr]] = Field(default=None, description="The list of of Microsoft Information Protection (MIP) tags.", alias="mipTags") + name: Optional[Annotated[str, Field(strict=True, max_length=255)]] = Field(default=None, description="The name of the SaaS API OOB DLP Rule.") + notification_template_uuid: Optional[UUID] = Field(default=None, description="The unique identifier of the notification template.", alias="notificationTemplateUuid") + notify_actor: Optional[StrictBool] = Field(default=None, description="Specifies whether the system notifies the actor when the rule is triggered.", alias="notifyActor") + notify_owner: Optional[StrictBool] = Field(default=None, description="Specifies whether the system notifies the owner when the rule is triggered.", alias="notifyOwner") + severity: Optional[DataLossPreventionSeverity2] = None + __properties: ClassVar[List[str]] = ["action", "classifications", "description", "enabled", "fileSizeFrom", "fileSizeTo", "incrementalConfig", "labelFileParameters", "labels", "mipTags", "name", "notificationTemplateUuid", "notifyActor", "notifyOwner", "severity"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of OOBRulePatchRequest 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 incremental_config + if self.incremental_config: + _dict['incrementalConfig'] = self.incremental_config.to_dict() + # override the default output from pydantic by calling `to_dict()` of label_file_parameters + if self.label_file_parameters: + _dict['labelFileParameters'] = self.label_file_parameters.to_dict() + # override the default output from pydantic by calling `to_dict()` of each item in labels (list) + _items = [] + if self.labels: + for _item_labels in self.labels: + if _item_labels: + _items.append(_item_labels.to_dict()) + _dict['labels'] = _items + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of OOBRulePatchRequest from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "action": obj.get("action") if obj.get("action") is not None else DataLossPreventionAction.MONITOR, + "classifications": obj.get("classifications"), + "description": obj.get("description"), + "enabled": obj.get("enabled"), + "fileSizeFrom": obj.get("fileSizeFrom"), + "fileSizeTo": obj.get("fileSizeTo"), + "incrementalConfig": OOBPatchIncrementalConfig.from_dict(obj["incrementalConfig"]) if obj.get("incrementalConfig") is not None else None, + "labelFileParameters": LabelActionParameters.from_dict(obj["labelFileParameters"]) if obj.get("labelFileParameters") is not None else None, + "labels": [LabelCriteria.from_dict(_item) for _item in obj["labels"]] if obj.get("labels") is not None else None, + "mipTags": obj.get("mipTags"), + "name": obj.get("name"), + "notificationTemplateUuid": obj.get("notificationTemplateUuid"), + "notifyActor": obj.get("notifyActor"), + "notifyOwner": obj.get("notifyOwner"), + "severity": obj.get("severity") + }) + return _obj + + diff --git a/secure_access/models/oob_rule_response.py b/secure_access/models/oob_rule_response.py new file mode 100644 index 0000000..699b571 --- /dev/null +++ b/secure_access/models/oob_rule_response.py @@ -0,0 +1,166 @@ +# Copyright 2026 Cisco Systems, Inc. and its affiliates +# +# SPDX-License-Identifier: Apache-2.0 + +# coding: utf-8 + +""" + Cisco Secure Access API + + Unified OpenAPI spec for Cisco Secure Access APIs. + + The version of the OpenAPI document: v2.0.202602030705 + Contact: devnet@cisco.com + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictInt, StrictStr +from typing import Any, ClassVar, Dict, List, Optional +from typing_extensions import Annotated +from uuid import UUID +from secure_access.models.data_loss_prevention_action import DataLossPreventionAction +from secure_access.models.data_loss_prevention_identity import DataLossPreventionIdentity +from secure_access.models.data_loss_prevention_severity2 import DataLossPreventionSeverity2 +from secure_access.models.id_name_ref import IdNameRef +from secure_access.models.label_action_parameters import LabelActionParameters +from secure_access.models.label_criteria import LabelCriteria +from secure_access.models.oob_incremental_config import OOBIncrementalConfig +from typing import Optional, Set +from typing_extensions import Self + +class OOBRuleResponse(BaseModel): + """ + The properties of the SaaS API DLP rule response. + """ # noqa: E501 + action: Optional[DataLossPreventionAction] = DataLossPreventionAction.MONITOR + classifications: Optional[List[IdNameRef]] = Field(default=None, description="The list of data classifications associated with the rule. This field is only included if `includeDetails` contains `classifications`.") + creation_time: Optional[StrictInt] = Field(default=None, description="The date and time represented in seconds since the UNIX Epoch when the system created the SaaS API OOB DLP Rule.", alias="creationTime") + description: Optional[StrictStr] = Field(default=None, description="The meaningful description of the SaaS API OOB DLP Rule.") + enabled: Optional[StrictBool] = Field(default=None, description="Specifies whether the system enabled the DLP rule.") + file_size_from: Optional[StrictInt] = Field(default=None, description="The minimum file size in KB for the system to apply the DLP rule.", alias="fileSizeFrom") + file_size_to: Optional[StrictInt] = Field(default=None, description="The maximum file size in KB for the system to apply the DLP rule.", alias="fileSizeTo") + id: Optional[StrictStr] = Field(default=None, description="The unique identifier of the SaaS API DLP rule.") + identities: Optional[List[DataLossPreventionIdentity]] = Field(default=None, description="The list of identities associated with the DLP rule.") + incremental_config: Optional[OOBIncrementalConfig] = Field(default=None, alias="incrementalConfig") + label_file_parameters: Optional[LabelActionParameters] = Field(default=None, alias="labelFileParameters") + labels: Optional[List[LabelCriteria]] = Field(default=None, description="The list of label criteria.") + mip_tags: Optional[List[StrictStr]] = Field(default=None, description="The list of of Microsoft Information Protection (MIP) tags.", alias="mipTags") + modification_time: Optional[StrictInt] = Field(default=None, description="The date and time represented in seconds since the UNIX Epoch when the system updated the SaaS API OOB DLP Rule.", alias="modificationTime") + name: Optional[Annotated[str, Field(strict=True, max_length=255)]] = Field(default=None, description="The name of the SaaS API OOB DLP Rule.") + notification_template_uuid: Optional[UUID] = Field(default=None, description="The unique identifier of the notification template.", alias="notificationTemplateUuid") + notify_actor: Optional[StrictBool] = Field(default=None, description="Specifies whether the system notifies the actor when the rule is triggered.", alias="notifyActor") + notify_owner: Optional[StrictBool] = Field(default=None, description="Specifies whether the system notifies the owner when the rule is triggered.", alias="notifyOwner") + severity: Optional[DataLossPreventionSeverity2] = None + version: Optional[StrictInt] = Field(default=None, description="The number that represents the version of the SaaS API OOB DLP rule.") + __properties: ClassVar[List[str]] = ["action", "classifications", "creationTime", "description", "enabled", "fileSizeFrom", "fileSizeTo", "id", "identities", "incrementalConfig", "labelFileParameters", "labels", "mipTags", "modificationTime", "name", "notificationTemplateUuid", "notifyActor", "notifyOwner", "severity", "version"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of OOBRuleResponse 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 classifications (list) + _items = [] + if self.classifications: + for _item_classifications in self.classifications: + if _item_classifications: + _items.append(_item_classifications.to_dict()) + _dict['classifications'] = _items + # override the default output from pydantic by calling `to_dict()` of each item in identities (list) + _items = [] + if self.identities: + for _item_identities in self.identities: + if _item_identities: + _items.append(_item_identities.to_dict()) + _dict['identities'] = _items + # override the default output from pydantic by calling `to_dict()` of incremental_config + if self.incremental_config: + _dict['incrementalConfig'] = self.incremental_config.to_dict() + # override the default output from pydantic by calling `to_dict()` of label_file_parameters + if self.label_file_parameters: + _dict['labelFileParameters'] = self.label_file_parameters.to_dict() + # override the default output from pydantic by calling `to_dict()` of each item in labels (list) + _items = [] + if self.labels: + for _item_labels in self.labels: + if _item_labels: + _items.append(_item_labels.to_dict()) + _dict['labels'] = _items + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of OOBRuleResponse from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "action": obj.get("action") if obj.get("action") is not None else DataLossPreventionAction.MONITOR, + "classifications": [IdNameRef.from_dict(_item) for _item in obj["classifications"]] if obj.get("classifications") is not None else None, + "creationTime": obj.get("creationTime"), + "description": obj.get("description"), + "enabled": obj.get("enabled"), + "fileSizeFrom": obj.get("fileSizeFrom"), + "fileSizeTo": obj.get("fileSizeTo"), + "id": obj.get("id"), + "identities": [DataLossPreventionIdentity.from_dict(_item) for _item in obj["identities"]] if obj.get("identities") is not None else None, + "incrementalConfig": OOBIncrementalConfig.from_dict(obj["incrementalConfig"]) if obj.get("incrementalConfig") is not None else None, + "labelFileParameters": LabelActionParameters.from_dict(obj["labelFileParameters"]) if obj.get("labelFileParameters") is not None else None, + "labels": [LabelCriteria.from_dict(_item) for _item in obj["labels"]] if obj.get("labels") is not None else None, + "mipTags": obj.get("mipTags"), + "modificationTime": obj.get("modificationTime"), + "name": obj.get("name"), + "notificationTemplateUuid": obj.get("notificationTemplateUuid"), + "notifyActor": obj.get("notifyActor"), + "notifyOwner": obj.get("notifyOwner"), + "severity": obj.get("severity"), + "version": obj.get("version") + }) + return _obj + + diff --git a/secure_access/models/op.py b/secure_access/models/op.py index 780f104..d360cbb 100644 --- a/secure_access/models/op.py +++ b/secure_access/models/op.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/org_info.py b/secure_access/models/org_info.py index d96fb4b..b0db255 100644 --- a/secure_access/models/org_info.py +++ b/secure_access/models/org_info.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/paginated_destination_lists_response.py b/secure_access/models/paginated_destination_lists_response.py index 74cdedd..cd853ab 100644 --- a/secure_access/models/paginated_destination_lists_response.py +++ b/secure_access/models/paginated_destination_lists_response.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/paginated_destination_object_response.py b/secure_access/models/paginated_destination_object_response.py index 9b7c890..129726a 100644 --- a/secure_access/models/paginated_destination_object_response.py +++ b/secure_access/models/paginated_destination_object_response.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/patch_api_key_request.py b/secure_access/models/patch_api_key_request.py index b369242..3e260f5 100644 --- a/secure_access/models/patch_api_key_request.py +++ b/secure_access/models/patch_api_key_request.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/patch_applications_request.py b/secure_access/models/patch_applications_request.py index 3beb46e..3f2c128 100644 --- a/secure_access/models/patch_applications_request.py +++ b/secure_access/models/patch_applications_request.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/patch_input_body.py b/secure_access/models/patch_input_body.py index 8a7c9bb..d05c68c 100644 --- a/secure_access/models/patch_input_body.py +++ b/secure_access/models/patch_input_body.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) @@ -27,6 +27,7 @@ from typing_extensions import Annotated from secure_access.models.intune_config_input import IntuneConfigInput from secure_access.models.jamf_config_input import JamfConfigInput +from secure_access.models.security_events_config_patch_input import SecurityEventsConfigPatchInput from secure_access.models.webhook_config_input import WebhookConfigInput from typing import Optional, Set from typing_extensions import Self @@ -38,8 +39,9 @@ class PatchInputBody(BaseModel): intune_config: Optional[IntuneConfigInput] = Field(default=None, alias="intuneConfig") jamf_config: Optional[JamfConfigInput] = Field(default=None, alias="jamfConfig") name: Optional[Annotated[str, Field(min_length=1, strict=True, max_length=250)]] = Field(default=None, description="The name of the integration.") + security_events_config: Optional[SecurityEventsConfigPatchInput] = Field(default=None, alias="securityEventsConfig") webhook_config: Optional[WebhookConfigInput] = Field(default=None, alias="webhookConfig") - __properties: ClassVar[List[str]] = ["intuneConfig", "jamfConfig", "name", "webhookConfig"] + __properties: ClassVar[List[str]] = ["intuneConfig", "jamfConfig", "name", "securityEventsConfig", "webhookConfig"] model_config = ConfigDict( populate_by_name=True, @@ -86,6 +88,9 @@ def to_dict(self) -> Dict[str, Any]: # override the default output from pydantic by calling `to_dict()` of jamf_config if self.jamf_config: _dict['jamfConfig'] = self.jamf_config.to_dict() + # override the default output from pydantic by calling `to_dict()` of security_events_config + if self.security_events_config: + _dict['securityEventsConfig'] = self.security_events_config.to_dict() # override the default output from pydantic by calling `to_dict()` of webhook_config if self.webhook_config: _dict['webhookConfig'] = self.webhook_config.to_dict() @@ -104,6 +109,7 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: "intuneConfig": IntuneConfigInput.from_dict(obj["intuneConfig"]) if obj.get("intuneConfig") is not None else None, "jamfConfig": JamfConfigInput.from_dict(obj["jamfConfig"]) if obj.get("jamfConfig") is not None else None, "name": obj.get("name"), + "securityEventsConfig": SecurityEventsConfigPatchInput.from_dict(obj["securityEventsConfig"]) if obj.get("securityEventsConfig") is not None else None, "webhookConfig": WebhookConfigInput.from_dict(obj["webhookConfig"]) if obj.get("webhookConfig") is not None else None }) return _obj diff --git a/secure_access/models/patch_integration_output_body.py b/secure_access/models/patch_integration_output_body.py index d539f71..e330c7d 100644 --- a/secure_access/models/patch_integration_output_body.py +++ b/secure_access/models/patch_integration_output_body.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/patch_network_tunnel_group_request_inner.py b/secure_access/models/patch_network_tunnel_group_request_inner.py index 2903241..0d0788a 100644 --- a/secure_access/models/patch_network_tunnel_group_request_inner.py +++ b/secure_access/models/patch_network_tunnel_group_request_inner.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/patch_network_tunnel_group_request_inner_value.py b/secure_access/models/patch_network_tunnel_group_request_inner_value.py index d1caa32..b8a8662 100644 --- a/secure_access/models/patch_network_tunnel_group_request_inner_value.py +++ b/secure_access/models/patch_network_tunnel_group_request_inner_value.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/policy.py b/secure_access/models/policy.py index a660627..4060ac0 100644 --- a/secure_access/models/policy.py +++ b/secure_access/models/policy.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/policy_rules400_error.py b/secure_access/models/policy_rules400_error.py index b061437..fa89577 100644 --- a/secure_access/models/policy_rules400_error.py +++ b/secure_access/models/policy_rules400_error.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/policy_rules401_error.py b/secure_access/models/policy_rules401_error.py index 1cbbf01..b4292a1 100644 --- a/secure_access/models/policy_rules401_error.py +++ b/secure_access/models/policy_rules401_error.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/policy_rules403_error.py b/secure_access/models/policy_rules403_error.py index ef32066..9c2a00a 100644 --- a/secure_access/models/policy_rules403_error.py +++ b/secure_access/models/policy_rules403_error.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/policy_rules404_error.py b/secure_access/models/policy_rules404_error.py index 8475199..767b369 100644 --- a/secure_access/models/policy_rules404_error.py +++ b/secure_access/models/policy_rules404_error.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/policy_rules500_error.py b/secure_access/models/policy_rules500_error.py index 9ecab80..fbd1d1e 100644 --- a/secure_access/models/policy_rules500_error.py +++ b/secure_access/models/policy_rules500_error.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/policy_rules_rule.py b/secure_access/models/policy_rules_rule.py new file mode 100644 index 0000000..adbfc71 --- /dev/null +++ b/secure_access/models/policy_rules_rule.py @@ -0,0 +1,153 @@ +# Copyright 2026 Cisco Systems, Inc. and its affiliates +# +# SPDX-License-Identifier: Apache-2.0 + +# coding: utf-8 + +""" + Cisco Secure Access API + + Unified OpenAPI spec for Cisco Secure Access APIs. + + The version of the OpenAPI document: v2.0.202602030705 + Contact: devnet@cisco.com + 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, StrictStr, field_validator +from typing import Any, ClassVar, Dict, List, Optional +from typing_extensions import Annotated +from secure_access.models.rule_action import RuleAction +from secure_access.models.rule_conditions_inner import RuleConditionsInner +from secure_access.models.setting_response_inner import SettingResponseInner +from typing import Optional, Set +from typing_extensions import Self + +class PolicyRulesRule(BaseModel): + """ + The properties of the access rule that enables security for the traffic that is described on the rule. The rule includes the actions, settings, and conditions configured on the rule and when these attributes were created or modified. + """ # noqa: E501 + created_at: Optional[datetime] = Field(default=None, description="The date and time when the system created the access rule.", alias="createdAt") + modified_at: Optional[datetime] = Field(default=None, description="The date and time when the system updated the access rule.", alias="modifiedAt") + modified_by: Optional[StrictStr] = Field(default=None, description="A string that includes the organization ID and user ID for the account that modified the access rule.", alias="modifiedBy") + organization_id: Optional[StrictInt] = Field(default=None, description="The ID of the organization.", alias="organizationId") + rule_action: Optional[RuleAction] = Field(default=None, alias="ruleAction") + rule_conditions: Optional[List[RuleConditionsInner]] = Field(default=None, description="The list of conditions that are set on the rule. Updates to \"ReadOnly\" attributes are ignored.", alias="ruleConditions") + rule_description: Optional[Annotated[str, Field(strict=True, max_length=256)]] = Field(default=None, description="The meaningful information about the rule. The description can have no more than 256 characters.", alias="ruleDescription") + rule_id: Optional[StrictInt] = Field(default=None, description="The ID of the rule.", alias="ruleId") + rule_is_default: Optional[StrictBool] = Field(default=None, description="Specifies whether the rule is the default rule.", alias="ruleIsDefault") + rule_is_enabled: Optional[StrictBool] = Field(default=None, description="Specifies whether the rule is enabled.", alias="ruleIsEnabled") + rule_name: Optional[Annotated[str, Field(min_length=2, strict=True, max_length=50)]] = Field(default=None, description="A rule name is a sequence of 2–50 alphanumeric, hyphen, underscore, and space characters. A rule name is unique across all access rules in the organization's Access policy.", alias="ruleName") + rule_priority: Optional[StrictInt] = Field(default=None, description="The positive integer that represents the priority of the rule. The priority is unique across all rules on the policy for the organization.", alias="rulePriority") + rule_settings: Optional[List[SettingResponseInner]] = Field(default=None, description="The properties of the policy settings.", alias="ruleSettings") + __properties: ClassVar[List[str]] = ["createdAt", "modifiedAt", "modifiedBy", "organizationId", "ruleAction", "ruleConditions", "ruleDescription", "ruleId", "ruleIsDefault", "ruleIsEnabled", "ruleName", "rulePriority", "ruleSettings"] + + @field_validator('rule_name') + def rule_name_validate_regular_expression(cls, value): + """Validates the regular expression""" + if value is None: + return value + + if not re.match(r"^[a-zA-Z0-9-_\s]+$", value): + raise ValueError(r"must validate the regular expression /^[a-zA-Z0-9-_\s]+$/") + return value + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of PolicyRulesRule 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([ + "created_at", + "modified_at", + "organization_id", + "rule_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 rule_conditions (list) + _items = [] + if self.rule_conditions: + for _item_rule_conditions in self.rule_conditions: + if _item_rule_conditions: + _items.append(_item_rule_conditions.to_dict()) + _dict['ruleConditions'] = _items + # override the default output from pydantic by calling `to_dict()` of each item in rule_settings (list) + _items = [] + if self.rule_settings: + for _item_rule_settings in self.rule_settings: + if _item_rule_settings: + _items.append(_item_rule_settings.to_dict()) + _dict['ruleSettings'] = _items + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of PolicyRulesRule from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "createdAt": obj.get("createdAt"), + "modifiedAt": obj.get("modifiedAt"), + "modifiedBy": obj.get("modifiedBy"), + "organizationId": obj.get("organizationId"), + "ruleAction": obj.get("ruleAction"), + "ruleConditions": [RuleConditionsInner.from_dict(_item) for _item in obj["ruleConditions"]] if obj.get("ruleConditions") is not None else None, + "ruleDescription": obj.get("ruleDescription"), + "ruleId": obj.get("ruleId"), + "ruleIsDefault": obj.get("ruleIsDefault"), + "ruleIsEnabled": obj.get("ruleIsEnabled"), + "ruleName": obj.get("ruleName"), + "rulePriority": obj.get("rulePriority"), + "ruleSettings": [SettingResponseInner.from_dict(_item) for _item in obj["ruleSettings"]] if obj.get("ruleSettings") is not None else None + }) + return _obj + + diff --git a/secure_access/models/policy_rules_rules.py b/secure_access/models/policy_rules_rules.py index 89e870e..c01254e 100644 --- a/secure_access/models/policy_rules_rules.py +++ b/secure_access/models/policy_rules_rules.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/policy_ztna.py b/secure_access/models/policy_ztna.py index b57241f..829f122 100644 --- a/secure_access/models/policy_ztna.py +++ b/secure_access/models/policy_ztna.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/post_identities_request.py b/secure_access/models/post_identities_request.py index ec91979..70d47ca 100644 --- a/secure_access/models/post_identities_request.py +++ b/secure_access/models/post_identities_request.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/private_application_group.py b/secure_access/models/private_application_group.py index 7621e18..b03bbaf 100644 --- a/secure_access/models/private_application_group.py +++ b/secure_access/models/private_application_group.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/private_resource.py b/secure_access/models/private_resource.py new file mode 100644 index 0000000..ce82790 --- /dev/null +++ b/secure_access/models/private_resource.py @@ -0,0 +1,94 @@ +# Copyright 2026 Cisco Systems, Inc. and its affiliates +# +# SPDX-License-Identifier: Apache-2.0 + +# coding: utf-8 + +""" + Cisco Secure Access API + + Unified OpenAPI spec for Cisco Secure Access APIs. + + The version of the OpenAPI document: v2.0.202602030705 + Contact: devnet@cisco.com + 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 PrivateResource(BaseModel): + """ + The private resource where the end user uploaded or posted the file. + """ # noqa: E501 + id: Optional[StrictStr] = Field(default=None, description="The unique identifier of the private resource.") + name: Optional[StrictStr] = Field(default=None, description="The name of the private resource.") + __properties: ClassVar[List[str]] = ["id", "name"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of PrivateResource 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 PrivateResource from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "id": obj.get("id"), + "name": obj.get("name") + }) + return _obj + + diff --git a/secure_access/models/private_resource_detailed_stats_identities.py b/secure_access/models/private_resource_detailed_stats_identities.py index ad5b2dd..488ed16 100644 --- a/secure_access/models/private_resource_detailed_stats_identities.py +++ b/secure_access/models/private_resource_detailed_stats_identities.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/private_resource_detailed_stats_timerange.py b/secure_access/models/private_resource_detailed_stats_timerange.py index a353e6e..b4f361a 100644 --- a/secure_access/models/private_resource_detailed_stats_timerange.py +++ b/secure_access/models/private_resource_detailed_stats_timerange.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/private_resource_detailed_stats_timerange_total_hits_count.py b/secure_access/models/private_resource_detailed_stats_timerange_total_hits_count.py index 3daa1d2..749525a 100644 --- a/secure_access/models/private_resource_detailed_stats_timerange_total_hits_count.py +++ b/secure_access/models/private_resource_detailed_stats_timerange_total_hits_count.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/private_resource_group.py b/secure_access/models/private_resource_group.py new file mode 100644 index 0000000..015791f --- /dev/null +++ b/secure_access/models/private_resource_group.py @@ -0,0 +1,94 @@ +# Copyright 2026 Cisco Systems, Inc. and its affiliates +# +# SPDX-License-Identifier: Apache-2.0 + +# coding: utf-8 + +""" + Cisco Secure Access API + + Unified OpenAPI spec for Cisco Secure Access APIs. + + The version of the OpenAPI document: v2.0.202602030705 + Contact: devnet@cisco.com + 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 PrivateResourceGroup(BaseModel): + """ + The private resource group where the end user uploaded or posted the file. + """ # noqa: E501 + id: Optional[StrictStr] = Field(default=None, description="The unique identifier of the private resource group.") + name: Optional[StrictStr] = Field(default=None, description="The name of the private resource group.") + __properties: ClassVar[List[str]] = ["id", "name"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of PrivateResourceGroup 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 PrivateResourceGroup from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "id": obj.get("id"), + "name": obj.get("name") + }) + return _obj + + diff --git a/secure_access/models/private_resource_group_list.py b/secure_access/models/private_resource_group_list.py index 361d503..bf4280f 100644 --- a/secure_access/models/private_resource_group_list.py +++ b/secure_access/models/private_resource_group_list.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/private_resource_group_request.py b/secure_access/models/private_resource_group_request.py index 05b5805..b016a8f 100644 --- a/secure_access/models/private_resource_group_request.py +++ b/secure_access/models/private_resource_group_request.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/private_resource_group_response.py b/secure_access/models/private_resource_group_response.py index 3f6ada5..8da0227 100644 --- a/secure_access/models/private_resource_group_response.py +++ b/secure_access/models/private_resource_group_response.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/private_resource_list.py b/secure_access/models/private_resource_list.py index d2ec70f..6c64565 100644 --- a/secure_access/models/private_resource_list.py +++ b/secure_access/models/private_resource_list.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/private_resource_request.py b/secure_access/models/private_resource_request.py index 272f8dc..c1b8ea9 100644 --- a/secure_access/models/private_resource_request.py +++ b/secure_access/models/private_resource_request.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/private_resource_response.py b/secure_access/models/private_resource_response.py index 3440417..1aebfc4 100644 --- a/secure_access/models/private_resource_response.py +++ b/secure_access/models/private_resource_response.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/private_resource_stats.py b/secure_access/models/private_resource_stats.py index 30e0fb5..fb276d9 100644 --- a/secure_access/models/private_resource_stats.py +++ b/secure_access/models/private_resource_stats.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/private_resources400_error.py b/secure_access/models/private_resources400_error.py index 6e0f58d..b76d19c 100644 --- a/secure_access/models/private_resources400_error.py +++ b/secure_access/models/private_resources400_error.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/private_resources401_error.py b/secure_access/models/private_resources401_error.py index 0ab3aa8..ae3fbe9 100644 --- a/secure_access/models/private_resources401_error.py +++ b/secure_access/models/private_resources401_error.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/private_resources403_error.py b/secure_access/models/private_resources403_error.py index 6004f98..041ef14 100644 --- a/secure_access/models/private_resources403_error.py +++ b/secure_access/models/private_resources403_error.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/private_resources404_error.py b/secure_access/models/private_resources404_error.py index 917a85e..096f952 100644 --- a/secure_access/models/private_resources404_error.py +++ b/secure_access/models/private_resources404_error.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/private_resources500_error.py b/secure_access/models/private_resources500_error.py index 0412d73..bbaac34 100644 --- a/secure_access/models/private_resources500_error.py +++ b/secure_access/models/private_resources500_error.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/protocol.py b/secure_access/models/protocol.py index 40ffdcd..80dc48d 100644 --- a/secure_access/models/protocol.py +++ b/secure_access/models/protocol.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/protocol_client_to_resource.py b/secure_access/models/protocol_client_to_resource.py index c5edf18..70ab2cf 100644 --- a/secure_access/models/protocol_client_to_resource.py +++ b/secure_access/models/protocol_client_to_resource.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/protocol_identity.py b/secure_access/models/protocol_identity.py index b42d7aa..33a719c 100644 --- a/secure_access/models/protocol_identity.py +++ b/secure_access/models/protocol_identity.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/protocol_identity_list.py b/secure_access/models/protocol_identity_list.py index 58408cf..c9c19e1 100644 --- a/secure_access/models/protocol_identity_list.py +++ b/secure_access/models/protocol_identity_list.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/protocol_list.py b/secure_access/models/protocol_list.py index 8739096..782d591 100644 --- a/secure_access/models/protocol_list.py +++ b/secure_access/models/protocol_list.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/protocol_object.py b/secure_access/models/protocol_object.py index a71e980..9a792d4 100644 --- a/secure_access/models/protocol_object.py +++ b/secure_access/models/protocol_object.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/protocol_object_in_list.py b/secure_access/models/protocol_object_in_list.py index 79b685e..3c1ac52 100644 --- a/secure_access/models/protocol_object_in_list.py +++ b/secure_access/models/protocol_object_in_list.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/protocol_proxy_to_resource.py b/secure_access/models/protocol_proxy_to_resource.py index edb5fea..3b04acc 100644 --- a/secure_access/models/protocol_proxy_to_resource.py +++ b/secure_access/models/protocol_proxy_to_resource.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/put_rule_request.py b/secure_access/models/put_rule_request.py index e5861a6..3ca831c 100644 --- a/secure_access/models/put_rule_request.py +++ b/secure_access/models/put_rule_request.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/put_rules_request.py b/secure_access/models/put_rules_request.py index 8fc4512..a7d9f11 100644 --- a/secure_access/models/put_rules_request.py +++ b/secure_access/models/put_rules_request.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/put_rules_request_properties_inner.py b/secure_access/models/put_rules_request_properties_inner.py index e8bc744..27a82cc 100644 --- a/secure_access/models/put_rules_request_properties_inner.py +++ b/secure_access/models/put_rules_request_properties_inner.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/real_time_dlp_rule_event.py b/secure_access/models/real_time_dlp_rule_event.py new file mode 100644 index 0000000..78a0322 --- /dev/null +++ b/secure_access/models/real_time_dlp_rule_event.py @@ -0,0 +1,149 @@ +# Copyright 2026 Cisco Systems, Inc. and its affiliates +# +# SPDX-License-Identifier: Apache-2.0 + +# coding: utf-8 + +""" + Cisco Secure Access API + + Unified OpenAPI spec for Cisco Secure Access APIs. + + The version of the OpenAPI document: v2.0.202602030705 + Contact: devnet@cisco.com + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from datetime import datetime +from pydantic import BaseModel, ConfigDict, Field, StrictInt, StrictStr +from typing import Any, ClassVar, Dict, List, Optional +from secure_access.models.application import Application +from secure_access.models.data_loss_prevention_application_category import DataLossPreventionApplicationCategory +from secure_access.models.identity import Identity +from secure_access.models.private_resource import PrivateResource +from secure_access.models.private_resource_group import PrivateResourceGroup +from secure_access.models.rule import Rule +from typing import Optional, Set +from typing_extensions import Self + +class RealTimeDlpRuleEvent(BaseModel): + """ + The properties of the Real-Time DLP rule event. + """ # noqa: E501 + action: Optional[StrictStr] = Field(default=None, description="The action triggered by the DLP rule.") + application: Optional[Application] = None + application_category: Optional[DataLossPreventionApplicationCategory] = Field(default=None, alias="applicationCategory") + content_type: Optional[StrictStr] = Field(default=None, description="The type of data that triggered the DLP rule event.", alias="contentType") + destination_url: Optional[StrictStr] = Field(default=None, description="The URL where the end user uploadedor posted the file.", alias="destinationUrl") + detected: Optional[datetime] = Field(default=None, description="The date and time when the system detected the content, formatted as an ISO 8601 timestamp.") + direction: Optional[StrictStr] = Field(default=None, description="The direction of the detected traffic.") + event_id: Optional[StrictStr] = Field(default=None, description="The unique identifier of the event.", alias="eventId") + file_labels: Optional[List[StrictStr]] = Field(default=None, description="The list of labels associated with the file.", alias="fileLabels") + file_name: Optional[StrictStr] = Field(default=None, description="The name of the file where the system identified a classification match. For messages or posts, the system returns `Content`.", alias="fileName") + identity: Optional[Identity] = None + private_resource: Optional[PrivateResource] = Field(default=None, alias="privateResource") + private_resource_group: Optional[PrivateResourceGroup] = Field(default=None, alias="privateResourceGroup") + rule: Optional[Rule] = None + severity: Optional[StrictStr] = Field(default=None, description="The severity of the DLP rule.") + sha256_hash: Optional[StrictStr] = Field(default=None, description="The unique SHA256 hash of the file.", alias="sha256Hash") + total_size_in_bytes: Optional[StrictInt] = Field(default=None, description="The size of the file in bytes that triggered the DLP rule event.", alias="totalSizeInBytes") + __properties: ClassVar[List[str]] = ["action", "application", "applicationCategory", "contentType", "destinationUrl", "detected", "direction", "eventId", "fileLabels", "fileName", "identity", "privateResource", "privateResourceGroup", "rule", "severity", "sha256Hash", "totalSizeInBytes"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of RealTimeDlpRuleEvent 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 application + if self.application: + _dict['application'] = self.application.to_dict() + # override the default output from pydantic by calling `to_dict()` of application_category + if self.application_category: + _dict['applicationCategory'] = self.application_category.to_dict() + # override the default output from pydantic by calling `to_dict()` of identity + if self.identity: + _dict['identity'] = self.identity.to_dict() + # override the default output from pydantic by calling `to_dict()` of private_resource + if self.private_resource: + _dict['privateResource'] = self.private_resource.to_dict() + # override the default output from pydantic by calling `to_dict()` of private_resource_group + if self.private_resource_group: + _dict['privateResourceGroup'] = self.private_resource_group.to_dict() + # override the default output from pydantic by calling `to_dict()` of rule + if self.rule: + _dict['rule'] = self.rule.to_dict() + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of RealTimeDlpRuleEvent from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "action": obj.get("action"), + "application": Application.from_dict(obj["application"]) if obj.get("application") is not None else None, + "applicationCategory": DataLossPreventionApplicationCategory.from_dict(obj["applicationCategory"]) if obj.get("applicationCategory") is not None else None, + "contentType": obj.get("contentType"), + "destinationUrl": obj.get("destinationUrl"), + "detected": obj.get("detected"), + "direction": obj.get("direction"), + "eventId": obj.get("eventId"), + "fileLabels": obj.get("fileLabels"), + "fileName": obj.get("fileName"), + "identity": Identity.from_dict(obj["identity"]) if obj.get("identity") is not None else None, + "privateResource": PrivateResource.from_dict(obj["privateResource"]) if obj.get("privateResource") is not None else None, + "privateResourceGroup": PrivateResourceGroup.from_dict(obj["privateResourceGroup"]) if obj.get("privateResourceGroup") is not None else None, + "rule": Rule.from_dict(obj["rule"]) if obj.get("rule") is not None else None, + "severity": obj.get("severity"), + "sha256Hash": obj.get("sha256Hash"), + "totalSizeInBytes": obj.get("totalSizeInBytes") + }) + return _obj + + diff --git a/secure_access/models/record.py b/secure_access/models/record.py index b1f39ee..1a0fbbb 100644 --- a/secure_access/models/record.py +++ b/secure_access/models/record.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/referenced_groups_response_schema.py b/secure_access/models/referenced_groups_response_schema.py index 7f8aacc..71cd83c 100644 --- a/secure_access/models/referenced_groups_response_schema.py +++ b/secure_access/models/referenced_groups_response_schema.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/referenced_rules_response_schema.py b/secure_access/models/referenced_rules_response_schema.py index 6374cea..49a52db 100644 --- a/secure_access/models/referenced_rules_response_schema.py +++ b/secure_access/models/referenced_rules_response_schema.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/region_list.py b/secure_access/models/region_list.py index ee65fb9..ca3b776 100644 --- a/secure_access/models/region_list.py +++ b/secure_access/models/region_list.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/region_list_regions_inner.py b/secure_access/models/region_list_regions_inner.py index 0b2180f..8780220 100644 --- a/secure_access/models/region_list_regions_inner.py +++ b/secure_access/models/region_list_regions_inner.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/regions.py b/secure_access/models/regions.py index 70aaf1d..b2f241f 100644 --- a/secure_access/models/regions.py +++ b/secure_access/models/regions.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/regions_results_inner.py b/secure_access/models/regions_results_inner.py index 1ebfe0e..206f060 100644 --- a/secure_access/models/regions_results_inner.py +++ b/secure_access/models/regions_results_inner.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/regions_results_inner_countries_inner.py b/secure_access/models/regions_results_inner_countries_inner.py index 94f97df..d5f8955 100644 --- a/secure_access/models/regions_results_inner_countries_inner.py +++ b/secure_access/models/regions_results_inner_countries_inner.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/remote_access.py b/secure_access/models/remote_access.py index 5292261..5b93028 100644 --- a/secure_access/models/remote_access.py +++ b/secure_access/models/remote_access.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/remote_access_identities_inner.py b/secure_access/models/remote_access_identities_inner.py index 5e21905..51f57f8 100644 --- a/secure_access/models/remote_access_identities_inner.py +++ b/secure_access/models/remote_access_identities_inner.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/remote_access_identities_inner_type.py b/secure_access/models/remote_access_identities_inner_type.py index 086e2d9..1513ee6 100644 --- a/secure_access/models/remote_access_identities_inner_type.py +++ b/secure_access/models/remote_access_identities_inner_type.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/reporting.py b/secure_access/models/reporting.py index fd440a1..7bfea75 100644 --- a/secure_access/models/reporting.py +++ b/secure_access/models/reporting.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/reporting400_error.py b/secure_access/models/reporting400_error.py index 7cebc0a..8a681b7 100644 --- a/secure_access/models/reporting400_error.py +++ b/secure_access/models/reporting400_error.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/reporting401_error.py b/secure_access/models/reporting401_error.py index 25a8c8c..9a4ebf2 100644 --- a/secure_access/models/reporting401_error.py +++ b/secure_access/models/reporting401_error.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/reporting403_error.py b/secure_access/models/reporting403_error.py index f6c18a2..0158e62 100644 --- a/secure_access/models/reporting403_error.py +++ b/secure_access/models/reporting403_error.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/reporting404_error.py b/secure_access/models/reporting404_error.py index 621e76a..1eef50d 100644 --- a/secure_access/models/reporting404_error.py +++ b/secure_access/models/reporting404_error.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/reporting500_error.py b/secure_access/models/reporting500_error.py index e676842..60a336e 100644 --- a/secure_access/models/reporting500_error.py +++ b/secure_access/models/reporting500_error.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/ztna_application.py b/secure_access/models/reporting_application.py similarity index 67% rename from secure_access/models/ztna_application.py rename to secure_access/models/reporting_application.py index bf9cf8c..ee226d0 100644 --- a/secure_access/models/ztna_application.py +++ b/secure_access/models/reporting_application.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) @@ -22,20 +22,31 @@ import re # noqa: F401 import json -from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt, StrictStr +from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt, StrictStr, field_validator from typing import Any, ClassVar, Dict, List, Optional, Union -from secure_access.models.ztna_application_category import ZtnaApplicationCategory +from secure_access.models.reporting_application_category import ReportingApplicationCategory from typing import Optional, Set from typing_extensions import Self -class ZtnaApplication(BaseModel): +class ReportingApplication(BaseModel): """ - ZtnaApplication + The information about the application. """ # noqa: E501 - category: Optional[ZtnaApplicationCategory] = None - id: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="id of the application") - label: Optional[StrictStr] = Field(default=None, description="label of the application") - __properties: ClassVar[List[str]] = ["category", "id", "label"] + category: Optional[ReportingApplicationCategory] = None + id: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="The ID of the application.") + label: Optional[StrictStr] = Field(default=None, description="The descriptive label for the application.") + type: Optional[StrictStr] = Field(default=None, description="The type of the application: NBAR or AVC.") + __properties: ClassVar[List[str]] = ["category", "id", "label", "type"] + + @field_validator('type') + def type_validate_enum(cls, value): + """Validates the enum""" + if value is None: + return value + + if value not in set(['NBAR', 'AVC']): + raise ValueError("must be one of enum values ('NBAR', 'AVC')") + return value model_config = ConfigDict( populate_by_name=True, @@ -55,7 +66,7 @@ def to_json(self) -> str: @classmethod def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of ZtnaApplication from a JSON string""" + """Create an instance of ReportingApplication from a JSON string""" return cls.from_dict(json.loads(json_str)) def to_dict(self) -> Dict[str, Any]: @@ -83,7 +94,7 @@ def to_dict(self) -> Dict[str, Any]: @classmethod def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of ZtnaApplication from a dict""" + """Create an instance of ReportingApplication from a dict""" if obj is None: return None @@ -91,9 +102,10 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: return cls.model_validate(obj) _obj = cls.model_validate({ - "category": ZtnaApplicationCategory.from_dict(obj["category"]) if obj.get("category") is not None else None, + "category": ReportingApplicationCategory.from_dict(obj["category"]) if obj.get("category") is not None else None, "id": obj.get("id"), - "label": obj.get("label") + "label": obj.get("label"), + "type": obj.get("type") }) return _obj diff --git a/secure_access/models/ztna_application_category.py b/secure_access/models/reporting_application_category.py similarity index 77% rename from secure_access/models/ztna_application_category.py rename to secure_access/models/reporting_application_category.py index 6ec14be..9743b9f 100644 --- a/secure_access/models/ztna_application_category.py +++ b/secure_access/models/reporting_application_category.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) @@ -27,13 +27,13 @@ from typing import Optional, Set from typing_extensions import Self -class ZtnaApplicationCategory(BaseModel): +class ReportingApplicationCategory(BaseModel): """ - the category of the application + The category of the application. """ # noqa: E501 - label: Optional[StrictStr] = Field(default=None, description="label of the application category") - type: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="private vs public type") - __properties: ClassVar[List[str]] = ["label", "type"] + id: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="The ID of the application category.") + label: Optional[StrictStr] = Field(default=None, description="The label of the application category.") + __properties: ClassVar[List[str]] = ["id", "label"] model_config = ConfigDict( populate_by_name=True, @@ -53,7 +53,7 @@ def to_json(self) -> str: @classmethod def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of ZtnaApplicationCategory from a JSON string""" + """Create an instance of ReportingApplicationCategory from a JSON string""" return cls.from_dict(json.loads(json_str)) def to_dict(self) -> Dict[str, Any]: @@ -78,7 +78,7 @@ def to_dict(self) -> Dict[str, Any]: @classmethod def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of ZtnaApplicationCategory from a dict""" + """Create an instance of ReportingApplicationCategory from a dict""" if obj is None: return None @@ -86,8 +86,8 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: return cls.model_validate(obj) _obj = cls.model_validate({ - "label": obj.get("label"), - "type": obj.get("type") + "id": obj.get("id"), + "label": obj.get("label") }) return _obj diff --git a/secure_access/models/reporting_category.py b/secure_access/models/reporting_category.py index 0ee7a3c..aee5b12 100644 --- a/secure_access/models/reporting_category.py +++ b/secure_access/models/reporting_category.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/reporting_data_center.py b/secure_access/models/reporting_data_center.py index 485dfb9..8aad2c7 100644 --- a/secure_access/models/reporting_data_center.py +++ b/secure_access/models/reporting_data_center.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/ztna_policy_ruleset.py b/secure_access/models/reporting_identity.py similarity index 66% rename from secure_access/models/ztna_policy_ruleset.py rename to secure_access/models/reporting_identity.py index 1e8db9c..353de8e 100644 --- a/secure_access/models/ztna_policy_ruleset.py +++ b/secure_access/models/reporting_identity.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) @@ -22,20 +22,21 @@ import re # noqa: F401 import json -from pydantic import BaseModel, ConfigDict, StrictFloat, StrictInt, StrictStr -from typing import Any, ClassVar, Dict, List, Optional, Union -from secure_access.models.ztna_policy_privateapplicationgroup import ZtnaPolicyPrivateapplicationgroup +from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictFloat, StrictInt, StrictStr +from typing import Any, ClassVar, Dict, List, Union +from secure_access.models.identity_type import IdentityType from typing import Optional, Set from typing_extensions import Self -class ZtnaPolicyRuleset(BaseModel): +class ReportingIdentity(BaseModel): """ - ZtnaPolicyRuleset + The information about the identity. """ # noqa: E501 - id: Optional[Union[StrictFloat, StrictInt]] = None - label: Optional[StrictStr] = None - rule: Optional[ZtnaPolicyPrivateapplicationgroup] = None - __properties: ClassVar[List[str]] = ["id", "label", "rule"] + deleted: StrictBool = Field(description="Indicates whether the identity was deleted.") + id: Union[StrictFloat, StrictInt] = Field(description="The ID of the identity.") + label: StrictStr = Field(description="The descriptive label for the identity.") + type: IdentityType + __properties: ClassVar[List[str]] = ["deleted", "id", "label", "type"] model_config = ConfigDict( populate_by_name=True, @@ -55,7 +56,7 @@ def to_json(self) -> str: @classmethod def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of ZtnaPolicyRuleset from a JSON string""" + """Create an instance of ReportingIdentity from a JSON string""" return cls.from_dict(json.loads(json_str)) def to_dict(self) -> Dict[str, Any]: @@ -76,14 +77,14 @@ def to_dict(self) -> Dict[str, Any]: exclude=excluded_fields, exclude_none=True, ) - # override the default output from pydantic by calling `to_dict()` of rule - if self.rule: - _dict['rule'] = self.rule.to_dict() + # override the default output from pydantic by calling `to_dict()` of type + if self.type: + _dict['type'] = self.type.to_dict() return _dict @classmethod def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of ZtnaPolicyRuleset from a dict""" + """Create an instance of ReportingIdentity from a dict""" if obj is None: return None @@ -91,9 +92,10 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: return cls.model_validate(obj) _obj = cls.model_validate({ + "deleted": obj.get("deleted"), "id": obj.get("id"), "label": obj.get("label"), - "rule": ZtnaPolicyPrivateapplicationgroup.from_dict(obj["rule"]) if obj.get("rule") is not None else None + "type": IdentityType.from_dict(obj["type"]) if obj.get("type") is not None else None }) return _obj diff --git a/secure_access/models/reporting_rule.py b/secure_access/models/reporting_rule.py index db924d0..b8e0ae7 100644 --- a/secure_access/models/reporting_rule.py +++ b/secure_access/models/reporting_rule.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/severity.py b/secure_access/models/reporting_severity.py similarity index 75% rename from secure_access/models/severity.py rename to secure_access/models/reporting_severity.py index 3cce48d..5d65ea2 100644 --- a/secure_access/models/severity.py +++ b/secure_access/models/reporting_severity.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) @@ -23,7 +23,7 @@ from typing_extensions import Self -class Severity(str, Enum): +class ReportingSeverity(str, Enum): """ The severity level of the rule. """ @@ -38,7 +38,7 @@ class Severity(str, Enum): @classmethod def from_json(cls, json_str: str) -> Self: - """Create an instance of Severity from a JSON string""" + """Create an instance of ReportingSeverity from a JSON string""" return cls(json.loads(json_str)) diff --git a/secure_access/models/reporting_summary.py b/secure_access/models/reporting_summary.py index bf81624..b30fbf2 100644 --- a/secure_access/models/reporting_summary.py +++ b/secure_access/models/reporting_summary.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/request_and_connection_counts.py b/secure_access/models/request_and_connection_counts.py index c35364e..1b471d3 100644 --- a/secure_access/models/request_and_connection_counts.py +++ b/secure_access/models/request_and_connection_counts.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/request_counts.py b/secure_access/models/request_counts.py index cffaf7c..6df7d1c 100644 --- a/secure_access/models/request_counts.py +++ b/secure_access/models/request_counts.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/request_details_list_inner.py b/secure_access/models/request_details_list_inner.py index f0f198f..371d9ca 100644 --- a/secure_access/models/request_details_list_inner.py +++ b/secure_access/models/request_details_list_inner.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/request_summary_app_connector.py b/secure_access/models/request_summary_app_connector.py index 5f8aa7c..b138450 100644 --- a/secure_access/models/request_summary_app_connector.py +++ b/secure_access/models/request_summary_app_connector.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/request_summary_app_connector_group.py b/secure_access/models/request_summary_app_connector_group.py index 002b24f..5f7621c 100644 --- a/secure_access/models/request_summary_app_connector_group.py +++ b/secure_access/models/request_summary_app_connector_group.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/requests.py b/secure_access/models/requests.py index 8e7e7c0..7d9b4c5 100644 --- a/secure_access/models/requests.py +++ b/secure_access/models/requests.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/requests_by_app_connector.py b/secure_access/models/requests_by_app_connector.py index 59a175e..7331244 100644 --- a/secure_access/models/requests_by_app_connector.py +++ b/secure_access/models/requests_by_app_connector.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/requests_by_app_connector_group.py b/secure_access/models/requests_by_app_connector_group.py index ed8e781..ca41852 100644 --- a/secure_access/models/requests_by_app_connector_group.py +++ b/secure_access/models/requests_by_app_connector_group.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/requests_information_inner.py b/secure_access/models/requests_information_inner.py index 2cb9cc0..6441e5c 100644 --- a/secure_access/models/requests_information_inner.py +++ b/secure_access/models/requests_information_inner.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/requestsby_hour.py b/secure_access/models/requestsby_hour.py index 018a6b5..91528f8 100644 --- a/secure_access/models/requestsby_hour.py +++ b/secure_access/models/requestsby_hour.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/resource_addresses_inner.py b/secure_access/models/resource_addresses_inner.py index fb78751..5dc2780 100644 --- a/secure_access/models/resource_addresses_inner.py +++ b/secure_access/models/resource_addresses_inner.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/resource_addresses_inner_protocol_ports_inner.py b/secure_access/models/resource_addresses_inner_protocol_ports_inner.py index 5b9a1a9..91a258a 100644 --- a/secure_access/models/resource_addresses_inner_protocol_ports_inner.py +++ b/secure_access/models/resource_addresses_inner_protocol_ports_inner.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/resource_connector_groups400_error.py b/secure_access/models/resource_connector_groups400_error.py index 971ed9a..ba43c51 100644 --- a/secure_access/models/resource_connector_groups400_error.py +++ b/secure_access/models/resource_connector_groups400_error.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/resource_connector_groups401_error.py b/secure_access/models/resource_connector_groups401_error.py index 6637d0e..b95fc60 100644 --- a/secure_access/models/resource_connector_groups401_error.py +++ b/secure_access/models/resource_connector_groups401_error.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/resource_connector_groups403_error.py b/secure_access/models/resource_connector_groups403_error.py index b9a7ea2..3a079ed 100644 --- a/secure_access/models/resource_connector_groups403_error.py +++ b/secure_access/models/resource_connector_groups403_error.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/resource_connector_groups404_error.py b/secure_access/models/resource_connector_groups404_error.py index aa8ca13..bcd11fd 100644 --- a/secure_access/models/resource_connector_groups404_error.py +++ b/secure_access/models/resource_connector_groups404_error.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/resource_connector_groups409_error.py b/secure_access/models/resource_connector_groups409_error.py new file mode 100644 index 0000000..0eab884 --- /dev/null +++ b/secure_access/models/resource_connector_groups409_error.py @@ -0,0 +1,92 @@ +# Copyright 2026 Cisco Systems, Inc. and its affiliates +# +# SPDX-License-Identifier: Apache-2.0 + +# coding: utf-8 + +""" + Cisco Secure Access API + + Unified OpenAPI spec for Cisco Secure Access APIs. + + The version of the OpenAPI document: v2.0.202602030705 + Contact: devnet@cisco.com + 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 ResourceConnectorGroups409Error(BaseModel): + """ + ResourceConnectorGroups409Error + """ # noqa: E501 + error: Optional[StrictStr] = Field(default=None, description="Error message explaining the reason for failure.") + __properties: ClassVar[List[str]] = ["error"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of ResourceConnectorGroups409Error 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 ResourceConnectorGroups409Error from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "error": obj.get("error") + }) + return _obj + + diff --git a/secure_access/models/resource_connector_groups500_error.py b/secure_access/models/resource_connector_groups500_error.py index 77ae99f..cde7d72 100644 --- a/secure_access/models/resource_connector_groups500_error.py +++ b/secure_access/models/resource_connector_groups500_error.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/response.py b/secure_access/models/response.py index 4a06467..66ac67a 100644 --- a/secure_access/models/response.py +++ b/secure_access/models/response.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/response_data.py b/secure_access/models/response_data.py index 0004641..f30c6c0 100644 --- a/secure_access/models/response_data.py +++ b/secure_access/models/response_data.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/responses.py b/secure_access/models/responses.py index 559cd0f..34069e0 100644 --- a/secure_access/models/responses.py +++ b/secure_access/models/responses.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/responses_information_inner.py b/secure_access/models/responses_information_inner.py index b4e372a..3135bc6 100644 --- a/secure_access/models/responses_information_inner.py +++ b/secure_access/models/responses_information_inner.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/risk_score.py b/secure_access/models/risk_score.py index 9132f06..023521c 100644 --- a/secure_access/models/risk_score.py +++ b/secure_access/models/risk_score.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/risk_score_indicators_inner.py b/secure_access/models/risk_score_indicators_inner.py index 3871261..2ece011 100644 --- a/secure_access/models/risk_score_indicators_inner.py +++ b/secure_access/models/risk_score_indicators_inner.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/roaming_computer_object.py b/secure_access/models/roaming_computer_object.py index 73ccdb3..db488c2 100644 --- a/secure_access/models/roaming_computer_object.py +++ b/secure_access/models/roaming_computer_object.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/roaming_computers400_error.py b/secure_access/models/roaming_computers400_error.py index 4a7594e..83e782a 100644 --- a/secure_access/models/roaming_computers400_error.py +++ b/secure_access/models/roaming_computers400_error.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/roaming_computers401_error.py b/secure_access/models/roaming_computers401_error.py index e79bc8f..53308f1 100644 --- a/secure_access/models/roaming_computers401_error.py +++ b/secure_access/models/roaming_computers401_error.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/routing_request.py b/secure_access/models/routing_request.py index 3790bd0..3b2cf7a 100644 --- a/secure_access/models/routing_request.py +++ b/secure_access/models/routing_request.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/routing_request_data.py b/secure_access/models/routing_request_data.py index 4fc761e..c905b46 100644 --- a/secure_access/models/routing_request_data.py +++ b/secure_access/models/routing_request_data.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/routing_response.py b/secure_access/models/routing_response.py index 57f9e26..c32d1f6 100644 --- a/secure_access/models/routing_response.py +++ b/secure_access/models/routing_response.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/routing_response_data.py b/secure_access/models/routing_response_data.py index a86b2c7..32541d5 100644 --- a/secure_access/models/routing_response_data.py +++ b/secure_access/models/routing_response_data.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/rule.py b/secure_access/models/rule.py index faa7ae3..f9f7eec 100644 --- a/secure_access/models/rule.py +++ b/secure_access/models/rule.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) @@ -22,44 +22,20 @@ import re # noqa: F401 import json -from datetime import datetime -from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictInt, StrictStr, field_validator +from pydantic import BaseModel, ConfigDict, Field, StrictStr from typing import Any, ClassVar, Dict, List, Optional -from typing_extensions import Annotated -from secure_access.models.rule_action import RuleAction -from secure_access.models.rule_conditions_inner import RuleConditionsInner -from secure_access.models.setting_response_inner import SettingResponseInner +from secure_access.models.classifications_inner import ClassificationsInner from typing import Optional, Set from typing_extensions import Self class Rule(BaseModel): """ - The properties of the access rule that enables security for the traffic that is described on the rule. The rule includes the actions, settings, and conditions configured on the rule and when these attributes were created or modified. + The properties of the DLP rule that triggered the event. """ # noqa: E501 - created_at: Optional[datetime] = Field(default=None, description="The date and time when the system created the access rule.", alias="createdAt") - modified_at: Optional[datetime] = Field(default=None, description="The date and time when the system updated the access rule.", alias="modifiedAt") - modified_by: Optional[StrictStr] = Field(default=None, description="A string that includes the organization ID and user ID for the account that modified the access rule.", alias="modifiedBy") - organization_id: Optional[StrictInt] = Field(default=None, description="The ID of the organization.", alias="organizationId") - rule_action: Optional[RuleAction] = Field(default=None, alias="ruleAction") - rule_conditions: Optional[List[RuleConditionsInner]] = Field(default=None, description="The list of conditions that are set on the rule. Updates to \"ReadOnly\" attributes are ignored.", alias="ruleConditions") - rule_description: Optional[Annotated[str, Field(strict=True, max_length=256)]] = Field(default=None, description="The meaningful information about the rule. The description can have no more than 256 characters.", alias="ruleDescription") - rule_id: Optional[StrictInt] = Field(default=None, description="The ID of the rule.", alias="ruleId") - rule_is_default: Optional[StrictBool] = Field(default=None, description="Specifies whether the rule is the default rule.", alias="ruleIsDefault") - rule_is_enabled: Optional[StrictBool] = Field(default=None, description="Specifies whether the rule is enabled.", alias="ruleIsEnabled") - rule_name: Optional[Annotated[str, Field(min_length=2, strict=True, max_length=50)]] = Field(default=None, description="A rule name is a sequence of 2–50 alphanumeric, hyphen, underscore, and space characters. A rule name is unique across all access rules in the organization's Access policy.", alias="ruleName") - rule_priority: Optional[StrictInt] = Field(default=None, description="The positive integer that represents the priority of the rule. The priority is unique across all rules on the policy for the organization.", alias="rulePriority") - rule_settings: Optional[List[SettingResponseInner]] = Field(default=None, description="The properties of the policy settings.", alias="ruleSettings") - __properties: ClassVar[List[str]] = ["createdAt", "modifiedAt", "modifiedBy", "organizationId", "ruleAction", "ruleConditions", "ruleDescription", "ruleId", "ruleIsDefault", "ruleIsEnabled", "ruleName", "rulePriority", "ruleSettings"] - - @field_validator('rule_name') - def rule_name_validate_regular_expression(cls, value): - """Validates the regular expression""" - if value is None: - return value - - if not re.match(r"^[a-zA-Z0-9-_\s]+$", value): - raise ValueError(r"must validate the regular expression /^[a-zA-Z0-9-_\s]+$/") - return value + classifications: Optional[List[ClassificationsInner]] = Field(default=None, description="The list of the classifications associated with the rule.") + id: Optional[StrictStr] = Field(default=None, description="The unique identifier of the DLP rule.") + name: Optional[StrictStr] = Field(default=None, description="The name of the DLP rule.") + __properties: ClassVar[List[str]] = ["classifications", "id", "name"] model_config = ConfigDict( populate_by_name=True, @@ -91,16 +67,8 @@ def to_dict(self) -> Dict[str, Any]: * `None` is only added to the output dict for nullable fields that were set at model initialization. Other fields with value `None` are ignored. - * OpenAPI `readOnly` fields are excluded. - * OpenAPI `readOnly` fields are excluded. - * OpenAPI `readOnly` fields are excluded. - * OpenAPI `readOnly` fields are excluded. """ excluded_fields: Set[str] = set([ - "created_at", - "modified_at", - "organization_id", - "rule_id", ]) _dict = self.model_dump( @@ -108,20 +76,13 @@ def to_dict(self) -> Dict[str, Any]: exclude=excluded_fields, exclude_none=True, ) - # override the default output from pydantic by calling `to_dict()` of each item in rule_conditions (list) + # override the default output from pydantic by calling `to_dict()` of each item in classifications (list) _items = [] - if self.rule_conditions: - for _item_rule_conditions in self.rule_conditions: - if _item_rule_conditions: - _items.append(_item_rule_conditions.to_dict()) - _dict['ruleConditions'] = _items - # override the default output from pydantic by calling `to_dict()` of each item in rule_settings (list) - _items = [] - if self.rule_settings: - for _item_rule_settings in self.rule_settings: - if _item_rule_settings: - _items.append(_item_rule_settings.to_dict()) - _dict['ruleSettings'] = _items + if self.classifications: + for _item_classifications in self.classifications: + if _item_classifications: + _items.append(_item_classifications.to_dict()) + _dict['classifications'] = _items return _dict @classmethod @@ -134,19 +95,9 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: return cls.model_validate(obj) _obj = cls.model_validate({ - "createdAt": obj.get("createdAt"), - "modifiedAt": obj.get("modifiedAt"), - "modifiedBy": obj.get("modifiedBy"), - "organizationId": obj.get("organizationId"), - "ruleAction": obj.get("ruleAction"), - "ruleConditions": [RuleConditionsInner.from_dict(_item) for _item in obj["ruleConditions"]] if obj.get("ruleConditions") is not None else None, - "ruleDescription": obj.get("ruleDescription"), - "ruleId": obj.get("ruleId"), - "ruleIsDefault": obj.get("ruleIsDefault"), - "ruleIsEnabled": obj.get("ruleIsEnabled"), - "ruleName": obj.get("ruleName"), - "rulePriority": obj.get("rulePriority"), - "ruleSettings": [SettingResponseInner.from_dict(_item) for _item in obj["ruleSettings"]] if obj.get("ruleSettings") is not None else None + "classifications": [ClassificationsInner.from_dict(_item) for _item in obj["classifications"]] if obj.get("classifications") is not None else None, + "id": obj.get("id"), + "name": obj.get("name") }) return _obj diff --git a/secure_access/models/rule_action.py b/secure_access/models/rule_action.py index 7d3c072..a936ac2 100644 --- a/secure_access/models/rule_action.py +++ b/secure_access/models/rule_action.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/rule_conditions_inner.py b/secure_access/models/rule_conditions_inner.py index ede8e0b..8046acf 100644 --- a/secure_access/models/rule_conditions_inner.py +++ b/secure_access/models/rule_conditions_inner.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/rule_filter_destinations_example_value.py b/secure_access/models/rule_filter_destinations_example_value.py index a2042ef..0f3ae57 100644 --- a/secure_access/models/rule_filter_destinations_example_value.py +++ b/secure_access/models/rule_filter_destinations_example_value.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/rule_filter_sources_example_value.py b/secure_access/models/rule_filter_sources_example_value.py index 802c50e..5e8ee34 100644 --- a/secure_access/models/rule_filter_sources_example_value.py +++ b/secure_access/models/rule_filter_sources_example_value.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/rule_filters.py b/secure_access/models/rule_filters.py index 62e7e6d..9e03c39 100644 --- a/secure_access/models/rule_filters.py +++ b/secure_access/models/rule_filters.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/rule_filters_value.py b/secure_access/models/rule_filters_value.py index 3b43ac3..261803e 100644 --- a/secure_access/models/rule_filters_value.py +++ b/secure_access/models/rule_filters_value.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/rule_hitcount_summary.py b/secure_access/models/rule_hitcount_summary.py index b432eb1..fdba641 100644 --- a/secure_access/models/rule_hitcount_summary.py +++ b/secure_access/models/rule_hitcount_summary.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/rule_param.py b/secure_access/models/rule_param.py index 091dae3..30b88b4 100644 --- a/secure_access/models/rule_param.py +++ b/secure_access/models/rule_param.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/rule_settings_inner.py b/secure_access/models/rule_settings_inner.py index a0d3c6b..d1b1423 100644 --- a/secure_access/models/rule_settings_inner.py +++ b/secure_access/models/rule_settings_inner.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/rule_source_dest_filters.py b/secure_access/models/rule_source_dest_filters.py index 9b34b05..9879cff 100644 --- a/secure_access/models/rule_source_dest_filters.py +++ b/secure_access/models/rule_source_dest_filters.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/rule_type.py b/secure_access/models/rule_type.py new file mode 100644 index 0000000..3fa4b73 --- /dev/null +++ b/secure_access/models/rule_type.py @@ -0,0 +1,44 @@ +# Copyright 2026 Cisco Systems, Inc. and its affiliates +# +# SPDX-License-Identifier: Apache-2.0 + +# coding: utf-8 + +""" + Cisco Secure Access API + + Unified OpenAPI spec for Cisco Secure Access APIs. + + The version of the OpenAPI document: v2.0.202602030705 + Contact: devnet@cisco.com + 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 RuleType(str, Enum): + """ + The type of the DLP rule. + """ + + """ + allowed enum values + """ + AI_DEFENSE = 'AI_DEFENSE' + EMAIL = 'EMAIL' + INLINE = 'INLINE' + OOB = 'OOB' + + @classmethod + def from_json(cls, json_str: str) -> Self: + """Create an instance of RuleType from a JSON string""" + return cls(json.loads(json_str)) + + diff --git a/secure_access/models/rules_activity.py b/secure_access/models/rules_activity.py index 36c73da..c2df73a 100644 --- a/secure_access/models/rules_activity.py +++ b/secure_access/models/rules_activity.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/rules_activity200_response.py b/secure_access/models/rules_activity200_response.py index 3956914..ac58b9e 100644 --- a/secure_access/models/rules_activity200_response.py +++ b/secure_access/models/rules_activity200_response.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/rules_response_inner.py b/secure_access/models/rules_response_inner.py index 178e838..c7ae779 100644 --- a/secure_access/models/rules_response_inner.py +++ b/secure_access/models/rules_response_inner.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/ruleset.py b/secure_access/models/ruleset.py index a5d7bbe..2bf70b2 100644 --- a/secure_access/models/ruleset.py +++ b/secure_access/models/ruleset.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/s3_bucket400_error.py b/secure_access/models/s3_bucket400_error.py index eec5c1e..bfda12e 100644 --- a/secure_access/models/s3_bucket400_error.py +++ b/secure_access/models/s3_bucket400_error.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/s3_bucket401_error.py b/secure_access/models/s3_bucket401_error.py index c8c9c5f..fe4ba72 100644 --- a/secure_access/models/s3_bucket401_error.py +++ b/secure_access/models/s3_bucket401_error.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/s3_bucket403_error.py b/secure_access/models/s3_bucket403_error.py index e1590f8..e165639 100644 --- a/secure_access/models/s3_bucket403_error.py +++ b/secure_access/models/s3_bucket403_error.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/s3_bucket404_error.py b/secure_access/models/s3_bucket404_error.py index a3296c9..308f0f3 100644 --- a/secure_access/models/s3_bucket404_error.py +++ b/secure_access/models/s3_bucket404_error.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/s3_bucket500_error.py b/secure_access/models/s3_bucket500_error.py index e9ed5f5..1ec55e4 100644 --- a/secure_access/models/s3_bucket500_error.py +++ b/secure_access/models/s3_bucket500_error.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/saas_api_dlp_rule_event.py b/secure_access/models/saas_api_dlp_rule_event.py new file mode 100644 index 0000000..b23c4ac --- /dev/null +++ b/secure_access/models/saas_api_dlp_rule_event.py @@ -0,0 +1,140 @@ +# Copyright 2026 Cisco Systems, Inc. and its affiliates +# +# SPDX-License-Identifier: Apache-2.0 + +# coding: utf-8 + +""" + Cisco Secure Access API + + Unified OpenAPI spec for Cisco Secure Access APIs. + + The version of the OpenAPI document: v2.0.202602030705 + Contact: devnet@cisco.com + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from datetime import datetime +from pydantic import BaseModel, ConfigDict, Field, StrictInt, StrictStr +from typing import Any, ClassVar, Dict, List, Optional +from secure_access.models.application_saas_api import ApplicationSaasAPI +from secure_access.models.rule import Rule +from secure_access.models.saas_api_event_user import SaasApiEventUser +from typing import Optional, Set +from typing_extensions import Self + +class SaasApiDlpRuleEvent(BaseModel): + """ + The properties of the SaaS API DLP rule event. + """ # noqa: E501 + action: Optional[StrictStr] = Field(default=None, description="The action triggered by the DLP rule.") + actor: Optional[SaasApiEventUser] = None + application: Optional[ApplicationSaasAPI] = None + content_type: Optional[StrictStr] = Field(default=None, description="The type of data that triggered the DLP rule event.", alias="contentType") + destination_url: Optional[StrictStr] = Field(default=None, description="The URL where the end user uploadedor posted the file.", alias="destinationUrl") + detected: Optional[datetime] = Field(default=None, description="The date and time when the system detected the content, formatted as an ISO 8601 timestamp.") + event_id: Optional[StrictStr] = Field(default=None, description="A unique identifier for the DLP rule event.", alias="eventId") + exposure: Optional[StrictStr] = Field(default=None, description="An indication of who can see the file (internal or external users).") + file_name: Optional[StrictStr] = Field(default=None, description="The name of the file where the system identified a classification match. For messages or posts, the system returns `Content`.", alias="fileName") + instance_name: Optional[StrictStr] = Field(default=None, description="The name of the authorized tenant for a SaaS API platform.", alias="instanceName") + owner: Optional[SaasApiEventUser] = None + resource_id: Optional[StrictStr] = Field(default=None, description="The URL for the resource associated with the content that triggered the violation.", alias="resourceId") + resource_name: Optional[StrictStr] = Field(default=None, description="The name of the resource associated with the content that triggered the violation.", alias="resourceName") + rule: Optional[Rule] = None + severity: Optional[StrictStr] = Field(default=None, description="The severity of the DLP rule.") + sha256_hash: Optional[StrictStr] = Field(default=None, description="The unique SHA256 hash of the file.", alias="sha256Hash") + total_size_in_bytes: Optional[StrictInt] = Field(default=None, description="The size of the file in bytes that triggered the DLP rule event.", alias="totalSizeInBytes") + __properties: ClassVar[List[str]] = ["action", "actor", "application", "contentType", "destinationUrl", "detected", "eventId", "exposure", "fileName", "instanceName", "owner", "resourceId", "resourceName", "rule", "severity", "sha256Hash", "totalSizeInBytes"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of SaasApiDlpRuleEvent 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 actor + if self.actor: + _dict['actor'] = self.actor.to_dict() + # override the default output from pydantic by calling `to_dict()` of application + if self.application: + _dict['application'] = self.application.to_dict() + # override the default output from pydantic by calling `to_dict()` of owner + if self.owner: + _dict['owner'] = self.owner.to_dict() + # override the default output from pydantic by calling `to_dict()` of rule + if self.rule: + _dict['rule'] = self.rule.to_dict() + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of SaasApiDlpRuleEvent from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "action": obj.get("action"), + "actor": SaasApiEventUser.from_dict(obj["actor"]) if obj.get("actor") is not None else None, + "application": ApplicationSaasAPI.from_dict(obj["application"]) if obj.get("application") is not None else None, + "contentType": obj.get("contentType"), + "destinationUrl": obj.get("destinationUrl"), + "detected": obj.get("detected"), + "eventId": obj.get("eventId"), + "exposure": obj.get("exposure"), + "fileName": obj.get("fileName"), + "instanceName": obj.get("instanceName"), + "owner": SaasApiEventUser.from_dict(obj["owner"]) if obj.get("owner") is not None else None, + "resourceId": obj.get("resourceId"), + "resourceName": obj.get("resourceName"), + "rule": Rule.from_dict(obj["rule"]) if obj.get("rule") is not None else None, + "severity": obj.get("severity"), + "sha256Hash": obj.get("sha256Hash"), + "totalSizeInBytes": obj.get("totalSizeInBytes") + }) + return _obj + + diff --git a/secure_access/models/saas_api_event_user.py b/secure_access/models/saas_api_event_user.py new file mode 100644 index 0000000..5a4dc0a --- /dev/null +++ b/secure_access/models/saas_api_event_user.py @@ -0,0 +1,96 @@ +# Copyright 2026 Cisco Systems, Inc. and its affiliates +# +# SPDX-License-Identifier: Apache-2.0 + +# coding: utf-8 + +""" + Cisco Secure Access API + + Unified OpenAPI spec for Cisco Secure Access APIs. + + The version of the OpenAPI document: v2.0.202602030705 + Contact: devnet@cisco.com + 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 SaasApiEventUser(BaseModel): + """ + The properties of the user details associated with a SaaS API DLP rule event. + """ # noqa: E501 + display_name: Optional[StrictStr] = Field(default=None, description="The name of the SaaS API user used to show the user account in the system.", alias="displayName") + email: Optional[StrictStr] = Field(default=None, description="The email address of the SaaS API user.") + uid: Optional[StrictStr] = Field(default=None, description="The unique identifier of the SaaS API user.") + __properties: ClassVar[List[str]] = ["displayName", "email", "uid"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of SaasApiEventUser 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 SaasApiEventUser from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "displayName": obj.get("displayName"), + "email": obj.get("email"), + "uid": obj.get("uid") + }) + return _obj + + diff --git a/secure_access/models/sample.py b/secure_access/models/sample.py index 92657b2..d69353d 100644 --- a/secure_access/models/sample.py +++ b/secure_access/models/sample.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/sample_hash_behaviors.py b/secure_access/models/sample_hash_behaviors.py index 665c408..3bf0790 100644 --- a/secure_access/models/sample_hash_behaviors.py +++ b/secure_access/models/sample_hash_behaviors.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/sample_hash_connections.py b/secure_access/models/sample_hash_connections.py index 0282454..37a8a97 100644 --- a/secure_access/models/sample_hash_connections.py +++ b/secure_access/models/sample_hash_connections.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/sample_hash_samples.py b/secure_access/models/sample_hash_samples.py index 0c27f00..574dbea 100644 --- a/secure_access/models/sample_hash_samples.py +++ b/secure_access/models/sample_hash_samples.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/scannable_context.py b/secure_access/models/scannable_context.py new file mode 100644 index 0000000..102ff6c --- /dev/null +++ b/secure_access/models/scannable_context.py @@ -0,0 +1,42 @@ +# Copyright 2026 Cisco Systems, Inc. and its affiliates +# +# SPDX-License-Identifier: Apache-2.0 + +# coding: utf-8 + +""" + Cisco Secure Access API + + Unified OpenAPI spec for Cisco Secure Access APIs. + + The version of the OpenAPI document: v2.0.202602030705 + Contact: devnet@cisco.com + 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 ScannableContext(str, Enum): + """ + The scannable context where the rule applies. + """ + + """ + allowed enum values + """ + CONTENT = 'CONTENT' + FILENAME = 'FILENAME' + + @classmethod + def from_json(cls, json_str: str) -> Self: + """Create an instance of ScannableContext from a JSON string""" + return cls(json.loads(json_str)) + + diff --git a/secure_access/models/security_events_config.py b/secure_access/models/security_events_config.py new file mode 100644 index 0000000..87f2bb9 --- /dev/null +++ b/secure_access/models/security_events_config.py @@ -0,0 +1,94 @@ +# Copyright 2026 Cisco Systems, Inc. and its affiliates +# +# SPDX-License-Identifier: Apache-2.0 + +# coding: utf-8 + +""" + Cisco Secure Access API + + Unified OpenAPI spec for Cisco Secure Access APIs. + + The version of the OpenAPI document: v2.0.202602030705 + Contact: devnet@cisco.com + 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 SecurityEventsConfig(BaseModel): + """ + The properties of the security events third-party integration. + """ # noqa: E501 + sources: List[StrictStr] = Field(description="The list of event sources that the system will monitor. Use `all` to monitor all available event sources.") + targets: Optional[List[StrictStr]] = Field(default=None, description="The list of unique identifiers for the webhook.v1 integrations. These webhook.v1 integrations will receive the security events from Secure Access.") + __properties: ClassVar[List[str]] = ["sources", "targets"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of SecurityEventsConfig 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 SecurityEventsConfig from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "sources": obj.get("sources"), + "targets": obj.get("targets") + }) + return _obj + + diff --git a/secure_access/models/security_events_config_input.py b/secure_access/models/security_events_config_input.py new file mode 100644 index 0000000..5bddf76 --- /dev/null +++ b/secure_access/models/security_events_config_input.py @@ -0,0 +1,94 @@ +# Copyright 2026 Cisco Systems, Inc. and its affiliates +# +# SPDX-License-Identifier: Apache-2.0 + +# coding: utf-8 + +""" + Cisco Secure Access API + + Unified OpenAPI spec for Cisco Secure Access APIs. + + The version of the OpenAPI document: v2.0.202602030705 + Contact: devnet@cisco.com + 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 SecurityEventsConfigInput(BaseModel): + """ + The properties used to create the security events third-party integration. + """ # noqa: E501 + sources: List[StrictStr] = Field(description="The list of event sources that the system will monitor. Use `all` to monitor all available event sources.") + targets: List[StrictStr] = Field(description="The list of unique identifiers for the webhook.v1 integrations. These webhook.v1 integrations will receive the security events from Secure Access. **Note:** The list must contain at least one ID for a webhook.v1 integration.") + __properties: ClassVar[List[str]] = ["sources", "targets"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of SecurityEventsConfigInput 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 SecurityEventsConfigInput from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "sources": obj.get("sources"), + "targets": obj.get("targets") + }) + return _obj + + diff --git a/secure_access/models/security_events_config_patch_input.py b/secure_access/models/security_events_config_patch_input.py new file mode 100644 index 0000000..5d227eb --- /dev/null +++ b/secure_access/models/security_events_config_patch_input.py @@ -0,0 +1,94 @@ +# Copyright 2026 Cisco Systems, Inc. and its affiliates +# +# SPDX-License-Identifier: Apache-2.0 + +# coding: utf-8 + +""" + Cisco Secure Access API + + Unified OpenAPI spec for Cisco Secure Access APIs. + + The version of the OpenAPI document: v2.0.202602030705 + Contact: devnet@cisco.com + 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 SecurityEventsConfigPatchInput(BaseModel): + """ + The properties used to modify the configuration of the security events. + """ # noqa: E501 + sources: Optional[List[StrictStr]] = Field(default=None, description="The list of event sources that the system will monitor. Use `all` to monitor all available event sources.") + targets: Optional[List[StrictStr]] = Field(default=None, description="The list of unique identifiers for the webhook.v1 integrations. These webhook.v1 integrations will receive the security events from Secure Access. The `targets` field must contain at least one unique identifier for a webhook.v1 integration.") + __properties: ClassVar[List[str]] = ["sources", "targets"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of SecurityEventsConfigPatchInput 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 SecurityEventsConfigPatchInput from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "sources": obj.get("sources"), + "targets": obj.get("targets") + }) + return _obj + + diff --git a/secure_access/models/threat_intelligence_feeds_bad_request_error.py b/secure_access/models/security_feeds_bad_request_error.py similarity index 88% rename from secure_access/models/threat_intelligence_feeds_bad_request_error.py rename to secure_access/models/security_feeds_bad_request_error.py index 8852ebc..7ad0ec1 100644 --- a/secure_access/models/threat_intelligence_feeds_bad_request_error.py +++ b/secure_access/models/security_feeds_bad_request_error.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) @@ -27,7 +27,7 @@ from typing import Optional, Set from typing_extensions import Self -class ThreatIntelligenceFeedsBadRequestError(BaseModel): +class SecurityFeedsBadRequestError(BaseModel): """ Bad Request """ # noqa: E501 @@ -54,7 +54,7 @@ def to_json(self) -> str: @classmethod def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of ThreatIntelligenceFeedsBadRequestError from a JSON string""" + """Create an instance of SecurityFeedsBadRequestError from a JSON string""" return cls.from_dict(json.loads(json_str)) def to_dict(self) -> Dict[str, Any]: @@ -79,7 +79,7 @@ def to_dict(self) -> Dict[str, Any]: @classmethod def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of ThreatIntelligenceFeedsBadRequestError from a dict""" + """Create an instance of SecurityFeedsBadRequestError from a dict""" if obj is None: return None diff --git a/secure_access/models/threat_intelligence_feeds_forbidden_error.py b/secure_access/models/security_feeds_forbidden_error.py similarity index 88% rename from secure_access/models/threat_intelligence_feeds_forbidden_error.py rename to secure_access/models/security_feeds_forbidden_error.py index 4a03b7f..1d276f9 100644 --- a/secure_access/models/threat_intelligence_feeds_forbidden_error.py +++ b/secure_access/models/security_feeds_forbidden_error.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) @@ -27,7 +27,7 @@ from typing import Optional, Set from typing_extensions import Self -class ThreatIntelligenceFeedsForbiddenError(BaseModel): +class SecurityFeedsForbiddenError(BaseModel): """ Forbidden """ # noqa: E501 @@ -54,7 +54,7 @@ def to_json(self) -> str: @classmethod def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of ThreatIntelligenceFeedsForbiddenError from a JSON string""" + """Create an instance of SecurityFeedsForbiddenError from a JSON string""" return cls.from_dict(json.loads(json_str)) def to_dict(self) -> Dict[str, Any]: @@ -79,7 +79,7 @@ def to_dict(self) -> Dict[str, Any]: @classmethod def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of ThreatIntelligenceFeedsForbiddenError from a dict""" + """Create an instance of SecurityFeedsForbiddenError from a dict""" if obj is None: return None diff --git a/secure_access/models/threat_intelligence_feeds_not_found_error.py b/secure_access/models/security_feeds_not_found_error.py similarity index 88% rename from secure_access/models/threat_intelligence_feeds_not_found_error.py rename to secure_access/models/security_feeds_not_found_error.py index 91968e0..54d4a2a 100644 --- a/secure_access/models/threat_intelligence_feeds_not_found_error.py +++ b/secure_access/models/security_feeds_not_found_error.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) @@ -27,7 +27,7 @@ from typing import Optional, Set from typing_extensions import Self -class ThreatIntelligenceFeedsNotFoundError(BaseModel): +class SecurityFeedsNotFoundError(BaseModel): """ Not Found """ # noqa: E501 @@ -54,7 +54,7 @@ def to_json(self) -> str: @classmethod def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of ThreatIntelligenceFeedsNotFoundError from a JSON string""" + """Create an instance of SecurityFeedsNotFoundError from a JSON string""" return cls.from_dict(json.loads(json_str)) def to_dict(self) -> Dict[str, Any]: @@ -79,7 +79,7 @@ def to_dict(self) -> Dict[str, Any]: @classmethod def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of ThreatIntelligenceFeedsNotFoundError from a dict""" + """Create an instance of SecurityFeedsNotFoundError from a dict""" if obj is None: return None diff --git a/secure_access/models/threat_intelligence_feeds_server_error.py b/secure_access/models/security_feeds_server_error.py similarity index 88% rename from secure_access/models/threat_intelligence_feeds_server_error.py rename to secure_access/models/security_feeds_server_error.py index a59d631..c9d9b3e 100644 --- a/secure_access/models/threat_intelligence_feeds_server_error.py +++ b/secure_access/models/security_feeds_server_error.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) @@ -27,7 +27,7 @@ from typing import Optional, Set from typing_extensions import Self -class ThreatIntelligenceFeedsServerError(BaseModel): +class SecurityFeedsServerError(BaseModel): """ Internal Server Error """ # noqa: E501 @@ -54,7 +54,7 @@ def to_json(self) -> str: @classmethod def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of ThreatIntelligenceFeedsServerError from a JSON string""" + """Create an instance of SecurityFeedsServerError from a JSON string""" return cls.from_dict(json.loads(json_str)) def to_dict(self) -> Dict[str, Any]: @@ -79,7 +79,7 @@ def to_dict(self) -> Dict[str, Any]: @classmethod def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of ThreatIntelligenceFeedsServerError from a dict""" + """Create an instance of SecurityFeedsServerError from a dict""" if obj is None: return None diff --git a/secure_access/models/threat_intelligence_feeds_unauthorized_error.py b/secure_access/models/security_feeds_unauthorized_error.py similarity index 88% rename from secure_access/models/threat_intelligence_feeds_unauthorized_error.py rename to secure_access/models/security_feeds_unauthorized_error.py index 90e852b..0d8d440 100644 --- a/secure_access/models/threat_intelligence_feeds_unauthorized_error.py +++ b/secure_access/models/security_feeds_unauthorized_error.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) @@ -27,7 +27,7 @@ from typing import Optional, Set from typing_extensions import Self -class ThreatIntelligenceFeedsUnauthorizedError(BaseModel): +class SecurityFeedsUnauthorizedError(BaseModel): """ Unauthorized """ # noqa: E501 @@ -54,7 +54,7 @@ def to_json(self) -> str: @classmethod def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of ThreatIntelligenceFeedsUnauthorizedError from a JSON string""" + """Create an instance of SecurityFeedsUnauthorizedError from a JSON string""" return cls.from_dict(json.loads(json_str)) def to_dict(self) -> Dict[str, Any]: @@ -79,7 +79,7 @@ def to_dict(self) -> Dict[str, Any]: @classmethod def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of ThreatIntelligenceFeedsUnauthorizedError from a dict""" + """Create an instance of SecurityFeedsUnauthorizedError from a dict""" if obj is None: return None diff --git a/secure_access/models/security_group_tag_identity_get_response.py b/secure_access/models/security_group_tag_identity_get_response.py index 34c157d..736d19b 100644 --- a/secure_access/models/security_group_tag_identity_get_response.py +++ b/secure_access/models/security_group_tag_identity_get_response.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/security_profile_response.py b/secure_access/models/security_profile_response.py index 73de30d..d7f37b9 100644 --- a/secure_access/models/security_profile_response.py +++ b/secure_access/models/security_profile_response.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/server_error.py b/secure_access/models/server_error.py index 2548ea0..22e8165 100644 --- a/secure_access/models/server_error.py +++ b/secure_access/models/server_error.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/server_error_data.py b/secure_access/models/server_error_data.py index 1bc8733..0e754a2 100644 --- a/secure_access/models/server_error_data.py +++ b/secure_access/models/server_error_data.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/server_error_status.py b/secure_access/models/server_error_status.py index 767c646..fc7826c 100644 --- a/secure_access/models/server_error_status.py +++ b/secure_access/models/server_error_status.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/service_name.py b/secure_access/models/service_name.py new file mode 100644 index 0000000..4b081cc --- /dev/null +++ b/secure_access/models/service_name.py @@ -0,0 +1,44 @@ +# Copyright 2026 Cisco Systems, Inc. and its affiliates +# +# SPDX-License-Identifier: Apache-2.0 + +# coding: utf-8 + +""" + Cisco Secure Access API + + Unified OpenAPI spec for Cisco Secure Access APIs. + + The version of the OpenAPI document: v2.0.202602030705 + Contact: devnet@cisco.com + 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 ServiceName(str, Enum): + """ + The label of the tunnel service. + """ + + """ + allowed enum values + """ + BGP = 'BGP' + IKE = 'IKE' + ORCH = 'ORCH' + UNDEFINED = 'UNDEFINED' + + @classmethod + def from_json(cls, json_str: str) -> Self: + """Create an instance of ServiceName from a JSON string""" + return cls(json.loads(json_str)) + + diff --git a/secure_access/models/service_object_group_request_schema.py b/secure_access/models/service_object_group_request_schema.py index 89442d9..9fb6cfd 100644 --- a/secure_access/models/service_object_group_request_schema.py +++ b/secure_access/models/service_object_group_request_schema.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/service_object_group_response_schema.py b/secure_access/models/service_object_group_response_schema.py index 5a2fafd..55d8da8 100644 --- a/secure_access/models/service_object_group_response_schema.py +++ b/secure_access/models/service_object_group_response_schema.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/service_object_group_response_schema_groups_inner.py b/secure_access/models/service_object_group_response_schema_groups_inner.py index 1353692..4180f12 100644 --- a/secure_access/models/service_object_group_response_schema_groups_inner.py +++ b/secure_access/models/service_object_group_response_schema_groups_inner.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/service_object_group_response_schema_objects_inner.py b/secure_access/models/service_object_group_response_schema_objects_inner.py index f941b1a..1b4a2fe 100644 --- a/secure_access/models/service_object_group_response_schema_objects_inner.py +++ b/secure_access/models/service_object_group_response_schema_objects_inner.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/service_object_request_schema.py b/secure_access/models/service_object_request_schema.py index 0889ef3..85ee978 100644 --- a/secure_access/models/service_object_request_schema.py +++ b/secure_access/models/service_object_request_schema.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/service_object_response_schema.py b/secure_access/models/service_object_response_schema.py index 01a1f88..9b3b1b0 100644 --- a/secure_access/models/service_object_response_schema.py +++ b/secure_access/models/service_object_response_schema.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/service_unavailable_error.py b/secure_access/models/service_unavailable_error.py index 9c62241..b4dfd09 100644 --- a/secure_access/models/service_unavailable_error.py +++ b/secure_access/models/service_unavailable_error.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/service_value_type.py b/secure_access/models/service_value_type.py index 4874a07..d7f114c 100644 --- a/secure_access/models/service_value_type.py +++ b/secure_access/models/service_value_type.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/setting_name.py b/secure_access/models/setting_name.py index adf6cc3..e0b1f1b 100644 --- a/secure_access/models/setting_name.py +++ b/secure_access/models/setting_name.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/setting_response_inner.py b/secure_access/models/setting_response_inner.py index 1cced58..8b1c05b 100644 --- a/secure_access/models/setting_response_inner.py +++ b/secure_access/models/setting_response_inner.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/setting_types_response_inner.py b/secure_access/models/setting_types_response_inner.py index 6829c23..9acb399 100644 --- a/secure_access/models/setting_types_response_inner.py +++ b/secure_access/models/setting_types_response_inner.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/setting_value.py b/secure_access/models/setting_value.py index 6828324..ab14773 100644 --- a/secure_access/models/setting_value.py +++ b/secure_access/models/setting_value.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/settings.py b/secure_access/models/settings.py index 573b5c6..df44110 100644 --- a/secure_access/models/settings.py +++ b/secure_access/models/settings.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/settings_request_inner.py b/secure_access/models/settings_request_inner.py index 925ca07..85687dd 100644 --- a/secure_access/models/settings_request_inner.py +++ b/secure_access/models/settings_request_inner.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/settings_request_object.py b/secure_access/models/settings_request_object.py index df23f75..d79adae 100644 --- a/secure_access/models/settings_request_object.py +++ b/secure_access/models/settings_request_object.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/settings_response_inner.py b/secure_access/models/settings_response_inner.py index f6ae720..405e310 100644 --- a/secure_access/models/settings_response_inner.py +++ b/secure_access/models/settings_response_inner.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/settings_response_object.py b/secure_access/models/settings_response_object.py index ff1a768..4274b2a 100644 --- a/secure_access/models/settings_response_object.py +++ b/secure_access/models/settings_response_object.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/severity_alert.py b/secure_access/models/severity_alert.py new file mode 100644 index 0000000..301f246 --- /dev/null +++ b/secure_access/models/severity_alert.py @@ -0,0 +1,44 @@ +# Copyright 2026 Cisco Systems, Inc. and its affiliates +# +# SPDX-License-Identifier: Apache-2.0 + +# coding: utf-8 + +""" + Cisco Secure Access API + + Unified OpenAPI spec for Cisco Secure Access APIs. + + The version of the OpenAPI document: v2.0.202602030705 + Contact: devnet@cisco.com + 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 SeverityAlert(int, Enum): + """ + The severity of the alert. The supported severity levels are: - 1 (High) - 2 (Medium) - 3 (Low) - 4 (Info) + """ + + """ + allowed enum values + """ + NUMBER_1 = 1 + NUMBER_2 = 2 + NUMBER_3 = 3 + NUMBER_4 = 4 + + @classmethod + def from_json(cls, json_str: str) -> Self: + """Create an instance of SeverityAlert from a JSON string""" + return cls(json.loads(json_str)) + + diff --git a/secure_access/models/signature.py b/secure_access/models/signature.py index 570a278..41f4f33 100644 --- a/secure_access/models/signature.py +++ b/secure_access/models/signature.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/signature_list.py b/secure_access/models/signature_list.py index 6988e5b..9bc358d 100644 --- a/secure_access/models/signature_list.py +++ b/secure_access/models/signature_list.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/signature_list_summary.py b/secure_access/models/signature_list_summary.py index d4a8749..e8b472b 100644 --- a/secure_access/models/signature_list_summary.py +++ b/secure_access/models/signature_list_summary.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/signature_list_summary_signatures_inner.py b/secure_access/models/signature_list_summary_signatures_inner.py index 309ced6..ae5c3ae 100644 --- a/secure_access/models/signature_list_summary_signatures_inner.py +++ b/secure_access/models/signature_list_summary_signatures_inner.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/signature_list_summary_signatures_inner_counts.py b/secure_access/models/signature_list_summary_signatures_inner_counts.py index 1d88dda..aa62d6b 100644 --- a/secure_access/models/signature_list_summary_signatures_inner_counts.py +++ b/secure_access/models/signature_list_summary_signatures_inner_counts.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/site_object.py b/secure_access/models/site_object.py index 0397fee..cf7f9ad 100644 --- a/secure_access/models/site_object.py +++ b/secure_access/models/site_object.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/sites500_error.py b/secure_access/models/sites500_error.py index 6b4f595..b529683 100644 --- a/secure_access/models/sites500_error.py +++ b/secure_access/models/sites500_error.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/sources_inner.py b/secure_access/models/sources_inner.py index fb051e3..18b7a85 100644 --- a/secure_access/models/sources_inner.py +++ b/secure_access/models/sources_inner.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/static_data_request_obj.py b/secure_access/models/static_data_request_obj.py index fa6d8e2..96178b6 100644 --- a/secure_access/models/static_data_request_obj.py +++ b/secure_access/models/static_data_request_obj.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/static_data_response_obj.py b/secure_access/models/static_data_response_obj.py index 0e96e18..f01e5f3 100644 --- a/secure_access/models/static_data_response_obj.py +++ b/secure_access/models/static_data_response_obj.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/status.py b/secure_access/models/status.py index cb3db53..8141123 100644 --- a/secure_access/models/status.py +++ b/secure_access/models/status.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/status_alert.py b/secure_access/models/status_alert.py new file mode 100644 index 0000000..2be2bdb --- /dev/null +++ b/secure_access/models/status_alert.py @@ -0,0 +1,44 @@ +# Copyright 2026 Cisco Systems, Inc. and its affiliates +# +# SPDX-License-Identifier: Apache-2.0 + +# coding: utf-8 + +""" + Cisco Secure Access API + + Unified OpenAPI spec for Cisco Secure Access APIs. + + The version of the OpenAPI document: v2.0.202602030705 + Contact: devnet@cisco.com + 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 StatusAlert(int, Enum): + """ + The status of the alert. The supported status types are: - 1 (Active) - 2 (Dismissed) - 3 (Resolved) - 4 (Archived) + """ + + """ + allowed enum values + """ + NUMBER_1 = 1 + NUMBER_2 = 2 + NUMBER_3 = 3 + NUMBER_4 = 4 + + @classmethod + def from_json(cls, json_str: str) -> Self: + """Create an instance of StatusAlert from a JSON string""" + return cls(json.loads(json_str)) + + diff --git a/secure_access/models/status_alert_rule.py b/secure_access/models/status_alert_rule.py new file mode 100644 index 0000000..6da582d --- /dev/null +++ b/secure_access/models/status_alert_rule.py @@ -0,0 +1,42 @@ +# Copyright 2026 Cisco Systems, Inc. and its affiliates +# +# SPDX-License-Identifier: Apache-2.0 + +# coding: utf-8 + +""" + Cisco Secure Access API + + Unified OpenAPI spec for Cisco Secure Access APIs. + + The version of the OpenAPI document: v2.0.202602030705 + Contact: devnet@cisco.com + 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 StatusAlertRule(int, Enum): + """ + The status of the alert rule. The supported status types are: - 1 (Enabled) - 2 (Disabled) + """ + + """ + allowed enum values + """ + NUMBER_1 = 1 + NUMBER_2 = 2 + + @classmethod + def from_json(cls, json_str: str) -> Self: + """Create an instance of StatusAlertRule from a JSON string""" + return cls(json.loads(json_str)) + + diff --git a/secure_access/models/status_code.py b/secure_access/models/status_code.py index 43a323b..ba3233a 100644 --- a/secure_access/models/status_code.py +++ b/secure_access/models/status_code.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/status_code_body.py b/secure_access/models/status_code_body.py index c3ee87d..a010419 100644 --- a/secure_access/models/status_code_body.py +++ b/secure_access/models/status_code_body.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/subdomains_inner.py b/secure_access/models/subdomains_inner.py index b4dcf52..b5f1a47 100644 --- a/secure_access/models/subdomains_inner.py +++ b/secure_access/models/subdomains_inner.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/summary.py b/secure_access/models/summary.py index 244de00..37bbcb7 100644 --- a/secure_access/models/summary.py +++ b/secure_access/models/summary.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/summary_data.py b/secure_access/models/summary_data.py index e675505..a6f1f2b 100644 --- a/secure_access/models/summary_data.py +++ b/secure_access/models/summary_data.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/summary_with_category.py b/secure_access/models/summary_with_category.py index 9bb4439..2c031eb 100644 --- a/secure_access/models/summary_with_category.py +++ b/secure_access/models/summary_with_category.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/summary_with_destination.py b/secure_access/models/summary_with_destination.py index e68cbc0..dd3f8c9 100644 --- a/secure_access/models/summary_with_destination.py +++ b/secure_access/models/summary_with_destination.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/swg_source.py b/secure_access/models/swg_source.py index d9ee565..84e2d7c 100644 --- a/secure_access/models/swg_source.py +++ b/secure_access/models/swg_source.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/system_mode.py b/secure_access/models/system_mode.py index 41941ae..02c7ba8 100644 --- a/secure_access/models/system_mode.py +++ b/secure_access/models/system_mode.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/tenant_controls_restriction.py b/secure_access/models/tenant_controls_restriction.py index 015ab49..9da4760 100644 --- a/secure_access/models/tenant_controls_restriction.py +++ b/secure_access/models/tenant_controls_restriction.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/tenant_controls_restrictions_inner.py b/secure_access/models/tenant_controls_restrictions_inner.py index 7ac3a64..413056f 100644 --- a/secure_access/models/tenant_controls_restrictions_inner.py +++ b/secure_access/models/tenant_controls_restrictions_inner.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/tenant_response.py b/secure_access/models/tenant_response.py new file mode 100644 index 0000000..e45e4b3 --- /dev/null +++ b/secure_access/models/tenant_response.py @@ -0,0 +1,95 @@ +# Copyright 2026 Cisco Systems, Inc. and its affiliates +# +# SPDX-License-Identifier: Apache-2.0 + +# coding: utf-8 + +""" + Cisco Secure Access API + + Unified OpenAPI spec for Cisco Secure Access APIs. + + The version of the OpenAPI document: v2.0.202602030705 + Contact: devnet@cisco.com + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, Field, StrictInt +from typing import Any, ClassVar, Dict, List, Optional +from typing_extensions import Annotated +from typing import Optional, Set +from typing_extensions import Self + +class TenantResponse(BaseModel): + """ + The properties of the tenant. + """ # noqa: E501 + organization_id: Optional[StrictInt] = Field(default=None, description="The unique identifier of the tenant.", alias="organizationId") + organization_name: Optional[Annotated[str, Field(min_length=1, strict=True, max_length=255)]] = Field(default=None, description="The legal or canonical name of the tenant.", alias="organizationName") + __properties: ClassVar[List[str]] = ["organizationId", "organizationName"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of TenantResponse 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 TenantResponse from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "organizationId": obj.get("organizationId"), + "organizationName": obj.get("organizationName") + }) + return _obj + + diff --git a/secure_access/models/terminate_sessions.py b/secure_access/models/terminate_sessions.py index c26319c..d305250 100644 --- a/secure_access/models/terminate_sessions.py +++ b/secure_access/models/terminate_sessions.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/terminate_sessions_failed.py b/secure_access/models/terminate_sessions_failed.py index af0fd9f..c836416 100644 --- a/secure_access/models/terminate_sessions_failed.py +++ b/secure_access/models/terminate_sessions_failed.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/test_email_notification_response.py b/secure_access/models/test_email_notification_response.py new file mode 100644 index 0000000..d00ef8e --- /dev/null +++ b/secure_access/models/test_email_notification_response.py @@ -0,0 +1,114 @@ +# Copyright 2026 Cisco Systems, Inc. and its affiliates +# +# SPDX-License-Identifier: Apache-2.0 + +# coding: utf-8 + +""" + Cisco Secure Access API + + Unified OpenAPI spec for Cisco Secure Access APIs. + + The version of the OpenAPI document: v2.0.202602030705 + Contact: devnet@cisco.com + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator +from typing import Any, ClassVar, Dict, List, Optional +from secure_access.models.test_email_notification_response_results_inner import TestEmailNotificationResponseResultsInner +from typing import Optional, Set +from typing_extensions import Self + +class TestEmailNotificationResponse(BaseModel): + """ + The properties of the test email notification. + """ # noqa: E501 + message: Optional[StrictStr] = Field(default=None, description="The message sent by the system.") + results: Optional[List[TestEmailNotificationResponseResultsInner]] = Field(default=None, description="The list of detailed results for each type of notification.") + status: Optional[StrictStr] = Field(default=None, description="The status of the notification.") + __properties: ClassVar[List[str]] = ["message", "results", "status"] + + @field_validator('status') + def status_validate_enum(cls, value): + """Validates the enum""" + if value is None: + return value + + if value not in set(['success', 'partial_success', 'failed']): + raise ValueError("must be one of enum values ('success', 'partial_success', 'failed')") + return value + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of TestEmailNotificationResponse from a JSON string""" + return cls.from_dict(json.loads(json_str)) + + def to_dict(self) -> Dict[str, Any]: + """Return the dictionary representation of the model using alias. + + This has the following differences from calling pydantic's + `self.model_dump(by_alias=True)`: + + * `None` is only added to the output dict for nullable fields that + were set at model initialization. Other fields with value `None` + are ignored. + """ + excluded_fields: Set[str] = set([ + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + # override the default output from pydantic by calling `to_dict()` of each item in results (list) + _items = [] + if self.results: + for _item_results in self.results: + if _item_results: + _items.append(_item_results.to_dict()) + _dict['results'] = _items + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of TestEmailNotificationResponse from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "message": obj.get("message"), + "results": [TestEmailNotificationResponseResultsInner.from_dict(_item) for _item in obj["results"]] if obj.get("results") is not None else None, + "status": obj.get("status") + }) + return _obj + + diff --git a/secure_access/models/test_email_notification_response_results_inner.py b/secure_access/models/test_email_notification_response_results_inner.py new file mode 100644 index 0000000..15ccff0 --- /dev/null +++ b/secure_access/models/test_email_notification_response_results_inner.py @@ -0,0 +1,99 @@ +# Copyright 2026 Cisco Systems, Inc. and its affiliates +# +# SPDX-License-Identifier: Apache-2.0 + +# coding: utf-8 + +""" + Cisco Secure Access API + + Unified OpenAPI spec for Cisco Secure Access APIs. + + The version of the OpenAPI document: v2.0.202602030705 + Contact: devnet@cisco.com + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictInt, StrictStr +from typing import Any, ClassVar, Dict, List, Optional +from secure_access.models.notification_type_email import NotificationTypeEmail +from typing import Optional, Set +from typing_extensions import Self + +class TestEmailNotificationResponseResultsInner(BaseModel): + """ + The properties of the test email notification sent by the system. + """ # noqa: E501 + error: Optional[StrictStr] = Field(default=None, description="When the system fails to send the test message, the system reports an error message.") + recipients_count: Optional[StrictInt] = Field(default=None, description="The number of recipients of the test email notification.") + success: Optional[StrictBool] = Field(default=None, description="Specifies whether the notification was sent by the system successfully.") + type: Optional[NotificationTypeEmail] = None + __properties: ClassVar[List[str]] = ["error", "recipients_count", "success", "type"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of TestEmailNotificationResponseResultsInner 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 TestEmailNotificationResponseResultsInner from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "error": obj.get("error"), + "recipients_count": obj.get("recipients_count"), + "success": obj.get("success"), + "type": obj.get("type") + }) + return _obj + + diff --git a/secure_access/models/test_notification.py b/secure_access/models/test_notification.py new file mode 100644 index 0000000..2c43726 --- /dev/null +++ b/secure_access/models/test_notification.py @@ -0,0 +1,119 @@ +# Copyright 2026 Cisco Systems, Inc. and its affiliates +# +# SPDX-License-Identifier: Apache-2.0 + +# coding: utf-8 + +""" + Cisco Secure Access API + + Unified OpenAPI spec for Cisco Secure Access APIs. + + The version of the OpenAPI document: v2.0.202602030705 + Contact: devnet@cisco.com + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from datetime import datetime +from pydantic import BaseModel, ConfigDict, Field, StrictInt, StrictStr +from typing import Any, ClassVar, Dict, List, Optional +from typing_extensions import Annotated +from secure_access.models.conditions_alert_rule import ConditionsAlertRule +from secure_access.models.notification_info_alert_rule import NotificationInfoAlertRule +from secure_access.models.severity_alert import SeverityAlert +from typing import Optional, Set +from typing_extensions import Self + +class TestNotification(BaseModel): + """ + The properties of the test notification. + """ # noqa: E501 + conditions: Optional[ConditionsAlertRule] = None + event_time: Optional[datetime] = Field(default=None, description="The date and time (ISO 8601 timestamp) when the system recorded the event.") + name: Optional[StrictStr] = Field(default=None, description="The name of the alert rule.") + notification_info: Annotated[List[NotificationInfoAlertRule], Field(min_length=1)] = Field(description="The list of notification details.") + redirect_link: Optional[StrictStr] = Field(default=None, description="The URL of the alert page in Secure Access.") + severity: SeverityAlert + type: StrictInt = Field(description="The identifier of the rule type.") + __properties: ClassVar[List[str]] = ["conditions", "event_time", "name", "notification_info", "redirect_link", "severity", "type"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of TestNotification 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 conditions + if self.conditions: + _dict['conditions'] = self.conditions.to_dict() + # override the default output from pydantic by calling `to_dict()` of each item in notification_info (list) + _items = [] + if self.notification_info: + for _item_notification_info in self.notification_info: + if _item_notification_info: + _items.append(_item_notification_info.to_dict()) + _dict['notification_info'] = _items + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of TestNotification from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "conditions": ConditionsAlertRule.from_dict(obj["conditions"]) if obj.get("conditions") is not None else None, + "event_time": obj.get("event_time"), + "name": obj.get("name"), + "notification_info": [NotificationInfoAlertRule.from_dict(_item) for _item in obj["notification_info"]] if obj.get("notification_info") is not None else None, + "redirect_link": obj.get("redirect_link"), + "severity": obj.get("severity"), + "type": obj.get("type") + }) + return _obj + + diff --git a/secure_access/models/third_party_integrations400_error.py b/secure_access/models/third_party_integrations400_error.py index 90485cc..62ddb2a 100644 --- a/secure_access/models/third_party_integrations400_error.py +++ b/secure_access/models/third_party_integrations400_error.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/third_party_integrations401_error.py b/secure_access/models/third_party_integrations401_error.py index 7cc00cb..e232fe6 100644 --- a/secure_access/models/third_party_integrations401_error.py +++ b/secure_access/models/third_party_integrations401_error.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/third_party_integrations403_error.py b/secure_access/models/third_party_integrations403_error.py index d30aa18..ae77b37 100644 --- a/secure_access/models/third_party_integrations403_error.py +++ b/secure_access/models/third_party_integrations403_error.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/third_party_integrations404_error.py b/secure_access/models/third_party_integrations404_error.py index 7991fa0..2428412 100644 --- a/secure_access/models/third_party_integrations404_error.py +++ b/secure_access/models/third_party_integrations404_error.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/third_party_integrations500_error.py b/secure_access/models/third_party_integrations500_error.py index 875dc86..7480afb 100644 --- a/secure_access/models/third_party_integrations500_error.py +++ b/secure_access/models/third_party_integrations500_error.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/third_party_integrations_integration_type.py b/secure_access/models/third_party_integrations_integration_type.py index 22629ef..3a8be17 100644 --- a/secure_access/models/third_party_integrations_integration_type.py +++ b/secure_access/models/third_party_integrations_integration_type.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) @@ -18,79 +18,28 @@ 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 enum import Enum from typing_extensions import Self -class ThirdPartyIntegrationsIntegrationType(BaseModel): - """ - The properties of the integration type. - """ # noqa: E501 - description: StrictStr = Field(description="The description of the integration type.") - id: StrictStr = Field(description="The ID of the integration.") - name: StrictStr = Field(description="The name of the integration type.") - __properties: ClassVar[List[str]] = ["description", "id", "name"] - - model_config = ConfigDict( - populate_by_name=True, - validate_assignment=True, - protected_namespaces=(), - ) - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) +class ThirdPartyIntegrationsIntegrationType(str, Enum): + """ + The type of the integration. + """ - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) + """ + allowed enum values + """ + CHROME_MINUS_ENTERPRISE_DOT_V1 = 'chrome-enterprise.v1' + WEBHOOK_DOT_V1 = 'webhook.v1' + JAMF_DOT_V1 = 'jamf.v1' + INTUNE_DOT_V1 = 'intune.v1' + SECURITY_MINUS_EVENTS_DOT_V1 = 'security-events.v1' @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: + def from_json(cls, json_str: str) -> Self: """Create an instance of ThirdPartyIntegrationsIntegrationType 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 ThirdPartyIntegrationsIntegrationType from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "description": obj.get("description"), - "id": obj.get("id"), - "name": obj.get("name") - }) - return _obj + return cls(json.loads(json_str)) diff --git a/secure_access/models/threat.py b/secure_access/models/threat.py index bb7adc7..5fe5e87 100644 --- a/secure_access/models/threat.py +++ b/secure_access/models/threat.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/threat_name.py b/secure_access/models/threat_name.py index 47f6c7c..43ceb54 100644 --- a/secure_access/models/threat_name.py +++ b/secure_access/models/threat_name.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/threat_type.py b/secure_access/models/threat_type.py index a1b3c8b..051f63e 100644 --- a/secure_access/models/threat_type.py +++ b/secure_access/models/threat_type.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/time_range.py b/secure_access/models/time_range.py new file mode 100644 index 0000000..6a34e23 --- /dev/null +++ b/secure_access/models/time_range.py @@ -0,0 +1,95 @@ +# Copyright 2026 Cisco Systems, Inc. and its affiliates +# +# SPDX-License-Identifier: Apache-2.0 + +# coding: utf-8 + +""" + Cisco Secure Access API + + Unified OpenAPI spec for Cisco Secure Access APIs. + + The version of the OpenAPI document: v2.0.202602030705 + Contact: devnet@cisco.com + 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 typing import Optional, Set +from typing_extensions import Self + +class TimeRange(BaseModel): + """ + The start and end times that the system uses to filter the alerts in the collection. + """ # noqa: E501 + end_time: Optional[datetime] = Field(default=None, description="The time and date (ISO 8601 timestamp) that ends the time range. The system uses the time range to filter for alerts in the collection. Use the 'YYYY-MM-DD HH:MM:SS' format.") + start_time: Optional[datetime] = Field(default=None, description="The time and date (ISO 8601 timestamp) that begins the time range. The system uses the time range to filter for alerts in the collection. Use the 'YYYY-MM-DD HH:MM:SS' format.") + __properties: ClassVar[List[str]] = ["end_time", "start_time"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of TimeRange 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 TimeRange from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "end_time": obj.get("end_time"), + "start_time": obj.get("start_time") + }) + return _obj + + diff --git a/secure_access/models/time_series_app_connector_agent_data.py b/secure_access/models/time_series_app_connector_agent_data.py index 1a94185..70bc155 100644 --- a/secure_access/models/time_series_app_connector_agent_data.py +++ b/secure_access/models/time_series_app_connector_agent_data.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/time_series_app_connector_group_data.py b/secure_access/models/time_series_app_connector_group_data.py index b919607..c7ba699 100644 --- a/secure_access/models/time_series_app_connector_group_data.py +++ b/secure_access/models/time_series_app_connector_group_data.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/time_series_hits_count.py b/secure_access/models/time_series_hits_count.py index 58bbc25..0591f44 100644 --- a/secure_access/models/time_series_hits_count.py +++ b/secure_access/models/time_series_hits_count.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/timeline_item.py b/secure_access/models/timeline_item.py index 76c0588..335ff37 100644 --- a/secure_access/models/timeline_item.py +++ b/secure_access/models/timeline_item.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/token.py b/secure_access/models/token.py index 27cafbb..14cca93 100644 --- a/secure_access/models/token.py +++ b/secure_access/models/token.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/token_authorization400_error.py b/secure_access/models/token_authorization400_error.py index 8d1c1ce..3064b1b 100644 --- a/secure_access/models/token_authorization400_error.py +++ b/secure_access/models/token_authorization400_error.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/token_authorization401_error.py b/secure_access/models/token_authorization401_error.py index 0218c23..86dfe9c 100644 --- a/secure_access/models/token_authorization401_error.py +++ b/secure_access/models/token_authorization401_error.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/token_authorization403_error.py b/secure_access/models/token_authorization403_error.py index 62460aa..9abdb9c 100644 --- a/secure_access/models/token_authorization403_error.py +++ b/secure_access/models/token_authorization403_error.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/token_authorization404_error.py b/secure_access/models/token_authorization404_error.py index 51949ed..153abba 100644 --- a/secure_access/models/token_authorization404_error.py +++ b/secure_access/models/token_authorization404_error.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/token_authorization500_error.py b/secure_access/models/token_authorization500_error.py index 417254b..2dcd4de 100644 --- a/secure_access/models/token_authorization500_error.py +++ b/secure_access/models/token_authorization500_error.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/top_category.py b/secure_access/models/top_category.py index c53a57f..b5c6d34 100644 --- a/secure_access/models/top_category.py +++ b/secure_access/models/top_category.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/top_destination.py b/secure_access/models/top_destination.py index 99d3122..f69bd9b 100644 --- a/secure_access/models/top_destination.py +++ b/secure_access/models/top_destination.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/top_dns_query_type.py b/secure_access/models/top_dns_query_type.py index 43e86c9..4ab4141 100644 --- a/secure_access/models/top_dns_query_type.py +++ b/secure_access/models/top_dns_query_type.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/top_event_type.py b/secure_access/models/top_event_type.py index 442c869..f4c28a3 100644 --- a/secure_access/models/top_event_type.py +++ b/secure_access/models/top_event_type.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/top_file.py b/secure_access/models/top_file.py index 69f6383..8d8f137 100644 --- a/secure_access/models/top_file.py +++ b/secure_access/models/top_file.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/top_identity.py b/secure_access/models/top_identity.py index 76113f4..06e8af8 100644 --- a/secure_access/models/top_identity.py +++ b/secure_access/models/top_identity.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) @@ -24,7 +24,7 @@ from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt from typing import Any, ClassVar, Dict, List, Optional, Union -from secure_access.models.identity import Identity +from secure_access.models.reporting_identity import ReportingIdentity from secure_access.models.request_and_connection_counts import RequestAndConnectionCounts from typing import Optional, Set from typing_extensions import Self @@ -35,7 +35,7 @@ class TopIdentity(BaseModel): """ # noqa: E501 bandwidth: Optional[Union[StrictFloat, StrictInt]] = Field(description="The amount of bandwidth") counts: RequestAndConnectionCounts - identity: Identity + identity: ReportingIdentity rank: Union[StrictFloat, StrictInt] = Field(description="The rank of the result based on the number of requests.") requests: Union[StrictFloat, StrictInt] = Field(description="The total number of requests made by this identity.") __properties: ClassVar[List[str]] = ["bandwidth", "counts", "identity", "rank", "requests"] @@ -104,7 +104,7 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: _obj = cls.model_validate({ "bandwidth": obj.get("bandwidth"), "counts": RequestAndConnectionCounts.from_dict(obj["counts"]) if obj.get("counts") is not None else None, - "identity": Identity.from_dict(obj["identity"]) if obj.get("identity") is not None else None, + "identity": ReportingIdentity.from_dict(obj["identity"]) if obj.get("identity") is not None else None, "rank": obj.get("rank"), "requests": obj.get("requests") }) diff --git a/secure_access/models/top_ip.py b/secure_access/models/top_ip.py index 6471628..0b5c1e4 100644 --- a/secure_access/models/top_ip.py +++ b/secure_access/models/top_ip.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/top_resource.py b/secure_access/models/top_resource.py index 0aaebb9..47a0aff 100644 --- a/secure_access/models/top_resource.py +++ b/secure_access/models/top_resource.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/top_resource_application.py b/secure_access/models/top_resource_application.py index 76f8a06..58b9be0 100644 --- a/secure_access/models/top_resource_application.py +++ b/secure_access/models/top_resource_application.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/top_threat_types.py b/secure_access/models/top_threat_types.py index 90001ea..529118c 100644 --- a/secure_access/models/top_threat_types.py +++ b/secure_access/models/top_threat_types.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/top_threats.py b/secure_access/models/top_threats.py index a9d43e2..71d1760 100644 --- a/secure_access/models/top_threats.py +++ b/secure_access/models/top_threats.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/top_url.py b/secure_access/models/top_url.py index c6fb6d0..8ecded4 100644 --- a/secure_access/models/top_url.py +++ b/secure_access/models/top_url.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/total_count_alerts_response.py b/secure_access/models/total_count_alerts_response.py new file mode 100644 index 0000000..bdecff7 --- /dev/null +++ b/secure_access/models/total_count_alerts_response.py @@ -0,0 +1,92 @@ +# Copyright 2026 Cisco Systems, Inc. and its affiliates +# +# SPDX-License-Identifier: Apache-2.0 + +# coding: utf-8 + +""" + Cisco Secure Access API + + Unified OpenAPI spec for Cisco Secure Access APIs. + + The version of the OpenAPI document: v2.0.202602030705 + Contact: devnet@cisco.com + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, Field, StrictInt +from typing import Any, ClassVar, Dict, List +from typing import Optional, Set +from typing_extensions import Self + +class TotalCountAlertsResponse(BaseModel): + """ + The total number of active alerts. Set `only_active_alerts_count=true` query parameter for the system to return the `total` field only. + """ # noqa: E501 + total: StrictInt = Field(description="The total number of active alerts.") + __properties: ClassVar[List[str]] = ["total"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of TotalCountAlertsResponse 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 TotalCountAlertsResponse from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "total": obj.get("total") + }) + return _obj + + diff --git a/secure_access/models/total_request.py b/secure_access/models/total_request.py index fc35662..2e03903 100644 --- a/secure_access/models/total_request.py +++ b/secure_access/models/total_request.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/traffic_direction_type.py b/secure_access/models/traffic_direction_type.py new file mode 100644 index 0000000..b27cb84 --- /dev/null +++ b/secure_access/models/traffic_direction_type.py @@ -0,0 +1,44 @@ +# Copyright 2026 Cisco Systems, Inc. and its affiliates +# +# SPDX-License-Identifier: Apache-2.0 + +# coding: utf-8 + +""" + Cisco Secure Access API + + Unified OpenAPI spec for Cisco Secure Access APIs. + + The version of the OpenAPI document: v2.0.202602030705 + Contact: devnet@cisco.com + 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 TrafficDirectionType(str, Enum): + """ + Traffic direction for the application or resource. + """ + + """ + allowed enum values + """ + BOTH = 'BOTH' + REQUEST = 'REQUEST' + RESPONSE = 'RESPONSE' + INTERNAL = 'INTERNAL' + + @classmethod + def from_json(cls, json_str: str) -> Self: + """Create an instance of TrafficDirectionType from a JSON string""" + return cls(json.loads(json_str)) + + diff --git a/secure_access/models/tunnel_data_state.py b/secure_access/models/tunnel_data_state.py index 87d8b2c..b51dd4e 100644 --- a/secure_access/models/tunnel_data_state.py +++ b/secure_access/models/tunnel_data_state.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/tunnel_ike_state.py b/secure_access/models/tunnel_ike_state.py index 8ba026b..e80762a 100644 --- a/secure_access/models/tunnel_ike_state.py +++ b/secure_access/models/tunnel_ike_state.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/tunnel_ip_sec_state.py b/secure_access/models/tunnel_ip_sec_state.py index 3c762b3..54c6674 100644 --- a/secure_access/models/tunnel_ip_sec_state.py +++ b/secure_access/models/tunnel_ip_sec_state.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/tunnel_routing_stats.py b/secure_access/models/tunnel_routing_stats.py index 7bc910a..9fdc193 100644 --- a/secure_access/models/tunnel_routing_stats.py +++ b/secure_access/models/tunnel_routing_stats.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/tunnel_routing_stats_client_route_stats.py b/secure_access/models/tunnel_routing_stats_client_route_stats.py index 61d1fef..c4f46a0 100644 --- a/secure_access/models/tunnel_routing_stats_client_route_stats.py +++ b/secure_access/models/tunnel_routing_stats_client_route_stats.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/tunnel_routing_stats_client_route_stats_stats_inner.py b/secure_access/models/tunnel_routing_stats_client_route_stats_stats_inner.py index 0adaaf6..de1486e 100644 --- a/secure_access/models/tunnel_routing_stats_client_route_stats_stats_inner.py +++ b/secure_access/models/tunnel_routing_stats_client_route_stats_stats_inner.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/tunnel_routing_stats_cloud_route_stats.py b/secure_access/models/tunnel_routing_stats_cloud_route_stats.py index 61354b4..98590d1 100644 --- a/secure_access/models/tunnel_routing_stats_cloud_route_stats.py +++ b/secure_access/models/tunnel_routing_stats_cloud_route_stats.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/tunnel_routing_stats_cloud_route_stats_stats_inner.py b/secure_access/models/tunnel_routing_stats_cloud_route_stats_stats_inner.py index 6a4f2f0..86d5151 100644 --- a/secure_access/models/tunnel_routing_stats_cloud_route_stats_stats_inner.py +++ b/secure_access/models/tunnel_routing_stats_cloud_route_stats_stats_inner.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/tunnel_state.py b/secure_access/models/tunnel_state.py index da1a877..a1812ef 100644 --- a/secure_access/models/tunnel_state.py +++ b/secure_access/models/tunnel_state.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) @@ -50,7 +50,7 @@ class TunnelState(BaseModel): peer_ip: Optional[StrictStr] = Field(default=None, description="The IP address of the remote peer.", alias="peerIp") peer_port: Optional[StrictStr] = Field(default=None, description="The port of the remote peer.", alias="peerPort") routing_stats: Optional[TunnelRoutingStats] = Field(default=None, alias="routingStats") - status: Optional[StrictStr] = Field(default=None, description="The high-level status of the tunnel: * UP - The tunnel is active. * DOWN - The tunnel is inactive. * FAILED - The tunnel is in a failed state. * UNKNOWN - The current status is unknown and pending updated information.") + status: Optional[StrictStr] = Field(default=None, description="The only available value is `UP`, which indicates that the tunnel is active.") time: Optional[datetime] = Field(default=None, description="The date and time (UTC time with milliseconds) when the state event record was generated.") __properties: ClassVar[List[str]] = ["data", "dc", "dcDesc", "dcName", "ike", "ikeState", "ipsec", "ipsecState", "localIp", "localPort", "peerId", "peerIp", "peerPort", "routingStats", "status", "time"] @@ -74,16 +74,6 @@ def ipsec_state_validate_enum(cls, value): raise ValueError("must be one of enum values ('CREATED', 'ROUTED', 'INSTALLING', 'INSTALLED', 'UPDATING', 'REKEYING', 'REKEYED', 'RETRYING', 'DELETING', 'DELETED', 'DESTROYING')") return value - @field_validator('status') - def status_validate_enum(cls, value): - """Validates the enum""" - if value is None: - return value - - if value not in set(['UP', 'DOWN', 'FAILED', 'UNKNOWN']): - raise ValueError("must be one of enum values ('UP', 'DOWN', 'FAILED', 'UNKNOWN')") - return value - model_config = ConfigDict( populate_by_name=True, validate_assignment=True, diff --git a/secure_access/models/tunnel_status.py b/secure_access/models/tunnel_status.py index 345a48a..51c55e4 100644 --- a/secure_access/models/tunnel_status.py +++ b/secure_access/models/tunnel_status.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/type.py b/secure_access/models/type.py index a1a7a0d..6d3c270 100644 --- a/secure_access/models/type.py +++ b/secure_access/models/type.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/type_network_dns_forwarder.py b/secure_access/models/type_network_dns_forwarder.py index 614b421..61dfb44 100644 --- a/secure_access/models/type_network_dns_forwarder.py +++ b/secure_access/models/type_network_dns_forwarder.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/unauthorized.py b/secure_access/models/unauthorized.py index cbc3cfb..30e9343 100644 --- a/secure_access/models/unauthorized.py +++ b/secure_access/models/unauthorized.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/unauthorized_data.py b/secure_access/models/unauthorized_data.py index be0db8f..13a3c83 100644 --- a/secure_access/models/unauthorized_data.py +++ b/secure_access/models/unauthorized_data.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/unauthorized_error.py b/secure_access/models/unauthorized_error.py index 624a154..d4d3922 100644 --- a/secure_access/models/unauthorized_error.py +++ b/secure_access/models/unauthorized_error.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/unauthorized_status.py b/secure_access/models/unauthorized_status.py index 95f98b7..45cb992 100644 --- a/secure_access/models/unauthorized_status.py +++ b/secure_access/models/unauthorized_status.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/unified_network_object_type.py b/secure_access/models/unified_network_object_type.py index ba4d154..52594de 100644 --- a/secure_access/models/unified_network_object_type.py +++ b/secure_access/models/unified_network_object_type.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/unified_service_object_type.py b/secure_access/models/unified_service_object_type.py index ae4a702..d998f9a 100644 --- a/secure_access/models/unified_service_object_type.py +++ b/secure_access/models/unified_service_object_type.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/unique_resources.py b/secure_access/models/unique_resources.py index a75fd83..a88ab52 100644 --- a/secure_access/models/unique_resources.py +++ b/secure_access/models/unique_resources.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/unsupported_media_error.py b/secure_access/models/unsupported_media_error.py index f93fa3e..9596121 100644 --- a/secure_access/models/unsupported_media_error.py +++ b/secure_access/models/unsupported_media_error.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/update_alert_rule200_response.py b/secure_access/models/update_alert_rule200_response.py new file mode 100644 index 0000000..37cd208 --- /dev/null +++ b/secure_access/models/update_alert_rule200_response.py @@ -0,0 +1,92 @@ +# Copyright 2026 Cisco Systems, Inc. and its affiliates +# +# SPDX-License-Identifier: Apache-2.0 + +# coding: utf-8 + +""" + Cisco Secure Access API + + Unified OpenAPI spec for Cisco Secure Access APIs. + + The version of the OpenAPI document: v2.0.202602030705 + Contact: devnet@cisco.com + 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 UpdateAlertRule200Response(BaseModel): + """ + The properties about the update of the alert rule. + """ # noqa: E501 + message: Optional[StrictStr] = Field(default=None, description="The message from the system about the update of the alert rule.") + __properties: ClassVar[List[str]] = ["message"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of UpdateAlertRule200Response 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 UpdateAlertRule200Response from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "message": obj.get("message") + }) + return _obj + + diff --git a/secure_access/models/update_alert_rules_status200_response.py b/secure_access/models/update_alert_rules_status200_response.py new file mode 100644 index 0000000..d84350a --- /dev/null +++ b/secure_access/models/update_alert_rules_status200_response.py @@ -0,0 +1,96 @@ +# Copyright 2026 Cisco Systems, Inc. and its affiliates +# +# SPDX-License-Identifier: Apache-2.0 + +# coding: utf-8 + +""" + Cisco Secure Access API + + Unified OpenAPI spec for Cisco Secure Access APIs. + + The version of the OpenAPI document: v2.0.202602030705 + Contact: devnet@cisco.com + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictInt +from typing import Any, ClassVar, Dict, List, Optional +from typing import Optional, Set +from typing_extensions import Self + +class UpdateAlertRulesStatus200Response(BaseModel): + """ + The properties of the updated status of the alert rules. + """ # noqa: E501 + error_ids: Optional[List[StrictInt]] = Field(default=None, description="The list of unique identifiers that either do no exist or the system failed to delete or update.", alias="errorIds") + success: Optional[StrictBool] = Field(default=None, description="Specifies whether the operation succeeded. Returns false if any ID is invalid.") + successful_ids: Optional[List[StrictInt]] = Field(default=None, description="The list of IDs for the alert rules that the system updated.", alias="successfulIds") + __properties: ClassVar[List[str]] = ["errorIds", "success", "successfulIds"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of UpdateAlertRulesStatus200Response 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 UpdateAlertRulesStatus200Response from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "errorIds": obj.get("errorIds"), + "success": obj.get("success"), + "successfulIds": obj.get("successfulIds") + }) + return _obj + + diff --git a/secure_access/models/update_alerts_status200_response.py b/secure_access/models/update_alerts_status200_response.py new file mode 100644 index 0000000..8c8a711 --- /dev/null +++ b/secure_access/models/update_alerts_status200_response.py @@ -0,0 +1,96 @@ +# Copyright 2026 Cisco Systems, Inc. and its affiliates +# +# SPDX-License-Identifier: Apache-2.0 + +# coding: utf-8 + +""" + Cisco Secure Access API + + Unified OpenAPI spec for Cisco Secure Access APIs. + + The version of the OpenAPI document: v2.0.202602030705 + Contact: devnet@cisco.com + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr +from typing import Any, ClassVar, Dict, List, Optional +from typing import Optional, Set +from typing_extensions import Self + +class UpdateAlertsStatus200Response(BaseModel): + """ + The properties of the updated statuses for the alerts. + """ # noqa: E501 + error_ids: Optional[List[StrictStr]] = Field(default=None, description="The list of unique identifiers that either do no exist or the system failed to delete or update.", alias="errorIds") + success: Optional[StrictBool] = Field(default=None, description="If all operations succeeded, the system returns `true`. If any ID is invalid, the system returns `false`.") + successful_ids: Optional[List[StrictStr]] = Field(default=None, description="The list of IDs for the alert rules that the system updated.", alias="successfulIds") + __properties: ClassVar[List[str]] = ["errorIds", "success", "successfulIds"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of UpdateAlertsStatus200Response 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 UpdateAlertsStatus200Response from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "errorIds": obj.get("errorIds"), + "success": obj.get("success"), + "successfulIds": obj.get("successfulIds") + }) + return _obj + + diff --git a/secure_access/models/update_alerts_status_request.py b/secure_access/models/update_alerts_status_request.py new file mode 100644 index 0000000..2da34d4 --- /dev/null +++ b/secure_access/models/update_alerts_status_request.py @@ -0,0 +1,102 @@ +# Copyright 2026 Cisco Systems, Inc. and its affiliates +# +# SPDX-License-Identifier: Apache-2.0 + +# coding: utf-8 + +""" + Cisco Secure Access API + + Unified OpenAPI spec for Cisco Secure Access APIs. + + The version of the OpenAPI document: v2.0.202602030705 + Contact: devnet@cisco.com + 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, field_validator +from typing import Any, ClassVar, Dict, List +from typing_extensions import Annotated +from typing import Optional, Set +from typing_extensions import Self + +class UpdateAlertsStatusRequest(BaseModel): + """ + The properties of the alert rules used by the system to update the alert rules. + """ # noqa: E501 + entity_ids: Annotated[List[StrictInt], Field(min_length=1, max_length=100)] = Field(description="The list of rule IDs used by the system to update the alert rules.") + status: StrictInt = Field(description="The numeric identifier for the status of the alert rule. Use `1` for enable the alert rule or `2` to disable the alert rule.") + __properties: ClassVar[List[str]] = ["entity_ids", "status"] + + @field_validator('status') + def status_validate_enum(cls, value): + """Validates the enum""" + if value not in set([1, 2]): + raise ValueError("must be one of enum values (1, 2)") + return value + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of UpdateAlertsStatusRequest 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 UpdateAlertsStatusRequest from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "entity_ids": obj.get("entity_ids"), + "status": obj.get("status") + }) + return _obj + + diff --git a/secure_access/models/update_application_request.py b/secure_access/models/update_application_request.py index bcd4f01..a4c1fba 100644 --- a/secure_access/models/update_application_request.py +++ b/secure_access/models/update_application_request.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/update_identities200_response.py b/secure_access/models/update_identities200_response.py index 3a456ba..9aafe7b 100644 --- a/secure_access/models/update_identities200_response.py +++ b/secure_access/models/update_identities200_response.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/update_identities_request_inner.py b/secure_access/models/update_identities_request_inner.py index 8bef338..471d29f 100644 --- a/secure_access/models/update_identities_request_inner.py +++ b/secure_access/models/update_identities_request_inner.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) @@ -22,24 +22,24 @@ import pprint from pydantic import BaseModel, ConfigDict, Field, StrictStr, ValidationError, field_validator from typing import Any, List, Optional -from secure_access.models.update_identity_endpoints import UpdateIdentityEndpoints +from secure_access.models.update_identity_devices import UpdateIdentityDevices from secure_access.models.update_security_group_tags import UpdateSecurityGroupTags from pydantic import StrictStr, Field from typing import Union, List, Set, Optional, Dict from typing_extensions import Literal, Self -UPDATEIDENTITIESREQUESTINNER_ONE_OF_SCHEMAS = ["UpdateIdentityEndpoints", "UpdateSecurityGroupTags"] +UPDATEIDENTITIESREQUESTINNER_ONE_OF_SCHEMAS = ["UpdateIdentityDevices", "UpdateSecurityGroupTags"] class UpdateIdentitiesRequestInner(BaseModel): """ - UpdateIdentitiesRequestInner + Provide an identity device for the list of identity devices. Provide a security group tag for the list of security group tags. """ - # data type: UpdateIdentityEndpoints - oneof_schema_1_validator: Optional[UpdateIdentityEndpoints] = None + # data type: UpdateIdentityDevices + oneof_schema_1_validator: Optional[UpdateIdentityDevices] = None # data type: UpdateSecurityGroupTags oneof_schema_2_validator: Optional[UpdateSecurityGroupTags] = None - actual_instance: Optional[Union[UpdateIdentityEndpoints, UpdateSecurityGroupTags]] = None - one_of_schemas: Set[str] = { "UpdateIdentityEndpoints", "UpdateSecurityGroupTags" } + actual_instance: Optional[Union[UpdateIdentityDevices, UpdateSecurityGroupTags]] = None + one_of_schemas: Set[str] = { "UpdateIdentityDevices", "UpdateSecurityGroupTags" } model_config = ConfigDict( validate_assignment=True, @@ -62,9 +62,9 @@ def actual_instance_must_validate_oneof(cls, v): instance = UpdateIdentitiesRequestInner.model_construct() error_messages = [] match = 0 - # validate data type: UpdateIdentityEndpoints - if not isinstance(v, UpdateIdentityEndpoints): - error_messages.append(f"Error! Input type `{type(v)}` is not `UpdateIdentityEndpoints`") + # validate data type: UpdateIdentityDevices + if not isinstance(v, UpdateIdentityDevices): + error_messages.append(f"Error! Input type `{type(v)}` is not `UpdateIdentityDevices`") else: match += 1 # validate data type: UpdateSecurityGroupTags @@ -74,10 +74,10 @@ def actual_instance_must_validate_oneof(cls, v): match += 1 if match > 1: # more than 1 match - raise ValueError("Multiple matches found when setting `actual_instance` in UpdateIdentitiesRequestInner with oneOf schemas: UpdateIdentityEndpoints, UpdateSecurityGroupTags. Details: " + ", ".join(error_messages)) + raise ValueError("Multiple matches found when setting `actual_instance` in UpdateIdentitiesRequestInner with oneOf schemas: UpdateIdentityDevices, UpdateSecurityGroupTags. Details: " + ", ".join(error_messages)) elif match == 0: # no match - raise ValueError("No match found when setting `actual_instance` in UpdateIdentitiesRequestInner with oneOf schemas: UpdateIdentityEndpoints, UpdateSecurityGroupTags. Details: " + ", ".join(error_messages)) + raise ValueError("No match found when setting `actual_instance` in UpdateIdentitiesRequestInner with oneOf schemas: UpdateIdentityDevices, UpdateSecurityGroupTags. Details: " + ", ".join(error_messages)) else: return v @@ -92,9 +92,9 @@ def from_json(cls, json_str: str) -> Self: error_messages = [] match = 0 - # deserialize data into UpdateIdentityEndpoints + # deserialize data into UpdateIdentityDevices try: - instance.actual_instance = UpdateIdentityEndpoints.from_json(json_str) + instance.actual_instance = UpdateIdentityDevices.from_json(json_str) match += 1 except (ValidationError, ValueError) as e: error_messages.append(str(e)) @@ -107,10 +107,10 @@ def from_json(cls, json_str: str) -> Self: if match > 1: # more than 1 match - raise ValueError("Multiple matches found when deserializing the JSON string into UpdateIdentitiesRequestInner with oneOf schemas: UpdateIdentityEndpoints, UpdateSecurityGroupTags. Details: " + ", ".join(error_messages)) + raise ValueError("Multiple matches found when deserializing the JSON string into UpdateIdentitiesRequestInner with oneOf schemas: UpdateIdentityDevices, UpdateSecurityGroupTags. Details: " + ", ".join(error_messages)) elif match == 0: # no match - raise ValueError("No match found when deserializing the JSON string into UpdateIdentitiesRequestInner with oneOf schemas: UpdateIdentityEndpoints, UpdateSecurityGroupTags. Details: " + ", ".join(error_messages)) + raise ValueError("No match found when deserializing the JSON string into UpdateIdentitiesRequestInner with oneOf schemas: UpdateIdentityDevices, UpdateSecurityGroupTags. Details: " + ", ".join(error_messages)) else: return instance @@ -124,7 +124,7 @@ def to_json(self) -> str: else: return json.dumps(self.actual_instance) - def to_dict(self) -> Optional[Union[Dict[str, Any], UpdateIdentityEndpoints, UpdateSecurityGroupTags]]: + def to_dict(self) -> Optional[Union[Dict[str, Any], UpdateIdentityDevices, UpdateSecurityGroupTags]]: """Returns the dict representation of the actual instance""" if self.actual_instance is None: return None diff --git a/secure_access/models/update_identity_endpoints.py b/secure_access/models/update_identity_devices.py similarity index 86% rename from secure_access/models/update_identity_endpoints.py rename to secure_access/models/update_identity_devices.py index 3b6494a..e353b78 100644 --- a/secure_access/models/update_identity_endpoints.py +++ b/secure_access/models/update_identity_devices.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) @@ -28,16 +28,16 @@ from typing import Optional, Set from typing_extensions import Self -class UpdateIdentityEndpoints(BaseModel): +class UpdateIdentityDevices(BaseModel): """ - Update the properties of the identity endpoint. + Update the properties of the identity device. """ # noqa: E501 auth_name: StrictStr = Field(description="The attribute used to authenticate the identity endpoint.", alias="authName") - domain_name: Optional[StrictStr] = Field(default=None, description="The configured domain name for the identity endpoint.", alias="domainName") + domain_name: Optional[StrictStr] = Field(default=None, description="The configured domain name for the identity device.", alias="domainName") guid_hash: Optional[StrictStr] = Field(default=None, description="The globally unique identifier for the Active Directory integration.", alias="guidHash") key: StrictStr = Field(description="The unique identifier specified in the UUID4 format. The key is used for all identity endpoints or security group tags.") label: StrictStr = Field(description="The descriptive name assigned to the identity endpoint or security group tag.") - sam_account_name: Optional[StrictStr] = Field(default=None, description="The configured SAM account name for the identity endpoint.", alias="samAccountName") + sam_account_name: Optional[StrictStr] = Field(default=None, description="The configured SAM account name for the identity device.", alias="samAccountName") status: IdentitiesRegistrationStatus __properties: ClassVar[List[str]] = ["authName", "domainName", "guidHash", "key", "label", "samAccountName", "status"] @@ -59,7 +59,7 @@ def to_json(self) -> str: @classmethod def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of UpdateIdentityEndpoints from a JSON string""" + """Create an instance of UpdateIdentityDevices from a JSON string""" return cls.from_dict(json.loads(json_str)) def to_dict(self) -> Dict[str, Any]: @@ -84,7 +84,7 @@ def to_dict(self) -> Dict[str, Any]: @classmethod def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of UpdateIdentityEndpoints from a dict""" + """Create an instance of UpdateIdentityDevices from a dict""" if obj is None: return None diff --git a/secure_access/models/update_ips_profile_request_inner.py b/secure_access/models/update_ips_profile_request_inner.py index 3230d01..780c769 100644 --- a/secure_access/models/update_ips_profile_request_inner.py +++ b/secure_access/models/update_ips_profile_request_inner.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/update_ips_profile_request_inner_value.py b/secure_access/models/update_ips_profile_request_inner_value.py index a4537e1..ded7860 100644 --- a/secure_access/models/update_ips_profile_request_inner_value.py +++ b/secure_access/models/update_ips_profile_request_inner_value.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/update_network403_response.py b/secure_access/models/update_network403_response.py index 1b989cb..fab8921 100644 --- a/secure_access/models/update_network403_response.py +++ b/secure_access/models/update_network403_response.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/update_network_request.py b/secure_access/models/update_network_request.py index dfe8272..bcfc7ee 100644 --- a/secure_access/models/update_network_request.py +++ b/secure_access/models/update_network_request.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/update_roaming_computer_request.py b/secure_access/models/update_roaming_computer_request.py index af1d3fa..7f0c7a9 100644 --- a/secure_access/models/update_roaming_computer_request.py +++ b/secure_access/models/update_roaming_computer_request.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/update_security_group_tags.py b/secure_access/models/update_security_group_tags.py index db51883..1fff2bb 100644 --- a/secure_access/models/update_security_group_tags.py +++ b/secure_access/models/update_security_group_tags.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/update_virtual_appliance_request.py b/secure_access/models/update_virtual_appliance_request.py new file mode 100644 index 0000000..05c7e15 --- /dev/null +++ b/secure_access/models/update_virtual_appliance_request.py @@ -0,0 +1,93 @@ +# Copyright 2026 Cisco Systems, Inc. and its affiliates +# +# SPDX-License-Identifier: Apache-2.0 + +# coding: utf-8 + +""" + Cisco Secure Access API + + Unified OpenAPI spec for Cisco Secure Access APIs. + + The version of the OpenAPI document: v2.0.202602030705 + Contact: devnet@cisco.com + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, Field +from typing import Any, ClassVar, Dict, List +from typing_extensions import Annotated +from typing import Optional, Set +from typing_extensions import Self + +class UpdateVirtualApplianceRequest(BaseModel): + """ + UpdateVirtualApplianceRequest + """ # noqa: E501 + site_id: Annotated[int, Field(strict=True, ge=1)] = Field(description="The ID of the site.", alias="siteId") + __properties: ClassVar[List[str]] = ["siteId"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of UpdateVirtualApplianceRequest 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 UpdateVirtualApplianceRequest from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "siteId": obj.get("siteId") + }) + return _obj + + diff --git a/secure_access/models/update_vpn_connections_request.py b/secure_access/models/update_vpn_connections_request.py index 2875608..c5c5cd9 100644 --- a/secure_access/models/update_vpn_connections_request.py +++ b/secure_access/models/update_vpn_connections_request.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) @@ -24,7 +24,7 @@ from pydantic import BaseModel, ConfigDict, Field, StrictStr from typing import Any, ClassVar, Dict, List, Optional -from secure_access.models.action import Action +from secure_access.models.vpn_user_connections_action import VpnUserConnectionsAction from typing import Optional, Set from typing_extensions import Self @@ -32,7 +32,7 @@ class UpdateVpnConnectionsRequest(BaseModel): """ UpdateVpnConnectionsRequest """ # noqa: E501 - action: Action + action: VpnUserConnectionsAction profile_name: Optional[StrictStr] = Field(default=None, description="The name of the VPN profile.", alias="profileName") region: Optional[StrictStr] = Field(default=None, description="The region where the action occurs on the VPN connection.") sessions: Optional[List[StrictStr]] = Field(default=None, description="The list of session IDs.") @@ -90,7 +90,7 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: return cls.model_validate(obj) _obj = cls.model_validate({ - "action": obj.get("action") if obj.get("action") is not None else Action.DISCONNECT, + "action": obj.get("action") if obj.get("action") is not None else VpnUserConnectionsAction.DISCONNECT, "profileName": obj.get("profileName"), "region": obj.get("region"), "sessions": obj.get("sessions"), diff --git a/secure_access/models/upload_response.py b/secure_access/models/upload_response.py index 3e888ee..e7f74fe 100644 --- a/secure_access/models/upload_response.py +++ b/secure_access/models/upload_response.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/usage.py b/secure_access/models/usage.py index c4c1501..16bda3e 100644 --- a/secure_access/models/usage.py +++ b/secure_access/models/usage.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/usage_meter_item.py b/secure_access/models/usage_meter_item.py index 7a5fb98..e6fad69 100644 --- a/secure_access/models/usage_meter_item.py +++ b/secure_access/models/usage_meter_item.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/usage_type.py b/secure_access/models/usage_type.py index ec724cf..009fd20 100644 --- a/secure_access/models/usage_type.py +++ b/secure_access/models/usage_type.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/user_device_certificate_info.py b/secure_access/models/user_device_certificate_info.py index 540d04e..3978879 100644 --- a/secure_access/models/user_device_certificate_info.py +++ b/secure_access/models/user_device_certificate_info.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/user_summaries.py b/secure_access/models/user_summaries.py index 99bcfca..8276bce 100644 --- a/secure_access/models/user_summaries.py +++ b/secure_access/models/user_summaries.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/user_summary.py b/secure_access/models/user_summary.py index 75a1fb3..5bf1ca3 100644 --- a/secure_access/models/user_summary.py +++ b/secure_access/models/user_summary.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/user_summary_device_certificate_counts.py b/secure_access/models/user_summary_device_certificate_counts.py index 5edf2cf..145926b 100644 --- a/secure_access/models/user_summary_device_certificate_counts.py +++ b/secure_access/models/user_summary_device_certificate_counts.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/validate400_response.py b/secure_access/models/validate400_response.py index ebb937e..24bb5cc 100644 --- a/secure_access/models/validate400_response.py +++ b/secure_access/models/validate400_response.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/validate400_response_errors_inner.py b/secure_access/models/validate400_response_errors_inner.py index 65786a9..7d8f4ba 100644 --- a/secure_access/models/validate400_response_errors_inner.py +++ b/secure_access/models/validate400_response_errors_inner.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/validate400_response_errors_inner_errors_inner.py b/secure_access/models/validate400_response_errors_inner_errors_inner.py index 6e56bc2..3ed40a3 100644 --- a/secure_access/models/validate400_response_errors_inner_errors_inner.py +++ b/secure_access/models/validate400_response_errors_inner_errors_inner.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/validate_response.py b/secure_access/models/validate_response.py index 2a69cf5..2d4aa91 100644 --- a/secure_access/models/validate_response.py +++ b/secure_access/models/validate_response.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/values_network_object_groups_inner.py b/secure_access/models/values_network_object_groups_inner.py index 94f17a1..6d3147d 100644 --- a/secure_access/models/values_network_object_groups_inner.py +++ b/secure_access/models/values_network_object_groups_inner.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/values_service_object_group_inner.py b/secure_access/models/values_service_object_group_inner.py index acfe4cd..b9ef680 100644 --- a/secure_access/models/values_service_object_group_inner.py +++ b/secure_access/models/values_service_object_group_inner.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/verdict.py b/secure_access/models/verdict.py index 371a6a2..bc5c1fc 100644 --- a/secure_access/models/verdict.py +++ b/secure_access/models/verdict.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/verdict_detected.py b/secure_access/models/verdict_detected.py index e40fe03..9017be5 100644 --- a/secure_access/models/verdict_detected.py +++ b/secure_access/models/verdict_detected.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/virtual_appliance_object.py b/secure_access/models/virtual_appliance_object.py new file mode 100644 index 0000000..17cfa97 --- /dev/null +++ b/secure_access/models/virtual_appliance_object.py @@ -0,0 +1,121 @@ +# Copyright 2026 Cisco Systems, Inc. and its affiliates +# +# SPDX-License-Identifier: Apache-2.0 + +# coding: utf-8 + +""" + Cisco Secure Access API + + Unified OpenAPI spec for Cisco Secure Access APIs. + + The version of the OpenAPI document: v2.0.202602030705 + Contact: devnet@cisco.com + 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, StrictStr +from typing import Any, ClassVar, Dict, List, Optional +from secure_access.models.virtual_appliance_object_settings import VirtualApplianceObjectSettings +from secure_access.models.virtual_appliance_object_state import VirtualApplianceObjectState +from typing import Optional, Set +from typing_extensions import Self + +class VirtualApplianceObject(BaseModel): + """ + The properties of the virtual appliance. + """ # noqa: E501 + created_at: Optional[datetime] = Field(default=None, description="The date and time (ISO8601 timestamp) when the VA was created.", alias="createdAt") + health: StrictStr = Field(description="A description of the health of the virtual appliance.") + is_upgradable: StrictBool = Field(description="Specifies whether you can upgrade the virtual appliance (VA) to the latest VA version.", alias="isUpgradable") + modified_at: Optional[datetime] = Field(default=None, description="The date and time (ISO8601 timestamp) when the VA was modified.", alias="modifiedAt") + name: StrictStr = Field(description="The name of the virtual appliance.") + origin_id: StrictInt = Field(description="The origin ID of the virtual appliance.", alias="originId") + settings: Optional[VirtualApplianceObjectSettings] = None + site_id: Optional[StrictInt] = Field(default=None, description="The site ID of the virtual appliance.", alias="siteId") + state: Optional[VirtualApplianceObjectState] = None + state_updated_at: datetime = Field(description="The date and time (ISO8601 timestamp) when the virtual appliance's state was updated.", alias="stateUpdatedAt") + type: StrictStr = Field(description="The type of the virtual appliance.") + __properties: ClassVar[List[str]] = ["createdAt", "health", "isUpgradable", "modifiedAt", "name", "originId", "settings", "siteId", "state", "stateUpdatedAt", "type"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of VirtualApplianceObject 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 settings + if self.settings: + _dict['settings'] = self.settings.to_dict() + # override the default output from pydantic by calling `to_dict()` of state + if self.state: + _dict['state'] = self.state.to_dict() + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of VirtualApplianceObject from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "createdAt": obj.get("createdAt"), + "health": obj.get("health"), + "isUpgradable": obj.get("isUpgradable"), + "modifiedAt": obj.get("modifiedAt"), + "name": obj.get("name"), + "originId": obj.get("originId"), + "settings": VirtualApplianceObjectSettings.from_dict(obj["settings"]) if obj.get("settings") is not None else None, + "siteId": obj.get("siteId"), + "state": VirtualApplianceObjectState.from_dict(obj["state"]) if obj.get("state") is not None else None, + "stateUpdatedAt": obj.get("stateUpdatedAt"), + "type": obj.get("type") + }) + return _obj + + diff --git a/secure_access/models/virtual_appliance_object_settings.py b/secure_access/models/virtual_appliance_object_settings.py new file mode 100644 index 0000000..eabf862 --- /dev/null +++ b/secure_access/models/virtual_appliance_object_settings.py @@ -0,0 +1,109 @@ +# Copyright 2026 Cisco Systems, Inc. and its affiliates +# +# SPDX-License-Identifier: Apache-2.0 + +# coding: utf-8 + +""" + Cisco Secure Access API + + Unified OpenAPI spec for Cisco Secure Access APIs. + + The version of the OpenAPI document: v2.0.202602030705 + Contact: devnet@cisco.com + 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, StrictStr +from typing import Any, ClassVar, Dict, List, Optional +from typing import Optional, Set +from typing_extensions import Self + +class VirtualApplianceObjectSettings(BaseModel): + """ + The properties of the settings on the virtual appliance. + """ # noqa: E501 + domains: Optional[List[StrictStr]] = Field(default=None, description="The list of domains.") + external_ip: Optional[StrictStr] = Field(default=None, description="The external IP address.", alias="externalIP") + host_type: Optional[StrictStr] = Field(default=None, description="The type of the host.", alias="hostType") + internal_ips: Optional[List[StrictStr]] = Field(default=None, description="A list of internal IP addresses.", alias="internalIPs") + is_dnscrypt_enabled: Optional[StrictBool] = Field(default=None, description="Specifies whether DNSCrypt is enabled.", alias="isDnscryptEnabled") + last_sync_time: Optional[datetime] = Field(default=None, description="The date and time (ISO8601 timestamp) of the last sync.", alias="lastSyncTime") + upgrade_error: Optional[StrictStr] = Field(default=None, description="Specifies the upgrade error.", alias="upgradeError") + uptime: Optional[StrictInt] = Field(default=None, description="The uptime in seconds.") + version: Optional[StrictStr] = Field(default=None, description="Specifies the version of the virtual appliance.") + __properties: ClassVar[List[str]] = ["domains", "externalIP", "hostType", "internalIPs", "isDnscryptEnabled", "lastSyncTime", "upgradeError", "uptime", "version"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of VirtualApplianceObjectSettings 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 VirtualApplianceObjectSettings from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "domains": obj.get("domains"), + "externalIP": obj.get("externalIP"), + "hostType": obj.get("hostType"), + "internalIPs": obj.get("internalIPs"), + "isDnscryptEnabled": obj.get("isDnscryptEnabled"), + "lastSyncTime": obj.get("lastSyncTime"), + "upgradeError": obj.get("upgradeError"), + "uptime": obj.get("uptime"), + "version": obj.get("version") + }) + return _obj + + diff --git a/secure_access/models/virtual_appliance_object_state.py b/secure_access/models/virtual_appliance_object_state.py new file mode 100644 index 0000000..b1495b5 --- /dev/null +++ b/secure_access/models/virtual_appliance_object_state.py @@ -0,0 +1,102 @@ +# Copyright 2026 Cisco Systems, Inc. and its affiliates +# +# SPDX-License-Identifier: Apache-2.0 + +# coding: utf-8 + +""" + Cisco Secure Access API + + Unified OpenAPI spec for Cisco Secure Access APIs. + + The version of the OpenAPI document: v2.0.202602030705 + Contact: devnet@cisco.com + 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 VirtualApplianceObjectState(BaseModel): + """ + The properties for the state of the virtual appliance. + """ # noqa: E501 + connected_to_connector: Optional[StrictStr] = Field(default=None, description="The virtual appliance that is connected to the connector status.", alias="connectedToConnector") + has_local_domain_configured: Optional[StrictStr] = Field(default=None, description="The virtual appliance has local domain configuration.", alias="hasLocalDomainConfigured") + query_failure_rate_acceptable: Optional[StrictStr] = Field(default=None, description="The failure rate of the query for the virtual appliance is acceptable.", alias="queryFailureRateAcceptable") + received_internal_dns_queries: Optional[StrictStr] = Field(default=None, description="The virtual appliance received internal DNS queries.", alias="receivedInternalDNSQueries") + redundant_within_site: Optional[StrictStr] = Field(default=None, description="The virtual appliance is redundant within site.", alias="redundantWithinSite") + syncing: Optional[StrictStr] = Field(default=None, description="The virtual appliance is syncing.") + __properties: ClassVar[List[str]] = ["connectedToConnector", "hasLocalDomainConfigured", "queryFailureRateAcceptable", "receivedInternalDNSQueries", "redundantWithinSite", "syncing"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of VirtualApplianceObjectState 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 VirtualApplianceObjectState from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "connectedToConnector": obj.get("connectedToConnector"), + "hasLocalDomainConfigured": obj.get("hasLocalDomainConfigured"), + "queryFailureRateAcceptable": obj.get("queryFailureRateAcceptable"), + "receivedInternalDNSQueries": obj.get("receivedInternalDNSQueries"), + "redundantWithinSite": obj.get("redundantWithinSite"), + "syncing": obj.get("syncing") + }) + return _obj + + diff --git a/secure_access/models/virtual_appliances500_error.py b/secure_access/models/virtual_appliances500_error.py new file mode 100644 index 0000000..e6ec611 --- /dev/null +++ b/secure_access/models/virtual_appliances500_error.py @@ -0,0 +1,96 @@ +# Copyright 2026 Cisco Systems, Inc. and its affiliates +# +# SPDX-License-Identifier: Apache-2.0 + +# coding: utf-8 + +""" + Cisco Secure Access API + + Unified OpenAPI spec for Cisco Secure Access APIs. + + The version of the OpenAPI document: v2.0.202602030705 + Contact: devnet@cisco.com + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, Field, StrictInt, StrictStr +from typing import Any, ClassVar, Dict, List, Optional +from typing import Optional, Set +from typing_extensions import Self + +class VirtualAppliances500Error(BaseModel): + """ + VirtualAppliances500Error + """ # noqa: E501 + error: Optional[StrictStr] = Field(default=None, description="A brief description of the error") + message: Optional[StrictStr] = Field(default=None, description="Detailed error message") + status_code: Optional[StrictInt] = Field(default=None, description="HTTP status code", alias="statusCode") + __properties: ClassVar[List[str]] = ["error", "message", "statusCode"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of VirtualAppliances500Error 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 VirtualAppliances500Error from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "error": obj.get("error"), + "message": obj.get("message"), + "statusCode": obj.get("statusCode") + }) + return _obj + + diff --git a/secure_access/models/action.py b/secure_access/models/vpn_user_connections_action.py similarity index 73% rename from secure_access/models/action.py rename to secure_access/models/vpn_user_connections_action.py index f9e0c71..773d1f2 100644 --- a/secure_access/models/action.py +++ b/secure_access/models/vpn_user_connections_action.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) @@ -23,7 +23,7 @@ from typing_extensions import Self -class Action(str, Enum): +class VpnUserConnectionsAction(str, Enum): """ The type of action to take on the VPN session. """ @@ -35,7 +35,7 @@ class Action(str, Enum): @classmethod def from_json(cls, json_str: str) -> Self: - """Create an instance of Action from a JSON string""" + """Create an instance of VpnUserConnectionsAction from a JSON string""" return cls(json.loads(json_str)) diff --git a/secure_access/models/webhook_config.py b/secure_access/models/webhook_config.py index 1df21f6..297a45d 100644 --- a/secure_access/models/webhook_config.py +++ b/secure_access/models/webhook_config.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/webhook_config_input.py b/secure_access/models/webhook_config_input.py index e576b02..c03d465 100644 --- a/secure_access/models/webhook_config_input.py +++ b/secure_access/models/webhook_config_input.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/weighted_risk.py b/secure_access/models/weighted_risk.py index bced473..0cb12e1 100644 --- a/secure_access/models/weighted_risk.py +++ b/secure_access/models/weighted_risk.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/whois_domain.py b/secure_access/models/whois_domain.py index 194e1ba..bf310f0 100644 --- a/secure_access/models/whois_domain.py +++ b/secure_access/models/whois_domain.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/whois_emails_and_nameservers.py b/secure_access/models/whois_emails_and_nameservers.py index 5379982..5dc0838 100644 --- a/secure_access/models/whois_emails_and_nameservers.py +++ b/secure_access/models/whois_emails_and_nameservers.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/zero_trust_user_devices_error.py b/secure_access/models/zero_trust_user_devices_error.py index b108bf7..eb57504 100644 --- a/secure_access/models/zero_trust_user_devices_error.py +++ b/secure_access/models/zero_trust_user_devices_error.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/models/zero_trust_user_devices_unauthorized_error.py b/secure_access/models/zero_trust_user_devices_unauthorized_error.py index 6a7c8b9..c600ce5 100644 --- a/secure_access/models/zero_trust_user_devices_unauthorized_error.py +++ b/secure_access/models/zero_trust_user_devices_unauthorized_error.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) diff --git a/secure_access/py.typed b/secure_access/py.typed index fabbb46..6ed0f46 100644 --- a/secure_access/py.typed +++ b/secure_access/py.typed @@ -1,3 +1,3 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 diff --git a/secure_access/rest.py b/secure_access/rest.py index 6bb5a54..bd2532d 100644 --- a/secure_access/rest.py +++ b/secure_access/rest.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) @@ -53,12 +53,17 @@ def read(self): self.data = self.response.data return self.data + @property + def headers(self): + """Returns a dictionary of response headers.""" + return self.response.headers + def getheaders(self): - """Returns a dictionary of the response headers.""" + """Returns a dictionary of the response headers; use ``headers`` instead.""" return self.response.headers def getheader(self, name, default=None): - """Returns a given response header.""" + """Returns a given response header; use ``headers.get()`` instead.""" return self.response.headers.get(name, default) diff --git a/setup.py b/setup.py index 0a9fb1a..0a8bcc6 100644 --- a/setup.py +++ b/setup.py @@ -1,4 +1,4 @@ -# Copyright 2025 Cisco Systems, Inc. and its affiliates +# Copyright 2026 Cisco Systems, Inc. and its affiliates # # SPDX-License-Identifier: Apache-2.0 @@ -9,7 +9,7 @@ Unified OpenAPI spec for Cisco Secure Access APIs. - The version of the OpenAPI document: v2.0.202510221109 + The version of the OpenAPI document: v2.0.202602030705 Contact: devnet@cisco.com Generated by OpenAPI Generator (https://openapi-generator.tech) @@ -26,7 +26,7 @@ # prerequisite: setuptools # http://pypi.python.org/pypi/setuptools NAME = "secureaccess" -VERSION = "v2.0.202510221109" +VERSION = "v2.0.202602030705" PYTHON_REQUIRES = ">= 3.9" REQUIRES = [ "urllib3 >= 2.1.0, < 3.0.0",