@robinmordasiewicz/f5xc-terraform-mcp 2.3.0 → 2.4.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +98 -15
- package/dist/docs/data-sources/addon_subscription.md +51 -0
- package/dist/docs/data-sources/address_allocator.md +51 -0
- package/dist/docs/data-sources/advertise_policy.md +51 -0
- package/dist/docs/data-sources/alert_policy.md +51 -0
- package/dist/docs/data-sources/alert_receiver.md +62 -0
- package/dist/docs/data-sources/allowed_tenant.md +51 -0
- package/dist/docs/data-sources/api_crawler.md +51 -0
- package/dist/docs/data-sources/api_credential.md +51 -0
- package/dist/docs/data-sources/api_definition.md +51 -0
- package/dist/docs/data-sources/api_discovery.md +51 -0
- package/dist/docs/data-sources/api_testing.md +51 -0
- package/dist/docs/data-sources/apm.md +51 -0
- package/dist/docs/data-sources/app_api_group.md +51 -0
- package/dist/docs/data-sources/app_firewall.md +62 -0
- package/dist/docs/data-sources/app_setting.md +51 -0
- package/dist/docs/data-sources/app_type.md +51 -0
- package/dist/docs/data-sources/authentication.md +51 -0
- package/dist/docs/data-sources/aws_tgw_site.md +51 -0
- package/dist/docs/data-sources/aws_vpc_site.md +68 -0
- package/dist/docs/data-sources/azure_vnet_site.md +68 -0
- package/dist/docs/data-sources/bgp.md +51 -0
- package/dist/docs/data-sources/bgp_asn_set.md +51 -0
- package/dist/docs/data-sources/bgp_routing_policy.md +51 -0
- package/dist/docs/data-sources/bigip_irule.md +51 -0
- package/dist/docs/data-sources/bot_defense_app_infrastructure.md +51 -0
- package/dist/docs/data-sources/cdn_cache_rule.md +51 -0
- package/dist/docs/data-sources/cdn_loadbalancer.md +51 -0
- package/dist/docs/data-sources/certificate.md +66 -0
- package/dist/docs/data-sources/certificate_chain.md +51 -0
- package/dist/docs/data-sources/child_tenant.md +51 -0
- package/dist/docs/data-sources/child_tenant_manager.md +51 -0
- package/dist/docs/data-sources/cloud_connect.md +51 -0
- package/dist/docs/data-sources/cloud_credentials.md +62 -0
- package/dist/docs/data-sources/cloud_elastic_ip.md +51 -0
- package/dist/docs/data-sources/cloud_link.md +51 -0
- package/dist/docs/data-sources/cluster.md +51 -0
- package/dist/docs/data-sources/cminstance.md +51 -0
- package/dist/docs/data-sources/code_base_integration.md +51 -0
- package/dist/docs/data-sources/contact.md +51 -0
- package/dist/docs/data-sources/container_registry.md +51 -0
- package/dist/docs/data-sources/crl.md +51 -0
- package/dist/docs/data-sources/customer_support.md +51 -0
- package/dist/docs/data-sources/data_group.md +51 -0
- package/dist/docs/data-sources/data_type.md +51 -0
- package/dist/docs/data-sources/dc_cluster_group.md +51 -0
- package/dist/docs/data-sources/discovery.md +51 -0
- package/dist/docs/data-sources/dns_compliance_checks.md +51 -0
- package/dist/docs/data-sources/dns_domain.md +51 -0
- package/dist/docs/data-sources/dns_lb_health_check.md +51 -0
- package/dist/docs/data-sources/dns_lb_pool.md +51 -0
- package/dist/docs/data-sources/dns_load_balancer.md +51 -0
- package/dist/docs/data-sources/dns_zone.md +62 -0
- package/dist/docs/data-sources/endpoint.md +51 -0
- package/dist/docs/data-sources/enhanced_firewall_policy.md +51 -0
- package/dist/docs/data-sources/external_connector.md +51 -0
- package/dist/docs/data-sources/fast_acl.md +51 -0
- package/dist/docs/data-sources/fast_acl_rule.md +51 -0
- package/dist/docs/data-sources/filter_set.md +51 -0
- package/dist/docs/data-sources/fleet.md +51 -0
- package/dist/docs/data-sources/forward_proxy_policy.md +51 -0
- package/dist/docs/data-sources/forwarding_class.md +51 -0
- package/dist/docs/data-sources/gcp_vpc_site.md +68 -0
- package/dist/docs/data-sources/geo_location_set.md +51 -0
- package/dist/docs/data-sources/global_log_receiver.md +51 -0
- package/dist/docs/data-sources/healthcheck.md +62 -0
- package/dist/docs/data-sources/http_loadbalancer.md +60 -0
- package/dist/docs/data-sources/ike1.md +51 -0
- package/dist/docs/data-sources/ike2.md +51 -0
- package/dist/docs/data-sources/ike_phase1_profile.md +51 -0
- package/dist/docs/data-sources/ike_phase2_profile.md +51 -0
- package/dist/docs/data-sources/infraprotect_asn.md +51 -0
- package/dist/docs/data-sources/infraprotect_asn_prefix.md +51 -0
- package/dist/docs/data-sources/infraprotect_deny_list_rule.md +51 -0
- package/dist/docs/data-sources/infraprotect_firewall_rule.md +51 -0
- package/dist/docs/data-sources/infraprotect_firewall_rule_group.md +51 -0
- package/dist/docs/data-sources/infraprotect_internet_prefix_advertisement.md +51 -0
- package/dist/docs/data-sources/infraprotect_tunnel.md +51 -0
- package/dist/docs/data-sources/ip_prefix_set.md +51 -0
- package/dist/docs/data-sources/irule.md +51 -0
- package/dist/docs/data-sources/k8s_cluster.md +51 -0
- package/dist/docs/data-sources/k8s_cluster_role.md +51 -0
- package/dist/docs/data-sources/k8s_cluster_role_binding.md +51 -0
- package/dist/docs/data-sources/k8s_pod_security_admission.md +51 -0
- package/dist/docs/data-sources/k8s_pod_security_policy.md +51 -0
- package/dist/docs/data-sources/log_receiver.md +62 -0
- package/dist/docs/data-sources/malicious_user_mitigation.md +51 -0
- package/dist/docs/data-sources/managed_tenant.md +51 -0
- package/dist/docs/data-sources/namespace.md +58 -0
- package/dist/docs/data-sources/nat_policy.md +51 -0
- package/dist/docs/data-sources/network_connector.md +51 -0
- package/dist/docs/data-sources/network_firewall.md +51 -0
- package/dist/docs/data-sources/network_interface.md +51 -0
- package/dist/docs/data-sources/network_policy.md +51 -0
- package/dist/docs/data-sources/network_policy_rule.md +51 -0
- package/dist/docs/data-sources/network_policy_view.md +51 -0
- package/dist/docs/data-sources/nfv_service.md +51 -0
- package/dist/docs/data-sources/oidc_provider.md +51 -0
- package/dist/docs/data-sources/origin_pool.md +65 -0
- package/dist/docs/data-sources/policer.md +51 -0
- package/dist/docs/data-sources/policy_based_routing.md +51 -0
- package/dist/docs/data-sources/protocol_inspection.md +51 -0
- package/dist/docs/data-sources/protocol_policer.md +51 -0
- package/dist/docs/data-sources/proxy.md +51 -0
- package/dist/docs/data-sources/quota.md +51 -0
- package/dist/docs/data-sources/rate_limiter.md +64 -0
- package/dist/docs/data-sources/rate_limiter_policy.md +51 -0
- package/dist/docs/data-sources/registration.md +51 -0
- package/dist/docs/data-sources/report_config.md +51 -0
- package/dist/docs/data-sources/role.md +51 -0
- package/dist/docs/data-sources/route.md +51 -0
- package/dist/docs/data-sources/secret_management_access.md +51 -0
- package/dist/docs/data-sources/secret_policy.md +51 -0
- package/dist/docs/data-sources/secret_policy_rule.md +51 -0
- package/dist/docs/data-sources/securemesh_site.md +51 -0
- package/dist/docs/data-sources/securemesh_site_v2.md +51 -0
- package/dist/docs/data-sources/segment.md +51 -0
- package/dist/docs/data-sources/sensitive_data_policy.md +51 -0
- package/dist/docs/data-sources/service_policy.md +64 -0
- package/dist/docs/data-sources/service_policy_rule.md +51 -0
- package/dist/docs/data-sources/site_mesh_group.md +51 -0
- package/dist/docs/data-sources/srv6_network_slice.md +51 -0
- package/dist/docs/data-sources/subnet.md +51 -0
- package/dist/docs/data-sources/tcp_loadbalancer.md +51 -0
- package/dist/docs/data-sources/tenant_configuration.md +51 -0
- package/dist/docs/data-sources/tenant_profile.md +51 -0
- package/dist/docs/data-sources/ticket_tracking_system.md +51 -0
- package/dist/docs/data-sources/token.md +51 -0
- package/dist/docs/data-sources/tpm_api_key.md +51 -0
- package/dist/docs/data-sources/tpm_category.md +51 -0
- package/dist/docs/data-sources/tpm_manager.md +51 -0
- package/dist/docs/data-sources/trusted_ca_list.md +51 -0
- package/dist/docs/data-sources/tunnel.md +51 -0
- package/dist/docs/data-sources/udp_loadbalancer.md +51 -0
- package/dist/docs/data-sources/usb_policy.md +51 -0
- package/dist/docs/data-sources/user_identification.md +51 -0
- package/dist/docs/data-sources/virtual_host.md +51 -0
- package/dist/docs/data-sources/virtual_k8s.md +51 -0
- package/dist/docs/data-sources/virtual_network.md +51 -0
- package/dist/docs/data-sources/virtual_site.md +68 -0
- package/dist/docs/data-sources/voltshare_admin_policy.md +51 -0
- package/dist/docs/data-sources/voltstack_site.md +51 -0
- package/dist/docs/data-sources/waf_exclusion_policy.md +51 -0
- package/dist/docs/data-sources/workload.md +51 -0
- package/dist/docs/data-sources/workload_flavor.md +51 -0
- package/dist/docs/functions/blindfold.md +133 -0
- package/dist/docs/functions/blindfold_file.md +154 -0
- package/dist/docs/guides/authentication.md +389 -0
- package/dist/docs/guides/blindfold.md +509 -0
- package/dist/docs/guides/http-loadbalancer.md +274 -0
- package/dist/docs/resources/addon_subscription.md +136 -0
- package/dist/docs/resources/address_allocator.md +106 -0
- package/dist/docs/resources/advertise_policy.md +318 -0
- package/dist/docs/resources/alert_policy.md +242 -0
- package/dist/docs/resources/alert_receiver.md +394 -0
- package/dist/docs/resources/allowed_tenant.md +104 -0
- package/dist/docs/resources/api_crawler.md +142 -0
- package/dist/docs/resources/api_credential.md +101 -0
- package/dist/docs/resources/api_definition.md +127 -0
- package/dist/docs/resources/api_discovery.md +100 -0
- package/dist/docs/resources/api_testing.md +273 -0
- package/dist/docs/resources/apm.md +946 -0
- package/dist/docs/resources/app_api_group.md +161 -0
- package/dist/docs/resources/app_firewall.md +282 -0
- package/dist/docs/resources/app_setting.md +228 -0
- package/dist/docs/resources/app_type.md +124 -0
- package/dist/docs/resources/authentication.md +228 -0
- package/dist/docs/resources/aws_tgw_site.md +948 -0
- package/dist/docs/resources/aws_vpc_site.md +1262 -0
- package/dist/docs/resources/azure_vnet_site.md +2316 -0
- package/dist/docs/resources/bgp.md +341 -0
- package/dist/docs/resources/bgp_asn_set.md +86 -0
- package/dist/docs/resources/bgp_routing_policy.md +166 -0
- package/dist/docs/resources/bigip_irule.md +90 -0
- package/dist/docs/resources/bot_defense_app_infrastructure.md +166 -0
- package/dist/docs/resources/cdn_cache_rule.md +278 -0
- package/dist/docs/resources/cdn_loadbalancer.md +3800 -0
- package/dist/docs/resources/certificate.md +146 -0
- package/dist/docs/resources/certificate_chain.md +86 -0
- package/dist/docs/resources/child_tenant.md +166 -0
- package/dist/docs/resources/child_tenant_manager.md +130 -0
- package/dist/docs/resources/cloud_connect.md +260 -0
- package/dist/docs/resources/cloud_credentials.md +264 -0
- package/dist/docs/resources/cloud_elastic_ip.md +108 -0
- package/dist/docs/resources/cloud_link.md +252 -0
- package/dist/docs/resources/cluster.md +408 -0
- package/dist/docs/resources/cminstance.md +166 -0
- package/dist/docs/resources/code_base_integration.md +360 -0
- package/dist/docs/resources/contact.md +104 -0
- package/dist/docs/resources/container_registry.md +132 -0
- package/dist/docs/resources/crl.md +106 -0
- package/dist/docs/resources/customer_support.md +170 -0
- package/dist/docs/resources/data_group.md +121 -0
- package/dist/docs/resources/data_type.md +188 -0
- package/dist/docs/resources/dc_cluster_group.md +108 -0
- package/dist/docs/resources/discovery.md +443 -0
- package/dist/docs/resources/dns_compliance_checks.md +90 -0
- package/dist/docs/resources/dns_domain.md +94 -0
- package/dist/docs/resources/dns_lb_health_check.md +166 -0
- package/dist/docs/resources/dns_lb_pool.md +233 -0
- package/dist/docs/resources/dns_load_balancer.md +254 -0
- package/dist/docs/resources/dns_zone.md +988 -0
- package/dist/docs/resources/endpoint.md +234 -0
- package/dist/docs/resources/enhanced_firewall_policy.md +327 -0
- package/dist/docs/resources/external_connector.md +246 -0
- package/dist/docs/resources/fast_acl.md +376 -0
- package/dist/docs/resources/fast_acl_rule.md +192 -0
- package/dist/docs/resources/filter_set.md +142 -0
- package/dist/docs/resources/fleet.md +1267 -0
- package/dist/docs/resources/forward_proxy_policy.md +408 -0
- package/dist/docs/resources/forwarding_class.md +133 -0
- package/dist/docs/resources/gcp_vpc_site.md +1170 -0
- package/dist/docs/resources/geo_location_set.md +97 -0
- package/dist/docs/resources/global_log_receiver.md +1085 -0
- package/dist/docs/resources/healthcheck.md +148 -0
- package/dist/docs/resources/http_loadbalancer.md +7118 -0
- package/dist/docs/resources/ike1.md +133 -0
- package/dist/docs/resources/ike2.md +127 -0
- package/dist/docs/resources/ike_phase1_profile.md +141 -0
- package/dist/docs/resources/ike_phase2_profile.md +131 -0
- package/dist/docs/resources/infraprotect_asn.md +100 -0
- package/dist/docs/resources/infraprotect_asn_prefix.md +104 -0
- package/dist/docs/resources/infraprotect_deny_list_rule.md +108 -0
- package/dist/docs/resources/infraprotect_firewall_rule.md +205 -0
- package/dist/docs/resources/infraprotect_firewall_rule_group.md +86 -0
- package/dist/docs/resources/infraprotect_internet_prefix_advertisement.md +108 -0
- package/dist/docs/resources/infraprotect_tunnel.md +228 -0
- package/dist/docs/resources/ip_prefix_set.md +97 -0
- package/dist/docs/resources/irule.md +88 -0
- package/dist/docs/resources/k8s_cluster.md +291 -0
- package/dist/docs/resources/k8s_cluster_role.md +143 -0
- package/dist/docs/resources/k8s_cluster_role_binding.md +130 -0
- package/dist/docs/resources/k8s_pod_security_admission.md +116 -0
- package/dist/docs/resources/k8s_pod_security_policy.md +258 -0
- package/dist/docs/resources/log_receiver.md +183 -0
- package/dist/docs/resources/malicious_user_mitigation.md +132 -0
- package/dist/docs/resources/managed_tenant.md +116 -0
- package/dist/docs/resources/namespace.md +87 -0
- package/dist/docs/resources/nat_policy.md +408 -0
- package/dist/docs/resources/network_connector.md +252 -0
- package/dist/docs/resources/network_firewall.md +178 -0
- package/dist/docs/resources/network_interface.md +439 -0
- package/dist/docs/resources/network_policy.md +347 -0
- package/dist/docs/resources/network_policy_rule.md +157 -0
- package/dist/docs/resources/network_policy_view.md +330 -0
- package/dist/docs/resources/nfv_service.md +992 -0
- package/dist/docs/resources/oidc_provider.md +208 -0
- package/dist/docs/resources/origin_pool.md +801 -0
- package/dist/docs/resources/policer.md +97 -0
- package/dist/docs/resources/policy_based_routing.md +330 -0
- package/dist/docs/resources/protocol_inspection.md +130 -0
- package/dist/docs/resources/protocol_policer.md +146 -0
- package/dist/docs/resources/proxy.md +1181 -0
- package/dist/docs/resources/quota.md +104 -0
- package/dist/docs/resources/rate_limiter.md +155 -0
- package/dist/docs/resources/rate_limiter_policy.md +296 -0
- package/dist/docs/resources/registration.md +406 -0
- package/dist/docs/resources/report_config.md +160 -0
- package/dist/docs/resources/role.md +100 -0
- package/dist/docs/resources/route.md +724 -0
- package/dist/docs/resources/secret_management_access.md +498 -0
- package/dist/docs/resources/secret_policy.md +157 -0
- package/dist/docs/resources/secret_policy_rule.md +115 -0
- package/dist/docs/resources/securemesh_site.md +940 -0
- package/dist/docs/resources/securemesh_site_v2.md +2942 -0
- package/dist/docs/resources/segment.md +97 -0
- package/dist/docs/resources/sensitive_data_policy.md +116 -0
- package/dist/docs/resources/service_policy.md +795 -0
- package/dist/docs/resources/service_policy_rule.md +609 -0
- package/dist/docs/resources/site_mesh_group.md +163 -0
- package/dist/docs/resources/srv6_network_slice.md +92 -0
- package/dist/docs/resources/subnet.md +155 -0
- package/dist/docs/resources/tcp_loadbalancer.md +671 -0
- package/dist/docs/resources/tenant_configuration.md +136 -0
- package/dist/docs/resources/tenant_profile.md +156 -0
- package/dist/docs/resources/ticket_tracking_system.md +112 -0
- package/dist/docs/resources/token.md +87 -0
- package/dist/docs/resources/tpm_api_key.md +108 -0
- package/dist/docs/resources/tpm_category.md +108 -0
- package/dist/docs/resources/tpm_manager.md +84 -0
- package/dist/docs/resources/trusted_ca_list.md +89 -0
- package/dist/docs/resources/tunnel.md +250 -0
- package/dist/docs/resources/udp_loadbalancer.md +336 -0
- package/dist/docs/resources/usb_policy.md +108 -0
- package/dist/docs/resources/user_identification.md +126 -0
- package/dist/docs/resources/virtual_host.md +934 -0
- package/dist/docs/resources/virtual_k8s.md +132 -0
- package/dist/docs/resources/virtual_network.md +149 -0
- package/dist/docs/resources/virtual_site.md +102 -0
- package/dist/docs/resources/voltshare_admin_policy.md +196 -0
- package/dist/docs/resources/voltstack_site.md +2259 -0
- package/dist/docs/resources/waf_exclusion_policy.md +182 -0
- package/dist/docs/resources/workload.md +6021 -0
- package/dist/docs/resources/workload_flavor.md +90 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0000.public.ves.io.schema.ai_assistant.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0001.public.ves.io.schema.api_sec.api_crawler.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0002.public.ves.io.schema.views.api_definition.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0003.public.ves.io.schema.api_sec.api_discovery.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0004.public.ves.io.schema.api_group.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0005.public.ves.io.schema.api_group_element.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0006.public.ves.io.schema.api_sec.api_testing.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0007.public.ves.io.schema.api_credential.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0008.public.ves.io.schema.pbac.addon_service.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0009.public.ves.io.schema.pbac.addon_subscription.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0010.public.ves.io.schema.address_allocator.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0011.public.ves.io.schema.advertise_policy.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0012.public.ves.io.schema.alert_policy.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0013.public.ves.io.schema.alert_receiver.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0014.public.ves.io.schema.alert.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0015.public.ves.io.schema.tenant_management.allowed_tenant.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0016.public.ves.io.schema.views.app_api_group.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0017.public.ves.io.schema.app_setting.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0018.public.ves.io.schema.app_type.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0019.public.ves.io.schema.app_firewall.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0020.public.ves.io.schema.app_security.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0021.public.ves.io.schema.api_sec.rule_suggestion.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0022.public.ves.io.schema.shape.device_id.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0023.public.ves.io.schema.authentication.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0024.public.ves.io.schema.ai_data.bfdp.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0025.public.ves.io.schema.ai_data.bfdp.subscription.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0026.public.ves.io.schema.bgp.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0027.public.ves.io.schema.bgp_asn_set.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0028.public.ves.io.schema.operate.bgp.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0029.public.ves.io.schema.bgp_routing_policy.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0030.public.ves.io.schema.bigip.apm.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0031.public.ves.io.schema.bigip_irule.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0032.public.ves.io.schema.views.bigip_virtual_server.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0033.public.ves.io.schema.shape.brmalerts.alert_gen_policy.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0034.public.ves.io.schema.shape.brmalerts.alert_template.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0035.public.ves.io.schema.views.bot_defense_app_infrastructure.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0036.public.ves.io.schema.shape.bot_defense.threat_intelligence.bot_detection_rule.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0037.public.ves.io.schema.shape.bot_defense.threat_intelligence.bot_detection_update.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0038.public.ves.io.schema.shape.bot_defense.bot_endpoint_policy.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0039.public.ves.io.schema.shape.bot_defense.bot_infrastructure.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0040.public.ves.io.schema.shape.bot_defense.bot_allowlist_policy.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0041.public.ves.io.schema.shape.bot_defense.bot_network_policy.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0042.public.ves.io.schema.views.cdn_loadbalancer.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0043.public.ves.io.schema.cdn_cache_rule.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0044.public.ves.io.schema.crl.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0045.public.ves.io.schema.operate.crl.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0046.public.ves.io.schema.pbac.catalog.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0047.public.ves.io.schema.cminstance.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0048.public.ves.io.schema.certificate.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0049.public.ves.io.schema.certificate_chain.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0050.public.ves.io.schema.certified_hardware.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0051.public.ves.io.schema.tenant_management.child_tenant.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0052.public.ves.io.schema.tenant_management.child_tenant_manager.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0053.public.ves.io.schema.shape.client_side_defense.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0054.public.ves.io.schema.shape.client_side_defense.allowed_domain.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0055.public.ves.io.schema.shape.client_side_defense.protected_domain.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0056.public.ves.io.schema.shape.client_side_defense.mitigated_domain.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0057.public.ves.io.schema.shape.client_side_defense.subscription.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0058.public.ves.io.schema.cloud_connect.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0059.public.ves.io.schema.cloud_credentials.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0060.public.ves.io.schema.cloud_elastic_ip.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0061.public.ves.io.schema.cloud_region.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0062.public.ves.io.schema.cloud_link.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0063.public.ves.io.schema.cluster.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0064.public.ves.io.schema.api_sec.code_base_integration.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0065.public.ves.io.schema.views.aws_tgw_site.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0066.public.ves.io.schema.views.aws_vpc_site.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0067.public.ves.io.schema.views.voltstack_site.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0068.public.ves.io.schema.views.azure_vnet_site.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0069.public.ves.io.schema.dns_compliance_checks.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0071.public.ves.io.schema.views.forward_proxy_policy.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0072.public.ves.io.schema.views.gcp_vpc_site.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0073.public.ves.io.schema.views.http_loadbalancer.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0074.public.ves.io.schema.views.network_policy_view.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0075.public.ves.io.schema.protocol_inspection.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0076.public.ves.io.schema.views.securemesh_site.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0077.public.ves.io.schema.views.securemesh_site_v2.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0078.public.ves.io.schema.views.tcp_loadbalancer.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0079.public.ves.io.schema.views.udp_loadbalancer.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0080.public.ves.io.schema.bigcne.irule.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0081.public.ves.io.schema.graph.connectivity.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0082.public.ves.io.schema.contact.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0083.public.ves.io.schema.container_registry.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0084.public.ves.io.schema.customer_support.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0085.public.ves.io.schema.dc_cluster_group.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0086.public.ves.io.schema.dns_domain.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0087.public.ves.io.schema.dns_load_balancer.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0088.public.ves.io.schema.dns_lb_health_check.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0089.public.ves.io.schema.dns_lb_pool.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0090.public.ves.io.schema.observability.synthetic_monitor.v1_dns_monitor.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0091.public.ves.io.schema.dns_zone.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0092.public.ves.io.schema.shape.data_delivery.receiver.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0093.public.ves.io.schema.shape.data_delivery.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0094.public.ves.io.schema.bigcne.data_group.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0095.public.ves.io.schema.shape.data_delivery.subscription.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0096.public.ves.io.schema.data_type.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0097.public.ves.io.schema.operate.debug.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0098.public.ves.io.schema.operate.dhcp.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0100.public.ves.io.schema.discovered_service.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0101.public.ves.io.schema.discovery.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0102.public.ves.io.schema.endpoint.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0103.public.ves.io.schema.enhanced_firewall_policy.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0104.public.ves.io.schema.views.external_connector.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0105.public.ves.io.schema.dns_zone.rrset.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0106.public.ves.io.schema.dns_zone.subscription.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0107.public.ves.io.schema.malware_protection.subscription.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0108.public.ves.io.schema.secret_management.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0109.public.ves.io.schema.voltshare.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0110.public.ves.io.schema.maintenance_status.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0111.public.ves.io.schema.fast_acl.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0112.public.ves.io.schema.fast_acl_rule.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0113.public.ves.io.schema.filter_set.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0114.public.ves.io.schema.fleet.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0115.public.ves.io.schema.flow_anomaly.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0116.public.ves.io.schema.operate.flow.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0117.public.ves.io.schema.flow.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0118.public.ves.io.schema.forwarding_class.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0119.public.ves.io.schema.data_privacy.geo_config.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0120.public.ves.io.schema.geo_location_set.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0121.public.ves.io.schema.gia.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0122.public.ves.io.schema.global_log_receiver.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0123.public.ves.io.schema.observability.synthetic_monitor.v1_http_monitor.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0124.public.ves.io.schema.healthcheck.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0125.public.ves.io.schema.ike1.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0126.public.ves.io.schema.views.ike_phase1_profile.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0127.public.ves.io.schema.ike2.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0128.public.ves.io.schema.views.ike_phase2_profile.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0129.public.ves.io.schema.ip_prefix_set.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0130.public.ves.io.schema.implicit_label.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0131.public.ves.io.schema.infraprotect.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0132.public.ves.io.schema.infraprotect_asn.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0133.public.ves.io.schema.infraprotect_asn_prefix.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0134.public.ves.io.schema.infraprotect_deny_list_rule.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0135.public.ves.io.schema.infraprotect_firewall_rule.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0136.public.ves.io.schema.infraprotect_firewall_rule_group.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0137.public.ves.io.schema.infraprotect_firewall_ruleset.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0138.public.ves.io.schema.infraprotect_information.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0139.public.ves.io.schema.infraprotect_internet_prefix_advertisement.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0140.public.ves.io.schema.usage.invoice.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0141.public.ves.io.schema.k8s_cluster.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0142.public.ves.io.schema.k8s_cluster_role.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0143.public.ves.io.schema.k8s_cluster_role_binding.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0144.public.ves.io.schema.k8s_pod_security_admission.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0145.public.ves.io.schema.k8s_pod_security_policy.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0146.public.ves.io.schema.known_label.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0147.public.ves.io.schema.known_label_key.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0148.public.ves.io.schema.data_privacy.lma_region.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0149.public.ves.io.schema.operate.lte.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0150.public.ves.io.schema.log_receiver.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0151.public.ves.io.schema.log.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0152.public.ves.io.schema.malicious_user_mitigation.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0153.public.ves.io.schema.tenant_management.managed_tenant.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0154.public.ves.io.schema.shape.mobile_app_shield.subscription.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0155.public.ves.io.schema.shape.mobile_integrator.subscription.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0156.public.ves.io.schema.shape.bot_defense.mobile_sdk.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0157.public.ves.io.schema.shape.bot_defense.mobile_base_config.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0158.public.ves.io.schema.module_management.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0159.public.ves.io.schema.nat_policy.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0160.public.ves.io.schema.nfv_service.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0161.public.ves.io.schema.nginx.one.nginx_csg.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0162.public.ves.io.schema.nginx.one.nginx_instance.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0163.public.ves.io.schema.nginx.one.nginx_server.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0164.public.ves.io.schema.nginx.one.subscription.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0165.public.ves.io.schema.nginx.one.nginx_service_discovery.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0166.public.ves.io.schema.namespace.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0167.public.ves.io.schema.namespace_role.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0168.public.ves.io.schema.pbac.navigation_tile.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0169.public.ves.io.schema.network_connector.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0170.public.ves.io.schema.network_firewall.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0171.public.ves.io.schema.network_interface.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0172.public.ves.io.schema.network_policy.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0173.public.ves.io.schema.network_policy_rule.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0174.public.ves.io.schema.network_policy_set.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0175.public.ves.io.schema.observability.subscription.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0176.public.ves.io.schema.marketplace.aws_account.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0177.public.ves.io.schema.views.origin_pool.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0178.public.ves.io.schema.billing.payment_method.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0179.public.ves.io.schema.operate.ping.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0180.public.ves.io.schema.pbac.plan.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0181.public.ves.io.schema.billing.plan_transition.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0182.public.ves.io.schema.policer.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0183.public.ves.io.schema.views.policy_based_routing.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0184.public.ves.io.schema.shape.bot_defense.protected_application.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0185.public.ves.io.schema.protocol_policer.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0186.public.ves.io.schema.views.proxy.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0187.public.ves.io.schema.public_ip.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0188.public.ves.io.schema.quota.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0189.public.ves.io.schema.rbac_policy.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0190.public.ves.io.schema.rate_limiter.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0191.public.ves.io.schema.views.rate_limiter_policy.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0192.public.ves.io.schema.registration.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0193.public.ves.io.schema.report.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0194.public.ves.io.schema.report_config.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0195.public.ves.io.schema.role.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0196.public.ves.io.schema.trusted_ca_list.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0197.public.ves.io.schema.route.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0198.public.ves.io.schema.operate.route.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0199.public.ves.io.schema.srv6_network_slice.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0200.public.ves.io.schema.oidc_provider.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0201.public.ves.io.schema.secret_management_access.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0202.public.ves.io.schema.secret_policy.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0203.public.ves.io.schema.secret_policy_rule.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0204.public.ves.io.schema.segment.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0205.public.ves.io.schema.segment_connection.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0206.public.ves.io.schema.sensitive_data_policy.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0207.public.ves.io.schema.graph.service.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0208.public.ves.io.schema.service_policy.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0209.public.ves.io.schema.service_policy_rule.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0210.public.ves.io.schema.service_policy_set.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0211.public.ves.io.schema.shape_bot_defense_instance.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0212.public.ves.io.schema.shape.bot_defense.reporting.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0213.public.ves.io.schema.shape.bot_defense.subscription.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0214.public.ves.io.schema.shape.recognize.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0215.public.ves.io.schema.shape.safeap.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0216.public.ves.io.schema.shape.safe.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0217.public.ves.io.schema.signup.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0218.public.ves.io.schema.site.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0219.public.ves.io.schema.graph.site.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0220.public.ves.io.schema.site_mesh_group.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0221.public.ves.io.schema.status_at_site.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0222.public.ves.io.schema.stored_object.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0223.public.ves.io.schema.subnet.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0224.public.ves.io.schema.usage.subscription.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0225.public.ves.io.schema.subscription.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0226.public.ves.io.schema.observability.synthetic_monitor.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0227.public.ves.io.schema.scim.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0228.public.ves.io.schema.tpm_api_key.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0229.public.ves.io.schema.tpm_category.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0230.public.ves.io.schema.tpm_manager.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0231.public.ves.io.schema.tpm_provision.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0232.public.ves.io.schema.operate.tcpdump.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0233.public.ves.io.schema.tenant.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0234.public.ves.io.schema.views.tenant_configuration.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0235.public.ves.io.schema.tenant_management.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0236.public.ves.io.schema.tenant_management.tenant_profile.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0237.public.ves.io.schema.views.third_party_application.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0238.public.ves.io.schema.ticket_management.ticket_tracking_system.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0239.public.ves.io.schema.token.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0240.public.ves.io.schema.topology.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0241.public.ves.io.schema.operate.traceroute.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0242.public.ves.io.schema.tunnel.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0243.public.ves.io.schema.infraprotect_tunnel.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0244.public.ves.io.schema.operate.usb.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0245.public.ves.io.schema.usb_policy.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0246.public.ves.io.schema.ui.static_component.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0247.public.ves.io.schema.upgrade_status.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0248.public.ves.io.schema.virtual_appliance.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0249.public.ves.io.schema.usage.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0250.public.ves.io.schema.usage.plan.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0251.public.ves.io.schema.user.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0252.public.ves.io.schema.user_group.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0253.public.ves.io.schema.user_identification.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0254.public.ves.io.schema.user.setting.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0255.public.ves.io.schema.views.view_internal.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0256.public.ves.io.schema.views.terraform_parameters.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0257.public.ves.io.schema.virtual_host.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0258.public.ves.io.schema.virtual_k8s.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0259.public.ves.io.schema.virtual_network.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0260.public.ves.io.schema.virtual_site.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0261.public.ves.io.schema.voltshare_admin_policy.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0262.public.ves.io.schema.waf.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0263.public.ves.io.schema.waf_exclusion_policy.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0264.public.ves.io.schema.waf_signatures_changelog.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0265.public.ves.io.schema.operate.wifi.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0266.public.ves.io.schema.was.user_token.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0267.public.ves.io.schema.views.workload.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0268.public.ves.io.schema.workload_flavor.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0269.public.ves.io.schema.marketplace.xc_saas.ves-swagger.json +1 -0
- package/dist/docs/specifications/api/docs-cloud-f5-com.0270.public.ves.io.schema.graph.l3l4.ves-swagger.json +1 -0
- package/dist/index.d.ts +5 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +26 -22
- package/dist/index.js.map +1 -1
- package/dist/services/api-specs.d.ts.map +1 -1
- package/dist/services/api-specs.js +15 -3
- package/dist/services/api-specs.js.map +1 -1
- package/dist/services/documentation.d.ts.map +1 -1
- package/dist/services/documentation.js +25 -9
- package/dist/services/documentation.js.map +1 -1
- package/package.json +6 -3
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"openapi":"3.0.0","info":{"title":"F5 Distributed Cloud Services API for ves.io.schema.views.cdn_loadbalancer","description":"CDN Loadbalancer view defines a required parameters that can be used in CRUD, to create and manage CDN loadbalancer.\nIt can be used to create CDN loadbalancer and HTTPS loadbalancer.\n\nView will create following child objects.\n\n* Virtual-host\n* routes\n* endpoints\n* advertise policy","version":""},"paths":{"/api/cdn/namespaces/system/lilac-cdn/addon/subscribe":{"post":{"summary":"Subscribe to CDN Loadbalancer","description":"Subscribe to CDN Loadbalancer","operationId":"ves.io.schema.views.cdn_loadbalancer.CustomAPI.Subscribe","responses":{"200":{"description":"A successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/cdn_loadbalancerSubscribeResponse"}}}},"401":{"description":"Returned when operation is not authorized","content":{"application/json":{"schema":{"format":"string"}}}},"403":{"description":"Returned when there is no permission to access resource","content":{"application/json":{"schema":{"format":"string"}}}},"404":{"description":"Returned when resource is not found","content":{"application/json":{"schema":{"format":"string"}}}},"409":{"description":"Returned when operation on resource is conflicting with current value","content":{"application/json":{"schema":{"format":"string"}}}},"429":{"description":"Returned when operation has been rejected as it is happening too frequently","content":{"application/json":{"schema":{"format":"string"}}}},"500":{"description":"Returned when server encountered an error in processing API","content":{"application/json":{"schema":{"format":"string"}}}},"503":{"description":"Returned when service is unavailable temporarily","content":{"application/json":{"schema":{"format":"string"}}}},"504":{"description":"Returned when server timed out processing request","content":{"application/json":{"schema":{"format":"string"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/cdn_loadbalancerSubscribeRequest"}}},"required":true},"externalDocs":{"description":"Examples of this operation","url":"https://docs.cloud.f5.com/docs-v2/platform/reference/api-ref/ves-io-schema-views-cdn_loadbalancer-customapi-subscribe"},"x-ves-proto-rpc":"ves.io.schema.views.cdn_loadbalancer.CustomAPI.Subscribe"},"x-displayname":"CDN Loadbalancer","x-ves-proto-service":"ves.io.schema.views.cdn_loadbalancer.CustomAPI","x-ves-proto-service-type":"CUSTOM_PUBLIC"},"/api/cdn/namespaces/system/lilac-cdn/addon/unsubscribe":{"post":{"summary":"Unsubscribe to CDN Loadbalancer","description":"Unsubscribe to CDN Loadbalancer","operationId":"ves.io.schema.views.cdn_loadbalancer.CustomAPI.Unsubscribe","responses":{"200":{"description":"A successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/cdn_loadbalancerUnsubscribeResponse"}}}},"401":{"description":"Returned when operation is not authorized","content":{"application/json":{"schema":{"format":"string"}}}},"403":{"description":"Returned when there is no permission to access resource","content":{"application/json":{"schema":{"format":"string"}}}},"404":{"description":"Returned when resource is not found","content":{"application/json":{"schema":{"format":"string"}}}},"409":{"description":"Returned when operation on resource is conflicting with current value","content":{"application/json":{"schema":{"format":"string"}}}},"429":{"description":"Returned when operation has been rejected as it is happening too frequently","content":{"application/json":{"schema":{"format":"string"}}}},"500":{"description":"Returned when server encountered an error in processing API","content":{"application/json":{"schema":{"format":"string"}}}},"503":{"description":"Returned when service is unavailable temporarily","content":{"application/json":{"schema":{"format":"string"}}}},"504":{"description":"Returned when server timed out processing request","content":{"application/json":{"schema":{"format":"string"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/cdn_loadbalancerUnsubscribeRequest"}}},"required":true},"externalDocs":{"description":"Examples of this operation","url":"https://docs.cloud.f5.com/docs-v2/platform/reference/api-ref/ves-io-schema-views-cdn_loadbalancer-customapi-unsubscribe"},"x-ves-proto-rpc":"ves.io.schema.views.cdn_loadbalancer.CustomAPI.Unsubscribe"},"x-displayname":"CDN Loadbalancer","x-ves-proto-service":"ves.io.schema.views.cdn_loadbalancer.CustomAPI","x-ves-proto-service-type":"CUSTOM_PUBLIC"},"/api/config/namespaces/{metadata.namespace}/cdn_loadbalancers":{"post":{"summary":"Create CDN Loadbalancer","description":"Shape of the CDN loadbalancer specification","operationId":"ves.io.schema.views.cdn_loadbalancer.API.Create","responses":{"200":{"description":"A successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/cdn_loadbalancerCreateResponse"}}}},"401":{"description":"Returned when operation is not authorized","content":{"application/json":{"schema":{"format":"string"}}}},"403":{"description":"Returned when there is no permission to access resource","content":{"application/json":{"schema":{"format":"string"}}}},"404":{"description":"Returned when resource is not found","content":{"application/json":{"schema":{"format":"string"}}}},"409":{"description":"Returned when operation on resource is conflicting with current value","content":{"application/json":{"schema":{"format":"string"}}}},"429":{"description":"Returned when operation has been rejected as it is happening too frequently","content":{"application/json":{"schema":{"format":"string"}}}},"500":{"description":"Returned when server encountered an error in processing API","content":{"application/json":{"schema":{"format":"string"}}}},"503":{"description":"Returned when service is unavailable temporarily","content":{"application/json":{"schema":{"format":"string"}}}},"504":{"description":"Returned when server timed out processing request","content":{"application/json":{"schema":{"format":"string"}}}}},"parameters":[{"name":"metadata.namespace","description":"namespace\n\nx-example: \"staging\"\nThis defines the workspace within which each the configuration object is to be created.\nMust be a DNS_LABEL format. For a namespace object itself, namespace value will be \"\"","in":"path","required":true,"x-displayname":"Namespace","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/cdn_loadbalancerCreateRequest"}}},"required":true},"externalDocs":{"description":"Examples of this operation","url":"https://docs.cloud.f5.com/docs-v2/platform/reference/api-ref/ves-io-schema-views-cdn_loadbalancer-api-create"},"x-ves-proto-rpc":"ves.io.schema.views.cdn_loadbalancer.API.Create"},"x-displayname":"CDN Loadbalancer","x-ves-proto-service":"ves.io.schema.views.cdn_loadbalancer.API","x-ves-proto-service-type":"AUTO_CRUD_PUBLIC"},"/api/config/namespaces/{metadata.namespace}/cdn_loadbalancers/{metadata.name}":{"put":{"summary":"Replace CDN Loadbalancer","description":"Shape of the CDN loadbalancer specification","operationId":"ves.io.schema.views.cdn_loadbalancer.API.Replace","responses":{"200":{"description":"A successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/cdn_loadbalancerReplaceResponse"}}}},"401":{"description":"Returned when operation is not authorized","content":{"application/json":{"schema":{"format":"string"}}}},"403":{"description":"Returned when there is no permission to access resource","content":{"application/json":{"schema":{"format":"string"}}}},"404":{"description":"Returned when resource is not found","content":{"application/json":{"schema":{"format":"string"}}}},"409":{"description":"Returned when operation on resource is conflicting with current value","content":{"application/json":{"schema":{"format":"string"}}}},"429":{"description":"Returned when operation has been rejected as it is happening too frequently","content":{"application/json":{"schema":{"format":"string"}}}},"500":{"description":"Returned when server encountered an error in processing API","content":{"application/json":{"schema":{"format":"string"}}}},"503":{"description":"Returned when service is unavailable temporarily","content":{"application/json":{"schema":{"format":"string"}}}},"504":{"description":"Returned when server timed out processing request","content":{"application/json":{"schema":{"format":"string"}}}}},"parameters":[{"name":"metadata.namespace","description":"namespace\n\nx-example: \"staging\"\nThis defines the workspace within which each the configuration object is to be created.\nMust be a DNS_LABEL format. For a namespace object itself, namespace value will be \"\"","in":"path","required":true,"x-displayname":"Namespace","schema":{"type":"string"}},{"name":"metadata.name","description":"name\n\nx-example: \"acmecorp-web\"\nThe configuration object to be replaced will be looked up by name","in":"path","required":true,"x-displayname":"Name","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/cdn_loadbalancerReplaceRequest"}}},"required":true},"externalDocs":{"description":"Examples of this operation","url":"https://docs.cloud.f5.com/docs-v2/platform/reference/api-ref/ves-io-schema-views-cdn_loadbalancer-api-replace"},"x-ves-proto-rpc":"ves.io.schema.views.cdn_loadbalancer.API.Replace"},"x-displayname":"CDN Loadbalancer","x-ves-proto-service":"ves.io.schema.views.cdn_loadbalancer.API","x-ves-proto-service-type":"AUTO_CRUD_PUBLIC"},"/api/cdn/namespaces/{namespace}/cdn_loadbalancer/access_logs":{"post":{"summary":"Get CDN Access Logs","description":"Retrieve CDN Load-Balancer Access logs","operationId":"ves.io.schema.views.cdn_loadbalancer.CustomAPI.CDNAccessLogs","responses":{"200":{"description":"A successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/cdn_loadbalancerCDNLogResponse"}}}},"401":{"description":"Returned when operation is not authorized","content":{"application/json":{"schema":{"format":"string"}}}},"403":{"description":"Returned when there is no permission to access resource","content":{"application/json":{"schema":{"format":"string"}}}},"404":{"description":"Returned when resource is not found","content":{"application/json":{"schema":{"format":"string"}}}},"409":{"description":"Returned when operation on resource is conflicting with current value","content":{"application/json":{"schema":{"format":"string"}}}},"429":{"description":"Returned when operation has been rejected as it is happening too frequently","content":{"application/json":{"schema":{"format":"string"}}}},"500":{"description":"Returned when server encountered an error in processing API","content":{"application/json":{"schema":{"format":"string"}}}},"503":{"description":"Returned when service is unavailable temporarily","content":{"application/json":{"schema":{"format":"string"}}}},"504":{"description":"Returned when server timed out processing request","content":{"application/json":{"schema":{"format":"string"}}}}},"parameters":[{"name":"namespace","description":"namespace\n\nx-example: \"value\"\nfetch access logs for a given namespace","in":"path","required":true,"x-displayname":"Namespace","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/cdn_loadbalancerCDNAccessLogRequest"}}},"required":true},"externalDocs":{"description":"Examples of this operation","url":"https://docs.cloud.f5.com/docs-v2/platform/reference/api-ref/ves-io-schema-views-cdn_loadbalancer-customapi-cdnaccesslogs"},"x-ves-proto-rpc":"ves.io.schema.views.cdn_loadbalancer.CustomAPI.CDNAccessLogs"},"x-displayname":"CDN Loadbalancer","x-ves-proto-service":"ves.io.schema.views.cdn_loadbalancer.CustomAPI","x-ves-proto-service-type":"CUSTOM_PUBLIC"},"/api/cdn/namespaces/{namespace}/cdn_loadbalancer/access_logs/aggregation":{"post":{"summary":"CDN Access Log Aggregation Query","description":"Request to get summary/analytics data for the cdn access logs that matches the query in request for a given namespace.","operationId":"ves.io.schema.views.cdn_loadbalancer.CustomAPI.CDNAccessLogAggregationQuery","responses":{"200":{"description":"A successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/cdn_loadbalancerCDNLogAggregationResponse"}}}},"401":{"description":"Returned when operation is not authorized","content":{"application/json":{"schema":{"format":"string"}}}},"403":{"description":"Returned when there is no permission to access resource","content":{"application/json":{"schema":{"format":"string"}}}},"404":{"description":"Returned when resource is not found","content":{"application/json":{"schema":{"format":"string"}}}},"409":{"description":"Returned when operation on resource is conflicting with current value","content":{"application/json":{"schema":{"format":"string"}}}},"429":{"description":"Returned when operation has been rejected as it is happening too frequently","content":{"application/json":{"schema":{"format":"string"}}}},"500":{"description":"Returned when server encountered an error in processing API","content":{"application/json":{"schema":{"format":"string"}}}},"503":{"description":"Returned when service is unavailable temporarily","content":{"application/json":{"schema":{"format":"string"}}}},"504":{"description":"Returned when server timed out processing request","content":{"application/json":{"schema":{"format":"string"}}}}},"parameters":[{"name":"namespace","description":"namespace\n\nx-example: \"value\"\nget aggregation data for a given namespace","in":"path","required":true,"x-displayname":"Namespace","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/cdn_loadbalancerCDNAccessLogAggregationRequest"}}},"required":true},"externalDocs":{"description":"Examples of this operation","url":"https://docs.cloud.f5.com/docs-v2/platform/reference/api-ref/ves-io-schema-views-cdn_loadbalancer-customapi-cdnaccesslogaggregationquery"},"x-ves-proto-rpc":"ves.io.schema.views.cdn_loadbalancer.CustomAPI.CDNAccessLogAggregationQuery"},"x-displayname":"CDN Loadbalancer","x-ves-proto-service":"ves.io.schema.views.cdn_loadbalancer.CustomAPI","x-ves-proto-service-type":"CUSTOM_PUBLIC"},"/api/cdn/namespaces/{namespace}/cdn_loadbalancer/get-service-operation-status":{"post":{"summary":"Get Service Operation Status","description":"Get status of an operation command for a given CDN Loadbalancer.","operationId":"ves.io.schema.views.cdn_loadbalancer.CustomAPI.GetServiceOperation","responses":{"200":{"description":"A successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/common_cdnGetServiceOperationRsp"}}}},"401":{"description":"Returned when operation is not authorized","content":{"application/json":{"schema":{"format":"string"}}}},"403":{"description":"Returned when there is no permission to access resource","content":{"application/json":{"schema":{"format":"string"}}}},"404":{"description":"Returned when resource is not found","content":{"application/json":{"schema":{"format":"string"}}}},"409":{"description":"Returned when operation on resource is conflicting with current value","content":{"application/json":{"schema":{"format":"string"}}}},"429":{"description":"Returned when operation has been rejected as it is happening too frequently","content":{"application/json":{"schema":{"format":"string"}}}},"500":{"description":"Returned when server encountered an error in processing API","content":{"application/json":{"schema":{"format":"string"}}}},"503":{"description":"Returned when service is unavailable temporarily","content":{"application/json":{"schema":{"format":"string"}}}},"504":{"description":"Returned when server timed out processing request","content":{"application/json":{"schema":{"format":"string"}}}}},"parameters":[{"name":"namespace","description":"Namespace\n\nx-example: \"default\"\nx-required\nNamespace scope of the operation request","in":"path","required":true,"x-displayname":"Namespace","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/common_cdnGetServiceOperationReq"}}},"required":true},"externalDocs":{"description":"Examples of this operation","url":"https://docs.cloud.f5.com/docs-v2/platform/reference/api-ref/ves-io-schema-views-cdn_loadbalancer-customapi-getserviceoperation"},"x-ves-proto-rpc":"ves.io.schema.views.cdn_loadbalancer.CustomAPI.GetServiceOperation"},"x-displayname":"CDN Loadbalancer","x-ves-proto-service":"ves.io.schema.views.cdn_loadbalancer.CustomAPI","x-ves-proto-service-type":"CUSTOM_PUBLIC"},"/api/cdn/namespaces/{namespace}/cdn_loadbalancer/list-service-operations-status":{"post":{"summary":"List of CDN Operation Commands","description":"List of service operations for a given CDN LB","operationId":"ves.io.schema.views.cdn_loadbalancer.CustomAPI.ListServiceOperations","responses":{"200":{"description":"A successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/common_cdnListServiceOperationsRsp"}}}},"401":{"description":"Returned when operation is not authorized","content":{"application/json":{"schema":{"format":"string"}}}},"403":{"description":"Returned when there is no permission to access resource","content":{"application/json":{"schema":{"format":"string"}}}},"404":{"description":"Returned when resource is not found","content":{"application/json":{"schema":{"format":"string"}}}},"409":{"description":"Returned when operation on resource is conflicting with current value","content":{"application/json":{"schema":{"format":"string"}}}},"429":{"description":"Returned when operation has been rejected as it is happening too frequently","content":{"application/json":{"schema":{"format":"string"}}}},"500":{"description":"Returned when server encountered an error in processing API","content":{"application/json":{"schema":{"format":"string"}}}},"503":{"description":"Returned when service is unavailable temporarily","content":{"application/json":{"schema":{"format":"string"}}}},"504":{"description":"Returned when server timed out processing request","content":{"application/json":{"schema":{"format":"string"}}}}},"parameters":[{"name":"namespace","description":"Namespace\n\nx-example: \"ns1\"\nx-required\nThe namespace this item belongs to","in":"path","required":true,"x-displayname":"Namespace","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/common_cdnListServiceOperationsReq"}}},"required":true},"externalDocs":{"description":"Examples of this operation","url":"https://docs.cloud.f5.com/docs-v2/platform/reference/api-ref/ves-io-schema-views-cdn_loadbalancer-customapi-listserviceoperations"},"x-ves-proto-rpc":"ves.io.schema.views.cdn_loadbalancer.CustomAPI.ListServiceOperations"},"x-displayname":"CDN Loadbalancer","x-ves-proto-service":"ves.io.schema.views.cdn_loadbalancer.CustomAPI","x-ves-proto-service-type":"CUSTOM_PUBLIC"},"/api/cdn/namespaces/{namespace}/cdn_loadbalancer/metrics":{"post":{"summary":"Get CDN Metrics","description":"Initial metrics request for CDN loadbalancers","operationId":"ves.io.schema.views.cdn_loadbalancer.CustomAPI.CDNMetrics","responses":{"200":{"description":"A successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/cdn_loadbalancerLilacCDNMetricsResponse"}}}},"401":{"description":"Returned when operation is not authorized","content":{"application/json":{"schema":{"format":"string"}}}},"403":{"description":"Returned when there is no permission to access resource","content":{"application/json":{"schema":{"format":"string"}}}},"404":{"description":"Returned when resource is not found","content":{"application/json":{"schema":{"format":"string"}}}},"409":{"description":"Returned when operation on resource is conflicting with current value","content":{"application/json":{"schema":{"format":"string"}}}},"429":{"description":"Returned when operation has been rejected as it is happening too frequently","content":{"application/json":{"schema":{"format":"string"}}}},"500":{"description":"Returned when server encountered an error in processing API","content":{"application/json":{"schema":{"format":"string"}}}},"503":{"description":"Returned when service is unavailable temporarily","content":{"application/json":{"schema":{"format":"string"}}}},"504":{"description":"Returned when server timed out processing request","content":{"application/json":{"schema":{"format":"string"}}}}},"parameters":[{"name":"namespace","description":"Namespace\n\nx-example: \"default\"\nx-required\nNamespace scope of the metric request","in":"path","required":true,"x-displayname":"Namespace","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/cdn_loadbalancerLilacCDNMetricsRequest"}}},"required":true},"externalDocs":{"description":"Examples of this operation","url":"https://docs.cloud.f5.com/docs-v2/platform/reference/api-ref/ves-io-schema-views-cdn_loadbalancer-customapi-cdnmetrics"},"x-ves-proto-rpc":"ves.io.schema.views.cdn_loadbalancer.CustomAPI.CDNMetrics"},"x-displayname":"CDN Loadbalancer","x-ves-proto-service":"ves.io.schema.views.cdn_loadbalancer.CustomAPI","x-ves-proto-service-type":"CUSTOM_PUBLIC"},"/api/cdn/namespaces/{namespace}/cdn_loadbalancer/{name}/cache-purge":{"post":{"summary":"Purge CDN Cache","description":"Initiate Purge for Edge CDN Cache","operationId":"ves.io.schema.views.cdn_loadbalancer.CustomAPI.CDNCachePurge","responses":{"200":{"description":"A successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/common_cdnLilacCDNCachePurgeResponse"}}}},"401":{"description":"Returned when operation is not authorized","content":{"application/json":{"schema":{"format":"string"}}}},"403":{"description":"Returned when there is no permission to access resource","content":{"application/json":{"schema":{"format":"string"}}}},"404":{"description":"Returned when resource is not found","content":{"application/json":{"schema":{"format":"string"}}}},"409":{"description":"Returned when operation on resource is conflicting with current value","content":{"application/json":{"schema":{"format":"string"}}}},"429":{"description":"Returned when operation has been rejected as it is happening too frequently","content":{"application/json":{"schema":{"format":"string"}}}},"500":{"description":"Returned when server encountered an error in processing API","content":{"application/json":{"schema":{"format":"string"}}}},"503":{"description":"Returned when service is unavailable temporarily","content":{"application/json":{"schema":{"format":"string"}}}},"504":{"description":"Returned when server timed out processing request","content":{"application/json":{"schema":{"format":"string"}}}}},"parameters":[{"name":"namespace","description":"Namespace\n\nx-example: \"default\"\nx-required\nNamespace scope of the metric request","in":"path","required":true,"x-displayname":"Namespace","schema":{"type":"string"}},{"name":"name","description":"CDN Distribution Name\n\nx-example: \"cdn-1\"\nx-required\nFormat: string","in":"path","required":true,"x-displayname":"Name of the CDN distrubition","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/common_cdnLilacCDNCachePurgeRequest"}}},"required":true},"externalDocs":{"description":"Examples of this operation","url":"https://docs.cloud.f5.com/docs-v2/platform/reference/api-ref/ves-io-schema-views-cdn_loadbalancer-customapi-cdncachepurge"},"x-ves-proto-rpc":"ves.io.schema.views.cdn_loadbalancer.CustomAPI.CDNCachePurge"},"x-displayname":"CDN Loadbalancer","x-ves-proto-service":"ves.io.schema.views.cdn_loadbalancer.CustomAPI","x-ves-proto-service-type":"CUSTOM_PUBLIC"},"/api/config/namespaces/{namespace}/cdn_loadbalancers":{"get":{"summary":"List CDN Loadbalancer","description":"List the set of cdn_loadbalancer in a namespace","operationId":"ves.io.schema.views.cdn_loadbalancer.API.List","responses":{"200":{"description":"A successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/cdn_loadbalancerListResponse"}}}},"401":{"description":"Returned when operation is not authorized","content":{"application/json":{"schema":{"format":"string"}}}},"403":{"description":"Returned when there is no permission to access resource","content":{"application/json":{"schema":{"format":"string"}}}},"404":{"description":"Returned when resource is not found","content":{"application/json":{"schema":{"format":"string"}}}},"409":{"description":"Returned when operation on resource is conflicting with current value","content":{"application/json":{"schema":{"format":"string"}}}},"429":{"description":"Returned when operation has been rejected as it is happening too frequently","content":{"application/json":{"schema":{"format":"string"}}}},"500":{"description":"Returned when server encountered an error in processing API","content":{"application/json":{"schema":{"format":"string"}}}},"503":{"description":"Returned when service is unavailable temporarily","content":{"application/json":{"schema":{"format":"string"}}}},"504":{"description":"Returned when server timed out processing request","content":{"application/json":{"schema":{"format":"string"}}}}},"parameters":[{"name":"namespace","description":"namespace\n\nx-example: \"ns1\"\nNamespace to scope the listing of cdn_loadbalancer","in":"path","required":true,"x-displayname":"Namespace","schema":{"type":"string"}},{"name":"label_filter","description":"x-example: \"env in (staging, testing), tier in (web, db)\"\nA LabelSelectorType expression that every item in list response will satisfy","in":"query","required":false,"x-displayname":"Label Filter","schema":{"type":"string"}},{"name":"report_fields","description":"x-example: \"\"\nExtra fields to return along with summary fields","in":"query","required":false,"x-displayname":"Report Fields","explode":true,"schema":{"type":"array","items":{"type":"string"}}},{"name":"report_status_fields","description":"x-example: \"\"\nExtra status fields to return along with summary fields","in":"query","required":false,"x-displayname":"Report Status Fields","explode":true,"schema":{"type":"array","items":{"type":"string"}}}],"externalDocs":{"description":"Examples of this operation","url":"https://docs.cloud.f5.com/docs-v2/platform/reference/api-ref/ves-io-schema-views-cdn_loadbalancer-api-list"},"x-ves-proto-rpc":"ves.io.schema.views.cdn_loadbalancer.API.List"},"x-displayname":"CDN Loadbalancer","x-ves-proto-service":"ves.io.schema.views.cdn_loadbalancer.API","x-ves-proto-service-type":"AUTO_CRUD_PUBLIC"},"/api/config/namespaces/{namespace}/cdn_loadbalancers/get_security_config":{"post":{"summary":"Get Security Config for CDN Load Balancer","description":"Fetch the corresponding Security Config for the given CDN load balancers","operationId":"ves.io.schema.views.cdn_loadbalancer.CustomCDNWAAPAPI.GetCDNSecurityConfig","responses":{"200":{"description":"A successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/common_securityGetSecurityConfigRsp"}}}},"401":{"description":"Returned when operation is not authorized","content":{"application/json":{"schema":{"format":"string"}}}},"403":{"description":"Returned when there is no permission to access resource","content":{"application/json":{"schema":{"format":"string"}}}},"404":{"description":"Returned when resource is not found","content":{"application/json":{"schema":{"format":"string"}}}},"409":{"description":"Returned when operation on resource is conflicting with current value","content":{"application/json":{"schema":{"format":"string"}}}},"429":{"description":"Returned when operation has been rejected as it is happening too frequently","content":{"application/json":{"schema":{"format":"string"}}}},"500":{"description":"Returned when server encountered an error in processing API","content":{"application/json":{"schema":{"format":"string"}}}},"503":{"description":"Returned when service is unavailable temporarily","content":{"application/json":{"schema":{"format":"string"}}}},"504":{"description":"Returned when server timed out processing request","content":{"application/json":{"schema":{"format":"string"}}}}},"parameters":[{"name":"namespace","description":"Namespace\n\nx-example: \"shared\"\nNamespace of the CDN Load Balancer for current request","in":"path","required":true,"x-displayname":"Namespace","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/cdn_loadbalancerGetCDNSecurityConfigReq"}}},"required":true},"externalDocs":{"description":"Examples of this operation","url":"https://docs.cloud.f5.com/docs-v2/platform/reference/api-ref/ves-io-schema-views-cdn_loadbalancer-customcdnwaapapi-getcdnsecurityconfig"},"x-ves-proto-rpc":"ves.io.schema.views.cdn_loadbalancer.CustomCDNWAAPAPI.GetCDNSecurityConfig"},"x-displayname":"CDN Loadbalancer","x-ves-proto-service":"ves.io.schema.views.cdn_loadbalancer.CustomCDNWAAPAPI","x-ves-proto-service-type":"CUSTOM_PUBLIC"},"/api/config/namespaces/{namespace}/cdn_loadbalancers/{name}":{"get":{"summary":"Get CDN Loadbalancer","description":"Shape of the CDN loadbalancer specification","operationId":"ves.io.schema.views.cdn_loadbalancer.API.Get","responses":{"200":{"description":"A successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/cdn_loadbalancerGetResponse"}}}},"401":{"description":"Returned when operation is not authorized","content":{"application/json":{"schema":{"format":"string"}}}},"403":{"description":"Returned when there is no permission to access resource","content":{"application/json":{"schema":{"format":"string"}}}},"404":{"description":"Returned when resource is not found","content":{"application/json":{"schema":{"format":"string"}}}},"409":{"description":"Returned when operation on resource is conflicting with current value","content":{"application/json":{"schema":{"format":"string"}}}},"429":{"description":"Returned when operation has been rejected as it is happening too frequently","content":{"application/json":{"schema":{"format":"string"}}}},"500":{"description":"Returned when server encountered an error in processing API","content":{"application/json":{"schema":{"format":"string"}}}},"503":{"description":"Returned when service is unavailable temporarily","content":{"application/json":{"schema":{"format":"string"}}}},"504":{"description":"Returned when server timed out processing request","content":{"application/json":{"schema":{"format":"string"}}}}},"parameters":[{"name":"namespace","description":"namespace\n\nx-example: \"ns1\"\nThe namespace in which the configuration object is present","in":"path","required":true,"x-displayname":"Namespace","schema":{"type":"string"}},{"name":"name","description":"name\n\nx-example: \"name\"\nThe name of the configuration object to be fetched","in":"path","required":true,"x-displayname":"Name","schema":{"type":"string"}},{"name":"response_format","description":"The format in which the configuration object is to be fetched. This could be for example\n - in GetSpec form for the contents of object\n - in CreateRequest form to create a new similar object\n - to ReplaceRequest form to replace changeable values\n\nDefault format of returned resource\nResponse should be in CreateRequest format\nResponse should be in ReplaceRequest format\nResponse should be in StatusObject(s) format\nResponse should be in format of GetSpecType\nResponse should have other objects referring to this object\nResponse should have deleted and disabled objects referrred by this object","in":"query","required":false,"x-displayname":"Broken Referred Objects","schema":{"type":"string","enum":["GET_RSP_FORMAT_DEFAULT","GET_RSP_FORMAT_FOR_CREATE","GET_RSP_FORMAT_FOR_REPLACE","GET_RSP_FORMAT_STATUS","GET_RSP_FORMAT_READ","GET_RSP_FORMAT_REFERRING_OBJECTS","GET_RSP_FORMAT_BROKEN_REFERENCES"],"default":"GET_RSP_FORMAT_DEFAULT"}}],"externalDocs":{"description":"Examples of this operation","url":"https://docs.cloud.f5.com/docs-v2/platform/reference/api-ref/ves-io-schema-views-cdn_loadbalancer-api-get"},"x-ves-proto-rpc":"ves.io.schema.views.cdn_loadbalancer.API.Get"},"delete":{"summary":"Delete CDN Loadbalancer","description":"Delete the specified cdn_loadbalancer","operationId":"ves.io.schema.views.cdn_loadbalancer.API.Delete","responses":{"200":{"description":"A successful response.","content":{"application/json":{"schema":{}}}},"401":{"description":"Returned when operation is not authorized","content":{"application/json":{"schema":{"format":"string"}}}},"403":{"description":"Returned when there is no permission to access resource","content":{"application/json":{"schema":{"format":"string"}}}},"404":{"description":"Returned when resource is not found","content":{"application/json":{"schema":{"format":"string"}}}},"409":{"description":"Returned when operation on resource is conflicting with current value","content":{"application/json":{"schema":{"format":"string"}}}},"429":{"description":"Returned when operation has been rejected as it is happening too frequently","content":{"application/json":{"schema":{"format":"string"}}}},"500":{"description":"Returned when server encountered an error in processing API","content":{"application/json":{"schema":{"format":"string"}}}},"503":{"description":"Returned when service is unavailable temporarily","content":{"application/json":{"schema":{"format":"string"}}}},"504":{"description":"Returned when server timed out processing request","content":{"application/json":{"schema":{"format":"string"}}}}},"parameters":[{"name":"namespace","description":"namespace\n\nx-example: \"ns1\"\nNamespace in which the configuration object is present","in":"path","required":true,"x-displayname":"Namespace","schema":{"type":"string"}},{"name":"name","description":"name\n\nx-example: \"name\"\nName of the configuration object","in":"path","required":true,"x-displayname":"Name","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/cdn_loadbalancerDeleteRequest"}}},"required":true},"externalDocs":{"description":"Examples of this operation","url":"https://docs.cloud.f5.com/docs-v2/platform/reference/api-ref/ves-io-schema-views-cdn_loadbalancer-api-delete"},"x-ves-proto-rpc":"ves.io.schema.views.cdn_loadbalancer.API.Delete"},"x-displayname":"CDN Loadbalancer","x-ves-proto-service":"ves.io.schema.views.cdn_loadbalancer.API","x-ves-proto-service-type":"AUTO_CRUD_PUBLIC"},"/api/config/namespaces/{namespace}/cdn_loadbalancers/{name}/dos_automitigation_rules":{"get":{"summary":"Get DoS Auto-Mitigation Rules for CDN Load Balancer","description":"Get the corresponding DoS Auto-Mitigation Rules for the given CDN load balancer","operationId":"ves.io.schema.views.cdn_loadbalancer.CustomCDNWAAPAPI.GetCDNDoSAutoMitigationRules","responses":{"200":{"description":"A successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/common_securityGetDoSAutoMitigationRulesRsp"}}}},"401":{"description":"Returned when operation is not authorized","content":{"application/json":{"schema":{"format":"string"}}}},"403":{"description":"Returned when there is no permission to access resource","content":{"application/json":{"schema":{"format":"string"}}}},"404":{"description":"Returned when resource is not found","content":{"application/json":{"schema":{"format":"string"}}}},"409":{"description":"Returned when operation on resource is conflicting with current value","content":{"application/json":{"schema":{"format":"string"}}}},"429":{"description":"Returned when operation has been rejected as it is happening too frequently","content":{"application/json":{"schema":{"format":"string"}}}},"500":{"description":"Returned when server encountered an error in processing API","content":{"application/json":{"schema":{"format":"string"}}}},"503":{"description":"Returned when service is unavailable temporarily","content":{"application/json":{"schema":{"format":"string"}}}},"504":{"description":"Returned when server timed out processing request","content":{"application/json":{"schema":{"format":"string"}}}}},"parameters":[{"name":"namespace","description":"Namespace\n\nx-example: \"shared\"\nNamespace of the Load Balancer","in":"path","required":true,"x-displayname":"Namespace","schema":{"type":"string"}},{"name":"name","description":"Name\n\nx-example: \"blogging-app\"\nName of the Load Balancer","in":"path","required":true,"x-displayname":"Name","schema":{"type":"string"}}],"externalDocs":{"description":"Examples of this operation","url":"https://docs.cloud.f5.com/docs-v2/platform/reference/api-ref/ves-io-schema-views-cdn_loadbalancer-customcdnwaapapi-getcdndosautomitigationrules"},"x-ves-proto-rpc":"ves.io.schema.views.cdn_loadbalancer.CustomCDNWAAPAPI.GetCDNDoSAutoMitigationRules"},"x-displayname":"CDN Loadbalancer","x-ves-proto-service":"ves.io.schema.views.cdn_loadbalancer.CustomCDNWAAPAPI","x-ves-proto-service-type":"CUSTOM_PUBLIC"},"/api/config/namespaces/{namespace}/cdn_loadbalancers/{name}/dos_automitigation_rules/{dos_automitigation_rule_name}":{"delete":{"summary":"Delete DoS Auto-Mitigation Rule for CDN Load Balancer","description":"Delete the corresponding DoS Auto-Mitigation Rule for the given CDN load balancer","operationId":"ves.io.schema.views.cdn_loadbalancer.CustomCDNWAAPAPI.DeleteCDNDoSAutoMitigationRule","responses":{"200":{"description":"A successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/common_securityDeleteDoSAutoMitigationRuleRsp"}}}},"401":{"description":"Returned when operation is not authorized","content":{"application/json":{"schema":{"format":"string"}}}},"403":{"description":"Returned when there is no permission to access resource","content":{"application/json":{"schema":{"format":"string"}}}},"404":{"description":"Returned when resource is not found","content":{"application/json":{"schema":{"format":"string"}}}},"409":{"description":"Returned when operation on resource is conflicting with current value","content":{"application/json":{"schema":{"format":"string"}}}},"429":{"description":"Returned when operation has been rejected as it is happening too frequently","content":{"application/json":{"schema":{"format":"string"}}}},"500":{"description":"Returned when server encountered an error in processing API","content":{"application/json":{"schema":{"format":"string"}}}},"503":{"description":"Returned when service is unavailable temporarily","content":{"application/json":{"schema":{"format":"string"}}}},"504":{"description":"Returned when server timed out processing request","content":{"application/json":{"schema":{"format":"string"}}}}},"parameters":[{"name":"namespace","description":"Namespace\n\nx-example: \"shared\"\nNamespace of the Load Balancer","in":"path","required":true,"x-displayname":"Namespace","schema":{"type":"string"}},{"name":"name","description":"Name\n\nx-example: \"blogging-app\"\nName of the Load Balancer","in":"path","required":true,"x-displayname":"Name","schema":{"type":"string"}},{"name":"dos_automitigation_rule_name","description":"DoS Mitigation Rule Name\n\nx-example: \"dos-auto-mitigation-ves-io-http-loadbalancer-ce22\"\nName of the DoS Mitigation Rule","in":"path","required":true,"x-displayname":"DoS Mitigation Rule Name","schema":{"type":"string"}}],"externalDocs":{"description":"Examples of this operation","url":"https://docs.cloud.f5.com/docs-v2/platform/reference/api-ref/ves-io-schema-views-cdn_loadbalancer-customcdnwaapapi-deletecdndosautomitigationrule"},"x-ves-proto-rpc":"ves.io.schema.views.cdn_loadbalancer.CustomCDNWAAPAPI.DeleteCDNDoSAutoMitigationRule"},"x-displayname":"CDN Loadbalancer","x-ves-proto-service":"ves.io.schema.views.cdn_loadbalancer.CustomCDNWAAPAPI","x-ves-proto-service-type":"CUSTOM_PUBLIC"}},"x-displayname":"CDN Loadbalancer","x-ves-proto-package":"ves.io.schema.views.cdn_loadbalancer","components":{"schemas":{"access_logCDNAccessLogTag":{"type":"string","description":"Tags on which CDN access logs can be filtered or grouped by\n","title":"Metrics Tag options","enum":["CDN_NAME","SITE_NAME","METHOD","REQ_PATH","RSP_CODE","USER_AGENT","SCHEME","COUNTRY","CACHE_STATUS","RSP_CONTENT_TYPE","HOST_HEADER","REFERER","SNI","UPSTREAM_STATUS","RSP_CODE_CLASS","SRC_IP","TLS_VERSION","REQ_SIZE","HTTP_VERSION","CITY_NAME","UPSTREAM_ADDR"],"default":"CDN_NAME","x-displayname":"Tags","x-ves-proto-enum":"ves.io.schema.views.cdn_loadbalancer.access_log.CDNAccessLogTag"},"app_firewallAppFirewallViolationType":{"type":"string","description":"List of all supported Violation Types\n\nVIOL_NONE\nVIOL_FILETYPE\nVIOL_METHOD\nVIOL_MANDATORY_HEADER\nVIOL_HTTP_RESPONSE_STATUS\nVIOL_REQUEST_MAX_LENGTH\nVIOL_FILE_UPLOAD\nVIOL_FILE_UPLOAD_IN_BODY\nVIOL_XML_MALFORMED\nVIOL_JSON_MALFORMED\nVIOL_ASM_COOKIE_MODIFIED\nVIOL_HTTP_PROTOCOL_MULTIPLE_HOST_HEADERS\nVIOL_HTTP_PROTOCOL_BAD_HOST_HEADER_VALUE\nVIOL_HTTP_PROTOCOL_UNPARSABLE_REQUEST_CONTENT\nVIOL_HTTP_PROTOCOL_NULL_IN_REQUEST\nVIOL_HTTP_PROTOCOL_BAD_HTTP_VERSION\nVIOL_HTTP_PROTOCOL_CRLF_CHARACTERS_BEFORE_REQUEST_START\nVIOL_HTTP_PROTOCOL_NO_HOST_HEADER_IN_HTTP_1_1_REQUEST\nVIOL_HTTP_PROTOCOL_BAD_MULTIPART_PARAMETERS_PARSING\nVIOL_HTTP_PROTOCOL_SEVERAL_CONTENT_LENGTH_HEADERS\nVIOL_HTTP_PROTOCOL_CONTENT_LENGTH_SHOULD_BE_A_POSITIVE_NUMBER\nVIOL_EVASION_DIRECTORY_TRAVERSALS\nVIOL_MALFORMED_REQUEST\nVIOL_EVASION_MULTIPLE_DECODING\nVIOL_DATA_GUARD\nVIOL_EVASION_APACHE_WHITESPACE\nVIOL_COOKIE_MODIFIED\nVIOL_EVASION_IIS_UNICODE_CODEPOINTS\nVIOL_EVASION_IIS_BACKSLASHES\nVIOL_EVASION_PERCENT_U_DECODING\nVIOL_EVASION_BARE_BYTE_DECODING\nVIOL_EVASION_BAD_UNESCAPE\nVIOL_HTTP_PROTOCOL_BAD_MULTIPART_FORMDATA_REQUEST_PARSING\nVIOL_HTTP_PROTOCOL_BODY_IN_GET_OR_HEAD_REQUEST\nVIOL_HTTP_PROTOCOL_HIGH_ASCII_CHARACTERS_IN_HEADERS\nVIOL_ENCODING\nVIOL_COOKIE_MALFORMED\nVIOL_GRAPHQL_FORMAT\nVIOL_GRAPHQL_MALFORMED\nVIOL_GRAPHQL_INTROSPECTION_QUERY","title":"App Firewall Violation Type","enum":["VIOL_NONE","VIOL_FILETYPE","VIOL_METHOD","VIOL_MANDATORY_HEADER","VIOL_HTTP_RESPONSE_STATUS","VIOL_REQUEST_MAX_LENGTH","VIOL_FILE_UPLOAD","VIOL_FILE_UPLOAD_IN_BODY","VIOL_XML_MALFORMED","VIOL_JSON_MALFORMED","VIOL_ASM_COOKIE_MODIFIED","VIOL_HTTP_PROTOCOL_MULTIPLE_HOST_HEADERS","VIOL_HTTP_PROTOCOL_BAD_HOST_HEADER_VALUE","VIOL_HTTP_PROTOCOL_UNPARSABLE_REQUEST_CONTENT","VIOL_HTTP_PROTOCOL_NULL_IN_REQUEST","VIOL_HTTP_PROTOCOL_BAD_HTTP_VERSION","VIOL_HTTP_PROTOCOL_CRLF_CHARACTERS_BEFORE_REQUEST_START","VIOL_HTTP_PROTOCOL_NO_HOST_HEADER_IN_HTTP_1_1_REQUEST","VIOL_HTTP_PROTOCOL_BAD_MULTIPART_PARAMETERS_PARSING","VIOL_HTTP_PROTOCOL_SEVERAL_CONTENT_LENGTH_HEADERS","VIOL_HTTP_PROTOCOL_CONTENT_LENGTH_SHOULD_BE_A_POSITIVE_NUMBER","VIOL_EVASION_DIRECTORY_TRAVERSALS","VIOL_MALFORMED_REQUEST","VIOL_EVASION_MULTIPLE_DECODING","VIOL_DATA_GUARD","VIOL_EVASION_APACHE_WHITESPACE","VIOL_COOKIE_MODIFIED","VIOL_EVASION_IIS_UNICODE_CODEPOINTS","VIOL_EVASION_IIS_BACKSLASHES","VIOL_EVASION_PERCENT_U_DECODING","VIOL_EVASION_BARE_BYTE_DECODING","VIOL_EVASION_BAD_UNESCAPE","VIOL_HTTP_PROTOCOL_BAD_MULTIPART_FORMDATA_REQUEST_PARSING","VIOL_HTTP_PROTOCOL_BODY_IN_GET_OR_HEAD_REQUEST","VIOL_HTTP_PROTOCOL_HIGH_ASCII_CHARACTERS_IN_HEADERS","VIOL_ENCODING","VIOL_COOKIE_MALFORMED","VIOL_GRAPHQL_FORMAT","VIOL_GRAPHQL_MALFORMED","VIOL_GRAPHQL_INTROSPECTION_QUERY"],"default":"VIOL_NONE","x-displayname":"App Firewall Violation Type","x-ves-proto-enum":"ves.io.schema.app_firewall.AppFirewallViolationType"},"app_firewallAttackType":{"type":"string","description":"List of all Attack Types\n\nATTACK_TYPE_NONE\nATTACK_TYPE_NON_BROWSER_CLIENT\nATTACK_TYPE_OTHER_APPLICATION_ATTACKS\nATTACK_TYPE_TROJAN_BACKDOOR_SPYWARE\nATTACK_TYPE_DETECTION_EVASION\nATTACK_TYPE_VULNERABILITY_SCAN\nATTACK_TYPE_ABUSE_OF_FUNCTIONALITY\nATTACK_TYPE_AUTHENTICATION_AUTHORIZATION_ATTACKS\nATTACK_TYPE_BUFFER_OVERFLOW\nATTACK_TYPE_PREDICTABLE_RESOURCE_LOCATION\nATTACK_TYPE_INFORMATION_LEAKAGE\nATTACK_TYPE_DIRECTORY_INDEXING\nATTACK_TYPE_PATH_TRAVERSAL\nATTACK_TYPE_XPATH_INJECTION\nATTACK_TYPE_LDAP_INJECTION\nATTACK_TYPE_SERVER_SIDE_CODE_INJECTION\nATTACK_TYPE_COMMAND_EXECUTION\nATTACK_TYPE_SQL_INJECTION\nATTACK_TYPE_CROSS_SITE_SCRIPTING\nATTACK_TYPE_DENIAL_OF_SERVICE\nATTACK_TYPE_HTTP_PARSER_ATTACK\nATTACK_TYPE_SESSION_HIJACKING\nATTACK_TYPE_HTTP_RESPONSE_SPLITTING\nATTACK_TYPE_FORCEFUL_BROWSING\nATTACK_TYPE_REMOTE_FILE_INCLUDE\nATTACK_TYPE_MALICIOUS_FILE_UPLOAD\nATTACK_TYPE_GRAPHQL_PARSER_ATTACK","title":"AttackType","enum":["ATTACK_TYPE_NONE","ATTACK_TYPE_NON_BROWSER_CLIENT","ATTACK_TYPE_OTHER_APPLICATION_ATTACKS","ATTACK_TYPE_TROJAN_BACKDOOR_SPYWARE","ATTACK_TYPE_DETECTION_EVASION","ATTACK_TYPE_VULNERABILITY_SCAN","ATTACK_TYPE_ABUSE_OF_FUNCTIONALITY","ATTACK_TYPE_AUTHENTICATION_AUTHORIZATION_ATTACKS","ATTACK_TYPE_BUFFER_OVERFLOW","ATTACK_TYPE_PREDICTABLE_RESOURCE_LOCATION","ATTACK_TYPE_INFORMATION_LEAKAGE","ATTACK_TYPE_DIRECTORY_INDEXING","ATTACK_TYPE_PATH_TRAVERSAL","ATTACK_TYPE_XPATH_INJECTION","ATTACK_TYPE_LDAP_INJECTION","ATTACK_TYPE_SERVER_SIDE_CODE_INJECTION","ATTACK_TYPE_COMMAND_EXECUTION","ATTACK_TYPE_SQL_INJECTION","ATTACK_TYPE_CROSS_SITE_SCRIPTING","ATTACK_TYPE_DENIAL_OF_SERVICE","ATTACK_TYPE_HTTP_PARSER_ATTACK","ATTACK_TYPE_SESSION_HIJACKING","ATTACK_TYPE_HTTP_RESPONSE_SPLITTING","ATTACK_TYPE_FORCEFUL_BROWSING","ATTACK_TYPE_REMOTE_FILE_INCLUDE","ATTACK_TYPE_MALICIOUS_FILE_UPLOAD","ATTACK_TYPE_GRAPHQL_PARSER_ATTACK"],"default":"ATTACK_TYPE_NONE","x-displayname":"Attack Types","x-ves-proto-enum":"ves.io.schema.app_firewall.AttackType"},"app_typeAPIEndpoint":{"type":"object","description":"x-required\nx-displayName: \"API Endpoint\"\nThe rule is applied only for the specified api endpoints.","title":"api endpoint","properties":{"api_endpoint_path":{"type":"string","description":"x-required\nx-example: \"/endpoint1\"\nx-displayName: \"API Endpoint\"\nThe rule is applied only for the specified api endpoints.","title":"api endpoint path"},"methods":{"type":"array","description":"x-displayName: \"Methods\"\nList of methods values to match against.\nx-required\nx-example: \"['GET', 'POST', 'DELETE']\"","title":"methods","items":{"$ref":"#/components/schemas/schemaHttpMethod"}}}},"app_typeBuiltInSensitiveDataType":{"type":"object","description":"x-displayName: \"Built-In Sensitive Data Type\"\nx-example: \"[EMAIL, CC]\"\nMessage wrapper for built-in sensitive data type.","title":"BuiltInSensitiveDataType","properties":{"name":{"type":"string","description":"x-displayName: \"Name\"\nx-example: \"[EMAIL, CC]\"\nx-required\nBuilt-in rule for sensitive data detection.","title":"name"}}},"app_typeCustomDataDetectionConfig":{"type":"object","description":"x-displayName: \"Custom Data Detection Config\"\nThe custom data detection config specifies targets, scopes & the pattern to be detected.","title":"CustomDataDetectionConfig","properties":{"all_request_sections":{"$ref":"#/components/schemas/ioschemaEmpty"},"all_response_sections":{"$ref":"#/components/schemas/ioschemaEmpty"},"all_sections":{"$ref":"#/components/schemas/ioschemaEmpty"},"any_domain":{"$ref":"#/components/schemas/ioschemaEmpty"},"any_target":{"$ref":"#/components/schemas/ioschemaEmpty"},"api_endpoint_target":{"$ref":"#/components/schemas/app_typeAPIEndpoint"},"api_group":{"type":"string","description":"x-displayName: \"API Group\"\nx-example: \"oas-all-operations\"\nThe rule is applied on the APIs that belong to specified api_group.\nAPI groups derived from API Definition swaggers.\nFor example oas-all-operations including all paths and methods from the swaggers, oas-base-urls covering all requests under base-paths from the swaggers.\nCustom groups can be created if user tags paths or operations with \"x-volterra-api-group\" extensions inside swaggers.","title":"api_group"},"base_path":{"type":"string","description":"x-example: \"/v1\"\nx-displayName: \"Base Path\"\nThe rule is applied only for the requests matching the specified base path.","title":"base path"},"custom_sections":{"$ref":"#/components/schemas/app_typeCustomSections"},"key_pattern":{"$ref":"#/components/schemas/app_typeKeyPattern"},"key_value_pattern":{"$ref":"#/components/schemas/app_typeKeyValuePattern"},"specific_domain":{"type":"string","description":"x-displayName: \"Specific Domain\"\nx-example: \"api.example.com\"\nThe rule will apply for a specific domain.\nFor example: api.example.com","title":"domain"},"value_pattern":{"$ref":"#/components/schemas/app_typeValuePattern"}}},"app_typeCustomSections":{"type":"object","description":"x-displayName: \"Custom Sections\"\nRequest & Response Sections.","title":"CustomSections","properties":{"custom_sections":{"type":"array","description":"x-displayName: \"Custom Sections\"\nx-required\nRequest & Response Sections.","title":"custom_sections","items":{"$ref":"#/components/schemas/schemaHttpSections"}}}},"app_typeCustomSensitiveDataDetectionRule":{"type":"object","description":"x-displayName: \"Custom Sensitive Data Detection Rule\"\nCustom Sensitive Data Rule Definition.","title":"CustomSensitiveDataRule","properties":{"metadata":{"$ref":"#/components/schemas/schemaMessageMetaType"},"sensitive_data_detection_config":{"$ref":"#/components/schemas/app_typeCustomDataDetectionConfig"},"sensitive_data_type":{"$ref":"#/components/schemas/app_typeCustomSensitiveDataType"}}},"app_typeCustomSensitiveDataType":{"type":"object","description":"x-displayName: \"Custom Sensitive Data Type\"\nThe type/category of the sensitive data this rule detects. e.g. Email, Credit Card etc.","title":"CustomSensitiveDataType","properties":{"type":{"type":"string","description":"x-required\nx-displayName: \"Type\"\nx-example: \"EMAIL\"\nThe request is labeled as specified sensitive data type.","title":"sensitive data type"}}},"app_typeDiscoveredAPISettings":{"type":"object","description":"x-example: \"2\"\nConfigure Discovered API Settings.","title":"DiscoveredAPISettings","x-displayname":"Discovered API Settings","x-ves-proto-message":"ves.io.schema.app_type.DiscoveredAPISettings","properties":{"purge_duration_for_inactive_discovered_apis":{"type":"integer","description":" Inactive discovered API will be deleted after configured duration.\n\nExample: ` \"2\"`\n\nValidation Rules:\n ves.io.schema.rules.uint32.gte: 1\n ves.io.schema.rules.uint32.lte: 7\n","title":"purge_duration_for_inactive_discovered_apis","format":"int64","x-displayname":"Purge Duration for Inactive Discovered APIs from Traffic","x-ves-example":"2","x-ves-validation-rules":{"ves.io.schema.rules.uint32.gte":"1","ves.io.schema.rules.uint32.lte":"7"}}}},"app_typeKeyPattern":{"type":"object","description":"x-displayName: \"Key Pattern\"\nPattern to detect. Could be exact match or regex match.","title":"Key Pattern","properties":{"exact_value":{"type":"string","description":"x-displayName: \"Exact Value\"\nx-example: \"x-volt-header\"\nSearch for values with exact match.","title":"exact value"},"regex_value":{"type":"string","description":"x-displayName: \"Regex Value\"\nx-example: \"'^new.*$', 'san f.*', '.* del .*'\"\nSearch for values matching this regular expression.","title":"regex value"}}},"app_typeKeyValuePattern":{"type":"object","description":"x-displayName: \"Key & Value Pattern\"\nSearch for specific key & value patterns in the specified sections.","title":"Key-Value Pattern","properties":{"key_pattern":{"$ref":"#/components/schemas/app_typeKeyPattern"},"value_pattern":{"$ref":"#/components/schemas/app_typeValuePattern"}}},"app_typeSensitiveDataDetectionRules":{"type":"object","description":"x-displayName: \"Sensitive Data Detection Rules\"\nRules to manage/configure sensitive data detection in requests and/or response sections.","title":"Sensitive Data Detection Rules","properties":{"custom_sensitive_data_detection_rules":{"type":"array","description":"x-displayName: \"Defined Custom Sensitive Data Types\"\nRules to detect custom sensitive data in requests and/or responses sections.","title":"custom sensitive data rules","items":{"$ref":"#/components/schemas/app_typeCustomSensitiveDataDetectionRule"}},"disabled_built_in_rules":{"type":"array","description":"x-displayName: \"Disabled Built-In Sensitive Data Types\"\nx-example: \"[EMAIL, CC]\"\nList of disabled built-in sensitive data detection rules.","title":"disabled_built_in_rules","items":{"$ref":"#/components/schemas/app_typeBuiltInSensitiveDataType"}}}},"app_typeValuePattern":{"type":"object","description":"x-displayName: \"Value Pattern\"\nPattern to detect. Could be exact match or regex match.","title":"Value Pattern","properties":{"exact_value":{"type":"string","description":"x-displayName: \"Exact Value\"\nx-example: \"x-volt-header\"\nPattern value to be detected.","title":"exact value"},"regex_value":{"type":"string","description":"x-displayName: \"Regex Value\"\nx-example: \"'^new.*$', 'san f.*', '.* del .*'\"\nRegular expression for this pattern.","title":"regex value"}}},"cdn_loadbalancerApiProtection":{"type":"object","description":"x-displayName: \"API Definition\"\nAPI Definition based on the imported swagger specs","title":"API Definition","properties":{"api_discovery_on_cache_miss":{"$ref":"#/components/schemas/common_wafApiDiscoverySetting"},"api_protection_rules":{"$ref":"#/components/schemas/common_wafAPIProtectionRules"},"api_specification":{"$ref":"#/components/schemas/common_wafAPISpecificationSettings"},"api_specification_on_cache_miss":{"$ref":"#/components/schemas/common_wafAPISpecificationSettings"},"default_sensitive_data_policy":{"$ref":"#/components/schemas/ioschemaEmpty"},"disable_api_definition":{"$ref":"#/components/schemas/ioschemaEmpty"},"disable_api_discovery":{"$ref":"#/components/schemas/ioschemaEmpty"},"enable_api_discovery":{"$ref":"#/components/schemas/common_wafApiDiscoverySetting"},"jwt_validation":{"$ref":"#/components/schemas/common_wafJWTValidation"},"sensitive_data_policy":{"$ref":"#/components/schemas/common_securitySensitiveDataPolicySettings"}}},"cdn_loadbalancerAuthenticationOptions":{"type":"object","description":"x-displayName: \"Authentication Options\"\nOptions to authenticate incoming client requests","title":"AuthenticationOptions","properties":{"custom":{"$ref":"#/components/schemas/cdn_loadbalancerCDNCustomAuthentication"},"disable_auth":{"$ref":"#/components/schemas/ioschemaEmpty"},"jwt":{"$ref":"#/components/schemas/policyJwtTokenAuthOptions"}}},"cdn_loadbalancerCDNAccessLogAggregationRequest":{"type":"object","description":"Request to get only aggregation data for access logs","title":"CDNAccessLogAggregationRequest","x-displayname":"CDN Access Log Aggregation Request","x-ves-proto-message":"ves.io.schema.views.cdn_loadbalancer.CDNAccessLogAggregationRequest","properties":{"aggs":{"type":"object","description":" Aggregations provide summary/analytics data over the log response. If the number of logs that matched the query\n is large and cannot be returned in a single response message, user can get helpful insights/summary using aggregations.\n The aggregations are key'ed by user-defined aggregation name. The response will be key'ed with the same name.\n Optional\n\nValidation Rules:\n ves.io.schema.rules.map.keys.string.max_len: 64\n ves.io.schema.rules.map.keys.string.min_len: 1\n ves.io.schema.rules.map.max_pairs: 16\n","title":"aggregations","x-displayname":"Aggregations","x-ves-validation-rules":{"ves.io.schema.rules.map.keys.string.max_len":"64","ves.io.schema.rules.map.keys.string.min_len":"1","ves.io.schema.rules.map.max_pairs":"16"}},"end_time":{"type":"string","description":" fetch access logs whose timestamp <= end_time\n format: unix_timestamp|rfc 3339\n\n Optional: If not specified, then the end_time will be evaluated to start_time+10m\n If start_time is not specified, then the end_time will be evaluated to <current time>\n\nExample: ` \"2019-09-24T12:30:11.733Z\"`","title":"end time","x-displayname":"End Time","x-ves-example":"2019-09-24T12:30:11.733Z"},"namespace":{"type":"string","description":" get aggregation data for a given namespace\n\nExample: ` \"value\"`","title":"namespace","x-displayname":"Namespace","x-ves-example":"value"},"query":{"type":"array","description":" CDN Access Logs filter options","title":"Access Logs Filter options","items":{"$ref":"#/components/schemas/cdn_loadbalancerCDNAccessLogFilter"},"x-displayname":"Access Logs Filter"},"start_time":{"type":"string","description":" fetch access logs whose timestamp >= start_time\n format: unix_timestamp|rfc 3339\n\n Optional: If not specified, then the start_time will be evaluated to end_time-10m\n If end_time is not specified, then the start_time will be evaluated to <current time>-10m\n\nExample: ` \"2019-09-23T12:30:11.733Z\"`","title":"start time","x-displayname":"Start Time","x-ves-example":"2019-09-23T12:30:11.733Z"}}},"cdn_loadbalancerCDNAccessLogFilter":{"type":"object","description":"CDN Access log filter options","title":"Access Log filter fields","x-displayname":"CDN Access log Filter","x-ves-proto-message":"ves.io.schema.views.cdn_loadbalancer.CDNAccessLogFilter","properties":{"operator":{"$ref":"#/components/schemas/cdn_loadbalancerCDNAccessLogOperatorType"},"tag":{"$ref":"#/components/schemas/access_logCDNAccessLogTag"},"values":{"type":"array","description":" Filter values\n\nExample: ` \"[IN, US]\"`\n\nRequired: YES\n\nValidation Rules:\n ves.io.schema.rules.message.required: true\n ves.io.schema.rules.repeated.items.string.max_len: 128\n ves.io.schema.rules.repeated.max_items: 32\n ves.io.schema.rules.repeated.unique: true\n","title":"Filter values","maxItems":32,"items":{"type":"string","maxLength":128},"x-displayname":"Filter values","x-ves-example":"[IN, US]","x-ves-required":"true","x-ves-validation-rules":{"ves.io.schema.rules.message.required":"true","ves.io.schema.rules.repeated.items.string.max_len":"128","ves.io.schema.rules.repeated.max_items":"32","ves.io.schema.rules.repeated.unique":"true"}}}},"cdn_loadbalancerCDNAccessLogOperatorType":{"type":"string","description":"Operators possible in filtering\n","title":"Metrics Operator Types","enum":["CDN_ACCESS_LOG_OPERATOR_TYPE_IN","CDN_ACCESS_LOG_OPERATOR_TYPE_NOT_IN"],"default":"CDN_ACCESS_LOG_OPERATOR_TYPE_IN","x-displayname":"Metrics Operator Types","x-ves-proto-enum":"ves.io.schema.views.cdn_loadbalancer.CDNAccessLogOperatorType"},"cdn_loadbalancerCDNAccessLogRequest":{"type":"object","description":"Request to fetch access logs.","title":"CDNAccessLogRequest","x-displayname":"CDN Access Log Request","x-ves-proto-message":"ves.io.schema.views.cdn_loadbalancer.CDNAccessLogRequest","properties":{"aggs":{"type":"object","description":" Aggregations provide summary/analytics data over the log response. If the number of logs that matched the query\n is large and cannot be returned in a single response message, user can get helpful insights/summary using aggregations.\n The aggregations are key'ed by user-defined aggregation name. The response will be key'ed with the same name.\n Optional\n\nValidation Rules:\n ves.io.schema.rules.map.keys.string.max_len: 64\n ves.io.schema.rules.map.keys.string.min_len: 1\n ves.io.schema.rules.map.max_pairs: 16\n","title":"aggregations","x-displayname":"Aggregations","x-ves-validation-rules":{"ves.io.schema.rules.map.keys.string.max_len":"64","ves.io.schema.rules.map.keys.string.min_len":"1","ves.io.schema.rules.map.max_pairs":"16"}},"end_time":{"type":"string","description":" fetch access logs whose timestamp <= end_time\n format: unix_timestamp|rfc 3339\n\n Optional: If not specified, then the end_time will be evaluated to start_time+10m\n If start_time is not specified, then the end_time will be evaluated to <current time>\n\nExample: ` \"2019-09-24T12:30:11.733Z\"`","title":"end time","x-displayname":"End Time","x-ves-example":"2019-09-24T12:30:11.733Z"},"limit":{"type":"integer","description":" limits the number of logs returned in the response\n Optional: If not specified, first or last 500 log messages that matches the query (depending on the sort order) will be returned in the response.\n The maximum value for limit is 500.\n\nExample: ` \"0\"`\n\nValidation Rules:\n ves.io.schema.rules.uint32.gte: 0\n ves.io.schema.rules.uint32.lte: 500\n","title":"limit","format":"int64","x-displayname":"Limit","x-ves-example":"0","x-ves-validation-rules":{"ves.io.schema.rules.uint32.gte":"0","ves.io.schema.rules.uint32.lte":"500"}},"namespace":{"type":"string","description":" fetch access logs for a given namespace\n\nExample: ` \"value\"`","title":"namespace","x-displayname":"Namespace","x-ves-example":"value"},"query":{"type":"array","description":" CDN Access Logs filter options\n\nValidation Rules:\n ves.io.schema.rules.repeated.max_items: 32\n","title":"Access Logs Filter options","maxItems":32,"items":{"$ref":"#/components/schemas/cdn_loadbalancerCDNAccessLogFilter"},"x-displayname":"Access Logs Filter","x-ves-validation-rules":{"ves.io.schema.rules.repeated.max_items":"32"}},"sort":{"$ref":"#/components/schemas/schemaSortOrder"},"start_time":{"type":"string","description":" fetch access logs whose timestamp >= start_time\n format: unix_timestamp|rfc 3339\n\n Optional: If not specified, then the start_time will be evaluated to end_time-10m\n If end_time is not specified, then the start_time will be evaluated to <current time>-10m\n\nExample: ` \"2019-09-23T12:30:11.733Z\"`","title":"start time","x-displayname":"Start Time","x-ves-example":"2019-09-23T12:30:11.733Z"}}},"cdn_loadbalancerCDNAggregationRequest":{"type":"object","description":"x-displayName: \"CDN Lodbalancer Aggregation Request\"\nAggregation request for CDN Loadbalancer, to provide analytics data over the log response","title":"CDN Aggregation Request","properties":{"date_aggregation":{"$ref":"#/components/schemas/cdn_loadbalancerCDNDateAggregation"},"field_aggregation":{"$ref":"#/components/schemas/cdn_loadbalancerCDNFieldAggregation"}}},"cdn_loadbalancerCDNCustomAuthentication":{"type":"object","description":"x-displayName: \"Custom Authentication\"\nCustom Authentication","title":"CDNCustomAuthentication","properties":{"custom_auth_config":{"type":"string","description":"x-displayName: \"Custom Auth Config\"\nx-example: \"\"\nThis is custom authentication configuration parameters. Please reach out to the support for custom authentication details.","title":"custom_auth_config"}}},"cdn_loadbalancerCDNDateAggregation":{"type":"object","description":"x-displayName: \"Date Aggregation\"\nAggregate access logs based on timestamp in the log","title":"Date Aggregation","properties":{"step":{"type":"string","description":"x-displayName: \"Step\"\nx-required\nx-example: \"5m\"\n\nstep is the resolution width, which determines the number of the data points [x-axis (time)] to be returned in the response.\nThe timestamps in the response will be t1=start_time, t2=t1+step, ... tn=tn-1+step, where tn <= end_time.\nFormat: [0-9][smhd], where s - seconds, m - minutes, h - hours, d - days","title":"step"},"sub_aggs":{"type":"object","description":"x-displayName: \"Sub Aggregation\"\nThis option provides sub-aggregation for each date bucket","title":"sub aggregation"}}},"cdn_loadbalancerCDNDateSubAggregation":{"type":"object","description":"x-displayName: \"Date SubAggregation\"\nAggregate access logs in each date bucket based on one of the sub aggregation types","title":"CDN Date SubAggregation","properties":{"field_aggregation":{"$ref":"#/components/schemas/cdn_loadbalancerCDNFieldAggregation"}}},"cdn_loadbalancerCDNDownstreamTlsParamsType":{"type":"object","description":"x-displayName: \"TLS Parameters\"\nTLS parameters for CDN distribution","title":"CDNDownstreamTlsParamsType","properties":{"tls_certificates":{"type":"array","description":"x-displayName: \"TLS Certificates\"\nx-required\nUsers can add one or more certificates that share the same set of domains.\nfor example, domain.com and *.domain.com - but use different signature algorithms","title":"tls_certificates","items":{"$ref":"#/components/schemas/schemaTlsCertificateType"}},"tls_config":{"$ref":"#/components/schemas/cdn_loadbalancerCDNTLSConfig"}}},"cdn_loadbalancerCDNFieldAggregation":{"type":"object","description":"x-displayName: \"Field Aggregation\"\nAggregate access logs based on the key fields in the log.","title":"Field Aggregation","properties":{"field":{"$ref":"#/components/schemas/access_logCDNAccessLogTag"},"sub_aggs":{"type":"object","description":"x-displayName: \"Sub Aggregation\"\nThis option provides sub-aggregation for each field bucket\nThe key holds the value of sub-aggregations","title":"sub aggregation"},"topk":{"type":"integer","description":"x-displayName: \"TopK\"\nx-example: \"5\"\nNumber of top field values to be returned in the response.\nOptional: If not specified, top 5 values will be returned in the response.","title":"topk","format":"int64"}}},"cdn_loadbalancerCDNFieldSubAggregation":{"type":"object","description":"x-displayName: \"CDN Field SubAggregation\"\nAggregate access logs in each field bucket based on one of the sub aggregation types","title":"CDN Fiels SubAggregation","properties":{"field_aggregation":{"$ref":"#/components/schemas/viewscdn_loadbalancerFieldAggregation"}}},"cdn_loadbalancerCDNHTTPSAutoCertsType":{"type":"object","description":"Choice for selecting HTTPS CDN distribution with bring your own certificates","title":"HTTPS with Automatic Certificate","x-displayname":"HTTPS with Automatic Certificate","x-ves-displayorder":"1,2,3","x-ves-proto-message":"ves.io.schema.views.cdn_loadbalancer.CDNHTTPSAutoCertsType","properties":{"add_hsts":{"type":"boolean","description":" Add HTTP Strict-Transport-Security response header","title":"Add HSTS","format":"boolean","x-displayname":"Add HSTS Header"},"http_redirect":{"type":"boolean","description":" Redirect HTTP traffic to HTTPS","title":"HTTP Redirect","format":"boolean","x-displayname":"HTTP Redirect to HTTPS"},"tls_config":{"$ref":"#/components/schemas/cdn_loadbalancerCDNTLSConfig"}}},"cdn_loadbalancerCDNHTTPSCustomCertsType":{"type":"object","description":"Choice for selecting CDN Distribution with bring your own certificates","title":"BYOC for the CDN distribution","x-displayname":"BYOC HTTPS Choice","x-ves-displayorder":"1,2,7","x-ves-proto-message":"ves.io.schema.views.cdn_loadbalancer.CDNHTTPSCustomCertsType","properties":{"add_hsts":{"type":"boolean","description":" Add HTTP Strict-Transport-Security response header","title":"Add HSTS","format":"boolean","x-displayname":"Add HSTS Header"},"http_redirect":{"type":"boolean","description":" Redirect HTTP traffic to HTTPS","title":"HTTP Redirect","format":"boolean","x-displayname":"HTTP Redirect to HTTPS"},"tls_cert_options":{"$ref":"#/components/schemas/cdn_loadbalancerTlsCertOptions"}}},"cdn_loadbalancerCDNLbStatusType":{"type":"object","description":"x-displayName: \"CDN LB Status\"\nThis CDN LB status is per site and it indicates the status of the LB on the site","title":"CDN LB status details","properties":{"error":{"type":"string","description":"x-displayName: \"Error\"\nError message (if any)","title":"Error"},"site":{"type":"string","description":"x-displayName: \"Site\"\nName of the site that reported this status","title":"Site Name"},"status":{"$ref":"#/components/schemas/viewscdn_loadbalancerCDNSiteDeploymentStatus"}}},"cdn_loadbalancerCDNLoadBalancerList":{"type":"object","title":"List of cdn load balancers","x-displayname":"List of CDN Load Balancers","x-ves-proto-message":"ves.io.schema.views.cdn_loadbalancer.CDNLoadBalancerList","properties":{"cdn_loadbalancer":{"type":"array","description":"\nExample: ` \"[blogging-app]\"`\n\nRequired: YES\n\nValidation Rules:\n ves.io.schema.rules.message.required: true\n ves.io.schema.rules.repeated.items.string.max_len: 256\n ves.io.schema.rules.repeated.items.string.min_len: 1\n ves.io.schema.rules.repeated.max_items: 5\n ves.io.schema.rules.repeated.min_items: 1\n","title":"CDN LoadBalancer","minItems":1,"maxItems":5,"items":{"type":"string","minLength":1,"maxLength":256},"x-displayname":"CDN LoadBalancer","x-ves-example":"[blogging-app]","x-ves-required":"true","x-ves-validation-rules":{"ves.io.schema.rules.message.required":"true","ves.io.schema.rules.repeated.items.string.max_len":"256","ves.io.schema.rules.repeated.items.string.min_len":"1","ves.io.schema.rules.repeated.max_items":"5","ves.io.schema.rules.repeated.min_items":"1"}}}},"cdn_loadbalancerCDNLoadbalancerStatus":{"type":"object","description":"x-displayName: \"CDN LoadBalancer Status\"\nCDN LoadBalancer Status","title":"CDNLoadBalancer status","properties":{"cfg_version":{"type":"integer","description":"x-displayName: \"Cfg Version\"\nCfg version","title":"Cfg Version","format":"int64"},"cp_version":{"type":"integer","description":"x-displayName: \"CP Version\"\nCP version","title":"CP Version","format":"int64"},"deployment_status":{"$ref":"#/components/schemas/viewscdn_loadbalancerCDNLoadbalancerDeploymentStatus"},"error_msg":{"type":"string","description":"x-displayName: \"Error Message\"\nError message","title":"Error Message"}}},"cdn_loadbalancerCDNLogAggregationResponse":{"type":"object","description":"Response message for CDNAccessLogAggregationRequest","title":"CDNLogAggregationResponse","x-displayname":"CDN Log Aggregation Response","x-ves-proto-message":"ves.io.schema.views.cdn_loadbalancer.CDNLogAggregationResponse","properties":{"aggs":{"type":"object","description":" Aggregations provide summary/analytics data over the log response. If the number of logs that matched the query\n is large and cannot be returned in a single response message, user can get helpful insights/summary using aggregations.\n The aggregation data is key'ed with the aggregation name specified in the request.","title":"aggregations","x-displayname":"Aggregations"},"total_hits":{"type":"string","description":" total number of log messages that matched the query.\n\nExample: ` \"0\"`","title":"total hits","format":"uint64","x-displayname":"Total Hits","x-ves-example":"0"}}},"cdn_loadbalancerCDNLogResponse":{"type":"object","description":"Response message for AccessLogRequest","title":"CDNLogResponse","x-displayname":"CDN Log Response","x-ves-proto-message":"ves.io.schema.views.cdn_loadbalancer.CDNLogResponse","properties":{"aggs":{"type":"object","description":" Aggregations provide summary/analytics data over the log response. If the number of logs that matched the query\n is large and cannot be returned in a single response message, user can get helpful insights/summary using aggregations.\n The aggregation data is key'ed with the aggregation name specified in the request.","title":"aggregations","x-displayname":"Aggregations"},"logs":{"type":"array","description":" list of log messages that matched the query. Not all log messages that matched the query are returned in the response.\n\nExample: ` \"value\"`","title":"logs","items":{"$ref":"#/components/schemas/cdn_loadbalancerLilacCDNAccessLogsResponseData"},"x-displayname":"Logs","x-ves-example":"value"},"total_hits":{"type":"string","description":" total number of log messages that matched the query.\n\nExample: ` \"0\"`","title":"total hits","format":"uint64","x-displayname":"Total Hits","x-ves-example":"0"}}},"cdn_loadbalancerCDNTLSConfig":{"type":"object","description":"This defines various options to configure TLS configuration parameters","title":"CDNTLSConfig","x-displayname":"TLS Config","x-ves-displayorder":"5","x-ves-oneof-field-choice":"[\"tls_11_plus\",\"tls_12_plus\"]","x-ves-proto-message":"ves.io.schema.views.cdn_loadbalancer.CDNTLSConfig","properties":{"tls_11_plus":{"$ref":"#/components/schemas/ioschemaEmpty"},"tls_12_plus":{"$ref":"#/components/schemas/ioschemaEmpty"}}},"cdn_loadbalancerCacheOptions":{"type":"object","description":"x-displayName: \"Cache Options\"\nThis defines the options related to content caching","title":"Cache options","properties":{"cache_rules":{"type":"array","description":"x-displayName: \"Cache Rules\"\nRules are evaluated in the order in which they are specified. The evaluation stops when the first rule match occurs.","title":"List of Cache rules(These rules are ORed)","items":{"$ref":"#/components/schemas/viewscdn_loadbalancerCDNCacheRule"}},"default_cache_action":{"$ref":"#/components/schemas/viewscommon_cache_ruleDefaultCacheAction"}}},"cdn_loadbalancerCacheTTLOptionsType":{"type":"object","description":"x-displayName: \"Cache Options\"\nThis defines the options related to content caching","title":"Cache options","properties":{"cache_disabled":{"$ref":"#/components/schemas/ioschemaEmpty"},"cache_ttl_default":{"type":"string","description":"x-displayName: \"Default Cache TTL\"\nCache TTL value to use when the origin does not provide one","title":"Default Cache TTL"},"cache_ttl_override":{"type":"string","description":"x-displayName: \"Override Cache TTL\"\nOverride the Cache TTL directive in the response from the origin","title":"Override Cache TTL"}}},"cdn_loadbalancerCommonSecurityControls":{"type":"object","description":"x-displayName: \"Common Security Controls\"","title":"Common Security Controls","properties":{"active_service_policies":{"$ref":"#/components/schemas/common_wafServicePolicyList"},"api_rate_limit":{"$ref":"#/components/schemas/common_wafAPIRateLimit"},"blocked_clients":{"type":"array","description":"x-displayName: \"Client Blocking Rules\"\nDefine rules to block IP Prefixes or AS numbers.","title":"Client Blocking Rules","items":{"$ref":"#/components/schemas/common_wafSimpleClientSrcRule"}},"captcha_challenge":{"$ref":"#/components/schemas/virtual_hostCaptchaChallengeType"},"challenge_on_cache_miss":{"$ref":"#/components/schemas/common_wafEnableChallenge"},"cors_policy":{"$ref":"#/components/schemas/schemaCorsPolicy"},"disable_ip_reputation":{"$ref":"#/components/schemas/ioschemaEmpty"},"disable_malicious_user_detection":{"$ref":"#/components/schemas/ioschemaEmpty"},"disable_rate_limit":{"$ref":"#/components/schemas/ioschemaEmpty"},"disable_threat_mesh":{"$ref":"#/components/schemas/ioschemaEmpty"},"enable_challenge":{"$ref":"#/components/schemas/common_wafEnableChallenge"},"enable_ip_reputation":{"$ref":"#/components/schemas/viewscommon_wafIPThreatCategoryListType"},"enable_malicious_user_detection":{"$ref":"#/components/schemas/ioschemaEmpty"},"enable_threat_mesh":{"$ref":"#/components/schemas/ioschemaEmpty"},"ip_reputation_on_cache_miss":{"$ref":"#/components/schemas/viewscommon_wafIPThreatCategoryListType"},"js_challenge":{"$ref":"#/components/schemas/virtual_hostJavascriptChallengeType"},"malicious_user_detection_on_cache_miss":{"$ref":"#/components/schemas/ioschemaEmpty"},"no_challenge":{"$ref":"#/components/schemas/ioschemaEmpty"},"no_service_policies":{"$ref":"#/components/schemas/ioschemaEmpty"},"policy_based_challenge":{"$ref":"#/components/schemas/viewscommon_wafPolicyBasedChallenge"},"rate_limit":{"$ref":"#/components/schemas/common_wafRateLimitConfigType"},"service_policies_from_namespace":{"$ref":"#/components/schemas/ioschemaEmpty"},"trusted_clients":{"type":"array","description":"x-displayName: \"Trusted Client Rules\"\nDefine rules to skip processing of one or more features such as WAF, Bot Defense etc. for clients.","title":"Trusted Client Rules","items":{"$ref":"#/components/schemas/common_wafSimpleClientSrcRule"}},"user_id_client_ip":{"$ref":"#/components/schemas/ioschemaEmpty"},"user_identification":{"$ref":"#/components/schemas/schemaviewsObjectRefType"}}},"cdn_loadbalancerCreateRequest":{"type":"object","description":"This is the input message of the 'Create' RPC","title":"CreateRequest is used to create an instance of cdn_loadbalancer","x-displayname":"Create Request","x-ves-proto-message":"ves.io.schema.views.cdn_loadbalancer.CreateRequest","properties":{"metadata":{"$ref":"#/components/schemas/schemaObjectCreateMetaType"},"spec":{"$ref":"#/components/schemas/viewscdn_loadbalancerCreateSpecType"}}},"cdn_loadbalancerCreateResponse":{"type":"object","x-ves-proto-message":"ves.io.schema.views.cdn_loadbalancer.CreateResponse","properties":{"metadata":{"$ref":"#/components/schemas/schemaObjectGetMetaType"},"spec":{"$ref":"#/components/schemas/viewscdn_loadbalancerGetSpecType"},"system_metadata":{"$ref":"#/components/schemas/schemaSystemObjectGetMetaType"}}},"cdn_loadbalancerDeleteRequest":{"type":"object","description":"This is the input message of the 'Delete' RPC.","title":"DeleteRequest is used to delete a cdn_loadbalancer","x-displayname":"Delete Request","x-ves-proto-message":"ves.io.schema.views.cdn_loadbalancer.DeleteRequest","properties":{"fail_if_referred":{"type":"boolean","description":" Fail the delete operation if this object is being referred by other objects","title":"fail_if_referred","format":"boolean","x-displayname":"Fail-If-Referred"},"name":{"type":"string","description":" Name of the configuration object\n\nExample: ` \"name\"`","title":"name","x-displayname":"Name","x-ves-example":"name"},"namespace":{"type":"string","description":" Namespace in which the configuration object is present\n\nExample: ` \"ns1\"`","title":"namespace","x-displayname":"Namespace","x-ves-example":"ns1"}}},"cdn_loadbalancerGeoFilteringOptions":{"type":"object","description":"x-displayName: \"Geo Filtering Options\"\nOptions to filter based on Geo prefix","title":"GeoFilteringOptions","properties":{"allow_list":{"$ref":"#/components/schemas/policyCountryCodeList"},"block_list":{"$ref":"#/components/schemas/policyCountryCodeList"}}},"cdn_loadbalancerGetCDNSecurityConfigReq":{"type":"object","description":"Request of GET Security Config Spec API","title":"Get Security Config request","x-displayname":"Get Security Config Request","x-ves-oneof-field-loadbalancer_choice":"[\"all_cdn_loadbalancers\",\"cdn_loadbalancers_list\"]","x-ves-proto-message":"ves.io.schema.views.cdn_loadbalancer.GetCDNSecurityConfigReq","properties":{"all_cdn_loadbalancers":{"$ref":"#/components/schemas/ioschemaEmpty"},"cdn_loadbalancers_list":{"$ref":"#/components/schemas/cdn_loadbalancerCDNLoadBalancerList"},"namespace":{"type":"string","description":" Namespace of the CDN Load Balancer for current request\n\nExample: ` \"shared\"`","title":"Namespace","x-displayname":"Namespace","x-ves-example":"shared"}}},"cdn_loadbalancerGetResponse":{"type":"object","description":"This is the output message of the 'Get' RPC","title":"GetResponse is the shape of a read cdn_loadbalancer","x-displayname":"Get Response","x-ves-proto-message":"ves.io.schema.views.cdn_loadbalancer.GetResponse","properties":{"create_form":{"$ref":"#/components/schemas/cdn_loadbalancerCreateRequest"},"deleted_referred_objects":{"type":"array","description":"The set of deleted objects that are referred by this object","title":"deleted_referred_objects","items":{"$ref":"#/components/schemas/ioschemaObjectRefType"},"x-displayname":"Deleted Referred Objects"},"disabled_referred_objects":{"type":"array","description":"The set of deleted objects that are referred by this object","title":"disabled_referred_objects","items":{"$ref":"#/components/schemas/ioschemaObjectRefType"},"x-displayname":"Disabled Referred Objects"},"metadata":{"$ref":"#/components/schemas/schemaObjectGetMetaType"},"referring_objects":{"type":"array","description":"The set of objects that are referring to this object in their spec","title":"referring_objects","items":{"$ref":"#/components/schemas/ioschemaObjectRefType"},"x-displayname":"Referring Objects"},"replace_form":{"$ref":"#/components/schemas/cdn_loadbalancerReplaceRequest"},"spec":{"$ref":"#/components/schemas/viewscdn_loadbalancerGetSpecType"},"status":{"type":"array","description":"The status reported by different services for this configuration object","title":"status","items":{"$ref":"#/components/schemas/cdn_loadbalancerStatusObject"},"x-displayname":"Status"},"system_metadata":{"$ref":"#/components/schemas/schemaSystemObjectGetMetaType"}}},"cdn_loadbalancerGetResponseFormatCode":{"type":"string","description":"x-displayName: \"Get Response Format\"\nThis is the various forms that can be requested to be sent in the GetResponse\n\n - GET_RSP_FORMAT_DEFAULT: x-displayName: \"Default Format\"\nDefault format of returned resource\n - GET_RSP_FORMAT_FOR_CREATE: x-displayName: \"Create request Format\"\nResponse should be in CreateRequest format\n - GET_RSP_FORMAT_FOR_REPLACE: x-displayName: \"Replace request format\"\nResponse should be in ReplaceRequest format\n - GET_RSP_FORMAT_STATUS: x-displayName: \"Status format\"\nResponse should be in StatusObject(s) format\n - GET_RSP_FORMAT_READ: x-displayName: \"GetSpecType format\"\nResponse should be in format of GetSpecType\n - GET_RSP_FORMAT_REFERRING_OBJECTS: x-displayName: \"Referring Objects\"\nResponse should have other objects referring to this object\n - GET_RSP_FORMAT_BROKEN_REFERENCES: x-displayName: \"Broken Referred Objects\"\nResponse should have deleted and disabled objects referrred by this object","title":"GetResponseFormatCode","enum":["GET_RSP_FORMAT_DEFAULT","GET_RSP_FORMAT_FOR_CREATE","GET_RSP_FORMAT_FOR_REPLACE","GET_RSP_FORMAT_STATUS","GET_RSP_FORMAT_READ","GET_RSP_FORMAT_REFERRING_OBJECTS","GET_RSP_FORMAT_BROKEN_REFERENCES"],"default":"GET_RSP_FORMAT_DEFAULT"},"cdn_loadbalancerIpFilteringOptions":{"type":"object","description":"x-displayName: \"IP Filtering Options\"\nOptions to filter based on IP prefix","title":"IpFilteringOptions","properties":{"allow_list":{"$ref":"#/components/schemas/policyPrefixMatchList"},"block_list":{"$ref":"#/components/schemas/policyPrefixMatchList"}}},"cdn_loadbalancerLilacCDNAccessLogsResponseData":{"type":"object","description":"CDN Access-Log item","title":"CDN access logs data item","x-displayname":"CDN Access log data item","x-ves-proto-message":"ves.io.schema.views.cdn_loadbalancer.LilacCDNAccessLogsResponseData","properties":{"cache_status":{"type":"string","description":" CDN Cache Status\n\nExample: ` \"MISS\"`","title":"CDN Cache Status","x-displayname":"CDN Cache Status","x-ves-example":"MISS"},"cdn_name":{"type":"string","description":" Name of the CDN distribution\n\nExample: ` \"my-website\"`","title":"CDN Name","x-displayname":"Name of the CDN Distribution","x-ves-example":"my-website"},"city_id":{"type":"string","description":" Geo City Id [maxmind]\n\nExample: ` \"3109256\"`","title":"Geo City Id","x-displayname":"Geo City Id","x-ves-example":"3109256"},"city_name":{"type":"string","description":" Geo City Name\n\nExample: ` \"Segovia\"`","title":"Geo City Name","x-displayname":"Geo City Name","x-ves-example":"Segovia"},"client_port":{"type":"string","description":" Client Port\n\nExample: ` \"50756\"`","title":"Client port","x-displayname":"Client Port","x-ves-example":"50756"},"country":{"type":"string","description":" Geo Country Code of the request\n\nExample: ` \"\"`","title":"Geo Country Code of the request","x-displayname":"Geo Country Code of the request"},"geo_location":{"type":"string","description":" Geo Location of the request\n\nExample: ` \"\"`","title":"Geo Location of the request","x-displayname":"Geo Location of the request"},"host":{"type":"string","description":" Host Name of the node where the log was captured\n\nExample: ` \"edge-node-1-85955f9c64-jqw7j\"`","title":"Host","x-displayname":"Name of the Host","x-ves-example":"edge-node-1-85955f9c64-jqw7j"},"host_header":{"type":"string","description":" HTTP Host Header\n\nExample: ` \"www.f5.com\"`","title":"Host Header","x-displayname":"HTTP Host Header Value","x-ves-example":"www.f5.com"},"http_version":{"type":"string","description":" HTTP Version of the request\n\nExample: ` \"HTTP/1.1\"`","title":"HTTP Version of the request","x-displayname":"HTTP Version of the request","x-ves-example":"HTTP/1.1"},"method":{"type":"string","description":" HTTP Method Name\n\nExample: ` \"get\"`","title":"HTTP Method Name","x-displayname":"HTTP Method Name","x-ves-example":"get"},"referer":{"type":"string","description":" HTTP referer\n\nExample: ` \"https://example.com/\"`","title":"HTTP referer","x-displayname":"HTTP referer","x-ves-example":"https://example.com/"},"req_content_type":{"type":"string","description":" Content-Type of the request\n\nExample: ` \"text/html\"`","title":"Content-Type of the request","x-displayname":"Content-Type of the request","x-ves-example":"text/html"},"req_path":{"type":"string","description":" HTTP request path\n\nExample: ` \"/index.html\"`","title":"HTTP request path","x-displayname":"HTTP request path","x-ves-example":"/index.html"},"req_size":{"type":"string","description":" HTTP Request Size\n\nExample: ` \"`","title":"HTTP Request Size","format":"uint64","x-displayname":"HTTP Request Size"},"request_time":{"type":"string","description":" Time taken by the request\n\nExample: ` \"0.0\"`","title":"Time taken by the request","x-displayname":"Time taken by the request","x-ves-example":"0.0"},"rsp_code":{"type":"string","description":" HTTP Response Code\n\nExample: ` \"200\"`","title":"HTTP Response Code","x-displayname":"HTTP Response Code","x-ves-example":"200"},"rsp_code_class":{"type":"string","description":" HTTP Response Code Class\n\nExample: ` \"2xx\"`","title":"HTTP Response Code Class","x-displayname":"HTTP Response Code Class","x-ves-example":"2xx"},"rsp_content_type":{"type":"string","description":" Content-Type of the response\n\nExample: ` \"text/html\"`","title":"Content-Type of the response","x-displayname":"Content-Type of the response","x-ves-example":"text/html"},"rsp_size":{"type":"string","description":" HTTP Response Size\n\nExample: ` \"600\"`","title":"HTTP Response Size","format":"uint64","x-displayname":"HTTP Response Size","x-ves-example":"600"},"scheme":{"type":"string","description":" HTTP request scheme\n\nExample: ` \"https\"`","title":"HTTP request scheme","x-displayname":"HTTP request scheme","x-ves-example":"https"},"site_name":{"type":"string","description":" Name of the Site\n\nExample: ` \"pa4-par-cdn\"`","title":"Site Name","x-displayname":"Name of the Site","x-ves-example":"pa4-par-cdn"},"src_ip":{"type":"string","description":" Source IP address\n\nExample: ` \"1.2.3.4\"`","title":"Source IP address","x-displayname":"IP address of the client from where the request came from ","x-ves-example":"1.2.3.4"},"timestamp":{"type":"string","description":" Format: unix_timestamp|rfc 3339\n\nExample: ` \"2022-10-21T01:05:32.713Z\"`\n\nRequired: YES\n\nValidation Rules:\n ves.io.schema.rules.message.required: true\n","title":"Timestamp","x-displayname":"Timestamp of the access log","x-ves-example":"2022-10-21T01:05:32.713Z","x-ves-required":"true","x-ves-validation-rules":{"ves.io.schema.rules.message.required":"true"}},"tls_sni":{"type":"string","description":" TLS Service Name Indication\n\nExample: ` \"www.f5.com\"`","title":"Service Name Indication","x-displayname":"TLS Service Name Indication Value","x-ves-example":"www.f5.com"},"tls_version":{"type":"string","description":" TLS Version Value\n\nExample: ` \"TLSv1.3\"`","title":"TLS Version","x-displayname":"TLS Version Value","x-ves-example":"TLSv1.3"},"upstream_addr":{"type":"string","description":" Upstream Address\n\nExample: ` \"\"`","title":"Upstream Address","x-displayname":"Upstream Address"},"upstream_connect_time":{"type":"string","description":" Upstream Connect Time\n\nExample: ` \"\"`","title":"Upstream Connect Time","x-displayname":"Upstream Connect Time"},"upstream_response_time":{"type":"string","description":" Upstream Response Time\n\nExample: ` \"nginx.data.fr-edge1-0\"`","title":"Upstream Response Time","x-displayname":"Upstream Response Time","x-ves-example":"nginx.data.fr-edge1-0"},"upstream_status":{"type":"string","description":" Upstream Status\n\nExample: ` \"nginx.data.fr-edge1-0\"`","title":"Upstream Status","x-displayname":"Upstream Status","x-ves-example":"nginx.data.fr-edge1-0"},"user":{"type":"string","description":" Name of the user\n\nExample: ` \"\"`","title":"User name","x-displayname":"Name of the User"},"user_agent":{"type":"string","description":" HTTP User Agent\n\nExample: ` \"Mozilla/5.0\"`","title":"HTTP User Agent","x-displayname":"HTTP User Agent","x-ves-example":"Mozilla/5.0"}}},"cdn_loadbalancerLilacCDNMetricUnit":{"type":"string","description":"Metric Unit\n","title":"Metric Unit","enum":["COUNT","BYTES","MILLISECONDS"],"default":"COUNT","x-displayname":"Metric Unit","x-ves-proto-enum":"ves.io.schema.views.cdn_loadbalancer.LilacCDNMetricUnit"},"cdn_loadbalancerLilacCDNMetricsFieldSelector":{"type":"string","description":"CDN Metric fields. Naming convention is <field>_<aggregation>\n\nREQUEST_SUCCESS computed from REQUEST_TOTAL - REQUEST_FAILED\nBandwidth computed from DATA_OUT\nBandwidth computed from DATA_IN","title":"Metrics Field Selector options","enum":["REQUEST_TOTAL_SUM","REQUEST_FAILED_SUM","REQUEST_1XX_SUM","REQUEST_2XX_SUM","REQUEST_3XX_SUM","REQUEST_4XX_SUM","REQUEST_5XX_SUM","DATA_OUT_SUM","LATENCY_MEAN","DATA_IN_SUM"],"default":"REQUEST_TOTAL_SUM","x-displayname":"Metrics Field Selector","x-ves-proto-enum":"ves.io.schema.views.cdn_loadbalancer.LilacCDNMetricsFieldSelector"},"cdn_loadbalancerLilacCDNMetricsFilter":{"type":"object","description":"CDN Metrics filter options","title":"Metrics Filter options","x-displayname":"Metrics Filter","x-ves-proto-message":"ves.io.schema.views.cdn_loadbalancer.LilacCDNMetricsFilter","properties":{"operator":{"$ref":"#/components/schemas/cdn_loadbalancerLilacCDNMetricsOperatorType"},"tag":{"$ref":"#/components/schemas/cdn_loadbalancerLilacCDNMetricsTag"},"values":{"type":"array","description":" Filter values\n\nExample: ` \"[IN, US]\"`\n\nRequired: YES\n\nValidation Rules:\n ves.io.schema.rules.message.required: true\n","title":"Filter values","items":{"type":"string"},"x-displayname":"Filter values","x-ves-example":"[IN, US]","x-ves-required":"true","x-ves-validation-rules":{"ves.io.schema.rules.message.required":"true"}}}},"cdn_loadbalancerLilacCDNMetricsOperatorType":{"type":"string","description":"Operators possible in filtering\n","title":"Metrics Operator Types","enum":["OPERATOR_TYPE_IN","OPERATOR_TYPE_NOT_IN"],"default":"OPERATOR_TYPE_IN","x-displayname":"Metrics Operator Types","x-ves-proto-enum":"ves.io.schema.views.cdn_loadbalancer.LilacCDNMetricsOperatorType"},"cdn_loadbalancerLilacCDNMetricsRequest":{"type":"object","description":"CDN Metrics request parameters","title":"Metrics Request parameters","x-displayname":"Metrics Request","x-ves-proto-message":"ves.io.schema.views.cdn_loadbalancer.LilacCDNMetricsRequest","properties":{"end_time":{"type":"string","description":" Format: unix_timestamp|rfc 3339\n\nExample: ` \"1659758607\"`\n\nRequired: YES\n\nValidation Rules:\n ves.io.schema.rules.message.required: true\n","title":"End Time","x-displayname":"End Time","x-ves-example":"1659758607","x-ves-required":"true","x-ves-validation-rules":{"ves.io.schema.rules.message.required":"true"}},"field_selector":{"type":"array","description":" Fields (Metrics) selected to be queried.\n\nRequired: YES\n\nValidation Rules:\n ves.io.schema.rules.message.required: true\n ves.io.schema.rules.repeated.max_items: 10\n","title":"Field Selector","maxItems":10,"items":{"$ref":"#/components/schemas/cdn_loadbalancerLilacCDNMetricsFieldSelector"},"x-displayname":"Field Selector","x-ves-required":"true","x-ves-validation-rules":{"ves.io.schema.rules.message.required":"true","ves.io.schema.rules.repeated.max_items":"10"}},"filter":{"type":"array","description":" CDN Metrics filter options","title":"Metrics Filter options","items":{"$ref":"#/components/schemas/cdn_loadbalancerLilacCDNMetricsFilter"},"x-displayname":"Metrics Filter"},"group_by":{"type":"array","description":" Aggregate data by zero or more tags","title":"Group By","items":{"$ref":"#/components/schemas/cdn_loadbalancerLilacCDNMetricsTag"},"x-displayname":"Group By"},"namespace":{"type":"string","description":" Namespace scope of the metric request\n\nExample: ` \"default\"`\n\nRequired: YES\n\nValidation Rules:\n ves.io.schema.rules.message.required: true\n","title":"Namespace","x-displayname":"Namespace","x-ves-example":"default","x-ves-required":"true","x-ves-validation-rules":{"ves.io.schema.rules.message.required":"true"}},"start_time":{"type":"string","description":" Format: unix_timestamp|rfc 3339\n\nExample: ` \"1659758607\"`\n\nRequired: YES\n\nValidation Rules:\n ves.io.schema.rules.message.required: true\n","title":"Start Time","x-displayname":"Start Time","x-ves-example":"1659758607","x-ves-required":"true","x-ves-validation-rules":{"ves.io.schema.rules.message.required":"true"}},"step":{"type":"string","description":" step is the resolution width, which determines the number of the data points [x-axis (time)] to be returned in\n the response. The timestamps in the response will be t1=start_time, t2=t1+step, ... tn=tn-1+step,\n where tn <= end_time. Depending on the time range, the step has a minimum value (due to rollups).\n For e.g. for ranges in last one hr, step minimum is 5m, for ranges beyond a day, its 1h etc.\n Step value used is the max(<min-step-for-range>, <step-value-in-request>)\n Format: [0-9][smhd], where s - seconds, m - minutes, h - hours, d - days\n\n Optional: If not specified, then step size is evaluated to <end_time - start_time>\n\nExample: ` \"1m\"`","title":"Step","x-displayname":"Step","x-ves-example":"1m"}}},"cdn_loadbalancerLilacCDNMetricsResponse":{"type":"object","description":"CDN Metrics response message","title":"Metrics Response","x-displayname":"Metrics Response","x-ves-proto-message":"ves.io.schema.views.cdn_loadbalancer.LilacCDNMetricsResponse","properties":{"items":{"type":"array","description":" CDN Metrics response data items. Each instance has response for a field queried.","title":"Metrics Response Data","items":{"$ref":"#/components/schemas/cdn_loadbalancerLilacCDNMetricsResponseData"},"x-displayname":"Metrics Response data items"},"step":{"type":"string","description":" The effective step used in the response. It could be higher than the requested step due to rollups.\n Format: [0-9][smhd], where s - seconds, m - minutes, h - hours, d - days\n\nExample: ` \"5m\"`","title":"Step","x-displayname":"Step","x-ves-example":"5m"}}},"cdn_loadbalancerLilacCDNMetricsResponseData":{"type":"object","description":"CDN Metrics response data. This is specific to a metric field.","title":"Metrics Response Data","x-displayname":"Metrics Response Data","x-ves-proto-message":"ves.io.schema.views.cdn_loadbalancer.LilacCDNMetricsResponseData","properties":{"series":{"type":"array","description":" CDN Metrics response series for the field in this message","title":"Metrics Series","items":{"$ref":"#/components/schemas/cdn_loadbalancerLilacCDNMetricsResponseSeries"},"x-displayname":"Metrics Response Series"},"type":{"$ref":"#/components/schemas/cdn_loadbalancerLilacCDNMetricsFieldSelector"},"unit":{"$ref":"#/components/schemas/cdn_loadbalancerLilacCDNMetricUnit"}}},"cdn_loadbalancerLilacCDNMetricsResponseGroupBy":{"type":"object","description":"CDN Metrics group by options","title":"Metrics group by options","x-displayname":"Metrics Group By","x-ves-proto-message":"ves.io.schema.views.cdn_loadbalancer.LilacCDNMetricsResponseGroupBy","properties":{"name":{"$ref":"#/components/schemas/cdn_loadbalancerLilacCDNMetricsTag"},"value":{"type":"string","description":" Group-By tag Value","title":"Group-By tag Value","x-displayname":"Group By Tag Value"}}},"cdn_loadbalancerLilacCDNMetricsResponseSeries":{"type":"object","description":"CDN Metrics response series.\nEach series instance has data for a combination of group-by tag values.","title":"Metrics Series","x-displayname":"Metrics Response Series","x-ves-proto-message":"ves.io.schema.views.cdn_loadbalancer.LilacCDNMetricsResponseSeries","properties":{"group_by":{"type":"array","description":" CDN Metrics group-by tag combination.","title":"Metrics group by options","items":{"$ref":"#/components/schemas/cdn_loadbalancerLilacCDNMetricsResponseGroupBy"},"x-displayname":"Metrics Group By"},"value":{"type":"array","description":" CDN Metrics data for the series.","title":"Metrics Response Value","items":{"$ref":"#/components/schemas/cdn_loadbalancerLilacCDNMetricsResponseValue"},"x-displayname":"Metrics Response Value"}}},"cdn_loadbalancerLilacCDNMetricsResponseValue":{"type":"object","description":"CDN Metrics response value","title":"Metrics Response Value","x-displayname":"Metrics Response Value","x-ves-proto-message":"ves.io.schema.views.cdn_loadbalancer.LilacCDNMetricsResponseValue","properties":{"timestamp":{"type":"string","description":" Metric Timestamp in unix_timestamp","title":"Metric Timestamp","x-displayname":"Metric Timestamp"},"value":{"type":"string","description":" Metric Value","title":"Metric Value","x-displayname":"Metric Value"}}},"cdn_loadbalancerLilacCDNMetricsTag":{"type":"string","description":"Tags on which CDN metrics can be filtered or grouped by\n\nHIT|MISS\nTwo letter country code\nhttp_1_1|http_2_0 etc\ntlsv1_0|tlsv1_1|tlsv1_2 etc","title":"Metrics Tag options","enum":["CDN_DISTRIBUTION_NAME","CACHE_HIT_TYPE","REQUEST_COUNTRY","HTTP_VERSION","TLS_VERSION","POP_REGION","POP"],"default":"CDN_DISTRIBUTION_NAME","x-displayname":"Tags","x-ves-proto-enum":"ves.io.schema.views.cdn_loadbalancer.LilacCDNMetricsTag"},"cdn_loadbalancerListResponse":{"type":"object","description":"This is the output message of 'List' RPC.","title":"ListResponse is the collection of cdn_loadbalancer","x-displayname":"List Response","x-ves-proto-message":"ves.io.schema.views.cdn_loadbalancer.ListResponse","properties":{"errors":{"type":"array","description":" Errors(if any) while listing items from collection","title":"errors","items":{"$ref":"#/components/schemas/schemaErrorType"},"x-displayname":"Errors"},"items":{"type":"array","description":" items represents the collection in response","title":"items","items":{"$ref":"#/components/schemas/cdn_loadbalancerListResponseItem"},"x-displayname":"Items"}}},"cdn_loadbalancerListResponseItem":{"type":"object","description":"By default a summary of cdn_loadbalancer is returned in 'List'. By setting\n'report_fields' in the ListRequest more details of each item can be got.","title":"ListResponseItem is an individual item in a collection of cdn_loadbalancer","x-displayname":"List Item","x-ves-proto-message":"ves.io.schema.views.cdn_loadbalancer.ListResponseItem","properties":{"annotations":{"type":"object","description":" The set of annotations present on this cdn_loadbalancer","title":"annotations","x-displayname":"Annotations"},"description":{"type":"string","description":" The description set for this cdn_loadbalancer","title":"description","x-displayname":"Description"},"disabled":{"type":"boolean","description":" A value of true indicates cdn_loadbalancer is administratively disabled","title":"disabled","format":"boolean","x-displayname":"Disabled"},"get_spec":{"$ref":"#/components/schemas/viewscdn_loadbalancerGetSpecType"},"labels":{"type":"object","description":" The set of labels present on this cdn_loadbalancer","title":"labels","x-displayname":"Labels"},"metadata":{"$ref":"#/components/schemas/schemaObjectGetMetaType"},"name":{"type":"string","description":" The name of this cdn_loadbalancer\n\nExample: ` \"name\"`","title":"name","x-displayname":"Name","x-ves-example":"name"},"namespace":{"type":"string","description":" The namespace this item belongs to\n\nExample: ` \"ns1\"`","title":"namespace","x-displayname":"Namespace","x-ves-example":"ns1"},"owner_view":{"$ref":"#/components/schemas/schemaViewRefType"},"status_set":{"type":"array","description":" The status reported by different services for this configuration object","title":"status","items":{"$ref":"#/components/schemas/cdn_loadbalancerStatusObject"},"x-displayname":"Status"},"system_metadata":{"$ref":"#/components/schemas/schemaSystemObjectGetMetaType"},"tenant":{"type":"string","description":" The tenant this item belongs to\n\nExample: ` \"acmecorp\"`","title":"tenant","x-displayname":"Tenant","x-ves-example":"acmecorp"},"uid":{"type":"string","description":" The unique uid of this cdn_loadbalancer\n\nExample: ` \"d27938ba-967e-40a7-9709-57b8627f9f75\"`","title":"uid","x-displayname":"UID","x-ves-example":"d27938ba-967e-40a7-9709-57b8627f9f75"}}},"cdn_loadbalancerReplaceRequest":{"type":"object","description":"This is the input message of the 'Replace' RPC","title":"ReplaceRequest is used to replace contents of a cdn_loadbalancer","x-displayname":"Replace Request","x-ves-proto-message":"ves.io.schema.views.cdn_loadbalancer.ReplaceRequest","properties":{"metadata":{"$ref":"#/components/schemas/schemaObjectReplaceMetaType"},"spec":{"$ref":"#/components/schemas/viewscdn_loadbalancerReplaceSpecType"}}},"cdn_loadbalancerReplaceResponse":{"type":"object","x-ves-proto-message":"ves.io.schema.views.cdn_loadbalancer.ReplaceResponse"},"cdn_loadbalancerSecurityOptionsType":{"type":"object","description":"x-displayName: \"Security Options\"\nThis defines various options related to security","title":"Security options","properties":{"api_protection":{"$ref":"#/components/schemas/cdn_loadbalancerApiProtection"},"auth_options":{"$ref":"#/components/schemas/cdn_loadbalancerAuthenticationOptions"},"common_security_controls":{"$ref":"#/components/schemas/cdn_loadbalancerCommonSecurityControls"},"geo_filtering":{"$ref":"#/components/schemas/cdn_loadbalancerGeoFilteringOptions"},"ip_filtering":{"$ref":"#/components/schemas/cdn_loadbalancerIpFilteringOptions"},"web_app_firewall":{"$ref":"#/components/schemas/cdn_loadbalancerWebApplicationFirewall"}}},"cdn_loadbalancerStatusObject":{"type":"object","description":"Most recently observed status of object","title":"StatusObject","x-displayname":"Status","x-ves-proto-message":"ves.io.schema.views.cdn_loadbalancer.StatusObject","properties":{"cdn_site_status":{"$ref":"#/components/schemas/common_cdnCDNSiteStatus"},"cdn_status":{"$ref":"#/components/schemas/common_cdnCDNControllerStatus"},"conditions":{"type":"array","description":" Conditions represent the normalized status values for configuration object","title":"conditions","items":{"$ref":"#/components/schemas/schemaConditionType"},"x-displayname":"Conditions"},"metadata":{"$ref":"#/components/schemas/schemaStatusMetaType"},"object_refs":{"type":"array","description":" CDN loadbalancer view object direct reference","title":"object_refs","items":{"$ref":"#/components/schemas/ioschemaObjectRefType"},"x-displayname":"Config Object"},"virtual_host_status":{"$ref":"#/components/schemas/virtual_hostDNSVHostStatusType"}}},"cdn_loadbalancerSubscribeRequest":{"type":"object","description":"Request to subscribe to CDN Loadbalancer","title":"SubscribeRequest","x-displayname":"Subscribe Request","x-ves-proto-message":"ves.io.schema.views.cdn_loadbalancer.SubscribeRequest"},"cdn_loadbalancerSubscribeResponse":{"type":"object","description":"Response of subscribe to CDN Loadbalancer","title":"SubscribeResponse","x-displayname":"Subscribe Response","x-ves-proto-message":"ves.io.schema.views.cdn_loadbalancer.SubscribeResponse"},"cdn_loadbalancerTlsCertOptions":{"type":"object","description":"TLS Certificate Options","title":"TLS Configuration Options","x-displayname":"TLS Options","x-ves-oneof-field-tls_certificates_choice":"[\"tls_cert_params\",\"tls_inline_params\"]","x-ves-proto-message":"ves.io.schema.views.cdn_loadbalancer.TlsCertOptions","properties":{"tls_cert_params":{"$ref":"#/components/schemas/viewsDownstreamTLSCertsParams"},"tls_inline_params":{"$ref":"#/components/schemas/schemaviewsDownstreamTlsParamsType"}}},"cdn_loadbalancerUnsubscribeRequest":{"type":"object","description":"Request to unsubscribe to CDN Loadbalancer","title":"UnsubscribeRequest","x-displayname":"Unsubscribe Request","x-ves-proto-message":"ves.io.schema.views.cdn_loadbalancer.UnsubscribeRequest"},"cdn_loadbalancerUnsubscribeResponse":{"type":"object","description":"Response of unsubscribe to CDN Loadbalancer","title":"UnsubscribeResponse","x-displayname":"Unsubscribe Response","x-ves-proto-message":"ves.io.schema.views.cdn_loadbalancer.UnsubscribeResponse"},"cdn_loadbalancerWebApplicationFirewall":{"type":"object","description":"x-displayName: \"Web Application Firewall\"\nWeb Application Firewall","title":"Web Application Firewall","properties":{"app_firewall":{"$ref":"#/components/schemas/schemaviewsObjectRefType"},"app_firewall_on_cache_miss":{"$ref":"#/components/schemas/schemaviewsObjectRefType"},"csrf_policy":{"$ref":"#/components/schemas/schemaCsrfPolicy"},"data_guard_rules":{"type":"array","description":"x-displayName: \"Data Guard Rules\"\nData Guard prevents responses from exposing sensitive information by masking the data.\nThe system masks credit card numbers and social security numbers leaked from the application from within the http response with a string of asterisks (*).\nNote: App Firewall should be enabled, to use Data Guard feature.","title":"Data Guard Rules","items":{"$ref":"#/components/schemas/policySimpleDataGuardRule"}},"disable_waf":{"$ref":"#/components/schemas/ioschemaEmpty"},"graphql_rules":{"type":"array","description":"x-displayName: \"GraphQL Inspection\"\nGraphQL is a query language and server-side runtime for APIs which provides a complete and understandable\ndescription of the data in API. GraphQL gives clients the power to ask for exactly what they need, makes it\neasier to evolve APIs over time, and enables powerful developer tools. Policy configuration to analyze GraphQL\nqueries and prevent GraphQL tailored attacks.","title":"GraphQL Inspection","items":{"$ref":"#/components/schemas/policyGraphQLRule"}},"protected_cookies":{"type":"array","description":"x-displayName: \"Cookie Protection\"\nAllows setting attributes (SameSite, Secure, and HttpOnly) on cookies in responses.\nCookie Tampering Protection prevents attackers from modifying the value of session cookies.\nFor Cookie Tampering Protection, enabling a web app firewall (WAF) is a prerequisite.\nThe configured mode of WAF (monitoring or blocking) will be enforced on the request when cookie tampering is identified.\nNote: We recommend enabling Secure and HttpOnly attributes along with cookie tampering protection.","title":"Cookie protection","items":{"$ref":"#/components/schemas/schemaCookieManipulationOptionType"}},"waf_exclusion_rules":{"type":"array","description":"x-displayName: \"WAF Exclusion Rules\"\nDefine the Signature IDs, Violations, Attack Types and Bot Names that should be excluded from WAF processing on specific match criteria.\nThe match criteria include domain, path and method.\nWAF Exclusion rules is a sequential engine where rules are evaluated one after the other.\nIt's important to define the correct order for WAF exclusion rules to get the intended result, rules are evaluated from top to bottom in the list.\nFor each request, its characteristics are evaluated based on the match criteria in each WAF exclusion rule, starting from the top.\nWhen an exclusion rule is matched, then this exclusion rule takes effect and no more rules are evaluated.","title":"WAF Exclusion Rules","items":{"$ref":"#/components/schemas/policySimpleWafExclusionRule"}}}},"common_cache_ruleCustomCacheRule":{"type":"object","description":"Caching policies for CDN","title":"Custom Cache Rules","x-displayname":"Custom Cache Rules","x-ves-proto-message":"ves.io.schema.views.common_cache_rule.CustomCacheRule","properties":{"cdn_cache_rules":{"type":"array","description":" Reference to CDN Cache Rule configuration object","title":"cdn_cache_rule","items":{"$ref":"#/components/schemas/schemaviewsObjectRefType"},"x-displayname":"CDN Cache Rule"}}},"common_cache_ruleDefaultCacheTTLProps":{"type":"object","description":"x-displayName: \"Default Cache TTL Props\"\nDefault Cache TTL Enable Values","title":"Default Cache TTL Props","properties":{"cache_ttl":{"type":"string","description":"x-displayName: \"Cache TTL\"\nx-required\nx-example: \"5m, 60s, 120s, 3h, 1d, 15d\"\nCache TTL value is used to cache the resource/content for the specified amount of time\nFormat: [0-9][smhd], where s - seconds, m - minutes, h - hours, d - days","title":"Cache TTL Key"}}},"common_cdnCDNControllerStatus":{"type":"object","description":"CDN Controller Status","title":"CDN Controller status","x-displayname":"CDN Controller Status","x-ves-proto-message":"ves.io.schema.views.common_cdn.CDNControllerStatus","properties":{"cfg_version":{"type":"integer","description":" Cfg version","title":"Cfg Version","format":"int64","x-displayname":"Cfg Version"},"cp_version":{"type":"integer","description":" CP version","title":"CP Version","format":"int64","x-displayname":"CP Version"},"deployment_status":{"$ref":"#/components/schemas/viewscommon_cdnCDNLoadbalancerDeploymentStatus"},"error":{"type":"string","description":" Error message","title":"Error","x-displayname":"Error"}}},"common_cdnCDNSiteStatus":{"type":"object","description":"This CDN status is per site and it indicates the status of the CDN service for the LB on the site","title":"CDN Site status details","x-displayname":"CDN Site Status","x-ves-proto-message":"ves.io.schema.views.common_cdn.CDNSiteStatus","properties":{"error":{"type":"string","description":" Error message (if any)","title":"Error","x-displayname":"Error"},"site":{"type":"string","description":" Name of the site that reported this status","title":"Site Name","x-displayname":"Site"},"status":{"$ref":"#/components/schemas/viewscommon_cdnCDNSiteDeploymentStatus"}}},"common_cdnGetServiceOperationReq":{"type":"object","description":"Get Service Operation Request","title":"Service Operation Request","x-displayname":"Get Service Operation Request","x-ves-proto-message":"ves.io.schema.views.common_cdn.GetServiceOperationReq","properties":{"name":{"type":"string","description":" Name of the CDN distribution.\n Format: string\n\nExample: ` \"cdn-1\"`\n\nRequired: YES\n\nValidation Rules:\n ves.io.schema.rules.message.required: true\n","title":"CDN Distribution Name","x-displayname":"Name of the CDN distribution","x-ves-example":"cdn-1","x-ves-required":"true","x-ves-validation-rules":{"ves.io.schema.rules.message.required":"true"}},"namespace":{"type":"string","description":" Namespace scope of the operation request\n\nExample: ` \"default\"`\n\nRequired: YES\n\nValidation Rules:\n ves.io.schema.rules.message.required: true\n","title":"Namespace","x-displayname":"Namespace","x-ves-example":"default","x-ves-required":"true","x-ves-validation-rules":{"ves.io.schema.rules.message.required":"true"}},"service_op_id":{"type":"integer","description":" Operation ID for which status is requested\n\nExample: ` \"101\"`\n\nRequired: YES\n\nValidation Rules:\n ves.io.schema.rules.message.required: true\n","title":"Service Operation ID","format":"int64","x-displayname":"Service Operation ID","x-ves-example":"101","x-ves-required":"true","x-ves-validation-rules":{"ves.io.schema.rules.message.required":"true"}}}},"common_cdnGetServiceOperationRsp":{"type":"object","description":"Get Service Operation Response","title":"Service Operation Response","x-displayname":"Service Operation Response","x-ves-proto-message":"ves.io.schema.views.common_cdn.GetServiceOperationRsp","properties":{"error":{"$ref":"#/components/schemas/schemaErrorType"},"items":{"type":"array","description":" items represents the collection in response","title":"Serice Operation Status Details","items":{"$ref":"#/components/schemas/common_cdnServiceOperationItem"},"x-displayname":"Operation Status Details"}}},"common_cdnLilacCDNCachePurgeRequest":{"type":"object","description":"CDN Cache Purge","title":"Cache Purge Request","x-displayname":"Cache Purge","x-ves-oneof-field-pattern_type":"[\"hostname\",\"pattern\",\"purge_all\",\"url\"]","x-ves-oneof-field-purge_type":"[\"hard_purge\",\"soft_purge\"]","x-ves-proto-message":"ves.io.schema.views.common_cdn.LilacCDNCachePurgeRequest","properties":{"hard_purge":{"$ref":"#/components/schemas/ioschemaEmpty"},"hostname":{"type":"string","description":"Exclusive with [pattern purge_all url]\n Purge cached content by Hostname.\n\nExample: ` \"xyz.com\"`\n\nValidation Rules:\n ves.io.schema.rules.string.vh_domain: true\n","title":"Hostname","x-displayname":"Hostname","x-ves-example":"xyz.com","x-ves-validation-rules":{"ves.io.schema.rules.string.vh_domain":"true"}},"pattern":{"type":"string","description":"Exclusive with [hostname purge_all url]\n Purge cached content using PCRE 1 compliant regular expression.\n\nExample: ` \".*\\.ts\"`\n\nValidation Rules:\n ves.io.schema.rules.string.max_len: 256\n ves.io.schema.rules.string.min_len: 1\n ves.io.schema.rules.string.pcre_regex: true\n","title":"Regex Pattern to match","minLength":1,"maxLength":256,"x-displayname":"Pattern","x-ves-example":".*\\.ts","x-ves-validation-rules":{"ves.io.schema.rules.string.max_len":"256","ves.io.schema.rules.string.min_len":"1","ves.io.schema.rules.string.pcre_regex":"true"}},"purge_all":{"$ref":"#/components/schemas/ioschemaEmpty"},"soft_purge":{"$ref":"#/components/schemas/ioschemaEmpty"},"url":{"type":"string","description":"Exclusive with [hostname pattern purge_all]\n Purge cache by using a URL path\n\nExample: ` \"/path1\"`","title":"URL","x-displayname":"URL","x-ves-example":"/path1"}}},"common_cdnLilacCDNCachePurgeResponse":{"type":"object","description":"Cache Purge message","title":"Purge Response","x-displayname":"Cache Purge Response","x-ves-proto-message":"ves.io.schema.views.common_cdn.LilacCDNCachePurgeResponse","properties":{"purge_request_id":{"type":"integer","description":" Request Id to track the status of the purge request","title":"Purge Request Id","format":"int64","x-displayname":"Purge Request Id"}}},"common_cdnListServiceOperationsReq":{"type":"object","description":"List Service Operations Request","title":"Service Operations Request","x-displayname":"List Service Operations Request","x-ves-oneof-field-options":"[\"lastn\",\"time_range\"]","x-ves-proto-message":"ves.io.schema.views.common_cdn.ListServiceOperationsReq","properties":{"lastn":{"type":"integer","description":"Exclusive with [time_range]\n The last n service operations\n\nExample: ` \"5\"`","title":"lastn","format":"int64","x-displayname":"Last N","x-ves-example":"5"},"name":{"type":"string","description":" Name of the CDN Distribution\n\nExample: ` \"name\"`","title":"name","x-displayname":"Name","x-ves-example":"name"},"namespace":{"type":"string","description":" The namespace this item belongs to\n\nExample: ` \"ns1\"`\n\nRequired: YES\n\nValidation Rules:\n ves.io.schema.rules.message.required: true\n","title":"Namespace","x-displayname":"Namespace","x-ves-example":"ns1","x-ves-required":"true","x-ves-validation-rules":{"ves.io.schema.rules.message.required":"true"}},"time_range":{"$ref":"#/components/schemas/common_cdnServiceOperationsTimeRange"}}},"common_cdnListServiceOperationsRsp":{"type":"object","description":"Get Service Operations Response","title":"Service Operations Response","x-displayname":"Service Operations Response","x-ves-proto-message":"ves.io.schema.views.common_cdn.ListServiceOperationsRsp","properties":{"error":{"$ref":"#/components/schemas/schemaErrorType"},"items":{"type":"array","description":" items represents the collection in response","title":"Details of the Service Operation","items":{"$ref":"#/components/schemas/common_cdnServiceOperationsItem"},"x-displayname":"Details of the Service Operation"}}},"common_cdnPurgeOperationItem":{"type":"object","description":"Purge Operation Status","title":"Purge Operation Status","x-displayname":"Purge Operation Status","x-ves-proto-message":"ves.io.schema.views.common_cdn.PurgeOperationItem","properties":{"bytes_not_purged":{"type":"string","description":" Number of bytes Not Purged\n\nExample: ` 1024`","title":"Number of Bytes Not Purged","format":"uint64","x-displayname":"Number of Bytes Not Purged"},"bytes_purged":{"type":"string","description":" Number of bytes Purged\n\nExample: ` 1024`","title":"Number of Bytes Purged","format":"uint64","x-displayname":"Number of Bytes Purged"},"finish_time":{"type":"string","description":" Finish time of Purge Operation\n format: unix_timestamp|rfc 3339\n\nExample: ` \"2019-09-23T12:32:11.733Z\"`\n\nValidation Rules:\n ves.io.schema.rules.string.query_time: true\n","title":"Finish time of Purge Operation","x-displayname":"Cache Purge Finish Time","x-ves-example":"2019-09-23T12:32:11.733Z","x-ves-validation-rules":{"ves.io.schema.rules.string.query_time":"true"}},"hard_purge":{"type":"boolean","description":" Cache Hard Purge\n\nExample: ` true`","title":"Hard Purge","format":"boolean","x-displayname":"Cache Hard Purge"},"purge_time":{"type":"string","description":" Time taken for Cache Purge\n\nExample: ` \"2018-12-23T12:30:11.733Z\"`\n\nValidation Rules:\n ves.io.schema.rules.string.query_time: true\n","title":"Time taken for Cache Purge","x-displayname":"Cache Purge Time","x-ves-example":"2018-12-23T12:30:11.733Z","x-ves-validation-rules":{"ves.io.schema.rules.string.query_time":"true"}},"regexp":{"type":"string","description":" Regex issued in the Purge Operation\n\nExample: ` \"*.m3u8\"`","title":"Regex used in Purge","x-displayname":"Cache Purge Regex","x-ves-example":"*.m3u8"},"site":{"type":"string","description":" Site at which the purge operation was performed.","title":"NodeId on which the operation status is gathered","x-displayname":"CDN CE Site"},"start_time":{"type":"string","description":" Start time of Purge Operation\n\nExample: ` \"2019-09-23T12:30:11.733Z\"`\n\nValidation Rules:\n ves.io.schema.rules.string.query_time: true\n","title":"Start time of Purge Operation","x-displayname":"Cache Purge Start Time","x-ves-example":"2019-09-23T12:30:11.733Z","x-ves-validation-rules":{"ves.io.schema.rules.string.query_time":"true"}}}},"common_cdnServiceOperationItem":{"type":"object","description":"Service Operation Item","title":"Service Operation Item","x-displayname":"Service Operation Item","x-ves-oneof-field-op_status":"[\"purge\"]","x-ves-proto-message":"ves.io.schema.views.common_cdn.ServiceOperationItem","properties":{"purge":{"$ref":"#/components/schemas/common_cdnPurgeOperationItem"},"service_op_id":{"type":"integer","description":" Operation ID for which status is requested. This for example is the purge_request_id obtained in the response to the CachePurge Request.\n\nExample: ` \"101\"`","title":"Service Operation ID","format":"int64","x-displayname":"Service Operation ID","x-ves-example":"101"},"status":{"type":"string","description":" Status of the operation command\n\nExample: ` success`","title":"Service Operation Status","x-displayname":"Service Operation Status"}}},"common_cdnServiceOperationsItem":{"type":"object","description":"List of Service Operations","title":"Service Operations Item","x-displayname":"List of Service Operations","x-ves-proto-message":"ves.io.schema.views.common_cdn.ServiceOperationsItem","properties":{"created_time":{"type":"string","description":" The service created time\n\nValidation Rules:\n ves.io.schema.rules.string.query_time: true\n","title":"created time","x-displayname":"Created Time","x-ves-validation-rules":{"ves.io.schema.rules.string.query_time":"true"}},"modified_time":{"type":"string","description":" The service modified time\n\nValidation Rules:\n ves.io.schema.rules.string.query_time: true\n","title":"modified time","x-displayname":"Modified Time","x-ves-validation-rules":{"ves.io.schema.rules.string.query_time":"true"}},"service_op_id":{"type":"integer","description":" The id of the operation command\n\nExample: ` \"\"`","title":"service operation id","format":"int64","x-displayname":"Service Operation ID"},"svc_version":{"type":"integer","description":" The version info of the service\n\nExample: ` \"\"`","title":"svc version","format":"int64","x-displayname":"Service Version"}}},"common_cdnServiceOperationsTimeRange":{"type":"object","description":"Option to specify lastn or start-end time.","title":"Service Operations Time Range","x-displayname":"Service Operations Options","x-ves-proto-message":"ves.io.schema.views.common_cdn.ServiceOperationsTimeRange","properties":{"finish_time":{"type":"string","description":" A finish time for the time range in which the service operation status is requested.\n format: unix_timestamp|rfc 3339\n\nExample: ` \"2019-09-23T12:32:11.733Z\"`\n\nRequired: YES\n\nValidation Rules:\n ves.io.schema.rules.message.required: true\n ves.io.schema.rules.string.query_time: true\n","title":"Finish time of Service Operations","x-displayname":"Service Operation Finish Time","x-ves-example":"2019-09-23T12:32:11.733Z","x-ves-required":"true","x-ves-validation-rules":{"ves.io.schema.rules.message.required":"true","ves.io.schema.rules.string.query_time":"true"}},"start_time":{"type":"string","description":" A start time for the time range in which the service operation status is requested.\n\nExample: ` \"2019-09-23T12:30:11.733Z\"`\n\nRequired: YES\n\nValidation Rules:\n ves.io.schema.rules.message.required: true\n ves.io.schema.rules.string.query_time: true\n","title":"Start time of Service Operations","x-displayname":"Service Operation Start Time","x-ves-example":"2019-09-23T12:30:11.733Z","x-ves-required":"true","x-ves-validation-rules":{"ves.io.schema.rules.message.required":"true","ves.io.schema.rules.string.query_time":"true"}}}},"common_securityAppEndpointType":{"type":"object","description":"Application Endpoint.","title":"AppEndpointType","x-displayname":"Application Endpoint","x-ves-displayorder":"1,2,13,3,5,4,20,21,8,12,16","x-ves-oneof-field-app_traffic_type_choice":"[\"mobile\",\"web\",\"web_mobile\"]","x-ves-oneof-field-domain_matcher_choice":"[\"any_domain\",\"domain\"]","x-ves-oneof-field-flow_label_choice":"[\"flow_label\",\"undefined_flow_label\"]","x-ves-oneof-field-goodbot_choice":"[\"allow_good_bots\",\"mitigate_good_bots\"]","x-ves-proto-message":"ves.io.schema.views.common_security.AppEndpointType","properties":{"allow_good_bots":{"$ref":"#/components/schemas/ioschemaEmpty"},"any_domain":{"$ref":"#/components/schemas/ioschemaEmpty"},"domain":{"$ref":"#/components/schemas/schemaDomainType"},"flow_label":{"$ref":"#/components/schemas/schemaBotDefenseFlowLabelCategoriesChoiceType"},"headers":{"type":"array","description":" A list of predicates for various HTTP headers that need to match. The criteria for matching each HTTP header are described in individual HeaderMatcherType\n instances. The actual HTTP header values are extracted from the request API as a list of strings for each HTTP header type.\n Note that all specified header predicates must evaluate to true.\n\nValidation Rules:\n ves.io.schema.rules.repeated.max_items: 16\n","title":"headers","maxItems":16,"items":{"$ref":"#/components/schemas/schemapolicyHeaderMatcherType"},"x-displayname":"HTTP Headers","x-ves-validation-rules":{"ves.io.schema.rules.repeated.max_items":"16"}},"http_methods":{"type":"array","description":" List of HTTP methods.\n\nRequired: YES\n\nValidation Rules:\n ves.io.schema.rules.message.required: true\n ves.io.schema.rules.repeated.items.enum.defined_only: true\n ves.io.schema.rules.repeated.items.enum.in: [0,1,3,4,10]\n ves.io.schema.rules.repeated.max_items: 5\n ves.io.schema.rules.repeated.min_items: 1\n ves.io.schema.rules.repeated.unique: true\n","title":"HTTP Methods","minItems":1,"maxItems":5,"items":{"$ref":"#/components/schemas/schemaBotHttpMethod"},"x-displayname":"HTTP Methods","x-ves-required":"true","x-ves-validation-rules":{"ves.io.schema.rules.message.required":"true","ves.io.schema.rules.repeated.items.enum.defined_only":"true","ves.io.schema.rules.repeated.items.enum.in":"[0,1,3,4,10]","ves.io.schema.rules.repeated.max_items":"5","ves.io.schema.rules.repeated.min_items":"1","ves.io.schema.rules.repeated.unique":"true"}},"metadata":{"$ref":"#/components/schemas/schemaMessageMetaType"},"mitigate_good_bots":{"$ref":"#/components/schemas/ioschemaEmpty"},"mitigation":{"$ref":"#/components/schemas/policyShapeBotMitigationAction"},"mobile":{"$ref":"#/components/schemas/ioschemaEmpty"},"path":{"$ref":"#/components/schemas/ioschemaPathMatcherType"},"protocol":{"$ref":"#/components/schemas/common_securityURLScheme"},"query_params":{"type":"array","description":" A list of predicates for all query parameters that need to be matched. The criteria for matching each query parameter are described in individual instances\n of QueryParameterMatcherType. The actual query parameter values are extracted from the request API as a list of strings for each query parameter name.\n Note that all specified query parameter predicates must evaluate to true.\n\nValidation Rules:\n ves.io.schema.rules.repeated.max_items: 16\n","title":"query params","maxItems":16,"items":{"$ref":"#/components/schemas/schemapolicyQueryParameterMatcherType"},"x-displayname":"HTTP Query Parameters","x-ves-validation-rules":{"ves.io.schema.rules.repeated.max_items":"16"}},"undefined_flow_label":{"$ref":"#/components/schemas/ioschemaEmpty"},"web":{"$ref":"#/components/schemas/ioschemaEmpty"},"web_mobile":{"$ref":"#/components/schemas/common_securityWebMobileTrafficType"}}},"common_securityBotAdvancedMobileSDKConfigType":{"type":"object","description":"x-displayName: \"Mobile Request Identifier Headers\"\nMobile Request Identifier Headers.","title":"BotAdvancedMobileSDKConfigType","properties":{"mobile_identifier":{"$ref":"#/components/schemas/common_securityMobileTrafficIdentifierType"}}},"common_securityBotDefenseAdvancedType":{"type":"object","description":"x-displayName: \"Bot Defense Advanced\"\nBot Defense Advanced","title":"BotDefenseAdvancedType","properties":{"disable_js_insert":{"$ref":"#/components/schemas/ioschemaEmpty"},"disable_mobile_sdk":{"$ref":"#/components/schemas/ioschemaEmpty"},"js_insert_all_pages":{"$ref":"#/components/schemas/common_securityShapeJavaScriptInsertAllType"},"js_insert_all_pages_except":{"$ref":"#/components/schemas/common_securityShapeJavaScriptInsertAllWithExceptionsType"},"js_insertion_rules":{"$ref":"#/components/schemas/common_securityShapeJavaScriptInsertType"},"mobile":{"$ref":"#/components/schemas/schemaviewsObjectRefType"},"mobile_sdk_config":{"$ref":"#/components/schemas/common_securityBotAdvancedMobileSDKConfigType"},"web":{"$ref":"#/components/schemas/schemaviewsObjectRefType"}}},"common_securityCSDJavaScriptInsertAllWithExceptionsType":{"type":"object","description":"Insert Client-Side Defense JavaScript in all pages with the exceptions","title":"CSDJavaScriptInsertAllWithExceptionsType","x-displayname":"Insert JavaScript in All Pages with the Exceptions","x-ves-proto-message":"ves.io.schema.views.common_security.CSDJavaScriptInsertAllWithExceptionsType","properties":{"exclude_list":{"type":"array","description":" Optional JavaScript insertions exclude list of domain and path matchers.\n\nValidation Rules:\n ves.io.schema.rules.repeated.max_items: 128\n ves.io.schema.rules.repeated.unique: true\n","title":"exclude_list","maxItems":128,"items":{"$ref":"#/components/schemas/common_securityShapeJavaScriptExclusionRule"},"x-displayname":"Exclude Pages","x-ves-validation-rules":{"ves.io.schema.rules.repeated.max_items":"128","ves.io.schema.rules.repeated.unique":"true"}}}},"common_securityCSDJavaScriptInsertType":{"type":"object","description":"This defines custom JavaScript insertion rules for Client-Side Defense Policy.","title":"CSDJavaScriptInsertType","x-displayname":"JavaScript Custom Insertion Rules","x-ves-proto-message":"ves.io.schema.views.common_security.CSDJavaScriptInsertType","properties":{"exclude_list":{"type":"array","description":" Optional JavaScript insertions exclude list of domain and path matchers.\n\nValidation Rules:\n ves.io.schema.rules.repeated.max_items: 128\n ves.io.schema.rules.repeated.unique: true\n","title":"exclude_list","maxItems":128,"items":{"$ref":"#/components/schemas/common_securityShapeJavaScriptExclusionRule"},"x-displayname":"Exclude Paths","x-ves-validation-rules":{"ves.io.schema.rules.repeated.max_items":"128","ves.io.schema.rules.repeated.unique":"true"}},"rules":{"type":"array","description":" Required list of pages to insert Client-Side Defense client JavaScript.\n\nRequired: YES\n\nValidation Rules:\n ves.io.schema.rules.message.required: true\n ves.io.schema.rules.repeated.max_items: 128\n ves.io.schema.rules.repeated.min_items: 1\n ves.io.schema.rules.repeated.unique: true\n","title":"rules","minItems":1,"maxItems":128,"items":{"$ref":"#/components/schemas/common_securityCSDJavaScriptInsertionRule"},"x-displayname":"JavaScript Insertions","x-ves-required":"true","x-ves-validation-rules":{"ves.io.schema.rules.message.required":"true","ves.io.schema.rules.repeated.max_items":"128","ves.io.schema.rules.repeated.min_items":"1","ves.io.schema.rules.repeated.unique":"true"}}}},"common_securityCSDJavaScriptInsertionRule":{"type":"object","description":"This defines a rule for Client-Side Defense JavaScript insertion.","title":"CSDJavaScriptInsertionRule","x-displayname":"JavaScript Insertion Rule","x-ves-oneof-field-domain_matcher_choice":"[\"any_domain\",\"domain\"]","x-ves-proto-message":"ves.io.schema.views.common_security.CSDJavaScriptInsertionRule","properties":{"any_domain":{"$ref":"#/components/schemas/ioschemaEmpty"},"domain":{"$ref":"#/components/schemas/schemaDomainType"},"metadata":{"$ref":"#/components/schemas/schemaMessageMetaType"},"path":{"$ref":"#/components/schemas/ioschemaPathMatcherType"}}},"common_securityClientSideDefensePolicyType":{"type":"object","description":"This defines various configuration options for Client-Side Defense policy.","title":"ClientSideDefensePolicyType","x-displayname":"Client-Side Defense Policy","x-ves-oneof-field-java_script_choice":"[\"disable_js_insert\",\"js_insert_all_pages\",\"js_insert_all_pages_except\",\"js_insertion_rules\"]","x-ves-proto-message":"ves.io.schema.views.common_security.ClientSideDefensePolicyType","properties":{"disable_js_insert":{"$ref":"#/components/schemas/ioschemaEmpty"},"js_insert_all_pages":{"$ref":"#/components/schemas/ioschemaEmpty"},"js_insert_all_pages_except":{"$ref":"#/components/schemas/common_securityCSDJavaScriptInsertAllWithExceptionsType"},"js_insertion_rules":{"$ref":"#/components/schemas/common_securityCSDJavaScriptInsertType"}}},"common_securityClientSideDefenseType":{"type":"object","description":"This defines various configuration options for Client-Side Defense Policy.","title":"ClientSideDefenseType","x-displayname":"Client-Side Defense","x-ves-proto-message":"ves.io.schema.views.common_security.ClientSideDefenseType","properties":{"policy":{"$ref":"#/components/schemas/common_securityClientSideDefensePolicyType"}}},"common_securityDDoSClientSource":{"type":"object","description":"DDoS Mitigation sources to be blocked","title":"DDoSClientSource","x-displayname":"DDoS Client Source Choice","x-ves-displayorder":"1,3,5,6","x-ves-proto-message":"ves.io.schema.views.common_security.DDoSClientSource","properties":{"asn_list":{"$ref":"#/components/schemas/policyAsnMatchList"},"country_list":{"type":"array","description":" Sources that are located in one of the countries in the given list\n\nValidation Rules:\n ves.io.schema.rules.repeated.items.enum.defined_only: true\n ves.io.schema.rules.repeated.items.enum.not_in: [0]\n ves.io.schema.rules.repeated.max_items: 64\n ves.io.schema.rules.repeated.unique: true\n","title":"country_list","maxItems":64,"items":{"$ref":"#/components/schemas/policyCountryCode"},"x-displayname":"Country List","x-ves-validation-rules":{"ves.io.schema.rules.repeated.items.enum.defined_only":"true","ves.io.schema.rules.repeated.items.enum.not_in":"[0]","ves.io.schema.rules.repeated.max_items":"64","ves.io.schema.rules.repeated.unique":"true"}},"ja4_tls_fingerprint_matcher":{"$ref":"#/components/schemas/policyJA4TlsFingerprintMatcherType"},"tls_fingerprint_matcher":{"$ref":"#/components/schemas/policyTlsFingerprintMatcherType"}}},"common_securityDDoSMitigationRule":{"type":"object","description":"DDoS Mitigation Rule specifies the sources to be blocked","title":"DDoSMitigationRule","x-displayname":"DDoS Mitigation Rule","x-ves-displayorder":"1,2,7,10","x-ves-oneof-field-mitigation_action":"[\"block\"]","x-ves-oneof-field-mitigation_choice":"[\"ddos_client_source\",\"ip_prefix_list\"]","x-ves-proto-message":"ves.io.schema.views.common_security.DDoSMitigationRule","properties":{"block":{"$ref":"#/components/schemas/ioschemaEmpty"},"ddos_client_source":{"$ref":"#/components/schemas/common_securityDDoSClientSource"},"expiration_timestamp":{"type":"string","description":" The expiration_timestamp is the RFC 3339 format timestamp at which the containing rule is considered to be logically expired. The rule continues to exist in\n the configuration but is not applied anymore.\n\nExample: ` \"2019-12-31:44:34.171543432Z\"`\n\nValidation Rules:\n ves.io.schema.rules.timestamp.within.seconds: 31536000\n","title":"expiration timestamp","format":"date-time","x-displayname":"Expiration Timestamp","x-ves-example":"2019-12-31:44:34.171543432Z","x-ves-validation-rules":{"ves.io.schema.rules.timestamp.within.seconds":"31536000"}},"ip_prefix_list":{"$ref":"#/components/schemas/policyPrefixMatchList"},"metadata":{"$ref":"#/components/schemas/schemaMessageMetaType"}}},"common_securityDeleteDoSAutoMitigationRuleRsp":{"type":"object","description":"Response of Delete DoS Auto-Mitigation Rule API","title":"Delete DoS Auto-Mitigation Rule response","x-displayname":"Delete DoS Auto-Mitigation Rule response","x-ves-proto-message":"ves.io.schema.views.common_security.DeleteDoSAutoMitigationRuleRsp","properties":{"name":{"type":"string","description":" Name of the deleted DoS Auto-Mitigation loadbalancer Rule\n\nExample: ` \"dos-auto-mitigation-ves-io-http-loadbalancer-ce22\"`","title":"DoS Auto-Mitigation Rule Name","x-displayname":"DoS Auto-Mitigation Rule Name","x-ves-example":"dos-auto-mitigation-ves-io-http-loadbalancer-ce22"}}},"common_securityGetDoSAutoMitigationRulesRsp":{"type":"object","description":"Response of GET DDoS Auto-Mitigation Rules API","title":"Get DoS Auto-Mitigation Rules response","x-displayname":"Get DDoS Auto-Mitigation Rules Response","x-ves-proto-message":"ves.io.schema.views.common_security.GetDoSAutoMitigationRulesRsp","properties":{"dos_automitigation_rules":{"type":"array","title":"DoS Auto-Mitigation Rules","items":{"$ref":"#/components/schemas/dos_mitigationDoSMitigationRuleInfo"},"x-displayname":"DoS Auto-Mitigation Rules"}}},"common_securityGetSecurityConfigRsp":{"type":"object","title":"Get Security Config Response","x-displayname":"Get Security Config Response","x-ves-proto-message":"ves.io.schema.views.common_security.GetSecurityConfigRsp","properties":{"api_protection":{"type":"array","title":"API Protection Configured","items":{"type":"string"},"x-displayname":"API Protection Configured"},"app_firewall":{"type":"array","title":"App Firewall Configured","items":{"type":"string"},"x-displayname":"App Firewall Configured"},"app_firewall_per_route":{"type":"array","title":"App Firewall Configured Per Route","items":{"type":"string"},"x-displayname":"List of Load Balancers Where App Firewall is Configured Per Route"},"bot_defense":{"type":"array","title":"Bot Defense Configured","items":{"type":"string"},"x-displayname":"Bot Defense Configured"},"ddos_detection":{"type":"array","title":"DDOS Detection Configured","items":{"type":"string"},"x-displayname":"DDOS Detection Configured"},"protected":{"type":"array","title":"Protected LoadBalancers Configured","items":{"type":"string"},"x-displayname":"List of Load Balancers Secured"}}},"common_securityMobileIdentifier":{"type":"string","description":"Mobile identifier type\n\n - HEADERS: Headers\n\nHeaders","title":"MobileIdentifier","enum":["HEADERS"],"default":"HEADERS","x-displayname":"Mobile Identifier","x-ves-proto-enum":"ves.io.schema.views.common_security.MobileIdentifier"},"common_securityMobileSDKConfigType":{"type":"object","description":"Mobile SDK configuration.","title":"MobileSDKConfigType","x-displayname":"Mobile SDK Configuration","x-ves-proto-message":"ves.io.schema.views.common_security.MobileSDKConfigType","properties":{"mobile_identifier":{"$ref":"#/components/schemas/common_securityMobileTrafficIdentifierType"}}},"common_securityMobileTrafficIdentifierType":{"type":"object","description":"Mobile traffic identifier type.","title":"MobileTrafficIdentifierType","x-displayname":"Mobile Traffic Identifier","x-ves-proto-message":"ves.io.schema.views.common_security.MobileTrafficIdentifierType","properties":{"headers":{"type":"array","description":" Headers that can be used to identify mobile traffic.\n\nValidation Rules:\n ves.io.schema.rules.repeated.max_items: 32\n ves.io.schema.rules.repeated.unique: true\n","title":"Mobile headers","maxItems":32,"items":{"$ref":"#/components/schemas/policyHeaderMatcherTypeBasic"},"x-displayname":"Headers","x-ves-validation-rules":{"ves.io.schema.rules.repeated.max_items":"32","ves.io.schema.rules.repeated.unique":"true"}}}},"common_securitySensitiveDataPolicySettings":{"type":"object","description":"Settings for data type policy","title":"SensitiveDataPolicySettings","x-displayname":"Sensitive Data Discovery","x-ves-proto-message":"ves.io.schema.views.common_security.SensitiveDataPolicySettings","properties":{"sensitive_data_policy_ref":{"$ref":"#/components/schemas/schemaviewsObjectRefType"}}},"common_securityShapeBotDefensePolicyType":{"type":"object","description":"This defines various configuration options for Bot Defense policy.","title":"ShapeShapeBotDefensePolicyType","x-displayname":"Bot Defense Policy","x-ves-oneof-field-java_script_choice":"[\"disable_js_insert\",\"js_insert_all_pages\",\"js_insert_all_pages_except\",\"js_insertion_rules\"]","x-ves-oneof-field-mobile_sdk_choice":"[\"disable_mobile_sdk\",\"mobile_sdk_config\"]","x-ves-proto-message":"ves.io.schema.views.common_security.ShapeBotDefensePolicyType","properties":{"disable_js_insert":{"$ref":"#/components/schemas/ioschemaEmpty"},"disable_mobile_sdk":{"$ref":"#/components/schemas/ioschemaEmpty"},"javascript_mode":{"$ref":"#/components/schemas/schemaJavaScriptMode"},"js_download_path":{"type":"string","description":" Customize Bot Defense Client JavaScript path. If not specified, default `/common.js`\n\nExample: ` \"value\"`\n\nValidation Rules:\n ves.io.schema.rules.string.http_path: true\n","title":"js_download_path","x-displayname":"JavaScript Download Path","x-ves-example":"value","x-ves-validation-rules":{"ves.io.schema.rules.string.http_path":"true"}},"js_insert_all_pages":{"$ref":"#/components/schemas/common_securityShapeJavaScriptInsertAllType"},"js_insert_all_pages_except":{"$ref":"#/components/schemas/common_securityShapeJavaScriptInsertAllWithExceptionsType"},"js_insertion_rules":{"$ref":"#/components/schemas/common_securityShapeJavaScriptInsertType"},"mobile_sdk_config":{"$ref":"#/components/schemas/common_securityMobileSDKConfigType"},"protected_app_endpoints":{"type":"array","description":" List of protected endpoints. Limit: Approx '128 endpoints per Load Balancer (LB)' upto 4 LBs, '32 endpoints per LB' after 4 LBs.\n\nRequired: YES\n\nValidation Rules:\n ves.io.schema.rules.message.required: true\n ves.io.schema.rules.repeated.max_items: 128\n ves.io.schema.rules.repeated.min_items: 1\n ves.io.schema.rules.repeated.unique: true\n","title":"AppEndpointType","minItems":1,"maxItems":128,"items":{"$ref":"#/components/schemas/common_securityAppEndpointType"},"x-displayname":"App Endpoint Type","x-ves-required":"true","x-ves-validation-rules":{"ves.io.schema.rules.message.required":"true","ves.io.schema.rules.repeated.max_items":"128","ves.io.schema.rules.repeated.min_items":"1","ves.io.schema.rules.repeated.unique":"true"}}}},"common_securityShapeBotDefenseRegion":{"type":"string","description":"Defines a selection for Bot Defense region\n\n - AUTO: AUTO\n\nAutomatic selection based on client IP address\n - US: US\n\nUS region\n - EU: EU\n\nEuropean Union region\n - ASIA: ASIA\n\nAsia region","title":"ShapeBotDefenseRegion","enum":["AUTO","US","EU","ASIA"],"default":"AUTO","x-displayname":"Bot Defense Region","x-ves-proto-enum":"ves.io.schema.views.common_security.ShapeBotDefenseRegion"},"common_securityShapeBotDefenseType":{"type":"object","description":"This defines various configuration options for Bot Defense Policy.","title":"ShapeBotDefenseType","x-displayname":"Bot Defense","x-ves-oneof-field-cors_support_choice":"[\"disable_cors_support\",\"enable_cors_support\"]","x-ves-proto-message":"ves.io.schema.views.common_security.ShapeBotDefenseType","properties":{"disable_cors_support":{"$ref":"#/components/schemas/ioschemaEmpty"},"enable_cors_support":{"$ref":"#/components/schemas/ioschemaEmpty"},"policy":{"$ref":"#/components/schemas/common_securityShapeBotDefensePolicyType"},"regional_endpoint":{"$ref":"#/components/schemas/common_securityShapeBotDefenseRegion"},"timeout":{"type":"integer","description":" The timeout for the inference check, in milliseconds.\n\nExample: ` \"300\"`\n\nValidation Rules:\n ves.io.schema.rules.uint32.gte: 0\n ves.io.schema.rules.uint32.lte: 60000\n","title":"timeout","format":"int64","x-displayname":"Timeout","x-ves-example":"300","x-ves-validation-rules":{"ves.io.schema.rules.uint32.gte":"0","ves.io.schema.rules.uint32.lte":"60000"}}}},"common_securityShapeJavaScriptExclusionRule":{"type":"object","description":"Define JavaScript insertion exclusion rule","title":"ShapeJavaScriptExclusionRule","x-displayname":"JavaScript Insertion Exclusion Rule","x-ves-oneof-field-domain_matcher_choice":"[\"any_domain\",\"domain\"]","x-ves-proto-message":"ves.io.schema.views.common_security.ShapeJavaScriptExclusionRule","properties":{"any_domain":{"$ref":"#/components/schemas/ioschemaEmpty"},"domain":{"$ref":"#/components/schemas/schemaDomainType"},"metadata":{"$ref":"#/components/schemas/schemaMessageMetaType"},"path":{"$ref":"#/components/schemas/ioschemaPathMatcherType"}}},"common_securityShapeJavaScriptInsertAllType":{"type":"object","description":"Insert Bot Defense JavaScript in all pages","title":"ShapeJavaScriptInsertAllType","x-displayname":"Insert Bot Defense JavaScript in All Pages","x-ves-proto-message":"ves.io.schema.views.common_security.ShapeJavaScriptInsertAllType","properties":{"javascript_location":{"$ref":"#/components/schemas/viewscommon_securityJavaScriptLocation"}}},"common_securityShapeJavaScriptInsertAllWithExceptionsType":{"type":"object","description":"Insert Bot Defense JavaScript in all pages with the exceptions","title":"ShapeJavaScriptInsertAllWithExceptionsType","x-displayname":"Insert JavaScript in All Pages with the Exceptions","x-ves-proto-message":"ves.io.schema.views.common_security.ShapeJavaScriptInsertAllWithExceptionsType","properties":{"exclude_list":{"type":"array","description":" Optional JavaScript insertions exclude list of domain and path matchers.\n\nValidation Rules:\n ves.io.schema.rules.repeated.max_items: 128\n ves.io.schema.rules.repeated.unique: true\n","title":"exclude_list","maxItems":128,"items":{"$ref":"#/components/schemas/common_securityShapeJavaScriptExclusionRule"},"x-displayname":"Exclude Pages","x-ves-validation-rules":{"ves.io.schema.rules.repeated.max_items":"128","ves.io.schema.rules.repeated.unique":"true"}},"javascript_location":{"$ref":"#/components/schemas/viewscommon_securityJavaScriptLocation"}}},"common_securityShapeJavaScriptInsertType":{"type":"object","description":"This defines custom JavaScript insertion rules for Bot Defense Policy.","title":"ShapeJavaScriptInsertType","x-displayname":"JavaScript Custom Insertion Rules","x-ves-proto-message":"ves.io.schema.views.common_security.ShapeJavaScriptInsertType","properties":{"exclude_list":{"type":"array","description":" Optional JavaScript insertions exclude list of domain and path matchers.\n\nValidation Rules:\n ves.io.schema.rules.repeated.max_items: 128\n ves.io.schema.rules.repeated.unique: true\n","title":"exclude_list","maxItems":128,"items":{"$ref":"#/components/schemas/common_securityShapeJavaScriptExclusionRule"},"x-displayname":"Exclude Paths","x-ves-validation-rules":{"ves.io.schema.rules.repeated.max_items":"128","ves.io.schema.rules.repeated.unique":"true"}},"rules":{"type":"array","description":" Required list of pages to insert Bot Defense client JavaScript.\n\nRequired: YES\n\nValidation Rules:\n ves.io.schema.rules.message.required: true\n ves.io.schema.rules.repeated.max_items: 128\n ves.io.schema.rules.repeated.min_items: 1\n ves.io.schema.rules.repeated.unique: true\n","title":"rules","minItems":1,"maxItems":128,"items":{"$ref":"#/components/schemas/common_securityShapeJavaScriptInsertionRule"},"x-displayname":"JavaScript Insertions","x-ves-required":"true","x-ves-validation-rules":{"ves.io.schema.rules.message.required":"true","ves.io.schema.rules.repeated.max_items":"128","ves.io.schema.rules.repeated.min_items":"1","ves.io.schema.rules.repeated.unique":"true"}}}},"common_securityShapeJavaScriptInsertionRule":{"type":"object","description":"This defines a rule for Bot Defense JavaScript insertion.","title":"ShapeJavaScriptInsertionRule","x-displayname":"JavaScript Insertion Rule","x-ves-oneof-field-domain_matcher_choice":"[\"any_domain\",\"domain\"]","x-ves-proto-message":"ves.io.schema.views.common_security.ShapeJavaScriptInsertionRule","properties":{"any_domain":{"$ref":"#/components/schemas/ioschemaEmpty"},"domain":{"$ref":"#/components/schemas/schemaDomainType"},"javascript_location":{"$ref":"#/components/schemas/viewscommon_securityJavaScriptLocation"},"metadata":{"$ref":"#/components/schemas/schemaMessageMetaType"},"path":{"$ref":"#/components/schemas/ioschemaPathMatcherType"}}},"common_securityURLScheme":{"type":"string","description":"SchemeType is used to indicate URL scheme.\n\n - BOTH: BOTH\n\nURL scheme for https:// or http://.\n - HTTP: HTTP\n\nURL scheme http:// only.\n - HTTPS: HTTPS\n\nURL scheme https:// only.","title":"URLSchemeType","enum":["BOTH","HTTP","HTTPS"],"default":"BOTH","x-displayname":"URL Scheme","x-ves-proto-enum":"ves.io.schema.views.common_security.URLScheme"},"common_securityWebMobileTrafficType":{"type":"object","description":"Web and Mobile traffic type","title":"WebMobileTrafficType","x-displayname":"Web and Mobile traffic type","x-ves-proto-message":"ves.io.schema.views.common_security.WebMobileTrafficType","properties":{"mobile_identifier":{"$ref":"#/components/schemas/common_securityMobileIdentifier"}}},"common_wafAPIEndpointProtectionRule":{"type":"object","description":"x-displayName: \"API Endpoint Protection Rule\"\nAPI Protection Rule for a specific endpoint","title":"API Endpoint Protection Rule","properties":{"action":{"$ref":"#/components/schemas/common_wafAPIProtectionRuleAction"},"any_domain":{"$ref":"#/components/schemas/ioschemaEmpty"},"api_endpoint_method":{"$ref":"#/components/schemas/policyHttpMethodMatcherType"},"api_endpoint_path":{"type":"string","description":"x-required\nx-example: \"/endpoint1\"\nx-displayName: \"API Endpoint\"\nThe endpoint (path) of the request.","title":"api endpoint path"},"client_matcher":{"$ref":"#/components/schemas/policyClientMatcher"},"metadata":{"$ref":"#/components/schemas/schemaMessageMetaType"},"request_matcher":{"$ref":"#/components/schemas/policyRequestMatcher"},"specific_domain":{"type":"string","description":"x-displayName: \"Specific Domain\"\nx-example: \"api.example.com\"\nThe rule will apply for a specific domain.\nFor example: api.example.com","title":"domain"}}},"common_wafAPIGroupProtectionRule":{"type":"object","description":"x-displayName: \"API Group Protection Rule\"\nAPI Protection Rule for a group or a base url","title":"API Group Protection Rule","properties":{"action":{"$ref":"#/components/schemas/common_wafAPIProtectionRuleAction"},"any_domain":{"$ref":"#/components/schemas/ioschemaEmpty"},"api_group":{"type":"string","description":"x-displayName: \"API Group\"\nx-example: \"oas-all-operations\"\nAPI groups derived from API Definition swaggers.\nFor example oas-all-operations including all paths and methods from the swaggers, oas-base-urls covering all requests under base-paths from the swaggers.\nCustom groups can be created if user tags paths or operations with \"x-volterra-api-group\" extensions inside swaggers.","title":"api_group"},"base_path":{"type":"string","description":"x-required\nx-example: \"/v1\"\nx-displayName: \"Base Path\"\nPrefix of the request path.\nFor example: /v1","title":"base path"},"client_matcher":{"$ref":"#/components/schemas/policyClientMatcher"},"metadata":{"$ref":"#/components/schemas/schemaMessageMetaType"},"request_matcher":{"$ref":"#/components/schemas/policyRequestMatcher"},"specific_domain":{"type":"string","description":"x-displayName: \"Specific Domain\"\nx-example: \"api.example.com\"\nThe rule will apply for a specific domain.\nFor example: api.example.com","title":"domain"}}},"common_wafAPIGroups":{"type":"object","title":"api groups","x-displayname":"API Groups","x-ves-proto-message":"ves.io.schema.views.common_waf.APIGroups","properties":{"api_groups":{"type":"array","description":"\n\nRequired: YES\n\nValidation Rules:\n ves.io.schema.rules.message.required: true\n ves.io.schema.rules.repeated.items.string.not_empty: true\n ves.io.schema.rules.repeated.max_items: 32\n ves.io.schema.rules.repeated.unique: true\n","title":"api group","maxItems":32,"items":{"type":"string"},"x-displayname":"API Groups","x-ves-required":"true","x-ves-validation-rules":{"ves.io.schema.rules.message.required":"true","ves.io.schema.rules.repeated.items.string.not_empty":"true","ves.io.schema.rules.repeated.max_items":"32","ves.io.schema.rules.repeated.unique":"true"}}}},"common_wafAPIProtectionRuleAction":{"type":"object","description":"x-displayName: \"API Protection Rule Action\"\nThe action to take if the input request matches the rule.","title":"API Protection Rule Action","properties":{"allow":{"$ref":"#/components/schemas/ioschemaEmpty"},"deny":{"$ref":"#/components/schemas/ioschemaEmpty"}}},"common_wafAPIProtectionRules":{"type":"object","description":"x-displayName: \"API Protection Rules\"\nAPI Protection Rules","title":"API Protection Rules","properties":{"api_endpoint_rules":{"type":"array","description":"x-displayName: \"API Endpoints\"\nThis category defines specific rules per API endpoints.\nIf request matches any of these rules, skipping second category rules.","title":"api_endpoint_rules","items":{"$ref":"#/components/schemas/common_wafAPIEndpointProtectionRule"}},"api_groups_rules":{"type":"array","description":"x-displayName: \"Server URLs and API Groups\"\nThis category includes rules per API group or Server URL.\nFor API groups, refer to API Definition which includes API groups derived from uploaded swaggers.","title":"api_groups_rules","items":{"$ref":"#/components/schemas/common_wafAPIGroupProtectionRule"}}}},"common_wafAPIRateLimit":{"type":"object","title":"APIRateLimit","x-displayname":"APIRateLimit","x-ves-oneof-field-ip_allowed_list_choice":"[\"bypass_rate_limiting_rules\",\"custom_ip_allowed_list\",\"ip_allowed_list\",\"no_ip_allowed_list\"]","x-ves-proto-message":"ves.io.schema.views.common_waf.APIRateLimit","properties":{"api_endpoint_rules":{"type":"array","description":" Sets of rules for a specific endpoints.\n Order is matter as it uses first match policy.\n For creating rule that contain a whole domain or group of endpoints, please use the server URL rules above.\n\nValidation Rules:\n ves.io.schema.rules.repeated.max_items: 20\n","title":"api_endpoint_policy","maxItems":20,"items":{"$ref":"#/components/schemas/common_wafApiEndpointRule"},"x-displayname":"API Endpoints","x-ves-validation-rules":{"ves.io.schema.rules.repeated.max_items":"20"}},"bypass_rate_limiting_rules":{"$ref":"#/components/schemas/common_wafBypassRateLimitingRules"},"custom_ip_allowed_list":{"$ref":"#/components/schemas/common_wafCustomIpAllowedList"},"ip_allowed_list":{"$ref":"#/components/schemas/viewsPrefixStringListType"},"no_ip_allowed_list":{"$ref":"#/components/schemas/ioschemaEmpty"},"server_url_rules":{"type":"array","description":" Set of rules for entire domain or base path that contain multiple endpoints.\n Order is matter as it uses first match policy.\n For matching also specific endpoints you can use the API endpoint rules set bellow.\n\nValidation Rules:\n ves.io.schema.rules.repeated.max_items: 20\n","title":"server_url_policy","maxItems":20,"items":{"$ref":"#/components/schemas/common_wafServerUrlRule"},"x-displayname":"Server URLs","x-ves-validation-rules":{"ves.io.schema.rules.repeated.max_items":"20"}}}},"common_wafAPISpecificationSettings":{"type":"object","description":"Settings for api specification (api definition, OpenAPI validation, etc.)","title":"APISpecificationSettings","x-displayname":"API Specification and Validation","x-ves-oneof-field-validation_target_choice":"[\"validation_all_spec_endpoints\",\"validation_custom_list\",\"validation_disabled\"]","x-ves-proto-message":"ves.io.schema.views.common_waf.APISpecificationSettings","properties":{"api_definition":{"$ref":"#/components/schemas/schemaviewsObjectRefType"},"validation_all_spec_endpoints":{"$ref":"#/components/schemas/common_wafOpenApiValidationAllSpecEndpointsSettings"},"validation_custom_list":{"$ref":"#/components/schemas/common_wafValidateApiBySpecRule"},"validation_disabled":{"$ref":"#/components/schemas/ioschemaEmpty"}}},"common_wafApiCodeRepos":{"type":"object","description":"Select which API repositories represent the LB applications","title":"API Code Repositories","x-displayname":"API Code Repositories","x-ves-proto-message":"ves.io.schema.views.common_waf.ApiCodeRepos","properties":{"api_code_repo":{"type":"array","description":" Code repository which contain API endpoints\n\nRequired: YES\n\nValidation Rules:\n ves.io.schema.rules.message.required: true\n ves.io.schema.rules.string.max_len: 256\n","title":"API Code Repository","items":{"type":"string","maxLength":256},"x-displayname":"API Code Repository","x-ves-required":"true","x-ves-validation-rules":{"ves.io.schema.rules.message.required":"true","ves.io.schema.rules.string.max_len":"256"}}}},"common_wafApiCrawler":{"type":"object","description":"Api Crawler message","title":"API Crawling","x-displayname":"API Crawling","x-ves-oneof-field-api_crawler":"[\"api_crawler_config\",\"disable_api_crawler\"]","x-ves-proto-message":"ves.io.schema.views.common_waf.ApiCrawler","properties":{"api_crawler_config":{"$ref":"#/components/schemas/common_wafApiCrawlerConfiguration"},"disable_api_crawler":{"$ref":"#/components/schemas/ioschemaEmpty"}}},"common_wafApiCrawlerConfiguration":{"type":"object","title":"Crawler Domains Configuration","x-displayname":"Crawler Configure","x-ves-proto-message":"ves.io.schema.views.common_waf.ApiCrawlerConfiguration","properties":{"domains":{"type":"array","description":" Enter domains and their credentials to allow authenticated API crawling. You can only include domains you own that are associated with this Load Balancer.\n\nRequired: YES\n\nValidation Rules:\n ves.io.schema.rules.message.required: true\n ves.io.schema.rules.repeated.max_items: 32\n","title":"Configured API Domains","maxItems":32,"items":{"$ref":"#/components/schemas/viewscommon_wafDomainConfiguration"},"x-displayname":"Domains to Crawl","x-ves-required":"true","x-ves-validation-rules":{"ves.io.schema.rules.message.required":"true","ves.io.schema.rules.repeated.max_items":"32"}}}},"common_wafApiDiscoveryAdvancedSettings":{"type":"object","description":"API Discovery Advanced settings","title":"ApiDiscoveryAdvancedSettings","x-displayname":"API Discovery Advanced Settings","x-ves-proto-message":"ves.io.schema.views.common_waf.ApiDiscoveryAdvancedSettings","properties":{"api_discovery_ref":{"$ref":"#/components/schemas/schemaviewsObjectRefType"}}},"common_wafApiDiscoveryFromCodeScan":{"type":"object","description":"x-required","title":"API Discovery Code Scan","x-displayname":"Select Code Base and Repositories","x-ves-proto-message":"ves.io.schema.views.common_waf.ApiDiscoveryFromCodeScan","properties":{"code_base_integrations":{"type":"array","description":"\n\nRequired: YES\n\nValidation Rules:\n ves.io.schema.rules.message.required: true\n ves.io.schema.rules.repeated.max_items: 5\n ves.io.schema.rules.repeated.unique: true\n","title":"Code Base Integrations","maxItems":5,"items":{"$ref":"#/components/schemas/common_wafCodeBaseIntegrationSelection"},"x-displayname":"Select Code Base Integrations","x-ves-required":"true","x-ves-validation-rules":{"ves.io.schema.rules.message.required":"true","ves.io.schema.rules.repeated.max_items":"5","ves.io.schema.rules.repeated.unique":"true"}}}},"common_wafApiDiscoverySetting":{"type":"object","description":"Specifies the settings used for API discovery","title":"API Discovery Setting","x-displayname":"API Discovery Setting","x-ves-displayorder":"1,6,5","x-ves-oneof-field-api_discovery_settings_choice":"[\"custom_api_auth_discovery\",\"default_api_auth_discovery\"]","x-ves-oneof-field-learn_from_redirect_traffic":"[\"disable_learn_from_redirect_traffic\",\"enable_learn_from_redirect_traffic\"]","x-ves-proto-message":"ves.io.schema.views.common_waf.ApiDiscoverySetting","properties":{"api_crawler":{"$ref":"#/components/schemas/common_wafApiCrawler"},"api_discovery_from_code_scan":{"$ref":"#/components/schemas/common_wafApiDiscoveryFromCodeScan"},"custom_api_auth_discovery":{"$ref":"#/components/schemas/common_wafApiDiscoveryAdvancedSettings"},"default_api_auth_discovery":{"$ref":"#/components/schemas/ioschemaEmpty"},"disable_learn_from_redirect_traffic":{"$ref":"#/components/schemas/ioschemaEmpty"},"discovered_api_settings":{"$ref":"#/components/schemas/app_typeDiscoveredAPISettings"},"enable_learn_from_redirect_traffic":{"$ref":"#/components/schemas/ioschemaEmpty"}}},"common_wafApiEndpointDetails":{"type":"object","description":"This defines api endpoint","title":"ApiEndpointDetails","x-displayname":"API Endpoint","x-ves-proto-message":"ves.io.schema.views.common_waf.ApiEndpointDetails","properties":{"methods":{"type":"array","description":" Methods to be matched\n\nExample: ` \"GET\"`\n\nValidation Rules:\n ves.io.schema.rules.repeated.items.enum.defined_only: true\n ves.io.schema.rules.repeated.max_items: 16\n ves.io.schema.rules.repeated.unique: true\n","title":"Methods","maxItems":16,"items":{"$ref":"#/components/schemas/schemaHttpMethod"},"x-displayname":"Methods","x-ves-example":"GET","x-ves-validation-rules":{"ves.io.schema.rules.repeated.items.enum.defined_only":"true","ves.io.schema.rules.repeated.max_items":"16","ves.io.schema.rules.repeated.unique":"true"}},"path":{"type":"string","description":" Path to be matched\n\nExample: ` \"/api/v1/login\"`\n\nRequired: YES\n\nValidation Rules:\n ves.io.schema.rules.message.required: true\n ves.io.schema.rules.string.max_len: 1024\n ves.io.schema.rules.string.templated_http_path: true\n","title":"Path","maxLength":1024,"x-displayname":"Path","x-ves-example":"/api/v1/login","x-ves-required":"true","x-ves-validation-rules":{"ves.io.schema.rules.message.required":"true","ves.io.schema.rules.string.max_len":"1024","ves.io.schema.rules.string.templated_http_path":"true"}}}},"common_wafApiEndpointRule":{"type":"object","title":"ApiEndpointRule","x-displayname":"ApiEndpointRule","x-ves-oneof-field-domain_choice":"[\"any_domain\",\"specific_domain\"]","x-ves-oneof-field-rate_limiter_choice":"[\"inline_rate_limiter\",\"ref_rate_limiter\"]","x-ves-proto-message":"ves.io.schema.views.common_waf.ApiEndpointRule","properties":{"any_domain":{"$ref":"#/components/schemas/ioschemaEmpty"},"api_endpoint_method":{"$ref":"#/components/schemas/policyHttpMethodMatcherType"},"api_endpoint_path":{"type":"string","description":" The endpoint (path) of the request.\n\nExample: ` \"value\"`\n\nRequired: YES\n\nValidation Rules:\n ves.io.schema.rules.message.required: true\n ves.io.schema.rules.string.max_len: 1024\n ves.io.schema.rules.string.templated_http_path: true\n","title":"api endpoint path","maxLength":1024,"x-displayname":"API Endpoint","x-ves-example":"value","x-ves-required":"true","x-ves-validation-rules":{"ves.io.schema.rules.message.required":"true","ves.io.schema.rules.string.max_len":"1024","ves.io.schema.rules.string.templated_http_path":"true"}},"client_matcher":{"$ref":"#/components/schemas/policyClientMatcher"},"inline_rate_limiter":{"$ref":"#/components/schemas/common_wafInlineRateLimiter"},"ref_rate_limiter":{"$ref":"#/components/schemas/schemaviewsObjectRefType"},"request_matcher":{"$ref":"#/components/schemas/policyRequestMatcher"},"specific_domain":{"type":"string","description":"Exclusive with [any_domain]\n The rule will apply for a specific domain.\n\nValidation Rules:\n ves.io.schema.rules.string.max_len: 128\n ves.io.schema.rules.string.vh_domain: true\n","title":"domain","maxLength":128,"x-displayname":"Specific Domain","x-ves-validation-rules":{"ves.io.schema.rules.string.max_len":"128","ves.io.schema.rules.string.vh_domain":"true"}}}},"common_wafAudiences":{"type":"object","title":"audiences","x-displayname":"Audiences","x-ves-proto-message":"ves.io.schema.views.common_waf.Audiences","properties":{"audiences":{"type":"array","description":"\nExample: ` \"value\"`\n\nRequired: YES\n\nValidation Rules:\n ves.io.schema.rules.message.required: true\n ves.io.schema.rules.repeated.max_items: 16\n ves.io.schema.rules.repeated.min_items: 1\n ves.io.schema.rules.repeated.unique: true\n","title":"audiences","minItems":1,"maxItems":16,"items":{"type":"string"},"x-displayname":"Values","x-ves-example":"value","x-ves-required":"true","x-ves-validation-rules":{"ves.io.schema.rules.message.required":"true","ves.io.schema.rules.repeated.max_items":"16","ves.io.schema.rules.repeated.min_items":"1","ves.io.schema.rules.repeated.unique":"true"}}}},"common_wafBasePathsType":{"type":"object","title":"base_paths","x-displayname":"Base Paths","x-ves-proto-message":"ves.io.schema.views.common_waf.BasePathsType","properties":{"base_paths":{"type":"array","description":"\nExample: ` \"/basepath\"`\n\nRequired: YES\n\nValidation Rules:\n ves.io.schema.rules.message.required: true\n ves.io.schema.rules.repeated.items.string.http_path: true\n ves.io.schema.rules.repeated.items.string.not_empty: true\n ves.io.schema.rules.repeated.max_items: 16\n ves.io.schema.rules.repeated.unique: true\n","title":"base_paths","maxItems":16,"items":{"type":"string"},"x-displayname":"Prefix Values","x-ves-example":"/basepath","x-ves-required":"true","x-ves-validation-rules":{"ves.io.schema.rules.message.required":"true","ves.io.schema.rules.repeated.items.string.http_path":"true","ves.io.schema.rules.repeated.items.string.not_empty":"true","ves.io.schema.rules.repeated.max_items":"16","ves.io.schema.rules.repeated.unique":"true"}}}},"common_wafBypassRateLimitingRule":{"type":"object","title":"BypassRateLimitingRule","x-displayname":"Bypass Rate Limiting Rule","x-ves-oneof-field-destination_type":"[\"any_url\",\"api_endpoint\",\"api_groups\",\"base_path\"]","x-ves-oneof-field-domain_choice":"[\"any_domain\",\"specific_domain\"]","x-ves-proto-message":"ves.io.schema.views.common_waf.BypassRateLimitingRule","properties":{"any_domain":{"$ref":"#/components/schemas/ioschemaEmpty"},"any_url":{"$ref":"#/components/schemas/ioschemaEmpty"},"api_endpoint":{"$ref":"#/components/schemas/common_wafApiEndpointDetails"},"api_groups":{"$ref":"#/components/schemas/common_wafAPIGroups"},"base_path":{"type":"string","description":"Exclusive with [any_url api_endpoint api_groups]\n The base path which this validation applies to\n\nExample: ` \"/api/v1\"`\n\nValidation Rules:\n ves.io.schema.rules.string.http_path: true\n ves.io.schema.rules.string.max_len: 128\n","title":"base path","maxLength":128,"x-displayname":"Base Path","x-ves-example":"/api/v1","x-ves-validation-rules":{"ves.io.schema.rules.string.http_path":"true","ves.io.schema.rules.string.max_len":"128"}},"client_matcher":{"$ref":"#/components/schemas/policyClientMatcher"},"request_matcher":{"$ref":"#/components/schemas/policyRequestMatcher"},"specific_domain":{"type":"string","description":"Exclusive with [any_domain]\n The rule will apply for a specific domain.\n For example: api.example.com\n\nExample: ` \"api.example.com\"`\n\nValidation Rules:\n ves.io.schema.rules.string.max_len: 128\n ves.io.schema.rules.string.vh_domain: true\n","title":"domain","maxLength":128,"x-displayname":"Specific Domain","x-ves-example":"api.example.com","x-ves-validation-rules":{"ves.io.schema.rules.string.max_len":"128","ves.io.schema.rules.string.vh_domain":"true"}}}},"common_wafBypassRateLimitingRules":{"type":"object","description":"This category defines rules per URL or API group. If request matches any of these rules, skip Rate Limiting.","title":"bypass_rate_limiting_policy","x-displayname":"Bypass Rate Limiting","x-ves-proto-message":"ves.io.schema.views.common_waf.BypassRateLimitingRules","properties":{"bypass_rate_limiting_rules":{"type":"array","description":" This category defines rules per URL or API group. If request matches any of these rules, skip Rate Limiting.\n\nValidation Rules:\n ves.io.schema.rules.repeated.max_items: 20\n","title":"bypass_rate_limiting_policy","maxItems":20,"items":{"$ref":"#/components/schemas/common_wafBypassRateLimitingRule"},"x-displayname":"Bypass Rate Limiting","x-ves-validation-rules":{"ves.io.schema.rules.repeated.max_items":"20"}}}},"common_wafChallengeRule":{"type":"object","description":"Challenge rule","title":"Challenge Rule","x-displayname":"Challenge Rule","x-ves-proto-message":"ves.io.schema.views.common_waf.ChallengeRule","properties":{"metadata":{"$ref":"#/components/schemas/schemaMessageMetaType"},"spec":{"$ref":"#/components/schemas/service_policy_ruleChallengeRuleSpec"}}},"common_wafChallengeRuleList":{"type":"object","description":"List of challenge rules to be used in policy based challenge","title":"Challenge Rule List","x-displayname":"Challenge Rule List","x-ves-proto-message":"ves.io.schema.views.common_waf.ChallengeRuleList","properties":{"rules":{"type":"array","description":" Rules that specify the match conditions and challenge type to be launched.\n When a challenge type is selected to be always enabled,\n these rules can be used to disable challenge or launch a different challenge for requests that match the specified conditions\n\nValidation Rules:\n ves.io.schema.rules.repeated.max_items: 64\n ves.io.schema.rules.repeated.unique_metadata_name: true\n","title":"Rules","maxItems":64,"items":{"$ref":"#/components/schemas/common_wafChallengeRule"},"x-displayname":"Rules","x-ves-validation-rules":{"ves.io.schema.rules.repeated.max_items":"64","ves.io.schema.rules.repeated.unique_metadata_name":"true"}}}},"common_wafClientSrcRuleAction":{"type":"string","description":"Action that should be taken when client identifier matches the rule\n","title":"action","enum":["SKIP_PROCESSING_WAF","SKIP_PROCESSING_BOT","SKIP_PROCESSING_MUM","SKIP_PROCESSING_IP_REPUTATION","SKIP_PROCESSING_API_PROTECTION","SKIP_PROCESSING_OAS_VALIDATION","SKIP_PROCESSING_DDOS_PROTECTION","SKIP_PROCESSING_THREAT_MESH","SKIP_PROCESSING_MALWARE_PROTECTION"],"default":"SKIP_PROCESSING_WAF","x-displayname":"Action","x-ves-proto-enum":"ves.io.schema.views.common_waf.ClientSrcRuleAction"},"common_wafCodeBaseIntegrationSelection":{"type":"object","title":"Code Base Integration","x-displayname":"Code Base Integration","x-ves-oneof-field-api_repos_choice":"[\"all_repos\",\"selected_repos\"]","x-ves-proto-message":"ves.io.schema.views.common_waf.CodeBaseIntegrationSelection","properties":{"all_repos":{"$ref":"#/components/schemas/ioschemaEmpty"},"code_base_integration":{"$ref":"#/components/schemas/schemaviewsObjectRefType"},"selected_repos":{"$ref":"#/components/schemas/common_wafApiCodeRepos"}}},"common_wafCustomFallThroughMode":{"type":"object","description":"Define the fall through settings","title":"Custom Fall Through Mode","x-displayname":"Custom Fall Through Mode","x-ves-proto-message":"ves.io.schema.views.common_waf.CustomFallThroughMode","properties":{"open_api_validation_rules":{"type":"array","description":"\n\nRequired: YES\n\nValidation Rules:\n ves.io.schema.rules.message.required: true\n ves.io.schema.rules.repeated.max_items: 15\n ves.io.schema.rules.repeated.unique_metadata_name: true\n","title":"Custom Fall Through Rule List","maxItems":15,"items":{"$ref":"#/components/schemas/common_wafFallThroughRule"},"x-displayname":"Custom Fall Through Rule List","x-ves-required":"true","x-ves-validation-rules":{"ves.io.schema.rules.message.required":"true","ves.io.schema.rules.repeated.max_items":"15","ves.io.schema.rules.repeated.unique_metadata_name":"true"}}}},"common_wafCustomIpAllowedList":{"type":"object","description":"IP Allowed list using existing ip_prefix_set objects","title":"Custom IP Allowed List","x-displayname":"Custom IP Allowed List","x-ves-proto-message":"ves.io.schema.views.common_waf.CustomIpAllowedList","properties":{"rate_limiter_allowed_prefixes":{"type":"array","description":" References to ip_prefix_set objects.\n Requests from source IP addresses that are covered by one of the allowed IP Prefixes are not subjected to rate limiting.\n\nRequired: YES\n\nValidation Rules:\n ves.io.schema.rules.message.required: true\n ves.io.schema.rules.repeated.max_items: 4\n ves.io.schema.rules.repeated.min_items: 1\n","title":"rate_limiter_allowed_prefixes","minItems":1,"maxItems":4,"items":{"$ref":"#/components/schemas/schemaviewsObjectRefType"},"x-displayname":"List of IP Prefix Sets","x-ves-required":"true","x-ves-validation-rules":{"ves.io.schema.rules.message.required":"true","ves.io.schema.rules.repeated.max_items":"4","ves.io.schema.rules.repeated.min_items":"1"}}}},"common_wafEnableChallenge":{"type":"object","description":"Configure auto mitigation i.e risk based challenges for malicious users","title":"enable challenge","x-displayname":"Enable Malicious User Challenge","x-ves-oneof-field-captcha_challenge_parameters_choice":"[\"captcha_challenge_parameters\",\"default_captcha_challenge_parameters\"]","x-ves-oneof-field-js_challenge_parameters_choice":"[\"default_js_challenge_parameters\",\"js_challenge_parameters\"]","x-ves-oneof-field-malicious_user_mitigation_choice":"[\"default_mitigation_settings\",\"malicious_user_mitigation\"]","x-ves-proto-message":"ves.io.schema.views.common_waf.EnableChallenge","properties":{"captcha_challenge_parameters":{"$ref":"#/components/schemas/virtual_hostCaptchaChallengeType"},"default_captcha_challenge_parameters":{"$ref":"#/components/schemas/ioschemaEmpty"},"default_js_challenge_parameters":{"$ref":"#/components/schemas/ioschemaEmpty"},"default_mitigation_settings":{"$ref":"#/components/schemas/ioschemaEmpty"},"js_challenge_parameters":{"$ref":"#/components/schemas/virtual_hostJavascriptChallengeType"},"malicious_user_mitigation":{"$ref":"#/components/schemas/schemaviewsObjectRefType"}}},"common_wafFallThroughRule":{"type":"object","description":"Fall Through Rule for a specific endpoint, base-path, or API group","title":"Fall Through Rule","x-displayname":"Fall Through Rule","x-ves-oneof-field-action_choice":"[\"action_block\",\"action_report\",\"action_skip\"]","x-ves-oneof-field-condition_type_choice":"[\"api_endpoint\",\"api_group\",\"base_path\"]","x-ves-proto-message":"ves.io.schema.views.common_waf.FallThroughRule","properties":{"action_block":{"$ref":"#/components/schemas/ioschemaEmpty"},"action_report":{"$ref":"#/components/schemas/ioschemaEmpty"},"action_skip":{"$ref":"#/components/schemas/ioschemaEmpty"},"api_endpoint":{"$ref":"#/components/schemas/common_wafApiEndpointDetails"},"api_group":{"type":"string","description":"Exclusive with [api_endpoint base_path]\n The API group which this validation applies to\n\nExample: ` \"oas-all-operations\"`\n\nValidation Rules:\n ves.io.schema.rules.string.max_len: 128\n","title":"api_group","maxLength":128,"x-displayname":"API Group","x-ves-example":"oas-all-operations","x-ves-validation-rules":{"ves.io.schema.rules.string.max_len":"128"}},"base_path":{"type":"string","description":"Exclusive with [api_endpoint api_group]\n The base path which this validation applies to\n\nExample: ` \"/api/v1\"`\n\nValidation Rules:\n ves.io.schema.rules.string.http_path: true\n ves.io.schema.rules.string.max_len: 128\n","title":"base path","maxLength":128,"x-displayname":"Base Path","x-ves-example":"/api/v1","x-ves-validation-rules":{"ves.io.schema.rules.string.http_path":"true","ves.io.schema.rules.string.max_len":"128"}},"metadata":{"$ref":"#/components/schemas/schemaMessageMetaType"}}},"common_wafHttpHeaderMatcherList":{"type":"object","description":"Request header name and value pairs","title":"HTTP Header","x-displayname":"HTTP Header","x-ves-proto-message":"ves.io.schema.views.common_waf.HttpHeaderMatcherList","properties":{"headers":{"type":"array","description":" List of HTTP header name and value pairs\n\nRequired: YES\n\nValidation Rules:\n ves.io.schema.rules.message.required: true\n ves.io.schema.rules.repeated.max_items: 16\n","title":"headers","maxItems":16,"items":{"$ref":"#/components/schemas/ioschemaHeaderMatcherType"},"x-displayname":"HTTP Headers","x-ves-required":"true","x-ves-validation-rules":{"ves.io.schema.rules.message.required":"true","ves.io.schema.rules.repeated.max_items":"16"}}}},"common_wafInlineRateLimiter":{"type":"object","title":"InlineRateLimiter","x-displayname":"InlineRateLimiter","x-ves-oneof-field-count_by_choice":"[\"ref_user_id\",\"use_http_lb_user_id\"]","x-ves-proto-message":"ves.io.schema.views.common_waf.InlineRateLimiter","properties":{"ref_user_id":{"$ref":"#/components/schemas/schemaviewsObjectRefType"},"threshold":{"type":"integer","description":" The total number of allowed requests for 1 unit (e.g. SECOND/MINUTE/HOUR etc.) of the specified period.\n\nExample: ` \"1\"`\n\nRequired: YES\n\nValidation Rules:\n ves.io.schema.rules.message.required: true\n ves.io.schema.rules.uint32.gt: 0\n ves.io.schema.rules.uint32.lte: 8192\n","title":"threshold","format":"int64","x-displayname":"Threshold","x-ves-example":"1","x-ves-required":"true","x-ves-validation-rules":{"ves.io.schema.rules.message.required":"true","ves.io.schema.rules.uint32.gt":"0","ves.io.schema.rules.uint32.lte":"8192"}},"unit":{"$ref":"#/components/schemas/rate_limiterRateLimitPeriodUnit"},"use_http_lb_user_id":{"$ref":"#/components/schemas/ioschemaEmpty"}}},"common_wafJWKS":{"type":"object","description":"The JSON Web Key Set (JWKS) is a set of keys used to verify JSON Web Token (JWT) issued by the Authorization Server. See RFC 7517 for more details.","title":"jwks","x-displayname":"JSON Web Key Set (JWKS)","x-ves-proto-message":"ves.io.schema.views.common_waf.JWKS","properties":{"cleartext":{"type":"string","description":" The JSON Web Key Set (JWKS) is a set of keys used to verify JSON Web Token (JWT) issued by the Authorization Server. See RFC 7517 for more details.","title":"cleartext","x-displayname":"JSON Web Key Set (JWKS)"}}},"common_wafJWTValidation":{"type":"object","description":"JWT Validation stops JWT replay attacks and JWT tampering by cryptographically verifying incoming\nJWTs before they are passed to your API origin. JWT Validation will also stop requests with expired\ntokens or tokens that are not yet valid.","title":"JWT Validation","x-displayname":"JWT Validation","x-ves-oneof-field-jwks_configuration":"[\"jwks_config\"]","x-ves-proto-message":"ves.io.schema.views.common_waf.JWTValidation","properties":{"action":{"$ref":"#/components/schemas/schemaAction"},"jwks_config":{"$ref":"#/components/schemas/common_wafJWKS"},"mandatory_claims":{"$ref":"#/components/schemas/common_wafMandatoryClaims"},"reserved_claims":{"$ref":"#/components/schemas/common_wafReservedClaims"},"target":{"$ref":"#/components/schemas/common_wafTarget"},"token_location":{"$ref":"#/components/schemas/common_wafTokenLocation"}}},"common_wafMandatoryClaims":{"type":"object","description":"Configurable Validation of mandatory Claims.","title":"MandatoryClaims","x-displayname":"Mandatory Claims","x-ves-proto-message":"ves.io.schema.views.common_waf.MandatoryClaims","properties":{"claim_names":{"type":"array","description":"\n\nValidation Rules:\n ves.io.schema.rules.repeated.max_items: 16\n ves.io.schema.rules.repeated.unique: true\n","title":"Claim names","maxItems":16,"items":{"type":"string"},"x-displayname":"Claim Names","x-ves-validation-rules":{"ves.io.schema.rules.repeated.max_items":"16","ves.io.schema.rules.repeated.unique":"true"}}}},"common_wafOpenApiFallThroughMode":{"type":"object","description":"x-required\nDetermine what to do with unprotected endpoints (not in the OpenAPI specification file (a.k.a. swagger) or doesn't have a specific rule in custom rules)","title":"Fall Through Mode","x-displayname":"Fall Through Mode","x-ves-oneof-field-fall_through_mode_choice":"[\"fall_through_mode_allow\",\"fall_through_mode_custom\"]","x-ves-proto-message":"ves.io.schema.views.common_waf.OpenApiFallThroughMode","properties":{"fall_through_mode_allow":{"$ref":"#/components/schemas/ioschemaEmpty"},"fall_through_mode_custom":{"$ref":"#/components/schemas/common_wafCustomFallThroughMode"}}},"common_wafOpenApiValidationAllSpecEndpointsSettings":{"type":"object","description":"Settings for API Inventory validation","title":"OpenAPI Validation API Inventory Settings","x-displayname":"API Inventory","x-ves-oneof-field-oversized_body_choice":"[]","x-ves-proto-message":"ves.io.schema.views.common_waf.OpenApiValidationAllSpecEndpointsSettings","properties":{"fall_through_mode":{"$ref":"#/components/schemas/common_wafOpenApiFallThroughMode"},"settings":{"$ref":"#/components/schemas/common_wafOpenApiValidationCommonSettings"},"validation_mode":{"$ref":"#/components/schemas/common_wafOpenApiValidationMode"}}},"common_wafOpenApiValidationCommonSettings":{"type":"object","description":"OpenAPI specification validation settings relevant for \"API Inventory\" enforcement and for \"Custom list\" enforcement","title":"OpenAPI specification validation common settings","x-displayname":"Common Settings","x-ves-oneof-field-fail_configuration":"[]","x-ves-oneof-field-oversized_body_choice":"[\"oversized_body_fail_validation\",\"oversized_body_skip_validation\"]","x-ves-oneof-field-property_validation_settings_choice":"[\"property_validation_settings_custom\",\"property_validation_settings_default\"]","x-ves-proto-message":"ves.io.schema.views.common_waf.OpenApiValidationCommonSettings","properties":{"oversized_body_fail_validation":{"$ref":"#/components/schemas/ioschemaEmpty"},"oversized_body_skip_validation":{"$ref":"#/components/schemas/ioschemaEmpty"},"property_validation_settings_custom":{"$ref":"#/components/schemas/common_wafValidationPropertySetting"},"property_validation_settings_default":{"$ref":"#/components/schemas/ioschemaEmpty"}}},"common_wafOpenApiValidationMode":{"type":"object","description":"x-required\nValidation mode of OpenAPI specification.\n When a validation mismatch occurs on a request to one of the endpoints listed on the OpenAPI specification file (a.k.a. swagger)","title":"Validation Mode","x-displayname":"Validation Mode","x-ves-oneof-field-response_validation_mode_choice":"[\"response_validation_mode_active\",\"skip_response_validation\"]","x-ves-oneof-field-validation_mode_choice":"[\"skip_validation\",\"validation_mode_active\"]","x-ves-proto-message":"ves.io.schema.views.common_waf.OpenApiValidationMode","properties":{"response_validation_mode_active":{"$ref":"#/components/schemas/common_wafOpenApiValidationModeActiveResponse"},"skip_response_validation":{"$ref":"#/components/schemas/ioschemaEmpty"},"skip_validation":{"$ref":"#/components/schemas/ioschemaEmpty"},"validation_mode_active":{"$ref":"#/components/schemas/common_wafOpenApiValidationModeActive"}}},"common_wafOpenApiValidationModeActive":{"type":"object","description":"Validation mode properties of request","title":"Open API Validation Mode Active For Request","x-displayname":"Open API Validation Mode Active","x-ves-oneof-field-validation_enforcement_type":"[\"enforcement_block\",\"enforcement_report\"]","x-ves-proto-message":"ves.io.schema.views.common_waf.OpenApiValidationModeActive","properties":{"enforcement_block":{"$ref":"#/components/schemas/ioschemaEmpty"},"enforcement_report":{"$ref":"#/components/schemas/ioschemaEmpty"},"request_validation_properties":{"type":"array","description":" List of properties of the request to validate according to the OpenAPI specification file (a.k.a. swagger)\n\nRequired: YES\n\nValidation Rules:\n ves.io.schema.rules.message.required: true\n ves.io.schema.rules.repeated.items.enum.defined_only: true\n ves.io.schema.rules.repeated.items.enum.not_in: [7]\n ves.io.schema.rules.repeated.min_items: 1\n ves.io.schema.rules.repeated.unique: true\n","title":"Request Validation Properties","minItems":1,"items":{"$ref":"#/components/schemas/schemaOpenApiValidationProperties"},"x-displayname":"Request Validation Properties","x-ves-required":"true","x-ves-validation-rules":{"ves.io.schema.rules.message.required":"true","ves.io.schema.rules.repeated.items.enum.defined_only":"true","ves.io.schema.rules.repeated.items.enum.not_in":"[7]","ves.io.schema.rules.repeated.min_items":"1","ves.io.schema.rules.repeated.unique":"true"}}}},"common_wafOpenApiValidationModeActiveResponse":{"type":"object","description":"Validation mode properties of response","title":"Open API Validation Mode Active For Response","x-displayname":"Open API Validation Mode Active","x-ves-oneof-field-validation_enforcement_type":"[\"enforcement_block\",\"enforcement_report\"]","x-ves-proto-message":"ves.io.schema.views.common_waf.OpenApiValidationModeActiveResponse","properties":{"enforcement_block":{"$ref":"#/components/schemas/ioschemaEmpty"},"enforcement_report":{"$ref":"#/components/schemas/ioschemaEmpty"},"response_validation_properties":{"type":"array","description":" List of properties of the response to validate according to the OpenAPI specification file (a.k.a. swagger)\n\nRequired: YES\n\nValidation Rules:\n ves.io.schema.rules.message.required: true\n ves.io.schema.rules.repeated.items.enum.defined_only: true\n ves.io.schema.rules.repeated.items.enum.in: [2,4,5,7]\n ves.io.schema.rules.repeated.min_items: 1\n ves.io.schema.rules.repeated.unique: true\n","title":"Response Validation Properties","minItems":1,"items":{"$ref":"#/components/schemas/schemaOpenApiValidationProperties"},"x-displayname":"Response Validation Properties","x-ves-required":"true","x-ves-validation-rules":{"ves.io.schema.rules.message.required":"true","ves.io.schema.rules.repeated.items.enum.defined_only":"true","ves.io.schema.rules.repeated.items.enum.in":"[2,4,5,7]","ves.io.schema.rules.repeated.min_items":"1","ves.io.schema.rules.repeated.unique":"true"}}}},"common_wafOpenApiValidationRule":{"type":"object","description":"OpenAPI Validation Rule for a specific endpoint, base-path, or API group","title":"OpenAPI Validation Rule","x-displayname":"OpenAPI Validation Rule","x-ves-oneof-field-condition_type_choice":"[\"api_endpoint\",\"api_group\",\"base_path\"]","x-ves-oneof-field-domain_choice":"[\"any_domain\",\"specific_domain\"]","x-ves-proto-message":"ves.io.schema.views.common_waf.OpenApiValidationRule","properties":{"any_domain":{"$ref":"#/components/schemas/ioschemaEmpty"},"api_endpoint":{"$ref":"#/components/schemas/common_wafApiEndpointDetails"},"api_group":{"type":"string","description":"Exclusive with [api_endpoint base_path]\n The API group which this validation applies to\n\nExample: ` \"oas-all-operations\"`\n\nValidation Rules:\n ves.io.schema.rules.string.max_len: 128\n","title":"api_group","maxLength":128,"x-displayname":"API Group","x-ves-example":"oas-all-operations","x-ves-validation-rules":{"ves.io.schema.rules.string.max_len":"128"}},"base_path":{"type":"string","description":"Exclusive with [api_endpoint api_group]\n The base path which this validation applies to\n\nExample: ` \"/api/v1\"`\n\nValidation Rules:\n ves.io.schema.rules.string.http_path: true\n ves.io.schema.rules.string.max_len: 128\n","title":"base path","maxLength":128,"x-displayname":"Base Path","x-ves-example":"/api/v1","x-ves-validation-rules":{"ves.io.schema.rules.string.http_path":"true","ves.io.schema.rules.string.max_len":"128"}},"metadata":{"$ref":"#/components/schemas/schemaMessageMetaType"},"specific_domain":{"type":"string","description":"Exclusive with [any_domain]\n The rule will apply for a specific domain.\n\nValidation Rules:\n ves.io.schema.rules.string.max_len: 128\n ves.io.schema.rules.string.vh_domain: true\n","title":"domain","maxLength":128,"x-displayname":"Specific Domain","x-ves-validation-rules":{"ves.io.schema.rules.string.max_len":"128","ves.io.schema.rules.string.vh_domain":"true"}},"validation_mode":{"$ref":"#/components/schemas/common_wafOpenApiValidationMode"}}},"common_wafRateLimitConfigType":{"type":"object","title":"RateLimitConfigType","x-displayname":"RateLimitConfigType","x-ves-oneof-field-ip_allowed_list_choice":"[\"custom_ip_allowed_list\",\"ip_allowed_list\",\"no_ip_allowed_list\"]","x-ves-oneof-field-policy_choice":"[\"no_policies\",\"policies\"]","x-ves-proto-message":"ves.io.schema.views.common_waf.RateLimitConfigType","properties":{"custom_ip_allowed_list":{"$ref":"#/components/schemas/common_wafCustomIpAllowedList"},"ip_allowed_list":{"$ref":"#/components/schemas/viewsPrefixStringListType"},"no_ip_allowed_list":{"$ref":"#/components/schemas/ioschemaEmpty"},"no_policies":{"$ref":"#/components/schemas/ioschemaEmpty"},"policies":{"$ref":"#/components/schemas/rate_limiter_policyPolicyList"},"rate_limiter":{"$ref":"#/components/schemas/rate_limiterRateLimitValue"}}},"common_wafReservedClaims":{"type":"object","description":"Configurable Validation of reserved Claims","title":"reserved claims","x-displayname":"Reserved claims configuration","x-ves-oneof-field-audience_validation":"[\"audience\",\"audience_disable\"]","x-ves-oneof-field-issuer_validation":"[\"issuer\",\"issuer_disable\"]","x-ves-oneof-field-validate_period":"[\"validate_period_disable\",\"validate_period_enable\"]","x-ves-proto-message":"ves.io.schema.views.common_waf.ReservedClaims","properties":{"audience":{"$ref":"#/components/schemas/common_wafAudiences"},"audience_disable":{"$ref":"#/components/schemas/ioschemaEmpty"},"issuer":{"type":"string","description":"Exclusive with [issuer_disable]\n","title":"issuer","x-displayname":"Exact Match"},"issuer_disable":{"$ref":"#/components/schemas/ioschemaEmpty"},"validate_period_disable":{"$ref":"#/components/schemas/ioschemaEmpty"},"validate_period_enable":{"$ref":"#/components/schemas/ioschemaEmpty"}}},"common_wafServerUrlRule":{"type":"object","title":"ServerUrlRule","x-displayname":"Server URLs and API Groups","x-ves-oneof-field-domain_choice":"[\"any_domain\",\"specific_domain\"]","x-ves-oneof-field-rate_limiter_choice":"[\"inline_rate_limiter\",\"ref_rate_limiter\"]","x-ves-proto-message":"ves.io.schema.views.common_waf.ServerUrlRule","properties":{"any_domain":{"$ref":"#/components/schemas/ioschemaEmpty"},"api_group":{"type":"string","description":" API groups derived from API Definition swaggers.\n For example oas-all-operations including all paths and methods from the swaggers, oas-base-urls covering all requests under base-paths from the swaggers.\n Custom groups can be created if user tags paths or operations with \"x-volterra-api-group\" extensions inside swaggers.\n\nExample: ` \"oas-all-operations\"`\n\nValidation Rules:\n ves.io.schema.rules.string.max_len: 128\n","title":"api_group","maxLength":128,"x-displayname":"API Group","x-ves-example":"oas-all-operations","x-ves-validation-rules":{"ves.io.schema.rules.string.max_len":"128"}},"base_path":{"type":"string","description":" Prefix of the request path.\n\nExample: ` \"/\"`\n\nRequired: YES\n\nValidation Rules:\n ves.io.schema.rules.message.required: true\n ves.io.schema.rules.string.http_path: true\n ves.io.schema.rules.string.max_len: 128\n","title":"base path","maxLength":128,"x-displayname":"Base Path","x-ves-example":"/","x-ves-required":"true","x-ves-validation-rules":{"ves.io.schema.rules.message.required":"true","ves.io.schema.rules.string.http_path":"true","ves.io.schema.rules.string.max_len":"128"}},"client_matcher":{"$ref":"#/components/schemas/policyClientMatcher"},"inline_rate_limiter":{"$ref":"#/components/schemas/common_wafInlineRateLimiter"},"ref_rate_limiter":{"$ref":"#/components/schemas/schemaviewsObjectRefType"},"request_matcher":{"$ref":"#/components/schemas/policyRequestMatcher"},"specific_domain":{"type":"string","description":"Exclusive with [any_domain]\n The rule will apply for a specific domain.\n\nValidation Rules:\n ves.io.schema.rules.string.max_len: 128\n ves.io.schema.rules.string.vh_domain: true\n","title":"domain","maxLength":128,"x-displayname":"Specific Domain","x-ves-validation-rules":{"ves.io.schema.rules.string.max_len":"128","ves.io.schema.rules.string.vh_domain":"true"}}}},"common_wafServicePolicyList":{"type":"object","description":"List of service policies.","title":"service policy list","x-displayname":"Service Policy List","x-ves-proto-message":"ves.io.schema.views.common_waf.ServicePolicyList","properties":{"policies":{"type":"array","description":" Service Policies is a sequential engine where policies (and rules within the policy) are evaluated one after the other. It's important to define the\n correct order (policies evaluated from top to bottom in the list) for service policies, to get the intended result.\n For each request, its characteristics are evaluated based on the match criteria in each service policy starting at the top. If there is a match in the\n current policy, then the policy takes effect, and no more policies are evaluated. Otherwise, the next policy is evaluated.\n If all policies are evaluated and none match, then the request will be denied by default.\n\nRequired: YES\n\nValidation Rules:\n ves.io.schema.rules.message.required: true\n ves.io.schema.rules.repeated.max_items: 16\n ves.io.schema.rules.repeated.min_items: 1\n ves.io.schema.rules.repeated.unique: true\n","title":"policies","minItems":1,"maxItems":16,"items":{"$ref":"#/components/schemas/schemaviewsObjectRefType"},"x-displayname":"Policies","x-ves-required":"true","x-ves-validation-rules":{"ves.io.schema.rules.message.required":"true","ves.io.schema.rules.repeated.max_items":"16","ves.io.schema.rules.repeated.min_items":"1","ves.io.schema.rules.repeated.unique":"true"}}}},"common_wafSimpleClientSrcRule":{"type":"object","description":"Simple client source rule specifies the sources to be blocked or trusted (skip WAF)","title":"SimpleClientSrcRule","x-displayname":"Client Rule","x-ves-oneof-field-action_choice":"[\"bot_skip_processing\",\"skip_processing\",\"waf_skip_processing\"]","x-ves-oneof-field-client_source_choice":"[\"as_number\",\"http_header\",\"ip_prefix\",\"ipv6_prefix\",\"user_identifier\"]","x-ves-proto-message":"ves.io.schema.views.common_waf.SimpleClientSrcRule","properties":{"actions":{"type":"array","description":" Actions that should be taken when client identifier matches the rule\n\nValidation Rules:\n ves.io.schema.rules.enum.defined_only: true\n ves.io.schema.rules.repeated.max_items: 10\n ves.io.schema.rules.repeated.unique: true\n","title":"actions","maxItems":10,"items":{"$ref":"#/components/schemas/common_wafClientSrcRuleAction"},"x-displayname":"Actions","x-ves-validation-rules":{"ves.io.schema.rules.enum.defined_only":"true","ves.io.schema.rules.repeated.max_items":"10","ves.io.schema.rules.repeated.unique":"true"}},"as_number":{"type":"integer","description":"Exclusive with [http_header ip_prefix ipv6_prefix user_identifier]\n RFC 6793 defined 4-byte AS number\n\nExample: ` \"4683\"`\n\nValidation Rules:\n ves.io.schema.rules.uint32.gte: 1\n ves.io.schema.rules.uint32.lte: 401308\n","title":"as number","format":"int64","x-displayname":"AS Number","x-ves-example":"4683","x-ves-validation-rules":{"ves.io.schema.rules.uint32.gte":"1","ves.io.schema.rules.uint32.lte":"401308"}},"bot_skip_processing":{"$ref":"#/components/schemas/ioschemaEmpty"},"expiration_timestamp":{"type":"string","description":" The expiration_timestamp is the RFC 3339 format timestamp at which the containing rule is considered to be logically expired. The rule continues to exist in\n the configuration but is not applied anymore.\n\nExample: ` \"2019-12-31:44:34.171543432Z\"`\n\nValidation Rules:\n ves.io.schema.rules.timestamp.within.seconds: 31536000\n","title":"expiration timestamp","format":"date-time","x-displayname":"Expiration Timestamp","x-ves-example":"2019-12-31:44:34.171543432Z","x-ves-validation-rules":{"ves.io.schema.rules.timestamp.within.seconds":"31536000"}},"http_header":{"$ref":"#/components/schemas/common_wafHttpHeaderMatcherList"},"ip_prefix":{"type":"string","description":"Exclusive with [as_number http_header ipv6_prefix user_identifier]\n IPv4 prefix string.\n\nExample: ` \"192.168.20.0/24\"`\n\nValidation Rules:\n ves.io.schema.rules.string.ipv4_prefix: true\n","title":"ip prefix","x-displayname":"IPv4 Prefix","x-ves-example":"192.168.20.0/24","x-ves-validation-rules":{"ves.io.schema.rules.string.ipv4_prefix":"true"}},"ipv6_prefix":{"type":"string","description":"Exclusive with [as_number http_header ip_prefix user_identifier]\n IPv6 prefix string.\n\nExample: ` \"2001::1/64\"`\n\nValidation Rules:\n ves.io.schema.rules.string.ipv6_prefix: true\n","title":"ipv6 prefix","x-displayname":"IPv6 Prefix","x-ves-example":"2001::1/64","x-ves-validation-rules":{"ves.io.schema.rules.string.ipv6_prefix":"true"}},"metadata":{"$ref":"#/components/schemas/schemaMessageMetaType"},"skip_processing":{"$ref":"#/components/schemas/ioschemaEmpty"},"user_identifier":{"type":"string","description":"Exclusive with [as_number http_header ip_prefix ipv6_prefix]\n Identify user based on user identifier. User identifier value needs to be copied from security event.\n\nValidation Rules:\n ves.io.schema.rules.string.max_len: 256\n","title":"user identifier","maxLength":256,"x-displayname":"User Identifier","x-ves-validation-rules":{"ves.io.schema.rules.string.max_len":"256"}},"waf_skip_processing":{"$ref":"#/components/schemas/ioschemaEmpty"}}},"common_wafSimpleLogin":{"type":"object","title":"Simple Login","x-displayname":"Simple Login","x-ves-proto-message":"ves.io.schema.views.common_waf.SimpleLogin","properties":{"password":{"$ref":"#/components/schemas/schemaSecretType"},"user":{"type":"string","description":" Enter the username to assign credentials for the selected domain to crawl\n\nValidation Rules:\n ves.io.schema.rules.string.max_len: 64\n","title":"The custom domain user authentication","maxLength":64,"x-displayname":"User","x-ves-validation-rules":{"ves.io.schema.rules.string.max_len":"64"}}}},"common_wafTarget":{"type":"object","description":"Define endpoints for which JWT token validation will be performed","title":"target","x-displayname":"Target","x-ves-oneof-field-target":"[\"all_endpoint\",\"api_groups\",\"base_paths\"]","x-ves-proto-message":"ves.io.schema.views.common_waf.Target","properties":{"all_endpoint":{"$ref":"#/components/schemas/ioschemaEmpty"},"api_groups":{"$ref":"#/components/schemas/common_wafAPIGroups"},"base_paths":{"$ref":"#/components/schemas/common_wafBasePathsType"}}},"common_wafTokenLocation":{"type":"object","description":"Location of JWT in Http request","title":"token location","x-displayname":"Token Location","x-ves-oneof-field-token_location":"[\"bearer_token\"]","x-ves-proto-message":"ves.io.schema.views.common_waf.TokenLocation","properties":{"bearer_token":{"$ref":"#/components/schemas/ioschemaEmpty"}}},"common_wafValidateApiBySpecRule":{"type":"object","description":"Define API groups, base paths, or API endpoints and their OpenAPI validation modes.\n Any other api-endpoint not listed will act according to \"Fall Through Mode\".","title":"ValidateApiBySpecRule","x-displayname":"Custom List","x-ves-oneof-field-oversized_body_choice":"[]","x-ves-proto-message":"ves.io.schema.views.common_waf.ValidateApiBySpecRule","properties":{"fall_through_mode":{"$ref":"#/components/schemas/common_wafOpenApiFallThroughMode"},"open_api_validation_rules":{"type":"array","description":"\n\nRequired: YES\n\nValidation Rules:\n ves.io.schema.rules.message.required: true\n ves.io.schema.rules.repeated.max_items: 15\n ves.io.schema.rules.repeated.unique_metadata_name: true\n","title":"Validation List","maxItems":15,"items":{"$ref":"#/components/schemas/common_wafOpenApiValidationRule"},"x-displayname":"Validation List","x-ves-required":"true","x-ves-validation-rules":{"ves.io.schema.rules.message.required":"true","ves.io.schema.rules.repeated.max_items":"15","ves.io.schema.rules.repeated.unique_metadata_name":"true"}},"settings":{"$ref":"#/components/schemas/common_wafOpenApiValidationCommonSettings"}}},"common_wafValidationPropertySetting":{"type":"object","description":"Custom property validation settings","title":"Validation Property settings","x-displayname":"Validation Property Settings","x-ves-proto-message":"ves.io.schema.views.common_waf.ValidationPropertySetting","properties":{"queryParameters":{"$ref":"#/components/schemas/common_wafValidationSettingForQueryParameters"}}},"common_wafValidationSettingForHeaders":{"type":"object","description":"x-displayName: \"Validation Settings For Headers\"\nCustom settings for headers validation","title":"Validation Settings For Headers","properties":{"allow_additional_headers":{"$ref":"#/components/schemas/ioschemaEmpty"},"disallow_additional_headers":{"$ref":"#/components/schemas/ioschemaEmpty"}}},"common_wafValidationSettingForQueryParameters":{"type":"object","description":"Custom settings for query parameters validation","title":"Validation Settings For Query Parameters","x-displayname":"Validation Settings For Query Parameters","x-ves-oneof-field-additional_parameters_choice":"[\"allow_additional_parameters\",\"disallow_additional_parameters\"]","x-ves-proto-message":"ves.io.schema.views.common_waf.ValidationSettingForQueryParameters","properties":{"allow_additional_parameters":{"$ref":"#/components/schemas/ioschemaEmpty"},"disallow_additional_parameters":{"$ref":"#/components/schemas/ioschemaEmpty"}}},"common_wafWafExclusion":{"type":"object","title":"WAF Exclusion","x-displayname":"WAF Exclusion","x-ves-oneof-field-waf_exclusion_choice":"[\"waf_exclusion_inline_rules\",\"waf_exclusion_policy\"]","x-ves-proto-message":"ves.io.schema.views.common_waf.WafExclusion","properties":{"waf_exclusion_inline_rules":{"$ref":"#/components/schemas/common_wafWafExclusionInlineRules"},"waf_exclusion_policy":{"$ref":"#/components/schemas/schemaviewsObjectRefType"}}},"common_wafWafExclusionInlineRules":{"type":"object","description":"A list of WAF exclusion rules that will be applied inline","title":"WAF Exclusion Inline Rules","x-displayname":"WAF Exclusion Inline Rules","x-ves-proto-message":"ves.io.schema.views.common_waf.WafExclusionInlineRules","properties":{"rules":{"type":"array","description":" An ordered list of WAF Exclusions specific to this Load Balancer.\n\nValidation Rules:\n ves.io.schema.rules.repeated.max_items: 256\n ves.io.schema.rules.repeated.unique_metadata_name: true\n","title":"List of WAF Exclusion Rules","maxItems":256,"items":{"$ref":"#/components/schemas/policySimpleWafExclusionRule"},"x-displayname":"WAF Exclusion Rules","x-ves-validation-rules":{"ves.io.schema.rules.repeated.max_items":"256","ves.io.schema.rules.repeated.unique_metadata_name":"true"}}}},"dos_mitigationDestination":{"type":"object","description":"A reference to the object on which the DoS Attack is going to be mitigated","title":"Destination","x-displayname":"Destination Object","x-ves-proto-message":"ves.io.schema.dos_mitigation.Destination","properties":{"virtual_host":{"type":"array","description":" Virtual Host on which mitigation is to occur\n\nRequired: YES\n\nValidation Rules:\n ves.io.schema.rules.message.required: true\n","title":"virtual_host","items":{"$ref":"#/components/schemas/ioschemaObjectRefType"},"x-displayname":"Virtual Host","x-ves-required":"true","x-ves-validation-rules":{"ves.io.schema.rules.message.required":"true"}}}},"dos_mitigationDoSMitigationRuleInfo":{"type":"object","description":"DoS Mitigation Object to auto-configure rules to block attackers","title":"DoS Mitigation Rule Info","x-displayname":"DoS Mitigation Object","x-ves-proto-message":"ves.io.schema.dos_mitigation.DoSMitigationRuleInfo","properties":{"creation_timestamp":{"type":"string","description":" CreationTimestamp is a timestamp representing the server time when this object was\n created. It is not guaranteed to be set in happens-before order across separate operations.\n Clients may not set this value. It is represented in RFC3339 form and is in UTC.","title":"creation_timestamp","format":"date-time","x-displayname":"Creation Timestamp"},"item":{"$ref":"#/components/schemas/schemados_mitigationGetSpecType"},"name":{"type":"string","description":" This is the name of configuration object. It has to be unique within the namespace.\n It can only be specified during create API and cannot be changed during replace API.\n The value of name has to follow DNS-1035 format.\n\nExample: ` \"acmecorp-web\"`\n\nRequired: YES\n\nValidation Rules:\n ves.io.schema.rules.message.required: true\n","title":"name","x-displayname":"Name","x-ves-example":"acmecorp-web","x-ves-required":"true","x-ves-validation-rules":{"ves.io.schema.rules.message.required":"true"}},"uid":{"type":"string","description":" uid is the unique in time and space value for this object. It is generated by\n the server on successful creation of an object and is not allowed to change on Replace\n API. The value of is taken from uid field of ObjectMetaType, if provided.\n\nExample: ` \"d15f1fad-4d37-48c0-8706-df1824d76d31\"`","title":"uid","x-displayname":"UID","x-ves-example":"d15f1fad-4d37-48c0-8706-df1824d76d31"}}},"http_loadbalancerProxyTypeHttp":{"type":"object","description":"Choice for selecting HTTP proxy","title":"HTTP Choice","x-displayname":"HTTP Choice","x-ves-displayorder":"1,3","x-ves-oneof-field-port_choice":"[\"port\",\"port_ranges\"]","x-ves-proto-message":"ves.io.schema.views.http_loadbalancer.ProxyTypeHttp","properties":{"dns_volterra_managed":{"type":"boolean","description":" DNS records for domains will be managed automatically by F5 Distributed Cloud.\n As a prerequisite, the domain must be delegated to F5 Distributed Cloud using Delegated domain feature\n or a DNS CNAME record should be created in your DNS provider's portal.","title":"Manage DNS Domain","format":"boolean","x-displayname":"Automatically Manage DNS Records"},"port":{"type":"integer","description":"Exclusive with [port_ranges]\n HTTP port to Listen.\n\nExample: ` \"80\"`\n\nValidation Rules:\n ves.io.schema.rules.uint32.lte: 65535\n","title":"HTTP port to listen","format":"int64","x-displayname":"HTTP Listen Port","x-ves-example":"80","x-ves-validation-rules":{"ves.io.schema.rules.uint32.lte":"65535"}},"port_ranges":{"type":"string","description":"Exclusive with [port]\n A string containing a comma separated list of port ranges.\n Each port range consists of a single port or two ports separated by \"-\".\n\nExample: ` \"80,443,8080-8191,9080\"`\n\nValidation Rules:\n ves.io.schema.rules.string.max_len: 512\n ves.io.schema.rules.string.max_ports: 64\n ves.io.schema.rules.string.min_len: 1\n ves.io.schema.rules.string.unique_port_range_list: true\n","title":"Port_ranges","minLength":1,"maxLength":512,"x-displayname":"Port Ranges","x-ves-example":"80,443,8080-8191,9080","x-ves-validation-rules":{"ves.io.schema.rules.string.max_len":"512","ves.io.schema.rules.string.max_ports":"64","ves.io.schema.rules.string.min_len":"1","ves.io.schema.rules.string.unique_port_range_list":"true"}}}},"ioschemaEmpty":{"type":"object","description":"This can be used for messages where no values are needed","title":"Empty","x-displayname":"Empty","x-ves-proto-message":"ves.io.schema.Empty"},"ioschemaHeaderMatcherType":{"type":"object","description":"Header match is done using the name of the header and its value.\nThe value match is done using one of the following\n regex match on value\n exact match of value\n presence of header\n\nHeader Match can also be inverse of above, which be used to check\n missing header or\n non-matching value","title":"HeaderMatcherType","x-displayname":"Header to Match","x-ves-oneof-field-value_match":"[\"exact\",\"presence\",\"regex\"]","x-ves-proto-message":"ves.io.schema.HeaderMatcherType","properties":{"exact":{"type":"string","description":"Exclusive with [presence regex]\n Header value to match exactly\n\nExample: ` \"application/json\"`\n\nValidation Rules:\n ves.io.schema.rules.string.max_bytes: 256\n ves.io.schema.rules.string.not_empty: true\n","title":"exact","maxLength":256,"x-displayname":"Exact","x-ves-example":"application/json","x-ves-validation-rules":{"ves.io.schema.rules.string.max_bytes":"256","ves.io.schema.rules.string.not_empty":"true"}},"invert_match":{"type":"boolean","description":" Invert the result of the match to detect missing header or non-matching value","title":"invert_match","format":"boolean","x-displayname":"NOT of match"},"name":{"type":"string","description":" Name of the header\n\nExample: ` \"Content-Type\"`\n\nRequired: YES\n\nValidation Rules:\n ves.io.schema.rules.message.required: true\n ves.io.schema.rules.string.http_header_field: true\n ves.io.schema.rules.string.max_bytes: 256\n ves.io.schema.rules.string.min_bytes: 1\n","title":"name","minLength":1,"maxLength":256,"x-displayname":"Name","x-ves-example":"Content-Type","x-ves-required":"true","x-ves-validation-rules":{"ves.io.schema.rules.message.required":"true","ves.io.schema.rules.string.http_header_field":"true","ves.io.schema.rules.string.max_bytes":"256","ves.io.schema.rules.string.min_bytes":"1"}},"presence":{"type":"boolean","description":"Exclusive with [exact regex]\n If true, check for presence of header","title":"presence","format":"boolean","x-displayname":"Presence"},"regex":{"type":"string","description":"Exclusive with [exact presence]\n Regex match of the header value in re2 format\n\nValidation Rules:\n ves.io.schema.rules.string.max_bytes: 256\n ves.io.schema.rules.string.not_empty: true\n ves.io.schema.rules.string.regex: true\n","title":"regex","maxLength":256,"x-displayname":"Regex","x-ves-validation-rules":{"ves.io.schema.rules.string.max_bytes":"256","ves.io.schema.rules.string.not_empty":"true","ves.io.schema.rules.string.regex":"true"}}}},"ioschemaObjectRefType":{"type":"object","description":"This type establishes a 'direct reference' from one object(the referrer) to another(the referred).\nSuch a reference is in form of tenant/namespace/name for public API and Uid for private API\nThis type of reference is called direct because the relation is explicit and concrete (as opposed\nto selector reference which builds a group based on labels of selectee objects)","title":"ObjectRefType","x-displayname":"Object reference","x-ves-proto-message":"ves.io.schema.ObjectRefType","properties":{"kind":{"type":"string","description":" When a configuration object(e.g. virtual_host) refers to another(e.g route)\n then kind will hold the referred object's kind (e.g. \"route\")\n\nExample: ` \"virtual_site\"`","title":"kind","x-displayname":"Kind","x-ves-example":"virtual_site"},"name":{"type":"string","description":" When a configuration object(e.g. virtual_host) refers to another(e.g route)\n then name will hold the referred object's(e.g. route's) name.\n\nExample: ` \"contactus-route\"`","title":"name","x-displayname":"Name","x-ves-example":"contactus-route"},"namespace":{"type":"string","description":" When a configuration object(e.g. virtual_host) refers to another(e.g route)\n then namespace will hold the referred object's(e.g. route's) namespace.\n\nExample: ` \"ns1\"`","title":"namespace","x-displayname":"Namespace","x-ves-example":"ns1"},"tenant":{"type":"string","description":" When a configuration object(e.g. virtual_host) refers to another(e.g route)\n then tenant will hold the referred object's(e.g. route's) tenant.\n\nExample: ` \"acmecorp\"`","title":"tenant","x-displayname":"Tenant","x-ves-example":"acmecorp"},"uid":{"type":"string","description":" When a configuration object(e.g. virtual_host) refers to another(e.g route)\n then uid will hold the referred object's(e.g. route's) uid.\n\nExample: ` \"d15f1fad-4d37-48c0-8706-df1824d76d31\"`","title":"uid","x-displayname":"UID","x-ves-example":"d15f1fad-4d37-48c0-8706-df1824d76d31"}}},"ioschemaPathMatcherType":{"type":"object","description":"Path match of the URI can be either be, Prefix match or exact match or regular expression match","title":"PathMatcherType","x-displayname":"Path to Match","x-ves-displayorder":"4","x-ves-oneof-field-path_match":"[\"path\",\"prefix\",\"regex\"]","x-ves-proto-message":"ves.io.schema.PathMatcherType","properties":{"path":{"type":"string","description":"Exclusive with [prefix regex]\n Exact path value to match\n\nExample: ` \"/logout\"`\n\nValidation Rules:\n ves.io.schema.rules.string.http_path: true\n ves.io.schema.rules.string.max_len: 256\n","title":"exact","maxLength":256,"x-displayname":"Exact","x-ves-example":"/logout","x-ves-validation-rules":{"ves.io.schema.rules.string.http_path":"true","ves.io.schema.rules.string.max_len":"256"}},"prefix":{"type":"string","description":"Exclusive with [path regex]\n Path prefix to match (e.g. the value / will match on all paths)\n\nExample: ` \"/register/\"`\n\nValidation Rules:\n ves.io.schema.rules.string.http_path: true\n ves.io.schema.rules.string.max_len: 256\n","title":"prefix","maxLength":256,"x-displayname":"Prefix","x-ves-example":"/register/","x-ves-validation-rules":{"ves.io.schema.rules.string.http_path":"true","ves.io.schema.rules.string.max_len":"256"}},"regex":{"type":"string","description":"Exclusive with [path prefix]\n Regular expression of path match (e.g. the value .* will match on all paths)\n\nValidation Rules:\n ves.io.schema.rules.string.max_bytes: 256\n ves.io.schema.rules.string.min_bytes: 1\n ves.io.schema.rules.string.regex: true\n","title":"regex","minLength":1,"maxLength":256,"x-displayname":"Regex","x-ves-validation-rules":{"ves.io.schema.rules.string.max_bytes":"256","ves.io.schema.rules.string.min_bytes":"1","ves.io.schema.rules.string.regex":"true"}}}},"logAvgAggregationData":{"type":"object","description":"x-displayName: \"Avg Aggregation Data\"\nAverage Aggregation data","title":"AvgAggregationData","properties":{"value":{"type":"number","description":"x-displayName: \"Value\"\nx-example: 985.0\n\nvalue corresponding to the average value of field","title":"value","format":"double"}}},"logCardinalityAggregationData":{"type":"object","description":"x-displayName: \"Cardinality Aggregation Data\"\nApproximate count of distinct values of the log field specified in the request.","title":"CardinalityAggregationData","properties":{"count":{"type":"string","description":"x-displayName: \"Count\"\nx-example: 100\nCount of distinct values of a log field","title":"count","format":"uint64"},"trend_value":{"$ref":"#/components/schemas/schemaTrendValue"}}},"logDateAggregationBucket":{"type":"object","description":"x-displayName: \"Date Aggregation Bucket\"\nDate histogram bucket containing the timestamp and the number of logs in that bucket.","title":"DateAggregationBucket","properties":{"count":{"type":"string","description":"x-displayName: \"Count\"\nx-example: 45\n\nnumber of logs in this bucket","title":"count","format":"uint64"},"sub_aggs":{"type":"object","description":"x-displayName: \"Sub Aggregation\"\nSub aggregation data for the date bucket","title":"sub aggregation"},"time":{"type":"string","description":"x-displayName: \"Time\"\nx-example: 1578710280000\n\nunix timestamp","title":"time","format":"uint64"},"trend_value":{"$ref":"#/components/schemas/schemaTrendValue"}}},"logDateAggregationData":{"type":"object","description":"x-displayName: \"Date Aggregation Data\"\nDate aggregation data","title":"DateAggregationData","properties":{"buckets":{"type":"array","description":"x-displayName: \"Buckets\"\nLists of buckets containing timestamp and the corresponding log count","title":"buckets","items":{"$ref":"#/components/schemas/logDateAggregationBucket"}},"step":{"type":"string","description":"x-displayName: \"Step\"\nx-example: \"30m\"\nActual step size in the response. It could be higher than the requested step depending on the query duration and/or the log rollups.\nFormat: [0-9][smhd], where s - seconds, m - minutes, h - hours, d - days","title":"step"}}},"logDateSubAggregationData":{"type":"object","description":"x-displayName: \"Date SubAggregation\"\n\nDate subaggregation data","title":"DateSubAggregationData","properties":{"field_aggregation":{"$ref":"#/components/schemas/logFieldAggregationData"},"multi_field_aggregation":{"$ref":"#/components/schemas/logMultiFieldAggregationData"}}},"logFieldAggregationBucket":{"type":"object","description":"x-displayName: \"Field Aggregation Bucket\"\nField aggregation bucket containing field value and the number of logs.","title":"FieldAggregationBucket","properties":{"count":{"type":"string","description":"x-displayName: \"Count\"\nx-example: 45\n\nnumber of logs in this bucket","title":"count","format":"uint64"},"key":{"type":"string","description":"x-displayName: \"Key\"\nx-example: \"US\"","title":"key"},"order_by":{"$ref":"#/components/schemas/logOrderByData"},"sub_aggs":{"type":"object","description":"x-displayName: \"Sub Aggregation\"\nSub aggregation data for the field aggregation bucket","title":"sub aggregation"},"trend_value":{"$ref":"#/components/schemas/schemaTrendValue"}}},"logFieldAggregationData":{"type":"object","description":"x-displayName: \"Field Aggregation Data\"\nField Aggregation data","title":"FieldAggregationData","properties":{"buckets":{"type":"array","description":"x-displayName: \"Buckets\"\nLists of buckets containing field value and the corresponding log count","title":"buckets","items":{"$ref":"#/components/schemas/logFieldAggregationBucket"}}}},"logFieldSubAggregationBucket":{"type":"object","description":"x-displayName: \"Field Sub Aggregation Bucket\"\nField sub aggregation bucket containing field values and the number of logs.","title":"FieldSubAggregationBucket","properties":{"count":{"type":"string","description":"x-displayName: \"Count\"\nx-example: 45\n\nnumber of logs in this bucket","title":"count","format":"uint64"},"key":{"type":"string","description":"x-displayName: \"Key\"\nKey contain the name/value pair that identifies the unique key fields\nx-example: \"HIT, MISS, REVALIDATED\"","title":"keys"},"order_by":{"$ref":"#/components/schemas/logOrderByData"}}},"logFieldSubAggregationData":{"type":"object","description":"x-displayName: \"Field SubAggregation\"\nField subaggregation data","title":"FieldSubAggregationData","properties":{"avg_aggregation":{"$ref":"#/components/schemas/logAvgAggregationData"},"buckets":{"type":"array","description":"x-displayName: \"Buckets\"\nLists of buckets containing field values and the corresponding log count","title":"buckets","items":{"$ref":"#/components/schemas/logFieldSubAggregationBucket"}},"cardinality_aggregation":{"$ref":"#/components/schemas/logCardinalityAggregationData"},"filter_aggregation":{"$ref":"#/components/schemas/logFilterAggregationData"},"max_aggregation":{"$ref":"#/components/schemas/logMaxAggregationData"},"min_aggregation":{"$ref":"#/components/schemas/logMinAggregationData"},"multi_filter_aggregation":{"$ref":"#/components/schemas/logMultiFilterAggregationData"}}},"logFieldSubFieldAggregationBucket":{"type":"object","description":"x-displayName: \"Field Sub Field Aggregation Bucket\"\nField sub aggregation bucket containing field values and the number of logs.","title":"FieldSubFieldAggregationBucket","properties":{"count":{"type":"string","description":"x-displayName: \"Count\"\nx-example: 45\n\nnumber of logs in this bucket","title":"count","format":"uint64"},"key":{"type":"string","description":"x-displayName: \"Key\"\nKey contain the name/value pair that identifies the unique key fields\nx-example: \"HIT, MISS, REVALIDATED\"","title":"keys"}}},"logFieldSubFieldAggregationData":{"type":"object","description":"x-displayName: \"Field Sub Field Aggregation Data\"\nField Aggregation data as Field Sub-aggregation","title":"FieldSubFieldAggregationData","properties":{"buckets":{"type":"array","description":"x-displayName: \"Buckets\"\nLists of buckets containing field value and the corresponding log count","title":"buckets","items":{"$ref":"#/components/schemas/logFieldSubFieldAggregationBucket"}}}},"logFilterAggregationData":{"type":"object","description":"x-displayName: \"Filter Aggregation Data\"\nFilter Aggregation Data","title":"FilterAggregationData","properties":{"count":{"type":"string","description":"x-displayName: \"Count\"\nx-example: 45\n\nnumber of logs in this bucket","title":"count","format":"uint64"},"sub_aggs":{"type":"object","description":"x-displayName: \"Sub Aggregation\"\nSub aggregation data for the filter aggregation","title":"sub aggregation"}}},"logFilterSubAggregationData":{"type":"object","description":"x-displayName: \"FilterSubAggregation\"\nFilter subaggregation data","title":"FilterSubAggregationData","properties":{"buckets":{"type":"array","description":"x-displayName: \"Buckets\"\nLists of buckets containing field value and the corresponding log count","title":"buckets","items":{"$ref":"#/components/schemas/logFilterSubFieldAggregationBucket"}}}},"logFilterSubFieldAggregationBucket":{"type":"object","description":"x-displayName: \"Filter Sub Field Aggregation Bucket\"\nField sub aggregation bucket containing field values and the number of logs.","title":"FilterSubFieldAggregationBucket","properties":{"count":{"type":"string","description":"x-displayName: \"Count\"\nx-example: 45\n\nnumber of logs in this bucket","title":"count","format":"uint64"},"key":{"type":"string","description":"x-displayName: \"Key\"\nKey contain the name/value pair that identifies the unique key fields\nx-example: \"HIT, MISS, REVALIDATED\"","title":"keys"},"sub_aggs":{"type":"object","description":"x-displayName: \"Sub Aggregation\"\nSub aggregation data for the filter aggregation","title":"sub aggregation"}}},"logLogAggregationData":{"type":"object","description":"x-displayName: \"Log Aggregation\"\nLog aggregation response data","title":"LogAggregationData","properties":{"avg_aggregation":{"$ref":"#/components/schemas/logAvgAggregationData"},"cardinality_aggregation":{"$ref":"#/components/schemas/logCardinalityAggregationData"},"date_aggregation":{"$ref":"#/components/schemas/logDateAggregationData"},"field_aggregation":{"$ref":"#/components/schemas/logFieldAggregationData"},"filter_aggregation":{"$ref":"#/components/schemas/logFilterAggregationData"},"max_aggregation":{"$ref":"#/components/schemas/logMaxAggregationData"},"metrics_aggregation":{"$ref":"#/components/schemas/logMetricsAggregationData"},"min_aggregation":{"$ref":"#/components/schemas/logMinAggregationData"},"multi_field_aggregation":{"$ref":"#/components/schemas/logMultiFieldAggregationData"},"multi_filter_aggregation":{"$ref":"#/components/schemas/logMultiFilterAggregationData"}}},"logMaxAggregationData":{"type":"object","description":"x-displayName: \"Max Aggregation Data\"\nMax Aggregation data","title":"MaxAggregationData","properties":{"value":{"type":"number","description":"x-displayName: \"Value\"\nx-example: 985.0\n\nvalue corresponding to the maximum value of field","title":"value","format":"double"}}},"logMetricsAggregationData":{"type":"object","description":"x-displayName: \"Metrics Aggregation\"\nMetrics aggregation data","title":"MetricsAggregationData","properties":{"percentile":{"$ref":"#/components/schemas/logPercentileAggregationData"}}},"logMinAggregationData":{"type":"object","description":"x-displayName: \"Min Aggregation Data\"\nMin Aggregation data","title":"MinAggregationData","properties":{"value":{"type":"number","description":"x-displayName: \"Value\"\nx-example: 985.0\n\nvalue corresponding to the minimum value of field","title":"value","format":"double"}}},"logMultiFieldAggregationBucket":{"type":"object","description":"x-displayName: \"Multi-Field Aggregation Bucket\"\nMulti-Field aggregation bucket containing field values and the number of logs.","title":"MultiFieldAggregationBucket","properties":{"count":{"type":"string","description":"x-displayName: \"Count\"\nx-example: 45\n\nnumber of logs in this bucket","title":"count","format":"uint64"},"keys":{"type":"object","description":"x-displayName: \"Keys\"\nKeys contain the name/value pair that identifies the unique combination of multiple key fields\nx-example: \"{\"SRC_IP\": \"10.10.10.1\", \"COUNTRY\": \"US\"}\"","title":"keys"},"order_by":{"$ref":"#/components/schemas/logOrderByData"},"sub_aggs":{"type":"object","description":"x-displayName: \"Sub Aggregation\"\nSub aggregation data for the multi field aggregation bucket","title":"sub aggregation"}}},"logMultiFieldAggregationData":{"type":"object","description":"x-displayName: \"Multi-Field Aggregation Data\"\nMulti-Field Aggregation data","title":"MultiFieldAggregationData","properties":{"buckets":{"type":"array","description":"x-displayName: \"Buckets\"\nLists of buckets containing field values and the corresponding log count","title":"buckets","items":{"$ref":"#/components/schemas/logMultiFieldAggregationBucket"}}}},"logMultiFieldSubAggregationData":{"type":"object","description":"x-displayName: \"Multi Field SubAggregation\"\nField subaggregation data","title":"MultiFieldSubAggregationData","properties":{"avg_aggregation":{"$ref":"#/components/schemas/logAvgAggregationData"},"cardinality_aggregation":{"$ref":"#/components/schemas/logCardinalityAggregationData"},"max_aggregation":{"$ref":"#/components/schemas/logMaxAggregationData"},"min_aggregation":{"$ref":"#/components/schemas/logMinAggregationData"},"top_hits_aggregation":{"$ref":"#/components/schemas/logTopHitsAggregationData"}}},"logMultiFilterAggregationData":{"type":"object","description":"x-displayName: \"Multi Filter Aggregation Data\"\nMulti Filter Aggregation data","title":"MultiFilterAggregationData","properties":{"count":{"type":"string","description":"x-displayName: \"Count\"\nx-example: 45\n\nnumber of logs in this bucket","title":"count","format":"uint64"}}},"logOrderByData":{"type":"object","description":"x-displayName: \"Order by Data\"\nOrder by data","title":"OrderByData","properties":{"metrics_aggregation":{"$ref":"#/components/schemas/logMetricsAggregationData"}}},"logPercentileAggregationData":{"type":"object","description":"x-displayName: \"Percentile Aggregation Data\"\nPercentile Aggregation data","title":"PercentileAggregationData","properties":{"key":{"type":"number","description":"x-displayName: \"Key\"\nx-example: 99.0","title":"key","format":"double"},"value":{"type":"number","description":"x-displayName: \"Value\"\nx-example: 985.0\n\nvalue corresponding to the key percent","title":"value","format":"double"}}},"logTopHitsAggregationData":{"type":"object","description":"x-displayName: \"TopHits Aggregation Data\"\nTop Hits Aggregation Data.","title":"TopHitsAggregationData","properties":{"count":{"type":"string","description":"x-displayName: \"Count\"\nx-example: 100\nCount of top hit values","title":"count","format":"uint64"},"documents":{"type":"array","description":"x-displayName: \"Documents\"\ndocument values","title":"documents","items":{"type":"string"}}}},"origin_poolOriginServerPublicIP":{"type":"object","description":"Specify origin server with public IP address","title":"OriginServerPublicIP","x-displayname":"Public IP","x-ves-displayorder":"2","x-ves-oneof-field-public_ip_choice":"[\"ip\"]","x-ves-proto-message":"ves.io.schema.views.origin_pool.OriginServerPublicIP","properties":{"ip":{"type":"string","description":"Exclusive with []\n Public IPV4 address\n\nExample: ` \"8.8.8.8\"`\n\nValidation Rules:\n ves.io.schema.rules.string.ipv4: true\n","title":"IP","x-displayname":"Public IPV4","x-ves-example":"8.8.8.8","x-ves-validation-rules":{"ves.io.schema.rules.string.ipv4":"true"}}}},"origin_poolOriginServerPublicName":{"type":"object","description":"Specify origin server with public DNS name","title":"OriginServerPublicName","x-displayname":"Public DNS Name","x-ves-displayorder":"1,2","x-ves-proto-message":"ves.io.schema.views.origin_pool.OriginServerPublicName","properties":{"dns_name":{"type":"string","description":" DNS Name\n\nExample: ` \"value\"`\n\nRequired: YES\n\nValidation Rules:\n ves.io.schema.rules.message.required: true\n ves.io.schema.rules.string.hostname: true\n ves.io.schema.rules.string.max_len: 256\n ves.io.schema.rules.string.min_len: 1\n","title":"DNS name","minLength":1,"maxLength":256,"x-displayname":"DNS Name","x-ves-example":"value","x-ves-required":"true","x-ves-validation-rules":{"ves.io.schema.rules.message.required":"true","ves.io.schema.rules.string.hostname":"true","ves.io.schema.rules.string.max_len":"256","ves.io.schema.rules.string.min_len":"1"}},"refresh_interval":{"type":"integer","description":" Interval for DNS refresh in seconds.\n Max value is 7 days as per https://datatracker.ietf.org/doc/html/rfc8767\n\nExample: ` \"20\"`\n\nValidation Rules:\n ves.io.schema.rules.uint32.ranges: 0,10-604800\n","title":"refresh_interval","format":"int64","x-displayname":"DNS Refresh Interval","x-ves-example":"20","x-ves-validation-rules":{"ves.io.schema.rules.uint32.ranges":"0,10-604800"}}}},"origin_poolTlsCertificatesType":{"type":"object","description":"mTLS Client Certificate","title":"TlsCertificatesType","x-displayname":"mTLS Certificate","x-ves-displayorder":"1","x-ves-proto-message":"ves.io.schema.views.origin_pool.TlsCertificatesType","properties":{"tls_certificates":{"type":"array","description":" mTLS Client Certificate\n\nRequired: YES\n\nValidation Rules:\n ves.io.schema.rules.message.required: true\n ves.io.schema.rules.repeated.max_items: 1\n ves.io.schema.rules.repeated.min_items: 1\n","title":"mTLS certificate","minItems":1,"maxItems":1,"items":{"$ref":"#/components/schemas/schemaTlsCertificateType"},"x-displayname":"mTLS Client Certificate","x-ves-required":"true","x-ves-validation-rules":{"ves.io.schema.rules.message.required":"true","ves.io.schema.rules.repeated.max_items":"1","ves.io.schema.rules.repeated.min_items":"1"}}}},"origin_poolUpstreamTlsParameters":{"type":"object","description":"Upstream TLS Parameters","title":"UpstreamTlsParameters","x-displayname":"TLS Parameters for Origin Servers","x-ves-displayorder":"10,2,8,9,15","x-ves-oneof-field-max_session_keys_type":"[\"default_session_key_caching\",\"disable_session_key_caching\",\"max_session_keys\"]","x-ves-oneof-field-mtls_choice":"[\"no_mtls\",\"use_mtls\",\"use_mtls_obj\"]","x-ves-oneof-field-server_validation_choice":"[\"skip_server_verification\",\"use_server_verification\",\"volterra_trusted_ca\"]","x-ves-oneof-field-sni_choice":"[\"disable_sni\",\"sni\",\"use_host_header_as_sni\"]","x-ves-proto-message":"ves.io.schema.views.origin_pool.UpstreamTlsParameters","properties":{"default_session_key_caching":{"$ref":"#/components/schemas/ioschemaEmpty"},"disable_session_key_caching":{"$ref":"#/components/schemas/ioschemaEmpty"},"disable_sni":{"$ref":"#/components/schemas/ioschemaEmpty"},"max_session_keys":{"type":"integer","description":"Exclusive with [default_session_key_caching disable_session_key_caching]\n x-example:\"25\"\n Number of session keys that are cached.\n\nValidation Rules:\n ves.io.schema.rules.uint32.gte: 2\n ves.io.schema.rules.uint32.lte: 64\n","title":"Max Session Keys Cached","format":"int64","x-displayname":"Max Session Keys Cached","x-ves-validation-rules":{"ves.io.schema.rules.uint32.gte":"2","ves.io.schema.rules.uint32.lte":"64"}},"no_mtls":{"$ref":"#/components/schemas/ioschemaEmpty"},"skip_server_verification":{"$ref":"#/components/schemas/ioschemaEmpty"},"sni":{"type":"string","description":"Exclusive with [disable_sni use_host_header_as_sni]\n SNI value to be used.\n\nValidation Rules:\n ves.io.schema.rules.string.hostname: true\n ves.io.schema.rules.string.max_len: 256\n","title":"sni","maxLength":256,"x-displayname":"SNI Value","x-ves-validation-rules":{"ves.io.schema.rules.string.hostname":"true","ves.io.schema.rules.string.max_len":"256"}},"tls_config":{"$ref":"#/components/schemas/viewsTlsConfig"},"use_host_header_as_sni":{"$ref":"#/components/schemas/ioschemaEmpty"},"use_mtls":{"$ref":"#/components/schemas/origin_poolTlsCertificatesType"},"use_mtls_obj":{"$ref":"#/components/schemas/schemaviewsObjectRefType"},"use_server_verification":{"$ref":"#/components/schemas/origin_poolUpstreamTlsValidationContext"},"volterra_trusted_ca":{"$ref":"#/components/schemas/ioschemaEmpty"}}},"origin_poolUpstreamTlsValidationContext":{"type":"object","description":"Upstream TLS Validation Context","title":"UpstreamTlsValidationContext","x-displayname":"TLS Validation Context for Origin Servers","x-ves-oneof-field-trusted_ca_choice":"[\"trusted_ca\",\"trusted_ca_url\"]","x-ves-proto-message":"ves.io.schema.views.origin_pool.UpstreamTlsValidationContext","properties":{"trusted_ca":{"$ref":"#/components/schemas/schemaviewsObjectRefType"},"trusted_ca_url":{"type":"string","description":"Exclusive with [trusted_ca]\n Upload a Root CA Certificate specifically for this Origin Pool for verification of server's certificate\n\nValidation Rules:\n ves.io.schema.rules.string.max_bytes: 131072\n ves.io.schema.rules.string.min_bytes: 1\n ves.io.schema.rules.string.truststore_url: true\n","title":"trusted_ca_url","minLength":1,"maxLength":131072,"x-displayname":"Inline Root CA Certificate (legacy)","x-ves-validation-rules":{"ves.io.schema.rules.string.max_bytes":"131072","ves.io.schema.rules.string.min_bytes":"1","ves.io.schema.rules.string.truststore_url":"true"}}}},"policyAppFirewallAttackTypeContext":{"type":"object","description":"App Firewall Attack Type context changes to be applied for this request","title":"App Firewall Attack Type Context","x-displayname":"App Firewall Attack Type Context","x-ves-proto-message":"ves.io.schema.policy.AppFirewallAttackTypeContext","properties":{"context":{"$ref":"#/components/schemas/policyDetectionContext"},"context_name":{"type":"string","description":" Relevant only for contexts: Header, Cookie and Parameter.\n Name of the Context that the WAF Exclusion Rules will check.\n Wildcard matching can be used by prefixing or suffixing the context name\n with an wildcard asterisk (*).\n\nExample: ` \"exampleuser-agent for Header\"`\n\nValidation Rules:\n ves.io.schema.rules.string.max_len: 128\n","title":"Context Name","maxLength":128,"x-displayname":"Context Name","x-ves-example":"example: user-agent for Header","x-ves-validation-rules":{"ves.io.schema.rules.string.max_len":"128"}},"exclude_attack_type":{"$ref":"#/components/schemas/app_firewallAttackType"}}},"policyAppFirewallDetectionControl":{"type":"object","description":"Define the list of Signature IDs, Violations, Attack Types and Bot Names that should be excluded from triggering on the defined match criteria.","title":"App Firewall Detection Control","x-displayname":"App Firewall Detection Control","x-ves-proto-message":"ves.io.schema.policy.AppFirewallDetectionControl","properties":{"exclude_attack_type_contexts":{"type":"array","description":" Attack Types to be excluded for the defined match criteria\n\nValidation Rules:\n ves.io.schema.rules.repeated.max_items: 64\n ves.io.schema.rules.repeated.unique: true\n","title":"Exclude Attack Types Contexts","maxItems":64,"items":{"$ref":"#/components/schemas/policyAppFirewallAttackTypeContext"},"x-displayname":"Attack Types","x-ves-validation-rules":{"ves.io.schema.rules.repeated.max_items":"64","ves.io.schema.rules.repeated.unique":"true"}},"exclude_bot_name_contexts":{"type":"array","description":" Bot Names to be excluded for the defined match criteria\n\nValidation Rules:\n ves.io.schema.rules.repeated.max_items: 64\n ves.io.schema.rules.repeated.unique: true\n","title":"Exclude Bot Names Contexts","maxItems":64,"items":{"$ref":"#/components/schemas/policyBotNameContext"},"x-displayname":"Bot Names","x-ves-validation-rules":{"ves.io.schema.rules.repeated.max_items":"64","ves.io.schema.rules.repeated.unique":"true"}},"exclude_signature_contexts":{"type":"array","description":" Signature IDs to be excluded for the defined match criteria\n\nValidation Rules:\n ves.io.schema.rules.repeated.max_items: 1024\n ves.io.schema.rules.repeated.unique: true\n","title":"Exclude Signature Contexts","maxItems":1024,"items":{"$ref":"#/components/schemas/policyAppFirewallSignatureContext"},"x-displayname":"Signature IDs","x-ves-validation-rules":{"ves.io.schema.rules.repeated.max_items":"1024","ves.io.schema.rules.repeated.unique":"true"}},"exclude_violation_contexts":{"type":"array","description":" Violations to be excluded for the defined match criteria\n\nValidation Rules:\n ves.io.schema.rules.repeated.max_items: 64\n ves.io.schema.rules.repeated.unique: true\n","title":"Exclude Violation Contexts","maxItems":64,"items":{"$ref":"#/components/schemas/policyAppFirewallViolationContext"},"x-displayname":"Violations","x-ves-validation-rules":{"ves.io.schema.rules.repeated.max_items":"64","ves.io.schema.rules.repeated.unique":"true"}}}},"policyAppFirewallSignatureContext":{"type":"object","description":"App Firewall signature context changes to be applied for this request","title":"App Firewall Signature Context","x-displayname":"App Firewall Signature Context","x-ves-proto-message":"ves.io.schema.policy.AppFirewallSignatureContext","properties":{"context":{"$ref":"#/components/schemas/policyDetectionContext"},"context_name":{"type":"string","description":" Relevant only for contexts: Header, Cookie and Parameter.\n Name of the Context that the WAF Exclusion Rules will check.\n Wildcard matching can be used by prefixing or suffixing the context name\n with an wildcard asterisk (*).\n\nExample: ` \"exampleuser-agent for Header\"`\n\nValidation Rules:\n ves.io.schema.rules.string.max_len: 128\n","title":"Context Name","maxLength":128,"x-displayname":"Context Name","x-ves-example":"example: user-agent for Header","x-ves-validation-rules":{"ves.io.schema.rules.string.max_len":"128"}},"signature_id":{"type":"integer","description":" The allowed values for signature id are 0 and in the range of 200000001-299999999.\n 0 implies that all signatures will be excluded for the specified context.\n\nExample: ` \"10000001\"`\n\nRequired: YES\n\nValidation Rules:\n ves.io.schema.rules.message.required: true\n ves.io.schema.rules.uint32.gte: 0\n ves.io.schema.rules.uint32.lte: 299999999\n","title":"SignatureID","format":"int64","x-displayname":"SignatureID","x-ves-example":"10000001","x-ves-required":"true","x-ves-validation-rules":{"ves.io.schema.rules.message.required":"true","ves.io.schema.rules.uint32.gte":"0","ves.io.schema.rules.uint32.lte":"299999999"}}}},"policyAppFirewallViolationContext":{"type":"object","description":"App Firewall violation context changes to be applied for this request","title":"App Firewall Violation Context","x-displayname":"App Firewall Violation Context","x-ves-proto-message":"ves.io.schema.policy.AppFirewallViolationContext","properties":{"context":{"$ref":"#/components/schemas/policyDetectionContext"},"context_name":{"type":"string","description":" Relevant only for contexts: Header, Cookie and Parameter.\n Name of the Context that the WAF Exclusion Rules will check.\n Wildcard matching can be used by prefixing or suffixing the context name\n with an wildcard asterisk (*).\n\nExample: ` \"exampleuser-agent for Header\"`\n\nValidation Rules:\n ves.io.schema.rules.string.max_len: 128\n","title":"Context Name","maxLength":128,"x-displayname":"Context Name","x-ves-example":"example: user-agent for Header","x-ves-validation-rules":{"ves.io.schema.rules.string.max_len":"128"}},"exclude_violation":{"$ref":"#/components/schemas/app_firewallAppFirewallViolationType"}}},"policyArgMatcherType":{"type":"object","description":"A argument matcher specifies the name of a single argument in the body and the criteria to match it.\nA argument matcher can check for one of the following:\n* Presence or absence of the argument\n* At least one of the values for the argument in the request satisfies the MatcherType item","title":"ArgMatcherType","x-displayname":"Argument Matcher","x-ves-displayorder":"1,6,4","x-ves-oneof-field-match":"[\"check_not_present\",\"check_present\",\"item\"]","x-ves-proto-message":"ves.io.schema.policy.ArgMatcherType","properties":{"check_not_present":{"$ref":"#/components/schemas/ioschemaEmpty"},"check_present":{"$ref":"#/components/schemas/ioschemaEmpty"},"invert_matcher":{"type":"boolean","description":" Invert Match of the expression defined","title":"invert_matcher","format":"boolean","x-displayname":"Invert Matcher"},"item":{"$ref":"#/components/schemas/policyMatcherType"},"name":{"type":"string","description":" x-example: \"phones[_]\"\n x-example: \"cars.make.toyota.models[1]\"\n x-example: \"cars.make.honda.models[_]\"\n x-example: \"cars.make[_].models[_]\"\n A case-sensitive JSON path in the HTTP request body.\n\nExample: ` \"name\"`\n\nRequired: YES\n\nValidation Rules:\n ves.io.schema.rules.message.required: true\n ves.io.schema.rules.string.json_path: true\n ves.io.schema.rules.string.max_bytes: 256\n","title":"name","maxLength":256,"x-displayname":"Argument Name","x-ves-example":"name","x-ves-required":"true","x-ves-validation-rules":{"ves.io.schema.rules.message.required":"true","ves.io.schema.rules.string.json_path":"true","ves.io.schema.rules.string.max_bytes":"256"}}}},"policyAsnMatchList":{"type":"object","description":"An unordered set of RFC 6793 defined 4-byte AS numbers that can be used to create allow or deny lists for use in network policy or service policy. It can be used to create the allow list only for DNS Load Balancer.","title":"Asn Match List","x-displayname":"ASN Match List","x-ves-proto-message":"ves.io.schema.policy.AsnMatchList","properties":{"as_numbers":{"type":"array","description":" An unordered set of RFC 6793 defined 4-byte AS numbers that can be used to create allow or deny lists for use in network policy or service policy. It can be used to create the allow list only for DNS Load Balancer.\n\nExample: ` \"[713, 7932, 847325, 4683, 15269, 1000001]\"`\n\nRequired: YES\n\nValidation Rules:\n ves.io.schema.rules.message.required: true\n ves.io.schema.rules.repeated.max_items: 16\n ves.io.schema.rules.repeated.min_items: 1\n ves.io.schema.rules.repeated.unique: true\n","title":"as numbers","minItems":1,"maxItems":16,"items":{"type":"integer","format":"int64"},"x-displayname":"AS Numbers","x-ves-example":"[713, 7932, 847325, 4683, 15269, 1000001]","x-ves-required":"true","x-ves-validation-rules":{"ves.io.schema.rules.message.required":"true","ves.io.schema.rules.repeated.max_items":"16","ves.io.schema.rules.repeated.min_items":"1","ves.io.schema.rules.repeated.unique":"true"}}}},"policyAsnMatcherType":{"type":"object","description":"Match any AS number contained in the list of bgp_asn_sets.","title":"asn matcher type","x-displayname":"ASN Matcher","x-ves-proto-message":"ves.io.schema.policy.AsnMatcherType","properties":{"asn_sets":{"type":"array","description":" A list of references to bgp_asn_set objects.\n\nRequired: YES\n\nValidation Rules:\n ves.io.schema.rules.message.required: true\n ves.io.schema.rules.repeated.max_items: 4\n","title":"asn_sets","maxItems":4,"items":{"$ref":"#/components/schemas/ioschemaObjectRefType"},"x-displayname":"BGP ASN Sets","x-ves-required":"true","x-ves-validation-rules":{"ves.io.schema.rules.message.required":"true","ves.io.schema.rules.repeated.max_items":"4"}}}},"policyBotNameContext":{"type":"object","description":"Specifies bot to be excluded by its name.","title":"Bot Name Context","x-displayname":"Bot Name","x-ves-proto-message":"ves.io.schema.policy.BotNameContext","properties":{"bot_name":{"type":"string","description":"\nExample: ` \"Hydra\"`\n\nRequired: YES\n\nValidation Rules:\n ves.io.schema.rules.message.required: true\n","title":"BotName","x-displayname":"Bot Name","x-ves-example":"Hydra","x-ves-required":"true","x-ves-validation-rules":{"ves.io.schema.rules.message.required":"true"}}}},"policyClientMatcher":{"type":"object","description":"Client conditions for matching a rule","title":"Client Matcher","x-displayname":"Client Matcher","x-ves-oneof-field-client_choice":"[\"any_client\",\"client_selector\",\"ip_threat_category_list\"]","x-ves-oneof-field-ip_asn_choice":"[\"any_ip\",\"asn_list\",\"asn_matcher\",\"ip_matcher\",\"ip_prefix_list\"]","x-ves-proto-message":"ves.io.schema.policy.ClientMatcher","properties":{"any_client":{"$ref":"#/components/schemas/ioschemaEmpty"},"any_ip":{"$ref":"#/components/schemas/ioschemaEmpty"},"asn_list":{"$ref":"#/components/schemas/policyAsnMatchList"},"asn_matcher":{"$ref":"#/components/schemas/policyAsnMatcherType"},"client_selector":{"$ref":"#/components/schemas/schemaLabelSelectorType"},"ip_matcher":{"$ref":"#/components/schemas/policyIpMatcherType"},"ip_prefix_list":{"$ref":"#/components/schemas/policyPrefixMatchList"},"ip_threat_category_list":{"$ref":"#/components/schemas/schemapolicyIPThreatCategoryListType"},"tls_fingerprint_matcher":{"$ref":"#/components/schemas/policyTlsFingerprintMatcherType"}}},"policyCookieMatcherType":{"type":"object","description":"A cookie matcher specifies the name of a single cookie and the criteria to match it. The input has a list of values for each\ncookie in the request.\nA cookie matcher can check for one of the following:\n* Presence or absence of the cookie\n* At least one of the values for the cookie in the request satisfies the MatcherType item","title":"CookieMatcherType","x-displayname":"Cookie Matcher","x-ves-displayorder":"1,6,4","x-ves-oneof-field-match":"[\"check_not_present\",\"check_present\",\"item\"]","x-ves-proto-message":"ves.io.schema.policy.CookieMatcherType","properties":{"check_not_present":{"$ref":"#/components/schemas/ioschemaEmpty"},"check_present":{"$ref":"#/components/schemas/ioschemaEmpty"},"invert_matcher":{"type":"boolean","description":" Invert Match of the expression defined","title":"invert_matcher","format":"boolean","x-displayname":"Invert Matcher"},"item":{"$ref":"#/components/schemas/policyMatcherType"},"name":{"type":"string","description":" A case-sensitive cookie name.\n\nExample: ` \"Session\"`\n\nRequired: YES\n\nValidation Rules:\n ves.io.schema.rules.message.required: true\n ves.io.schema.rules.string.max_bytes: 256\n","title":"name","maxLength":256,"x-displayname":"Cookie Name","x-ves-example":"Session","x-ves-required":"true","x-ves-validation-rules":{"ves.io.schema.rules.message.required":"true","ves.io.schema.rules.string.max_bytes":"256"}}}},"policyCountryCode":{"type":"string","description":"ISO 3166 Aplpha-2 country codes\n","title":"CountryCode","enum":["COUNTRY_NONE","COUNTRY_AD","COUNTRY_AE","COUNTRY_AF","COUNTRY_AG","COUNTRY_AI","COUNTRY_AL","COUNTRY_AM","COUNTRY_AN","COUNTRY_AO","COUNTRY_AQ","COUNTRY_AR","COUNTRY_AS","COUNTRY_AT","COUNTRY_AU","COUNTRY_AW","COUNTRY_AX","COUNTRY_AZ","COUNTRY_BA","COUNTRY_BB","COUNTRY_BD","COUNTRY_BE","COUNTRY_BF","COUNTRY_BG","COUNTRY_BH","COUNTRY_BI","COUNTRY_BJ","COUNTRY_BL","COUNTRY_BM","COUNTRY_BN","COUNTRY_BO","COUNTRY_BQ","COUNTRY_BR","COUNTRY_BS","COUNTRY_BT","COUNTRY_BV","COUNTRY_BW","COUNTRY_BY","COUNTRY_BZ","COUNTRY_CA","COUNTRY_CC","COUNTRY_CD","COUNTRY_CF","COUNTRY_CG","COUNTRY_CH","COUNTRY_CI","COUNTRY_CK","COUNTRY_CL","COUNTRY_CM","COUNTRY_CN","COUNTRY_CO","COUNTRY_CR","COUNTRY_CS","COUNTRY_CU","COUNTRY_CV","COUNTRY_CW","COUNTRY_CX","COUNTRY_CY","COUNTRY_CZ","COUNTRY_DE","COUNTRY_DJ","COUNTRY_DK","COUNTRY_DM","COUNTRY_DO","COUNTRY_DZ","COUNTRY_EC","COUNTRY_EE","COUNTRY_EG","COUNTRY_EH","COUNTRY_ER","COUNTRY_ES","COUNTRY_ET","COUNTRY_FI","COUNTRY_FJ","COUNTRY_FK","COUNTRY_FM","COUNTRY_FO","COUNTRY_FR","COUNTRY_GA","COUNTRY_GB","COUNTRY_GD","COUNTRY_GE","COUNTRY_GF","COUNTRY_GG","COUNTRY_GH","COUNTRY_GI","COUNTRY_GL","COUNTRY_GM","COUNTRY_GN","COUNTRY_GP","COUNTRY_GQ","COUNTRY_GR","COUNTRY_GS","COUNTRY_GT","COUNTRY_GU","COUNTRY_GW","COUNTRY_GY","COUNTRY_HK","COUNTRY_HM","COUNTRY_HN","COUNTRY_HR","COUNTRY_HT","COUNTRY_HU","COUNTRY_ID","COUNTRY_IE","COUNTRY_IL","COUNTRY_IM","COUNTRY_IN","COUNTRY_IO","COUNTRY_IQ","COUNTRY_IR","COUNTRY_IS","COUNTRY_IT","COUNTRY_JE","COUNTRY_JM","COUNTRY_JO","COUNTRY_JP","COUNTRY_KE","COUNTRY_KG","COUNTRY_KH","COUNTRY_KI","COUNTRY_KM","COUNTRY_KN","COUNTRY_KP","COUNTRY_KR","COUNTRY_KW","COUNTRY_KY","COUNTRY_KZ","COUNTRY_LA","COUNTRY_LB","COUNTRY_LC","COUNTRY_LI","COUNTRY_LK","COUNTRY_LR","COUNTRY_LS","COUNTRY_LT","COUNTRY_LU","COUNTRY_LV","COUNTRY_LY","COUNTRY_MA","COUNTRY_MC","COUNTRY_MD","COUNTRY_ME","COUNTRY_MF","COUNTRY_MG","COUNTRY_MH","COUNTRY_MK","COUNTRY_ML","COUNTRY_MM","COUNTRY_MN","COUNTRY_MO","COUNTRY_MP","COUNTRY_MQ","COUNTRY_MR","COUNTRY_MS","COUNTRY_MT","COUNTRY_MU","COUNTRY_MV","COUNTRY_MW","COUNTRY_MX","COUNTRY_MY","COUNTRY_MZ","COUNTRY_NA","COUNTRY_NC","COUNTRY_NE","COUNTRY_NF","COUNTRY_NG","COUNTRY_NI","COUNTRY_NL","COUNTRY_NO","COUNTRY_NP","COUNTRY_NR","COUNTRY_NU","COUNTRY_NZ","COUNTRY_OM","COUNTRY_PA","COUNTRY_PE","COUNTRY_PF","COUNTRY_PG","COUNTRY_PH","COUNTRY_PK","COUNTRY_PL","COUNTRY_PM","COUNTRY_PN","COUNTRY_PR","COUNTRY_PS","COUNTRY_PT","COUNTRY_PW","COUNTRY_PY","COUNTRY_QA","COUNTRY_RE","COUNTRY_RO","COUNTRY_RS","COUNTRY_RU","COUNTRY_RW","COUNTRY_SA","COUNTRY_SB","COUNTRY_SC","COUNTRY_SD","COUNTRY_SE","COUNTRY_SG","COUNTRY_SH","COUNTRY_SI","COUNTRY_SJ","COUNTRY_SK","COUNTRY_SL","COUNTRY_SM","COUNTRY_SN","COUNTRY_SO","COUNTRY_SR","COUNTRY_SS","COUNTRY_ST","COUNTRY_SV","COUNTRY_SX","COUNTRY_SY","COUNTRY_SZ","COUNTRY_TC","COUNTRY_TD","COUNTRY_TF","COUNTRY_TG","COUNTRY_TH","COUNTRY_TJ","COUNTRY_TK","COUNTRY_TL","COUNTRY_TM","COUNTRY_TN","COUNTRY_TO","COUNTRY_TR","COUNTRY_TT","COUNTRY_TV","COUNTRY_TW","COUNTRY_TZ","COUNTRY_UA","COUNTRY_UG","COUNTRY_UM","COUNTRY_US","COUNTRY_UY","COUNTRY_UZ","COUNTRY_VA","COUNTRY_VC","COUNTRY_VE","COUNTRY_VG","COUNTRY_VI","COUNTRY_VN","COUNTRY_VU","COUNTRY_WF","COUNTRY_WS","COUNTRY_XK","COUNTRY_XT","COUNTRY_YE","COUNTRY_YT","COUNTRY_ZA","COUNTRY_ZM","COUNTRY_ZW"],"default":"COUNTRY_NONE","x-displayname":"Country Code","x-ves-proto-enum":"ves.io.schema.policy.CountryCode"},"policyCountryCodeList":{"type":"object","description":"x-displayName: \"Country Codes List\"\nList of Country Codes to match against.","title":"Country Code List","properties":{"country_codes":{"type":"array","description":"x-displayName: \"Country Codes List\"\nx-example: \"IN, DE\"\nx-required\nList of Country Codes","title":"country codes","items":{"$ref":"#/components/schemas/policyCountryCode"}},"invert_match":{"type":"boolean","description":"x-displayName: \"Invert Match Result\"\nInvert the match result.","title":"invert_matcher","format":"boolean"}}},"policyDetectionContext":{"type":"string","description":"The available contexts for Exclusion rules.\n\n - CONTEXT_ANY: CONTEXT_ANY\n\nDetection will be excluded for all contexts.\n - CONTEXT_BODY: CONTEXT_BODY\n\nDetection will be excluded for the request body.\n - CONTEXT_REQUEST: CONTEXT_REQUEST\n\nDetection will be excluded for the request.\n - CONTEXT_RESPONSE: CONTEXT_RESPONSE\n\n - CONTEXT_PARAMETER: CONTEXT_PARAMETER\n\nDetection will be excluded for the parameters. The parameter name is required in the Context name field. If the field is left empty, the detection will be excluded for all parameters.\n - CONTEXT_HEADER: CONTEXT_HEADER\n\nDetection will be excluded for the headers. The header name is required in the Context name field. If the field is left empty, the detection will be excluded for all headers.\n - CONTEXT_COOKIE: CONTEXT_COOKIE\n\nDetection will be excluded for the cookies. The cookie name is required in the Context name field. If the field is left empty, the detection will be excluded for all cookies.\n - CONTEXT_URL: CONTEXT_URL\n\nDetection will be excluded for the request URL.\n - CONTEXT_URI: CONTEXT_URI\n","title":"Detection Context","enum":["CONTEXT_ANY","CONTEXT_BODY","CONTEXT_REQUEST","CONTEXT_RESPONSE","CONTEXT_PARAMETER","CONTEXT_HEADER","CONTEXT_COOKIE","CONTEXT_URL","CONTEXT_URI"],"default":"CONTEXT_ANY","x-displayname":"WAF Exclusion Context Options","x-ves-proto-enum":"ves.io.schema.policy.DetectionContext"},"policyGraphQLRule":{"type":"object","description":"This section defines various configuration options for GraphQL inspection.","title":"GraphQL Rule","x-displayname":"GraphQL","x-ves-displayorder":"1,2,6,8,7","x-ves-oneof-field-domain_choice":"[\"any_domain\",\"exact_value\",\"suffix_value\"]","x-ves-oneof-field-method_choice":"[\"method_get\",\"method_post\"]","x-ves-proto-message":"ves.io.schema.policy.GraphQLRule","properties":{"any_domain":{"$ref":"#/components/schemas/ioschemaEmpty"},"exact_path":{"type":"string","description":" Specifies the exact path to GraphQL endpoint. Default value is /graphql.\n\nExample: ` \"/graphql\"`\n\nRequired: YES\n\nValidation Rules:\n ves.io.schema.rules.message.required: true\n ves.io.schema.rules.string.http_path: true\n ves.io.schema.rules.string.max_len: 256\n","title":"Path","maxLength":256,"x-displayname":"Path","x-ves-example":"/graphql","x-ves-required":"true","x-ves-validation-rules":{"ves.io.schema.rules.message.required":"true","ves.io.schema.rules.string.http_path":"true","ves.io.schema.rules.string.max_len":"256"}},"exact_value":{"type":"string","description":"Exclusive with [any_domain suffix_value]\n Exact domain name\n\nExample: ` \"abc.zyz.com\"`\n\nValidation Rules:\n ves.io.schema.rules.string.hostname: true\n ves.io.schema.rules.string.max_len: 256\n ves.io.schema.rules.string.min_len: 1\n","title":"exact value","minLength":1,"maxLength":256,"x-displayname":"Exact Value","x-ves-example":"abc.zyz.com","x-ves-validation-rules":{"ves.io.schema.rules.string.hostname":"true","ves.io.schema.rules.string.max_len":"256","ves.io.schema.rules.string.min_len":"1"}},"graphql_settings":{"$ref":"#/components/schemas/policyGraphQLSettingsType"},"metadata":{"$ref":"#/components/schemas/schemaMessageMetaType"},"method_get":{"$ref":"#/components/schemas/ioschemaEmpty"},"method_post":{"$ref":"#/components/schemas/ioschemaEmpty"},"suffix_value":{"type":"string","description":"Exclusive with [any_domain exact_value]\n Suffix of domain name e.g \"xyz.com\" will match \"*.xyz.com\" and \"xyz.com\"\n\nExample: ` \"xyz.com\"`\n\nValidation Rules:\n ves.io.schema.rules.string.hostname: true\n ves.io.schema.rules.string.max_len: 256\n ves.io.schema.rules.string.min_len: 1\n","title":"suffix value","minLength":1,"maxLength":256,"x-displayname":"Suffix Value","x-ves-example":"xyz.com","x-ves-validation-rules":{"ves.io.schema.rules.string.hostname":"true","ves.io.schema.rules.string.max_len":"256","ves.io.schema.rules.string.min_len":"1"}}}},"policyGraphQLSettingsType":{"type":"object","description":"GraphQL configuration.","title":"GraphQL Settings","x-displayname":"GraphQL Settings","x-ves-oneof-field-allow_introspection_queries_choice":"[\"disable_introspection\",\"enable_introspection\"]","x-ves-proto-message":"ves.io.schema.policy.GraphQLSettingsType","properties":{"disable_introspection":{"$ref":"#/components/schemas/ioschemaEmpty"},"enable_introspection":{"$ref":"#/components/schemas/ioschemaEmpty"},"max_batched_queries":{"type":"integer","description":" Specify maximum number of queries in a single batched request.\n\nExample: ` \"10\"`\n\nRequired: YES\n\nValidation Rules:\n ves.io.schema.rules.message.required: true\n ves.io.schema.rules.uint32.gte: 0\n ves.io.schema.rules.uint32.lte: 20\n","title":"Max Batched Queries","format":"int64","x-displayname":"Maximum Batched Queries","x-ves-example":"10","x-ves-required":"true","x-ves-validation-rules":{"ves.io.schema.rules.message.required":"true","ves.io.schema.rules.uint32.gte":"0","ves.io.schema.rules.uint32.lte":"20"}},"max_depth":{"type":"integer","description":" Specify maximum depth for the GraphQL query.\n\nExample: ` \"10\"`\n\nRequired: YES\n\nValidation Rules:\n ves.io.schema.rules.message.required: true\n ves.io.schema.rules.uint32.gte: 0\n ves.io.schema.rules.uint32.lte: 20\n","title":"Max Depth","format":"int64","x-displayname":"Maximum Structure Depth","x-ves-example":"10","x-ves-required":"true","x-ves-validation-rules":{"ves.io.schema.rules.message.required":"true","ves.io.schema.rules.uint32.gte":"0","ves.io.schema.rules.uint32.lte":"20"}},"max_total_length":{"type":"integer","description":" Specify maximum length in bytes for the GraphQL query.\n\nExample: ` \"5000\"`\n\nRequired: YES\n\nValidation Rules:\n ves.io.schema.rules.message.required: true\n ves.io.schema.rules.uint32.gte: 0\n ves.io.schema.rules.uint32.lte: 16386\n","title":"Max Total Length","format":"int64","x-displayname":"Maximum Total Length","x-ves-example":"5000","x-ves-required":"true","x-ves-validation-rules":{"ves.io.schema.rules.message.required":"true","ves.io.schema.rules.uint32.gte":"0","ves.io.schema.rules.uint32.lte":"16386"}}}},"policyHeaderMatcherTypeBasic":{"type":"object","description":"A header matcher specifies the name of a single HTTP header and the criteria for the input request to match it. The input has a list of actual values for each\nheader name in the original HTTP request.\nA header matcher can check for one of the following:\n* Presence or absence of the header in the input\n* At least one of the values for the header in the input satisfies the MatcherType item","title":"HeaderMatcherTypeBasic","x-displayname":"Header Matcher","x-ves-displayorder":"1,6","x-ves-oneof-field-match":"[\"check_not_present\",\"check_present\",\"item\"]","x-ves-proto-message":"ves.io.schema.policy.HeaderMatcherTypeBasic","properties":{"check_not_present":{"$ref":"#/components/schemas/ioschemaEmpty"},"check_present":{"$ref":"#/components/schemas/ioschemaEmpty"},"item":{"$ref":"#/components/schemas/policyMatcherType"},"name":{"type":"string","description":" A case-insensitive HTTP header name.\n\nExample: ` \"Accept-Encoding\"`\n\nRequired: YES\n\nValidation Rules:\n ves.io.schema.rules.message.required: true\n ves.io.schema.rules.string.http_header_field: true\n ves.io.schema.rules.string.max_bytes: 256\n","title":"name","maxLength":256,"x-displayname":"Header Name","x-ves-example":"Accept-Encoding","x-ves-required":"true","x-ves-validation-rules":{"ves.io.schema.rules.message.required":"true","ves.io.schema.rules.string.http_header_field":"true","ves.io.schema.rules.string.max_bytes":"256"}}}},"policyHttpCookieName":{"type":"object","description":"x-displayName: \"Name of the cookie field\"\nSpecifies the name of the cookie field","title":"HttpCookieName","properties":{"name":{"type":"string","description":"x-displayName: \"Cookie Name\"\nx-example: \"token\"\nx-required\nA case-insensitive cookie name.","title":"name"}}},"policyHttpHeaderName":{"type":"object","description":"x-displayName: \"Name of the field\"\nSpecifies the name of the field","title":"HttpHeaderName","properties":{"name":{"type":"string","description":"x-displayName: \"Header Name\"\nx-example: \"X-Token\"\nx-required\nA case-insensitive field header name.","title":"name"}}},"policyHttpMethodMatcherType":{"type":"object","description":"A http method matcher specifies a list of methods to match an input HTTP method. The match is considered successful if the input method is a member of the list.\nThe result of the match based on the method list is inverted if invert_matcher is true.","title":"HttpMethodMatcherType","x-displayname":"HTTP Method Matcher","x-ves-proto-message":"ves.io.schema.policy.HttpMethodMatcherType","properties":{"invert_matcher":{"type":"boolean","description":" Invert the match result.","title":"invert_matcher","format":"boolean","x-displayname":"Invert Method Matcher"},"methods":{"type":"array","description":" List of methods values to match against.\n\nExample: ` \"['GET', 'POST', 'DELETE']\"`\n\nValidation Rules:\n ves.io.schema.rules.repeated.items.enum.defined_only: true\n ves.io.schema.rules.repeated.max_items: 16\n ves.io.schema.rules.repeated.unique: true\n","title":"methods","maxItems":16,"items":{"$ref":"#/components/schemas/schemaHttpMethod"},"x-displayname":"Method List","x-ves-example":"['GET', 'POST', 'DELETE']","x-ves-validation-rules":{"ves.io.schema.rules.repeated.items.enum.defined_only":"true","ves.io.schema.rules.repeated.max_items":"16","ves.io.schema.rules.repeated.unique":"true"}}}},"policyHttpQueryParameterName":{"type":"object","description":"x-displayName: \"Key name of the query parameter\"\nSpecifies the key name of the query parameter","title":"HttpQueryParameterName","properties":{"key":{"type":"string","description":"x-displayName: \"Query Parameter Name\"\nx-example: \"sourceid\"\nx-required\nA case-sensitive HTTP query parameter name.","title":"key"}}},"policyIPThreatCategory":{"type":"string","description":"The IP threat categories to use when a policy based IP threat category is configured.\n\n - SPAM_SOURCES: SPAM_SOURCES\n\n - WINDOWS_EXPLOITS: WINDOWS_EXPLOITS\n\n - WEB_ATTACKS: WEB_ATTACKS\n\n - BOTNETS: BOTNETS\n\n - SCANNERS: SCANNERS\n\n - REPUTATION: REPUTATION\n\n - PHISHING: PHISHING\n\n - PROXY: PROXY\n\n - MOBILE_THREATS: MOBILE_THREATS\n\n - TOR_PROXY: TOR_PROXY\n\n - DENIAL_OF_SERVICE: DENIAL_OF_SERVICE\n\n - NETWORK: NETWORK\n","title":"IP Threat Category","enum":["SPAM_SOURCES","WINDOWS_EXPLOITS","WEB_ATTACKS","BOTNETS","SCANNERS","REPUTATION","PHISHING","PROXY","MOBILE_THREATS","TOR_PROXY","DENIAL_OF_SERVICE","NETWORK"],"default":"SPAM_SOURCES","x-displayname":"IP Threat Category","x-ves-proto-enum":"ves.io.schema.policy.IPThreatCategory"},"policyIpMatcherType":{"type":"object","description":"Match any ip prefix contained in the list of ip_prefix_sets.\nThe result of the match is inverted if invert_matcher is true.","title":"ip matcher type","x-displayname":"IP Prefix Matcher","x-ves-proto-message":"ves.io.schema.policy.IpMatcherType","properties":{"invert_matcher":{"type":"boolean","description":" Invert the match result.","title":"invert_matcher","format":"boolean","x-displayname":"Invert IP Matcher"},"prefix_sets":{"type":"array","description":" A list of references to ip_prefix_set objects.\n\nRequired: YES\n\nValidation Rules:\n ves.io.schema.rules.message.required: true\n ves.io.schema.rules.repeated.max_items: 4\n","title":"prefix_sets","maxItems":4,"items":{"$ref":"#/components/schemas/ioschemaObjectRefType"},"x-displayname":"IP Prefix Sets","x-ves-required":"true","x-ves-validation-rules":{"ves.io.schema.rules.message.required":"true","ves.io.schema.rules.repeated.max_items":"4"}}}},"policyJA4TlsFingerprintMatcherType":{"type":"object","description":"An extended version of JA3 that includes additional fields for more comprehensive fingerprinting of\nSSL/TLS clients and potentially has a different structure and length.","title":"JA4TlsFingerprintMatcherType","x-displayname":"JA4 TLS Fingerprint Matcher","x-ves-proto-message":"ves.io.schema.policy.JA4TlsFingerprintMatcherType","properties":{"exact_values":{"type":"array","description":" A list of exact JA4 TLS fingerprint to match the input JA4 TLS fingerprint against\n\nValidation Rules:\n ves.io.schema.rules.repeated.items.string.len: 36\n ves.io.schema.rules.repeated.max_items: 16\n ves.io.schema.rules.repeated.unique: true\n","title":"exact values","maxItems":16,"items":{"type":"string"},"x-displayname":"Exact Values","x-ves-validation-rules":{"ves.io.schema.rules.repeated.items.string.len":"36","ves.io.schema.rules.repeated.max_items":"16","ves.io.schema.rules.repeated.unique":"true"}}}},"policyJWTClaimMatcherType":{"type":"object","description":"A JWT claim matcher specifies the name of a single JWT claim and the criteria for the input request to match it.\nThe input has a list of actual values for each JWT claim name in the JWT payload.\nA JWT claim matcher can check for one of the following:\n* Presence or absence of the JWT Claim in the input\n* At least one of the values for the JWT Claim in the input satisfies the MatcherType item","title":"JWTClaimMatcherType","x-displayname":"JWT Claim Matcher","x-ves-displayorder":"1,2,6","x-ves-oneof-field-match":"[\"check_not_present\",\"check_present\",\"item\"]","x-ves-proto-message":"ves.io.schema.policy.JWTClaimMatcherType","properties":{"check_not_present":{"$ref":"#/components/schemas/ioschemaEmpty"},"check_present":{"$ref":"#/components/schemas/ioschemaEmpty"},"invert_matcher":{"type":"boolean","description":" Invert the match result.","title":"invert_matcher","format":"boolean","x-displayname":"Invert Matcher"},"item":{"$ref":"#/components/schemas/policyMatcherType"},"name":{"type":"string","description":" JWT claim name.\n\nExample: ` \"user_id\"`\n\nRequired: YES\n\nValidation Rules:\n ves.io.schema.rules.message.required: true\n ves.io.schema.rules.string.max_bytes: 256\n","title":"name","maxLength":256,"x-displayname":"JWT Claim Name","x-ves-example":"user_id","x-ves-required":"true","x-ves-validation-rules":{"ves.io.schema.rules.message.required":"true","ves.io.schema.rules.string.max_bytes":"256"}}}},"policyJwtTokenAuthOptions":{"type":"object","description":"x-displayName: \"JWT Token Authentication\"\nJWT token Authentication","title":"JwtTokenAuthOptions","properties":{"backup_key":{"$ref":"#/components/schemas/schemaSecretType"},"bearer_token":{"$ref":"#/components/schemas/ioschemaEmpty"},"cookie":{"$ref":"#/components/schemas/policyHttpCookieName"},"header":{"$ref":"#/components/schemas/policyHttpHeaderName"},"query_param":{"$ref":"#/components/schemas/policyHttpQueryParameterName"},"secret_key":{"$ref":"#/components/schemas/schemaSecretType"}}},"policyKnownTlsFingerprintClass":{"type":"string","description":"Specifies known TLS fingerprint classes\n\n - TLS_FINGERPRINT_NONE: TLS_FINGERPRINT_NONE\n\nNo TLS fingerprint\n - ANY_MALICIOUS_FINGERPRINT: ANY_MALICIOUS_FINGERPRINT\n\nTLS fingerprints known to be associated with malicious clients\n - ADWARE: ADWARE\n\nTLS fingerprints known to be associated with adware\n - ADWIND: ADWIND\n\nTLS fingerprints known to be associated with adwind\n - DRIDEX: DRIDEX\n\nTLS fingerprints known to be associated with dridex\n - GOOTKIT: GOOTKIT\n\nTLS fingerprints known to be associated with gootkit\n - GOZI: GOZI\n\nTLS fingerprints known to be associated with gozi\n - JBIFROST: JBIFROST\n\nTLS fingerprints known to be associated with jbifrost\n - QUAKBOT: QUAKBOT\n\nTLS fingerprints known to be associated with quakbot\n - RANSOMWARE: RANSOMWARE\n\nTLS fingerprints known to be associated with ransomware\n - TROLDESH: TROLDESH\n\nTLS fingerprints known to be associated with troldesh\n - TOFSEE: TOFSEE\n\nTLS fingerprints known to be associated with tofsee\n - TORRENTLOCKER: TORRENTLOCKER\n\nTLS fingerprints known to be associated with torrentlocker\n - TRICKBOT: TRICKBOT\n\nTLS fingerprints known to be associated with trickbot","title":"TLS known fingerprint class","enum":["TLS_FINGERPRINT_NONE","ANY_MALICIOUS_FINGERPRINT","ADWARE","ADWIND","DRIDEX","GOOTKIT","GOZI","JBIFROST","QUAKBOT","RANSOMWARE","TROLDESH","TOFSEE","TORRENTLOCKER","TRICKBOT"],"default":"TLS_FINGERPRINT_NONE","x-displayname":"TLS known fingerprint class","x-ves-proto-enum":"ves.io.schema.policy.KnownTlsFingerprintClass"},"policyMatcherType":{"type":"object","description":"A matcher specifies multiple criteria for matching an input string. The match is considered successful if any of the criteria are satisfied. The set\nof supported match criteria includes a list of exact values and a list of regular expressions.","title":"MatcherType","x-displayname":"Matcher","x-ves-proto-message":"ves.io.schema.policy.MatcherType","properties":{"exact_values":{"type":"array","description":" A list of exact values to match the input against.\n\nExample: ` \"['new york', 'london', 'sydney', 'tokyo', 'cairo']\"`\n\nValidation Rules:\n ves.io.schema.rules.repeated.items.string.max_bytes: 256\n ves.io.schema.rules.repeated.items.string.not_empty: true\n ves.io.schema.rules.repeated.max_items: 64\n ves.io.schema.rules.repeated.unique: true\n","title":"exact values","maxItems":64,"items":{"type":"string","maxLength":256},"x-displayname":"Exact Values","x-ves-example":"['new york', 'london', 'sydney', 'tokyo', 'cairo']","x-ves-validation-rules":{"ves.io.schema.rules.repeated.items.string.max_bytes":"256","ves.io.schema.rules.repeated.items.string.not_empty":"true","ves.io.schema.rules.repeated.max_items":"64","ves.io.schema.rules.repeated.unique":"true"}},"regex_values":{"type":"array","description":" A list of regular expressions to match the input against.\n\nExample: ` \"['^new .*$', 'san f.*', '.* del .*']\"`\n\nValidation Rules:\n ves.io.schema.rules.repeated.items.string.max_bytes: 256\n ves.io.schema.rules.repeated.items.string.not_empty: true\n ves.io.schema.rules.repeated.items.string.regex: true\n ves.io.schema.rules.repeated.max_items: 16\n ves.io.schema.rules.repeated.unique: true\n","title":"regex values","maxItems":16,"items":{"type":"string","maxLength":256},"x-displayname":"Regex Values","x-ves-example":"['^new .*$', 'san f.*', '.* del .*']","x-ves-validation-rules":{"ves.io.schema.rules.repeated.items.string.max_bytes":"256","ves.io.schema.rules.repeated.items.string.not_empty":"true","ves.io.schema.rules.repeated.items.string.regex":"true","ves.io.schema.rules.repeated.max_items":"16","ves.io.schema.rules.repeated.unique":"true"}},"transformers":{"type":"array","description":" An ordered list of transformers (starting from index 0) to be applied to the path before matching.\n\nExample: ` \"[BASE64_DECODE, LOWER_CASE]`\n\nValidation Rules:\n ves.io.schema.rules.repeated.max_items: 9\n ves.io.schema.rules.repeated.unique: true\n","title":"transformers","maxItems":9,"items":{"$ref":"#/components/schemas/policyTransformer"},"x-displayname":"Transformers","x-ves-validation-rules":{"ves.io.schema.rules.repeated.max_items":"9","ves.io.schema.rules.repeated.unique":"true"}}}},"policyMatcherTypeBasic":{"type":"object","description":"A matcher specifies multiple criteria for matching an input string. The match is considered successful if any of the criteria are satisfied. The set\nof supported match criteria includes a list of exact values and a list of regular expressions.","title":"MatcherTypeBasic","x-displayname":"Matcher","x-ves-proto-message":"ves.io.schema.policy.MatcherTypeBasic","properties":{"exact_values":{"type":"array","description":" A list of exact values to match the input against.\n\nExample: ` \"['new york', 'london', 'sydney', 'tokyo', 'cairo']\"`\n\nValidation Rules:\n ves.io.schema.rules.repeated.items.string.max_bytes: 256\n ves.io.schema.rules.repeated.items.string.not_empty: true\n ves.io.schema.rules.repeated.max_items: 64\n ves.io.schema.rules.repeated.unique: true\n","title":"exact values","maxItems":64,"items":{"type":"string","maxLength":256},"x-displayname":"Exact Values","x-ves-example":"['new york', 'london', 'sydney', 'tokyo', 'cairo']","x-ves-validation-rules":{"ves.io.schema.rules.repeated.items.string.max_bytes":"256","ves.io.schema.rules.repeated.items.string.not_empty":"true","ves.io.schema.rules.repeated.max_items":"64","ves.io.schema.rules.repeated.unique":"true"}},"regex_values":{"type":"array","description":" A list of regular expressions to match the input against.\n\nExample: ` \"['^new .*$', 'san f.*', '.* del .*']\"`\n\nValidation Rules:\n ves.io.schema.rules.repeated.items.string.max_bytes: 256\n ves.io.schema.rules.repeated.items.string.not_empty: true\n ves.io.schema.rules.repeated.items.string.regex: true\n ves.io.schema.rules.repeated.max_items: 16\n ves.io.schema.rules.repeated.unique: true\n","title":"regex values","maxItems":16,"items":{"type":"string","maxLength":256},"x-displayname":"Regex Values","x-ves-example":"['^new .*$', 'san f.*', '.* del .*']","x-ves-validation-rules":{"ves.io.schema.rules.repeated.items.string.max_bytes":"256","ves.io.schema.rules.repeated.items.string.not_empty":"true","ves.io.schema.rules.repeated.items.string.regex":"true","ves.io.schema.rules.repeated.max_items":"16","ves.io.schema.rules.repeated.unique":"true"}}}},"policyPrefixMatchList":{"type":"object","description":"List of IP Prefix strings to match against.","title":"IP Prefix Match List","x-displayname":"IP Prefix Match List","x-ves-proto-message":"ves.io.schema.policy.PrefixMatchList","properties":{"invert_match":{"type":"boolean","description":" Invert the match result.","title":"invert_matcher","format":"boolean","x-displayname":"Invert Match Result"},"ip_prefixes":{"type":"array","description":" List of IPv4 prefix strings.\n\nExample: ` \"192.168.20.0/24\"`\n\nValidation Rules:\n ves.io.schema.rules.repeated.items.string.ipv4_prefix: true\n ves.io.schema.rules.repeated.items.string.not_empty: true\n ves.io.schema.rules.repeated.max_items: 128\n ves.io.schema.rules.repeated.unique: true\n","title":"ip prefixes","maxItems":128,"items":{"type":"string"},"x-displayname":"IPv4 Prefix List","x-ves-example":"192.168.20.0/24","x-ves-validation-rules":{"ves.io.schema.rules.repeated.items.string.ipv4_prefix":"true","ves.io.schema.rules.repeated.items.string.not_empty":"true","ves.io.schema.rules.repeated.max_items":"128","ves.io.schema.rules.repeated.unique":"true"}}}},"policyRequestMatcher":{"type":"object","description":"Request conditions for matching a rule","title":"Request Matcher","x-displayname":"Request Matcher","x-ves-proto-message":"ves.io.schema.policy.RequestMatcher","properties":{"cookie_matchers":{"type":"array","description":" A list of predicates for all cookies that need to be matched. The criteria for matching each cookie is described in individual instances\n of CookieMatcherType. The actual cookie values are extracted from the request API as a list of strings for each cookie name.\n Note that all specified cookie matcher predicates must evaluate to true.\n\nValidation Rules:\n ves.io.schema.rules.repeated.max_items: 16\n","title":"cookie matchers","maxItems":16,"items":{"$ref":"#/components/schemas/policyCookieMatcherType"},"x-displayname":"Cookie Matchers","x-ves-validation-rules":{"ves.io.schema.rules.repeated.max_items":"16"}},"headers":{"type":"array","description":" A list of predicates for various HTTP headers that need to match. The criteria for matching each HTTP header are described in individual HeaderMatcherType\n instances. The actual HTTP header values are extracted from the request API as a list of strings for each HTTP header type.\n Note that all specified header predicates must evaluate to true.\n\nValidation Rules:\n ves.io.schema.rules.repeated.max_items: 16\n","title":"headers","maxItems":16,"items":{"$ref":"#/components/schemas/schemapolicyHeaderMatcherType"},"x-displayname":"HTTP Headers","x-ves-validation-rules":{"ves.io.schema.rules.repeated.max_items":"16"}},"jwt_claims":{"type":"array","description":" A list of predicates for various JWT claims that need to match. The criteria for matching each JWT claim are described in individual JWTClaimMatcherType\n instances. The actual JWT claims values are extracted from the JWT payload as a list of strings.\n Note that all specified JWT claim predicates must evaluate to true.\n Note that this feature only works on LBs with JWT Validation feature enabled.\n\nValidation Rules:\n ves.io.schema.rules.repeated.max_items: 16\n","title":"JWT claims","maxItems":16,"items":{"$ref":"#/components/schemas/policyJWTClaimMatcherType"},"x-displayname":"JWT Claims","x-ves-validation-rules":{"ves.io.schema.rules.repeated.max_items":"16"}},"query_params":{"type":"array","description":" A list of predicates for all query parameters that need to be matched. The criteria for matching each query parameter are described in individual instances\n of QueryParameterMatcherType. The actual query parameter values are extracted from the request API as a list of strings for each query parameter name.\n Note that all specified query parameter predicates must evaluate to true.\n\nValidation Rules:\n ves.io.schema.rules.repeated.max_items: 16\n","title":"query params","maxItems":16,"items":{"$ref":"#/components/schemas/schemapolicyQueryParameterMatcherType"},"x-displayname":"HTTP Query Parameters","x-ves-validation-rules":{"ves.io.schema.rules.repeated.max_items":"16"}}}},"policyShapeBotBlockMitigationActionType":{"type":"object","description":"Block request and respond with custom content.","title":"ShapeBotBlockMitigationActionType","x-displayname":"Block bot mitigation","x-ves-proto-message":"ves.io.schema.policy.ShapeBotBlockMitigationActionType","properties":{"body":{"type":"string","description":" Custom body message is of type uri_ref. Currently supported URL schemes is string:///.\n For string:/// scheme, message needs to be encoded in Base64 format.\n You can specify this message as base64 encoded plain text message e.g. \"Your request was blocked\"\n or it can be HTML paragraph or a body string encoded as base64 string\n E.g. \"<p> Your request was blocked </p>\". Base64 encoded string for this html is \"LzxwPiBZb3VyIHJlcXVlc3Qgd2FzIGJsb2NrZWQgPC9wPg==\"\n\nExample: ` \"string://LzxwPiBZb3VyIHJlcXVlc3Qgd2FzIGJsb2NrZWQgPC9wPg==\"`\n\nValidation Rules:\n ves.io.schema.rules.string.max_len: 4096\n ves.io.schema.rules.string.uri_ref: true\n","title":"body","maxLength":4096,"x-displayname":"Body","x-ves-example":"string://LzxwPiBZb3VyIHJlcXVlc3Qgd2FzIGJsb2NrZWQgPC9wPg==","x-ves-validation-rules":{"ves.io.schema.rules.string.max_len":"4096","ves.io.schema.rules.string.uri_ref":"true"}},"status":{"$ref":"#/components/schemas/schemaHttpStatusCode"}}},"policyShapeBotFlagMitigationActionChoiceType":{"type":"object","description":"Flag mitigation action.","title":"ShapeBotFlagMitigationActionChoiceType","x-displayname":"Select Flag Bot Mitigation Action","x-ves-oneof-field-send_headers_choice":"[\"append_headers\",\"no_headers\"]","x-ves-proto-message":"ves.io.schema.policy.ShapeBotFlagMitigationActionChoiceType","properties":{"append_headers":{"$ref":"#/components/schemas/policyShapeBotFlagMitigationActionType"},"no_headers":{"$ref":"#/components/schemas/ioschemaEmpty"}}},"policyShapeBotFlagMitigationActionType":{"type":"object","description":"Append flag mitigation headers to forwarded request.","title":"ShapeBotFlagMitigationActionType","x-displayname":"Append Flag Mitigation Headers","x-ves-proto-message":"ves.io.schema.policy.ShapeBotFlagMitigationActionType","properties":{"auto_type_header_name":{"type":"string","description":" A case-insensitive HTTP header name.\n\nExample: ` \"Bot-Automation-Type\"`\n\nRequired: YES\n\nValidation Rules:\n ves.io.schema.rules.message.required: true\n ves.io.schema.rules.string.http_header_field: true\n ves.io.schema.rules.string.max_bytes: 256\n","title":"auto_type_header_name","maxLength":256,"x-displayname":"Automation Type Header Name","x-ves-example":"Bot-Automation-Type","x-ves-required":"true","x-ves-validation-rules":{"ves.io.schema.rules.message.required":"true","ves.io.schema.rules.string.http_header_field":"true","ves.io.schema.rules.string.max_bytes":"256"}},"inference_header_name":{"type":"string","description":" A case-insensitive HTTP header name.\n\nExample: ` \"Bot-Inference\"`\n\nRequired: YES\n\nValidation Rules:\n ves.io.schema.rules.message.required: true\n ves.io.schema.rules.string.http_header_field: true\n ves.io.schema.rules.string.max_bytes: 256\n","title":"inference_header_name","maxLength":256,"x-displayname":"Inference Header Name","x-ves-example":"Bot-Inference","x-ves-required":"true","x-ves-validation-rules":{"ves.io.schema.rules.message.required":"true","ves.io.schema.rules.string.http_header_field":"true","ves.io.schema.rules.string.max_bytes":"256"}}}},"policyShapeBotMitigationAction":{"type":"object","description":"Modify Bot Defense behavior for a matching request.","title":"ShapeBotMitigationAction","x-displayname":"Bot Mitigation Action","x-ves-oneof-field-action_type":"[\"block\",\"flag\",\"redirect\"]","x-ves-proto-message":"ves.io.schema.policy.ShapeBotMitigationAction","properties":{"block":{"$ref":"#/components/schemas/policyShapeBotBlockMitigationActionType"},"flag":{"$ref":"#/components/schemas/policyShapeBotFlagMitigationActionChoiceType"},"redirect":{"$ref":"#/components/schemas/policyShapeBotRedirectMitigationActionType"}}},"policyShapeBotRedirectMitigationActionType":{"type":"object","description":"Redirect request to a custom URI.","title":"ShapeBotRedirectMitigationTypeAction","x-displayname":"Redirect bot mitigation","x-ves-proto-message":"ves.io.schema.policy.ShapeBotRedirectMitigationActionType","properties":{"uri":{"type":"string","description":" URI location for redirect may be relative or absolute.\n\nExample: ` \"Enter URI\"`\n\nRequired: YES\n\nValidation Rules:\n ves.io.schema.rules.message.required: true\n ves.io.schema.rules.string.url_or_uri_ref: true\n","title":"URI","x-displayname":"URI","x-ves-example":"Enter URI","x-ves-required":"true","x-ves-validation-rules":{"ves.io.schema.rules.message.required":"true","ves.io.schema.rules.string.url_or_uri_ref":"true"}}}},"policySimpleDataGuardRule":{"type":"object","description":"Simple Data Guard rule specifies a simple set of match conditions to enable data guard protection","title":"SimpleDataGuardRule","x-displayname":"Data Guard Rule Specification (Data Leakage Protection)","x-ves-displayorder":"10,14,3,6","x-ves-oneof-field-action_choice":"[\"apply_data_guard\",\"skip_data_guard\"]","x-ves-oneof-field-domain_choice":"[\"any_domain\",\"exact_value\",\"suffix_value\"]","x-ves-proto-message":"ves.io.schema.policy.SimpleDataGuardRule","properties":{"any_domain":{"$ref":"#/components/schemas/ioschemaEmpty"},"apply_data_guard":{"$ref":"#/components/schemas/ioschemaEmpty"},"exact_value":{"type":"string","description":"Exclusive with [any_domain suffix_value]\n Exact domain name\n\nExample: ` \"abc.zyz.com\"`\n\nValidation Rules:\n ves.io.schema.rules.string.hostname: true\n ves.io.schema.rules.string.max_len: 256\n ves.io.schema.rules.string.min_len: 1\n","title":"exact value","minLength":1,"maxLength":256,"x-displayname":"Exact Value","x-ves-example":"abc.zyz.com","x-ves-validation-rules":{"ves.io.schema.rules.string.hostname":"true","ves.io.schema.rules.string.max_len":"256","ves.io.schema.rules.string.min_len":"1"}},"metadata":{"$ref":"#/components/schemas/schemaMessageMetaType"},"path":{"$ref":"#/components/schemas/ioschemaPathMatcherType"},"skip_data_guard":{"$ref":"#/components/schemas/ioschemaEmpty"},"suffix_value":{"type":"string","description":"Exclusive with [any_domain exact_value]\n Suffix of domain name e.g \"xyz.com\" will match \"*.xyz.com\" and \"xyz.com\"\n\nExample: ` \"xyz.com\"`\n\nValidation Rules:\n ves.io.schema.rules.string.hostname: true\n ves.io.schema.rules.string.max_len: 256\n ves.io.schema.rules.string.min_len: 1\n","title":"suffix value","minLength":1,"maxLength":256,"x-displayname":"Suffix Value","x-ves-example":"xyz.com","x-ves-validation-rules":{"ves.io.schema.rules.string.hostname":"true","ves.io.schema.rules.string.max_len":"256","ves.io.schema.rules.string.min_len":"1"}}}},"policySimpleWafExclusionRule":{"type":"object","description":"Simple WAF exclusion rule specifies a simple set of match conditions to be matched to skip a list of WAF detections","title":"SimpleWafExclusionRule","x-displayname":"WAF Exclusion Rule","x-ves-displayorder":"10,3,16,7,14,9","x-ves-oneof-field-domain_choice":"[\"any_domain\",\"exact_value\",\"suffix_value\"]","x-ves-oneof-field-path_choice":"[\"any_path\",\"path_prefix\",\"path_regex\"]","x-ves-oneof-field-waf_advanced_configuration":"[\"app_firewall_detection_control\",\"waf_skip_processing\"]","x-ves-proto-message":"ves.io.schema.policy.SimpleWafExclusionRule","properties":{"any_domain":{"$ref":"#/components/schemas/ioschemaEmpty"},"any_path":{"$ref":"#/components/schemas/ioschemaEmpty"},"app_firewall_detection_control":{"$ref":"#/components/schemas/policyAppFirewallDetectionControl"},"exact_value":{"type":"string","description":"Exclusive with [any_domain suffix_value]\n Exact domain name\n\nExample: ` \"abc.zyz.com\"`\n\nValidation Rules:\n ves.io.schema.rules.string.hostname: true\n ves.io.schema.rules.string.max_len: 256\n ves.io.schema.rules.string.min_len: 1\n","title":"exact value","minLength":1,"maxLength":256,"x-displayname":"Exact Value","x-ves-example":"abc.zyz.com","x-ves-validation-rules":{"ves.io.schema.rules.string.hostname":"true","ves.io.schema.rules.string.max_len":"256","ves.io.schema.rules.string.min_len":"1"}},"expiration_timestamp":{"type":"string","description":" The expiration_timestamp is the RFC 3339 format timestamp at which the containing rule is considered to be logically expired. The rule continues to exist in\n the configuration but is not applied anymore.\n\nExample: ` \"2019-12-31:44:34.171543432Z\"`","title":"expiration timestamp","format":"date-time","x-displayname":"Expiration Timestamp","x-ves-example":"2019-12-31:44:34.171543432Z"},"metadata":{"$ref":"#/components/schemas/schemaMessageMetaType"},"methods":{"type":"array","description":" methods to be matched\n\nExample: ` \"GET\"`\n\nValidation Rules:\n ves.io.schema.rules.repeated.items.enum.defined_only: true\n ves.io.schema.rules.repeated.max_items: 16\n ves.io.schema.rules.repeated.unique: true\n","title":"Methods","maxItems":16,"items":{"$ref":"#/components/schemas/schemaHttpMethod"},"x-displayname":"Methods","x-ves-example":"GET","x-ves-validation-rules":{"ves.io.schema.rules.repeated.items.enum.defined_only":"true","ves.io.schema.rules.repeated.max_items":"16","ves.io.schema.rules.repeated.unique":"true"}},"path_prefix":{"type":"string","description":"Exclusive with [any_path path_regex]\n Path prefix to match (e.g. the value / will match on all paths)\n\nExample: ` \"/register/\"`\n\nValidation Rules:\n ves.io.schema.rules.string.http_path: true\n ves.io.schema.rules.string.max_len: 256\n","title":"prefix","maxLength":256,"x-displayname":"Prefix","x-ves-example":"/register/","x-ves-validation-rules":{"ves.io.schema.rules.string.http_path":"true","ves.io.schema.rules.string.max_len":"256"}},"path_regex":{"type":"string","description":"Exclusive with [any_path path_prefix]\n Define the regex for the path. For example, the regex ^/.*$ will match on all paths\n\nExample: ` \"/blog_id/.*\"`\n\nValidation Rules:\n ves.io.schema.rules.string.max_bytes: 256\n ves.io.schema.rules.string.regex: true\n","title":"Path Regex","maxLength":256,"x-displayname":"Path Regex","x-ves-example":"/blog_id/.*","x-ves-validation-rules":{"ves.io.schema.rules.string.max_bytes":"256","ves.io.schema.rules.string.regex":"true"}},"suffix_value":{"type":"string","description":"Exclusive with [any_domain exact_value]\n Suffix of domain name e.g \"xyz.com\" will match \"*.xyz.com\" and \"xyz.com\"\n\nExample: ` \"xyz.com\"`\n\nValidation Rules:\n ves.io.schema.rules.string.hostname: true\n ves.io.schema.rules.string.max_len: 256\n ves.io.schema.rules.string.min_len: 1\n","title":"suffix value","minLength":1,"maxLength":256,"x-displayname":"Suffix Value","x-ves-example":"xyz.com","x-ves-validation-rules":{"ves.io.schema.rules.string.hostname":"true","ves.io.schema.rules.string.max_len":"256","ves.io.schema.rules.string.min_len":"1"}},"waf_skip_processing":{"$ref":"#/components/schemas/ioschemaEmpty"}}},"policyTlsFingerprintMatcherType":{"type":"object","description":"A TLS fingerprint matcher specifies multiple criteria for matching a TLS fingerprint. The set of supported positve match criteria includes a list of known\nclasses of TLS fingerprints and a list of exact values. The match is considered successful if either of these positive criteria are satisfied and the input\nfingerprint is not one of the excluded values.","title":"TlsFingerprintMatcherType","x-displayname":"TLS Fingerprint Matcher","x-ves-proto-message":"ves.io.schema.policy.TlsFingerprintMatcherType","properties":{"classes":{"type":"array","description":" A list of known classes of TLS fingerprints to match the input TLS JA3 fingerprint against.\n\nExample: ` \"['ADWARE', 'TRICKBOT']`\n\nValidation Rules:\n ves.io.schema.rules.repeated.max_items: 16\n ves.io.schema.rules.repeated.unique: true\n","title":"classes","maxItems":16,"items":{"$ref":"#/components/schemas/policyKnownTlsFingerprintClass"},"x-displayname":"TLS fingerprint classes","x-ves-validation-rules":{"ves.io.schema.rules.repeated.max_items":"16","ves.io.schema.rules.repeated.unique":"true"}},"exact_values":{"type":"array","description":" A list of exact TLS JA3 fingerprints to match the input TLS JA3 fingerprint against.\n\nExample: ` \"['ed6dfd54b01ebe31b7a65b88abfa7297', '16efcf0e00504ddfedde13bfea997952', 'de364c46b0dfc283b5e38c79ceae3f8f']\"`\n\nValidation Rules:\n ves.io.schema.rules.repeated.items.string.len: 32\n ves.io.schema.rules.repeated.max_items: 16\n ves.io.schema.rules.repeated.unique: true\n","title":"exact values","maxItems":16,"items":{"type":"string"},"x-displayname":"Exact Values","x-ves-example":"['ed6dfd54b01ebe31b7a65b88abfa7297', '16efcf0e00504ddfedde13bfea997952', 'de364c46b0dfc283b5e38c79ceae3f8f']","x-ves-validation-rules":{"ves.io.schema.rules.repeated.items.string.len":"32","ves.io.schema.rules.repeated.max_items":"16","ves.io.schema.rules.repeated.unique":"true"}},"excluded_values":{"type":"array","description":" A list of TLS JA3 fingerprints to be excluded when matching the input TLS JA3 fingerprint. This can be used to skip known false positives when using one\n or more known TLS fingerprint classes in the enclosing matcher.\n\nExample: ` \"['fb00055a1196aeea8d1bc609885ba953', 'b386946a5a44d1ddcc843bc75336dfce']\"`\n\nValidation Rules:\n ves.io.schema.rules.repeated.items.string.len: 32\n ves.io.schema.rules.repeated.max_items: 32\n ves.io.schema.rules.repeated.unique: true\n","title":"excluded values","maxItems":32,"items":{"type":"string"},"x-displayname":"Excluded Values","x-ves-example":"['fb00055a1196aeea8d1bc609885ba953', 'b386946a5a44d1ddcc843bc75336dfce']","x-ves-validation-rules":{"ves.io.schema.rules.repeated.items.string.len":"32","ves.io.schema.rules.repeated.max_items":"32","ves.io.schema.rules.repeated.unique":"true"}}}},"policyTransformer":{"type":"string","description":"Transformers to be applied on the part of the request before matching.\n\n - TRANSFORMER_NONE: transformer none\n\nNo transformers enabled\n - LOWER_CASE: lower case\n\nConvert string to lower case\n - UPPER_CASE: upper case\n\nConvert string to upper case\n - BASE64_DECODE: base64 decode\n\nDecode string assuming base64 encoding\n - NORMALIZE_PATH: normalize path\n\nNormalize URL path so that /a/b/../c will be transformed to /a/c\n - REMOVE_WHITESPACE: remove whitespace\n\nRemove whitespaces\n - URL_DECODE: URL decode\n\nDecode string assuming URL encoding as per rfc1738\n - TRIM_LEFT: trim left\n\nRemove whitespace from the left side of the input string\n - TRIM_RIGHT: trim right\n\nRemove whitespace from the right side of the input string\n - TRIM: trim\n\nRemove whitespace from the both sides of the input string","title":"Transformer","enum":["LOWER_CASE","UPPER_CASE","BASE64_DECODE","NORMALIZE_PATH","REMOVE_WHITESPACE","URL_DECODE","TRIM_LEFT","TRIM_RIGHT","TRIM"],"default":"TRANSFORMER_NONE","x-displayname":"Transformer","x-ves-proto-enum":"ves.io.schema.policy.Transformer"},"protobufAny":{"type":"object","description":"`Any` contains an arbitrary serialized protocol buffer message along with a\nURL that describes the type of the serialized message.\n\nProtobuf library provides support to pack/unpack Any values in the form\nof utility functions or additional generated methods of the Any type.\n\nExample 1: Pack and unpack a message in C++.\n\n Foo foo = ...;\n Any any;\n any.PackFrom(foo);\n ...\n if (any.UnpackTo(&foo)) {\n ...\n }\n\nExample 2: Pack and unpack a message in Java.\n\n Foo foo = ...;\n Any any = Any.pack(foo);\n ...\n if (any.is(Foo.class)) {\n foo = any.unpack(Foo.class);\n }\n\n Example 3: Pack and unpack a message in Python.\n\n foo = Foo(...)\n any = Any()\n any.Pack(foo)\n ...\n if any.Is(Foo.DESCRIPTOR):\n any.Unpack(foo)\n ...\n\n Example 4: Pack and unpack a message in Go\n\n foo := &pb.Foo{...}\n any, err := ptypes.MarshalAny(foo)\n ...\n foo := &pb.Foo{}\n if err := ptypes.UnmarshalAny(any, foo); err != nil {\n ...\n }\n\nThe pack methods provided by protobuf library will by default use\n'type.googleapis.com/full.type.name' as the type URL and the unpack\nmethods only use the fully qualified type name after the last '/'\nin the type URL, for example \"foo.bar.com/x/y.z\" will yield type\nname \"y.z\".\n\n\nJSON\n====\nThe JSON representation of an `Any` value uses the regular\nrepresentation of the deserialized, embedded message, with an\nadditional field `@type` which contains the type URL. Example:\n\n package google.profile;\n message Person {\n string first_name = 1;\n string last_name = 2;\n }\n\n {\n \"@type\": \"type.googleapis.com/google.profile.Person\",\n \"firstName\": <string>,\n \"lastName\": <string>\n }\n\nIf the embedded message type is well-known and has a custom JSON\nrepresentation, that representation will be embedded adding a field\n`value` which holds the custom JSON in addition to the `@type`\nfield. Example (for message [google.protobuf.Duration][]):\n\n {\n \"@type\": \"type.googleapis.com/google.protobuf.Duration\",\n \"value\": \"1.212s\"\n }","properties":{"type_url":{"type":"string","description":"A URL/resource name that uniquely identifies the type of the serialized\nprotocol buffer message. This string must contain at least\none \"/\" character. The last segment of the URL's path must represent\nthe fully qualified name of the type (as in\n`path/google.protobuf.Duration`). The name should be in a canonical form\n(e.g., leading \".\" is not accepted).\n\nIn practice, teams usually precompile into the binary all types that they\nexpect it to use in the context of Any. However, for URLs which use the\nscheme `http`, `https`, or no scheme, one can optionally set up a type\nserver that maps type URLs to message definitions as follows:\n\n* If no scheme is provided, `https` is assumed.\n* An HTTP GET on the URL must yield a [google.protobuf.Type][]\n value in binary format, or produce an error.\n* Applications are allowed to cache lookup results based on the\n URL, or have them precompiled into a binary to avoid any\n lookup. Therefore, binary compatibility needs to be preserved\n on changes to types. (Use versioned type names to manage\n breaking changes.)\n\nNote: this functionality is not currently available in the official\nprotobuf release, and it is not used for type URLs beginning with\ntype.googleapis.com.\n\nSchemes other than `http`, `https` (or the empty scheme) might be\nused with implementation specific semantics."},"value":{"type":"string","description":"Must be a valid serialized protocol buffer of the above specified type.","format":"byte"}}},"rate_limiterInputHours":{"type":"object","description":"Input Duration Hours","title":"Hours","x-displayname":"Hours","x-ves-proto-message":"ves.io.schema.rate_limiter.InputHours","properties":{"duration":{"type":"integer","description":"\n\nValidation Rules:\n ves.io.schema.rules.uint32.gt: 0\n ves.io.schema.rules.uint32.lte: 48\n","title":"Duration","format":"int64","x-displayname":"Duration","x-ves-validation-rules":{"ves.io.schema.rules.uint32.gt":"0","ves.io.schema.rules.uint32.lte":"48"}}}},"rate_limiterInputMinutes":{"type":"object","description":"Input Duration Minutes","title":"Minutes","x-displayname":"Minutes","x-ves-proto-message":"ves.io.schema.rate_limiter.InputMinutes","properties":{"duration":{"type":"integer","description":"\n\nValidation Rules:\n ves.io.schema.rules.uint32.gt: 0\n ves.io.schema.rules.uint32.lte: 60\n","title":"Duration","format":"int64","x-displayname":"Duration","x-ves-validation-rules":{"ves.io.schema.rules.uint32.gt":"0","ves.io.schema.rules.uint32.lte":"60"}}}},"rate_limiterInputSeconds":{"type":"object","description":"Input Duration Seconds","title":"Seconds","x-displayname":"Seconds","x-ves-proto-message":"ves.io.schema.rate_limiter.InputSeconds","properties":{"duration":{"type":"integer","description":"\n\nValidation Rules:\n ves.io.schema.rules.uint32.gt: 0\n ves.io.schema.rules.uint32.lte: 300\n","title":"Duration","format":"int64","x-displayname":"Duration","x-ves-validation-rules":{"ves.io.schema.rules.uint32.gt":"0","ves.io.schema.rules.uint32.lte":"300"}}}},"rate_limiterLeakyBucketRateLimiter":{"type":"object","description":"Leaky-Bucket is the default rate limiter algorithm for F5","title":"LeakyBucketRateLimiter","x-displayname":"Leaky Bucket Rate Limiter","x-ves-proto-message":"ves.io.schema.rate_limiter.LeakyBucketRateLimiter"},"rate_limiterRateLimitBlockAction":{"type":"object","description":"Action where a user is blocked from making further requests after exceeding rate limit threshold.","title":"RateLimitBlockAction","x-displayname":"Rate Limit Block Action","x-ves-oneof-field-block_duration_choice":"[\"hours\",\"minutes\",\"seconds\"]","x-ves-proto-message":"ves.io.schema.rate_limiter.RateLimitBlockAction","properties":{"hours":{"$ref":"#/components/schemas/rate_limiterInputHours"},"minutes":{"$ref":"#/components/schemas/rate_limiterInputMinutes"},"seconds":{"$ref":"#/components/schemas/rate_limiterInputSeconds"}}},"rate_limiterRateLimitPeriodUnit":{"type":"string","description":"Unit for the period per which the rate limit is applied.\n\n - SECOND: Second\n\nRate limit period unit is seconds\n - MINUTE: Minute\n\nRate limit period unit is minutes\n - HOUR: Hour\n\nRate limit period unit is hours\n - DAY: Day\n\nRate limit period unit is days","title":"RateLimitPeriodUnit","enum":["SECOND","MINUTE","HOUR"],"default":"SECOND","x-displayname":"Rate Limit Period Unit","x-ves-proto-enum":"ves.io.schema.rate_limiter.RateLimitPeriodUnit"},"rate_limiterRateLimitValue":{"type":"object","description":"A tuple consisting of a rate limit period unit and the total number of allowed requests for that period.","title":"RateLimitValue","x-displayname":"Rate Limit Value","x-ves-oneof-field-action_choice":"[\"action_block\",\"disabled\"]","x-ves-oneof-field-algorithm":"[\"leaky_bucket\",\"token_bucket\"]","x-ves-proto-message":"ves.io.schema.rate_limiter.RateLimitValue","properties":{"action_block":{"$ref":"#/components/schemas/rate_limiterRateLimitBlockAction"},"burst_multiplier":{"type":"integer","description":" The maximum burst of requests to accommodate, expressed as a multiple of the rate.\n\nExample: ` \"1\"`\n\nValidation Rules:\n ves.io.schema.rules.uint32.gt: 0\n ves.io.schema.rules.uint32.lte: 100\n","title":"burst_multiplier","format":"int64","x-displayname":"Burst Multiplier","x-ves-example":"1","x-ves-validation-rules":{"ves.io.schema.rules.uint32.gt":"0","ves.io.schema.rules.uint32.lte":"100"}},"disabled":{"$ref":"#/components/schemas/ioschemaEmpty"},"leaky_bucket":{"$ref":"#/components/schemas/rate_limiterLeakyBucketRateLimiter"},"period_multiplier":{"type":"integer","description":" This setting, combined with Per Period units, provides a duration \n\nExample: ` \"1\"`\n\nValidation Rules:\n ves.io.schema.rules.uint32.gte: 0\n","title":"period_multiplier","format":"int64","x-displayname":"Periods","x-ves-example":"1","x-ves-validation-rules":{"ves.io.schema.rules.uint32.gte":"0"}},"token_bucket":{"$ref":"#/components/schemas/rate_limiterTokenBucketRateLimiter"},"total_number":{"type":"integer","description":" The total number of allowed requests per rate-limiting period.\n\nExample: ` \"1\"`\n\nRequired: YES\n\nValidation Rules:\n ves.io.schema.rules.message.required: true\n ves.io.schema.rules.uint32.gt: 0\n ves.io.schema.rules.uint32.lte: 8192\n","title":"total_number","format":"int64","x-displayname":"Number Of Requests","x-ves-example":"1","x-ves-required":"true","x-ves-validation-rules":{"ves.io.schema.rules.message.required":"true","ves.io.schema.rules.uint32.gt":"0","ves.io.schema.rules.uint32.lte":"8192"}},"unit":{"$ref":"#/components/schemas/rate_limiterRateLimitPeriodUnit"}}},"rate_limiterTokenBucketRateLimiter":{"type":"object","description":"Token-Bucket is a rate limiter algorithm that is stricter with enforcing limits","title":"TokenBucketRateLimiter","x-displayname":"Token Bucket Rate Limiter","x-ves-proto-message":"ves.io.schema.rate_limiter.TokenBucketRateLimiter"},"rate_limiter_policyPolicyList":{"type":"object","description":"List of rate limiter policies to be applied.","title":"Rate Limiter Policy List","x-displayname":"Rate Limiter Policy List","x-ves-proto-message":"ves.io.schema.views.rate_limiter_policy.PolicyList","properties":{"policies":{"type":"array","description":" Ordered list of rate limiter policies.\n\nRequired: YES\n\nValidation Rules:\n ves.io.schema.rules.message.required: true\n ves.io.schema.rules.repeated.max_items: 16\n","title":"Rate Limiter Policies","maxItems":16,"items":{"$ref":"#/components/schemas/schemaviewsObjectRefType"},"x-displayname":"Rate Limiter Policies","x-ves-required":"true","x-ves-validation-rules":{"ves.io.schema.rules.message.required":"true","ves.io.schema.rules.repeated.max_items":"16"}}}},"schemaAction":{"type":"object","title":"action","x-displayname":"Action","x-ves-oneof-field-action_choice":"[\"block\",\"report\"]","x-ves-proto-message":"ves.io.schema.Action","properties":{"block":{"$ref":"#/components/schemas/ioschemaEmpty"},"report":{"$ref":"#/components/schemas/ioschemaEmpty"}}},"schemaBlindfoldSecretInfoType":{"type":"object","description":"BlindfoldSecretInfoType specifies information about the Secret managed by F5XC Secret Management","title":"BlindfoldSecretInfoType","x-displayname":"Blindfold Secret","x-ves-displayorder":"3,1,2","x-ves-proto-message":"ves.io.schema.BlindfoldSecretInfoType","properties":{"decryption_provider":{"type":"string","description":" Name of the Secret Management Access object that contains information about the backend Secret Management service.\n\nExample: ` \"value\"`","title":"Decryption Provider","x-displayname":"Decryption Provider","x-ves-example":"value"},"location":{"type":"string","description":" Location is the uri_ref. It could be in url format for string:///\n Or it could be a path if the store provider is an http/https location\n\nExample: ` \"string:///U2VjcmV0SW5mb3JtYXRpb24=\"`\n\nRequired: YES\n\nValidation Rules:\n ves.io.schema.rules.message.required: true\n ves.io.schema.rules.string.uri_ref: true\n","title":"Location","x-displayname":"Location","x-ves-example":"string:///U2VjcmV0SW5mb3JtYXRpb24=","x-ves-required":"true","x-ves-validation-rules":{"ves.io.schema.rules.message.required":"true","ves.io.schema.rules.string.uri_ref":"true"}},"store_provider":{"type":"string","description":" Name of the Secret Management Access object that contains information about the store to get encrypted bytes\n This field needs to be provided only if the url scheme is not string:///\n\nExample: ` \"value\"`","title":"Store Provider","x-displayname":"Store Provider","x-ves-example":"value"}}},"schemaBotDefenseFlowLabelAccountManagementChoiceType":{"type":"object","description":"Bot Defense Flow Label Account Management Category","title":"BotDefenseFlowLabelAccountManagementChoiceType","x-displayname":"Bot Defense Flow Label Account Management Category","x-ves-oneof-field-label_choice":"[\"create\",\"password_reset\"]","x-ves-proto-message":"ves.io.schema.BotDefenseFlowLabelAccountManagementChoiceType","properties":{"create":{"$ref":"#/components/schemas/ioschemaEmpty"},"password_reset":{"$ref":"#/components/schemas/ioschemaEmpty"}}},"schemaBotDefenseFlowLabelAuthenticationChoiceType":{"type":"object","description":"Bot Defense Flow Label Authentication Category","title":"BotDefenseFlowLabelCategoryChoiceType","x-displayname":"Bot Defense Flow Label Authentication Category","x-ves-oneof-field-label_choice":"[\"login\",\"login_mfa\",\"login_partner\",\"logout\",\"token_refresh\"]","x-ves-proto-message":"ves.io.schema.BotDefenseFlowLabelAuthenticationChoiceType","properties":{"login":{"$ref":"#/components/schemas/schemaBotDefenseTransactionResult"},"login_mfa":{"$ref":"#/components/schemas/ioschemaEmpty"},"login_partner":{"$ref":"#/components/schemas/ioschemaEmpty"},"logout":{"$ref":"#/components/schemas/ioschemaEmpty"},"token_refresh":{"$ref":"#/components/schemas/ioschemaEmpty"}}},"schemaBotDefenseFlowLabelCategoriesChoiceType":{"type":"object","description":"Bot Defense Flow Label Category allows to associate traffic with selected category","title":"BotDefenseFlowLabelCategoryChoiceType","x-displayname":"Bot Defense Flow Label Category","x-ves-oneof-field-flow_label_choice":"[\"account_management\",\"authentication\",\"financial_services\",\"flight\",\"profile_management\",\"search\",\"shopping_gift_cards\"]","x-ves-proto-message":"ves.io.schema.BotDefenseFlowLabelCategoriesChoiceType","properties":{"account_management":{"$ref":"#/components/schemas/schemaBotDefenseFlowLabelAccountManagementChoiceType"},"authentication":{"$ref":"#/components/schemas/schemaBotDefenseFlowLabelAuthenticationChoiceType"},"financial_services":{"$ref":"#/components/schemas/schemaBotDefenseFlowLabelFinancialServicesChoiceType"},"flight":{"$ref":"#/components/schemas/schemaBotDefenseFlowLabelFlightChoiceType"},"profile_management":{"$ref":"#/components/schemas/schemaBotDefenseFlowLabelProfileManagementChoiceType"},"search":{"$ref":"#/components/schemas/schemaBotDefenseFlowLabelSearchChoiceType"},"shopping_gift_cards":{"$ref":"#/components/schemas/schemaBotDefenseFlowLabelShoppingGiftCardsChoiceType"}}},"schemaBotDefenseFlowLabelFinancialServicesChoiceType":{"type":"object","description":"Bot Defense Flow Label Financial Services Category","title":"BotDefenseFlowLabelFinancialServicesChoiceType","x-displayname":"Bot Defense Flow Label Financial Services Category","x-ves-oneof-field-label_choice":"[\"apply\",\"money_transfer\"]","x-ves-proto-message":"ves.io.schema.BotDefenseFlowLabelFinancialServicesChoiceType","properties":{"apply":{"$ref":"#/components/schemas/ioschemaEmpty"},"money_transfer":{"$ref":"#/components/schemas/ioschemaEmpty"}}},"schemaBotDefenseFlowLabelFlightChoiceType":{"type":"object","description":"Bot Defense Flow Label Flight Category","title":"BotDefenseFlowLabelFlightChoiceType","x-displayname":"Bot Defense Flow Label Flight Category","x-ves-oneof-field-label_choice":"[\"checkin\"]","x-ves-proto-message":"ves.io.schema.BotDefenseFlowLabelFlightChoiceType","properties":{"checkin":{"$ref":"#/components/schemas/ioschemaEmpty"}}},"schemaBotDefenseFlowLabelProfileManagementChoiceType":{"type":"object","description":"Bot Defense Flow Label Profile Management Category","title":"BotDefenseFlowLabelProfileManagementChoiceType","x-displayname":"Bot Defense Flow Label Profile Management Category","x-ves-oneof-field-label_choice":"[\"create\",\"update\",\"view\"]","x-ves-proto-message":"ves.io.schema.BotDefenseFlowLabelProfileManagementChoiceType","properties":{"create":{"$ref":"#/components/schemas/ioschemaEmpty"},"update":{"$ref":"#/components/schemas/ioschemaEmpty"},"view":{"$ref":"#/components/schemas/ioschemaEmpty"}}},"schemaBotDefenseFlowLabelSearchChoiceType":{"type":"object","description":"Bot Defense Flow Label Search Category","title":"BotDefenseFlowLabelSearchChoiceType","x-displayname":"Bot Defense Flow Label Search Category","x-ves-oneof-field-label_choice":"[\"flight_search\",\"product_search\",\"reservation_search\",\"room_search\"]","x-ves-proto-message":"ves.io.schema.BotDefenseFlowLabelSearchChoiceType","properties":{"flight_search":{"$ref":"#/components/schemas/ioschemaEmpty"},"product_search":{"$ref":"#/components/schemas/ioschemaEmpty"},"reservation_search":{"$ref":"#/components/schemas/ioschemaEmpty"},"room_search":{"$ref":"#/components/schemas/ioschemaEmpty"}}},"schemaBotDefenseFlowLabelShoppingGiftCardsChoiceType":{"type":"object","description":"Bot Defense Flow Label Shopping & Gift Cards Category","title":"BotDefenseFlowLabelShoppingGiftCardsChoiceType","x-displayname":"Bot Defense Flow Label Shopping & Gift Cards Category","x-ves-oneof-field-label_choice":"[\"gift_card_make_purchase_with_gift_card\",\"gift_card_validation\",\"shop_add_to_cart\",\"shop_checkout\",\"shop_choose_seat\",\"shop_enter_drawing_submission\",\"shop_make_payment\",\"shop_order\",\"shop_price_inquiry\",\"shop_promo_code_validation\",\"shop_purchase_gift_card\",\"shop_update_quantity\"]","x-ves-proto-message":"ves.io.schema.BotDefenseFlowLabelShoppingGiftCardsChoiceType","properties":{"gift_card_make_purchase_with_gift_card":{"$ref":"#/components/schemas/ioschemaEmpty"},"gift_card_validation":{"$ref":"#/components/schemas/ioschemaEmpty"},"shop_add_to_cart":{"$ref":"#/components/schemas/ioschemaEmpty"},"shop_checkout":{"$ref":"#/components/schemas/ioschemaEmpty"},"shop_choose_seat":{"$ref":"#/components/schemas/ioschemaEmpty"},"shop_enter_drawing_submission":{"$ref":"#/components/schemas/ioschemaEmpty"},"shop_make_payment":{"$ref":"#/components/schemas/ioschemaEmpty"},"shop_order":{"$ref":"#/components/schemas/ioschemaEmpty"},"shop_price_inquiry":{"$ref":"#/components/schemas/ioschemaEmpty"},"shop_promo_code_validation":{"$ref":"#/components/schemas/ioschemaEmpty"},"shop_purchase_gift_card":{"$ref":"#/components/schemas/ioschemaEmpty"},"shop_update_quantity":{"$ref":"#/components/schemas/ioschemaEmpty"}}},"schemaBotDefenseTransactionResult":{"type":"object","description":"Bot Defense Transaction Result","title":"BotDefenseTransactionResult","x-displayname":"Bot Defense Transaction Result","x-ves-oneof-field-transaction_result_choice":"[\"disable_transaction_result\",\"transaction_result\"]","x-ves-proto-message":"ves.io.schema.BotDefenseTransactionResult","properties":{"disable_transaction_result":{"$ref":"#/components/schemas/ioschemaEmpty"},"transaction_result":{"$ref":"#/components/schemas/schemaBotDefenseTransactionResultType"}}},"schemaBotDefenseTransactionResultCondition":{"type":"object","description":"Bot Defense Transaction Result Condition","title":"BotDefenseTransactionResultCondition","x-displayname":"Bot Defense Transaction Result Condition","x-ves-displayorder":"3,1,2","x-ves-proto-message":"ves.io.schema.BotDefenseTransactionResultCondition","properties":{"name":{"type":"string","description":" A case-insensitive HTTP header name.\n\nExample: ` \"Accept-Encoding\"`\n\nValidation Rules:\n ves.io.schema.rules.string.http_header_field: true\n ves.io.schema.rules.string.max_bytes: 256\n","title":"name","maxLength":256,"x-displayname":"Header Name","x-ves-example":"Accept-Encoding","x-ves-validation-rules":{"ves.io.schema.rules.string.http_header_field":"true","ves.io.schema.rules.string.max_bytes":"256"}},"regex_values":{"type":"array","description":" A list of regular expressions to match the input against.\n\nExample: ` \"['^new .*$', 'san f.*', '.* del .*']\"`\n\nValidation Rules:\n ves.io.schema.rules.repeated.items.string.max_bytes: 256\n ves.io.schema.rules.repeated.items.string.not_empty: true\n ves.io.schema.rules.repeated.items.string.regex: true\n ves.io.schema.rules.repeated.max_items: 16\n ves.io.schema.rules.repeated.unique: true\n","title":"regex values","maxItems":16,"items":{"type":"string","maxLength":256},"x-displayname":"Regex Values","x-ves-example":"['^new .*$', 'san f.*', '.* del .*']","x-ves-validation-rules":{"ves.io.schema.rules.repeated.items.string.max_bytes":"256","ves.io.schema.rules.repeated.items.string.not_empty":"true","ves.io.schema.rules.repeated.items.string.regex":"true","ves.io.schema.rules.repeated.max_items":"16","ves.io.schema.rules.repeated.unique":"true"}},"status":{"$ref":"#/components/schemas/schemaHttpStatusCode"}}},"schemaBotDefenseTransactionResultType":{"type":"object","description":"Bot Defense Transaction ResultType","title":"BotDefenseTransactionResultType","x-displayname":"Bot Defense Transaction Result Type","x-ves-displayorder":"4,3","x-ves-proto-message":"ves.io.schema.BotDefenseTransactionResultType","properties":{"failure_conditions":{"type":"array","description":" Failure Conditions\n\nValidation Rules:\n ves.io.schema.rules.repeated.max_items: 3\n ves.io.schema.rules.repeated.unique: true\n","title":"Failure Conditions","maxItems":3,"items":{"$ref":"#/components/schemas/schemaBotDefenseTransactionResultCondition"},"x-displayname":"Failure Conditions","x-ves-validation-rules":{"ves.io.schema.rules.repeated.max_items":"3","ves.io.schema.rules.repeated.unique":"true"}},"success_conditions":{"type":"array","description":" Success Conditions\n\nValidation Rules:\n ves.io.schema.rules.repeated.max_items: 3\n ves.io.schema.rules.repeated.unique: true\n","title":"Success Conditions","maxItems":3,"items":{"$ref":"#/components/schemas/schemaBotDefenseTransactionResultCondition"},"x-displayname":"Success Conditions","x-ves-validation-rules":{"ves.io.schema.rules.repeated.max_items":"3","ves.io.schema.rules.repeated.unique":"true"}}}},"schemaBotHttpMethod":{"type":"string","description":"Specifies the HTTP method used to access a resource.\n\nAny HTTP Method\nGET method for XMLHttpRequest or Fetch\nPOST method\nPUT method\nPATCH method\nDELETE method\nGET method for HTML document","title":"BotHttpMethod","enum":["METHOD_ANY","METHOD_GET","METHOD_POST","METHOD_PUT","METHOD_PATCH","METHOD_DELETE","METHOD_GET_DOCUMENT"],"default":"METHOD_ANY","x-displayname":"HTTP Method","x-ves-proto-enum":"ves.io.schema.BotHttpMethod"},"schemaClearSecretInfoType":{"type":"object","description":"ClearSecretInfoType specifies information about the Secret that is not encrypted.","title":"ClearSecretInfoType","x-displayname":"In-Clear Secret","x-ves-displayorder":"2,1","x-ves-proto-message":"ves.io.schema.ClearSecretInfoType","properties":{"provider":{"type":"string","description":" Name of the Secret Management Access object that contains information about the store to get encrypted bytes\n This field needs to be provided only if the url scheme is not string:///\n\nExample: ` \"box-provider\"`","title":"Provider","x-displayname":"Provider","x-ves-example":"box-provider"},"url":{"type":"string","description":" URL of the secret. Currently supported URL schemes is string:///.\n For string:/// scheme, Secret needs to be encoded Base64 format.\n When asked for this secret, caller will get Secret bytes after Base64 decoding.\n\nExample: ` \"string:///U2VjcmV0SW5mb3JtYXRpb24=\"`\n\nRequired: YES\n\nValidation Rules:\n ves.io.schema.rules.message.required: true\n ves.io.schema.rules.string.max_bytes: 131072\n ves.io.schema.rules.string.uri_ref: true\n","title":"URL","maxLength":131072,"x-displayname":"URL","x-ves-example":"string:///U2VjcmV0SW5mb3JtYXRpb24=","x-ves-required":"true","x-ves-validation-rules":{"ves.io.schema.rules.message.required":"true","ves.io.schema.rules.string.max_bytes":"131072","ves.io.schema.rules.string.uri_ref":"true"}}}},"schemaConditionType":{"type":"object","description":"Conditions are used in the object status to describe the current state of the\nobject, e.g. Ready, Succeeded, etc.","title":"ConditionType","x-displayname":"Status Condition","x-ves-proto-message":"ves.io.schema.ConditionType","properties":{"hostname":{"type":"string","description":" Hostname of the instance of the site that sent the status","title":"hostname","x-displayname":"Hostname"},"last_update_time":{"type":"string","description":" Last time the condition was updated","title":"last_update_time","format":"date-time","x-displayname":"Last Updated"},"reason":{"type":"string","description":" x-reason: \"Insufficient memory in data plane\"\n A human readable string explaining the reason for reaching this condition\n\nExample: ` \"value\"`","title":"reason","x-displayname":"Reason","x-ves-example":"value"},"service_name":{"type":"string","description":" Name of the service that sent the status","title":"service name","x-displayname":"Service Name"},"status":{"type":"string","description":" Status of the condition\n \"Success\" Validtion has succeded. Requested operation was successful.\n \"Failed\" Validation has failed.\n \"Incomplete\" Validation of configuration has failed due to missing configuration.\n \"Installed\" Validation has passed and configuration has been installed in data path or K8s\n \"Down\" Configuration is operationally down. e.g. down interface\n \"Disabled\" Configuration is administratively disabled i.e. ObjectMetaType.Disable = true.\n \"NotApplicable\" Configuration is not applicable e.g. tenant service_policy_set(s) in system namespace are not applicable on REs\n\nExample: ` \"Failed\"`\n\nValidation Rules:\n ves.io.schema.rules.string.in: [\\\"Success\\\",\\\"Failed\\\",\\\"Incomplete\\\",\\\"Installed\\\",\\\"Down\\\",\\\"Disabled\\\",\\\"NotApplicable\\\"]\n","title":"status","x-displayname":"Status","x-ves-example":"Failed","x-ves-validation-rules":{"ves.io.schema.rules.string.in":"[\\\"Success\\\",\\\"Failed\\\",\\\"Incomplete\\\",\\\"Installed\\\",\\\"Down\\\",\\\"Disabled\\\",\\\"NotApplicable\\\"]"}},"type":{"type":"string","description":" Type of the condition\n \"Validation\" represents validation user given configuration object\n \"Operational\" represents operational status of a given configuration object\n\nExample: ` \"Operational\"`\n\nValidation Rules:\n ves.io.schema.rules.string.in: [\\\"Validation\\\",\\\"Operational\\\"]\n","title":"type","x-displayname":"Type","x-ves-example":"Operational","x-ves-validation-rules":{"ves.io.schema.rules.string.in":"[\\\"Validation\\\",\\\"Operational\\\"]"}}}},"schemaCookieManipulationOptionType":{"type":"object","description":"Set Cookie protection attributes.","title":"CookieManipulationOptionType","x-displayname":"Cookie Protection","x-ves-oneof-field-cookie_tampering":"[\"disable_tampering_protection\",\"enable_tampering_protection\"]","x-ves-oneof-field-httponly":"[\"add_httponly\",\"ignore_httponly\"]","x-ves-oneof-field-max_age":"[\"ignore_max_age\",\"max_age_value\"]","x-ves-oneof-field-samesite":"[\"ignore_samesite\",\"samesite_lax\",\"samesite_none\",\"samesite_strict\"]","x-ves-oneof-field-secure":"[\"add_secure\",\"ignore_secure\"]","x-ves-proto-message":"ves.io.schema.CookieManipulationOptionType","properties":{"add_httponly":{"$ref":"#/components/schemas/ioschemaEmpty"},"add_secure":{"$ref":"#/components/schemas/ioschemaEmpty"},"disable_tampering_protection":{"$ref":"#/components/schemas/ioschemaEmpty"},"enable_tampering_protection":{"$ref":"#/components/schemas/ioschemaEmpty"},"ignore_httponly":{"$ref":"#/components/schemas/ioschemaEmpty"},"ignore_max_age":{"$ref":"#/components/schemas/ioschemaEmpty"},"ignore_samesite":{"$ref":"#/components/schemas/ioschemaEmpty"},"ignore_secure":{"$ref":"#/components/schemas/ioschemaEmpty"},"max_age_value":{"type":"integer","description":"Exclusive with [ignore_max_age]\n Add max age attribute\n\nValidation Rules:\n ves.io.schema.rules.uint32.lte: 34560000\n","title":"add_max_age","format":"int32","x-displayname":"Add Max Age","x-ves-validation-rules":{"ves.io.schema.rules.uint32.lte":"34560000"}},"name":{"type":"string","description":" Name of the Cookie\n\nExample: ` \"value\"`\n\nRequired: YES\n\nValidation Rules:\n ves.io.schema.rules.message.required: true\n ves.io.schema.rules.string.cookie_name: true\n ves.io.schema.rules.string.max_len: 256\n","title":"name","maxLength":256,"x-displayname":"Cookie Name","x-ves-example":"value","x-ves-required":"true","x-ves-validation-rules":{"ves.io.schema.rules.message.required":"true","ves.io.schema.rules.string.cookie_name":"true","ves.io.schema.rules.string.max_len":"256"}},"samesite_lax":{"$ref":"#/components/schemas/ioschemaEmpty"},"samesite_none":{"$ref":"#/components/schemas/ioschemaEmpty"},"samesite_strict":{"$ref":"#/components/schemas/ioschemaEmpty"}}},"schemaCorsPolicy":{"type":"object","description":"Cross-Origin Resource Sharing requests configuration specified at Virtual-host or\nRoute level. Route level configuration takes precedence.\n\nAn example of an Cross origin HTTP request\n GET /resources/public-data/ HTTP/1.1\n Host: bar.other\n User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.1b3pre) Gecko/20081130 Minefield/3.1b3pre\n Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\n Accept-Language: en-us,en;q=0.5\n Accept-Encoding: gzip,deflate\n Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7\n Connection: keep-alive\n Referrer: http://foo.example/examples/access-control/simpleXSInvocation.html\n Origin: http://foo.example\n\n\n HTTP/1.1 200 OK\n Date: Mon, 01 Dec 2008 00:23:53 GMT\n Server: Apache/2.0.61\n Access-Control-Allow-Origin: *\n Keep-Alive: timeout=2, max=100\n Connection: Keep-Alive\n Transfer-Encoding: chunked\n Content-Type: application/xml\n\nAn example for cross origin HTTP OPTIONS request with Access-Control-Request-* header\n\n OPTIONS /resources/post-here/ HTTP/1.1\n Host: bar.other\n User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.1b3pre) Gecko/20081130 Minefield/3.1b3pre\n Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\n Accept-Language: en-us,en;q=0.5\n Accept-Encoding: gzip,deflate\n Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7\n Connection: keep-alive\n Origin: http://foo.example\n Access-Control-Request-Method: POST\n Access-Control-Request-Headers: X-PINGOTHER, Content-Type\n\n\n HTTP/1.1 204 No Content\n Date: Mon, 01 Dec 2008 01:15:39 GMT\n Server: Apache/2.0.61 (Unix)\n Access-Control-Allow-Origin: http://foo.example\n Access-Control-Allow-Methods: POST, GET, OPTIONS\n Access-Control-Allow-Headers: X-PINGOTHER, Content-Type\n Access-Control-Max-Age: 86400\n Vary: Accept-Encoding, Origin\n Keep-Alive: timeout=2, max=100\n Connection: Keep-Alive","title":"CorsPolicy","x-displayname":"CORS Policy","x-ves-displayorder":"2,3,4,5,6,9,8,1","x-ves-proto-message":"ves.io.schema.CorsPolicy","properties":{"allow_credentials":{"type":"boolean","description":" Specifies whether the resource allows credentials","title":"allow_credentials","format":"boolean","x-displayname":"Allow Credentials"},"allow_headers":{"type":"string","description":" Specifies the content for the access-control-allow-headers header\n\nExample: ` \"value\"`","title":"allow_headers","x-displayname":"Allow Headers","x-ves-example":"value"},"allow_methods":{"type":"string","description":" Specifies the content for the access-control-allow-methods header\n\nExample: ` \"GET\"`\n\nValidation Rules:\n ves.io.schema.rules.string.http_valid_methods: true\n","title":"allow_methods","x-displayname":"Allow Methods","x-ves-example":"GET","x-ves-validation-rules":{"ves.io.schema.rules.string.http_valid_methods":"true"}},"allow_origin":{"type":"array","description":" Specifies the origins that will be allowed to do CORS requests.\n An origin is allowed if either allow_origin or allow_origin_regex match\n\nExample: ` \"value\"`\n\nValidation Rules:\n ves.io.schema.rules.repeated.items.string.max_len: 256\n ves.io.schema.rules.repeated.items.string.min_len: 1\n ves.io.schema.rules.repeated.max_items: 128\n ves.io.schema.rules.repeated.unique: true\n","title":"allow_origin","maxItems":128,"items":{"type":"string","minLength":1,"maxLength":256},"x-displayname":"Allow Origin","x-ves-example":"value","x-ves-validation-rules":{"ves.io.schema.rules.repeated.items.string.max_len":"256","ves.io.schema.rules.repeated.items.string.min_len":"1","ves.io.schema.rules.repeated.max_items":"128","ves.io.schema.rules.repeated.unique":"true"}},"allow_origin_regex":{"type":"array","description":" Specifies regex patterns that match allowed origins.\n An origin is allowed if either allow_origin or allow_origin_regex match\n\nExample: ` \"value\"`\n\nValidation Rules:\n ves.io.schema.rules.repeated.items.string.max_bytes: 256\n ves.io.schema.rules.repeated.items.string.min_bytes: 1\n ves.io.schema.rules.repeated.items.string.regex: true\n ves.io.schema.rules.repeated.max_items: 16\n ves.io.schema.rules.repeated.unique: true\n","title":"allow_origin_regex","maxItems":16,"items":{"type":"string","minLength":1,"maxLength":256},"x-displayname":"Allow Origin Regex","x-ves-example":"value","x-ves-validation-rules":{"ves.io.schema.rules.repeated.items.string.max_bytes":"256","ves.io.schema.rules.repeated.items.string.min_bytes":"1","ves.io.schema.rules.repeated.items.string.regex":"true","ves.io.schema.rules.repeated.max_items":"16","ves.io.schema.rules.repeated.unique":"true"}},"disabled":{"type":"boolean","description":" Disable the CorsPolicy for a particular route. This is useful when\n virtual-host has CorsPolicy, but we need to disable it on a specific route.\n The value of this field is ignored for virtual-host","title":"disabled","format":"boolean","x-displayname":"Disabled"},"expose_headers":{"type":"string","description":" Specifies the content for the access-control-expose-headers header\n\nExample: ` \"value\"`","title":"expose_headers","x-displayname":"Expose Headers","x-ves-example":"value"},"maximum_age":{"type":"integer","description":" Specifies the content for the access-control-max-age header in seconds.\n This indicates the maximum number of seconds the results can be cached\n A value of -1 will disable caching.\n Maximum permitted value is 86400 seconds (24 hours)\n\nExample: ` \"-1\"`\n\nValidation Rules:\n ves.io.schema.rules.int32.gte: -1\n ves.io.schema.rules.int32.lte: 86400\n","title":"maximum_age","format":"int32","x-displayname":"Maximum Age","x-ves-example":"-1","x-ves-validation-rules":{"ves.io.schema.rules.int32.gte":"-1","ves.io.schema.rules.int32.lte":"86400"}}}},"schemaCsrfPolicy":{"type":"object","description":"To mitigate CSRF attack , the policy checks where a request is coming from to determine if the request's origin is the same as its detination.The policy relies on two pieces of information used in determining if a request originated from the same host.\n\n1. The origin that caused the user agent to issue the request (source origin).\n2. The origin that the request is going to (target origin).\nWhen the policy evaluating a request, it ensures both pieces of information are present and compare their values. If the source origin is missing or origins do not match the request is rejected. The exception to this being if the source-origin has been added to they policy as valid.\nBecause CSRF attacks specifically target state-changing requests, the policy only acts on the HTTP requests that have state-changing method (PUT,POST, etc.).","title":"CsrfPolicy","x-displayname":"CSRF Policy","x-ves-oneof-field-allowed_domains":"[\"all_load_balancer_domains\",\"custom_domain_list\",\"disabled\"]","x-ves-proto-message":"ves.io.schema.CsrfPolicy","properties":{"all_load_balancer_domains":{"$ref":"#/components/schemas/ioschemaEmpty"},"custom_domain_list":{"$ref":"#/components/schemas/schemaDomainNameList"},"disabled":{"$ref":"#/components/schemas/ioschemaEmpty"}}},"schemaDomainNameList":{"type":"object","description":"List of domain names used for Host header matching","title":"List of Domain names","x-displayname":"Domain name list","x-ves-proto-message":"ves.io.schema.DomainNameList","properties":{"domains":{"type":"array","description":"\n A list of domain names that will be matched to loadbalancer.\n These domains are not used for SNI match.\n Wildcard names are supported in the suffix or prefix form.\n\nExample: ` \"www.foo.com\"`\n\nRequired: YES\n\nValidation Rules:\n ves.io.schema.rules.message.required: true\n ves.io.schema.rules.repeated.items.string.max_len: 256\n ves.io.schema.rules.repeated.items.string.min_len: 1\n ves.io.schema.rules.repeated.items.string.vh_domain: true\n ves.io.schema.rules.repeated.max_items: 32\n ves.io.schema.rules.repeated.min_items: 1\n ves.io.schema.rules.repeated.unique: true\n","title":"Domains","minItems":1,"maxItems":32,"items":{"type":"string","minLength":1,"maxLength":256},"x-displayname":"Domain names","x-ves-example":"www.foo.com","x-ves-required":"true","x-ves-validation-rules":{"ves.io.schema.rules.message.required":"true","ves.io.schema.rules.repeated.items.string.max_len":"256","ves.io.schema.rules.repeated.items.string.min_len":"1","ves.io.schema.rules.repeated.items.string.vh_domain":"true","ves.io.schema.rules.repeated.max_items":"32","ves.io.schema.rules.repeated.min_items":"1","ves.io.schema.rules.repeated.unique":"true"}}}},"schemaDomainType":{"type":"object","description":"Domains names","title":"Domains","x-displayname":"Domains","x-ves-oneof-field-domain_choice":"[\"exact_value\",\"regex_value\",\"suffix_value\"]","x-ves-proto-message":"ves.io.schema.DomainType","properties":{"exact_value":{"type":"string","description":"Exclusive with [regex_value suffix_value]\n Exact domain name.\n\nExample: ` \"abc.zyz.com\"`\n\nValidation Rules:\n ves.io.schema.rules.string.hostname: true\n ves.io.schema.rules.string.max_len: 256\n ves.io.schema.rules.string.min_len: 1\n","title":"exact value","minLength":1,"maxLength":256,"x-displayname":"Exact Value","x-ves-example":"abc.zyz.com","x-ves-validation-rules":{"ves.io.schema.rules.string.hostname":"true","ves.io.schema.rules.string.max_len":"256","ves.io.schema.rules.string.min_len":"1"}},"regex_value":{"type":"string","description":"Exclusive with [exact_value suffix_value]\n Regular Expression value for the domain name\n\nExample: ` \"([a-z]([-a-z0-9]*[a-z0-9])?)\\.com$'\"`\n\nValidation Rules:\n ves.io.schema.rules.string.max_len: 256\n ves.io.schema.rules.string.min_len: 1\n ves.io.schema.rules.string.regex: true\n","title":"regex values of Domains","minLength":1,"maxLength":256,"x-displayname":"Regex Values of Domains","x-ves-example":"([a-z]([-a-z0-9]*[a-z0-9])?)\\.com$'","x-ves-validation-rules":{"ves.io.schema.rules.string.max_len":"256","ves.io.schema.rules.string.min_len":"1","ves.io.schema.rules.string.regex":"true"}},"suffix_value":{"type":"string","description":"Exclusive with [exact_value regex_value]\n Suffix of domain name e.g \"xyz.com\" will match \"*.xyz.com\" and \"xyz.com\"\n\nExample: ` \"xyz.com\"`\n\nValidation Rules:\n ves.io.schema.rules.string.hostname: true\n ves.io.schema.rules.string.max_len: 256\n ves.io.schema.rules.string.min_len: 1\n","title":"suffix value","minLength":1,"maxLength":256,"x-displayname":"Suffix Value","x-ves-example":"xyz.com","x-ves-validation-rules":{"ves.io.schema.rules.string.hostname":"true","ves.io.schema.rules.string.max_len":"256","ves.io.schema.rules.string.min_len":"1"}}}},"schemaErrorCode":{"type":"string","description":"Union of all possible error-codes from system\n\n - EOK: No error\n - EPERMS: Permissions error\n - EBADINPUT: Input is not correct\n - ENOTFOUND: Not found\n - EEXISTS: Already exists\n - EUNKNOWN: Unknown/catchall error\n - ESERIALIZE: Error in serializing/de-serializing\n - EINTERNAL: Server error\n - EPARTIAL: Partial error","title":"ErrorCode","enum":["EOK","EPERMS","EBADINPUT","ENOTFOUND","EEXISTS","EUNKNOWN","ESERIALIZE","EINTERNAL","EPARTIAL"],"default":"EOK","x-displayname":"Error Code","x-ves-proto-enum":"ves.io.schema.ErrorCode"},"schemaErrorType":{"type":"object","description":"Information about a error in API operation","title":"ErrorType","x-displayname":"Error Type","x-ves-proto-message":"ves.io.schema.ErrorType","properties":{"code":{"$ref":"#/components/schemas/schemaErrorCode"},"error_obj":{"$ref":"#/components/schemas/protobufAny"},"message":{"type":"string","description":" A human readable string of the error\n\nExample: ` \"value\"`","title":"message","x-displayname":"Message","x-ves-example":"value"}}},"schemaHashAlgorithm":{"type":"string","description":"Specifies the Hash Algorithm to be used\n\nInvalid hash algorithm\nsha256 hash algorithm\nsha1 hash algorithm","title":"HashAlgoritm","enum":["INVALID_HASH_ALGORITHM","SHA256","SHA1"],"default":"INVALID_HASH_ALGORITHM","x-displayname":"Hash Algorithm","x-ves-proto-enum":"ves.io.schema.HashAlgorithm"},"schemaHashAlgorithms":{"type":"object","description":"Specifies the hash algorithms to be used","title":"HashAlgorithms","x-displayname":"Hash Algorithms","x-ves-proto-message":"ves.io.schema.HashAlgorithms","properties":{"hash_algorithms":{"type":"array","description":" Ordered list of hash algorithms to be used.\n\nRequired: YES\n\nValidation Rules:\n ves.io.schema.rules.message.required: true\n ves.io.schema.rules.repeated.max_items: 4\n ves.io.schema.rules.repeated.min_items: 1\n ves.io.schema.rules.repeated.unique: true\n","title":"Hash Algorithms","minItems":1,"maxItems":4,"items":{"$ref":"#/components/schemas/schemaHashAlgorithm"},"x-displayname":"Hash Algorithms","x-ves-required":"true","x-ves-validation-rules":{"ves.io.schema.rules.message.required":"true","ves.io.schema.rules.repeated.max_items":"4","ves.io.schema.rules.repeated.min_items":"1","ves.io.schema.rules.repeated.unique":"true"}}}},"schemaHeaderManipulationOptionType":{"type":"object","description":"HTTP header is a key-value pair.\nThe name acts as key of HTTP header\nThe value acts as the data/value of HTTP header\nExample HTTP header\n Host: user.volterra.com\nIn the above example, Host is the name or key of HTTP header\nIn the above example, user.volterra.com is the value of HTTP header","title":"HeaderManipulationOptionType","x-displayname":"Header Manipulation Option","x-ves-oneof-field-value_choice":"[\"secret_value\",\"value\"]","x-ves-proto-message":"ves.io.schema.HeaderManipulationOptionType","properties":{"append":{"type":"boolean","description":" Should the value be appended? If true, the value is appended to existing values.\n Default value is do not append","title":"append","format":"boolean","x-displayname":"Append"},"name":{"type":"string","description":" Name of the HTTP header.\n\nExample: ` \"value\"`\n\nRequired: YES\n\nValidation Rules:\n ves.io.schema.rules.message.required: true\n ves.io.schema.rules.string.max_len: 256\n","title":"name","maxLength":256,"x-displayname":"Name","x-ves-example":"value","x-ves-required":"true","x-ves-validation-rules":{"ves.io.schema.rules.message.required":"true","ves.io.schema.rules.string.max_len":"256"}},"secret_value":{"$ref":"#/components/schemas/schemaSecretType"},"value":{"type":"string","description":"Exclusive with [secret_value]\n Value of the HTTP header.\n\nValidation Rules:\n ves.io.schema.rules.string.max_len: 8096\n","title":"value","maxLength":8096,"x-displayname":"Value","x-ves-validation-rules":{"ves.io.schema.rules.string.max_len":"8096"}}}},"schemaHttpMethod":{"type":"string","description":"Specifies the HTTP method used to access a resource.\n\nAny HTTP Method","title":"HttpMethod","enum":["ANY","GET","HEAD","POST","PUT","DELETE","CONNECT","OPTIONS","TRACE","PATCH","COPY"],"default":"ANY","x-displayname":"HTTP Method","x-ves-proto-enum":"ves.io.schema.HttpMethod"},"schemaHttpSections":{"type":"string","description":"x-displayName: \"HTTP Sections\"\nRequest & Response Sections.\n\n - HTTP_SECTION_NONE: None\n\nALL_SECTIONS\nx-displayName: \"None\"\n - HTTP_SECTION_QUERY_PARAMS: QUERY_PARAMS\n\nx-displayName: \"Request Query Params\"\n - HTTP_SECTION_REQ_HEADERS: REQ_HEADERS\n\nx-displayName: \"Request Headers\"\n - HTTP_SECTION_RSP_HEADERS: RSP_HEADERS\n\nx-displayName: \"Response Headers\"\n - HTTP_SECTION_REQ_BODY: REQ_BODY\n\nx-displayName: \"Request Body\"\n - HTTP_SECTION_RSP_BODY: RSP_BODY\n\nx-displayName: \"Response Body\"","title":"HTTPSections","enum":["HTTP_SECTION_NONE","HTTP_SECTION_QUERY_PARAMS","HTTP_SECTION_REQ_HEADERS","HTTP_SECTION_RSP_HEADERS","HTTP_SECTION_REQ_BODY","HTTP_SECTION_RSP_BODY"],"default":"HTTP_SECTION_NONE"},"schemaHttpStatusCode":{"type":"string","description":"HTTP response status codes\n\nEmptyStatusCode response codes means it is not specified\nContinue status code\nOK status code\nCreated status code\nAccepted status code\nNon Authoritative Information status code\nNo Content status code\nReset Content status code\nPartial Content status code\nMulti Status status code\nAlready Reported status code\nIm Used status code\nMultiple Choices status code\nMoved Permanently status code\nFound status code\nSee Other status code\nNot Modified status code\nUse Proxy status code\nTemporary Redirect status code\nPermanent Redirect status code\nBad Request status code\nUnauthorized status code\nPayment Required status code\nForbidden status code\nNot Found status code\nMethod Not Allowed status code\nNot Acceptable status code\nProxy Authentication Required status code\nRequest Timeout status code\nConflict status code\nGone status code\nLength Required status code\nPrecondition Failed status code\nPayload Too Large status code\nUri Too Long status code\nUnsupported Media Type status code\nRange Not Satisfiable status code\nExpectation Failed status code\nMisdirected Request status code\nUnprocessable Entity status code\nLocked status code\nFailed Dependency status code\nUpgrade Required status code\nPrecondition Required status code\nToo Many Requests status code\nRequest Header Fields Too Large status code\nInternal Server Error status code\nNot Implemented status code\nBad Gateway status code\nService Unavailable status code\nGateway Timeout status code\nHttp Version Not Supported status code\nVariant Also Negotiates status code\nInsufficient Storage status code\nLoop Detected status code\nNot Extended status code\nNetwork Authentication Required status code","title":"HttpStatusCode","enum":["EmptyStatusCode","Continue","OK","Created","Accepted","NonAuthoritativeInformation","NoContent","ResetContent","PartialContent","MultiStatus","AlreadyReported","IMUsed","MultipleChoices","MovedPermanently","Found","SeeOther","NotModified","UseProxy","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthorized","PaymentRequired","Forbidden","NotFound","MethodNotAllowed","NotAcceptable","ProxyAuthenticationRequired","RequestTimeout","Conflict","Gone","LengthRequired","PreconditionFailed","PayloadTooLarge","URITooLong","UnsupportedMediaType","RangeNotSatisfiable","ExpectationFailed","MisdirectedRequest","UnprocessableEntity","Locked","FailedDependency","UpgradeRequired","PreconditionRequired","TooManyRequests","RequestHeaderFieldsTooLarge","InternalServerError","NotImplemented","BadGateway","ServiceUnavailable","GatewayTimeout","HTTPVersionNotSupported","VariantAlsoNegotiates","InsufficientStorage","LoopDetected","NotExtended","NetworkAuthenticationRequired"],"default":"EmptyStatusCode","x-displayname":"HTTP Status Code","x-ves-proto-enum":"ves.io.schema.HttpStatusCode"},"schemaInitializerType":{"type":"object","description":"Initializer is information about an initializer that has not yet completed.","title":"InitializerType","x-displayname":"Initializer","x-ves-proto-message":"ves.io.schema.InitializerType","properties":{"name":{"type":"string","description":" name of the service that is responsible for initializing this object.","title":"name","x-displayname":"Name"}}},"schemaInitializersType":{"type":"object","description":"Initializers tracks the progress of initialization of a configuration object","title":"InitializersType","x-displayname":"Initializers","x-ves-proto-message":"ves.io.schema.InitializersType","properties":{"pending":{"type":"array","description":" Pending is a list of initializers that must execute in order before this object is initialized.\n When the last pending initializer is removed, and no failing result is set, the initializers\n struct will be set to nil and the object is considered as initialized and visible to all\n clients.","title":"pending","items":{"$ref":"#/components/schemas/schemaInitializerType"},"x-displayname":"Pending"},"result":{"$ref":"#/components/schemas/schemaStatusType"}}},"schemaJavaScriptMode":{"type":"string","description":"Web Client JavaScript Mode.\n\nBot Defense JavaScript for telemetry collection is requested asynchronously, and it is non-cacheable\nBot Defense JavaScript for telemetry collection is requested asynchronously, and it is cacheable\nBot Defense JavaScript for telemetry collection is requested synchronously, and it is non-cacheable\nBot Defense JavaScript for telemetry collection is requested synchronously, and it is cacheable","title":"JavaScript Mode","enum":["ASYNC_JS_NO_CACHING","ASYNC_JS_CACHING","SYNC_JS_NO_CACHING","SYNC_JS_CACHING"],"default":"ASYNC_JS_NO_CACHING","x-displayname":"Web Client JavaScript Mode","x-ves-proto-enum":"ves.io.schema.JavaScriptMode"},"schemaLabelSelectorType":{"type":"object","description":"This type can be used to establish a 'selector reference' from one object(called selector) to\na set of other objects(called selectees) based on the value of expresssions.\nA label selector is a label query over a set of resources. An empty label selector matches all objects.\nA null label selector matches no objects. Label selector is immutable.\nexpressions is a list of strings of label selection expression.\nEach string has \",\" separated values which are \"AND\" and all strings are logically \"OR\".\nBNF for expression string\n<selector-syntax> ::= <requirement> | <requirement> \",\" <selector-syntax>\n<requirement> ::= [!] KEY [ <set-based-restriction> | <exact-match-restriction> ]\n<set-based-restriction> ::= \"\" | <inclusion-exclusion> <value-set>\n<inclusion-exclusion> ::= <inclusion> | <exclusion>\n<exclusion> ::= \"notin\"\n<inclusion> ::= \"in\"\n<value-set> ::= \"(\" <values> \")\"\n<values> ::= VALUE | VALUE \",\" <values>\n<exact-match-restriction> ::= [\"=\"|\"==\"|\"!=\"] VALUE","title":"LabelSelectorType","x-displayname":"Label Selector","x-ves-proto-message":"ves.io.schema.LabelSelectorType","properties":{"expressions":{"type":"array","description":" expressions contains the kubernetes style label expression for selections.\n\nExample: ` \"region in (us-west1, us-west2),tier in (staging)\"`\n\nRequired: YES\n\nValidation Rules:\n ves.io.schema.rules.message.required: true\n ves.io.schema.rules.repeated.items.string.k8s_label_selector: true\n ves.io.schema.rules.repeated.items.string.max_len: 4096\n ves.io.schema.rules.repeated.items.string.min_len: 1\n ves.io.schema.rules.repeated.max_items: 1\n","title":"expressions","maxItems":1,"items":{"type":"string","minLength":1,"maxLength":4096},"x-displayname":"Selector Expression","x-ves-example":"region in (us-west1, us-west2),tier in (staging)","x-ves-required":"true","x-ves-validation-rules":{"ves.io.schema.rules.message.required":"true","ves.io.schema.rules.repeated.items.string.k8s_label_selector":"true","ves.io.schema.rules.repeated.items.string.max_len":"4096","ves.io.schema.rules.repeated.items.string.min_len":"1","ves.io.schema.rules.repeated.max_items":"1"}}}},"schemaMessageMetaType":{"type":"object","description":"MessageMetaType is metadata (common attributes) of a message that only certain messages\nhave. This information is propagated to the metadata of a child object that gets created\nfrom the containing message during view processing.\nThe information in this type can be specified by user during create and replace APIs.","title":"MessageMetaType","x-displayname":"Message Metadata","x-ves-proto-message":"ves.io.schema.MessageMetaType","properties":{"description":{"type":"string","description":" Human readable description.\n\nExample: ` \"Virtual Host for acmecorp website\"`\n\nValidation Rules:\n ves.io.schema.rules.string.max_len: 256\n","title":"description","maxLength":256,"x-displayname":"Description","x-ves-example":"Virtual Host for acmecorp website","x-ves-validation-rules":{"ves.io.schema.rules.string.max_len":"256"}},"name":{"type":"string","description":" This is the name of the message.\n The value of name has to follow DNS-1035 format.\n\nExample: ` \"acmecorp-web\"`\n\nRequired: YES\n\nValidation Rules:\n ves.io.schema.rules.message.required: true\n ves.io.schema.rules.string.min_len: 1\n ves.io.schema.rules.string.ves_object_name: true\n","title":"name","minLength":1,"x-displayname":"Name","x-ves-example":"acmecorp-web","x-ves-required":"true","x-ves-validation-rules":{"ves.io.schema.rules.message.required":"true","ves.io.schema.rules.string.min_len":"1","ves.io.schema.rules.string.ves_object_name":"true"}}}},"schemaObjectCreateMetaType":{"type":"object","description":"ObjectCreateMetaType is metadata that can be specified in Create request of an object.","title":"ObjectCreateMetaType","x-displayname":"Create Metadata","x-ves-proto-message":"ves.io.schema.ObjectCreateMetaType","properties":{"annotations":{"type":"object","description":" Annotations is an unstructured key value map stored with a resource that may be\n set by external tools to store and retrieve arbitrary metadata. They are not\n queryable and should be preserved when modifying objects.\n\nExample: ` \"value\"`\n\nValidation Rules:\n ves.io.schema.rules.map.keys.string.max_len: 64\n ves.io.schema.rules.map.keys.string.min_len: 1\n ves.io.schema.rules.map.values.string.max_len: 1024\n ves.io.schema.rules.map.values.string.min_len: 1\n","title":"annotations","x-displayname":"Annotation","x-ves-validation-rules":{"ves.io.schema.rules.map.keys.string.max_len":"64","ves.io.schema.rules.map.keys.string.min_len":"1","ves.io.schema.rules.map.values.string.max_len":"1024","ves.io.schema.rules.map.values.string.min_len":"1"}},"description":{"type":"string","description":" Human readable description for the object\n\nExample: ` \"Virtual Host for acmecorp website\"`\n\nValidation Rules:\n ves.io.schema.rules.string.max_bytes: 1200\n","title":"description","maxLength":1200,"x-displayname":"Description","x-ves-example":"Virtual Host for acmecorp website","x-ves-validation-rules":{"ves.io.schema.rules.string.max_bytes":"1200"}},"disable":{"type":"boolean","description":" A value of true will administratively disable the object\n\nExample: ` \"true\"`","title":"disable","format":"boolean","x-displayname":"Disable"},"labels":{"type":"object","description":" Map of string keys and values that can be used to organize and categorize\n (scope and select) objects as chosen by the user. Values specified here will be used\n by selector expression\n\nExample: ` \"value\"`","title":"labels","x-displayname":"Labels"},"name":{"type":"string","description":" This is the name of configuration object. It has to be unique within the namespace.\n It can only be specified during create API and cannot be changed during replace API.\n The value of name has to follow DNS-1035 format.\n\nExample: ` \"acmecorp-web\"`\n\nRequired: YES\n\nValidation Rules:\n ves.io.schema.rules.message.required: true\n","title":"name","x-displayname":"Name","x-ves-example":"acmecorp-web","x-ves-required":"true","x-ves-validation-rules":{"ves.io.schema.rules.message.required":"true"}},"namespace":{"type":"string","description":" This defines the workspace within which each the configuration object is to be created.\n Must be a DNS_LABEL format. For a namespace object itself, namespace value will be \"\"\n\nExample: ` \"staging\"`","title":"namespace","x-displayname":"Namespace","x-ves-example":"staging"}}},"schemaObjectGetMetaType":{"type":"object","description":"ObjectGetMetaType is metadata that can be specified in Get/Create response of an object.","title":"ObjectGetMetaType","x-displayname":"Get Metadata","x-ves-proto-message":"ves.io.schema.ObjectGetMetaType","properties":{"annotations":{"type":"object","description":" Annotations is an unstructured key value map stored with a resource that may be\n set by external tools to store and retrieve arbitrary metadata. They are not\n queryable and should be preserved when modifying objects.\n\nExample: ` \"value\"`\n\nValidation Rules:\n ves.io.schema.rules.map.keys.string.max_len: 64\n ves.io.schema.rules.map.keys.string.min_len: 1\n ves.io.schema.rules.map.values.string.max_len: 1024\n ves.io.schema.rules.map.values.string.min_len: 1\n","title":"annotations","x-displayname":"Annotation","x-ves-example":"value","x-ves-validation-rules":{"ves.io.schema.rules.map.keys.string.max_len":"64","ves.io.schema.rules.map.keys.string.min_len":"1","ves.io.schema.rules.map.values.string.max_len":"1024","ves.io.schema.rules.map.values.string.min_len":"1"}},"description":{"type":"string","description":" Human readable description for the object\n\nExample: ` \"Virtual Host for acmecorp website\"`\n\nValidation Rules:\n ves.io.schema.rules.string.max_bytes: 1200\n","title":"description","maxLength":1200,"x-displayname":"Description","x-ves-example":"Virtual Host for acmecorp website","x-ves-validation-rules":{"ves.io.schema.rules.string.max_bytes":"1200"}},"disable":{"type":"boolean","description":" A value of true will administratively disable the object\n\nExample: ` \"true\"`","title":"disable","format":"boolean","x-displayname":"Disable","x-ves-example":"true"},"labels":{"type":"object","description":" Map of string keys and values that can be used to organize and categorize\n (scope and select) objects as chosen by the user. Values specified here will be used\n by selector expression\n\nExample: ` \"value\"`","title":"labels","x-displayname":"Labels","x-ves-example":"value"},"name":{"type":"string","description":" This is the name of configuration object. It has to be unique within the namespace.\n It can only be specified during create API and cannot be changed during replace API.\n The value of name has to follow DNS-1035 format.\n\nExample: ` \"acmecorp-web\"`\n\nRequired: YES\n\nValidation Rules:\n ves.io.schema.rules.message.required: true\n","title":"name","x-displayname":"Name","x-ves-example":"acmecorp-web","x-ves-required":"true","x-ves-validation-rules":{"ves.io.schema.rules.message.required":"true"}},"namespace":{"type":"string","description":" This defines the workspace within which each the configuration object is to be created.\n Must be a DNS_LABEL format. For a namespace object itself, namespace value will be \"\"\n\nExample: ` \"staging\"`","title":"namespace","x-displayname":"Namespace","x-ves-example":"staging"}}},"schemaObjectReplaceMetaType":{"type":"object","description":"ObjectReplaceMetaType is metadata that can be specified in Replace request of an object.","title":"ObjectReplaceMetaType","x-displayname":"Replace Metadata","x-ves-proto-message":"ves.io.schema.ObjectReplaceMetaType","properties":{"annotations":{"type":"object","description":" Annotations is an unstructured key value map stored with a resource that may be\n set by external tools to store and retrieve arbitrary metadata. They are not\n queryable and should be preserved when modifying objects.\n\nExample: ` \"value\"`\n\nValidation Rules:\n ves.io.schema.rules.map.keys.string.max_len: 64\n ves.io.schema.rules.map.keys.string.min_len: 1\n ves.io.schema.rules.map.values.string.max_len: 1024\n ves.io.schema.rules.map.values.string.min_len: 1\n","title":"annotations","x-displayname":"Annotations","x-ves-example":"value","x-ves-validation-rules":{"ves.io.schema.rules.map.keys.string.max_len":"64","ves.io.schema.rules.map.keys.string.min_len":"1","ves.io.schema.rules.map.values.string.max_len":"1024","ves.io.schema.rules.map.values.string.min_len":"1"}},"description":{"type":"string","description":" Human readable description for the object\n\nExample: ` \"Virtual Host for acmecorp website\"`\n\nValidation Rules:\n ves.io.schema.rules.string.max_bytes: 1200\n","title":"description","maxLength":1200,"x-displayname":"Description","x-ves-example":"Virtual Host for acmecorp website","x-ves-validation-rules":{"ves.io.schema.rules.string.max_bytes":"1200"}},"disable":{"type":"boolean","description":" A value of true will administratively disable the object\n\nExample: ` \"true\"`","title":"disable","format":"boolean","x-displayname":"Disable"},"labels":{"type":"object","description":" Map of string keys and values that can be used to organize and categorize\n (scope and select) objects as chosen by the user. Values specified here will be used\n by selector expression\n\nExample: ` \"value\"`","title":"labels","x-displayname":"Labels","x-ves-example":"value"},"name":{"type":"string","description":" This is the name of configuration object. It has to be unique within the namespace.\n It can only be specified during create API and cannot be changed during replace API.\n The value of name has to follow DNS-1035 format.\n\nExample: ` \"acmecorp-web\"`\n\nRequired: YES\n\nValidation Rules:\n ves.io.schema.rules.message.required: true\n","title":"name","x-displayname":"Name","x-ves-example":"acmecorp-web","x-ves-validation-rules":{"ves.io.schema.rules.message.required":"true"}},"namespace":{"type":"string","description":" This defines the workspace within which each the configuration object is to be created.\n Must be a DNS_LABEL format. For a namespace object itself, namespace value will be \"\"\n\nExample: ` \"staging\"`","title":"namespace","x-displayname":"Namespace","x-ves-example":"staging"}}},"schemaOpenApiValidationProperties":{"type":"string","description":"List of required properties to validate against the OpenAPI spec\n\nValidate that all query parameters are according to the OpenAPI specification\nValidate that all path parameters are according to the OpenAPI specification\nValidate that the content type of the request is according to the OpenAPI specification\nValidate that all cookies are according to the OpenAPI specification\nValidate that all HTTP headers are according to the OpenAPI specification\nValidate that the body is according to the OpenAPI specification\nValidate that the security schema is according to the OpenAPI specification\nValidate that the response code is according to the OpenAPI specification","title":"OpenApiValidationProperties","enum":["PROPERTY_QUERY_PARAMETERS","PROPERTY_PATH_PARAMETERS","PROPERTY_CONTENT_TYPE","PROPERTY_COOKIE_PARAMETERS","PROPERTY_HTTP_HEADERS","PROPERTY_HTTP_BODY","PROPERTY_SECURITY_SCHEMA","PROPERTY_RESPONSE_CODE"],"default":"PROPERTY_QUERY_PARAMETERS","x-displayname":"OpenAPI Validation Properties","x-ves-proto-enum":"ves.io.schema.OpenApiValidationProperties"},"schemaSecretEncodingType":{"type":"string","description":"x-displayName: \"Secret Encoding\"\nSecretEncodingType defines the encoding type of the secret before handled by the Secret Management Service.\n\n - EncodingNone: x-displayName: \"None\"\nNo Encoding\n - EncodingBase64: Base64\n\nx-displayName: \"Base64\"\nBase64 encoding","title":"SecretEncodingType","enum":["EncodingNone","EncodingBase64"],"default":"EncodingNone"},"schemaSecretType":{"type":"object","description":"SecretType is used in an object to indicate a sensitive/confidential field","title":"SecretType","x-displayname":"Secret","x-ves-oneof-field-secret_info_oneof":"[\"blindfold_secret_info\",\"clear_secret_info\"]","x-ves-proto-message":"ves.io.schema.SecretType","properties":{"blindfold_secret_info":{"$ref":"#/components/schemas/schemaBlindfoldSecretInfoType"},"clear_secret_info":{"$ref":"#/components/schemas/schemaClearSecretInfoType"}}},"schemaSortOrder":{"type":"string","description":"Sort algorithm\n\nSort in descending order\nSort in ascending order","title":"SortOrder","enum":["DESCENDING","ASCENDING"],"default":"DESCENDING","x-displayname":"Sort Order","x-ves-proto-enum":"ves.io.schema.SortOrder"},"schemaStatusMetaType":{"type":"object","description":"StatusMetaType is metadata that all status must have.","title":"StatusMetaType","x-displayname":"Metadata","x-ves-proto-message":"ves.io.schema.StatusMetaType","properties":{"creation_timestamp":{"type":"string","description":" creation_timestamp is when the status object was created. It is used to find/tie-break\n for latest status object from same origin","title":"creation_timestamp","format":"date-time","x-displayname":"Creation Timestamp"},"creator_class":{"type":"string","description":" Class of creator which created this StatusObject. This will be service's DNS FQDN.\n This will be set by the system based on client certificate information.\n\nExample: ` \"ver.re1.int.ves.io\"`","title":"creator_class","x-displayname":"Creator Class","x-ves-example":"ver.re1.int.ves.io"},"creator_id":{"type":"string","description":" ID of creator which created this StatusObject. This will be a concrete identifier for service (e.g.\n identifying the environment also). This will be set by the system based on client certificate\n information\n\nExample: ` \"ver-instance-1\"`","title":"creator_id","x-displayname":"Creator ID","x-ves-example":"ver-instance-1"},"publish":{"$ref":"#/components/schemas/schemaStatusPublishType"},"status_id":{"type":"string","description":" status_id is a field used by the generator to distinguish (if necessary) between two status\n objects for the same config object from the same site and same service and potentially same\n daemon(creator-id)","title":"status_id","x-displayname":"Status ID"},"uid":{"type":"string","description":" uid is the unique in time and space value for a StatusObject.\n\nExample: ` \"d15f1fad-4d37-48c0-8706-df1824d76d31\"`","title":"uid","x-displayname":"UID","x-ves-example":"d15f1fad-4d37-48c0-8706-df1824d76d31"},"vtrp_id":{"type":"string","description":" Origin of this status exchanged by VTRP.","title":"vtrp_id","x-displayname":"VTRP ID"},"vtrp_stale":{"type":"boolean","description":" Indicate whether mars deems this object to be stale via graceful restart timer information","title":"vtrp_stale","format":"boolean","x-displayname":"VTRP Stale"}}},"schemaStatusPublishType":{"type":"string","description":"StatusPublishType is all possible publish operations on a StatusObject\n\n - STATUS_DO_NOT_PUBLISH: Do Not Publish\n\nDo not propagate this status to user. This could be because status is only informational\n - STATUS_PUBLISH: Publish\n\nPropagate this status up to user as it might be actionable","title":"StatusPublishType","enum":["STATUS_DO_NOT_PUBLISH","STATUS_PUBLISH"],"default":"STATUS_DO_NOT_PUBLISH","x-displayname":"Status Publish Type","x-ves-proto-enum":"ves.io.schema.StatusPublishType"},"schemaStatusType":{"type":"object","description":"Status is a return value for calls that don't return other objects.","title":"StatusType","x-displayname":"Status","x-ves-proto-message":"ves.io.schema.StatusType","properties":{"code":{"type":"integer","description":" Suggested HTTP return code for this status, 0 if not set.\n\nExample: ` \"0\"`","title":"code","format":"int32","x-displayname":"Code","x-ves-example":"0"},"reason":{"type":"string","description":" A human-readable description of why this operation is in the\n \"Failure\" status. If this value is empty there\n is no information available.\n\nExample: ` \"value\"`","title":"reason","x-displayname":"Reason","x-ves-example":"value"},"status":{"type":"string","description":" Status of the operation.\n One of: \"Success\" or \"Failure\".\n\nExample: ` \"value\"`","title":"status","x-displayname":"Status","x-ves-example":"value"}}},"schemaSystemObjectGetMetaType":{"type":"object","description":"SystemObjectGetMetaType is metadata generated or populated by the system for all persisted objects and\ncannot be updated directly by users.","title":"SystemObjectGetMetaType","x-displayname":"System Metadata","x-ves-proto-message":"ves.io.schema.SystemObjectGetMetaType","properties":{"creation_timestamp":{"type":"string","description":" CreationTimestamp is a timestamp representing the server time when this object was\n created. It is not guaranteed to be set in happens-before order across separate operations.\n Clients may not set this value. It is represented in RFC3339 form and is in UTC.","title":"creation_timestamp","format":"date-time","x-displayname":"Creation Timestamp"},"creator_class":{"type":"string","description":" A value identifying the class of the user or service which created this configuration object.\n\nExample: ` \"value\"`","title":"creator_class","x-displayname":"Creator Class","x-ves-example":"prism"},"creator_id":{"type":"string","description":" A value identifying the exact user or service that created this configuration object\n\nExample: ` \"value\"`","title":"creator_id","x-displayname":"Creator ID","x-ves-example":"admin@acmecorp.com"},"deletion_timestamp":{"type":"string","description":" DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This\n field is set by the server when a graceful deletion is requested by the user, and is not\n directly settable by a client. The resource is expected to be deleted (no longer visible\n from resource lists, and not reachable by name) after the time in this field, once the\n finalizers list is empty. As long as the finalizers list contains items, deletion is blocked.\n Once the deletionTimestamp is set, this value may not be unset or be set further into the\n future, although it may be shortened or the resource may be deleted prior to this time.\n For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react\n by sending a graceful termination signal to the containers in the pod. After that 30 seconds,\n the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup,\n remove the pod from the API. In the presence of network partitions, this object may still\n exist after this timestamp, until an administrator or automated process can determine the\n resource is fully terminated.\n If not set, graceful deletion of the object has not been requested.\n\n Populated by the system when a graceful deletion is requested.\n Read-only.","title":"deletion_timestamp","format":"date-time","x-displayname":"Deletion Timestamp"},"finalizers":{"type":"array","description":" Must be empty before the object is deleted from the registry. Each entry\n is an identifier for the responsible component that will remove the entry\n from the list. If the deletionTimestamp of the object is non-nil, entries\n in this list can only be removed.\n\nExample: ` \"value\"`","title":"finalizers","items":{"type":"string"},"x-displayname":"Finalizers","x-ves-example":"value"},"initializers":{"$ref":"#/components/schemas/schemaInitializersType"},"labels":{"type":"object","description":" Map of string keys and values that can be used to organize and categorize\n (scope and select) objects as chosen by the operator or software. Values here can be interpreted\n by software(backend or frontend) to enable certain behavior e.g. things marked as soft-deleted(restorable).\n\nExample: ` \"'ves.io/soft-deleted''true'\"`","title":"labels","x-displayname":"Labels","x-ves-example":"'ves.io/soft-deleted': 'true'"},"modification_timestamp":{"type":"string","description":" ModificationTimestamp is a timestamp representing the server time when this object was\n last modified.","title":"modification_timestamp","format":"date-time","x-displayname":"Modification Timestamp"},"object_index":{"type":"integer","description":" Unique index for the object. Some objects need a unique integer index to be allocated\n for each object type. This field will be populated for all objects that need it and will\n be zero otherwise.\n\nExample: ` \"0\"`","title":"object_index","format":"int64","x-displayname":"Object Index","x-ves-example":"0"},"owner_view":{"$ref":"#/components/schemas/schemaViewRefType"},"tenant":{"type":"string","description":" Tenant to which this configuration object belongs to. The value for this is found from\n presented credentials.\n\nExample: ` \"acmecorp\"`","title":"tenant","x-displayname":"Tenant","x-ves-example":"acmecorp"},"uid":{"type":"string","description":" uid is the unique in time and space value for this object. It is generated by\n the server on successful creation of an object and is not allowed to change on Replace\n API. The value of is taken from uid field of ObjectMetaType, if provided.\n\nExample: ` \"d15f1fad-4d37-48c0-8706-df1824d76d31\"`","title":"uid","x-displayname":"UID","x-ves-example":"d15f1fad-4d37-48c0-8706-df1824d76d31"}}},"schemaTlsCertificateType":{"type":"object","description":"Handle to fetch certificate and key","title":"TlsCertificateType","x-displayname":"TLS Certificate","x-ves-oneof-field-ocsp_stapling_choice":"[\"custom_hash_algorithms\",\"disable_ocsp_stapling\",\"use_system_defaults\"]","x-ves-proto-message":"ves.io.schema.TlsCertificateType","properties":{"certificate_url":{"type":"string","description":" TLS certificate.\n Certificate or certificate chain in PEM format including the PEM headers.\n\nExample: ` \"value\"`\n\nRequired: YES\n\nValidation Rules:\n ves.io.schema.rules.message.required: true\n ves.io.schema.rules.string.certificate_url: true\n ves.io.schema.rules.string.max_bytes: 131072\n ves.io.schema.rules.string.min_bytes: 1\n","title":"certificate_url","minLength":1,"maxLength":131072,"x-displayname":"Certificate","x-ves-example":"value","x-ves-required":"true","x-ves-validation-rules":{"ves.io.schema.rules.message.required":"true","ves.io.schema.rules.string.certificate_url":"true","ves.io.schema.rules.string.max_bytes":"131072","ves.io.schema.rules.string.min_bytes":"1"}},"custom_hash_algorithms":{"$ref":"#/components/schemas/schemaHashAlgorithms"},"description":{"type":"string","description":" Description for the certificate\n\nExample: ` \"Certificate used in production environment\"`","title":"description","x-displayname":"Description","x-ves-example":"Certificate used in production environment"},"disable_ocsp_stapling":{"$ref":"#/components/schemas/ioschemaEmpty"},"private_key":{"$ref":"#/components/schemas/schemaSecretType"},"use_system_defaults":{"$ref":"#/components/schemas/ioschemaEmpty"}}},"schemaTlsProtocol":{"type":"string","description":"TlsProtocol is enumeration of supported TLS versions\n\nF5 Distributed Cloud will choose the optimal TLS version.","title":"TlsProtocol","enum":["TLS_AUTO","TLSv1_0","TLSv1_1","TLSv1_2","TLSv1_3"],"default":"TLS_AUTO","x-displayname":"TLS Protocol","x-ves-proto-enum":"ves.io.schema.TlsProtocol"},"schemaTrendSentiment":{"type":"string","description":"x-displayName: \"Trend Sentiment\"\ntrend sentiment\n\n - TREND_SENTIMENT_NONE: x-displayName: \"None\"\n - TREND_SENTIMENT_POSITIVE: x-displayName: \"Positive\"\nIndicates trend sentiment is positive\n - TREND_SENTIMENT_NEGATIVE: x-displayName: \"Negative\"\nIndicates trend sentiment is negative.","title":"Trend Sentiment","enum":["TREND_SENTIMENT_NONE","TREND_SENTIMENT_POSITIVE","TREND_SENTIMENT_NEGATIVE"],"default":"TREND_SENTIMENT_NONE"},"schemaTrendValue":{"type":"object","description":"x-displayName: \"Trend Value\"\nTrend value contains trend value, trend sentiment and trend calculation description and window size.","title":"Trend Value","properties":{"description":{"type":"string","description":"x-displayName: \"Description\"\nx-example: \"Trend was calculated by comparing the avg of window size intervals of end-start Time and last window time interval\"\ndescription of the method used to calculate trend.","title":"Description"},"previous_value":{"type":"string","description":"x-displayName: \"Previous Value\"\nx-example: \"200.00\"","title":"Previous Value"},"sentiment":{"$ref":"#/components/schemas/schemaTrendSentiment"},"value":{"type":"string","description":"x-displayName: \"Value\"\nx-example: \"-15\"","title":"Value"}}},"schemaVaultSecretInfoType":{"type":"object","description":"x-displayName: \"Vault Secret\"\nVaultSecretInfoType specifies information about the Secret managed by Hashicorp Vault.","title":"VaultSecretInfoType","properties":{"key":{"type":"string","description":"x-displayName: \"Key\"\nx-example: \"key_pem\"\nKey of the individual secret. Vault Secrets are stored as key-value pair.\nIf user is only interested in one value from the map, this field should be set to the corresponding key.\nIf not provided entire secret will be returned.","title":"Key"},"location":{"type":"string","description":"x-displayName: \"Location\"\nx-required\nx-example: \"v1/data/vhost_key\"\nPath to secret in Vault.","title":"Location"},"provider":{"type":"string","description":"x-displayName: \"Provider\"\nx-required\nx-example: \"vault-vh-provider\"\nName of the Secret Management Access object that contains information about the backend Vault.","title":"Provider"},"secret_encoding":{"$ref":"#/components/schemas/schemaSecretEncodingType"},"version":{"type":"integer","description":"x-displayName: \"Version\"\nx-example: \"1\"\nVersion of the secret to be fetched. As vault secrets are versioned, user can specify this field to fetch specific version.\nIf not provided latest version will be returned.","title":"Version","format":"int64"}}},"schemaViewRefType":{"type":"object","description":"ViewRefType represents a reference to a view","title":"ViewRefType","x-displayname":"View Reference","x-ves-proto-message":"ves.io.schema.ViewRefType","properties":{"kind":{"type":"string","description":" Kind of the view object\n\nExample: ` \"http_proxy\"`","title":"kind","x-displayname":"Kind","x-ves-example":"http_proxy"},"name":{"type":"string","description":" When a configuration object(e.g. virtual_host) refers to another(e.g route)\n then name will hold the referred object's(e.g. route's) name.\n\nExample: ` \"contactus-route\"`","title":"name","x-displayname":"Name","x-ves-example":"contactus-route"},"namespace":{"type":"string","description":" When a configuration object(e.g. virtual_host) refers to another(e.g route)\n then namespace will hold the referred object's(e.g. route's) namespace.\n\nExample: ` \"ns1\"`","title":"namespace","x-displayname":"Namespace","x-ves-example":"ns1"},"uid":{"type":"string","description":" UID of the view object\n\nExample: ` \"f3744323-1adf-4aaa-a5dc-0707c1d1bd82\"`","title":"uid","x-displayname":"UID","x-ves-example":"f3744323-1adf-4aaa-a5dc-0707c1d1bd82"}}},"schemaWingmanSecretInfoType":{"type":"object","description":"x-displayName: \"Wingman Secret\"\nWingmanSecretInfoType specifies the handle to the wingman secret","title":"WingmanSecretInfoType","properties":{"name":{"type":"string","description":"x-displayName: \"Name\"\nx-required\nx-example: \"ChargeBack-API-Key\"\nName of the secret.","title":"Name"}}},"schemaXfccElement":{"type":"string","description":"X-Forwarded-Client-Cert custom cookie elements\n\nThe entire client certificate in URL encoded PEM format.\nThe entire client certificate chain (including the leaf certificate) in URL encoded PEM format.\nThe Subject field of the current client certificate. The value is always double-quoted.\nThe URI type Subject Alternative Name field of the current client certificate.\nA client certificate may contain multiple URI type Subject Alternative Names,\neach will be a separate key-value pair.\nThe DNS type Subject Alternative Name field of the current client certificate.\nA client certificate may contain multiple DNS type Subject Alternative Names,\neach will be a separate key-value pair.","title":"XfccElement","enum":["XFCC_NONE","XFCC_CERT","XFCC_CHAIN","XFCC_SUBJECT","XFCC_URI","XFCC_DNS"],"default":"XFCC_NONE","x-displayname":"XFCC Elements","x-ves-proto-enum":"ves.io.schema.XfccElement"},"schemados_mitigationGetSpecType":{"type":"object","description":"Get DoS Mitigation","title":"Get DoS Mitigation","x-displayname":"Get DoS Mitigation","x-ves-oneof-field-expiration":"[\"expiration_never\",\"expiration_timestamp\",\"expiration_ttl\"]","x-ves-proto-message":"ves.io.schema.dos_mitigation.GetSpecType","properties":{"as_numbers":{"type":"array","description":" An unordered set of RFC 6793 defined 4-byte AS numbers that can be used to create allow or deny lists for use in network policy or service policy.\n\nExample: ` \"[713, 7932, 847325, 4683, 15269, 1000001]\"`\n\nRequired: YES\n\nValidation Rules:\n ves.io.schema.rules.message.required: true\n ves.io.schema.rules.repeated.max_items: 64\n ves.io.schema.rules.repeated.unique: true\n","maxItems":64,"items":{"type":"integer","format":"int64"},"x-displayname":"AS Numbers","x-ves-example":"[713, 7932, 847325, 4683, 15269, 1000001]","x-ves-required":"true","x-ves-validation-rules":{"ves.io.schema.rules.message.required":"true","ves.io.schema.rules.repeated.max_items":"64","ves.io.schema.rules.repeated.unique":"true"}},"countries":{"type":"array","description":" Sources that are located in one of the countries in the given list\n\nValidation Rules:\n ves.io.schema.rules.repeated.max_items: 64\n ves.io.schema.rules.repeated.unique: true\n","maxItems":64,"items":{"$ref":"#/components/schemas/policyCountryCode"},"x-displayname":"Country List","x-ves-validation-rules":{"ves.io.schema.rules.repeated.max_items":"64","ves.io.schema.rules.repeated.unique":"true"}},"destination":{"$ref":"#/components/schemas/dos_mitigationDestination"},"expiration_never":{"$ref":"#/components/schemas/ioschemaEmpty"},"expiration_timestamp":{"type":"string","description":"Exclusive with [expiration_never expiration_ttl]\n This mitigation will expire at the given timestamp and will be removed from the system afterwards","format":"date-time","x-displayname":"Expiration Time"},"expiration_ttl":{"type":"integer","description":"Exclusive with [expiration_never expiration_timestamp]\n Mitigation will expire this number of seconds after its creation time\n\nExample: ` \"600\"`\n\nValidation Rules:\n ves.io.schema.rules.uint32.gte: 0\n ves.io.schema.rules.uint32.lte: 172800\n","format":"int64","x-displayname":"TTL in Seconds","x-ves-example":"600","x-ves-validation-rules":{"ves.io.schema.rules.uint32.gte":"0","ves.io.schema.rules.uint32.lte":"172800"}},"ip_prefixes":{"type":"array","description":" IP Address prefix in string format. String must contain both prefix and prefix-length.\n Accepts both IPv4 and IPv6 prefixes.\n\nExample: ` \"[192.168.1.0/24, 192.168.2.0/24, 4c6f:5ce7:df51:97f2:1619:ffff:b9f3:da35/126]\"`\n\nValidation Rules:\n ves.io.schema.rules.repeated.items.string.ip_prefix: true\n ves.io.schema.rules.repeated.max_items: 1024\n ves.io.schema.rules.repeated.unique: true\n","maxItems":1024,"items":{"type":"string"},"x-displayname":"IP Prefixes","x-ves-example":"[192.168.1.0/24, 192.168.2.0/24, 4c6f:5ce7:df51:97f2:1619:ffff:b9f3:da35/126]","x-ves-validation-rules":{"ves.io.schema.rules.repeated.items.string.ip_prefix":"true","ves.io.schema.rules.repeated.max_items":"1024","ves.io.schema.rules.repeated.unique":"true"}},"paths":{"type":"array","description":" A list of exact path values to match the input HTTP path against\n\nExample: ` \"['/api/web/namespaces/project179/users/user1', '/api/config/namespaces/accounting/bgps', '/api/data/namespaces/project443/virtual_host_101']\"`\n\nValidation Rules:\n ves.io.schema.rules.repeated.items.string.max_bytes: 256\n ves.io.schema.rules.repeated.items.string.not_empty: true\n ves.io.schema.rules.repeated.max_items: 16\n ves.io.schema.rules.repeated.unique: true\n","maxItems":16,"items":{"type":"string","maxLength":256},"x-displayname":"Paths","x-ves-example":"['/api/web/namespaces/project179/users/user1', '/api/config/namespaces/accounting/bgps', '/api/data/namespaces/project443/virtual_host_101']","x-ves-validation-rules":{"ves.io.schema.rules.repeated.items.string.max_bytes":"256","ves.io.schema.rules.repeated.items.string.not_empty":"true","ves.io.schema.rules.repeated.max_items":"16","ves.io.schema.rules.repeated.unique":"true"}},"tls_fingerprints":{"type":"array","description":" A list of exact TLS JA3 fingerprints to match the input TLS JA3 fingerprint against\n\nExample: ` \"1aa7bf8b97e540ca5edd75f7b8384bfa\"`\n\nValidation Rules:\n ves.io.schema.rules.repeated.items.string.len: 32\n ves.io.schema.rules.repeated.max_items: 64\n ves.io.schema.rules.repeated.unique: true\n","maxItems":64,"items":{"type":"string"},"x-displayname":"TLS Fingerprints","x-ves-example":"1aa7bf8b97e540ca5edd75f7b8384bfa","x-ves-validation-rules":{"ves.io.schema.rules.repeated.items.string.len":"32","ves.io.schema.rules.repeated.max_items":"64","ves.io.schema.rules.repeated.unique":"true"}},"type":{"$ref":"#/components/schemas/schemados_mitigationType"}}},"schemados_mitigationType":{"type":"string","description":"DoS Mitigation can either be manually added by a user (SRE), or can be automatically generated based on\n\nMITIGATION_MANUAL\nMITIGATION_AUTOMATIC","title":"Type","enum":["MITIGATION_MANUAL","MITIGATION_AUTOMATIC"],"default":"MITIGATION_MANUAL","x-displayname":"DoS Mitigation Type","x-ves-proto-enum":"ves.io.schema.dos_mitigation.Type"},"schemapolicyHeaderMatcherType":{"type":"object","description":"A header matcher specifies the name of a single HTTP header and the criteria for the input request to match it. The input has a list of actual values for each\nheader name in the original HTTP request.\nA header matcher can check for one of the following:\n* Presence or absence of the header in the input\n* At least one of the values for the header in the input satisfies the MatcherType item","title":"HeaderMatcherType","x-displayname":"Header Matcher","x-ves-displayorder":"1,6,4","x-ves-oneof-field-match":"[\"check_not_present\",\"check_present\",\"item\"]","x-ves-proto-message":"ves.io.schema.policy.HeaderMatcherType","properties":{"check_not_present":{"$ref":"#/components/schemas/ioschemaEmpty"},"check_present":{"$ref":"#/components/schemas/ioschemaEmpty"},"invert_matcher":{"type":"boolean","description":" Invert the match result.","title":"invert_matcher","format":"boolean","x-displayname":"Invert Header Matcher"},"item":{"$ref":"#/components/schemas/policyMatcherType"},"name":{"type":"string","description":" A case-insensitive HTTP header name.\n\nExample: ` \"Accept-Encoding\"`\n\nRequired: YES\n\nValidation Rules:\n ves.io.schema.rules.message.required: true\n ves.io.schema.rules.string.http_header_field: true\n ves.io.schema.rules.string.max_bytes: 256\n","title":"name","maxLength":256,"x-displayname":"Header Name","x-ves-example":"Accept-Encoding","x-ves-required":"true","x-ves-validation-rules":{"ves.io.schema.rules.message.required":"true","ves.io.schema.rules.string.http_header_field":"true","ves.io.schema.rules.string.max_bytes":"256"}}}},"schemapolicyIPThreatCategoryListType":{"type":"object","description":"List of ip threat categories","title":"IP Threat Category List Type","x-displayname":"IP Threat Category List Type","x-ves-proto-message":"ves.io.schema.policy.IPThreatCategoryListType","properties":{"ip_threat_categories":{"type":"array","description":" The IP threat categories is obtained from the list and is used to auto-generate equivalent label selection expressions\n\nRequired: YES\n\nValidation Rules:\n ves.io.schema.rules.message.required: true\n ves.io.schema.rules.repeated.max_items: 32\n ves.io.schema.rules.repeated.unique: true\n","title":"IP Threat Categories","maxItems":32,"items":{"$ref":"#/components/schemas/policyIPThreatCategory"},"x-displayname":"List of IP Threat Categories to choose","x-ves-required":"true","x-ves-validation-rules":{"ves.io.schema.rules.message.required":"true","ves.io.schema.rules.repeated.max_items":"32","ves.io.schema.rules.repeated.unique":"true"}}}},"schemapolicyPathMatcherType":{"type":"object","description":"A path matcher specifies multiple criteria for matching an HTTP path string. The match is considered successful if any of the criteria are satisfied. The set\nof supported match criteria includes a list of path prefixes, a list of exact path values and a list of regular expressions.","title":"PathMatcherType","x-displayname":"Path Matcher","x-ves-proto-message":"ves.io.schema.policy.PathMatcherType","properties":{"exact_values":{"type":"array","description":" A list of exact path values to match the input HTTP path against.\n\nExample: ` \"['/api/web/namespaces/project179/users/user1', '/api/config/namespaces/accounting/bgps', '/api/data/namespaces/project443/virtual_host_101']\"`\n\nValidation Rules:\n ves.io.schema.rules.repeated.items.string.http_path: true\n ves.io.schema.rules.repeated.items.string.max_bytes: 256\n ves.io.schema.rules.repeated.items.string.not_empty: true\n ves.io.schema.rules.repeated.max_items: 16\n ves.io.schema.rules.repeated.unique: true\n","title":"exact values","maxItems":16,"items":{"type":"string","maxLength":256},"x-displayname":"Exact Values","x-ves-example":"['/api/web/namespaces/project179/users/user1', '/api/config/namespaces/accounting/bgps', '/api/data/namespaces/project443/virtual_host_101']","x-ves-validation-rules":{"ves.io.schema.rules.repeated.items.string.http_path":"true","ves.io.schema.rules.repeated.items.string.max_bytes":"256","ves.io.schema.rules.repeated.items.string.not_empty":"true","ves.io.schema.rules.repeated.max_items":"16","ves.io.schema.rules.repeated.unique":"true"}},"invert_matcher":{"type":"boolean","description":" Invert the match result.","title":"invert_matcher","format":"boolean","x-displayname":"Invert Path Matcher"},"prefix_values":{"type":"array","description":" A list of path prefix values to match the input HTTP path against.\n\nExample: ` \"['/api/web/namespaces/project179/users/', '/api/config/namespaces/', '/api/data/namespaces/']\"`\n\nValidation Rules:\n ves.io.schema.rules.repeated.items.string.http_path: true\n ves.io.schema.rules.repeated.items.string.max_bytes: 256\n ves.io.schema.rules.repeated.items.string.not_empty: true\n ves.io.schema.rules.repeated.max_items: 16\n ves.io.schema.rules.repeated.unique: true\n","title":"prefix values","maxItems":16,"items":{"type":"string","maxLength":256},"x-displayname":"Prefix Values","x-ves-example":"['/api/web/namespaces/project179/users/', '/api/config/namespaces/', '/api/data/namespaces/']","x-ves-validation-rules":{"ves.io.schema.rules.repeated.items.string.http_path":"true","ves.io.schema.rules.repeated.items.string.max_bytes":"256","ves.io.schema.rules.repeated.items.string.not_empty":"true","ves.io.schema.rules.repeated.max_items":"16","ves.io.schema.rules.repeated.unique":"true"}},"regex_values":{"type":"array","description":" A list of regular expressions to match the input HTTP path against.\n\nExample: ` \"['^/api/web/namespaces/abc/users/([a-z]([-a-z0-9]*[a-z0-9])?)$', '/api/data/namespaces/proj404/virtual_hosts/([a-z]([-a-z0-9]*[a-z0-9])?)$']\"`\n\nValidation Rules:\n ves.io.schema.rules.repeated.items.string.max_bytes: 256\n ves.io.schema.rules.repeated.items.string.not_empty: true\n ves.io.schema.rules.repeated.items.string.regex: true\n ves.io.schema.rules.repeated.max_items: 16\n ves.io.schema.rules.repeated.unique: true\n","title":"regex values","maxItems":16,"items":{"type":"string","maxLength":256},"x-displayname":"Regex Values","x-ves-example":"['^/api/web/namespaces/abc/users/([a-z]([-a-z0-9]*[a-z0-9])?)$', '/api/data/namespaces/proj404/virtual_hosts/([a-z]([-a-z0-9]*[a-z0-9])?)$']","x-ves-validation-rules":{"ves.io.schema.rules.repeated.items.string.max_bytes":"256","ves.io.schema.rules.repeated.items.string.not_empty":"true","ves.io.schema.rules.repeated.items.string.regex":"true","ves.io.schema.rules.repeated.max_items":"16","ves.io.schema.rules.repeated.unique":"true"}},"suffix_values":{"type":"array","description":" A list of path suffix values to match the input HTTP path against.\n\nExample: ` \"['.exe', '.shtml', '.wmz']\"`\n\nValidation Rules:\n ves.io.schema.rules.repeated.items.string.max_bytes: 64\n ves.io.schema.rules.repeated.items.string.not_empty: true\n ves.io.schema.rules.repeated.max_items: 64\n ves.io.schema.rules.repeated.unique: true\n","title":"Suffix values","maxItems":64,"items":{"type":"string","maxLength":64},"x-displayname":"Suffix Values","x-ves-example":"['.exe', '.shtml', '.wmz']","x-ves-validation-rules":{"ves.io.schema.rules.repeated.items.string.max_bytes":"64","ves.io.schema.rules.repeated.items.string.not_empty":"true","ves.io.schema.rules.repeated.max_items":"64","ves.io.schema.rules.repeated.unique":"true"}},"transformers":{"type":"array","description":" An ordered list of transformers (starting from index 0) to be applied to the path before matching.\n\nExample: ` \"[BASE64_DECODE, LOWER_CASE]`\n\nValidation Rules:\n ves.io.schema.rules.repeated.max_items: 9\n ves.io.schema.rules.repeated.unique: true\n","title":"transformers","maxItems":9,"items":{"$ref":"#/components/schemas/policyTransformer"},"x-displayname":"Transformers","x-ves-validation-rules":{"ves.io.schema.rules.repeated.max_items":"9","ves.io.schema.rules.repeated.unique":"true"}}}},"schemapolicyQueryParameterMatcherType":{"type":"object","description":"A query parameter matcher specifies the name of a single query parameter and the criteria for the input request to match it. The input has a list of actual\nvalues for each query parameter name in the original HTTP request.\nA query parameter matcher can check for one of the following:\n* Presence or absence of the query parameter in the input\n* At least one of the values for the query parameter in the input satisfies the MatcherType item","title":"QueryParameterMatcherType","x-displayname":"Query Parameter Matcher","x-ves-displayorder":"1,6,4","x-ves-oneof-field-match":"[\"check_not_present\",\"check_present\",\"item\"]","x-ves-proto-message":"ves.io.schema.policy.QueryParameterMatcherType","properties":{"check_not_present":{"$ref":"#/components/schemas/ioschemaEmpty"},"check_present":{"$ref":"#/components/schemas/ioschemaEmpty"},"invert_matcher":{"type":"boolean","description":" Invert the match result.","title":"invert_matcher","format":"boolean","x-displayname":"Invert Query Parameter Matcher"},"item":{"$ref":"#/components/schemas/policyMatcherType"},"key":{"type":"string","description":" A case-sensitive HTTP query parameter name.\n\nExample: ` \"sourceid\"`\n\nRequired: YES\n\nValidation Rules:\n ves.io.schema.rules.message.required: true\n ves.io.schema.rules.string.max_bytes: 256\n","title":"key","maxLength":256,"x-displayname":"Query Parameter Name","x-ves-example":"sourceid","x-ves-required":"true","x-ves-validation-rules":{"ves.io.schema.rules.message.required":"true","ves.io.schema.rules.string.max_bytes":"256"}}}},"schemaviewsDownstreamTlsParamsType":{"type":"object","description":"Inline TLS parameters","title":"DownstreamTlsParamsType","x-displayname":"Inline TLS Parameters","x-ves-oneof-field-mtls_choice":"[\"no_mtls\",\"use_mtls\"]","x-ves-proto-message":"ves.io.schema.views.DownstreamTlsParamsType","properties":{"no_mtls":{"$ref":"#/components/schemas/ioschemaEmpty"},"tls_certificates":{"type":"array","description":" Users can add one or more certificates that share the same set of domains.\n for example, domain.com and *.domain.com - but use different signature algorithms\n\nRequired: YES\n\nValidation Rules:\n ves.io.schema.rules.message.required: true\n ves.io.schema.rules.repeated.max_items: 16\n ves.io.schema.rules.repeated.min_items: 1\n","title":"tls_certificates","minItems":1,"maxItems":16,"items":{"$ref":"#/components/schemas/schemaTlsCertificateType"},"x-displayname":"TLS Certificates","x-ves-required":"true","x-ves-validation-rules":{"ves.io.schema.rules.message.required":"true","ves.io.schema.rules.repeated.max_items":"16","ves.io.schema.rules.repeated.min_items":"1"}},"tls_config":{"$ref":"#/components/schemas/viewsTlsConfig"},"use_mtls":{"$ref":"#/components/schemas/viewsDownstreamTlsValidationContext"}}},"schemaviewsObjectRefType":{"type":"object","description":"This type establishes a direct reference from one object(the referrer) to another(the referred).\nSuch a reference is in form of tenant/namespace/name","title":"ObjectRefType","x-displayname":"Object reference","x-ves-proto-message":"ves.io.schema.views.ObjectRefType","properties":{"name":{"type":"string","description":" When a configuration object(e.g. virtual_host) refers to another(e.g route)\n then name will hold the referred object's(e.g. route's) name.\n\nExample: ` \"contacts-route\"`\n\nRequired: YES\n\nValidation Rules:\n ves.io.schema.rules.message.required: true\n ves.io.schema.rules.string.max_bytes: 128\n ves.io.schema.rules.string.min_bytes: 1\n","title":"name","minLength":1,"maxLength":128,"x-displayname":"Name","x-ves-example":"contacts-route","x-ves-required":"true","x-ves-validation-rules":{"ves.io.schema.rules.message.required":"true","ves.io.schema.rules.string.max_bytes":"128","ves.io.schema.rules.string.min_bytes":"1"}},"namespace":{"type":"string","description":" When a configuration object(e.g. virtual_host) refers to another(e.g route)\n then namespace will hold the referred object's(e.g. route's) namespace.\n\nExample: ` \"ns1\"`\n\nValidation Rules:\n ves.io.schema.rules.string.max_bytes: 64\n","title":"namespace","maxLength":64,"x-displayname":"Namespace","x-ves-example":"ns1","x-ves-validation-rules":{"ves.io.schema.rules.string.max_bytes":"64"}},"tenant":{"type":"string","description":" When a configuration object(e.g. virtual_host) refers to another(e.g route)\n then tenant will hold the referred object's(e.g. route's) tenant.\n\nExample: ` \"acmecorp\"`\n\nValidation Rules:\n ves.io.schema.rules.string.max_bytes: 64\n","title":"tenant","maxLength":64,"x-displayname":"Tenant","x-ves-example":"acmecorp","x-ves-validation-rules":{"ves.io.schema.rules.string.max_bytes":"64"}}}},"service_policy_ruleChallengeRuleSpec":{"type":"object","description":"A Challenge Rule consists of an unordered list of predicates and an action. The predicates are evaluated against a set of input fields that are extracted from\nor derived from an L7 request API. A request API is considered to match the rule if all predicates in the rule evaluate to true for that request. Any\npredicates that are not specified in a rule are implicitly considered to be true. If a request API matches a challenge rule, the configured challenge is\nenforced.","title":"Challenge Rule Spec","x-displayname":"Challenge Rule Specification","x-ves-oneof-field-asn_choice":"[\"any_asn\",\"asn_list\",\"asn_matcher\"]","x-ves-oneof-field-challenge_action":"[\"disable_challenge\",\"enable_captcha_challenge\",\"enable_javascript_challenge\"]","x-ves-oneof-field-client_choice":"[\"any_client\",\"client_selector\"]","x-ves-oneof-field-ip_choice":"[\"any_ip\",\"ip_matcher\",\"ip_prefix_list\"]","x-ves-oneof-field-tls_fingerprint_choice":"[\"tls_fingerprint_matcher\"]","x-ves-proto-message":"ves.io.schema.service_policy_rule.ChallengeRuleSpec","properties":{"any_asn":{"$ref":"#/components/schemas/ioschemaEmpty"},"any_client":{"$ref":"#/components/schemas/ioschemaEmpty"},"any_ip":{"$ref":"#/components/schemas/ioschemaEmpty"},"arg_matchers":{"type":"array","description":" A list of predicates for all POST args that need to be matched. The criteria for matching each arg are described in individual instances\n of ArgMatcherType. The actual arg values are extracted from the request API as a list of strings for each arg selector name.\n Note that all specified arg matcher predicates must evaluate to true.\n\nValidation Rules:\n ves.io.schema.rules.repeated.max_items: 16\n","maxItems":16,"items":{"$ref":"#/components/schemas/policyArgMatcherType"},"x-ves-validation-rules":{"ves.io.schema.rules.repeated.max_items":"16"}},"asn_list":{"$ref":"#/components/schemas/policyAsnMatchList"},"asn_matcher":{"$ref":"#/components/schemas/policyAsnMatcherType"},"body_matcher":{"$ref":"#/components/schemas/policyMatcherType"},"client_selector":{"$ref":"#/components/schemas/schemaLabelSelectorType"},"cookie_matchers":{"type":"array","description":" A list of predicates for all cookies that need to be matched. The criteria for matching each cookie is described in individual instances\n of CookieMatcherType. The actual cookie values are extracted from the request API as a list of strings for each cookie name.\n Note that all specified cookie matcher predicates must evaluate to true.\n\nValidation Rules:\n ves.io.schema.rules.repeated.max_items: 16\n","maxItems":16,"items":{"$ref":"#/components/schemas/policyCookieMatcherType"},"x-ves-validation-rules":{"ves.io.schema.rules.repeated.max_items":"16"}},"disable_challenge":{"$ref":"#/components/schemas/ioschemaEmpty"},"domain_matcher":{"$ref":"#/components/schemas/policyMatcherTypeBasic"},"enable_captcha_challenge":{"$ref":"#/components/schemas/ioschemaEmpty"},"enable_javascript_challenge":{"$ref":"#/components/schemas/ioschemaEmpty"},"expiration_timestamp":{"type":"string","description":" The expiration_timestamp is the RFC 3339 format timestamp at which the containing rule is considered to be logically expired. The rule continues to exist in\n the configuration but is not applied anymore.\n\nExample: ` \"2019-12-31:44:34.171543432Z\"`","format":"date-time"},"headers":{"type":"array","description":" A list of predicates for various HTTP headers that need to match. The criteria for matching each HTTP header are described in individual HeaderMatcherType\n instances. The actual HTTP header values are extracted from the request API as a list of strings for each HTTP header type.\n Note that all specified header predicates must evaluate to true.\n\nValidation Rules:\n ves.io.schema.rules.repeated.max_items: 16\n","maxItems":16,"items":{"$ref":"#/components/schemas/schemapolicyHeaderMatcherType"},"x-ves-validation-rules":{"ves.io.schema.rules.repeated.max_items":"16"}},"http_method":{"$ref":"#/components/schemas/policyHttpMethodMatcherType"},"ip_matcher":{"$ref":"#/components/schemas/policyIpMatcherType"},"ip_prefix_list":{"$ref":"#/components/schemas/policyPrefixMatchList"},"path":{"$ref":"#/components/schemas/schemapolicyPathMatcherType"},"query_params":{"type":"array","description":" A list of predicates for all query parameters that need to be matched. The criteria for matching each query parameter are described in individual instances\n of QueryParameterMatcherType. The actual query parameter values are extracted from the request API as a list of strings for each query parameter name.\n Note that all specified query parameter predicates must evaluate to true.\n\nValidation Rules:\n ves.io.schema.rules.repeated.max_items: 16\n","maxItems":16,"items":{"$ref":"#/components/schemas/schemapolicyQueryParameterMatcherType"},"x-ves-validation-rules":{"ves.io.schema.rules.repeated.max_items":"16"}},"tls_fingerprint_matcher":{"$ref":"#/components/schemas/policyTlsFingerprintMatcherType"}}},"viewsCustomCiphers":{"type":"object","description":"This defines TLS protocol config including min/max versions and allowed ciphers","title":"CustomCiphers","x-displayname":"Custom Ciphers","x-ves-displayorder":"1,2,3","x-ves-proto-message":"ves.io.schema.views.CustomCiphers","properties":{"cipher_suites":{"type":"array","description":" The TLS listener will only support the specified cipher list.\n\nExample: ` \"TLS_AES_128_GCM_SHA256\"`\n\nRequired: YES\n\nValidation Rules:\n ves.io.schema.rules.message.required: true\n ves.io.schema.rules.repeated.items.string.in: [\\\"TLS_AES_128_GCM_SHA256\\\",\\\"TLS_AES_256_GCM_SHA384\\\",\\\"TLS_CHACHA20_POLY1305_SHA256\\\",\\\"TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256\\\",\\\"TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384\\\",\\\"TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256\\\",\\\"TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256\\\",\\\"TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384\\\",\\\"TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256\\\",\\\"TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA\\\",\\\"TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA\\\",\\\"TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA\\\",\\\"TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA\\\",\\\"TLS_RSA_WITH_AES_128_CBC_SHA\\\",\\\"TLS_RSA_WITH_AES_128_GCM_SHA256\\\",\\\"TLS_RSA_WITH_AES_256_CBC_SHA\\\",\\\"TLS_RSA_WITH_AES_256_GCM_SHA384\\\"]\n ves.io.schema.rules.repeated.unique: true\n","title":"cipher_suites","items":{"type":"string"},"x-displayname":"Cipher Suites","x-ves-example":"TLS_AES_128_GCM_SHA256","x-ves-required":"true","x-ves-validation-rules":{"ves.io.schema.rules.message.required":"true","ves.io.schema.rules.repeated.items.string.in":"[\\\"TLS_AES_128_GCM_SHA256\\\",\\\"TLS_AES_256_GCM_SHA384\\\",\\\"TLS_CHACHA20_POLY1305_SHA256\\\",\\\"TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256\\\",\\\"TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384\\\",\\\"TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256\\\",\\\"TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256\\\",\\\"TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384\\\",\\\"TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256\\\",\\\"TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA\\\",\\\"TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA\\\",\\\"TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA\\\",\\\"TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA\\\",\\\"TLS_RSA_WITH_AES_128_CBC_SHA\\\",\\\"TLS_RSA_WITH_AES_128_GCM_SHA256\\\",\\\"TLS_RSA_WITH_AES_256_CBC_SHA\\\",\\\"TLS_RSA_WITH_AES_256_GCM_SHA384\\\"]","ves.io.schema.rules.repeated.unique":"true"}},"max_version":{"$ref":"#/components/schemas/schemaTlsProtocol"},"min_version":{"$ref":"#/components/schemas/schemaTlsProtocol"}}},"viewsDownstreamTLSCertsParams":{"type":"object","description":"Select TLS Parameters and Certificates","title":"DownstreamTLSCertsParams","x-displayname":"TLS Parameters","x-ves-oneof-field-mtls_choice":"[\"no_mtls\",\"use_mtls\"]","x-ves-proto-message":"ves.io.schema.views.DownstreamTLSCertsParams","properties":{"certificates":{"type":"array","description":" Select one or more certificates with any domain names.\n\nRequired: YES\n\nValidation Rules:\n ves.io.schema.rules.message.required: true\n ves.io.schema.rules.repeated.max_items: 32\n ves.io.schema.rules.repeated.unique: true\n","title":"certificates","maxItems":32,"items":{"$ref":"#/components/schemas/schemaviewsObjectRefType"},"x-displayname":"Certificates","x-ves-required":"true","x-ves-validation-rules":{"ves.io.schema.rules.message.required":"true","ves.io.schema.rules.repeated.max_items":"32","ves.io.schema.rules.repeated.unique":"true"}},"no_mtls":{"$ref":"#/components/schemas/ioschemaEmpty"},"tls_config":{"$ref":"#/components/schemas/viewsTlsConfig"},"use_mtls":{"$ref":"#/components/schemas/viewsDownstreamTlsValidationContext"}}},"viewsDownstreamTlsValidationContext":{"type":"object","description":"Validation context for downstream client TLS connections","title":"DownstreamTlsValidationContext","x-displayname":"Clients TLS validation context","x-ves-oneof-field-crl_choice":"[\"crl\",\"no_crl\"]","x-ves-oneof-field-trusted_ca_choice":"[\"trusted_ca\",\"trusted_ca_url\"]","x-ves-oneof-field-xfcc_header":"[\"xfcc_disabled\",\"xfcc_options\"]","x-ves-proto-message":"ves.io.schema.views.DownstreamTlsValidationContext","properties":{"client_certificate_optional":{"type":"boolean","description":" Client certificate is optional. If the client has provided a certificate,\n the load balancer will verify it. If certification verification fails,\n the connection will be terminated. If the client does not provide a certificate,\n the connection will be accepted.","title":"client_certificate_optional","format":"boolean","x-displayname":"Client Certificate Optional"},"crl":{"$ref":"#/components/schemas/schemaviewsObjectRefType"},"no_crl":{"$ref":"#/components/schemas/ioschemaEmpty"},"trusted_ca":{"$ref":"#/components/schemas/schemaviewsObjectRefType"},"trusted_ca_url":{"type":"string","description":"Exclusive with [trusted_ca]\n Upload a Root CA Certificate specifically for this Load Balancer\n\nValidation Rules:\n ves.io.schema.rules.string.max_bytes: 131072\n ves.io.schema.rules.string.min_bytes: 1\n ves.io.schema.rules.string.truststore_url: true\n","title":"trusted_ca_url","minLength":1,"maxLength":131072,"x-displayname":"Inline Root CA Certificate (legacy)","x-ves-validation-rules":{"ves.io.schema.rules.string.max_bytes":"131072","ves.io.schema.rules.string.min_bytes":"1","ves.io.schema.rules.string.truststore_url":"true"}},"xfcc_disabled":{"$ref":"#/components/schemas/ioschemaEmpty"},"xfcc_options":{"$ref":"#/components/schemas/viewsXfccHeaderKeys"}}},"viewsPrefixStringListType":{"type":"object","description":"x-example: \"192.168.20.0/24\"\nList of IPv4 prefixes that represent an endpoint","title":"ipv4 prefix list","x-displayname":"IPv4 Prefix List","x-ves-proto-message":"ves.io.schema.views.PrefixStringListType","properties":{"prefixes":{"type":"array","description":" List of IPv4 prefixes that represent an endpoint\n\nExample: ` \"192.168.20.0/24\"`\n\nValidation Rules:\n ves.io.schema.rules.repeated.items.string.ipv4_prefix: true\n ves.io.schema.rules.repeated.max_items: 128\n ves.io.schema.rules.repeated.unique: true\n","title":"ipv4 prefix list","maxItems":128,"items":{"type":"string"},"x-displayname":"IPv4 Prefix List","x-ves-example":"192.168.20.0/24","x-ves-validation-rules":{"ves.io.schema.rules.repeated.items.string.ipv4_prefix":"true","ves.io.schema.rules.repeated.max_items":"128","ves.io.schema.rules.repeated.unique":"true"}}}},"viewsTlsConfig":{"type":"object","description":"This defines various options to configure TLS configuration parameters","title":"TlsConfig","x-displayname":"TLS Config","x-ves-displayorder":"5","x-ves-oneof-field-choice":"[\"custom_security\",\"default_security\",\"low_security\",\"medium_security\"]","x-ves-proto-message":"ves.io.schema.views.TlsConfig","properties":{"custom_security":{"$ref":"#/components/schemas/viewsCustomCiphers"},"default_security":{"$ref":"#/components/schemas/ioschemaEmpty"},"low_security":{"$ref":"#/components/schemas/ioschemaEmpty"},"medium_security":{"$ref":"#/components/schemas/ioschemaEmpty"}}},"viewsXfccHeaderKeys":{"type":"object","description":"X-Forwarded-Client-Cert header elements to be added to requests","title":"XfccHeaderKeys","x-displayname":"XFCC Header Elements","x-ves-proto-message":"ves.io.schema.views.XfccHeaderKeys","properties":{"xfcc_header_elements":{"type":"array","description":" X-Forwarded-Client-Cert header elements to be added to requests\n\nRequired: YES\n\nValidation Rules:\n ves.io.schema.rules.message.required: true\n ves.io.schema.rules.repeated.items.enum.defined_only: true\n ves.io.schema.rules.repeated.items.enum.not_in: [0]\n","title":"XFCC Header","items":{"$ref":"#/components/schemas/schemaXfccElement"},"x-displayname":"XFCC Header Elements","x-ves-required":"true","x-ves-validation-rules":{"ves.io.schema.rules.message.required":"true","ves.io.schema.rules.repeated.items.enum.defined_only":"true","ves.io.schema.rules.repeated.items.enum.not_in":"[0]"}}}},"viewscdn_loadbalancerAdvancedOptionsType":{"type":"object","description":"x-displayName: \"Advanced Options\"\nThis defines various options to define a route","title":"Advanced options","properties":{"cache_options":{"$ref":"#/components/schemas/cdn_loadbalancerCacheOptions"},"cache_ttl_options":{"$ref":"#/components/schemas/cdn_loadbalancerCacheTTLOptionsType"},"header_options":{"$ref":"#/components/schemas/viewscdn_loadbalancerHeaderControlType"},"logging_options":{"$ref":"#/components/schemas/viewscdn_loadbalancerLoggingOptionsType"},"security_options":{"$ref":"#/components/schemas/cdn_loadbalancerSecurityOptionsType"}}},"viewscdn_loadbalancerCDNCacheRule":{"type":"object","description":"x-displayName: \"Cache Rule\"\nThis defines a CDN Cache Rule","title":"Cache Rule","properties":{"cache_bypass":{"$ref":"#/components/schemas/ioschemaEmpty"},"eligible_for_cache":{"$ref":"#/components/schemas/viewscdn_loadbalancerCacheEligibleOptions"},"rule_expression_list":{"type":"array","description":"x-displayName: \"Expressions\"\nx-required\nExpressions are evaluated in the order in which they are specified. The evaluation stops when the first rule match occurs..","title":"Expression List","items":{"$ref":"#/components/schemas/viewscdn_loadbalancerCDNCacheRuleExpressionList"}},"rule_name":{"type":"string","description":"x-displayName: \"Rule Name\"\nx-required\nx-example: \"Rule-1\"\nName of the Cache Rule","title":"Rule Name"}}},"viewscdn_loadbalancerCDNCacheRuleExpression":{"type":"object","description":"x-displayName: \"Cache Rule Expression\"\nSelect one of the field options","title":"CDNCacheRuleExpression","properties":{"cache_headers":{"type":"array","description":"x-displayName: \"Cache Headers\"\nConfigure cache rule headers to match the criteria","title":"Cache Headers","items":{"$ref":"#/components/schemas/viewscdn_loadbalancerCacheHeaderMatcherType"}},"cookie_matcher":{"type":"array","description":"x-displayName: \"Cookie Matchers\"\nA list of predicates for all cookies that need to be matched. The criteria for matching each cookie is described in individual instances\nof CookieMatcherType. The actual cookie values are extracted from the request API as a list of strings for each cookie name.\nNote that all specified cookie matcher predicates must evaluate to true.","title":"cookie matchers","items":{"$ref":"#/components/schemas/viewscdn_loadbalancerCacheCookieMatcherType"}},"path_match":{"$ref":"#/components/schemas/viewscdn_loadbalancerCDNPathMatcherType"},"query_parameters":{"type":"array","description":"x-displayName: \"Query Parameters\"\nList of (key, value) query parameters","title":"query_params","items":{"$ref":"#/components/schemas/viewscdn_loadbalancerCacheQueryParameterMatcherType"}}}},"viewscdn_loadbalancerCDNCacheRuleExpressionList":{"type":"object","description":"x-displayName: \"Cache Rule Expression List\"\nCDN Cache Rule Expressions.","title":"Cache Rule Expression List","properties":{"cache_rule_expression":{"type":"array","description":"x-displayName: \"Terms\"\nx-required\nThe Cache Rule Expression Terms that are ANDed","title":"Terms","items":{"$ref":"#/components/schemas/viewscdn_loadbalancerCDNCacheRuleExpression"}},"expression_name":{"type":"string","description":"x-displayName: \"Expression Name\"\nx-required\nx-example: \"Expression-1\"\nName of the Expressions items that are ANDed","title":"Expression Name"}}},"viewscdn_loadbalancerCDNLoadbalancerDeploymentStatus":{"type":"string","description":"x-displayName: \"CDN LoadBalancer Deployment status\"\nDeployment status\n\n - CDN_LB_STATUS_CREATED: x-displayName: \"Created\"\n - CDN_LB_STATUS_DEPLOYING: x-displayName: \"Deploying\"\n - CDN_LB_STATUS_DEPLOY_FAILED: x-displayName: \"Deploy Failed\"\n - CDN_LB_STATUS_DEPLOYED: x-displayName: \"Deployed\"\n - CDN_LB_STATUS_FAILED: x-displayname: \"Failed\"","title":"CDN LoadBalancer Deployment status","enum":["CDN_LB_STATUS_CREATED","CDN_LB_STATUS_DEPLOYING","CDN_LB_STATUS_DEPLOY_FAILED","CDN_LB_STATUS_DEPLOYED","CDN_LB_STATUS_FAILED"],"default":"CDN_LB_STATUS_CREATED"},"viewscdn_loadbalancerCDNOriginServerType":{"type":"object","description":"Various options to specify origin server","title":"CDNOriginServerType","x-displayname":"Origin Server","x-ves-oneof-field-choice":"[\"public_ip\",\"public_name\"]","x-ves-proto-message":"ves.io.schema.views.cdn_loadbalancer.CDNOriginServerType","properties":{"port":{"type":"integer","description":" Port the workload can be reached on\n\nExample: ` \"80\"`\n\nValidation Rules:\n ves.io.schema.rules.uint32.gte: 0\n ves.io.schema.rules.uint32.lte: 65535\n","title":"Port","format":"int64","x-displayname":"Origin Server Port","x-ves-example":"80","x-ves-validation-rules":{"ves.io.schema.rules.uint32.gte":"0","ves.io.schema.rules.uint32.lte":"65535"}},"public_ip":{"$ref":"#/components/schemas/origin_poolOriginServerPublicIP"},"public_name":{"$ref":"#/components/schemas/origin_poolOriginServerPublicName"}}},"viewscdn_loadbalancerCDNPathMatcherType":{"type":"object","description":"x-displayName: \"Path to Match\"\nPath match of the URI","title":"PathMatcherType","properties":{"operator":{"$ref":"#/components/schemas/viewscdn_loadbalancerCacheOperator"}}},"viewscdn_loadbalancerCDNSiteDeploymentStatus":{"type":"string","description":"x-displayName: \"CDN LoadBalancer Site Deployment status\"\n\n - DEPLOYMENT_STATUS_NOT_DEPLOYED: x-displayName: \"Not deployed\"\n - DEPLOYMENT_STATUS_DEPLOYING: x-displayName: \"Deploying\"\n - DEPLOYMENT_STATUS_DEPLOY_FAILED: x-displayName: \"Failed\"\n - DEPLOYMENT_STATUS_DEPLOYED: x-displayName: \"Deployed\"","title":"CDNSiteDeploymentStatus","enum":["DEPLOYMENT_STATUS_NOT_DEPLOYED","DEPLOYMENT_STATUS_DEPLOYING","DEPLOYMENT_STATUS_DEPLOY_FAILED","DEPLOYMENT_STATUS_DEPLOYED"],"default":"DEPLOYMENT_STATUS_NOT_DEPLOYED"},"viewscdn_loadbalancerCacheCookieMatcherType":{"type":"object","description":"x-displayName: \"Cookie Matcher\"\nA cookie matcher specifies the name of a single cookie and the criteria to match it. The input has a list of values for each\ncookie in the request.\nA cookie matcher can check for one of the following:\n* Presence or absence of the cookie\n* At least one of the values for the cookie in the request satisfies the MatcherType item","title":"CacheCookieMatcherType","properties":{"name":{"type":"string","description":"x-displayName: \"Cookie Name\"\nx-example: \"Session\"\nx-required\nA case-sensitive cookie name.","title":"name"},"operator":{"$ref":"#/components/schemas/viewscdn_loadbalancerCacheOperator"}}},"viewscdn_loadbalancerCacheEligibleOptions":{"type":"object","description":"x-displayName: \"Cache Action Options\"\nList of options for Cache Action","title":"Cache Action Options","properties":{"hostname_uri":{"$ref":"#/components/schemas/viewscdn_loadbalancerCacheTTLEnableProps"},"scheme_hostname_request_uri":{"$ref":"#/components/schemas/viewscdn_loadbalancerCacheTTLEnableProps"},"scheme_hostname_uri":{"$ref":"#/components/schemas/viewscdn_loadbalancerCacheTTLEnableProps"},"scheme_hostname_uri_query":{"$ref":"#/components/schemas/viewscdn_loadbalancerCacheTTLEnableProps"},"scheme_proxy_host_request_uri":{"$ref":"#/components/schemas/viewscdn_loadbalancerCacheTTLEnableProps"},"scheme_proxy_host_uri":{"$ref":"#/components/schemas/viewscdn_loadbalancerCacheTTLEnableProps"}}},"viewscdn_loadbalancerCacheHeaderMatcherType":{"type":"object","description":"x-displayName: \"Cache Header to Match\"\nHeader match is done using the name of the header and its value.\nThe value match is done using one of the following\n regex match on value\n exact match of value\n presence of header\n\nHeader Match can also be inverse of above, which be used to check\n missing header or\n non-matching value","title":"CacheHeaderMatcherType","properties":{"name":{"$ref":"#/components/schemas/viewscdn_loadbalancerHeaderOptions"},"operator":{"$ref":"#/components/schemas/viewscdn_loadbalancerCacheOperator"}}},"viewscdn_loadbalancerCacheOperator":{"type":"object","description":"x-displayName: \"Operator\"","title":"Cache Operator","properties":{"Contains":{"type":"string","description":"x-displayName: \"Contains\"\nField must contain","title":"Contains"},"DoesNotContain":{"type":"string","description":"x-displayName: \"Does Not Contain\"\nField must not contain","title":"Does Not Contain"},"DoesNotEndWith":{"type":"string","description":"x-displayName: \"Does Not End With\"\nField must not end with","title":"Does Not End With"},"DoesNotEqual":{"type":"string","description":"x-displayName: \"Does Not Equal\"\nField must not equal","title":"Does Not Equal"},"DoesNotStartWith":{"type":"string","description":"x-displayName: \"Does Not Start With\"\nField must not start with","title":"Does Not Start With"},"Endswith":{"type":"string","description":"x-displayName: \"Ends With\"\nField must end with","title":"Ends With"},"Equals":{"type":"string","description":"x-displayName: \"Equals\"\nField must exactly match","title":"Equals"},"MatchRegex":{"type":"string","description":"x-displayName: \"Matches Regex\"\nField matches regular expression","title":"Matches Regex"},"Startswith":{"type":"string","description":"x-displayName: \"Starts With\"\nField must start with","title":"Starts With"}}},"viewscdn_loadbalancerCacheQueryParameterMatcherType":{"type":"object","description":"x-displayName: \"Query Parameter to Match\"\nQuery parameter match can be either regex match on value or exact match of value for given key\nAn example for HTTP request with query parameter https://gitlab.com/dashboard/issues?assignee_username=xxyyxx","title":"CacheQueryParameterMatcherType","properties":{"key":{"type":"string","description":"x-displayName: \"Key\"\nx-required\nx-example: \"assignee_username\"\nQuery parameter key\nIn the above example, assignee_username is the key","title":"key"},"operator":{"$ref":"#/components/schemas/viewscdn_loadbalancerCacheOperator"}}},"viewscdn_loadbalancerCacheTTLEnableProps":{"type":"object","description":"x-displayName: \"Cache TTL Enable Props\"\nCache TTL Enable Values","title":"Cache TTL Enable Props","properties":{"cache_override":{"type":"boolean","description":"x-displayName: \"Cache Override\"\nHonour Cache Override","title":"Cache Override","format":"boolean"},"cache_ttl":{"type":"string","description":"x-displayName: \"Cache TTL\"\nx-required\nx-example: \"5m, 60s, 120s, 3h, 1d, 15d\"\nCache TTL value is used to cache the resource/content for the specified amount of time\nFormat: [0-9][smhd], where s - seconds, m - minutes, h - hours, d - days","title":"Cache TTL Key"},"ignore_response_cookie":{"type":"boolean","description":"x-displayName: \"Ignore-Response-Cookie\"\nBy default, response will not be cached if set-cookie header is present. This option will override the behavior and cache response even with set-cookie header present.","title":"Set Cookie","format":"boolean"}}},"viewscdn_loadbalancerCdnOriginPoolType":{"type":"object","description":"Origin Pool for the CDN distribution","title":"CdnOriginPoolType","x-displayname":"CDN Origin Pool","x-ves-oneof-field-tls_choice":"[\"no_tls\",\"use_tls\"]","x-ves-proto-message":"ves.io.schema.views.cdn_loadbalancer.CdnOriginPoolType","properties":{"more_origin_options":{"$ref":"#/components/schemas/viewscdn_loadbalancerOriginAdvancedConfiguration"},"no_tls":{"$ref":"#/components/schemas/ioschemaEmpty"},"origin_request_timeout":{"type":"string","description":" Configures the time after which a request to the origin will time out waiting for a response\n\nExample: ` \"100s\"`\n\nValidation Rules:\n ves.io.schema.rules.string.max_time_interval: 10m\n ves.io.schema.rules.string.min_time_interval: 10s\n ves.io.schema.rules.string.time_interval: true\n","title":"Origin Request Timeout","x-displayname":"Origin Request Timeout Duration","x-ves-example":"100s","x-ves-validation-rules":{"ves.io.schema.rules.string.max_time_interval":"10m","ves.io.schema.rules.string.min_time_interval":"10s","ves.io.schema.rules.string.time_interval":"true"}},"origin_servers":{"type":"array","description":" List of original servers\n\nRequired: YES\n\nValidation Rules:\n ves.io.schema.rules.message.required: true\n ves.io.schema.rules.repeated.max_items: 32\n ves.io.schema.rules.repeated.min_items: 1\n ves.io.schema.rules.repeated.unique: true\n","title":"List of Origin Servers","minItems":1,"maxItems":32,"items":{"$ref":"#/components/schemas/viewscdn_loadbalancerCDNOriginServerType"},"x-displayname":"List Of Origin Servers","x-ves-required":"true","x-ves-validation-rules":{"ves.io.schema.rules.message.required":"true","ves.io.schema.rules.repeated.max_items":"32","ves.io.schema.rules.repeated.min_items":"1","ves.io.schema.rules.repeated.unique":"true"}},"public_name":{"$ref":"#/components/schemas/origin_poolOriginServerPublicName"},"use_tls":{"$ref":"#/components/schemas/origin_poolUpstreamTlsParameters"}}},"viewscdn_loadbalancerCreateSpecType":{"type":"object","description":"Shape of the CDN loadbalancer specification","title":"CreateSpecType","x-displayname":"Create CDN Loadbalancer","x-ves-oneof-field-api_definition_choice":"[\"api_specification\",\"disable_api_definition\"]","x-ves-oneof-field-api_discovery_choice":"[\"disable_api_discovery\",\"enable_api_discovery\"]","x-ves-oneof-field-bot_defense_choice":"[\"bot_defense\"]","x-ves-oneof-field-challenge_type":"[\"captcha_challenge\",\"enable_challenge\",\"js_challenge\",\"no_challenge\",\"policy_based_challenge\"]","x-ves-oneof-field-client_side_defense_choice":"[\"client_side_defense\",\"disable_client_side_defense\"]","x-ves-oneof-field-ip_reputation_choice":"[\"disable_ip_reputation\",\"enable_ip_reputation\"]","x-ves-oneof-field-l7_ddos_auto_mitigation_action":"[\"l7_ddos_action_block\",\"l7_ddos_action_default\",\"l7_ddos_action_js_challenge\"]","x-ves-oneof-field-loadbalancer_type":"[\"http\",\"https\",\"https_auto_cert\"]","x-ves-oneof-field-malicious_user_detection_choice":"[\"disable_malicious_user_detection\",\"enable_malicious_user_detection\"]","x-ves-oneof-field-rate_limit_choice":"[\"api_rate_limit\",\"disable_rate_limit\",\"rate_limit\"]","x-ves-oneof-field-sensitive_data_policy_choice":"[\"default_sensitive_data_policy\",\"sensitive_data_policy\"]","x-ves-oneof-field-service_policy_choice":"[\"active_service_policies\",\"no_service_policies\",\"service_policies_from_namespace\"]","x-ves-oneof-field-slow_ddos_mitigation_choice":"[\"slow_ddos_mitigation\",\"system_default_timeouts\"]","x-ves-oneof-field-threat_mesh_choice":"[\"disable_threat_mesh\",\"enable_threat_mesh\"]","x-ves-oneof-field-user_id_choice":"[\"user_id_client_ip\",\"user_identification\"]","x-ves-oneof-field-waf_choice":"[\"app_firewall\",\"disable_waf\"]","x-ves-proto-message":"ves.io.schema.views.cdn_loadbalancer.CreateSpecType","properties":{"active_service_policies":{"$ref":"#/components/schemas/common_wafServicePolicyList"},"api_rate_limit":{"$ref":"#/components/schemas/common_wafAPIRateLimit"},"api_specification":{"$ref":"#/components/schemas/common_wafAPISpecificationSettings"},"app_firewall":{"$ref":"#/components/schemas/schemaviewsObjectRefType"},"blocked_clients":{"type":"array","description":" Define rules to block IP Prefixes or AS numbers.\n\nValidation Rules:\n ves.io.schema.rules.repeated.max_items: 256\n ves.io.schema.rules.repeated.unique_metadata_name: true\n","maxItems":256,"items":{"$ref":"#/components/schemas/common_wafSimpleClientSrcRule"},"x-displayname":"Client Blocking Rules","x-ves-validation-rules":{"ves.io.schema.rules.repeated.max_items":"256","ves.io.schema.rules.repeated.unique_metadata_name":"true"}},"bot_defense":{"$ref":"#/components/schemas/common_securityShapeBotDefenseType"},"captcha_challenge":{"$ref":"#/components/schemas/virtual_hostCaptchaChallengeType"},"client_side_defense":{"$ref":"#/components/schemas/common_securityClientSideDefenseType"},"cors_policy":{"$ref":"#/components/schemas/schemaCorsPolicy"},"csrf_policy":{"$ref":"#/components/schemas/schemaCsrfPolicy"},"custom_cache_rule":{"$ref":"#/components/schemas/common_cache_ruleCustomCacheRule"},"data_guard_rules":{"type":"array","description":" Data Guard prevents responses from exposing sensitive information by masking the data.\n The system masks credit card numbers and social security numbers leaked from the application from within the http response with a string of asterisks (*).\n Note: App Firewall should be enabled, to use Data Guard feature.\n\nValidation Rules:\n ves.io.schema.rules.repeated.max_items: 64\n ves.io.schema.rules.repeated.unique_metadata_name: true\n","maxItems":64,"items":{"$ref":"#/components/schemas/policySimpleDataGuardRule"},"x-displayname":"Data Guard Rules","x-ves-validation-rules":{"ves.io.schema.rules.repeated.max_items":"64","ves.io.schema.rules.repeated.unique_metadata_name":"true"}},"ddos_mitigation_rules":{"type":"array","description":" Define manual mitigation rules to block L7 DDoS attacks.\n\nValidation Rules:\n ves.io.schema.rules.repeated.max_items: 256\n ves.io.schema.rules.repeated.unique_metadata_name: true\n","maxItems":256,"items":{"$ref":"#/components/schemas/common_securityDDoSMitigationRule"},"x-displayname":"DDoS Mitigation Rules","x-ves-validation-rules":{"ves.io.schema.rules.repeated.max_items":"256","ves.io.schema.rules.repeated.unique_metadata_name":"true"}},"default_cache_action":{"$ref":"#/components/schemas/viewscommon_cache_ruleDefaultCacheAction"},"default_sensitive_data_policy":{"$ref":"#/components/schemas/ioschemaEmpty"},"disable_api_definition":{"$ref":"#/components/schemas/ioschemaEmpty"},"disable_api_discovery":{"$ref":"#/components/schemas/ioschemaEmpty"},"disable_client_side_defense":{"$ref":"#/components/schemas/ioschemaEmpty"},"disable_ip_reputation":{"$ref":"#/components/schemas/ioschemaEmpty"},"disable_malicious_user_detection":{"$ref":"#/components/schemas/ioschemaEmpty"},"disable_rate_limit":{"$ref":"#/components/schemas/ioschemaEmpty"},"disable_threat_mesh":{"$ref":"#/components/schemas/ioschemaEmpty"},"disable_waf":{"$ref":"#/components/schemas/ioschemaEmpty"},"domains":{"type":"array","description":" A list of fully qualified domain names.\n The CDN Distribution will be setup for these FQDN name(s).\n [This can be a domain or a sub-domain]\n\nExample: ` \"www.foo.com\"`\n\nRequired: YES\n\nValidation Rules:\n ves.io.schema.rules.message.required: true\n ves.io.schema.rules.repeated.items.string.hostname: true\n ves.io.schema.rules.repeated.items.string.max_len: 256\n ves.io.schema.rules.repeated.items.string.min_len: 1\n ves.io.schema.rules.repeated.items.string.pattern: [\\\\.]+[A-Za-z]+\n ves.io.schema.rules.repeated.max_items: 32\n ves.io.schema.rules.repeated.min_items: 1\n ves.io.schema.rules.repeated.unique: true\n","minItems":1,"maxItems":32,"items":{"type":"string","minLength":1,"maxLength":256},"x-displayname":"Domains","x-ves-example":"www.foo.com","x-ves-required":"true","x-ves-validation-rules":{"ves.io.schema.rules.message.required":"true","ves.io.schema.rules.repeated.items.string.hostname":"true","ves.io.schema.rules.repeated.items.string.max_len":"256","ves.io.schema.rules.repeated.items.string.min_len":"1","ves.io.schema.rules.repeated.items.string.pattern":"[\\\\.]+[A-Za-z]+","ves.io.schema.rules.repeated.max_items":"32","ves.io.schema.rules.repeated.min_items":"1","ves.io.schema.rules.repeated.unique":"true"}},"enable_api_discovery":{"$ref":"#/components/schemas/common_wafApiDiscoverySetting"},"enable_challenge":{"$ref":"#/components/schemas/common_wafEnableChallenge"},"enable_ip_reputation":{"$ref":"#/components/schemas/viewscommon_wafIPThreatCategoryListType"},"enable_malicious_user_detection":{"$ref":"#/components/schemas/ioschemaEmpty"},"enable_threat_mesh":{"$ref":"#/components/schemas/ioschemaEmpty"},"graphql_rules":{"type":"array","description":" GraphQL is a query language and server-side runtime for APIs which provides a complete and understandable\n description of the data in API. GraphQL gives clients the power to ask for exactly what they need, makes it\n easier to evolve APIs over time, and enables powerful developer tools. Policy configuration to analyze GraphQL\n queries and prevent GraphQL tailored attacks.\n\nValidation Rules:\n ves.io.schema.rules.repeated.max_items: 64\n ves.io.schema.rules.repeated.unique_metadata_name: true\n","maxItems":64,"items":{"$ref":"#/components/schemas/policyGraphQLRule"},"x-displayname":"GraphQL Inspection","x-ves-validation-rules":{"ves.io.schema.rules.repeated.max_items":"64","ves.io.schema.rules.repeated.unique_metadata_name":"true"}},"http":{"$ref":"#/components/schemas/http_loadbalancerProxyTypeHttp"},"https":{"$ref":"#/components/schemas/cdn_loadbalancerCDNHTTPSCustomCertsType"},"https_auto_cert":{"$ref":"#/components/schemas/cdn_loadbalancerCDNHTTPSAutoCertsType"},"js_challenge":{"$ref":"#/components/schemas/virtual_hostJavascriptChallengeType"},"jwt_validation":{"$ref":"#/components/schemas/common_wafJWTValidation"},"l7_ddos_action_block":{"$ref":"#/components/schemas/ioschemaEmpty"},"l7_ddos_action_default":{"$ref":"#/components/schemas/ioschemaEmpty"},"l7_ddos_action_js_challenge":{"$ref":"#/components/schemas/virtual_hostJavascriptChallengeType"},"no_challenge":{"$ref":"#/components/schemas/ioschemaEmpty"},"no_service_policies":{"$ref":"#/components/schemas/ioschemaEmpty"},"origin_pool":{"$ref":"#/components/schemas/viewscdn_loadbalancerCdnOriginPoolType"},"other_settings":{"$ref":"#/components/schemas/viewscdn_loadbalancerOtherSettings"},"policy_based_challenge":{"$ref":"#/components/schemas/viewscommon_wafPolicyBasedChallenge"},"protected_cookies":{"type":"array","description":" Allows setting attributes (SameSite, Secure, and HttpOnly) on cookies in responses.\n Cookie Tampering Protection prevents attackers from modifying the value of session cookies.\n For Cookie Tampering Protection, enabling a web app firewall (WAF) is a prerequisite.\n The configured mode of WAF (monitoring or blocking) will be enforced on the request when cookie tampering is identified.\n Note: We recommend enabling Secure and HttpOnly attributes along with cookie tampering protection.\n\nValidation Rules:\n ves.io.schema.rules.repeated.max_items: 16\n ves.io.schema.rules.repeated.unique: true\n","maxItems":16,"items":{"$ref":"#/components/schemas/schemaCookieManipulationOptionType"},"x-displayname":"Cookie Protection","x-ves-validation-rules":{"ves.io.schema.rules.repeated.max_items":"16","ves.io.schema.rules.repeated.unique":"true"}},"rate_limit":{"$ref":"#/components/schemas/common_wafRateLimitConfigType"},"sensitive_data_policy":{"$ref":"#/components/schemas/common_securitySensitiveDataPolicySettings"},"service_policies_from_namespace":{"$ref":"#/components/schemas/ioschemaEmpty"},"slow_ddos_mitigation":{"$ref":"#/components/schemas/virtual_hostSlowDDoSMitigation"},"system_default_timeouts":{"$ref":"#/components/schemas/ioschemaEmpty"},"trusted_clients":{"type":"array","description":" Define rules to skip processing of one or more features such as WAF, Bot Defense etc. for clients.\n\nValidation Rules:\n ves.io.schema.rules.repeated.max_items: 256\n ves.io.schema.rules.repeated.unique_metadata_name: true\n","maxItems":256,"items":{"$ref":"#/components/schemas/common_wafSimpleClientSrcRule"},"x-displayname":"Trusted Client Rules","x-ves-validation-rules":{"ves.io.schema.rules.repeated.max_items":"256","ves.io.schema.rules.repeated.unique_metadata_name":"true"}},"user_id_client_ip":{"$ref":"#/components/schemas/ioschemaEmpty"},"user_identification":{"$ref":"#/components/schemas/schemaviewsObjectRefType"},"waf_exclusion":{"$ref":"#/components/schemas/common_wafWafExclusion"}}},"viewscdn_loadbalancerFieldAggregation":{"type":"object","description":"x-displayName: \"Field Aggregation\"\nAggregate access logs based on the key fields in the log.","title":"Field Aggregation","properties":{"field":{"$ref":"#/components/schemas/access_logCDNAccessLogTag"},"topk":{"type":"integer","description":"x-displayName: \"TopK\"\nx-example: \"5\"\nNumber of top field values to be returned in the response.\nOptional: If not specified, top 5 values will be returned in the response.","title":"topk","format":"int64"}}},"viewscdn_loadbalancerGetSpecType":{"type":"object","description":"Shape of the CDN loadbalancer specification","title":"GetSpecType","x-displayname":"Get CDN Loadbalancer","x-ves-oneof-field-api_definition_choice":"[\"api_specification\",\"disable_api_definition\"]","x-ves-oneof-field-api_discovery_choice":"[\"disable_api_discovery\",\"enable_api_discovery\"]","x-ves-oneof-field-bot_defense_choice":"[\"bot_defense\"]","x-ves-oneof-field-challenge_type":"[\"captcha_challenge\",\"enable_challenge\",\"js_challenge\",\"no_challenge\",\"policy_based_challenge\"]","x-ves-oneof-field-client_side_defense_choice":"[\"client_side_defense\",\"disable_client_side_defense\"]","x-ves-oneof-field-ip_reputation_choice":"[\"disable_ip_reputation\",\"enable_ip_reputation\"]","x-ves-oneof-field-l7_ddos_auto_mitigation_action":"[\"l7_ddos_action_block\",\"l7_ddos_action_default\",\"l7_ddos_action_js_challenge\"]","x-ves-oneof-field-loadbalancer_type":"[\"http\",\"https\",\"https_auto_cert\"]","x-ves-oneof-field-malicious_user_detection_choice":"[\"disable_malicious_user_detection\",\"enable_malicious_user_detection\"]","x-ves-oneof-field-rate_limit_choice":"[\"api_rate_limit\",\"disable_rate_limit\",\"rate_limit\"]","x-ves-oneof-field-sensitive_data_policy_choice":"[\"default_sensitive_data_policy\",\"sensitive_data_policy\"]","x-ves-oneof-field-service_policy_choice":"[\"active_service_policies\",\"no_service_policies\",\"service_policies_from_namespace\"]","x-ves-oneof-field-slow_ddos_mitigation_choice":"[\"slow_ddos_mitigation\",\"system_default_timeouts\"]","x-ves-oneof-field-threat_mesh_choice":"[\"disable_threat_mesh\",\"enable_threat_mesh\"]","x-ves-oneof-field-user_id_choice":"[\"user_id_client_ip\",\"user_identification\"]","x-ves-oneof-field-waf_choice":"[\"app_firewall\",\"disable_waf\"]","x-ves-proto-message":"ves.io.schema.views.cdn_loadbalancer.GetSpecType","properties":{"active_service_policies":{"$ref":"#/components/schemas/common_wafServicePolicyList"},"api_rate_limit":{"$ref":"#/components/schemas/common_wafAPIRateLimit"},"api_specification":{"$ref":"#/components/schemas/common_wafAPISpecificationSettings"},"app_firewall":{"$ref":"#/components/schemas/schemaviewsObjectRefType"},"auto_cert_info":{"$ref":"#/components/schemas/virtual_hostAutoCertInfoType"},"blocked_clients":{"type":"array","description":" Define rules to block IP Prefixes or AS numbers.\n\nValidation Rules:\n ves.io.schema.rules.repeated.max_items: 256\n ves.io.schema.rules.repeated.unique_metadata_name: true\n","maxItems":256,"items":{"$ref":"#/components/schemas/common_wafSimpleClientSrcRule"},"x-displayname":"Client Blocking Rules","x-ves-validation-rules":{"ves.io.schema.rules.repeated.max_items":"256","ves.io.schema.rules.repeated.unique_metadata_name":"true"}},"bot_defense":{"$ref":"#/components/schemas/common_securityShapeBotDefenseType"},"captcha_challenge":{"$ref":"#/components/schemas/virtual_hostCaptchaChallengeType"},"cert_state":{"$ref":"#/components/schemas/virtual_hostCertificationState"},"client_side_defense":{"$ref":"#/components/schemas/common_securityClientSideDefenseType"},"cors_policy":{"$ref":"#/components/schemas/schemaCorsPolicy"},"csrf_policy":{"$ref":"#/components/schemas/schemaCsrfPolicy"},"custom_cache_rule":{"$ref":"#/components/schemas/common_cache_ruleCustomCacheRule"},"data_guard_rules":{"type":"array","description":" Data Guard prevents responses from exposing sensitive information by masking the data.\n The system masks credit card numbers and social security numbers leaked from the application from within the http response with a string of asterisks (*).\n Note: App Firewall should be enabled, to use Data Guard feature.\n\nValidation Rules:\n ves.io.schema.rules.repeated.max_items: 64\n ves.io.schema.rules.repeated.unique_metadata_name: true\n","maxItems":64,"items":{"$ref":"#/components/schemas/policySimpleDataGuardRule"},"x-displayname":"Data Guard Rules","x-ves-validation-rules":{"ves.io.schema.rules.repeated.max_items":"64","ves.io.schema.rules.repeated.unique_metadata_name":"true"}},"ddos_mitigation_rules":{"type":"array","description":" Define manual mitigation rules to block L7 DDoS attacks.\n\nValidation Rules:\n ves.io.schema.rules.repeated.max_items: 256\n ves.io.schema.rules.repeated.unique_metadata_name: true\n","maxItems":256,"items":{"$ref":"#/components/schemas/common_securityDDoSMitigationRule"},"x-displayname":"DDoS Mitigation Rules","x-ves-validation-rules":{"ves.io.schema.rules.repeated.max_items":"256","ves.io.schema.rules.repeated.unique_metadata_name":"true"}},"default_cache_action":{"$ref":"#/components/schemas/viewscommon_cache_ruleDefaultCacheAction"},"default_sensitive_data_policy":{"$ref":"#/components/schemas/ioschemaEmpty"},"disable_api_definition":{"$ref":"#/components/schemas/ioschemaEmpty"},"disable_api_discovery":{"$ref":"#/components/schemas/ioschemaEmpty"},"disable_client_side_defense":{"$ref":"#/components/schemas/ioschemaEmpty"},"disable_ip_reputation":{"$ref":"#/components/schemas/ioschemaEmpty"},"disable_malicious_user_detection":{"$ref":"#/components/schemas/ioschemaEmpty"},"disable_rate_limit":{"$ref":"#/components/schemas/ioschemaEmpty"},"disable_threat_mesh":{"$ref":"#/components/schemas/ioschemaEmpty"},"disable_waf":{"$ref":"#/components/schemas/ioschemaEmpty"},"dns_info":{"type":"array","description":" DNS information for this virtual host","items":{"$ref":"#/components/schemas/virtual_host_dns_infoDnsInfo"},"x-displayname":"DNS Information"},"domains":{"type":"array","description":" A list of fully qualified domain names.\n The CDN Distribution will be setup for these FQDN name(s).\n [This can be a domain or a sub-domain]\n\nExample: ` \"www.foo.com\"`\n\nRequired: YES\n\nValidation Rules:\n ves.io.schema.rules.message.required: true\n ves.io.schema.rules.repeated.items.string.hostname: true\n ves.io.schema.rules.repeated.items.string.max_len: 256\n ves.io.schema.rules.repeated.items.string.min_len: 1\n ves.io.schema.rules.repeated.items.string.pattern: [\\\\.]+[A-Za-z]+\n ves.io.schema.rules.repeated.max_items: 32\n ves.io.schema.rules.repeated.min_items: 1\n ves.io.schema.rules.repeated.unique: true\n","minItems":1,"maxItems":32,"items":{"type":"string","minLength":1,"maxLength":256},"x-displayname":"Domains","x-ves-example":"www.foo.com","x-ves-required":"true","x-ves-validation-rules":{"ves.io.schema.rules.message.required":"true","ves.io.schema.rules.repeated.items.string.hostname":"true","ves.io.schema.rules.repeated.items.string.max_len":"256","ves.io.schema.rules.repeated.items.string.min_len":"1","ves.io.schema.rules.repeated.items.string.pattern":"[\\\\.]+[A-Za-z]+","ves.io.schema.rules.repeated.max_items":"32","ves.io.schema.rules.repeated.min_items":"1","ves.io.schema.rules.repeated.unique":"true"}},"enable_api_discovery":{"$ref":"#/components/schemas/common_wafApiDiscoverySetting"},"enable_challenge":{"$ref":"#/components/schemas/common_wafEnableChallenge"},"enable_ip_reputation":{"$ref":"#/components/schemas/viewscommon_wafIPThreatCategoryListType"},"enable_malicious_user_detection":{"$ref":"#/components/schemas/ioschemaEmpty"},"enable_threat_mesh":{"$ref":"#/components/schemas/ioschemaEmpty"},"graphql_rules":{"type":"array","description":" GraphQL is a query language and server-side runtime for APIs which provides a complete and understandable\n description of the data in API. GraphQL gives clients the power to ask for exactly what they need, makes it\n easier to evolve APIs over time, and enables powerful developer tools. Policy configuration to analyze GraphQL\n queries and prevent GraphQL tailored attacks.\n\nValidation Rules:\n ves.io.schema.rules.repeated.max_items: 64\n ves.io.schema.rules.repeated.unique_metadata_name: true\n","maxItems":64,"items":{"$ref":"#/components/schemas/policyGraphQLRule"},"x-displayname":"GraphQL Inspection","x-ves-validation-rules":{"ves.io.schema.rules.repeated.max_items":"64","ves.io.schema.rules.repeated.unique_metadata_name":"true"}},"host_name":{"type":"string","description":" Internally generated host name to be used for the virtual host\n\nExample: ` \"ves-io-cf8684b9-a18f-4843-a24f-1f9ee8ea2776.ac.vh.ves.io\"`","x-displayname":"Host Name","x-ves-example":"ves-io-cf8684b9-a18f-4843-a24f-1f9ee8ea2776.ac.vh.ves.io"},"http":{"$ref":"#/components/schemas/http_loadbalancerProxyTypeHttp"},"https":{"$ref":"#/components/schemas/cdn_loadbalancerCDNHTTPSCustomCertsType"},"https_auto_cert":{"$ref":"#/components/schemas/cdn_loadbalancerCDNHTTPSAutoCertsType"},"js_challenge":{"$ref":"#/components/schemas/virtual_hostJavascriptChallengeType"},"jwt_validation":{"$ref":"#/components/schemas/common_wafJWTValidation"},"l7_ddos_action_block":{"$ref":"#/components/schemas/ioschemaEmpty"},"l7_ddos_action_default":{"$ref":"#/components/schemas/ioschemaEmpty"},"l7_ddos_action_js_challenge":{"$ref":"#/components/schemas/virtual_hostJavascriptChallengeType"},"no_challenge":{"$ref":"#/components/schemas/ioschemaEmpty"},"no_service_policies":{"$ref":"#/components/schemas/ioschemaEmpty"},"origin_pool":{"$ref":"#/components/schemas/viewscdn_loadbalancerCdnOriginPoolType"},"other_settings":{"$ref":"#/components/schemas/viewscdn_loadbalancerOtherSettings"},"policy_based_challenge":{"$ref":"#/components/schemas/viewscommon_wafPolicyBasedChallenge"},"protected_cookies":{"type":"array","description":" Allows setting attributes (SameSite, Secure, and HttpOnly) on cookies in responses.\n Cookie Tampering Protection prevents attackers from modifying the value of session cookies.\n For Cookie Tampering Protection, enabling a web app firewall (WAF) is a prerequisite.\n The configured mode of WAF (monitoring or blocking) will be enforced on the request when cookie tampering is identified.\n Note: We recommend enabling Secure and HttpOnly attributes along with cookie tampering protection.\n\nValidation Rules:\n ves.io.schema.rules.repeated.max_items: 16\n ves.io.schema.rules.repeated.unique: true\n","maxItems":16,"items":{"$ref":"#/components/schemas/schemaCookieManipulationOptionType"},"x-displayname":"Cookie Protection","x-ves-validation-rules":{"ves.io.schema.rules.repeated.max_items":"16","ves.io.schema.rules.repeated.unique":"true"}},"rate_limit":{"$ref":"#/components/schemas/common_wafRateLimitConfigType"},"sensitive_data_policy":{"$ref":"#/components/schemas/common_securitySensitiveDataPolicySettings"},"service_domains":{"type":"array","description":" CNAME provided from service per domain","items":{"$ref":"#/components/schemas/virtual_hostServiceDomain"},"x-displayname":"Service Domains"},"service_policies_from_namespace":{"$ref":"#/components/schemas/ioschemaEmpty"},"slow_ddos_mitigation":{"$ref":"#/components/schemas/virtual_hostSlowDDoSMitigation"},"state":{"$ref":"#/components/schemas/virtual_hostVirtualHostState"},"system_default_timeouts":{"$ref":"#/components/schemas/ioschemaEmpty"},"trusted_clients":{"type":"array","description":" Define rules to skip processing of one or more features such as WAF, Bot Defense etc. for clients.\n\nValidation Rules:\n ves.io.schema.rules.repeated.max_items: 256\n ves.io.schema.rules.repeated.unique_metadata_name: true\n","maxItems":256,"items":{"$ref":"#/components/schemas/common_wafSimpleClientSrcRule"},"x-displayname":"Trusted Client Rules","x-ves-validation-rules":{"ves.io.schema.rules.repeated.max_items":"256","ves.io.schema.rules.repeated.unique_metadata_name":"true"}},"user_id_client_ip":{"$ref":"#/components/schemas/ioschemaEmpty"},"user_identification":{"$ref":"#/components/schemas/schemaviewsObjectRefType"},"waf_exclusion":{"$ref":"#/components/schemas/common_wafWafExclusion"}}},"viewscdn_loadbalancerHeaderControlType":{"type":"object","description":"This defines various options related to request/response headers","title":"Header Control","x-displayname":"Header Control","x-ves-proto-message":"ves.io.schema.views.cdn_loadbalancer.HeaderControlType","properties":{"request_headers_to_add":{"type":"array","description":" Headers are key-value pairs to be added to HTTP request being routed towards upstream.\n Headers specified at this level are applied after headers from matched Route are applied\n\nValidation Rules:\n ves.io.schema.rules.repeated.max_items: 32\n ves.io.schema.rules.repeated.unique: true\n","title":"Headers to add in request","maxItems":32,"items":{"$ref":"#/components/schemas/schemaHeaderManipulationOptionType"},"x-displayname":"Add Origin Request Headers","x-ves-validation-rules":{"ves.io.schema.rules.repeated.max_items":"32","ves.io.schema.rules.repeated.unique":"true"}},"request_headers_to_remove":{"type":"array","description":" List of keys of Headers to be removed from the HTTP request being sent towards upstream.\n\nExample: ` \"host\"`\n\nValidation Rules:\n ves.io.schema.rules.repeated.items.string.max_bytes: 256\n ves.io.schema.rules.repeated.items.string.min_bytes: 1\n ves.io.schema.rules.repeated.items.string.pattern: ^[0-9A-Za-z_\\\\-\\\\.]+$\n ves.io.schema.rules.repeated.max_items: 32\n ves.io.schema.rules.repeated.unique: true\n","title":"Header to be removed from request","maxItems":32,"items":{"type":"string","minLength":1,"maxLength":256},"x-displayname":"Remove Origin Request Headers","x-ves-example":"host","x-ves-validation-rules":{"ves.io.schema.rules.repeated.items.string.max_bytes":"256","ves.io.schema.rules.repeated.items.string.min_bytes":"1","ves.io.schema.rules.repeated.items.string.pattern":"^[0-9A-Za-z_\\\\-\\\\.]+$","ves.io.schema.rules.repeated.max_items":"32","ves.io.schema.rules.repeated.unique":"true"}},"response_headers_to_add":{"type":"array","description":" Headers are key-value pairs to be added to HTTP response being sent towards downstream.\n Headers specified at this level are applied after headers from matched Route are applied\n\nValidation Rules:\n ves.io.schema.rules.repeated.max_items: 32\n ves.io.schema.rules.repeated.unique: true\n","title":"Headers to add in response","maxItems":32,"items":{"$ref":"#/components/schemas/schemaHeaderManipulationOptionType"},"x-displayname":"Add Response Headers","x-ves-validation-rules":{"ves.io.schema.rules.repeated.max_items":"32","ves.io.schema.rules.repeated.unique":"true"}},"response_headers_to_remove":{"type":"array","description":" List of keys of Headers to be removed from the HTTP response being sent towards downstream.\n\nExample: ` \"host\"`\n\nValidation Rules:\n ves.io.schema.rules.repeated.items.string.pattern: ^[0-9A-Za-z_\\\\-\\\\.]+$\n ves.io.schema.rules.repeated.max_items: 32\n ves.io.schema.rules.repeated.unique: true\n","title":"Header to be removed from response","maxItems":32,"items":{"type":"string"},"x-displayname":"Remove Response Headers","x-ves-example":"host","x-ves-validation-rules":{"ves.io.schema.rules.repeated.items.string.pattern":"^[0-9A-Za-z_\\\\-\\\\.]+$","ves.io.schema.rules.repeated.max_items":"32","ves.io.schema.rules.repeated.unique":"true"}}}},"viewscdn_loadbalancerHeaderOptions":{"type":"string","description":"x-displayName: \"Header Options\"\n\n - proxy_host: Proxy Host\n\nx-displayName: \"Proxy Host\"\nName of the proxied server\n - referer: Referer\n\nx-displayName: \"Referer\"\nThis is the address of the previous web page from which a link to the currently requested page was followed\n - scheme: Scheme\n\nx-displayName: \"Scheme\"\nThe http scheme used: http or https\n - user_agent: User Agent\n\nx-displayName: \"User Agent\"\nThe user agent string of the user agent","title":"Header Options","enum":["proxy_host","referer","scheme","user_agent"],"default":"proxy_host"},"viewscdn_loadbalancerLogHeaderOptions":{"type":"object","description":"List of headers to Log","title":"LogHeaderOptions","x-displayname":"Headers to Log","x-ves-proto-message":"ves.io.schema.views.cdn_loadbalancer.LogHeaderOptions","properties":{"header_list":{"type":"array","description":" List of headers\n\nExample: ` \"x-custom-length\"`\n\nValidation Rules:\n ves.io.schema.rules.repeated.max_items: 64\n ves.io.schema.rules.repeated.unique: true\n","title":"List of Headers","maxItems":64,"items":{"type":"string"},"x-displayname":"Headers","x-ves-example":"x-custom-length","x-ves-validation-rules":{"ves.io.schema.rules.repeated.max_items":"64","ves.io.schema.rules.repeated.unique":"true"}}}},"viewscdn_loadbalancerLoggingOptionsType":{"type":"object","description":"This defines various options related to logging","title":"Logging options","x-displayname":"Logging Options","x-ves-proto-message":"ves.io.schema.views.cdn_loadbalancer.LoggingOptionsType","properties":{"client_log_options":{"$ref":"#/components/schemas/viewscdn_loadbalancerLogHeaderOptions"},"origin_log_options":{"$ref":"#/components/schemas/viewscdn_loadbalancerLogHeaderOptions"}}},"viewscdn_loadbalancerOriginAdvancedConfiguration":{"type":"object","title":"Origin Byte Range Request Config","x-displayname":"Origin Byte Range Request Config","x-ves-displayorder":"3,2","x-ves-proto-message":"ves.io.schema.views.cdn_loadbalancer.OriginAdvancedConfiguration","properties":{"enable_byte_range_request":{"type":"boolean","description":" Choice to enable/disable byte range requests towards origin\n\nExample: ` \"true/false\"`","title":"Enable Origin Byte Range Requests","format":"boolean","x-displayname":"Enable Origin Byte Range Requests","x-ves-example":"true/false"},"websocket_proxy":{"type":"boolean","description":" Option to enable proxying of websocket connections to the origin server","title":"Enable websocket proxy to the origin","format":"boolean","x-displayname":"Enable websocket proxy to the origin"}}},"viewscdn_loadbalancerOtherSettings":{"type":"object","description":"Other Settings","title":"Other Settings","x-displayname":"Other Settings","x-ves-proto-message":"ves.io.schema.views.cdn_loadbalancer.OtherSettings","properties":{"add_location":{"type":"boolean","description":" x-example: true\n Appends header x-volterra-location = <re-site-name> in responses.\n\nExample: ` \"true\"`","title":"Add Site information","format":"boolean","x-displayname":"Add Location","x-ves-example":"true"},"header_options":{"$ref":"#/components/schemas/viewscdn_loadbalancerHeaderControlType"},"logging_options":{"$ref":"#/components/schemas/viewscdn_loadbalancerLoggingOptionsType"}}},"viewscdn_loadbalancerReplaceSpecType":{"type":"object","description":"Shape of the CDN loadbalancer specification","title":"ReplaceSpecType","x-displayname":"Replace CDN Loadbalancer","x-ves-oneof-field-api_definition_choice":"[\"api_specification\",\"disable_api_definition\"]","x-ves-oneof-field-api_discovery_choice":"[\"disable_api_discovery\",\"enable_api_discovery\"]","x-ves-oneof-field-bot_defense_choice":"[\"bot_defense\"]","x-ves-oneof-field-challenge_type":"[\"captcha_challenge\",\"enable_challenge\",\"js_challenge\",\"no_challenge\",\"policy_based_challenge\"]","x-ves-oneof-field-client_side_defense_choice":"[\"client_side_defense\",\"disable_client_side_defense\"]","x-ves-oneof-field-ip_reputation_choice":"[\"disable_ip_reputation\",\"enable_ip_reputation\"]","x-ves-oneof-field-l7_ddos_auto_mitigation_action":"[\"l7_ddos_action_block\",\"l7_ddos_action_default\",\"l7_ddos_action_js_challenge\"]","x-ves-oneof-field-loadbalancer_type":"[\"http\",\"https\",\"https_auto_cert\"]","x-ves-oneof-field-malicious_user_detection_choice":"[\"disable_malicious_user_detection\",\"enable_malicious_user_detection\"]","x-ves-oneof-field-rate_limit_choice":"[\"api_rate_limit\",\"disable_rate_limit\",\"rate_limit\"]","x-ves-oneof-field-sensitive_data_policy_choice":"[\"default_sensitive_data_policy\",\"sensitive_data_policy\"]","x-ves-oneof-field-service_policy_choice":"[\"active_service_policies\",\"no_service_policies\",\"service_policies_from_namespace\"]","x-ves-oneof-field-slow_ddos_mitigation_choice":"[\"slow_ddos_mitigation\",\"system_default_timeouts\"]","x-ves-oneof-field-threat_mesh_choice":"[\"disable_threat_mesh\",\"enable_threat_mesh\"]","x-ves-oneof-field-user_id_choice":"[\"user_id_client_ip\",\"user_identification\"]","x-ves-oneof-field-waf_choice":"[\"app_firewall\",\"disable_waf\"]","x-ves-proto-message":"ves.io.schema.views.cdn_loadbalancer.ReplaceSpecType","properties":{"active_service_policies":{"$ref":"#/components/schemas/common_wafServicePolicyList"},"api_rate_limit":{"$ref":"#/components/schemas/common_wafAPIRateLimit"},"api_specification":{"$ref":"#/components/schemas/common_wafAPISpecificationSettings"},"app_firewall":{"$ref":"#/components/schemas/schemaviewsObjectRefType"},"blocked_clients":{"type":"array","description":" Define rules to block IP Prefixes or AS numbers.\n\nValidation Rules:\n ves.io.schema.rules.repeated.max_items: 256\n ves.io.schema.rules.repeated.unique_metadata_name: true\n","maxItems":256,"items":{"$ref":"#/components/schemas/common_wafSimpleClientSrcRule"},"x-displayname":"Client Blocking Rules","x-ves-validation-rules":{"ves.io.schema.rules.repeated.max_items":"256","ves.io.schema.rules.repeated.unique_metadata_name":"true"}},"bot_defense":{"$ref":"#/components/schemas/common_securityShapeBotDefenseType"},"captcha_challenge":{"$ref":"#/components/schemas/virtual_hostCaptchaChallengeType"},"client_side_defense":{"$ref":"#/components/schemas/common_securityClientSideDefenseType"},"cors_policy":{"$ref":"#/components/schemas/schemaCorsPolicy"},"csrf_policy":{"$ref":"#/components/schemas/schemaCsrfPolicy"},"custom_cache_rule":{"$ref":"#/components/schemas/common_cache_ruleCustomCacheRule"},"data_guard_rules":{"type":"array","description":" Data Guard prevents responses from exposing sensitive information by masking the data.\n The system masks credit card numbers and social security numbers leaked from the application from within the http response with a string of asterisks (*).\n Note: App Firewall should be enabled, to use Data Guard feature.\n\nValidation Rules:\n ves.io.schema.rules.repeated.max_items: 64\n ves.io.schema.rules.repeated.unique_metadata_name: true\n","maxItems":64,"items":{"$ref":"#/components/schemas/policySimpleDataGuardRule"},"x-displayname":"Data Guard Rules","x-ves-validation-rules":{"ves.io.schema.rules.repeated.max_items":"64","ves.io.schema.rules.repeated.unique_metadata_name":"true"}},"ddos_mitigation_rules":{"type":"array","description":" Define manual mitigation rules to block L7 DDoS attacks.\n\nValidation Rules:\n ves.io.schema.rules.repeated.max_items: 256\n ves.io.schema.rules.repeated.unique_metadata_name: true\n","maxItems":256,"items":{"$ref":"#/components/schemas/common_securityDDoSMitigationRule"},"x-displayname":"DDoS Mitigation Rules","x-ves-validation-rules":{"ves.io.schema.rules.repeated.max_items":"256","ves.io.schema.rules.repeated.unique_metadata_name":"true"}},"default_cache_action":{"$ref":"#/components/schemas/viewscommon_cache_ruleDefaultCacheAction"},"default_sensitive_data_policy":{"$ref":"#/components/schemas/ioschemaEmpty"},"disable_api_definition":{"$ref":"#/components/schemas/ioschemaEmpty"},"disable_api_discovery":{"$ref":"#/components/schemas/ioschemaEmpty"},"disable_client_side_defense":{"$ref":"#/components/schemas/ioschemaEmpty"},"disable_ip_reputation":{"$ref":"#/components/schemas/ioschemaEmpty"},"disable_malicious_user_detection":{"$ref":"#/components/schemas/ioschemaEmpty"},"disable_rate_limit":{"$ref":"#/components/schemas/ioschemaEmpty"},"disable_threat_mesh":{"$ref":"#/components/schemas/ioschemaEmpty"},"disable_waf":{"$ref":"#/components/schemas/ioschemaEmpty"},"domains":{"type":"array","description":" A list of fully qualified domain names.\n The CDN Distribution will be setup for these FQDN name(s).\n [This can be a domain or a sub-domain]\n\nExample: ` \"www.foo.com\"`\n\nRequired: YES\n\nValidation Rules:\n ves.io.schema.rules.message.required: true\n ves.io.schema.rules.repeated.items.string.hostname: true\n ves.io.schema.rules.repeated.items.string.max_len: 256\n ves.io.schema.rules.repeated.items.string.min_len: 1\n ves.io.schema.rules.repeated.items.string.pattern: [\\\\.]+[A-Za-z]+\n ves.io.schema.rules.repeated.max_items: 32\n ves.io.schema.rules.repeated.min_items: 1\n ves.io.schema.rules.repeated.unique: true\n","minItems":1,"maxItems":32,"items":{"type":"string","minLength":1,"maxLength":256},"x-displayname":"Domains","x-ves-example":"www.foo.com","x-ves-required":"true","x-ves-validation-rules":{"ves.io.schema.rules.message.required":"true","ves.io.schema.rules.repeated.items.string.hostname":"true","ves.io.schema.rules.repeated.items.string.max_len":"256","ves.io.schema.rules.repeated.items.string.min_len":"1","ves.io.schema.rules.repeated.items.string.pattern":"[\\\\.]+[A-Za-z]+","ves.io.schema.rules.repeated.max_items":"32","ves.io.schema.rules.repeated.min_items":"1","ves.io.schema.rules.repeated.unique":"true"}},"enable_api_discovery":{"$ref":"#/components/schemas/common_wafApiDiscoverySetting"},"enable_challenge":{"$ref":"#/components/schemas/common_wafEnableChallenge"},"enable_ip_reputation":{"$ref":"#/components/schemas/viewscommon_wafIPThreatCategoryListType"},"enable_malicious_user_detection":{"$ref":"#/components/schemas/ioschemaEmpty"},"enable_threat_mesh":{"$ref":"#/components/schemas/ioschemaEmpty"},"graphql_rules":{"type":"array","description":" GraphQL is a query language and server-side runtime for APIs which provides a complete and understandable\n description of the data in API. GraphQL gives clients the power to ask for exactly what they need, makes it\n easier to evolve APIs over time, and enables powerful developer tools. Policy configuration to analyze GraphQL\n queries and prevent GraphQL tailored attacks.\n\nValidation Rules:\n ves.io.schema.rules.repeated.max_items: 64\n ves.io.schema.rules.repeated.unique_metadata_name: true\n","maxItems":64,"items":{"$ref":"#/components/schemas/policyGraphQLRule"},"x-displayname":"GraphQL Inspection","x-ves-validation-rules":{"ves.io.schema.rules.repeated.max_items":"64","ves.io.schema.rules.repeated.unique_metadata_name":"true"}},"http":{"$ref":"#/components/schemas/http_loadbalancerProxyTypeHttp"},"https":{"$ref":"#/components/schemas/cdn_loadbalancerCDNHTTPSCustomCertsType"},"https_auto_cert":{"$ref":"#/components/schemas/cdn_loadbalancerCDNHTTPSAutoCertsType"},"js_challenge":{"$ref":"#/components/schemas/virtual_hostJavascriptChallengeType"},"jwt_validation":{"$ref":"#/components/schemas/common_wafJWTValidation"},"l7_ddos_action_block":{"$ref":"#/components/schemas/ioschemaEmpty"},"l7_ddos_action_default":{"$ref":"#/components/schemas/ioschemaEmpty"},"l7_ddos_action_js_challenge":{"$ref":"#/components/schemas/virtual_hostJavascriptChallengeType"},"no_challenge":{"$ref":"#/components/schemas/ioschemaEmpty"},"no_service_policies":{"$ref":"#/components/schemas/ioschemaEmpty"},"origin_pool":{"$ref":"#/components/schemas/viewscdn_loadbalancerCdnOriginPoolType"},"other_settings":{"$ref":"#/components/schemas/viewscdn_loadbalancerOtherSettings"},"policy_based_challenge":{"$ref":"#/components/schemas/viewscommon_wafPolicyBasedChallenge"},"protected_cookies":{"type":"array","description":" Allows setting attributes (SameSite, Secure, and HttpOnly) on cookies in responses.\n Cookie Tampering Protection prevents attackers from modifying the value of session cookies.\n For Cookie Tampering Protection, enabling a web app firewall (WAF) is a prerequisite.\n The configured mode of WAF (monitoring or blocking) will be enforced on the request when cookie tampering is identified.\n Note: We recommend enabling Secure and HttpOnly attributes along with cookie tampering protection.\n\nValidation Rules:\n ves.io.schema.rules.repeated.max_items: 16\n ves.io.schema.rules.repeated.unique: true\n","maxItems":16,"items":{"$ref":"#/components/schemas/schemaCookieManipulationOptionType"},"x-displayname":"Cookie Protection","x-ves-validation-rules":{"ves.io.schema.rules.repeated.max_items":"16","ves.io.schema.rules.repeated.unique":"true"}},"rate_limit":{"$ref":"#/components/schemas/common_wafRateLimitConfigType"},"sensitive_data_policy":{"$ref":"#/components/schemas/common_securitySensitiveDataPolicySettings"},"service_policies_from_namespace":{"$ref":"#/components/schemas/ioschemaEmpty"},"slow_ddos_mitigation":{"$ref":"#/components/schemas/virtual_hostSlowDDoSMitigation"},"system_default_timeouts":{"$ref":"#/components/schemas/ioschemaEmpty"},"trusted_clients":{"type":"array","description":" Define rules to skip processing of one or more features such as WAF, Bot Defense etc. for clients.\n\nValidation Rules:\n ves.io.schema.rules.repeated.max_items: 256\n ves.io.schema.rules.repeated.unique_metadata_name: true\n","maxItems":256,"items":{"$ref":"#/components/schemas/common_wafSimpleClientSrcRule"},"x-displayname":"Trusted Client Rules","x-ves-validation-rules":{"ves.io.schema.rules.repeated.max_items":"256","ves.io.schema.rules.repeated.unique_metadata_name":"true"}},"user_id_client_ip":{"$ref":"#/components/schemas/ioschemaEmpty"},"user_identification":{"$ref":"#/components/schemas/schemaviewsObjectRefType"},"waf_exclusion":{"$ref":"#/components/schemas/common_wafWafExclusion"}}},"viewscommon_cache_ruleDefaultCacheAction":{"type":"object","description":"This defines a Default Cache Action","title":"Default Cache Action","x-displayname":"Default Cache Behaviour","x-ves-oneof-field-cache_actions":"[\"cache_disabled\",\"cache_ttl_default\",\"cache_ttl_override\"]","x-ves-proto-message":"ves.io.schema.views.common_cache_rule.DefaultCacheAction","properties":{"cache_disabled":{"$ref":"#/components/schemas/ioschemaEmpty"},"cache_ttl_default":{"type":"string","description":"Exclusive with [cache_disabled cache_ttl_override]\n Use Cache TTL Provided by Origin, and set a contigency TTL value in case one is not provided\n\nValidation Rules:\n ves.io.schema.rules.string.time_interval: true\n","title":"Use Cache TTL Provided by Origin","x-displayname":"Fallback Cache TTL (d/ h/ m)","x-ves-validation-rules":{"ves.io.schema.rules.string.time_interval":"true"}},"cache_ttl_override":{"type":"string","description":"Exclusive with [cache_disabled cache_ttl_default]\n Always override the Cahce TTL provided by Origin \n\nValidation Rules:\n ves.io.schema.rules.string.time_interval: true\n","title":"Override Cache TTL Provided by Origin","x-displayname":"Override Cache TTL (d/ h/ m/ s)","x-ves-validation-rules":{"ves.io.schema.rules.string.time_interval":"true"}}}},"viewscommon_cdnCDNLoadbalancerDeploymentStatus":{"type":"string","description":"Deployment status\n\n - CDN_LB_STATUS_FAILED: x-displayname: \"Failed\"","title":"CDN LoadBalancer Deployment status","enum":["CDN_LB_STATUS_CREATED","CDN_LB_STATUS_DEPLOYING","CDN_LB_STATUS_DEPLOY_FAILED","CDN_LB_STATUS_DEPLOYED","CDN_LB_STATUS_FAILED"],"default":"CDN_LB_STATUS_CREATED","x-displayname":"CDN LoadBalancer Deployment status","x-ves-proto-enum":"ves.io.schema.views.common_cdn.CDNLoadbalancerDeploymentStatus"},"viewscommon_cdnCDNSiteDeploymentStatus":{"type":"string","title":"CDNSiteDeploymentStatus","enum":["DEPLOYMENT_STATUS_NOT_DEPLOYED","DEPLOYMENT_STATUS_DEPLOYING","DEPLOYMENT_STATUS_DEPLOY_FAILED","DEPLOYMENT_STATUS_DEPLOYED"],"default":"DEPLOYMENT_STATUS_NOT_DEPLOYED","x-displayname":"CDN LoadBalancer Site Deployment status","x-ves-proto-enum":"ves.io.schema.views.common_cdn.CDNSiteDeploymentStatus"},"viewscommon_securityJavaScriptLocation":{"type":"string","description":"All inside networks.\n\nInsert JavaScript after <head> tag\nInsert JavaScript after </title> tag.\nInsert JavaScript before first <script> tag","title":"JavaScriptLocation","enum":["AFTER_HEAD","AFTER_TITLE_END","BEFORE_SCRIPT"],"default":"AFTER_HEAD","x-displayname":"JavaScript Location","x-ves-proto-enum":"ves.io.schema.views.common_security.JavaScriptLocation"},"viewscommon_wafDomainConfiguration":{"type":"object","description":"The DomainConfiguration message","title":"Configured API Domains","x-displayname":"Crawler Details","x-ves-proto-message":"ves.io.schema.views.common_waf.DomainConfiguration","properties":{"domain":{"type":"string","description":" Select the domain to execute API Crawling with given credentials.\n\nRequired: YES\n\nValidation Rules:\n ves.io.schema.rules.message.required: true\n ves.io.schema.rules.string.max_len: 256\n ves.io.schema.rules.string.vh_domain: true\n","title":"Custom domain to crawl","maxLength":256,"x-displayname":"Domain","x-ves-required":"true","x-ves-validation-rules":{"ves.io.schema.rules.message.required":"true","ves.io.schema.rules.string.max_len":"256","ves.io.schema.rules.string.vh_domain":"true"}},"simple_login":{"$ref":"#/components/schemas/common_wafSimpleLogin"}}},"viewscommon_wafIPThreatCategoryListType":{"type":"object","description":"List of ip threat categories","title":"IP Threat Category List Type","x-displayname":"IP Threat Category List","x-ves-proto-message":"ves.io.schema.views.common_waf.IPThreatCategoryListType","properties":{"ip_threat_categories":{"type":"array","description":" If the source IP matches on atleast one of the enabled IP threat categories, the request will be denied.\n\nRequired: YES\n\nValidation Rules:\n ves.io.schema.rules.message.required: true\n ves.io.schema.rules.repeated.max_items: 32\n ves.io.schema.rules.repeated.unique: true\n","title":"IP Threat Categories","maxItems":32,"items":{"$ref":"#/components/schemas/policyIPThreatCategory"},"x-displayname":"List of IP Threat Categories to choose","x-ves-required":"true","x-ves-validation-rules":{"ves.io.schema.rules.message.required":"true","ves.io.schema.rules.repeated.max_items":"32","ves.io.schema.rules.repeated.unique":"true"}}}},"viewscommon_wafPolicyBasedChallenge":{"type":"object","description":"Specifies the settings for policy rule based challenge","title":"policy based challenge","x-displayname":"Policy Based Challenge","x-ves-oneof-field-captcha_challenge_parameters_choice":"[\"captcha_challenge_parameters\",\"default_captcha_challenge_parameters\"]","x-ves-oneof-field-challenge_choice":"[\"always_enable_captcha_challenge\",\"always_enable_js_challenge\",\"no_challenge\"]","x-ves-oneof-field-js_challenge_parameters_choice":"[\"default_js_challenge_parameters\",\"js_challenge_parameters\"]","x-ves-oneof-field-malicious_user_mitigation_choice":"[\"default_mitigation_settings\",\"malicious_user_mitigation\"]","x-ves-oneof-field-temporary_blocking_parameters_choice":"[\"default_temporary_blocking_parameters\",\"temporary_user_blocking\"]","x-ves-proto-message":"ves.io.schema.views.common_waf.PolicyBasedChallenge","properties":{"always_enable_captcha_challenge":{"$ref":"#/components/schemas/ioschemaEmpty"},"always_enable_js_challenge":{"$ref":"#/components/schemas/ioschemaEmpty"},"captcha_challenge_parameters":{"$ref":"#/components/schemas/virtual_hostCaptchaChallengeType"},"default_captcha_challenge_parameters":{"$ref":"#/components/schemas/ioschemaEmpty"},"default_js_challenge_parameters":{"$ref":"#/components/schemas/ioschemaEmpty"},"default_mitigation_settings":{"$ref":"#/components/schemas/ioschemaEmpty"},"default_temporary_blocking_parameters":{"$ref":"#/components/schemas/ioschemaEmpty"},"js_challenge_parameters":{"$ref":"#/components/schemas/virtual_hostJavascriptChallengeType"},"malicious_user_mitigation":{"$ref":"#/components/schemas/schemaviewsObjectRefType"},"no_challenge":{"$ref":"#/components/schemas/ioschemaEmpty"},"rule_list":{"$ref":"#/components/schemas/common_wafChallengeRuleList"},"temporary_user_blocking":{"$ref":"#/components/schemas/virtual_hostTemporaryUserBlockingType"}}},"virtual_hostAutoCertInfoType":{"type":"object","description":"Information related to auto certificate","title":"AutoCertInfoType","x-displayname":"Auto Cert Information","x-ves-proto-message":"ves.io.schema.virtual_host.AutoCertInfoType","properties":{"auto_cert_expiry":{"type":"string","description":" Auto certificate expiry timestamp","title":"Auto Cert Expiry Timestamp","format":"date-time","x-displayname":"Auto Cert Expiry Timestamp"},"auto_cert_issuer":{"type":"string","description":" Issuer of the auto certificate","title":"Auto Cert Issuer","x-displayname":"Auto Cert Issuer"},"auto_cert_state":{"$ref":"#/components/schemas/virtual_hostCertificationState"},"auto_cert_subject":{"type":"string","description":" Subject of the auto certificate","title":"Auto Cert Subject","x-displayname":"Auto Cert Subject"},"dns_records":{"type":"array","description":" DNS Records that are to be added by user in their DNS domain.\n Currently, this will be populated when auto certificates are\n desired but DNS delegation is not enabled.","title":"DNS Records","items":{"$ref":"#/components/schemas/virtual_hostDNSRecord"},"x-displayname":"DNS Records"}}},"virtual_hostCaptchaChallengeType":{"type":"object","description":"\nEnables loadbalancer to perform captcha challenge\n\nCaptcha challenge will be based on Google Recaptcha.\n\nWith this feature enabled, only clients that pass the captcha challenge will be allowed to\ncomplete the HTTP request.\n\nWhen loadbalancer is configured to do Captcha Challenge, it will redirect the browser to an\nHTML page on every new HTTP request. This HTML page will have captcha challenge embedded in it.\nClient will be allowed to make the request only if the captcha challenge is successful.\nLoadbalancer will tag response header with a cookie to avoid Captcha challenge for subsequent requests.\n\nCAPTCHA is mainly used as a security check to ensure only human users can pass through.\nGenerally, computers or bots are not capable of solving a captcha.\n\nYou can enable either Javascript challenge or Captcha challenge on a virtual host","title":"CaptchaChallengeType","x-displayname":"Captcha Challenge Parameters","x-ves-proto-message":"ves.io.schema.virtual_host.CaptchaChallengeType","properties":{"cookie_expiry":{"type":"integer","description":" Cookie expiration period, in seconds.\n An expired cookie causes the loadbalancer to issue a new challenge.\n\nExample: ` \"1000\"`\n\nValidation Rules:\n ves.io.schema.rules.uint32.gte: 1\n ves.io.schema.rules.uint32.lte: 86400\n","title":"cookie_expiry","format":"int64","x-displayname":"Cookie Expiration Period","x-ves-example":"1000","x-ves-validation-rules":{"ves.io.schema.rules.uint32.gte":"1","ves.io.schema.rules.uint32.lte":"86400"}},"custom_page":{"type":"string","description":" Custom message is of type uri_ref. Currently supported URL schemes is string:///.\n For string:/// scheme, message needs to be encoded in Base64 format.\n You can specify this message as base64 encoded plain text message e.g. \"Please Wait..\"\n or it can be HTML paragraph or a body string encoded as base64 string\n E.g. \"<p> Please Wait </p>\". Base64 encoded string for this html is \"PHA+IFBsZWFzZSBXYWl0IDwvcD4=\"\n\nExample: ` \"string:///PHA+IFBsZWFzZSBXYWl0IDwvcD4=\"`\n\nValidation Rules:\n ves.io.schema.rules.string.max_len: 65536\n ves.io.schema.rules.string.uri_ref: true\n","title":"custom_page","maxLength":65536,"x-displayname":"Custom message for Captcha Challenge","x-ves-example":"string:///PHA+IFBsZWFzZSBXYWl0IDwvcD4=","x-ves-validation-rules":{"ves.io.schema.rules.string.max_len":"65536","ves.io.schema.rules.string.uri_ref":"true"}}}},"virtual_hostCertificationState":{"type":"string","description":"State of auto certification generation for the virtual host\n\n - AutoCertDisabled: Auto Cert Disabled\n\nAuto Certification is disabled.\n - DnsDomainVerification: Dns Domain Verification\n\nAuto Certification is waiting for domain verification.\n - AutoCertStarted: Auto Cert Started\n\nAuto Certificate generation action has started.\n - PreDomainChallengePending: Pre Domain Challenge Pending\n\nThe domains in the virtual host configuration are not still verified. This requires\nthe _acme-challenge TXT record in the domain to have the correct TXT.\n - DomainChallengeStarted: Domain Challenge Started\n\nDomain challenge process started.\n - DomainChallengePending: Domain Challenge Pending\n\nThe domains in the virtual host configuration are being verified. This requires\nthe _acme-challenge TXT record in the domain to have the correct TXT.\n - DomainChallengeVerified: Domain Challenge Verified\n\nAll the domains in the virtual host have been verified.\n - AutoCertFinalize: Auto Cert Finalize\n\nCertificate generation order is Ready and Finalized.\n - CertificateInvalid: Certificate Invalid\n\nCertificate is invalid\n - CertificateValid: Certificate Valid\n\nValid certificate generated and tls_parameters are updated\n - AutoCertNotApplicable: Auto Cert Not Applicable\n\nAuto certificate not applicable because virtual host does not use TLS\n - AutoCertRateLimited: Auto Cert Rate Limited\n\nAuto certificate not available because CA has rate limited the request\n - AutoCertGenerationRetry: Auto Cert Generation Retry\n\nAuto certificate generate failed in the previous attempt, will be retried automatically\n - AutoCertError: Auto Cert Error\n\nError in Certificate generation\nDefault State for Vhost State with Auto Certificate\n - AutoCertAccountRateLimited: Auto Cert Account Rate Limited\n\nAuto certificate not available because CA has rate limited the request\n - AutoCertDomainRateLimited: Auto Cert Domain Rate Limited\n\nAuto certificate not available because CA has rate limited the request\n - CertificateExpired: Certificate Expired\n\nCertificate has expired","title":"Certification State","enum":["AutoCertDisabled","DnsDomainVerification","AutoCertStarted","DomainChallengePending","DomainChallengeVerified","AutoCertFinalize","CertificateInvalid","CertificateValid","AutoCertNotApplicable","AutoCertRateLimited","AutoCertGenerationRetry","AutoCertError","PreDomainChallengePending","DomainChallengeStarted","AutoCertInitialize","AutoCertAccountRateLimited","AutoCertDomainRateLimited","CertificateExpired"],"default":"AutoCertDisabled","x-displayname":"Certification State","x-ves-proto-enum":"ves.io.schema.virtual_host.CertificationState"},"virtual_hostDNSRecord":{"type":"object","description":"Defines a DNS record","title":"DNSRecord","x-displayname":"DNS Record","x-ves-proto-message":"ves.io.schema.virtual_host.DNSRecord","properties":{"name":{"type":"string","description":" Name of the DNS record","title":"Name","x-displayname":"Name"},"type":{"type":"string","description":" Type of the DNS record\n\nExample: ` \"CNAME\"`","title":"Type","x-displayname":"Type","x-ves-example":"CNAME"},"value":{"type":"string","description":" DNS record Value","title":"Value","x-displayname":"Value"}}},"virtual_hostDNSVHostStatusType":{"type":"object","description":"DNS related Virtual Host status","title":"DNS Virtual Host Status Type","x-displayname":"DNS Virtual Host Status","x-ves-proto-message":"ves.io.schema.virtual_host.DNSVHostStatusType","properties":{"error_description":{"type":"string","description":" Description of error during DNS configuration\n\nExample: ` \"value\"`","title":"Error Description","x-displayname":"Error Description","x-ves-example":"value"},"existing_certificate_state":{"type":"string","description":" Status of Existing Auto Certficate\n\nExample: ` \"Certificate Valid or Certificate Expired or Certificate Invalid\"`","title":"Existing Certificate Status","x-displayname":"Existing Certificate Status","x-ves-example":"Certificate Valid or Certificate Expired or Certificate Invalid"},"renew_certificate_state":{"$ref":"#/components/schemas/virtual_hostCertificationState"},"state":{"$ref":"#/components/schemas/virtual_hostVirtualHostState"},"suggested_action":{"type":"string","description":" Suggested action for customer on error\n\nExample: ` \"value\"`","title":"Suggested Action","x-displayname":"Suggested Action","x-ves-example":"value"}}},"virtual_hostJavascriptChallengeType":{"type":"object","description":"\nEnables loadbalancer to perform client browser compatibility test by redirecting to a page\nwith Javascript.\n\nWith this feature enabled, only clients that are capable of executing Javascript(mostly browsers)\nwill be allowed to complete the HTTP request.\n\nWhen loadbalancer is configured to do Javascript Challenge, it will redirect the browser to an\nHTML page on every new HTTP request. This HTML page will have Javascript embedded in it.\nLoadbalancer chooses a set of random numbers for every new client and sends these numbers along with an\nencrypted answer with the request such that it embed these numbers as input in the Javascript.\nJavascript will run on the requestor browser and perform a complex Math operation.\nScript will submit the answer to loadbalancer. Loadbalancer will validate the answer by comparing the calculated\nanswer with the decrypted answer (which was encrypted when it was sent back as reply) and allow\nthe request to the upstream server only if the answer is correct.\nLoadbalancer will tag response header with a cookie to avoid Javascript challenge for subsequent requests.\n\nJavascript challenge serves following purposes\n * Validate that the request is coming via a browser that is capable for running Javascript\n * Force the browser to run a complex operation, f(X), that requires it to spend a large number\n of CPU cycles. This is to slow down a potential DoS attacker by making it difficult to launch\n a large request flood without having to spend even larger CPU cost at their end.\n\nYou can enable either Javascript challenge or Captcha challenge on a virtual host","title":"JavascriptChallengeType","x-displayname":"Javascript Challenge Parameters","x-ves-proto-message":"ves.io.schema.virtual_host.JavascriptChallengeType","properties":{"cookie_expiry":{"type":"integer","description":" Cookie expiration period, in seconds.\n An expired cookie causes the loadbalancer to issue a new challenge.\n\nExample: ` \"1000\"`\n\nValidation Rules:\n ves.io.schema.rules.uint32.gte: 1\n ves.io.schema.rules.uint32.lte: 86400\n","title":"cookie_expiry","format":"int64","x-displayname":"Cookie Expiration Period","x-ves-example":"1000","x-ves-validation-rules":{"ves.io.schema.rules.uint32.gte":"1","ves.io.schema.rules.uint32.lte":"86400"}},"custom_page":{"type":"string","description":" Custom message is of type uri_ref. Currently supported URL schemes is string:///.\n For string:/// scheme, message needs to be encoded in Base64 format.\n You can specify this message as base64 encoded plain text message e.g. \"Please Wait..\"\n or it can be HTML paragraph or a body string encoded as base64 string\n E.g. \"<p> Please Wait </p>\". Base64 encoded string for this html is \"PHA+IFBsZWFzZSBXYWl0IDwvcD4=\"\n\nExample: ` \"string:///PHA+IFBsZWFzZSBXYWl0IDwvcD4=\"`\n\nValidation Rules:\n ves.io.schema.rules.string.max_len: 65536\n ves.io.schema.rules.string.uri_ref: true\n","title":"custom_page","maxLength":65536,"x-displayname":"Custom Message for Javascript Challenge","x-ves-example":"string:///PHA+IFBsZWFzZSBXYWl0IDwvcD4=","x-ves-validation-rules":{"ves.io.schema.rules.string.max_len":"65536","ves.io.schema.rules.string.uri_ref":"true"}},"js_script_delay":{"type":"integer","description":" Delay introduced by Javascript, in milliseconds.\n\nExample: ` \"1000\"`\n\nValidation Rules:\n ves.io.schema.rules.uint32.gte: 1000\n ves.io.schema.rules.uint32.lte: 60000\n","title":"js_script_delay","format":"int64","x-displayname":"Javascript Delay","x-ves-example":"1000","x-ves-validation-rules":{"ves.io.schema.rules.uint32.gte":"1000","ves.io.schema.rules.uint32.lte":"60000"}}}},"virtual_hostServiceDomain":{"type":"object","x-ves-proto-message":"ves.io.schema.virtual_host.ServiceDomain","properties":{"domain":{"type":"string","description":" Domain Name\n\nExample: ` \"cdn.acmecorp.com\"`","title":"Domain Name","x-displayname":"Domain Name","x-ves-example":"cdn.acmecorp.com"},"service_domain":{"type":"string","description":" Service Domain\n\nExample: ` \"ves-io-cdn-cdn-acmecorp-com.demo1.ac.vh.volterra.us\"`","title":"Service Domain","x-displayname":"Service Domain","x-ves-example":"ves-io-cdn-cdn-acmecorp-com.demo1.ac.vh.volterra.us"}}},"virtual_hostSlowDDoSMitigation":{"type":"object","description":"\"Slow and low\" attacks tie up server resources, leaving none available for servicing\nrequests from actual users.","title":"Slow DDoS Mitigation","x-displayname":"Slow DDoS Mitigation","x-ves-oneof-field-request_timeout_choice":"[\"disable_request_timeout\",\"request_timeout\"]","x-ves-proto-message":"ves.io.schema.virtual_host.SlowDDoSMitigation","properties":{"disable_request_timeout":{"$ref":"#/components/schemas/ioschemaEmpty"},"request_headers_timeout":{"type":"integer","description":" The amount of time the client has to send only the headers on the request stream before\n the stream is cancelled. The default value is 10000 milliseconds. This setting\n provides protection against Slowloris attacks.\n\nExample: ` \"60000\"`\n\nValidation Rules:\n ves.io.schema.rules.uint32.gte: 2000\n ves.io.schema.rules.uint32.lte: 30000\n","title":"Request Headers Timeout","format":"int64","x-displayname":"Request Headers Timeout","x-ves-example":"60000","x-ves-validation-rules":{"ves.io.schema.rules.uint32.gte":"2000","ves.io.schema.rules.uint32.lte":"30000"}},"request_timeout":{"type":"integer","description":"Exclusive with [disable_request_timeout]\n\n\nExample: ` \"60000\"`\n\nValidation Rules:\n ves.io.schema.rules.uint32.gte: 2000\n ves.io.schema.rules.uint32.lte: 300000\n","title":"Custom Timeout","format":"int64","x-displayname":"Custom Timeout","x-ves-example":"60000","x-ves-validation-rules":{"ves.io.schema.rules.uint32.gte":"2000","ves.io.schema.rules.uint32.lte":"300000"}}}},"virtual_hostTemporaryUserBlockingType":{"type":"object","description":"\nSpecifies configuration for temporary user blocking resulting from user behavior analysis.\n\nWhen Malicious User Mitigation is enabled from service policy rules, users' accessing the application will be analyzed for\nmalicious activity and the configured mitigation actions will be taken on identified malicious users.\nThese mitigation actions include setting up temporary blocking on that user.\nThis configuration specifies settings on how that blocking should be done by the loadbalancer.","title":"TemporaryUserBlockingType","x-displayname":"Temporary User Blocking","x-ves-proto-message":"ves.io.schema.virtual_host.TemporaryUserBlockingType","properties":{"custom_page":{"type":"string","description":" Custom message is of type `uri_ref`. Currently supported URL schemes is `string:///`.\n For `string:///` scheme, message needs to be encoded in Base64 format.\n You can specify this message as base64 encoded plain text message e.g. \"Blocked..\"\n or it can be HTML paragraph or a body string encoded as base64 string\n E.g. \"<p> Blocked </p>\". Base64 encoded string for this html is \"PHA+IFBsZWFzZSBXYWl0IDwvcD4=\"\n\nExample: ` \"string:///PHA+IFBsZWFzZSBXYWl0IDwvcD4=\"`\n\nValidation Rules:\n ves.io.schema.rules.string.max_len: 65536\n ves.io.schema.rules.string.uri_ref: true\n","title":"custom_page","maxLength":65536,"x-displayname":"Custom Message for Temporary Blocking","x-ves-example":"string:///PHA+IFBsZWFzZSBXYWl0IDwvcD4=","x-ves-validation-rules":{"ves.io.schema.rules.string.max_len":"65536","ves.io.schema.rules.string.uri_ref":"true"}}}},"virtual_hostVirtualHostState":{"type":"string","description":"State of the virtual host\n\n - VIRTUAL_HOST_READY: VIRTUAL_HOST_READY\n\nVirtual host is ready to install\n - VIRTUAL_HOST_PENDING_VERIFICATION: VIRTUAL_HOST_PENDING_VERIFICATION\n\nVirtual host is verfication pending for some or all of its domains\n - VIRTUAL_HOST_VERIFICATION_FAILED: VIRTUAL_HOST_VERIFICATION_FAILED\n\nVirtual host has one or more domains for which verification failed\n - VIRTUAL_HOST_PENDING_DNS_DELEGATION: VIRTUAL_HOST_PENDING_DNS_DELEGATION\n\nVirtual host is pending DNS delegation\n - VIRTUAL_HOST_PENDING_A_RECORD: VIRTUAL_HOST_PENDING_A_RECORD\n\nVirtual host is waiting for one or more A records to be created\n - VIRTUAL_HOST_DNS_A_RECORD_ADDED: VIRTUAL_HOST_DNS_A_RECORD_ADDED\n\nDNS A record has been added for this Virtual host\n - VIRTUAL_HOST_INTERNET_NLB_PENDING_CREATION: VIRTUAL_HOST_INTERNET_NLB_PENDING_CREATION\n\nInternet facing NLB, is being created on the site/sites belonging to the virtual site\n - VIRTUAL_HOST_INTERNET_NLB_CREATION_FAILED: VIRTUAL_HOST_INTERNET_NLB_CREATION_FAILED\n\nInternet NLB creation failed on the site/sites. InternetNLBVIPStatus will have more information.","title":"VirtualHostState","enum":["VIRTUAL_HOST_READY","VIRTUAL_HOST_PENDING_VERIFICATION","VIRTUAL_HOST_VERIFICATION_FAILED","VIRTUAL_HOST_PENDING_DNS_DELEGATION","VIRTUAL_HOST_PENDING_A_RECORD","VIRTUAL_HOST_DNS_A_RECORD_ADDED","VIRTUAL_HOST_INTERNET_NLB_PENDING_CREATION","VIRTUAL_HOST_INTERNET_NLB_CREATION_FAILED"],"default":"VIRTUAL_HOST_READY","x-displayname":"Virtual Host State","x-ves-proto-enum":"ves.io.schema.virtual_host.VirtualHostState"},"virtual_host_dns_infoDnsInfo":{"type":"object","description":"A message that contains DNS information for a given IP address","title":"DNS information","x-displayname":"DNS Information","x-ves-proto-message":"ves.io.schema.virtual_host_dns_info.DnsInfo","properties":{"ip_address":{"type":"string","description":" IP address associated with virtual host\n\nValidation Rules:\n ves.io.schema.rules.string.ip: true\n","title":"IP address","x-displayname":"IP Address","x-ves-validation-rules":{"ves.io.schema.rules.string.ip":"true"}}}}}}}
|