@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.http_loadbalancer","description":"HTTP Load Balancer view defines a required parameters that can be used in CRUD, to create and manage HTTP Load Balancer.\nIt can be used to create HTTP Load Balancer and HTTPS Load Balancer.\n\nView will create following child objects.\n\n* virtual_host\n* routes\n* clusters\n* endpoints\n* advertise_policy","version":""},"paths":{"/api/config/namespaces/{metadata.namespace}/http_loadbalancers":{"post":{"summary":"Create HTTP Load Balancer","description":"Shape of the HTTP load balancer specification","operationId":"ves.io.schema.views.http_loadbalancer.API.Create","responses":{"200":{"description":"A successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/http_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/http_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-http_loadbalancer-api-create"},"x-ves-proto-rpc":"ves.io.schema.views.http_loadbalancer.API.Create"},"x-displayname":"Configure HTTP Load Balancer","x-ves-proto-service":"ves.io.schema.views.http_loadbalancer.API","x-ves-proto-service-type":"AUTO_CRUD_PUBLIC"},"/api/config/namespaces/{metadata.namespace}/http_loadbalancers/{metadata.name}":{"put":{"summary":"Replace HTTP Load Balancer","description":"Shape of the HTTP load balancer specification","operationId":"ves.io.schema.views.http_loadbalancer.API.Replace","responses":{"200":{"description":"A successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/http_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/http_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-http_loadbalancer-api-replace"},"x-ves-proto-rpc":"ves.io.schema.views.http_loadbalancer.API.Replace"},"x-displayname":"Configure HTTP Load Balancer","x-ves-proto-service":"ves.io.schema.views.http_loadbalancer.API","x-ves-proto-service-type":"AUTO_CRUD_PUBLIC"},"/api/cdn/namespaces/{namespace}/http_loadbalancer/get-service-operation-status":{"post":{"summary":"Get Service Operation Status for HTTPLB when Caching Enabled","description":"Get status of an operation command for a given HTTP LB when caching enabled.","operationId":"ves.io.schema.views.http_loadbalancer.CDNCustomAPI.GetServiceOperationHTTPLBCacheEnabled","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-http_loadbalancer-cdncustomapi-getserviceoperationhttplbcacheenabled"},"x-ves-proto-rpc":"ves.io.schema.views.http_loadbalancer.CDNCustomAPI.GetServiceOperationHTTPLBCacheEnabled"},"x-displayname":"Configure HTTP Load Balancer","x-ves-proto-service":"ves.io.schema.views.http_loadbalancer.CDNCustomAPI","x-ves-proto-service-type":"CUSTOM_PUBLIC"},"/api/cdn/namespaces/{namespace}/http_loadbalancer/list-service-operations-status":{"post":{"summary":"List of HTTPLB Operation Commands when Caching Enabled","description":"List of service operations for a given HTTP LB when Caching Enabled","operationId":"ves.io.schema.views.http_loadbalancer.CDNCustomAPI.ListServiceOperationsHTTPLBCacheEnabled","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-http_loadbalancer-cdncustomapi-listserviceoperationshttplbcacheenabled"},"x-ves-proto-rpc":"ves.io.schema.views.http_loadbalancer.CDNCustomAPI.ListServiceOperationsHTTPLBCacheEnabled"},"x-displayname":"Configure HTTP Load Balancer","x-ves-proto-service":"ves.io.schema.views.http_loadbalancer.CDNCustomAPI","x-ves-proto-service-type":"CUSTOM_PUBLIC"},"/api/cdn/namespaces/{namespace}/http_loadbalancer/{name}/cache-purge":{"post":{"summary":"Purge the LB Cache","description":"Initiate Purge on the LB Cache","operationId":"ves.io.schema.views.http_loadbalancer.CDNCustomAPI.CDNCachePurgeHTTPLBCacheEnabled","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-http_loadbalancer-cdncustomapi-cdncachepurgehttplbcacheenabled"},"x-ves-proto-rpc":"ves.io.schema.views.http_loadbalancer.CDNCustomAPI.CDNCachePurgeHTTPLBCacheEnabled"},"x-displayname":"Configure HTTP Load Balancer","x-ves-proto-service":"ves.io.schema.views.http_loadbalancer.CDNCustomAPI","x-ves-proto-service-type":"CUSTOM_PUBLIC"},"/api/config/namespaces/{namespace}/http_loadbalancers":{"get":{"summary":"List Configure HTTP Load Balancer","description":"List the set of http_loadbalancer in a namespace","operationId":"ves.io.schema.views.http_loadbalancer.API.List","responses":{"200":{"description":"A successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/http_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 http_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-http_loadbalancer-api-list"},"x-ves-proto-rpc":"ves.io.schema.views.http_loadbalancer.API.List"},"x-displayname":"Configure HTTP Load Balancer","x-ves-proto-service":"ves.io.schema.views.http_loadbalancer.API","x-ves-proto-service-type":"AUTO_CRUD_PUBLIC"},"/api/config/namespaces/{namespace}/http_loadbalancers/get_security_config":{"post":{"summary":"Get Security Config for Http Load Balancer","description":"Fetch the corresponding Security Config for the given HTTP load balancers","operationId":"ves.io.schema.views.http_loadbalancer.CustomAPI.GetSecurityConfig","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 HTTP Load Balancer for current request","in":"path","required":true,"x-displayname":"Namespace","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/http_loadbalancerGetSecurityConfigReq"}}},"required":true},"externalDocs":{"description":"Examples of this operation","url":"https://docs.cloud.f5.com/docs-v2/platform/reference/api-ref/ves-io-schema-views-http_loadbalancer-customapi-getsecurityconfig"},"x-ves-proto-rpc":"ves.io.schema.views.http_loadbalancer.CustomAPI.GetSecurityConfig"},"x-displayname":"Configure HTTP Load Balancer","x-ves-proto-service":"ves.io.schema.views.http_loadbalancer.CustomAPI","x-ves-proto-service-type":"CUSTOM_PUBLIC"},"/api/config/namespaces/{namespace}/http_loadbalancers/{name}":{"get":{"summary":"Get HTTP Load Balancer","description":"Shape of the HTTP load balancer specification","operationId":"ves.io.schema.views.http_loadbalancer.API.Get","responses":{"200":{"description":"A successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/http_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-http_loadbalancer-api-get"},"x-ves-proto-rpc":"ves.io.schema.views.http_loadbalancer.API.Get"},"delete":{"summary":"Delete Configure HTTP Load Balancer","description":"Delete the specified http_loadbalancer","operationId":"ves.io.schema.views.http_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/http_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-http_loadbalancer-api-delete"},"x-ves-proto-rpc":"ves.io.schema.views.http_loadbalancer.API.Delete"},"x-displayname":"Configure HTTP Load Balancer","x-ves-proto-service":"ves.io.schema.views.http_loadbalancer.API","x-ves-proto-service-type":"AUTO_CRUD_PUBLIC"},"/api/config/namespaces/{namespace}/http_loadbalancers/{name}/api_definitions/assign":{"post":{"summary":"Assign API Definition","description":"Set a reference to the API Definition, with an option to create an empty one if not exists.\nDEPRECATED. instead use virtual host public custom api - AssignAPIDefinition","operationId":"ves.io.schema.views.http_loadbalancer.CustomAPI.AssignAPIDefinition","responses":{"200":{"description":"A successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/http_loadbalancerAssignAPIDefinitionResp"}}}},"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 HTTP Load Balancer","in":"path","required":true,"x-displayname":"Namespace","schema":{"type":"string"}},{"name":"name","description":"Name\n\nx-example: \"blogging-app\"\nName of the HTTP Load Balancer","in":"path","required":true,"x-displayname":"Name","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/http_loadbalancerAssignAPIDefinitionReq"}}},"required":true},"externalDocs":{"description":"Examples of this operation","url":"https://docs.cloud.f5.com/docs-v2/platform/reference/api-ref/ves-io-schema-views-http_loadbalancer-customapi-assignapidefinition"},"x-ves-deprecated":"instead use virtual host public custom api - AssignAPIDefinition","x-ves-proto-rpc":"ves.io.schema.views.http_loadbalancer.CustomAPI.AssignAPIDefinition"},"x-displayname":"Configure HTTP Load Balancer","x-ves-proto-service":"ves.io.schema.views.http_loadbalancer.CustomAPI","x-ves-proto-service-type":"CUSTOM_PUBLIC"},"/api/config/namespaces/{namespace}/http_loadbalancers/{name}/api_definitions/available":{"get":{"summary":"List Available API Definitions","description":"List API definitions suitable for API Inventory management\nAPI Definitions which are associated at most with one app type.\nDEPRECATED: instead use ListAvailableAPIDefinitions in ves.io.schema.views.api_definition.PublicConfigCustomAPI","operationId":"ves.io.schema.views.http_loadbalancer.CustomAPI.ListAvailableAPIDefinitions","responses":{"200":{"description":"A successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/http_loadbalancerListAvailableAPIDefinitionsResp"}}}},"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 HTTP Load Balancer","in":"path","required":true,"x-displayname":"Namespace","schema":{"type":"string"}},{"name":"name","description":"Name\n\nx-example: \"blogging-app\"\nName of the HTTP 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-http_loadbalancer-customapi-listavailableapidefinitions"},"x-ves-deprecated":"instead use public crud api definition - GET List","x-ves-proto-rpc":"ves.io.schema.views.http_loadbalancer.CustomAPI.ListAvailableAPIDefinitions"},"x-displayname":"Configure HTTP Load Balancer","x-ves-proto-service":"ves.io.schema.views.http_loadbalancer.CustomAPI","x-ves-proto-service-type":"CUSTOM_PUBLIC"},"/api/ml/data/namespaces/{namespace}/http_loadbalancers/{name}/api_endpoints":{"post":{"summary":"Get API Endpoints","description":"Get list of all API Endpoints associated with the HTTP loadbalancer in format suitable for API Groups management.\nDeprecated: instead use GetAPIEndpoints in ves.io.schema.virtual_host.ApiepCustomAPI","operationId":"ves.io.schema.views.http_loadbalancer.ApiepLBCustomAPI.GetAPIEndpointsForGroups","responses":{"200":{"description":"A successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/http_loadbalancerGetAPIEndpointsForGroupsRsp"}}}},"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 Http LoadBalancer for the current request","in":"path","required":true,"x-displayname":"Namespace","schema":{"type":"string"}},{"name":"name","description":"Http LoadBalancer Name\n\nx-example: \"blogging-app\"\nHttp LoadBalancer for the current request","in":"path","required":true,"x-displayname":"Http LoadBalancer Name","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/http_loadbalancerGetAPIEndpointsForGroupsReq"}}},"required":true},"externalDocs":{"description":"Examples of this operation","url":"https://docs.cloud.f5.com/docs-v2/platform/reference/api-ref/ves-io-schema-views-http_loadbalancer-apieplbcustomapi-getapiendpointsforgroups"},"x-ves-deprecated":"Use GetAPIEndpoints in virtual_host.ApiepCustomAPI","x-ves-proto-rpc":"ves.io.schema.views.http_loadbalancer.ApiepLBCustomAPI.GetAPIEndpointsForGroups"},"x-displayname":"Configure HTTP Load Balancer","x-ves-proto-service":"ves.io.schema.views.http_loadbalancer.ApiepLBCustomAPI","x-ves-proto-service-type":"CUSTOM_PUBLIC"},"/api/ml/data/namespaces/{namespace}/http_loadbalancers/{name}/api_endpoints/swagger_spec":{"get":{"summary":"Get Swagger Spec for Http Load Balancer","description":"Get the corresponding Swagger spec for the given HTTP load balancer","operationId":"ves.io.schema.views.http_loadbalancer.ApiepLBCustomAPI.GetSwaggerSpec","responses":{"200":{"description":"A successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/apiHttpBody"}}}},"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 HTTP Load Balancer for current request","in":"path","required":true,"x-displayname":"Namespace","schema":{"type":"string"}},{"name":"name","description":"Name\n\nx-example: \"blogging-app\"\nHTTP load balancer for current request","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-http_loadbalancer-apieplbcustomapi-getswaggerspec"},"x-ves-proto-rpc":"ves.io.schema.views.http_loadbalancer.ApiepLBCustomAPI.GetSwaggerSpec"},"x-displayname":"Configure HTTP Load Balancer","x-ves-proto-service":"ves.io.schema.views.http_loadbalancer.ApiepLBCustomAPI","x-ves-proto-service-type":"CUSTOM_PUBLIC"},"/api/ml/data/namespaces/{namespace}/http_loadbalancers/{name}/api_inventory/api_endpoints/get_schema_updates":{"post":{"summary":"Get API Endpoints Schema Updates","description":"Get list of schema pairs, current and updated, for each endpoint in the request\nor all pending changes if empty list is provided.\nNOTE: any API endpoint defined in user swagger files should be ignored\nDEPRECATED. USE virtual host custom api GetAPIEndpointsSchemaUpdates","operationId":"ves.io.schema.views.http_loadbalancer.ApiepLBCustomAPI.GetAPIEndpointsSchemaUpdates","responses":{"200":{"description":"A successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/http_loadbalancerGetAPIEndpointsSchemaUpdatesResp"}}}},"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\"\nThe namespace of the HTTP Loadbalancer for the current request","in":"path","required":true,"x-displayname":"Namespace","schema":{"type":"string"}},{"name":"name","description":"Name\n\nx-example: \"name\"\nThe name of the HTTP Loadbalancer for the current request","in":"path","required":true,"x-displayname":"Name","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/http_loadbalancerGetAPIEndpointsSchemaUpdatesReq"}}},"required":true},"externalDocs":{"description":"Examples of this operation","url":"https://docs.cloud.f5.com/docs-v2/platform/reference/api-ref/ves-io-schema-views-http_loadbalancer-apieplbcustomapi-getapiendpointsschemaupdates"},"x-ves-deprecated":"USE virtual host custom api GetAPIEndpointsSchemaUpdates","x-ves-proto-rpc":"ves.io.schema.views.http_loadbalancer.ApiepLBCustomAPI.GetAPIEndpointsSchemaUpdates"},"x-displayname":"Configure HTTP Load Balancer","x-ves-proto-service":"ves.io.schema.views.http_loadbalancer.ApiepLBCustomAPI","x-ves-proto-service-type":"CUSTOM_PUBLIC"},"/api/ml/data/namespaces/{namespace}/http_loadbalancers/{name}/api_inventory/api_endpoints/update_schemas":{"post":{"summary":"Update API Endpoints Schemas","description":"Update the payload schema for the specified endpoints or all pending changes if empty list is provided.\nNOTE: only API endpoints returned by a call to `GetAPIEndpointsSchemaStates` can be updated.\nDEPRECATED. USE virtual host custom api UpdateAPIEndpointsSchemas","operationId":"ves.io.schema.views.http_loadbalancer.ApiepLBCustomAPI.UpdateAPIEndpointsSchemas","responses":{"200":{"description":"A successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/http_loadbalancerUpdateAPIEndpointsSchemasResp"}}}},"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\"\nThe namespace of the HTTP Loadbalancer for the current request","in":"path","required":true,"x-displayname":"Namespace","schema":{"type":"string"}},{"name":"name","description":"Name\n\nx-example: \"name\"\nThe name of the HTTP Loadbalancer for the current request","in":"path","required":true,"x-displayname":"Name","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/http_loadbalancerUpdateAPIEndpointsSchemasReq"}}},"required":true},"externalDocs":{"description":"Examples of this operation","url":"https://docs.cloud.f5.com/docs-v2/platform/reference/api-ref/ves-io-schema-views-http_loadbalancer-apieplbcustomapi-updateapiendpointsschemas"},"x-ves-deprecated":"USE virtual host custom api UpdateAPIEndpointsSchemas","x-ves-proto-rpc":"ves.io.schema.views.http_loadbalancer.ApiepLBCustomAPI.UpdateAPIEndpointsSchemas"},"x-displayname":"Configure HTTP Load Balancer","x-ves-proto-service":"ves.io.schema.views.http_loadbalancer.ApiepLBCustomAPI","x-ves-proto-service-type":"CUSTOM_PUBLIC"},"/api/config/namespaces/{namespace}/http_loadbalancers/{name}/dos_automitigation_rules":{"get":{"summary":"Get DoS Auto-Mitigation Rules for Http Load Balancer","description":"Get the corresponding DoS Auto-Mitigation Rules for the given HTTP load balancer","operationId":"ves.io.schema.views.http_loadbalancer.CustomAPI.GetDoSAutoMitigationRules","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-http_loadbalancer-customapi-getdosautomitigationrules"},"x-ves-proto-rpc":"ves.io.schema.views.http_loadbalancer.CustomAPI.GetDoSAutoMitigationRules"},"x-displayname":"Configure HTTP Load Balancer","x-ves-proto-service":"ves.io.schema.views.http_loadbalancer.CustomAPI","x-ves-proto-service-type":"CUSTOM_PUBLIC"},"/api/config/namespaces/{namespace}/http_loadbalancers/{name}/dos_automitigation_rules/{dos_automitigation_rule_name}":{"delete":{"summary":"Delete DoS Auto-Mitigation Rule for Http Load Balancer","description":"Delete the corresponding DoS Auto-Mitigation Rule for the given HTTP load balancer","operationId":"ves.io.schema.views.http_loadbalancer.CustomAPI.DeleteDoSAutoMitigationRule","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-http_loadbalancer-customapi-deletedosautomitigationrule"},"x-ves-proto-rpc":"ves.io.schema.views.http_loadbalancer.CustomAPI.DeleteDoSAutoMitigationRule"},"x-displayname":"Configure HTTP Load Balancer","x-ves-proto-service":"ves.io.schema.views.http_loadbalancer.CustomAPI","x-ves-proto-service-type":"CUSTOM_PUBLIC"},"/api/config/namespaces/{namespace}/http_loadbalancers/{name}/get-dns-info":{"get":{"summary":"Get DNS Info","description":"GetDnsInfo is an API to get DNS information for a given HTTP load balancer","operationId":"ves.io.schema.views.http_loadbalancer.CustomAPI.GetDnsInfo","responses":{"200":{"description":"A successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/http_loadbalancerGetDnsInfoResponse"}}}},"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\"\nNamespace for the HTTP load balancer","in":"path","required":true,"x-displayname":"Namespace","schema":{"type":"string"}},{"name":"name","description":"Name\n\nx-example: \"value\"\nName of the HTTP 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-http_loadbalancer-customapi-getdnsinfo"},"x-ves-proto-rpc":"ves.io.schema.views.http_loadbalancer.CustomAPI.GetDnsInfo"},"x-displayname":"Configure HTTP Load Balancer","x-ves-proto-service":"ves.io.schema.views.http_loadbalancer.CustomAPI","x-ves-proto-service-type":"CUSTOM_PUBLIC"},"/api/config/namespaces/{namespace}/http_loadbalancers/{name}/l7ddos_rps_threshold":{"post":{"summary":"Set L7 DDoS RPS Threshold","description":"Sets the L7 DDoS RPS threshold for HTTP load balancer","operationId":"ves.io.schema.views.http_loadbalancer.CustomAPI.SetL7DDoSRPSThreshold","responses":{"200":{"description":"A successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/http_loadbalancerSetL7DDoSRPSThresholdRsp"}}}},"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 request","in":"path","required":true,"x-displayname":"Namespace","schema":{"type":"string"}},{"name":"name","description":"Name\n\nx-example: \"lb_name\"\nx-required\nName of the HTTP loadbalancer","in":"path","required":true,"x-displayname":"Name","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/http_loadbalancerSetL7DDoSRPSThresholdReq"}}},"required":true},"externalDocs":{"description":"Examples of this operation","url":"https://docs.cloud.f5.com/docs-v2/platform/reference/api-ref/ves-io-schema-views-http_loadbalancer-customapi-setl7ddosrpsthreshold"},"x-ves-proto-rpc":"ves.io.schema.views.http_loadbalancer.CustomAPI.SetL7DDoSRPSThreshold"},"x-displayname":"Configure HTTP Load Balancer","x-ves-proto-service":"ves.io.schema.views.http_loadbalancer.CustomAPI","x-ves-proto-service-type":"CUSTOM_PUBLIC"}},"x-displayname":"Configure HTTP Load Balancer","x-ves-proto-package":"ves.io.schema.views.http_loadbalancer","components":{"schemas":{"apiHttpBody":{"type":"object","description":"Message that represents an arbitrary HTTP body. It should only be used for\npayload formats that can't be represented as JSON, such as raw binary or\nan HTML page.\n\n\nThis message can be used both in streaming and non-streaming API methods in\nthe request as well as the response.\n\nIt can be used as a top-level request field, which is convenient if one\nwants to extract parameters from either the URL or HTTP template into the\nrequest fields and also want access to the raw HTTP body.\n\nExample:\n\n message GetResourceRequest {\n // A unique request id.\n string request_id = 1;\n\n // The raw HTTP body is bound to this field.\n google.api.HttpBody http_body = 2;\n }\n\n service ResourceService {\n rpc GetResource(GetResourceRequest) returns (google.api.HttpBody);\n rpc UpdateResource(google.api.HttpBody) returns\n (google.protobuf.Empty);\n }\n\nExample with streaming methods:\n\n service CaldavService {\n rpc GetCalendar(stream google.api.HttpBody)\n returns (stream google.api.HttpBody);\n rpc UpdateCalendar(stream google.api.HttpBody)\n returns (stream google.api.HttpBody);\n }\n\nUse of this type only changes how the request and response bodies are\nhandled, all other features will continue to work unchanged.","properties":{"content_type":{"type":"string","description":"The HTTP Content-Type header value specifying the content type of the body."},"data":{"type":"string","description":"The HTTP request/response body as raw binary.","format":"byte"},"extensions":{"type":"array","description":"Application specific response metadata. Must be set in the first response\nfor streaming APIs.","items":{"$ref":"#/components/schemas/protobufAny"}}}},"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_typeAPIEPCategory":{"type":"string","description":"The category of an API endpoint.\n\nDiscovered API Endpoint.\nThe API Endpoint is imported from user swagger.\nThe API Endpoint is present at the API Inventory.\nThe API Endpoint is considered as part of Shadow API.\nDeprecated API Endpoint.\nNon-API Endpoint.","title":"APIEP Category","enum":["APIEP_CATEGORY_DISCOVERED","APIEP_CATEGORY_SWAGGER","APIEP_CATEGORY_INVENTORY","APIEP_CATEGORY_SHADOW","APIEP_CATEGORY_DEPRECATED","APIEP_CATEGORY_NON_API"],"default":"APIEP_CATEGORY_DISCOVERED","x-displayname":"Category of the API Endpoint","x-ves-proto-enum":"ves.io.schema.app_type.APIEPCategory"},"app_typeAPIEPSecurityRisk":{"type":"string","description":"Signifies API Endpoint Security Risk Level\n\nSecurity risk is not detected (for example, when no traffic).\nAPI Endpoint has low security risk.\nAPI Endpoint has medium security risk.\nAPI Endpoint has high security risk.\nAPI Endpoint has critical security risk.","title":"APIEP Security Risk","enum":["APIEP_SEC_RISK_NONE","APIEP_SEC_RISK_LOW","APIEP_SEC_RISK_MED","APIEP_SEC_RISK_HIGH","APIEP_SEC_RISK_CRITICAL"],"default":"APIEP_SEC_RISK_NONE","x-displayname":"API Endpoint Security Risk","x-ves-proto-enum":"ves.io.schema.app_type.APIEPSecurityRisk"},"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_typeRiskScore":{"type":"object","description":"Risk score of the vulnerabilities found for this API Endpoint.","title":"RiskScore","x-displayname":"Risk score","x-ves-proto-message":"ves.io.schema.app_type.RiskScore","properties":{"score":{"type":"number","description":" Score of the vulnerabilities found for this API Endpoint.","title":"score","format":"float","x-displayname":"Score"},"severity":{"$ref":"#/components/schemas/app_typeAPIEPSecurityRisk"}}},"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_typeSensitiveDataType":{"type":"string","description":"List of possible types of sensitive data that can be discovered for an APIEP.\n\nThe Sensitive Data detected as credit card number.\nThe sensitive data detected as social security number.\nThe sensitive data detected as IP address.\nThe sensitive data detected as email address.\nThe sensitive data detected as phone number.\nThe sensitive data detected as credentials info(e.g password, username etc).\nThe sensitive data detected as information leakage.\nThe sensitive data detected as masked PII (CCN, SSN)\nThe sensitive data detected as Location.","title":"SensitiveDataType","enum":["SENSITIVE_DATA_TYPE_CCN","SENSITIVE_DATA_TYPE_SSN","SENSITIVE_DATA_TYPE_IP","SENSITIVE_DATA_TYPE_EMAIL","SENSITIVE_DATA_TYPE_PHONE","SENSITIVE_DATA_TYPE_CREDENTIALS","SENSITIVE_DATA_TYPE_APP_INFO_LEAKAGE","SENSITIVE_DATA_TYPE_MASKED_PII","SENSITIVE_DATA_TYPE_LOCATION"],"default":"SENSITIVE_DATA_TYPE_CCN","x-displayname":"Sensitive Data Type","x-ves-proto-enum":"ves.io.schema.app_type.SensitiveDataType"},"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"}}},"clusterCircuitBreaker":{"type":"object","description":"CircuitBreaker provides a mechanism for watching failures in upstream connections or requests\nand if the failures reach a certain threshold, automatically fail subsequent requests which\nallows to apply back pressure on downstream quickly.","title":"CircuitBreaker","x-displayname":"Circuit Breaker","x-ves-displayorder":"1,2,3,4,5","x-ves-proto-message":"ves.io.schema.cluster.CircuitBreaker","properties":{"connection_limit":{"type":"integer","description":" The maximum number of connections that loadbalancer will establish to all hosts in an upstream cluster.\n In practice this is only applicable to TCP and HTTP/1.1 clusters since HTTP/2 uses a single connection to each host.\n Remove endpoint out of load balancing decision, if number of connections reach connection limit.\n\nExample: ` \"100\"`\n\nValidation Rules:\n ves.io.schema.rules.uint32.lte: 32768\n","title":"connection_limit","format":"int64","x-displayname":"Connection Limit","x-ves-example":"100","x-ves-validation-rules":{"ves.io.schema.rules.uint32.lte":"32768"}},"max_requests":{"type":"integer","description":" The maximum number of requests that can be outstanding to all hosts in a cluster at any given time.\n In practice this is applicable to HTTP/2 clusters since HTTP/1.1 clusters are governed by the\n maximum connections (connection_limit).\n Remove endpoint out of load balancing decision, if requests exceed this count.\n\nExample: ` \"10\"`\n\nValidation Rules:\n ves.io.schema.rules.uint32.lte: 32768\n","title":"max_requests","format":"int64","x-displayname":"Maximum Request Count","x-ves-example":"10","x-ves-validation-rules":{"ves.io.schema.rules.uint32.lte":"32768"}},"pending_requests":{"type":"integer","description":" The maximum number of requests that will be queued while waiting for a ready connection pool connection.\n Since HTTP/2 requests are sent over a single connection, this circuit breaker only comes into play as the\n initial connection is created, as requests will be multiplexed immediately afterwards. For HTTP/1.1, requests\n are added to the list of pending requests whenever there aren’t enough upstream connections available to\n immediately dispatch the request, so this circuit breaker will remain in play for the lifetime of the process.\n Remove endpoint out of load balancing decision, if pending request reach pending_request.\n\nExample: ` \"20\"`\n\nValidation Rules:\n ves.io.schema.rules.uint32.lte: 32768\n","title":"pending_requests","format":"int64","x-displayname":"Pending Requests","x-ves-example":"20","x-ves-validation-rules":{"ves.io.schema.rules.uint32.lte":"32768"}},"priority":{"$ref":"#/components/schemas/schemaRoutingPriority"},"retries":{"type":"integer","description":" The maximum number of retries that can be outstanding to all hosts in a cluster at any given time.\n Remove endpoint out of load balancing decision, if retries for request exceed this count.\n\nExample: ` \"10\"`\n\nValidation Rules:\n ves.io.schema.rules.uint32.lte: 32768\n","title":"retries","format":"int64","x-displayname":"Retry Count","x-ves-example":"10","x-ves-validation-rules":{"ves.io.schema.rules.uint32.lte":"32768"}}}},"clusterEndpointSelectionPolicy":{"type":"string","description":"Policy for selection of endpoints from local site/remote site/both\n\nConsider both remote and local endpoints for load balancing\nLOCAL_ONLY: Consider only local endpoints for load balancing\nEnable this policy to load balance ONLY among locally discovered endpoints\nPrefer the local endpoints for load balancing. If local endpoints are not present\nremote endpoints will be considered.","title":"EndpointSelectionPolicy","enum":["DISTRIBUTED","LOCAL_ONLY","LOCAL_PREFERRED"],"default":"DISTRIBUTED","x-displayname":"Endpoint Selection Policy","x-ves-proto-enum":"ves.io.schema.cluster.EndpointSelectionPolicy"},"clusterEndpointSubsetSelectorType":{"type":"object","description":"Upstream cluster may be configured to divide its endpoints into subsets based on metadata\nattached to the endpoints. Routes may then specify the metadata that a endpoint must match in\norder to be selected by the load balancer.\nList of keys that define a cluster subset. Each endpoint that has a metadata value for all of\nthe keys in the definition is added to that subset. If no endpoint has all the keys, no subsets\nresult from the definition. A single endpoint may appear in multiple subsets if it matches\nmultiple definitions.","title":"EndpointSubsetSelectorType","x-displayname":"Endpoint Subset Selector","x-ves-proto-message":"ves.io.schema.cluster.EndpointSubsetSelectorType","properties":{"keys":{"type":"array","description":" List of keys that define a cluster subset class.\n\nExample: ` \"production\"`\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: 16\n","title":"keys","maxItems":16,"items":{"type":"string"},"x-displayname":"Keys","x-ves-example":"production","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":"16"}}}},"clusterHttp2ProtocolOptions":{"type":"object","description":"Http2 Protocol options for upstream connections","title":"Http2ProtocolOptions","x-displayname":"Http2 Protocol Options","x-ves-proto-message":"ves.io.schema.cluster.Http2ProtocolOptions","properties":{"enabled":{"type":"boolean","description":" Enable/disable HTTP2 Protocol for upstream connections","title":"enabled","format":"boolean","x-displayname":"HTTP2 Enabled"}}},"clusterLoadbalancerAlgorithm":{"type":"string","description":"Different load balancing algorithms supported\nWhen a connection to a endpoint in an upstream cluster is required, the load balancer uses loadbalancer_algorithm\nto determine which host is selected.\n\n - ROUND_ROBIN: ROUND_ROBIN\n\nPolicy in which each healthy/available upstream endpoint is selected in round robin order.\n - LEAST_REQUEST: LEAST_REQUEST\n\nPolicy in which loadbalancer picks the upstream endpoint which has the fewest active requests\n - RING_HASH: RING_HASH\n\nPolicy implements consistent hashing to upstream endpoints using ring hash of endpoint names\nHash of the incoming request is calculated using request hash policy.\nThe ring/modulo hash load balancer implements consistent hashing to upstream hosts.\nThe algorithm is based on mapping all hosts onto a circle such that the addition or\nremoval of a host from the host set changes only affect 1/N requests. This technique\nis also commonly known as “ketama” hashing. A consistent hashing load balancer is only\neffective when protocol routing is used that specifies a value to hash on. The minimum\nring size governs the replication factor for each host in the ring. For example, if the\nminimum ring size is 1024 and there are 16 hosts, each host will be replicated 64 times.\n - RANDOM: RANDOM\n\nPolicy in which each available upstream endpoint is selected in random order.\nThe random load balancer selects a random healthy host. The random load balancer generally\nperforms better than round robin if no health checking policy is configured. Random selection\navoids bias towards the host in the set that comes after a failed host.\n - LB_OVERRIDE: Load Balancer Override\n\nHash policy is taken from from the load balancer which is using this origin pool","title":"LoadbalancerAlgorithm","enum":["ROUND_ROBIN","LEAST_REQUEST","RING_HASH","RANDOM","LB_OVERRIDE"],"default":"ROUND_ROBIN","x-displayname":"Load Balancer Algorithm","x-ves-proto-enum":"ves.io.schema.cluster.LoadbalancerAlgorithm"},"clusterOutlierDetectionType":{"type":"object","description":"Outlier detection and ejection is the process of dynamically determining whether some number\nof hosts in an upstream cluster are performing unlike the others and removing them from the\nhealthy load balancing set. Outlier detection is a form of passive health checking.\n\nAlgorithm\n\n1. A endpoint is determined to be an outlier (based on configured number of consecutive_5xx\n or consecutive_gateway_failures) .\n2. If no endpoints have been ejected, loadbalancer will eject the host immediately.\n Otherwise, it checks to make sure the number of ejected hosts is below the allowed threshold\n (specified via max_ejection_percent setting). If the number of ejected hosts is above the\n threshold, the host is not ejected.\n3. The endpoint is ejected for some number of milliseconds. Ejection means that the endpoint is marked\n unhealthy and will not be used during load balancing. The number of milliseconds is equal to the\n base_ejection_time value multiplied by the number of times the host has been ejected.\n4. An ejected endpoint will automatically be brought back into service after the ejection time\n has been satisfied","title":"OutlierDetectionType","x-displayname":"Outlier Detection","x-ves-displayorder":"1,2,3,4,5","x-ves-proto-message":"ves.io.schema.cluster.OutlierDetectionType","properties":{"base_ejection_time":{"type":"integer","description":" The base time that a host is ejected for. The real time is equal to the\n base time multiplied by the number of times the host has been ejected.\n This causes hosts to get ejected for longer periods if they continue to fail.\n Defaults to 30000ms or 30s. Specified in milliseconds.\n\nExample: ` \"20000\"`\n\nValidation Rules:\n ves.io.schema.rules.uint32.lte: 1800000\n","title":"base_ejection_time","format":"int64","x-displayname":"Base Ejection Time","x-ves-example":"20000","x-ves-validation-rules":{"ves.io.schema.rules.uint32.lte":"1800000"}},"consecutive_5xx":{"type":"integer","description":" If an upstream endpoint returns some number of consecutive 5xx, it will be ejected.\n Note that in this case a 5xx means an actual 5xx respond code, or an event that would\n cause the HTTP router to return one on the upstream’s behalf(reset, connection failure, etc.)\n consecutive_5xx indicates the number of consecutive 5xx responses required before\n a consecutive 5xx ejection occurs. Defaults to 5.\n\nExample: ` \"3\"`\n\nValidation Rules:\n ves.io.schema.rules.uint32.lte: 1024\n","title":"consecutive_5xx","format":"int64","x-displayname":"Consecutive 5xx Count","x-ves-example":"3","x-ves-validation-rules":{"ves.io.schema.rules.uint32.lte":"1024"}},"consecutive_gateway_failure":{"type":"integer","description":" If an upstream endpoint returns some number of consecutive “gateway errors”\n (502, 503 or 504 status code), it will be ejected. Note that this includes events\n that would cause the HTTP router to return one of these status codes on the\n upstream’s behalf (reset, connection failure, etc.).\n consecutive_gateway_failure indicates the number of consecutive gateway failures\n before a consecutive gateway failure ejection occurs. Defaults to 5.\n\nExample: ` \"5\"`\n\nValidation Rules:\n ves.io.schema.rules.uint32.lte: 1024\n","title":"consecutive_gateway_failure","format":"int64","x-displayname":"Consecutive Gateway Failure","x-ves-example":"5","x-ves-validation-rules":{"ves.io.schema.rules.uint32.lte":"1024"}},"interval":{"type":"integer","description":" The time interval between ejection analysis sweeps. This can result in\n both new ejections as well as endpoints being returned to service. Defaults\n to 10000ms or 10s. Specified in milliseconds.\n\nExample: ` \"5000\"`\n\nValidation Rules:\n ves.io.schema.rules.uint32.lte: 600000\n","title":"interval","format":"int64","x-displayname":"Interval","x-ves-example":"5000","x-ves-validation-rules":{"ves.io.schema.rules.uint32.lte":"600000"}},"max_ejection_percent":{"type":"integer","description":" The maximum % of an upstream cluster that can be ejected due to outlier\n detection. Defaults to 10% but will eject at least one host regardless of the value.\n\nExample: ` \"20\"`\n\nValidation Rules:\n ves.io.schema.rules.uint32.lte: 100\n","title":"max_ejection_percent","format":"int64","x-displayname":"Max Ejection Percentage","x-ves-example":"20","x-ves-validation-rules":{"ves.io.schema.rules.uint32.lte":"100"}}}},"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/common_cdnCDNLoadbalancerDeploymentStatus"},"error":{"type":"string","description":" Error message","title":"Error","x-displayname":"Error"}}},"common_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"},"common_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"},"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/common_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":"Mobile Request Identifier Headers.","title":"BotAdvancedMobileSDKConfigType","x-displayname":"Mobile Request Identifier Headers","x-ves-proto-message":"ves.io.schema.views.common_security.BotAdvancedMobileSDKConfigType","properties":{"mobile_identifier":{"$ref":"#/components/schemas/common_securityMobileTrafficIdentifierType"}}},"common_securityBotDefenseAdvancedType":{"type":"object","description":"Bot Defense Advanced","title":"BotDefenseAdvancedType","x-displayname":"Bot Defense Advanced","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.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_securityMalwareProtectionPolicy":{"type":"object","description":"Malware Protection protects Web Apps and APIs, from malicious file uploads by scanning files in real-time.","title":"MalwareProtectionPolicy","x-displayname":"Malware Protection Policy","x-ves-proto-message":"ves.io.schema.views.common_security.MalwareProtectionPolicy","properties":{"malware_protection_rules":{"type":"array","description":" Configure the match criteria to trigger Malware Protection Scan\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":"rules","minItems":1,"maxItems":32,"items":{"$ref":"#/components/schemas/common_securityMalwareProtectionRule"},"x-displayname":"Malware Detection Rules","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"}}}},"common_securityMalwareProtectionRule":{"type":"object","description":"Configure the match criteria to trigger Malware Protection Scan","title":"MalwareProtectionRule","x-displayname":"Malware Protection Rules","x-ves-displayorder":"1,2,3,4,5,6","x-ves-proto-message":"ves.io.schema.views.common_security.MalwareProtectionRule","properties":{"action":{"$ref":"#/components/schemas/schemaAction"},"domain":{"$ref":"#/components/schemas/schemaDomainMatcherType"},"http_methods":{"type":"array","description":" Methods to be matched\n\nValidation Rules:\n ves.io.schema.rules.repeated.unique: true\n","title":"HTTP Methods","items":{"$ref":"#/components/schemas/schemaHttpMethod"},"x-displayname":"HTTP Methods","x-ves-validation-rules":{"ves.io.schema.rules.repeated.unique":"true"}},"metadata":{"$ref":"#/components/schemas/schemaMessageMetaType"},"path":{"$ref":"#/components/schemas/ioschemaPathMatcherType"}}},"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":"API Protection Rule for a specific endpoint","title":"API Endpoint Protection Rule","x-displayname":"API Endpoint Protection Rule","x-ves-oneof-field-domain_choice":"[\"any_domain\",\"specific_domain\"]","x-ves-proto-message":"ves.io.schema.views.common_waf.APIEndpointProtectionRule","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":" The endpoint (path) of the request.\n\nExample: ` \"/endpoint1\"`\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":"/endpoint1","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"},"metadata":{"$ref":"#/components/schemas/schemaMessageMetaType"},"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_wafAPIGroupProtectionRule":{"type":"object","description":"API Protection Rule for a group or a base url","title":"API Group Protection Rule","x-displayname":"API Group Protection Rule","x-ves-oneof-field-domain_choice":"[\"any_domain\",\"specific_domain\"]","x-ves-proto-message":"ves.io.schema.views.common_waf.APIGroupProtectionRule","properties":{"action":{"$ref":"#/components/schemas/common_wafAPIProtectionRuleAction"},"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 For example: /v1\n\nExample: ` \"/v1\"`\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":"/v1","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"},"metadata":{"$ref":"#/components/schemas/schemaMessageMetaType"},"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_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":"The action to take if the input request matches the rule.","title":"API Protection Rule Action","x-displayname":"API Protection Rule Action","x-ves-oneof-field-action":"[\"allow\",\"deny\"]","x-ves-proto-message":"ves.io.schema.views.common_waf.APIProtectionRuleAction","properties":{"allow":{"$ref":"#/components/schemas/ioschemaEmpty"},"deny":{"$ref":"#/components/schemas/ioschemaEmpty"}}},"common_wafAPIProtectionRules":{"type":"object","description":"API Protection Rules","title":"API Protection Rules","x-displayname":"API Protection Rules","x-ves-proto-message":"ves.io.schema.views.common_waf.APIProtectionRules","properties":{"api_endpoint_rules":{"type":"array","description":" This category defines specific rules per API endpoints.\n If request matches any of these rules, skipping second category rules.\n\nValidation Rules:\n ves.io.schema.rules.repeated.max_items: 20\n","title":"api_endpoint_rules","maxItems":20,"items":{"$ref":"#/components/schemas/common_wafAPIEndpointProtectionRule"},"x-displayname":"API Endpoints","x-ves-validation-rules":{"ves.io.schema.rules.repeated.max_items":"20"}},"api_groups_rules":{"type":"array","description":" This category includes rules per API group or Server URL.\n For API groups, refer to API Definition which includes API groups derived from uploaded swaggers.\n\nValidation Rules:\n ves.io.schema.rules.repeated.max_items: 20\n","title":"api_groups_rules","maxItems":20,"items":{"$ref":"#/components/schemas/common_wafAPIGroupProtectionRule"},"x-displayname":"Server URLs and API Groups","x-ves-validation-rules":{"ves.io.schema.rules.repeated.max_items":"20"}}}},"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_wafAPIRateLimitLegacy":{"type":"object","description":"x-displayName: \"APIRateLimit Legacy\"\ntemporary message type used pre-migration. This will be removed later.","title":"APIRateLimit Legacy","properties":{"api_endpoint_rules":{"type":"array","description":"x-displayName: \"API Endpoints\"\nSets of rules for a specific endpoints.\nOrder is matter as it uses first match policy.\nFor creating rule that contain a whole domain or group of endpoints, please use the server URL rules above.","title":"api_endpoint_policy","items":{"$ref":"#/components/schemas/common_wafApiEndpointRule"}},"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":"x-displayName: \"Server URLs\"\nSet of rules for entire domain or base path that contain multiple endpoints.\nOrder is matter as it uses first match policy.\nFor matching also specific endpoints you can use the API endpoint rules set bellow.","title":"server_url_policy","items":{"$ref":"#/components/schemas/common_wafServerUrlRule"}}}},"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_wafApiDefinitionList":{"type":"object","description":"x-displayName: \"API Definition List\"\nList of api definitions.","title":"api definition list","properties":{"api_definitions":{"type":"array","description":"x-displayName: \"API Definitions\"\nAPI Definitions using OpenAPI specification files","title":"API Definitions","items":{"$ref":"#/components/schemas/schemaviewsObjectRefType"}}}},"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_loadbalancerAPIGroupsApiep":{"type":"object","description":"Apiep for the Evaluate Api Group Builder response.","title":"API Endpoint for API Group Evaluation","x-displayname":"API Groups Endpoint","x-ves-proto-message":"ves.io.schema.views.http_loadbalancer.APIGroupsApiep","properties":{"category":{"type":"array","description":" The category of the API Endpoint relative to API Inventory.\n\nExample: ` \"[APIEP_CATEGORY_DISCOVERED, APIEP_CATEGORY_INVENTORY]\"`","title":"Category","items":{"$ref":"#/components/schemas/app_typeAPIEPCategory"},"x-displayname":"Category","x-ves-example":"[APIEP_CATEGORY_DISCOVERED, APIEP_CATEGORY_INVENTORY]"},"method":{"$ref":"#/components/schemas/schemaHttpMethod"},"path":{"type":"string","description":" API Endpoint path\n\nExample: ` \"/api/v1/users/{id}\"`","title":"Path","x-displayname":"Path","x-ves-example":"/api/v1/users/{id}"},"risk_score":{"$ref":"#/components/schemas/app_typeRiskScore"},"sensitive_data":{"type":"array","description":" Sensitive Data of the API endpoint\n\nExample: ` \"[SENSITIVE_DATA_TYPE_CCN, SENSITIVE_DATA_TYPE_SSN]\"`","title":"Sensitive Data","items":{"$ref":"#/components/schemas/app_typeSensitiveDataType"},"x-displayname":"Sensitive Data","x-ves-example":"[SENSITIVE_DATA_TYPE_CCN, SENSITIVE_DATA_TYPE_SSN]"},"sensitive_data_types":{"type":"array","description":" Sensitive Data of the API endpoint\n\nExample: ` \"[Social-Security-Number, Credit-Card-Number]\"`","title":"Sensitive Data","items":{"type":"string"},"x-displayname":"Sensitive Data","x-ves-example":"[Social-Security-Number, Credit-Card-Number]"}}},"http_loadbalancerAdvancedOptionsType":{"type":"object","description":"This defines various options to define a route","title":"Advanced options","x-displayname":"Advanced Options","x-ves-oneof-field-path_normalize_choice":"[\"disable_path_normalize\",\"enable_path_normalize\"]","x-ves-oneof-field-strict_sni_host_header_check_choice":"[]","x-ves-proto-message":"ves.io.schema.views.http_loadbalancer.AdvancedOptionsType","properties":{"buffer_policy":{"$ref":"#/components/schemas/schemaBufferConfigType"},"compression_params":{"$ref":"#/components/schemas/virtual_hostCompressionType"},"custom_errors":{"type":"object","description":" Map of integer error codes as keys and string values that can be used to provide custom\n http pages for each error code.\n Key of the map can be either response code class or HTTP Error code. Response code classes\n for key is configured as follows\n 3 -- for 3xx response code class\n 4 -- for 4xx response code class\n 5 -- for 5xx response code class\n Value of the map is string which represents custom HTTP responses.\n Specific response code takes preference when both response code and response code class\n matches for a request.\n\nExample: ` \"value\"`\n\nValidation Rules:\n ves.io.schema.rules.map.keys.uint32.ranges: 3,4,5,300-599\n ves.io.schema.rules.map.max_pairs: 16\n ves.io.schema.rules.map.values.string.max_len: 65536\n ves.io.schema.rules.map.values.string.uri_ref: true\n","title":"Custom Errors","x-displayname":"Custom Error Responses","x-ves-example":"value","x-ves-validation-rules":{"ves.io.schema.rules.map.keys.uint32.ranges":"3,4,5,300-599","ves.io.schema.rules.map.max_pairs":"16","ves.io.schema.rules.map.values.string.max_len":"65536","ves.io.schema.rules.map.values.string.uri_ref":"true"}},"disable_default_error_pages":{"type":"boolean","description":" Disable the use of default F5XC error pages.","title":"Disable the use of default F5XC error pages","format":"boolean","x-displayname":"Disable Default Error Pages"},"disable_path_normalize":{"$ref":"#/components/schemas/ioschemaEmpty"},"enable_path_normalize":{"$ref":"#/components/schemas/ioschemaEmpty"},"idle_timeout":{"type":"integer","description":" The amount of time that a stream can exist without upstream or downstream activity, in milliseconds.\n The stream is terminated with a HTTP 504 (Gateway Timeout) error code if no upstream response header has been\n received, otherwise the stream is reset.\n\nExample: ` \"2000\"`\n\nValidation Rules:\n ves.io.schema.rules.uint32.lte: 3600000\n","title":"Idle timeout","format":"int64","x-displayname":"Idle Timeout","x-ves-example":"2000","x-ves-validation-rules":{"ves.io.schema.rules.uint32.lte":"3600000"}},"max_request_header_size":{"type":"integer","description":" The maximum request header size for downstream connections, in KiB.\n A HTTP 431 (Request Header Fields Too Large) error code is sent for requests that exceed this size.\n\n If multiple load balancers share the same advertise_policy, the highest value configured across all\n such load balancers is used for all the load balancers in question.\n\nExample: ` \"60\"`\n\nValidation Rules:\n ves.io.schema.rules.uint32.lte: 96\n","title":"Maximum request header size","format":"int64","x-displayname":"Maximum Request Header Size","x-ves-example":"60","x-ves-validation-rules":{"ves.io.schema.rules.uint32.lte":"96"}},"request_cookies_to_add":{"type":"array","description":" Cookies are key-value pairs to be added to HTTP request being routed towards upstream.\n Cookies specified at this level are applied after cookies 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":"Cookies to add in request","maxItems":32,"items":{"$ref":"#/components/schemas/schemaCookieValueOption"},"x-displayname":"Add Cookies in Cookie Header","x-ves-validation-rules":{"ves.io.schema.rules.repeated.max_items":"32","ves.io.schema.rules.repeated.unique":"true"}},"request_cookies_to_remove":{"type":"array","description":" List of keys of Cookies to be removed from the HTTP request being sent towards upstream.\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.max_items: 32\n ves.io.schema.rules.repeated.unique: true\n","title":"Cookies to be removed from request","maxItems":32,"items":{"type":"string","minLength":1,"maxLength":256},"x-displayname":"Remove Cookies from Cookie Header","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.max_items":"32","ves.io.schema.rules.repeated.unique":"true"}},"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 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.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 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.max_items":"32","ves.io.schema.rules.repeated.unique":"true"}},"response_cookies_to_add":{"type":"array","description":" Cookies are name-value pairs along with optional attribute parameters to be added to HTTP response being sent towards downstream.\n Cookies specified at this level are applied after cookies 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":"Cookies to add in set-cookie header in response","maxItems":32,"items":{"$ref":"#/components/schemas/schemaSetCookieValueOption"},"x-displayname":"Add Set-Cookie Headers","x-ves-validation-rules":{"ves.io.schema.rules.repeated.max_items":"32","ves.io.schema.rules.repeated.unique":"true"}},"response_cookies_to_remove":{"type":"array","description":" List of name of Cookies to be removed from the HTTP response being sent towards downstream. Entire set-cookie header will be removed\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.max_items: 32\n ves.io.schema.rules.repeated.unique: true\n","title":"Cookies to be removed from response","maxItems":32,"items":{"type":"string","minLength":1,"maxLength":256},"x-displayname":"Remove Cookies from Set-Cookie Headers","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.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.max_bytes: 256\n ves.io.schema.rules.repeated.items.string.min_bytes: 1\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","minLength":1,"maxLength":256},"x-displayname":"Remove Response 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.max_items":"32","ves.io.schema.rules.repeated.unique":"true"}}}},"http_loadbalancerApiInventorySchemaQueryType":{"type":"string","description":"API Inventory Schema Query Type\n\n - API_INVENTORY_SCHEMA_FULL_RESPONSE: Full Response\n\n - API_INVENTORY_SCHEMA_CURRENT: Current Schema\n\n - API_INVENTORY_SCHEMA_UPDATED: Updated Schema\n","title":"API Inventory Schema Query Type","enum":["API_INVENTORY_SCHEMA_FULL_RESPONSE","API_INVENTORY_SCHEMA_CURRENT","API_INVENTORY_SCHEMA_UPDATED"],"default":"API_INVENTORY_SCHEMA_FULL_RESPONSE","x-displayname":"API Inventory Schema Query Type","x-ves-proto-enum":"ves.io.schema.views.http_loadbalancer.ApiInventorySchemaQueryType"},"http_loadbalancerApiKey":{"type":"object","title":"Api Key","x-displayname":"Api Key","x-ves-proto-message":"ves.io.schema.views.http_loadbalancer.ApiKey","properties":{"key":{"type":"string","description":"\n\nRequired: YES\n\nValidation Rules:\n ves.io.schema.rules.message.required: true\n ves.io.schema.rules.string.max_len: 128\n","title":"Api Key","maxLength":128,"x-displayname":"Key","x-ves-required":"true","x-ves-validation-rules":{"ves.io.schema.rules.message.required":"true","ves.io.schema.rules.string.max_len":"128"}},"value":{"$ref":"#/components/schemas/schemaSecretType"}}},"http_loadbalancerApiTesting":{"type":"object","title":"API Testing","x-displayname":"API Testing","x-ves-oneof-field-frequency_choice":"[\"every_day\",\"every_month\",\"every_week\"]","x-ves-proto-message":"ves.io.schema.views.http_loadbalancer.ApiTesting","properties":{"custom_header_value":{"type":"string","description":" Add x-f5-api-testing-identifier header value to prevent security flags on API testing traffic\n\nValidation Rules:\n ves.io.schema.rules.string.max_len: 128\n","title":"Custom Header Value","maxLength":128,"x-displayname":"Custom Header","x-ves-validation-rules":{"ves.io.schema.rules.string.max_len":"128"}},"domains":{"type":"array","description":" Add and configure testing domains and credentials\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":"Domain Configuration","maxItems":32,"items":{"$ref":"#/components/schemas/viewshttp_loadbalancerDomainConfiguration"},"x-displayname":"Testing Environments","x-ves-required":"true","x-ves-validation-rules":{"ves.io.schema.rules.message.required":"true","ves.io.schema.rules.repeated.max_items":"32"}},"every_day":{"$ref":"#/components/schemas/ioschemaEmpty"},"every_month":{"$ref":"#/components/schemas/ioschemaEmpty"},"every_week":{"$ref":"#/components/schemas/ioschemaEmpty"}}},"http_loadbalancerAssignAPIDefinitionReq":{"type":"object","description":"Request form for Assign API Definition","title":"Assign API Definition Request","x-displayname":"Assign API Definition Request","x-ves-proto-message":"ves.io.schema.views.http_loadbalancer.AssignAPIDefinitionReq","properties":{"api_definition":{"$ref":"#/components/schemas/schemaviewsObjectRefType"},"create_if_not_exists":{"type":"boolean","description":" Create an empty API Definition object, if not exists","title":"Create if not exists","format":"boolean","x-displayname":"Create if not exists"},"name":{"type":"string","description":" Name of the HTTP Load Balancer\n\nExample: ` \"blogging-app\"`","title":"Name","x-displayname":"Name","x-ves-example":"blogging-app"},"namespace":{"type":"string","description":" Namespace of the HTTP Load Balancer\n\nExample: ` \"shared\"`","title":"Namespace","x-displayname":"Namespace","x-ves-example":"shared"}}},"http_loadbalancerAssignAPIDefinitionResp":{"type":"object","description":"Response form for Assign API Definition","title":"Assign API Definition Response","x-displayname":"Assign API Definition Response","x-ves-proto-message":"ves.io.schema.views.http_loadbalancer.AssignAPIDefinitionResp"},"http_loadbalancerBasicAuthentication":{"type":"object","title":"Basic Authentication","x-displayname":"Basic Authentication","x-ves-proto-message":"ves.io.schema.views.http_loadbalancer.BasicAuthentication","properties":{"password":{"$ref":"#/components/schemas/schemaSecretType"},"user":{"type":"string","description":"\n\nRequired: YES\n\nValidation Rules:\n ves.io.schema.rules.message.required: true\n ves.io.schema.rules.string.max_len: 64\n","title":"The custom domain user authentication","maxLength":64,"x-displayname":"User","x-ves-required":"true","x-ves-validation-rules":{"ves.io.schema.rules.message.required":"true","ves.io.schema.rules.string.max_len":"64"}}}},"http_loadbalancerBearer":{"type":"object","title":"Bearer Authentication","x-displayname":"Bearer","x-ves-proto-message":"ves.io.schema.views.http_loadbalancer.Bearer","properties":{"token":{"$ref":"#/components/schemas/schemaSecretType"}}},"http_loadbalancerBodySectionMaskingOptions":{"type":"object","description":"Options for HTTP Body Masking","title":"Body Section Masking Options","x-displayname":"Body Section Masking Options","x-ves-proto-message":"ves.io.schema.views.http_loadbalancer.BodySectionMaskingOptions","properties":{"fields":{"type":"array","description":" List of JSON Path field values. Use square brackets with an underscore [_] to indicate array elements (e.g., person.emails[_]). To reference JSON keys that contain spaces, enclose the entire path in double quotes. For example: \"person.first name\".\n\nExample: ` \"['user.email', 'credit_card']\"`\n\nRequired: YES\n\nValidation Rules:\n ves.io.schema.rules.message.required: true\n ves.io.schema.rules.repeated.items.string.json_path: true\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.not_empty: 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":"Field Values","minItems":1,"maxItems":16,"items":{"type":"string","minLength":1,"maxLength":256},"x-displayname":"Values","x-ves-example":"['user.email', 'credit_card']","x-ves-required":"true","x-ves-validation-rules":{"ves.io.schema.rules.message.required":"true","ves.io.schema.rules.repeated.items.string.json_path":"true","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.not_empty":"true","ves.io.schema.rules.repeated.max_items":"16","ves.io.schema.rules.repeated.min_items":"1","ves.io.schema.rules.repeated.unique":"true"}}}},"http_loadbalancerCachingPolicy":{"type":"object","description":"x-required\nCaching Policies for the CDN","title":"Caching policies","x-displayname":"Caching Policies","x-ves-proto-message":"ves.io.schema.views.http_loadbalancer.CachingPolicy","properties":{"custom_cache_rule":{"$ref":"#/components/schemas/common_cache_ruleCustomCacheRule"},"default_cache_action":{"$ref":"#/components/schemas/viewscommon_cache_ruleDefaultCacheAction"}}},"http_loadbalancerCreateRequest":{"type":"object","description":"This is the input message of the 'Create' RPC","title":"CreateRequest is used to create an instance of http_loadbalancer","x-displayname":"Create Request","x-ves-proto-message":"ves.io.schema.views.http_loadbalancer.CreateRequest","properties":{"metadata":{"$ref":"#/components/schemas/schemaObjectCreateMetaType"},"spec":{"$ref":"#/components/schemas/viewshttp_loadbalancerCreateSpecType"}}},"http_loadbalancerCreateResponse":{"type":"object","x-ves-proto-message":"ves.io.schema.views.http_loadbalancer.CreateResponse","properties":{"metadata":{"$ref":"#/components/schemas/schemaObjectGetMetaType"},"spec":{"$ref":"#/components/schemas/viewshttp_loadbalancerGetSpecType"},"system_metadata":{"$ref":"#/components/schemas/schemaSystemObjectGetMetaType"}}},"http_loadbalancerCredentials":{"type":"object","description":"Configure credential details, including type(e.g., API Key, bearer token) and role","title":"Credentials","x-displayname":"Credential Details","x-ves-oneof-field-credentials_choice":"[\"api_key\",\"basic_auth\",\"bearer_token\",\"login_endpoint\"]","x-ves-oneof-field-role_choice":"[\"admin\",\"standard\"]","x-ves-proto-message":"ves.io.schema.views.http_loadbalancer.Credentials","properties":{"admin":{"$ref":"#/components/schemas/ioschemaEmpty"},"api_key":{"$ref":"#/components/schemas/http_loadbalancerApiKey"},"basic_auth":{"$ref":"#/components/schemas/http_loadbalancerBasicAuthentication"},"bearer_token":{"$ref":"#/components/schemas/http_loadbalancerBearer"},"credential_name":{"type":"string","description":" Enter a unique name for the credentials used in API testing\n\nRequired: YES\n\nValidation Rules:\n ves.io.schema.rules.message.required: true\n ves.io.schema.rules.string.max_len: 64\n","title":"Credential Name","maxLength":64,"x-displayname":"Name","x-ves-required":"true","x-ves-validation-rules":{"ves.io.schema.rules.message.required":"true","ves.io.schema.rules.string.max_len":"64"}},"login_endpoint":{"$ref":"#/components/schemas/http_loadbalancerLoginEndpoint"},"standard":{"$ref":"#/components/schemas/ioschemaEmpty"}}},"http_loadbalancerDeleteRequest":{"type":"object","description":"This is the input message of the 'Delete' RPC.","title":"DeleteRequest is used to delete a http_loadbalancer","x-displayname":"Delete Request","x-ves-proto-message":"ves.io.schema.views.http_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"}}},"http_loadbalancerGetAPIEndpointsForGroupsReq":{"type":"object","description":"Request shape for Get API Endpoints For Groups","title":"Get API Endpoints For Groups Request","x-displayname":"Get API Endpoints For Groups","x-ves-proto-message":"ves.io.schema.views.http_loadbalancer.GetAPIEndpointsForGroupsReq","properties":{"name":{"type":"string","description":" Http LoadBalancer for the current request\n\nExample: ` \"blogging-app\"`","title":"Http LoadBalancer Name","x-displayname":"Http LoadBalancer Name","x-ves-example":"blogging-app"},"namespace":{"type":"string","description":" Namespace of the Http LoadBalancer for the current request\n\nExample: ` \"shared\"`","title":"Namespace","x-displayname":"Namespace","x-ves-example":"shared"}}},"http_loadbalancerGetAPIEndpointsForGroupsRsp":{"type":"object","description":"Response shape for Get API Endpoints For Groups request","title":"Get API Endpoints For Groups Response","x-displayname":"Get API Endpoints For Groups Response","x-ves-proto-message":"ves.io.schema.views.http_loadbalancer.GetAPIEndpointsForGroupsRsp","properties":{"api_endpoints":{"type":"array","description":" A list of API endpoints associated with the HTTP Loadbalancer","title":"API Endpoints","items":{"$ref":"#/components/schemas/http_loadbalancerAPIGroupsApiep"},"x-displayname":"API Endpoints"},"apieps_timestamp":{"type":"string","description":" The API endpoints timestamp indicates most recent update of API endpoints happened\n The API Discovery periodically updates the API endpoints list based on application's traffic","title":"apieps_timestamp","format":"date-time","x-displayname":"API Endpoints Timestamp"}}},"http_loadbalancerGetAPIEndpointsSchemaUpdatesReq":{"type":"object","description":"Request shape for Get API Endpoints Schema Updates","title":"Get API Endpoints Schema Updates Request","x-displayname":"Get API Endpoints Schema Updates Request","x-ves-proto-message":"ves.io.schema.views.http_loadbalancer.GetAPIEndpointsSchemaUpdatesReq","properties":{"api_endpoints_filter":{"type":"array","description":" The list of discovered API endpoint to get schema for.\n NOTE: if empty, then the all API endpoints with schema changes would be returned\n\nValidation Rules:\n ves.io.schema.rules.repeated.max_items: 100\n","title":"API Endpoints Filter","maxItems":100,"items":{"$ref":"#/components/schemas/viewsApiOperation"},"x-displayname":"API Endpoints Filter","x-ves-validation-rules":{"ves.io.schema.rules.repeated.max_items":"100"}},"name":{"type":"string","description":" The name of the HTTP Loadbalancer for the current request\n\nExample: ` \"name\"`","title":"Name","x-displayname":"Name","x-ves-example":"name"},"namespace":{"type":"string","description":" The namespace of the HTTP Loadbalancer for the current request\n\nExample: ` \"shared\"`","title":"Namespace","x-displayname":"Namespace","x-ves-example":"shared"},"query_type":{"$ref":"#/components/schemas/http_loadbalancerApiInventorySchemaQueryType"}}},"http_loadbalancerGetAPIEndpointsSchemaUpdatesResp":{"type":"object","description":"Response shape for Get API Endpoints Schema Updates","title":"Get API Endpoints Schema Updates Response","x-displayname":"Get API Endpoints Schema Updates Response","x-ves-proto-message":"ves.io.schema.views.http_loadbalancer.GetAPIEndpointsSchemaUpdatesResp","properties":{"api_endpoints_current_schemas":{"type":"array","description":" The list of discovered API endpoints with current schemas","title":"API Endpoints Current Schemas","items":{"$ref":"#/components/schemas/viewsApiEndpointWithSchema"},"x-displayname":"API Endpoints Current Schemas"},"api_endpoints_updated_schemas":{"type":"array","description":" The list of API Inventory API endpoints with updated schemas","title":"API Endpoints Updated Schemas","items":{"$ref":"#/components/schemas/viewsApiEndpointWithSchema"},"x-displayname":"API Endpoints Updated Schemas"}}},"http_loadbalancerGetDnsInfoResponse":{"type":"object","description":"Response for get-dns-info API","title":"GetDnsInfoResponse","x-displayname":"Get DNS Info Response","x-ves-proto-message":"ves.io.schema.views.http_loadbalancer.GetDnsInfoResponse","properties":{"dns_info":{"$ref":"#/components/schemas/schemavirtual_host_dns_infoGlobalSpecType"}}},"http_loadbalancerGetResponse":{"type":"object","description":"This is the output message of the 'Get' RPC","title":"GetResponse is the shape of a read http_loadbalancer","x-displayname":"Get Response","x-ves-proto-message":"ves.io.schema.views.http_loadbalancer.GetResponse","properties":{"create_form":{"$ref":"#/components/schemas/http_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/http_loadbalancerReplaceRequest"},"spec":{"$ref":"#/components/schemas/viewshttp_loadbalancerGetSpecType"},"status":{"type":"array","description":"The status reported by different services for this configuration object","title":"status","items":{"$ref":"#/components/schemas/http_loadbalancerStatusObject"},"x-displayname":"Status"},"system_metadata":{"$ref":"#/components/schemas/schemaSystemObjectGetMetaType"}}},"http_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"},"http_loadbalancerGetSecurityConfigReq":{"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_http_loadbalancers\",\"http_loadbalancers_list\"]","x-ves-proto-message":"ves.io.schema.views.http_loadbalancer.GetSecurityConfigReq","properties":{"all_http_loadbalancers":{"$ref":"#/components/schemas/ioschemaEmpty"},"http_loadbalancers_list":{"$ref":"#/components/schemas/http_loadbalancerHTTPLoadBalancerList"},"namespace":{"type":"string","description":" Namespace of the HTTP Load Balancer for current request\n\nExample: ` \"shared\"`","title":"Namespace","x-displayname":"Namespace","x-ves-example":"shared"}}},"http_loadbalancerHTTPLoadBalancerList":{"type":"object","title":"List of http load balancers","x-displayname":"List of HTTP Load Balancers","x-ves-proto-message":"ves.io.schema.views.http_loadbalancer.HTTPLoadBalancerList","properties":{"http_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":"HTTP LoadBalancer","minItems":1,"maxItems":5,"items":{"type":"string","minLength":1,"maxLength":256},"x-displayname":"HTTP 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"}}}},"http_loadbalancerHashPolicyListType":{"type":"object","description":"List of hash policy rules","title":"Hash Policy List","x-displayname":"Hash Policy List","x-ves-proto-message":"ves.io.schema.views.http_loadbalancer.HashPolicyListType","properties":{"hash_policy":{"type":"array","description":" Specifies a list of hash policies to use for ring hash load balancing. Each\n hash policy is evaluated individually and the combined result is used to\n route the request\n\nRequired: YES\n\nValidation Rules:\n ves.io.schema.rules.message.required: true\n ves.io.schema.rules.repeated.max_items: 8\n ves.io.schema.rules.repeated.unique: true\n","title":"hash_policy","maxItems":8,"items":{"$ref":"#/components/schemas/routeHashPolicyType"},"x-displayname":"Hash Policy","x-ves-required":"true","x-ves-validation-rules":{"ves.io.schema.rules.message.required":"true","ves.io.schema.rules.repeated.max_items":"8","ves.io.schema.rules.repeated.unique":"true"}}}},"http_loadbalancerL7DDoSProtectionSettings":{"type":"object","description":"L7 DDoS protection is critical for safeguarding web applications, APIs, and services that are exposed to the internet\nfrom sophisticated, volumetric, application-level threats. Configure actions, thresholds and policies to apply during\nL7 DDoS attack","title":"L7 DDoS Protection Settings","x-displayname":"L7 DDoS Protection Settings","x-ves-oneof-field-clientside_action_choice":"[\"clientside_action_captcha_challenge\",\"clientside_action_js_challenge\",\"clientside_action_none\"]","x-ves-oneof-field-ddos_policy_choice":"[\"ddos_policy_custom\",\"ddos_policy_none\"]","x-ves-oneof-field-mitigation_action_choice":"[\"mitigation_block\",\"mitigation_captcha_challenge\",\"mitigation_js_challenge\"]","x-ves-oneof-field-rps_threshold_choice":"[\"default_rps_threshold\",\"rps_threshold\"]","x-ves-proto-message":"ves.io.schema.views.http_loadbalancer.L7DDoSProtectionSettings","properties":{"clientside_action_captcha_challenge":{"$ref":"#/components/schemas/virtual_hostCaptchaChallengeType"},"clientside_action_js_challenge":{"$ref":"#/components/schemas/virtual_hostJavascriptChallengeType"},"clientside_action_none":{"$ref":"#/components/schemas/ioschemaEmpty"},"ddos_policy_custom":{"$ref":"#/components/schemas/schemaviewsObjectRefType"},"ddos_policy_none":{"$ref":"#/components/schemas/ioschemaEmpty"},"default_rps_threshold":{"$ref":"#/components/schemas/ioschemaEmpty"},"mitigation_block":{"$ref":"#/components/schemas/ioschemaEmpty"},"mitigation_captcha_challenge":{"$ref":"#/components/schemas/virtual_hostCaptchaChallengeType"},"mitigation_js_challenge":{"$ref":"#/components/schemas/virtual_hostJavascriptChallengeType"},"rps_threshold":{"type":"integer","description":"Exclusive with [default_rps_threshold]\n Configure custom RPS threshold\n\nValidation Rules:\n ves.io.schema.rules.uint32.gte: 1\n ves.io.schema.rules.uint32.lte: 20000\n","title":"Custom RPS Threshold","format":"int64","x-displayname":"Custom","x-ves-validation-rules":{"ves.io.schema.rules.uint32.gte":"1","ves.io.schema.rules.uint32.lte":"20000"}}}},"http_loadbalancerListAvailableAPIDefinitionsResp":{"type":"object","x-ves-proto-message":"ves.io.schema.views.http_loadbalancer.ListAvailableAPIDefinitionsResp","properties":{"available_api_definitions":{"type":"array","description":" The list of references to available API Definition objects.","title":"Available API Definitions","items":{"$ref":"#/components/schemas/schemaviewsObjectRefType"},"x-displayname":"Available API Definitions"}}},"http_loadbalancerListResponse":{"type":"object","description":"This is the output message of 'List' RPC.","title":"ListResponse is the collection of http_loadbalancer","x-displayname":"List Response","x-ves-proto-message":"ves.io.schema.views.http_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/http_loadbalancerListResponseItem"},"x-displayname":"Items"}}},"http_loadbalancerListResponseItem":{"type":"object","description":"By default a summary of http_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 http_loadbalancer","x-displayname":"List Item","x-ves-proto-message":"ves.io.schema.views.http_loadbalancer.ListResponseItem","properties":{"annotations":{"type":"object","description":" The set of annotations present on this http_loadbalancer","title":"annotations","x-displayname":"Annotations"},"description":{"type":"string","description":" The description set for this http_loadbalancer","title":"description","x-displayname":"Description"},"disabled":{"type":"boolean","description":" A value of true indicates http_loadbalancer is administratively disabled","title":"disabled","format":"boolean","x-displayname":"Disabled"},"get_spec":{"$ref":"#/components/schemas/viewshttp_loadbalancerGetSpecType"},"labels":{"type":"object","description":" The set of labels present on this http_loadbalancer","title":"labels","x-displayname":"Labels"},"metadata":{"$ref":"#/components/schemas/schemaObjectGetMetaType"},"name":{"type":"string","description":" The name of this http_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/http_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 http_loadbalancer\n\nExample: ` \"d27938ba-967e-40a7-9709-57b8627f9f75\"`","title":"uid","x-displayname":"UID","x-ves-example":"d27938ba-967e-40a7-9709-57b8627f9f75"}}},"http_loadbalancerLoginEndpoint":{"type":"object","title":"Login Endpoint","x-displayname":"Login Endpoint","x-ves-proto-message":"ves.io.schema.views.http_loadbalancer.LoginEndpoint","properties":{"json_payload":{"$ref":"#/components/schemas/schemaSecretType"},"method":{"$ref":"#/components/schemas/schemaHttpMethod"},"path":{"type":"string","description":"\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: 1024\n","title":"Login Endpoint Path","maxLength":1024,"x-displayname":"Path","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":"1024"}},"token_response_key":{"type":"string","description":" Specifies how to handle the API response, extracting authentication tokens.\n\nRequired: YES\n\nValidation Rules:\n ves.io.schema.rules.message.required: true\n","title":"Token Response Key","x-displayname":"Token Response Key","x-ves-required":"true","x-ves-validation-rules":{"ves.io.schema.rules.message.required":"true"}}}},"http_loadbalancerOriginServerSubsetRuleListType":{"type":"object","description":"List of Origin Pools","title":"OriginServerSubsetRuleListType","x-displayname":"Origin Server Subset Rule List Type","x-ves-proto-message":"ves.io.schema.views.http_loadbalancer.OriginServerSubsetRuleListType","properties":{"origin_server_subset_rules":{"type":"array","description":" Origin Server Subset Rules allow users to define match condition on Client (IP address, ASN, Country), IP Reputation, Regional Edge names,\n Request for subset selection of origin servers. Origin Server Subset is a sequential engine where rules are evaluated one after the other.\n It's important to define the correct order for Origin Server Subset to get the intended result, rules are evaluated from top to bottom in the list.\n When an Origin server subset rule is matched, then this selection rule takes effect and no more rules are evaluated.\n\nValidation Rules:\n ves.io.schema.rules.repeated.max_items: 64\n ves.io.schema.rules.repeated.unique_metadata_name: true\n","title":"Origin Server Subset","maxItems":64,"items":{"$ref":"#/components/schemas/policyOriginServerSubsetRule"},"x-displayname":"Origin Server Subset Rules","x-ves-validation-rules":{"ves.io.schema.rules.repeated.max_items":"64","ves.io.schema.rules.repeated.unique_metadata_name":"true"}}}},"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"}}}},"http_loadbalancerProxyTypeHttps":{"type":"object","description":"Choice for selecting HTTP proxy with bring your own certificates","title":"BYOC HTTPS Choice","x-displayname":"BYOC HTTPS Choice","x-ves-displayorder":"1,2,24,3,4,9,16,19,20","x-ves-oneof-field-default_lb_choice":"[\"default_loadbalancer\",\"non_default_loadbalancer\"]","x-ves-oneof-field-path_normalize_choice":"[\"disable_path_normalize\",\"enable_path_normalize\"]","x-ves-oneof-field-port_choice":"[\"port\",\"port_ranges\"]","x-ves-oneof-field-server_header_choice":"[\"append_server_name\",\"default_header\",\"pass_through\",\"server_name\"]","x-ves-oneof-field-tls_certificates_choice":"[\"tls_cert_params\",\"tls_parameters\"]","x-ves-proto-message":"ves.io.schema.views.http_loadbalancer.ProxyTypeHttps","properties":{"add_hsts":{"type":"boolean","description":" Add HTTP Strict-Transport-Security response header","title":"Add HSTS","format":"boolean","x-displayname":"Add HSTS Header"},"append_server_name":{"type":"string","description":"Exclusive with [default_header pass_through server_name]\n Define the header value for the header name “server”.\n If header value is already present, it is not overwritten and passed as-is.\n\nValidation Rules:\n ves.io.schema.rules.string.max_len: 8096\n","title":"append_server_name","maxLength":8096,"x-displayname":"Append header value","x-ves-validation-rules":{"ves.io.schema.rules.string.max_len":"8096"}},"coalescing_options":{"$ref":"#/components/schemas/schemaTLSCoalescingOptions"},"connection_idle_timeout":{"type":"integer","description":" The idle timeout for downstream connections. The idle timeout is defined as the\n period in which there are no active requests. When the idle timeout is reached the connection\n will be closed. Note that request based timeouts mean that HTTP/2 PINGs will not keep the connection alive.\n This is specified in milliseconds. The default value is 2 minutes.\n\nExample: ` \"60000\"`\n\nValidation Rules:\n ves.io.schema.rules.uint32.lte: 600000\n","title":"Connection Idle Timeout","format":"int64","x-displayname":"Connection Idle Timeout","x-ves-example":"60000","x-ves-validation-rules":{"ves.io.schema.rules.uint32.lte":"600000"}},"default_header":{"$ref":"#/components/schemas/ioschemaEmpty"},"default_loadbalancer":{"$ref":"#/components/schemas/ioschemaEmpty"},"disable_path_normalize":{"$ref":"#/components/schemas/ioschemaEmpty"},"enable_path_normalize":{"$ref":"#/components/schemas/ioschemaEmpty"},"http_protocol_options":{"$ref":"#/components/schemas/virtual_hostHttpProtocolOptions"},"http_redirect":{"type":"boolean","description":" Redirect HTTP traffic to HTTPS","title":"HTTP Redirect","format":"boolean","x-displayname":"HTTP Redirect to HTTPS"},"non_default_loadbalancer":{"$ref":"#/components/schemas/ioschemaEmpty"},"pass_through":{"$ref":"#/components/schemas/ioschemaEmpty"},"port":{"type":"integer","description":"Exclusive with [port_ranges]\n HTTPS port to Listen.\n\nExample: ` \"443\"`\n\nValidation Rules:\n ves.io.schema.rules.uint32.lte: 65535\n","title":"HTTPS port to listen","format":"int64","x-displayname":"HTTPS Port","x-ves-example":"443","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"}},"server_name":{"type":"string","description":"Exclusive with [append_server_name default_header pass_through]\n Define the header value for the header name “server”.\n This will overwrite existing values, if any, for the server header.\n\nValidation Rules:\n ves.io.schema.rules.string.max_len: 8096\n","title":"server_name","maxLength":8096,"x-displayname":"Modify header value","x-ves-validation-rules":{"ves.io.schema.rules.string.max_len":"8096"}},"tls_cert_params":{"$ref":"#/components/schemas/viewsDownstreamTLSCertsParams"},"tls_parameters":{"$ref":"#/components/schemas/schemaviewsDownstreamTlsParamsType"}}},"http_loadbalancerProxyTypeHttpsAutoCerts":{"type":"object","description":"Choice for selecting HTTP proxy with bring your own certificates","title":"HTTPS with Auto Certs Choice","x-displayname":"HTTPS with Auto Certs Choice","x-ves-displayorder":"1,2,25,3,4,7,12,19,22,23","x-ves-oneof-field-default_lb_choice":"[\"default_loadbalancer\",\"non_default_loadbalancer\"]","x-ves-oneof-field-mtls_choice":"[\"no_mtls\",\"use_mtls\"]","x-ves-oneof-field-path_normalize_choice":"[\"disable_path_normalize\",\"enable_path_normalize\"]","x-ves-oneof-field-port_choice":"[\"port\",\"port_ranges\"]","x-ves-oneof-field-server_header_choice":"[\"append_server_name\",\"default_header\",\"pass_through\",\"server_name\"]","x-ves-proto-message":"ves.io.schema.views.http_loadbalancer.ProxyTypeHttpsAutoCerts","properties":{"add_hsts":{"type":"boolean","description":" Add HTTP Strict-Transport-Security response header","title":"Add HSTS","format":"boolean","x-displayname":"Add HSTS Header"},"append_server_name":{"type":"string","description":"Exclusive with [default_header pass_through server_name]\n Define the header value for the header name “server”.\n If header value is already present, it is not overwritten and passed as-is.\n\nValidation Rules:\n ves.io.schema.rules.string.max_len: 8096\n","title":"append_server_name","maxLength":8096,"x-displayname":"Append header value","x-ves-validation-rules":{"ves.io.schema.rules.string.max_len":"8096"}},"coalescing_options":{"$ref":"#/components/schemas/schemaTLSCoalescingOptions"},"connection_idle_timeout":{"type":"integer","description":" The idle timeout for downstream connections. The idle timeout is defined as the\n period in which there are no active requests. When the idle timeout is reached the connection\n will be closed. Note that request based timeouts mean that HTTP/2 PINGs will not keep the connection alive.\n This is specified in milliseconds. The default value is 2 minutes.\n\nExample: ` \"60000\"`\n\nValidation Rules:\n ves.io.schema.rules.uint32.lte: 600000\n","title":"Connection Idle Timeout","format":"int64","x-displayname":"Connection Idle Timeout","x-ves-example":"60000","x-ves-validation-rules":{"ves.io.schema.rules.uint32.lte":"600000"}},"default_header":{"$ref":"#/components/schemas/ioschemaEmpty"},"default_loadbalancer":{"$ref":"#/components/schemas/ioschemaEmpty"},"disable_path_normalize":{"$ref":"#/components/schemas/ioschemaEmpty"},"enable_path_normalize":{"$ref":"#/components/schemas/ioschemaEmpty"},"http_protocol_options":{"$ref":"#/components/schemas/virtual_hostHttpProtocolOptions"},"http_redirect":{"type":"boolean","description":" Redirect HTTP traffic to HTTPS","title":"HTTP Redirect","format":"boolean","x-displayname":"HTTP Redirect to HTTPS"},"no_mtls":{"$ref":"#/components/schemas/ioschemaEmpty"},"non_default_loadbalancer":{"$ref":"#/components/schemas/ioschemaEmpty"},"pass_through":{"$ref":"#/components/schemas/ioschemaEmpty"},"port":{"type":"integer","description":"Exclusive with [port_ranges]\n HTTPS port to Listen.\n\nValidation Rules:\n ves.io.schema.rules.uint32.lte: 65535\n","title":"HTTPS port to listen","format":"int64","x-displayname":"HTTPS Listen Port","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"}},"server_name":{"type":"string","description":"Exclusive with [append_server_name default_header pass_through]\n Define the header value for the header name “server”.\n This will overwrite existing values, if any, for the server header.\n\nValidation Rules:\n ves.io.schema.rules.string.max_len: 8096\n","title":"server_name","maxLength":8096,"x-displayname":"Modify header value","x-ves-validation-rules":{"ves.io.schema.rules.string.max_len":"8096"}},"tls_config":{"$ref":"#/components/schemas/viewsTlsConfig"},"use_mtls":{"$ref":"#/components/schemas/viewsDownstreamTlsValidationContext"}}},"http_loadbalancerReplaceRequest":{"type":"object","description":"This is the input message of the 'Replace' RPC","title":"ReplaceRequest is used to replace contents of a http_loadbalancer","x-displayname":"Replace Request","x-ves-proto-message":"ves.io.schema.views.http_loadbalancer.ReplaceRequest","properties":{"metadata":{"$ref":"#/components/schemas/schemaObjectReplaceMetaType"},"spec":{"$ref":"#/components/schemas/viewshttp_loadbalancerReplaceSpecType"}}},"http_loadbalancerReplaceResponse":{"type":"object","x-ves-proto-message":"ves.io.schema.views.http_loadbalancer.ReplaceResponse"},"http_loadbalancerRouteSimpleAdvancedOptions":{"type":"object","description":"Configure advanced options for route like path rewrite, hash policy, etc.","title":"Advanced Route Options","x-displayname":"Advanced Route Options","x-ves-oneof-field-bot_defense_javascript_injection_choice":"[\"bot_defense_javascript_injection\",\"inherited_bot_defense_javascript_injection\"]","x-ves-oneof-field-buffer_choice":"[\"buffer_policy\",\"common_buffering\"]","x-ves-oneof-field-cluster_retract_choice":"[\"do_not_retract_cluster\",\"retract_cluster\"]","x-ves-oneof-field-hash_policy_choice":"[\"common_hash_policy\",\"specific_hash_policy\"]","x-ves-oneof-field-mirroring_choice":"[\"disable_mirroring\",\"mirror_policy\"]","x-ves-oneof-field-retry_policy_choice":"[\"default_retry_policy\",\"no_retry_policy\",\"retry_policy\"]","x-ves-oneof-field-rewrite_choice":"[\"disable_prefix_rewrite\",\"prefix_rewrite\",\"regex_rewrite\"]","x-ves-oneof-field-spdy_choice":"[\"disable_spdy\",\"enable_spdy\"]","x-ves-oneof-field-waf_choice":"[\"app_firewall\",\"disable_waf\",\"inherited_waf\"]","x-ves-oneof-field-waf_exclusion_choice":"[\"inherited_waf_exclusion\",\"waf_exclusion_policy\"]","x-ves-oneof-field-websocket_choice":"[\"disable_web_socket_config\",\"web_socket_config\"]","x-ves-proto-message":"ves.io.schema.views.http_loadbalancer.RouteSimpleAdvancedOptions","properties":{"app_firewall":{"$ref":"#/components/schemas/schemaviewsObjectRefType"},"bot_defense_javascript_injection":{"$ref":"#/components/schemas/routeBotDefenseJavascriptInjectionType"},"buffer_policy":{"$ref":"#/components/schemas/schemaBufferConfigType"},"common_buffering":{"$ref":"#/components/schemas/ioschemaEmpty"},"common_hash_policy":{"$ref":"#/components/schemas/ioschemaEmpty"},"cors_policy":{"$ref":"#/components/schemas/schemaCorsPolicy"},"csrf_policy":{"$ref":"#/components/schemas/schemaCsrfPolicy"},"default_retry_policy":{"$ref":"#/components/schemas/ioschemaEmpty"},"disable_location_add":{"type":"boolean","description":" disables append of x-volterra-location = <re-site-name> at route level, if it is configured at\n virtual-host level. This configuration is ignored on CE sites.\n\nExample: ` true`","title":"disable_location_add","format":"boolean","x-displayname":"Disable Location Addition"},"disable_mirroring":{"$ref":"#/components/schemas/ioschemaEmpty"},"disable_prefix_rewrite":{"$ref":"#/components/schemas/ioschemaEmpty"},"disable_spdy":{"$ref":"#/components/schemas/ioschemaEmpty"},"disable_waf":{"$ref":"#/components/schemas/ioschemaEmpty"},"disable_web_socket_config":{"$ref":"#/components/schemas/ioschemaEmpty"},"do_not_retract_cluster":{"$ref":"#/components/schemas/ioschemaEmpty"},"enable_spdy":{"$ref":"#/components/schemas/ioschemaEmpty"},"endpoint_subsets":{"type":"object","description":" Upstream origin pool may be configured to divide its origin servers into subsets based on metadata\n attached to the origin servers. Routes may then specify the metadata that a endpoint must match in\n order to be selected by the load balancer\n\n For origin servers which are discovered in K8S or Consul cluster, the label of the service is merged with\n endpoint's labels. In case of Consul, the label is derived from the \"Tag\" field.\n For labels that are common between configured endpoint and discovered service, labels from discovered service\n takes precedence.\n\n List of key-value pairs that will be used as matching metadata. Only those origin servers of\n upstream origin pool which match this metadata will be selected for load balancing\n\nExample: ` \"value\"`\n\nValidation Rules:\n ves.io.schema.rules.map.max_pairs: 16\n","title":"Origin Servers Subset","x-displayname":"Origin Servers Subsets","x-ves-example":"value","x-ves-validation-rules":{"ves.io.schema.rules.map.max_pairs":"16"}},"inherited_bot_defense_javascript_injection":{"$ref":"#/components/schemas/ioschemaEmpty"},"inherited_waf":{"$ref":"#/components/schemas/ioschemaEmpty"},"inherited_waf_exclusion":{"$ref":"#/components/schemas/ioschemaEmpty"},"mirror_policy":{"$ref":"#/components/schemas/viewshttp_loadbalancerMirrorPolicyType"},"no_retry_policy":{"$ref":"#/components/schemas/ioschemaEmpty"},"prefix_rewrite":{"type":"string","description":"Exclusive with [disable_prefix_rewrite regex_rewrite]\n prefix_rewrite indicates that during forwarding, the matched prefix (or path) should be swapped\n with its value. When using regex path matching, the entire path (not including\n the query string) will be swapped with this value.\n\nExample: ` \"/\"`\n\nValidation Rules:\n ves.io.schema.rules.string.max_len: 256\n","title":"prefix_rewrite","maxLength":256,"x-displayname":"Enable Prefix Rewrite","x-ves-example":"/","x-ves-validation-rules":{"ves.io.schema.rules.string.max_len":"256"}},"priority":{"$ref":"#/components/schemas/schemaRoutingPriority"},"regex_rewrite":{"$ref":"#/components/schemas/schemaRegexMatchRewrite"},"request_cookies_to_add":{"type":"array","description":" Cookies are key-value pairs to be added to HTTP request being routed towards upstream.\n Cookies specified at this level are applied after cookies 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":"Cookies to add in request","maxItems":32,"items":{"$ref":"#/components/schemas/schemaCookieValueOption"},"x-displayname":"Add Cookies in Cookie Header","x-ves-validation-rules":{"ves.io.schema.rules.repeated.max_items":"32","ves.io.schema.rules.repeated.unique":"true"}},"request_cookies_to_remove":{"type":"array","description":" List of keys of Cookies to be removed from the HTTP request being sent towards upstream.\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.max_items: 32\n ves.io.schema.rules.repeated.unique: true\n","title":"Cookies to be removed from request","maxItems":32,"items":{"type":"string","minLength":1,"maxLength":256},"x-displayname":"Remove Cookies from Cookie Header","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.max_items":"32","ves.io.schema.rules.repeated.unique":"true"}},"request_headers_to_add":{"type":"array","description":" Headers are key-value pairs to be added to HTTP request being routed towards upstream.\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 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.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 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.max_items":"32","ves.io.schema.rules.repeated.unique":"true"}},"response_cookies_to_add":{"type":"array","description":" Cookies are name-value pairs along with optional attribute parameters to be added to HTTP response being sent towards downstream.\n Cookies specified at this level are applied after cookies 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":"Cookies to add in set-cookie header in response","maxItems":32,"items":{"$ref":"#/components/schemas/schemaSetCookieValueOption"},"x-displayname":"Add Set-Cookie Headers","x-ves-validation-rules":{"ves.io.schema.rules.repeated.max_items":"32","ves.io.schema.rules.repeated.unique":"true"}},"response_cookies_to_remove":{"type":"array","description":" List of name of Cookies to be removed from the HTTP response being sent towards downstream. Entire set-cookie header will be removed\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.max_items: 32\n ves.io.schema.rules.repeated.unique: true\n","title":"Cookies to be removed from response","maxItems":32,"items":{"type":"string","minLength":1,"maxLength":256},"x-displayname":"Remove Cookies from Set-Cookie Headers","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.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\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.max_bytes: 256\n ves.io.schema.rules.repeated.items.string.min_bytes: 1\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","minLength":1,"maxLength":256},"x-displayname":"Remove Response 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.max_items":"32","ves.io.schema.rules.repeated.unique":"true"}},"retract_cluster":{"$ref":"#/components/schemas/ioschemaEmpty"},"retry_policy":{"$ref":"#/components/schemas/schemaRetryPolicyType"},"specific_hash_policy":{"$ref":"#/components/schemas/http_loadbalancerHashPolicyListType"},"timeout":{"type":"integer","description":" The timeout for the route including all retries, in milliseconds.\n Should be set to a high value or 0 (infinite timeout) for server-side streaming.\n\nExample: ` \"2000\"`\n\nValidation Rules:\n ves.io.schema.rules.uint32.gte: 0\n ves.io.schema.rules.uint32.lte: 600000\n","title":"timeout","format":"int64","x-displayname":"Timeout","x-ves-example":"2000","x-ves-validation-rules":{"ves.io.schema.rules.uint32.gte":"0","ves.io.schema.rules.uint32.lte":"600000"}},"waf_exclusion_policy":{"$ref":"#/components/schemas/schemaviewsObjectRefType"},"web_socket_config":{"$ref":"#/components/schemas/routeWebsocketConfigType"}}},"http_loadbalancerRouteTypeCustomRoute":{"type":"object","description":"A custom route uses a route object created outside of this view.","title":"RouteTypeCustomRoute","x-displayname":"Custom Route Object","x-ves-proto-message":"ves.io.schema.views.http_loadbalancer.RouteTypeCustomRoute","properties":{"route_ref":{"$ref":"#/components/schemas/schemaviewsObjectRefType"}}},"http_loadbalancerRouteTypeDirectResponse":{"type":"object","description":"A direct response route matches on path, incoming header, incoming port and/or HTTP method\nand responds directly to the matching traffic","title":"RouteTypeDirectResponse","x-displayname":"Direct Response Route","x-ves-displayorder":"2,1,4,5,3","x-ves-proto-message":"ves.io.schema.views.http_loadbalancer.RouteTypeDirectResponse","properties":{"headers":{"type":"array","description":" List of (key, value) headers\n\nValidation Rules:\n ves.io.schema.rules.repeated.max_items: 16\n ves.io.schema.rules.repeated.unique: true\n","title":"headers","maxItems":16,"items":{"$ref":"#/components/schemas/ioschemaHeaderMatcherType"},"x-displayname":"Headers","x-ves-validation-rules":{"ves.io.schema.rules.repeated.max_items":"16","ves.io.schema.rules.repeated.unique":"true"}},"http_method":{"$ref":"#/components/schemas/schemaHttpMethod"},"incoming_port":{"$ref":"#/components/schemas/ioschemaPortMatcherType"},"path":{"$ref":"#/components/schemas/ioschemaPathMatcherType"},"route_direct_response":{"$ref":"#/components/schemas/routeRouteDirectResponse"}}},"http_loadbalancerRouteTypeRedirect":{"type":"object","description":"A redirect route matches on path, incoming header, incoming port and/or HTTP method\nand redirects the matching traffic to a different URL","title":"RouteTypeRedirect","x-displayname":"Redirect Route","x-ves-displayorder":"2,1,4,5,3","x-ves-proto-message":"ves.io.schema.views.http_loadbalancer.RouteTypeRedirect","properties":{"headers":{"type":"array","description":" List of (key, value) headers\n\nValidation Rules:\n ves.io.schema.rules.repeated.max_items: 16\n ves.io.schema.rules.repeated.unique: true\n","title":"headers","maxItems":16,"items":{"$ref":"#/components/schemas/ioschemaHeaderMatcherType"},"x-displayname":"Headers","x-ves-validation-rules":{"ves.io.schema.rules.repeated.max_items":"16","ves.io.schema.rules.repeated.unique":"true"}},"http_method":{"$ref":"#/components/schemas/schemaHttpMethod"},"incoming_port":{"$ref":"#/components/schemas/ioschemaPortMatcherType"},"path":{"$ref":"#/components/schemas/ioschemaPathMatcherType"},"route_redirect":{"$ref":"#/components/schemas/routeRouteRedirect"}}},"http_loadbalancerRouteTypeSimple":{"type":"object","description":"A simple route matches on path, incoming header, incoming port and/or HTTP method\nand forwards the matching traffic to the associated pools","title":"RouteTypeSimple","x-displayname":"Simple Route","x-ves-displayorder":"2,1,9,10,3,4,11,8","x-ves-oneof-field-host_rewrite_params":"[\"auto_host_rewrite\",\"disable_host_rewrite\",\"host_rewrite\"]","x-ves-proto-message":"ves.io.schema.views.http_loadbalancer.RouteTypeSimple","properties":{"advanced_options":{"$ref":"#/components/schemas/http_loadbalancerRouteSimpleAdvancedOptions"},"auto_host_rewrite":{"$ref":"#/components/schemas/ioschemaEmpty"},"disable_host_rewrite":{"$ref":"#/components/schemas/ioschemaEmpty"},"headers":{"type":"array","description":" List of (key, value) headers\n\nValidation Rules:\n ves.io.schema.rules.repeated.max_items: 16\n ves.io.schema.rules.repeated.unique: true\n","title":"headers","maxItems":16,"items":{"$ref":"#/components/schemas/ioschemaHeaderMatcherType"},"x-displayname":"Headers","x-ves-validation-rules":{"ves.io.schema.rules.repeated.max_items":"16","ves.io.schema.rules.repeated.unique":"true"}},"host_rewrite":{"type":"string","description":"Exclusive with [auto_host_rewrite disable_host_rewrite]\n Host header will be swapped with this value\n\nExample: ` \"one.volterra.com\"`\n\nValidation Rules:\n ves.io.schema.rules.string.hostname: true\n","title":"HostRewrite","x-displayname":"Host Rewrite Value","x-ves-example":"one.volterra.com","x-ves-validation-rules":{"ves.io.schema.rules.string.hostname":"true"}},"http_method":{"$ref":"#/components/schemas/schemaHttpMethod"},"incoming_port":{"$ref":"#/components/schemas/ioschemaPortMatcherType"},"origin_pools":{"type":"array","description":" Origin Pools for this route\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":"Origin Pools","minItems":1,"maxItems":16,"items":{"$ref":"#/components/schemas/viewsOriginPoolWithWeight"},"x-displayname":"Origin Pools","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"}},"path":{"$ref":"#/components/schemas/ioschemaPathMatcherType"},"query_params":{"$ref":"#/components/schemas/routeQueryParamsSimpleRoute"}}},"http_loadbalancerSensitiveDataDisclosureRules":{"type":"object","description":"Sensitive Data Exposure Rules allows specifying rules to mask sensitive data fields in API responses","title":"Sensitive Data Exposure Rules","x-displayname":"Sensitive Data Exposure Rules","x-ves-proto-message":"ves.io.schema.views.http_loadbalancer.SensitiveDataDisclosureRules","properties":{"sensitive_data_types_in_response":{"type":"array","description":" Sensitive Data Exposure Rules allows specifying rules to mask sensitive data fields in API responses\n\nValidation Rules:\n ves.io.schema.rules.repeated.max_items: 100\n ves.io.schema.rules.repeated.unique: true\n","title":"Sensitive Data Exposure Rules","maxItems":100,"items":{"$ref":"#/components/schemas/http_loadbalancerSensitiveDataTypes"},"x-displayname":"Sensitive Data Exposure Rules","x-ves-validation-rules":{"ves.io.schema.rules.repeated.max_items":"100","ves.io.schema.rules.repeated.unique":"true"}}}},"http_loadbalancerSensitiveDataTypes":{"type":"object","description":"Settings to mask sensitive data in request/response payload","title":"Sensitive Data Types","x-displayname":"Sensitive Data Types","x-ves-oneof-field-masking_mode_choice":"[\"mask\",\"report\"]","x-ves-oneof-field-type_condition_type_choice":"[\"api_endpoint\"]","x-ves-proto-message":"ves.io.schema.views.http_loadbalancer.SensitiveDataTypes","properties":{"api_endpoint":{"$ref":"#/components/schemas/common_wafApiEndpointDetails"},"body":{"$ref":"#/components/schemas/http_loadbalancerBodySectionMaskingOptions"},"mask":{"$ref":"#/components/schemas/ioschemaEmpty"},"report":{"$ref":"#/components/schemas/ioschemaEmpty"}}},"http_loadbalancerSetL7DDoSRPSThresholdReq":{"type":"object","description":"Request to set L7 DDoS RPS Threshold","title":"Set L7 DDoS RPS Threshold Request","x-displayname":"Set L7 DDoS RPS Threshold Request","x-ves-proto-message":"ves.io.schema.views.http_loadbalancer.SetL7DDoSRPSThresholdReq","properties":{"name":{"type":"string","description":" Name of the HTTP loadbalancer\n\nExample: ` \"lb_name\"`\n\nRequired: YES\n\nValidation Rules:\n ves.io.schema.rules.message.required: true\n","title":"Name","x-displayname":"Name","x-ves-example":"lb_name","x-ves-required":"true","x-ves-validation-rules":{"ves.io.schema.rules.message.required":"true"}},"namespace":{"type":"string","description":" Namespace scope of the 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"}},"rps_threshold":{"type":"integer","description":" The new RPS threshold to set\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: 20000\n","title":"RPS Threshold","format":"int64","x-displayname":"RPS Threshold","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":"20000"}}}},"http_loadbalancerSetL7DDoSRPSThresholdRsp":{"type":"object","description":"Response message for setting the RPS threshold","title":"SetL7DDoSRPSThresholdRsp","x-displayname":"Set RPS Threshold Response","x-ves-proto-message":"ves.io.schema.views.http_loadbalancer.SetL7DDoSRPSThresholdRsp"},"http_loadbalancerSingleLoadBalancerAppSetting":{"type":"object","description":"Specific settings for Machine learning analysis on this HTTP LB, independently from other LBs.","title":"Single load balancer app setting","x-displayname":"Single Load Balancer App Setting","x-ves-oneof-field-api_discovery_choice":"[\"disable_discovery\",\"enable_discovery\"]","x-ves-oneof-field-malicious_user_detection_choice":"[\"disable_malicious_user_detection\",\"enable_malicious_user_detection\"]","x-ves-proto-message":"ves.io.schema.views.http_loadbalancer.SingleLoadBalancerAppSetting","properties":{"disable_discovery":{"$ref":"#/components/schemas/ioschemaEmpty"},"disable_malicious_user_detection":{"$ref":"#/components/schemas/ioschemaEmpty"},"enable_discovery":{"$ref":"#/components/schemas/common_wafApiDiscoverySetting"},"enable_malicious_user_detection":{"$ref":"#/components/schemas/ioschemaEmpty"}}},"http_loadbalancerStatusObject":{"type":"object","description":"Most recently observed status of object","title":"StatusObject","x-displayname":"Status","x-ves-proto-message":"ves.io.schema.views.http_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":" HTTP 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"}}},"http_loadbalancerUpdateAPIEndpointsSchemasReq":{"type":"object","description":"Request shape for Update API Endpoints Schemas","title":"Update API Endpoints Schemas Request","x-displayname":"Update API Endpoints Schemas Request","x-ves-proto-message":"ves.io.schema.views.http_loadbalancer.UpdateAPIEndpointsSchemasReq","properties":{"api_endpoints_schema_updates":{"type":"array","description":" The list of API Inventory API endpoints schema updates.\n\nRequired: YES\n\nValidation Rules:\n ves.io.schema.rules.message.required: true\n ves.io.schema.rules.repeated.max_items: 100\n ves.io.schema.rules.repeated.min_items: 1\n","title":"API Endpoints Schema Updates","minItems":1,"maxItems":100,"items":{"$ref":"#/components/schemas/viewsApiEndpointWithSchema"},"x-displayname":"API Endpoints Schema Updates","x-ves-required":"true","x-ves-validation-rules":{"ves.io.schema.rules.message.required":"true","ves.io.schema.rules.repeated.max_items":"100","ves.io.schema.rules.repeated.min_items":"1"}},"name":{"type":"string","description":" The name of the HTTP Loadbalancer for the current request\n\nExample: ` \"name\"`","title":"Name","x-displayname":"Name","x-ves-example":"name"},"namespace":{"type":"string","description":" The namespace of the HTTP Loadbalancer for the current request\n\nExample: ` \"shared\"`","title":"Namespace","x-displayname":"Namespace","x-ves-example":"shared"}}},"http_loadbalancerUpdateAPIEndpointsSchemasResp":{"type":"object","description":"Response shape for Update API Endpoints With Newly Discovered Schema","title":"Update API Endpoints Schema Response","x-displayname":"Update API Endpoints Schema Response","x-ves-proto-message":"ves.io.schema.views.http_loadbalancer.UpdateAPIEndpointsSchemasResp","properties":{"updated_api_endpoints":{"type":"array","description":" The list of API endpoints which were successfully proceeded by the API Inventory request.","title":"Updated API Endpoints","items":{"$ref":"#/components/schemas/viewsApiOperation"},"x-displayname":"Updated API Endpoints"}}},"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"}}}},"ioschemaPortMatcherType":{"type":"object","description":"Port match of the request can be a range or a specific port","title":"PortMatcherType","x-displayname":"Port to Match","x-ves-displayorder":"3","x-ves-oneof-field-port_match":"[\"no_port_match\",\"port\",\"port_ranges\"]","x-ves-proto-message":"ves.io.schema.PortMatcherType","properties":{"no_port_match":{"$ref":"#/components/schemas/ioschemaEmpty"},"port":{"type":"integer","description":"Exclusive with [no_port_match port_ranges]\n Exact Port to match\n\nExample: ` \"6443\"`\n\nValidation Rules:\n ves.io.schema.rules.uint32.lte: 65535\n","title":"port","format":"int64","x-displayname":"Port","x-ves-example":"6443","x-ves-validation-rules":{"ves.io.schema.rules.uint32.lte":"65535"}},"port_ranges":{"type":"string","description":"Exclusive with [no_port_match port]\n Port range to match\n\nExample: ` \"8080-8191\"`\n\nValidation Rules:\n ves.io.schema.rules.string.max_len: 32\n ves.io.schema.rules.string.min_len: 1\n ves.io.schema.rules.string.port_range: true\n","title":"port_range","minLength":1,"maxLength":32,"x-displayname":"Port range","x-ves-example":"8080-8191","x-ves-validation-rules":{"ves.io.schema.rules.string.max_len":"32","ves.io.schema.rules.string.min_len":"1","ves.io.schema.rules.string.port_range":"true"}}}},"origin_poolOriginPoolAdvancedOptions":{"type":"object","description":"Configure Advanced options for origin pool","title":"Origin Pool Advanced Options","x-displayname":"Origin Pool Advanced Options","x-ves-oneof-field-circuit_breaker_choice":"[\"circuit_breaker\",\"default_circuit_breaker\",\"disable_circuit_breaker\"]","x-ves-oneof-field-http_protocol_type":"[\"auto_http_config\",\"http1_config\",\"http2_options\"]","x-ves-oneof-field-lb_source_ip_persistance_choice":"[\"disable_lb_source_ip_persistance\",\"enable_lb_source_ip_persistance\"]","x-ves-oneof-field-outlier_detection_choice":"[\"disable_outlier_detection\",\"outlier_detection\"]","x-ves-oneof-field-panic_threshold_type":"[\"no_panic_threshold\",\"panic_threshold\"]","x-ves-oneof-field-proxy_protocol_choice":"[\"disable_proxy_protocol\",\"proxy_protocol_v1\",\"proxy_protocol_v2\"]","x-ves-oneof-field-subset_choice":"[\"disable_subsets\",\"enable_subsets\"]","x-ves-proto-message":"ves.io.schema.views.origin_pool.OriginPoolAdvancedOptions","properties":{"auto_http_config":{"$ref":"#/components/schemas/ioschemaEmpty"},"circuit_breaker":{"$ref":"#/components/schemas/clusterCircuitBreaker"},"connection_timeout":{"type":"integer","description":" The timeout for new network connections to endpoints in the cluster.\n This is specified in milliseconds. The default value is 2 seconds\n\nExample: ` \"4000\"`\n\nValidation Rules:\n ves.io.schema.rules.uint32.lte: 1800000\n","title":"connection_timeout","format":"int64","x-displayname":"Connection Timeout","x-ves-example":"4000","x-ves-validation-rules":{"ves.io.schema.rules.uint32.lte":"1800000"}},"default_circuit_breaker":{"$ref":"#/components/schemas/ioschemaEmpty"},"disable_circuit_breaker":{"$ref":"#/components/schemas/ioschemaEmpty"},"disable_lb_source_ip_persistance":{"$ref":"#/components/schemas/ioschemaEmpty"},"disable_outlier_detection":{"$ref":"#/components/schemas/ioschemaEmpty"},"disable_proxy_protocol":{"$ref":"#/components/schemas/ioschemaEmpty"},"disable_subsets":{"$ref":"#/components/schemas/ioschemaEmpty"},"enable_lb_source_ip_persistance":{"$ref":"#/components/schemas/ioschemaEmpty"},"enable_subsets":{"$ref":"#/components/schemas/origin_poolOriginPoolSubsets"},"http1_config":{"$ref":"#/components/schemas/schemaclusterHttp1ProtocolOptions"},"http2_options":{"$ref":"#/components/schemas/clusterHttp2ProtocolOptions"},"http_idle_timeout":{"type":"integer","description":" The idle timeout for upstream connection pool connections. The idle timeout is defined as the\n period in which there are no active requests. When the idle timeout is reached the connection\n will be closed. Note that request based timeouts mean that HTTP/2 PINGs will not keep the connection alive.\n This is specified in milliseconds. The default value is 5 minutes.\n\nExample: ` \"60000\"`\n\nValidation Rules:\n ves.io.schema.rules.uint32.lte: 600000\n","title":"http_idle_timeout","format":"int64","x-displayname":"HTTP Idle Timeout","x-ves-example":"60000","x-ves-validation-rules":{"ves.io.schema.rules.uint32.lte":"600000"}},"no_panic_threshold":{"$ref":"#/components/schemas/ioschemaEmpty"},"outlier_detection":{"$ref":"#/components/schemas/clusterOutlierDetectionType"},"panic_threshold":{"type":"integer","description":"Exclusive with [no_panic_threshold]\n x-example:\"25\"\n Configure a threshold (percentage of unhealthy endpoints) below which\n all endpoints will be considered for load balancing ignoring its health status.\n\nValidation Rules:\n ves.io.schema.rules.uint32.lte: 100\n","title":"Panic threshold","format":"int64","x-displayname":"Panic threshold","x-ves-validation-rules":{"ves.io.schema.rules.uint32.lte":"100"}},"proxy_protocol_v1":{"$ref":"#/components/schemas/ioschemaEmpty"},"proxy_protocol_v2":{"$ref":"#/components/schemas/ioschemaEmpty"}}},"origin_poolOriginPoolDefaultSubset":{"type":"object","description":"Default Subset definition","title":"Origin Pool Default Subset","x-displayname":"Origin Pool Default Subset","x-ves-proto-message":"ves.io.schema.views.origin_pool.OriginPoolDefaultSubset","properties":{"default_subset":{"type":"object","description":" List of key-value pairs that define default subset.\n which gets used when route specifies no metadata or no subset matching the metadata exists.\n\nExample: ` \"key:value\"`\n\nValidation Rules:\n ves.io.schema.rules.map.max_pairs: 32\n","title":"default_subset","x-displayname":"Default Subset for Origin Pool","x-ves-example":"key:value","x-ves-validation-rules":{"ves.io.schema.rules.map.max_pairs":"32"}}}},"origin_poolOriginPoolSubsets":{"type":"object","description":"Configure subset options for origin pool","title":"Origin Pool Subset Options","x-displayname":"Origin Pool Subset Options","x-ves-oneof-field-fallback_policy_choice":"[\"any_endpoint\",\"default_subset\",\"fail_request\"]","x-ves-proto-message":"ves.io.schema.views.origin_pool.OriginPoolSubsets","properties":{"any_endpoint":{"$ref":"#/components/schemas/ioschemaEmpty"},"default_subset":{"$ref":"#/components/schemas/origin_poolOriginPoolDefaultSubset"},"endpoint_subsets":{"type":"array","description":" List of subset class. Subsets class is defined using list of keys. Every unique combination of values of these keys form a subset withing the class.\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":"Origin Server Subsets Classes","maxItems":32,"items":{"$ref":"#/components/schemas/clusterEndpointSubsetSelectorType"},"x-displayname":"Origin Server Subsets Classes","x-ves-required":"true","x-ves-validation-rules":{"ves.io.schema.rules.message.required":"true","ves.io.schema.rules.repeated.max_items":"32"}},"fail_request":{"$ref":"#/components/schemas/ioschemaEmpty"}}},"origin_poolOriginServerCBIPService":{"type":"object","description":"Specify origin server with Classic BIG-IP Service (Virtual Server)","title":"OriginServerCBIPService","x-displayname":"Discovered Classic BIG-IP Service Name","x-ves-displayorder":"1","x-ves-proto-message":"ves.io.schema.views.origin_pool.OriginServerCBIPService","properties":{"service_name":{"type":"string","description":" Name of the discovered Classic BIG-IP virtual server to be used as origin.\n\nExample: ` \"cbip-vs1-dev\"`\n\nRequired: YES\n\nValidation Rules:\n ves.io.schema.rules.message.required: true\n","title":"Service Name","x-displayname":"Service Name","x-ves-example":"cbip-vs1-dev","x-ves-required":"true","x-ves-validation-rules":{"ves.io.schema.rules.message.required":"true"}}}},"origin_poolOriginServerConsulService":{"type":"object","description":"Specify origin server with Hashi Corp Consul service name and site information","title":"OriginServerConsulService","x-displayname":"Consul Service Name on given Sites","x-ves-displayorder":"1,2,3","x-ves-oneof-field-network_choice":"[\"inside_network\",\"outside_network\"]","x-ves-proto-message":"ves.io.schema.views.origin_pool.OriginServerConsulService","properties":{"inside_network":{"$ref":"#/components/schemas/ioschemaEmpty"},"outside_network":{"$ref":"#/components/schemas/ioschemaEmpty"},"service_name":{"type":"string","description":" Consul service name of this origin server will be listed, including cluster-id.\n The format is servicename:cluster-id.\n\nExample: ` \"matching:production\"`\n\nRequired: YES\n\nValidation Rules:\n ves.io.schema.rules.message.required: true\n","title":"Service Name","x-displayname":"Service Name","x-ves-example":"matching:production","x-ves-required":"true","x-ves-validation-rules":{"ves.io.schema.rules.message.required":"true"}},"site_locator":{"$ref":"#/components/schemas/viewsSiteLocator"},"snat_pool":{"$ref":"#/components/schemas/viewsSnatPoolConfiguration"}}},"origin_poolOriginServerCustomEndpoint":{"type":"object","description":"Specify origin server with a reference to endpoint object","title":"OriginServerCustomEndpoint","x-displayname":"Custom Endpoint Object for Origin Server","x-ves-displayorder":"1","x-ves-proto-message":"ves.io.schema.views.origin_pool.OriginServerCustomEndpoint","properties":{"endpoint":{"$ref":"#/components/schemas/schemaviewsObjectRefType"}}},"origin_poolOriginServerK8SService":{"type":"object","description":"Specify origin server with K8s service name and site information","title":"OriginServerK8SService","x-displayname":"K8s Service Name on given Sites","x-ves-displayorder":"10,12,2,3","x-ves-oneof-field-network_choice":"[\"inside_network\",\"outside_network\",\"vk8s_networks\"]","x-ves-oneof-field-service_info":"[\"service_name\"]","x-ves-proto-message":"ves.io.schema.views.origin_pool.OriginServerK8SService","properties":{"inside_network":{"$ref":"#/components/schemas/ioschemaEmpty"},"outside_network":{"$ref":"#/components/schemas/ioschemaEmpty"},"protocol":{"$ref":"#/components/schemas/origin_poolProtocolType"},"service_name":{"type":"string","description":"Exclusive with []\n K8s service name of the origin server will be listed, including the namespace and cluster-id.\n For vK8s services, you need to enter a string with the format servicename.namespace:cluster-id. If the servicename is \"frontend\",\n namespace is \"speedtest\" and cluster-id is \"prod\", then you will enter \"frontend.speedtest:prod\".\n Both namespace and cluster-id are optional.\n\nExample: ` \"matching.default:production\"`\n\nValidation Rules:\n ves.io.schema.rules.string.ves_service_namespace_name: true\n","title":"Service Name","x-displayname":"Service Name","x-ves-example":"matching.default:production","x-ves-validation-rules":{"ves.io.schema.rules.string.ves_service_namespace_name":"true"}},"site_locator":{"$ref":"#/components/schemas/viewsSiteLocator"},"snat_pool":{"$ref":"#/components/schemas/viewsSnatPoolConfiguration"},"vk8s_networks":{"$ref":"#/components/schemas/ioschemaEmpty"}}},"origin_poolOriginServerPrivateIP":{"type":"object","description":"Specify origin server with private or public IP address and site information","title":"OriginServerPrivateIP","x-displayname":"IP address on given Sites","x-ves-displayorder":"10,2,3","x-ves-oneof-field-network_choice":"[\"inside_network\",\"outside_network\",\"segment\"]","x-ves-oneof-field-private_ip_choice":"[\"ip\"]","x-ves-proto-message":"ves.io.schema.views.origin_pool.OriginServerPrivateIP","properties":{"inside_network":{"$ref":"#/components/schemas/ioschemaEmpty"},"ip":{"type":"string","description":"Exclusive with []\n Private IPV4 address\n\nExample: ` \"8.8.8.8\"`\n\nValidation Rules:\n ves.io.schema.rules.string.ipv4: true\n","title":"IP","x-displayname":"IP","x-ves-example":"8.8.8.8","x-ves-validation-rules":{"ves.io.schema.rules.string.ipv4":"true"}},"outside_network":{"$ref":"#/components/schemas/ioschemaEmpty"},"segment":{"$ref":"#/components/schemas/schemaviewsObjectRefType"},"site_locator":{"$ref":"#/components/schemas/viewsSiteLocator"},"snat_pool":{"$ref":"#/components/schemas/viewsSnatPoolConfiguration"}}},"origin_poolOriginServerPrivateName":{"type":"object","description":"Specify origin server with private or public DNS name and site information","title":"OriginServerPrivateName","x-displayname":"DNS Name on given Sites","x-ves-displayorder":"1,6,2,3","x-ves-oneof-field-network_choice":"[\"inside_network\",\"outside_network\",\"segment\"]","x-ves-proto-message":"ves.io.schema.views.origin_pool.OriginServerPrivateName","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","title":"DNS name","x-displayname":"DNS Name","x-ves-example":"value","x-ves-required":"true","x-ves-validation-rules":{"ves.io.schema.rules.message.required":"true"}},"inside_network":{"$ref":"#/components/schemas/ioschemaEmpty"},"outside_network":{"$ref":"#/components/schemas/ioschemaEmpty"},"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"}},"segment":{"$ref":"#/components/schemas/schemaviewsObjectRefType"},"site_locator":{"$ref":"#/components/schemas/viewsSiteLocator"},"snat_pool":{"$ref":"#/components/schemas/viewsSnatPoolConfiguration"}}},"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_poolOriginServerType":{"type":"object","description":"Various options to specify origin server","title":"OriginServerType","x-displayname":"Origin Server","x-ves-oneof-field-choice":"[\"cbip_service\",\"consul_service\",\"custom_endpoint_object\",\"k8s_service\",\"private_ip\",\"private_name\",\"public_ip\",\"public_name\",\"vn_private_ip\",\"vn_private_name\"]","x-ves-proto-message":"ves.io.schema.views.origin_pool.OriginServerType","properties":{"cbip_service":{"$ref":"#/components/schemas/origin_poolOriginServerCBIPService"},"consul_service":{"$ref":"#/components/schemas/origin_poolOriginServerConsulService"},"custom_endpoint_object":{"$ref":"#/components/schemas/origin_poolOriginServerCustomEndpoint"},"k8s_service":{"$ref":"#/components/schemas/origin_poolOriginServerK8SService"},"labels":{"type":"object","description":" Add Labels for this origin server, these labels can be used to form subset.\n\nExample: ` \"value\"`","title":"Origin Server Labels","x-displayname":"Origin Server Labels","x-ves-example":"value"},"private_ip":{"$ref":"#/components/schemas/origin_poolOriginServerPrivateIP"},"private_name":{"$ref":"#/components/schemas/origin_poolOriginServerPrivateName"},"public_ip":{"$ref":"#/components/schemas/origin_poolOriginServerPublicIP"},"public_name":{"$ref":"#/components/schemas/origin_poolOriginServerPublicName"},"vn_private_ip":{"$ref":"#/components/schemas/origin_poolOriginServerVirtualNetworkIP"},"vn_private_name":{"$ref":"#/components/schemas/origin_poolOriginServerVirtualNetworkName"}}},"origin_poolOriginServerVirtualNetworkIP":{"type":"object","description":"Specify origin server with IP on Virtual Network","title":"OriginServerVirtualNetworkIP","x-displayname":"IP address Virtual Network","x-ves-displayorder":"10,2","x-ves-oneof-field-virtual_network_ip_choice":"[\"ip\"]","x-ves-proto-message":"ves.io.schema.views.origin_pool.OriginServerVirtualNetworkIP","properties":{"ip":{"type":"string","description":"Exclusive with []\n IPV4 address\n\nExample: ` \"1.1.1.1\"`\n\nValidation Rules:\n ves.io.schema.rules.string.ipv4: true\n","title":"IPV4","x-displayname":"IPV4","x-ves-example":"1.1.1.1","x-ves-validation-rules":{"ves.io.schema.rules.string.ipv4":"true"}},"virtual_network":{"$ref":"#/components/schemas/schemaviewsObjectRefType"}}},"origin_poolOriginServerVirtualNetworkName":{"type":"object","description":"Specify origin server with DNS name on Virtual Network","title":"OriginServerVirtualNetworkName","x-displayname":"DNS Name on Virtual Network","x-ves-displayorder":"1,2","x-ves-proto-message":"ves.io.schema.views.origin_pool.OriginServerVirtualNetworkName","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","title":"DNS name","x-displayname":"DNS Name","x-ves-example":"value","x-ves-required":"true","x-ves-validation-rules":{"ves.io.schema.rules.message.required":"true"}},"private_network":{"$ref":"#/components/schemas/schemaviewsObjectRefType"}}},"origin_poolProtocolType":{"type":"string","description":"Type of protocol\n\n - PROTOCOL_TCP: TCP\n\n - PROTOCOL_UDP: UDP\n","title":"Protocol Type","enum":["PROTOCOL_TCP","PROTOCOL_UDP"],"default":"PROTOCOL_TCP","x-displayname":"Protocol Type","x-ves-proto-enum":"ves.io.schema.views.origin_pool.ProtocolType"},"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"},"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"}}}},"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"}}}},"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"}}}},"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"}}}},"policyOriginServerSubsetRule":{"type":"object","description":"\"Origin Server Subset rule specifies a simple set of match conditions to be matched to select a list of origin server key/val pairs","title":"OriginServerSubsetRule","x-displayname":"Origin Server Subset Rule","x-ves-displayorder":"1,9,4,25,5,30,33,3","x-ves-oneof-field-asn_choice":"[\"any_asn\",\"asn_list\",\"asn_matcher\"]","x-ves-oneof-field-ip_choice":"[\"any_ip\",\"ip_matcher\",\"ip_prefix_list\"]","x-ves-oneof-field-selector_choice":"[\"client_selector\",\"none\"]","x-ves-proto-message":"ves.io.schema.policy.OriginServerSubsetRule","properties":{"any_asn":{"$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"},"country_codes":{"type":"array","description":" List of Country Codes\n\nExample: ` \"IN, DE\"`\n\nValidation Rules:\n ves.io.schema.rules.repeated.max_items: 64\n ves.io.schema.rules.repeated.unique: true\n","title":"country codes","maxItems":64,"items":{"$ref":"#/components/schemas/policyCountryCode"},"x-displayname":"Country Codes List","x-ves-example":"IN, DE","x-ves-validation-rules":{"ves.io.schema.rules.repeated.max_items":"64","ves.io.schema.rules.repeated.unique":"true"}},"ip_matcher":{"$ref":"#/components/schemas/policyIpMatcherType"},"ip_prefix_list":{"$ref":"#/components/schemas/policyPrefixMatchList"},"metadata":{"$ref":"#/components/schemas/schemaMessageMetaType"},"none":{"$ref":"#/components/schemas/ioschemaEmpty"},"origin_server_subsets_action":{"type":"object","description":" Add labels to select one or more origin servers.\n Note: The pre-requisite settings to be configured in the origin pool are:\n 1. Add labels to origin servers\n 2. Enable subset load balancing in the Origin Server Subsets section and configure keys in origin server subsets classes\n\nExample: ` \"value\"`\n\nRequired: YES\n\nValidation Rules:\n ves.io.schema.rules.map.keys.string.max_len: 128\n ves.io.schema.rules.map.keys.string.min_len: 1\n ves.io.schema.rules.map.max_pairs: 16\n ves.io.schema.rules.map.values.string.max_len: 128\n ves.io.schema.rules.map.values.string.min_len: 1\n ves.io.schema.rules.message.required: true\n","title":"Origin Server Labels Action","x-displayname":"Action","x-ves-example":"value","x-ves-required":"true","x-ves-validation-rules":{"ves.io.schema.rules.map.keys.string.max_len":"128","ves.io.schema.rules.map.keys.string.min_len":"1","ves.io.schema.rules.map.max_pairs":"16","ves.io.schema.rules.map.values.string.max_len":"128","ves.io.schema.rules.map.values.string.min_len":"1","ves.io.schema.rules.message.required":"true"}},"re_name_list":{"type":"array","description":" List of RE names for match\n\nExample: ` \"ves-io-re01\"`\n\nValidation Rules:\n ves.io.schema.rules.repeated.max_items: 32\n ves.io.schema.rules.repeated.unique: true\n ves.io.schema.rules.string.max_len: 64\n","title":"RE Name list","maxItems":32,"items":{"type":"string","maxLength":64},"x-displayname":"RE Names","x-ves-example":"ves-io-re01","x-ves-validation-rules":{"ves.io.schema.rules.repeated.max_items":"32","ves.io.schema.rules.repeated.unique":"true","ves.io.schema.rules.string.max_len":"64"}}}},"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"}}},"protobufNullValue":{"type":"string","description":"`NullValue` is a singleton enumeration to represent the null value for the\n`Value` type union.\n\n The JSON representation for `NullValue` is JSON `null`.\n\n - NULL_VALUE: Null value.","enum":["NULL_VALUE"],"default":"NULL_VALUE"},"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"}}}},"routeBotDefenseJavascriptInjectionType":{"type":"object","description":"Bot Defense Javascript Injection Configuration for inline bot defense deployments","title":"BotDefenseJavascriptInjectionType","x-displayname":"Bot Defense Javascript Injection Configuration for inline deployments","x-ves-proto-message":"ves.io.schema.route.BotDefenseJavascriptInjectionType","properties":{"javascript_location":{"$ref":"#/components/schemas/schemarouteJavaScriptLocation"},"javascript_tags":{"type":"array","description":" Select Add item to configure your javascript tag. If adding both Bot Adv and Fraud, the Bot Javascript should be added first.\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.min_items: 1\n ves.io.schema.rules.repeated.unique: true\n","title":"javascript_tags","minItems":1,"maxItems":5,"items":{"$ref":"#/components/schemas/routeJavaScriptTag"},"x-displayname":"JavaScript Tags","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.min_items":"1","ves.io.schema.rules.repeated.unique":"true"}}}},"routeCookieForHashing":{"type":"object","description":"Two types of cookie affinity:\n\n1. Passive. Takes a cookie that's present in the cookies header and\n hashes on its value.\n\n2. Generated. Generates and sets a cookie with an expiration (TTL)\n on the first request from the client in its response to the client,\n based on the endpoint the request gets sent to. The client then\n presents this on the next and all subsequent requests. The hash of\n this is sufficient to ensure these requests get sent to the same\n endpoint. The cookie is generated by hashing the source and\n destination ports and addresses so that multiple independent HTTP2\n streams on the same connection will independently receive the same\n cookie, even if they arrive simultaneously.","title":"Cookie for hashing","x-displayname":"Hashing using Cookie","x-ves-oneof-field-httponly":"[\"add_httponly\",\"ignore_httponly\"]","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.route.CookieForHashing","properties":{"add_httponly":{"$ref":"#/components/schemas/ioschemaEmpty"},"add_secure":{"$ref":"#/components/schemas/ioschemaEmpty"},"ignore_httponly":{"$ref":"#/components/schemas/ioschemaEmpty"},"ignore_samesite":{"$ref":"#/components/schemas/ioschemaEmpty"},"ignore_secure":{"$ref":"#/components/schemas/ioschemaEmpty"},"name":{"type":"string","description":" The name of the cookie that will be used to obtain the hash key. If the\n cookie is not present and TTL below is not set, no hash will be\n produced\n\nExample: ` \"userid\"`\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.min_len: 1\n","title":"name","minLength":1,"maxLength":256,"x-displayname":"Name","x-ves-example":"userid","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.min_len":"1"}},"path":{"type":"string","description":" The name of the path for the cookie. If no path is specified here, no path\n will be set for the cookie\n\nExample: ` \"/Users/userid/browser/cookies\"`","title":"path","x-displayname":"Path","x-ves-example":"/Users/userid/browser/cookies"},"samesite_lax":{"$ref":"#/components/schemas/ioschemaEmpty"},"samesite_none":{"$ref":"#/components/schemas/ioschemaEmpty"},"samesite_strict":{"$ref":"#/components/schemas/ioschemaEmpty"},"ttl":{"type":"integer","description":" If specified, a cookie with the TTL will be generated if the cookie is\n not present. If the TTL is present and zero, the generated cookie will\n be a session cookie. TTL value is in milliseconds\n\nExample: ` \"5000\"`","title":"ttl","format":"int64","x-displayname":"TTL","x-ves-example":"5000"}}},"routeHashPolicyType":{"type":"object","description":"HashPolicyType specifies the field of the incoming request that will be used for\ngenerating hash key. When multiple hash policies are configured, this can also specify\nif the current hash policy is terminal policy or not.","title":"HashPolicyType","x-displayname":"Hash Policy","x-ves-oneof-field-policy_specifier":"[\"cookie\",\"header_name\",\"source_ip\"]","x-ves-proto-message":"ves.io.schema.route.HashPolicyType","properties":{"cookie":{"$ref":"#/components/schemas/routeCookieForHashing"},"header_name":{"type":"string","description":"Exclusive with [cookie source_ip]\n The name or key of the request header that will be used to obtain the hash key\n\nExample: ` \"host\"`\n\nValidation Rules:\n ves.io.schema.rules.string.max_len: 256\n ves.io.schema.rules.string.min_len: 1\n","title":"Header","minLength":1,"maxLength":256,"x-displayname":"Header Name","x-ves-example":"host","x-ves-validation-rules":{"ves.io.schema.rules.string.max_len":"256","ves.io.schema.rules.string.min_len":"1"}},"source_ip":{"type":"boolean","description":"Exclusive with [cookie header_name]\n Hash based on source IP address\n\nExample: ` true`","title":"Source IP","format":"boolean","x-displayname":"Source IP"},"terminal":{"type":"boolean","description":" Specify if its a terminal policy\n\nExample: ` true`","title":"terminal","format":"boolean","x-displayname":"Terminal"}}},"routeJavaScriptTag":{"type":"object","description":"JavaScript URL and attributes","title":"JavaScriptTag","x-displayname":"JavaScript Tag","x-ves-proto-message":"ves.io.schema.route.JavaScriptTag","properties":{"javascript_url":{"type":"string","description":" Please enter the full URL (include domain and path), or relative path.\n\nExample: ` \"https://www.example.com/login/common.js?single\"`\n\nRequired: YES\n\nValidation Rules:\n ves.io.schema.rules.message.required: true\n ves.io.schema.rules.string.max_bytes: 2048\n ves.io.schema.rules.string.min_bytes: 1\n","title":"JavaScriptURL","minLength":1,"maxLength":2048,"x-displayname":"URL","x-ves-example":"https://www.example.com/login/common.js?single","x-ves-required":"true","x-ves-validation-rules":{"ves.io.schema.rules.message.required":"true","ves.io.schema.rules.string.max_bytes":"2048","ves.io.schema.rules.string.min_bytes":"1"}},"tag_attributes":{"type":"array","description":" Add the tag attributes you want to include in your Javascript tag.\n\nValidation Rules:\n ves.io.schema.rules.repeated.max_items: 9\n ves.io.schema.rules.repeated.unique: true\n","title":"TagAttributes","maxItems":9,"items":{"$ref":"#/components/schemas/routeTagAttribute"},"x-displayname":"Tag Attributes","x-ves-validation-rules":{"ves.io.schema.rules.repeated.max_items":"9","ves.io.schema.rules.repeated.unique":"true"}}}},"routeQueryParamsSimpleRoute":{"type":"object","description":"Handling of incoming query parameters in simple route.","title":"query_params","x-displayname":"Query Parameters","x-ves-oneof-field-query_params":"[\"remove_all_params\",\"replace_params\",\"retain_all_params\"]","x-ves-proto-message":"ves.io.schema.route.QueryParamsSimpleRoute","properties":{"remove_all_params":{"$ref":"#/components/schemas/ioschemaEmpty"},"replace_params":{"type":"string","description":"Exclusive with [remove_all_params retain_all_params]\n\n\nValidation Rules:\n ves.io.schema.rules.string.max_len: 256\n ves.io.schema.rules.string.min_len: 1\n","title":"Replace All Params","minLength":1,"maxLength":256,"x-displayname":"Replace All Parameters","x-ves-validation-rules":{"ves.io.schema.rules.string.max_len":"256","ves.io.schema.rules.string.min_len":"1"}},"retain_all_params":{"$ref":"#/components/schemas/ioschemaEmpty"}}},"routeRouteDirectResponse":{"type":"object","description":"Send this direct response in case of route match action is direct response","title":"RouteDirectResponse","x-displayname":"Direct Response","x-ves-proto-message":"ves.io.schema.route.RouteDirectResponse","properties":{"response_body_encoded":{"type":"string","description":" Response body to send. Currently supported URL schemes is string:///\n for which message should be encoded in Base64 format.\n The message can be either plain text or html.\n E.g. \"<p> Access Denied </p>\". Base64 encoded string url for this is string:///PHA+IEFjY2VzcyBEZW5pZWQgPC9wPg==\n\nExample: ` \"OK\"`\n\nValidation Rules:\n ves.io.schema.rules.string.max_bytes: 65536\n ves.io.schema.rules.string.uri_ref: true\n","title":"response_body","maxLength":65536,"x-displayname":"Response Body","x-ves-example":"OK","x-ves-validation-rules":{"ves.io.schema.rules.string.max_bytes":"65536","ves.io.schema.rules.string.uri_ref":"true"}},"response_code":{"type":"integer","description":" response code to send\n\nExample: ` \"200\"`\n\nValidation Rules:\n ves.io.schema.rules.uint32.gte: 100\n ves.io.schema.rules.uint32.lte: 599\n","title":"response_code","format":"int64","x-displayname":"Response Code","x-ves-example":"200","x-ves-validation-rules":{"ves.io.schema.rules.uint32.gte":"100","ves.io.schema.rules.uint32.lte":"599"}}}},"routeRouteQueryParams":{"type":"object","description":"x-displayName: \"Query Parameters\"\nQuery params keys to strip while manipulating the HTTP request","title":"RouteQueryParams","properties":{"query_params":{"type":"array","description":"x-displayName: \"Query Parameters\"\nx-example: \"userid\"\nQuery params keys to strip while manipulating the HTTP request","title":"query_params","items":{"type":"string"}}}},"routeRouteRedirect":{"type":"object","description":"route redirect parameters when match action is redirect.","title":"RouteRedirect","x-displayname":"Redirect","x-ves-displayorder":"3,1,10,6,7","x-ves-oneof-field-query_params":"[\"remove_all_params\",\"replace_params\",\"retain_all_params\"]","x-ves-oneof-field-redirect_path_choice":"[\"path_redirect\",\"prefix_rewrite\"]","x-ves-proto-message":"ves.io.schema.route.RouteRedirect","properties":{"host_redirect":{"type":"string","description":" swap host part of incoming URL in redirect URL\n\nExample: ` \"one.ves.io\"`","title":"host_redirect","x-displayname":"Host","x-ves-example":"one.ves.io"},"path_redirect":{"type":"string","description":"Exclusive with [prefix_rewrite]\n swap path part of incoming URL in redirect URL\n\nExample: ` \"/api/register\"`\n\nValidation Rules:\n ves.io.schema.rules.string.http_path: true\n ves.io.schema.rules.string.max_len: 256\n","title":"path_redirect","maxLength":256,"x-displayname":"Path","x-ves-example":"/api/register","x-ves-validation-rules":{"ves.io.schema.rules.string.http_path":"true","ves.io.schema.rules.string.max_len":"256"}},"prefix_rewrite":{"type":"string","description":"Exclusive with [path_redirect]\n In Redirect response, the matched prefix (or path) should be swapped with this value.\n This option allows redirect URLs be dynamically created based on the request\n\nExample: ` \"/api/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_rewrite","maxLength":256,"x-displayname":"Prefix Rewrite","x-ves-example":"/api/register/","x-ves-validation-rules":{"ves.io.schema.rules.string.http_path":"true","ves.io.schema.rules.string.max_len":"256"}},"proto_redirect":{"type":"string","description":" swap protocol part of incoming URL in redirect URL\n The protocol can be swapped with either http or https\n When incoming-proto option is specified, swapping of protocol is not done.\n\nExample: ` \"https\"`\n\nValidation Rules:\n ves.io.schema.rules.string.in: [\\\"incoming-proto\\\",\\\"http\\\",\\\"https\\\"]\n","title":"proto_redirect","x-displayname":"Protocol","x-ves-example":"https","x-ves-validation-rules":{"ves.io.schema.rules.string.in":"[\\\"incoming-proto\\\",\\\"http\\\",\\\"https\\\"]"}},"remove_all_params":{"$ref":"#/components/schemas/ioschemaEmpty"},"replace_params":{"type":"string","description":"Exclusive with [remove_all_params retain_all_params]\n\n\nValidation Rules:\n ves.io.schema.rules.string.max_len: 256\n ves.io.schema.rules.string.min_len: 1\n","title":"Replace All Params","minLength":1,"maxLength":256,"x-displayname":"Replace All Parameters","x-ves-validation-rules":{"ves.io.schema.rules.string.max_len":"256","ves.io.schema.rules.string.min_len":"1"}},"response_code":{"type":"integer","description":" The HTTP status code to use in the redirect response.\n\nExample: ` \"303\"`\n\nValidation Rules:\n ves.io.schema.rules.uint32.lte: 599\n","title":"response_code","format":"int64","x-displayname":"Response Code","x-ves-example":"303","x-ves-validation-rules":{"ves.io.schema.rules.uint32.lte":"599"}},"retain_all_params":{"$ref":"#/components/schemas/ioschemaEmpty"}}},"routeTagAttribute":{"type":"object","description":"Attribute for JavaScript tag","title":"TagAttribute","x-displayname":"Tag Attribute","x-ves-proto-message":"ves.io.schema.route.TagAttribute","properties":{"javascript_tag":{"$ref":"#/components/schemas/routeTagAttributeName"},"tag_value":{"type":"string","description":" Add the tag attribute value.\n\nExample: ` \"_imp_apg_dip_\"`\n\nValidation Rules:\n ves.io.schema.rules.string.max_bytes: 1024\n","title":"TagValue","maxLength":1024,"x-displayname":"Value","x-ves-example":"_imp_apg_dip_","x-ves-validation-rules":{"ves.io.schema.rules.string.max_bytes":"1024"}}}},"routeTagAttributeName":{"type":"string","description":"Select from one of the predefined tag attributes.\n","title":"TagAttributeName","enum":["JS_ATTR_ID","JS_ATTR_CID","JS_ATTR_CN","JS_ATTR_API_DOMAIN","JS_ATTR_API_URL","JS_ATTR_API_PATH","JS_ATTR_ASYNC","JS_ATTR_DEFER"],"default":"JS_ATTR_ID","x-displayname":"Tag Attribute Name","x-ves-proto-enum":"ves.io.schema.route.TagAttributeName"},"routeWebsocketConfigType":{"type":"object","description":"Configuration to allow Websocket\n\nRequest headers of such upgrade looks like below\n 'connection', 'Upgrade'\n 'upgrade', 'websocket'\n\nWith configuration to allow websocket upgrade, ADC will produce following response\n 'HTTP/1.1 101 Switching Protocols\n 'Upgrade': 'websocket'\n 'Connection': 'Upgrade'","title":"WebsocketConfigType","x-displayname":"Websocket Configuration","x-ves-proto-message":"ves.io.schema.route.WebsocketConfigType","properties":{"use_websocket":{"type":"boolean","description":" Specifies that the HTTP client connection to this route is allowed to upgrade to\n a WebSocket connection\n\nExample: ` true`","title":"use_websocket","format":"boolean","x-displayname":"Use Websocket"}}},"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"},"schemaBufferConfigType":{"type":"object","description":"Some upstream applications are not capable of handling streamed data. This config\nenables buffering the entire request before sending to upstream application. We can\nspecify the maximum buffer size and buffer interval with this config.\n\nBuffering can be enabled and disabled at VirtualHost and Route levels\nRoute level buffer configuration takes precedence.","title":"BufferConfigType","x-displayname":"Buffer Configuration","x-ves-displayorder":"2,3,1","x-ves-proto-message":"ves.io.schema.BufferConfigType","properties":{"disabled":{"type":"boolean","description":" Disable buffering for a particular route. This is useful when virtual-host\n has buffering, but we need to disable it on a specific route.\n The value of this field is ignored for virtual-host","title":"disable","format":"boolean","x-displayname":"Disable"},"max_request_bytes":{"type":"integer","description":" The maximum request size that the filter will buffer before the connection\n manager will stop buffering and return a RequestEntityTooLarge (413) response.\n\nExample: ` \"2048\"`\n\nValidation Rules:\n ves.io.schema.rules.uint32.lte: 10485760\n","title":"max_request_bytes","format":"int64","x-displayname":"Max Request Bytes","x-ves-example":"2048","x-ves-validation-rules":{"ves.io.schema.rules.uint32.lte":"10485760"}}}},"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"}}},"schemaCookieValueOption":{"type":"object","description":"Cookie name and value for cookie header","title":"CookieValueOption","x-displayname":"Cookie Value Option","x-ves-oneof-field-value_choice":"[\"secret_value\",\"value\"]","x-ves-proto-message":"ves.io.schema.CookieValueOption","properties":{"name":{"type":"string","description":" Name of the cookie in Cookie header.\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":"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"}},"overwrite":{"type":"boolean","description":" Should the value be overwritten? If true, the value is overwritten to existing values.\n Default value is do not overwrite","title":"overwrite","format":"boolean","x-displayname":"Overwrite"},"secret_value":{"$ref":"#/components/schemas/schemaSecretType"},"value":{"type":"string","description":"Exclusive with [secret_value]\n Value of the Cookie 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"}}}},"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"}}},"schemaDenominatorType":{"type":"string","description":"Denominator used in fraction where sampling percentages are needed. example sampled requests\n\nUse hundred as denominator\nUse ten thousand as denominator\nUse million as denominator","title":"DenominatorType","enum":["HUNDRED","TEN_THOUSAND","MILLION"],"default":"HUNDRED","x-displayname":"Denominator","x-ves-proto-enum":"ves.io.schema.DenominatorType"},"schemaDomainMatcherType":{"type":"object","description":"Domain to be matched","title":"DomainMatcherType","x-displayname":"Domain to Match","x-ves-oneof-field-domain_matcher":"[\"any_domain\",\"domain\"]","x-ves-proto-message":"ves.io.schema.DomainMatcherType","properties":{"any_domain":{"$ref":"#/components/schemas/ioschemaEmpty"},"domain":{"$ref":"#/components/schemas/schemaDomainType"}}},"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"}}},"schemaFractionalPercent":{"type":"object","description":"Fraction used where sampling percentages are needed. example sampled requests","title":"FractionalPercent","x-displayname":"Fractional Percent","x-ves-displayorder":"1,2","x-ves-proto-message":"ves.io.schema.FractionalPercent","properties":{"denominator":{"$ref":"#/components/schemas/schemaDenominatorType"},"numerator":{"type":"integer","description":" sampled parts per denominator. If denominator was 10000, then value of 5 will be 5 in 10000\n\nExample: ` \"5\"`\n\nRequired: YES\n\nValidation Rules:\n ves.io.schema.rules.message.required: true\n","title":"numerator","format":"int64","x-displayname":"Numerator","x-ves-example":"5","x-ves-required":"true","x-ves-validation-rules":{"ves.io.schema.rules.message.required":"true"}}}},"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"}}}},"schemaHeaderTransformationType":{"type":"object","description":"Header Transformation options for HTTP/1.1 request/response headers","title":"HeaderTransformationType","x-displayname":"Header Transformation","x-ves-displayorder":"1","x-ves-oneof-field-header_transformation_choice":"[\"default_header_transformation\",\"legacy_header_transformation\",\"preserve_case_header_transformation\",\"proper_case_header_transformation\"]","x-ves-proto-message":"ves.io.schema.HeaderTransformationType","properties":{"default_header_transformation":{"$ref":"#/components/schemas/ioschemaEmpty"},"legacy_header_transformation":{"$ref":"#/components/schemas/ioschemaEmpty"},"preserve_case_header_transformation":{"$ref":"#/components/schemas/ioschemaEmpty"},"proper_case_header_transformation":{"$ref":"#/components/schemas/ioschemaEmpty"}}},"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"},"schemaRegexMatchRewrite":{"type":"object","description":"RegexMatchRewrite describes how to match a string and then produce a new string using a \nregular expression and a substitution string.","title":"RegexMatchRewrite","x-displayname":"Regex Match Rewrite","x-ves-proto-message":"ves.io.schema.RegexMatchRewrite","properties":{"pattern":{"type":"string","description":" The regular expression used to find portions of a string that should be replaced.\n\nExample: ` \"^/service/([^/]+)(/.*)$\"`\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":"Pattern","minLength":1,"maxLength":256,"x-displayname":"Pattern","x-ves-example":"^/service/([^/]+)(/.*)$","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"}},"substitution":{"type":"string","description":" The string that should be substituted into matching portions of the subject string during a \n substitution operation to produce a new string.\n\nExample: ` \"\\\\2/instance/\\\\1\"`\n\nValidation Rules:\n ves.io.schema.rules.string.max_len: 256\n","title":"Substitution","maxLength":256,"x-displayname":"Substitution","x-ves-example":"\\\\2/instance/\\\\1","x-ves-validation-rules":{"ves.io.schema.rules.string.max_len":"256"}}}},"schemaRetryBackOff":{"type":"object","description":"Specifies parameters that control retry back off.","title":"RetryBackOff","x-displayname":"Retry BackOff Interval","x-ves-displayorder":"1,2","x-ves-proto-message":"ves.io.schema.RetryBackOff","properties":{"base_interval":{"type":"integer","description":" Specifies the base interval between retries in milliseconds\n\nExample: ` \"5\"`\n\nValidation Rules:\n ves.io.schema.rules.uint32.gt: 0\n","title":"base_interval","format":"int64","x-displayname":"Base Retry Interval","x-ves-example":"5","x-ves-validation-rules":{"ves.io.schema.rules.uint32.gt":"0"}},"max_interval":{"type":"integer","description":" Specifies the maximum interval between retries in milliseconds.\n This parameter is optional, but must be greater than or equal\n to the base_interval if set. The default is 10 times the base_interval.\n\nExample: ` \"60\"`","title":"max_interval","format":"int64","x-displayname":"Maximum Retry Interval","x-ves-example":"60"}}},"schemaRetryPolicyType":{"type":"object","description":"Retry policy configuration for route destination.","title":"RetryPolicyType","x-displayname":"Retry Policy","x-ves-displayorder":"1,6,2,3,4,5","x-ves-proto-message":"ves.io.schema.RetryPolicyType","properties":{"back_off":{"$ref":"#/components/schemas/schemaRetryBackOff"},"num_retries":{"type":"integer","description":" Specifies the allowed number of retries. Defaults to 1.\n Retries can be done any number of times. An exponential back-off algorithm\n is used between each retry\n\nExample: ` \"3\"`\n\nValidation Rules:\n ves.io.schema.rules.uint32.lte: 8\n","title":"num_retries","format":"int64","x-displayname":"Number of Retries","x-ves-example":"3","x-ves-validation-rules":{"ves.io.schema.rules.uint32.lte":"8"}},"per_try_timeout":{"type":"integer","description":" Specifies a non-zero timeout per retry attempt. In milliseconds\n\nExample: ` \"1000\"`\n\nValidation Rules:\n ves.io.schema.rules.uint32.lte: 600000\n","title":"per_try_timeout","format":"int64","x-displayname":"Per Try Timeout","x-ves-example":"1000","x-ves-validation-rules":{"ves.io.schema.rules.uint32.lte":"600000"}},"retriable_status_codes":{"type":"array","description":" HTTP status codes that should trigger a retry in addition to those specified by retry_on.\n\nExample: ` \"403\"`\n\nValidation Rules:\n ves.io.schema.rules.repeated.max_items: 16\n ves.io.schema.rules.repeated.unique: true\n","title":"Retriable status Code","maxItems":16,"items":{"type":"integer","format":"int64"},"x-displayname":"Status Code to Retry","x-ves-example":"403","x-ves-validation-rules":{"ves.io.schema.rules.repeated.max_items":"16","ves.io.schema.rules.repeated.unique":"true"}},"retry_condition":{"type":"array","description":" Specifies the conditions under which retry takes place.\n Retries can be on different types of condition depending on application requirements.\n For example, network failure, all 5xx response codes, idempotent 4xx response codes, etc\n\n The possible values are\n\n \"5xx\" : Retry will be done if the upstream server responds with any 5xx response code,\n or does not respond at all (disconnect/reset/read timeout).\n\n \"gateway-error\" : Retry will be done only if the upstream server responds with 502, 503 or\n 504 responses (Included in 5xx)\n\n \"connect-failure\" : Retry will be done if the request fails because of a connection failure to the\n upstream server (connect timeout, etc.). (Included in 5xx)\n\n \"refused-stream\" : Retry is done if the upstream server resets the stream with a REFUSED_STREAM\n error code (Included in 5xx)\n\n \"retriable-4xx\" : Retry is done if the upstream server responds with a retriable 4xx response code.\n The only response code in this category is HTTP CONFLICT (409)\n\n \"retriable-status-codes\" : Retry is done if the upstream server responds with any response code\n matching one defined in retriable_status_codes field\n\n \"reset\" : Retry is done if the upstream server does not respond at all\n (disconnect/reset/read timeout.)\n\nExample: ` \"5xx\"`\n\nRequired: YES\n\nValidation Rules:\n ves.io.schema.rules.message.required: true\n ves.io.schema.rules.repeated.items.string.in: [\\\"5xx\\\",\\\"gateway-error\\\",\\\"connect-failure\\\",\\\"refused-stream\\\",\\\"retriable-4xx\\\",\\\"retriable-status-codes\\\",\\\"reset\\\"]\n ves.io.schema.rules.repeated.max_items: 7\n ves.io.schema.rules.repeated.min_items: 1\n ves.io.schema.rules.repeated.unique: true\n","title":"retry_condition","minItems":1,"maxItems":7,"items":{"type":"string"},"x-displayname":"Retry Condition","x-ves-example":"5xx","x-ves-required":"true","x-ves-validation-rules":{"ves.io.schema.rules.message.required":"true","ves.io.schema.rules.repeated.items.string.in":"[\\\"5xx\\\",\\\"gateway-error\\\",\\\"connect-failure\\\",\\\"refused-stream\\\",\\\"retriable-4xx\\\",\\\"retriable-status-codes\\\",\\\"reset\\\"]","ves.io.schema.rules.repeated.max_items":"7","ves.io.schema.rules.repeated.min_items":"1","ves.io.schema.rules.repeated.unique":"true"}}}},"schemaRoutingPriority":{"type":"string","description":"Priority routing for each request.\nDifferent connection pools are used based on the priority selected for the request.\nAlso, circuit-breaker configuration at destination cluster is chosen based on selected priority.\n\nDefault routing mechanism\nHigh-Priority routing mechanism","title":"RoutingPriority","enum":["DEFAULT","HIGH"],"default":"DEFAULT","x-displayname":"Routing Priority","x-ves-proto-enum":"ves.io.schema.RoutingPriority"},"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"}}},"schemaSetCookieValueOption":{"type":"object","description":"Cookie name and its attribute values in set-cookie header","title":"SetCookieValueOption","x-displayname":"Set-Cookie Value Option","x-ves-oneof-field-domain_choice":"[\"add_domain\",\"ignore_domain\"]","x-ves-oneof-field-expiry_choice":"[\"add_expiry\",\"ignore_expiry\"]","x-ves-oneof-field-httponly_choice":"[\"add_httponly\",\"ignore_httponly\"]","x-ves-oneof-field-max_age_choice":"[\"ignore_max_age\",\"max_age_value\"]","x-ves-oneof-field-partitioned_choice":"[\"add_partitioned\",\"ignore_partitioned\"]","x-ves-oneof-field-path_choice":"[\"add_path\",\"ignore_path\"]","x-ves-oneof-field-samesite_choice":"[\"ignore_samesite\",\"samesite_lax\",\"samesite_none\",\"samesite_strict\"]","x-ves-oneof-field-secure_choice":"[\"add_secure\",\"ignore_secure\"]","x-ves-oneof-field-value_choice":"[\"ignore_value\",\"secret_value\",\"value\"]","x-ves-proto-message":"ves.io.schema.SetCookieValueOption","properties":{"add_domain":{"type":"string","description":"Exclusive with [ignore_domain]\n Add domain attribute\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":"add_domain","minLength":1,"maxLength":256,"x-displayname":"Add Domain","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"}},"add_expiry":{"type":"string","description":"Exclusive with [ignore_expiry]\n Add expiry attribute\n\nValidation Rules:\n ves.io.schema.rules.string.max_len: 256\n","title":"add_expiry","maxLength":256,"x-displayname":"Add expiry","x-ves-validation-rules":{"ves.io.schema.rules.string.max_len":"256"}},"add_httponly":{"$ref":"#/components/schemas/ioschemaEmpty"},"add_partitioned":{"$ref":"#/components/schemas/ioschemaEmpty"},"add_path":{"type":"string","description":"Exclusive with [ignore_path]\n Add path attribute\n\nValidation Rules:\n ves.io.schema.rules.string.http_path: true\n ves.io.schema.rules.string.max_len: 256\n","title":"add_path","maxLength":256,"x-displayname":"Add path","x-ves-validation-rules":{"ves.io.schema.rules.string.http_path":"true","ves.io.schema.rules.string.max_len":"256"}},"add_secure":{"$ref":"#/components/schemas/ioschemaEmpty"},"ignore_domain":{"$ref":"#/components/schemas/ioschemaEmpty"},"ignore_expiry":{"$ref":"#/components/schemas/ioschemaEmpty"},"ignore_httponly":{"$ref":"#/components/schemas/ioschemaEmpty"},"ignore_max_age":{"$ref":"#/components/schemas/ioschemaEmpty"},"ignore_partitioned":{"$ref":"#/components/schemas/ioschemaEmpty"},"ignore_path":{"$ref":"#/components/schemas/ioschemaEmpty"},"ignore_samesite":{"$ref":"#/components/schemas/ioschemaEmpty"},"ignore_secure":{"$ref":"#/components/schemas/ioschemaEmpty"},"ignore_value":{"$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 in Cookie header.\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":"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"}},"overwrite":{"type":"boolean","description":" Should the value be overwritten? If true, the value is overwritten to existing values.\n Default value is do not overwrite","title":"overwrite","format":"boolean","x-displayname":"Overwrite"},"samesite_lax":{"$ref":"#/components/schemas/ioschemaEmpty"},"samesite_none":{"$ref":"#/components/schemas/ioschemaEmpty"},"samesite_strict":{"$ref":"#/components/schemas/ioschemaEmpty"},"secret_value":{"$ref":"#/components/schemas/schemaSecretType"},"value":{"type":"string","description":"Exclusive with [ignore_value secret_value]\n Value of the Cookie 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"}}}},"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"}}},"schemaTLSCoalescingOptions":{"type":"object","description":"TLS connection coalescing configuration (not compatible with mTLS)","title":"TLSCoalescingOptions","x-displayname":"TLS Coalescing Options","x-ves-oneof-field-coalescing_choice":"[\"default_coalescing\",\"strict_coalescing\"]","x-ves-proto-message":"ves.io.schema.TLSCoalescingOptions","properties":{"default_coalescing":{"$ref":"#/components/schemas/ioschemaEmpty"},"strict_coalescing":{"$ref":"#/components/schemas/ioschemaEmpty"}}},"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"},"schemaURLSchemeType":{"type":"string","description":"x-displayName: \"URL Scheme\"\nSchemeType is used to indicate URL scheme\n\n - HTTP: x-displayName: \"HTTP\"\nhttp:// scheme\n - HTTPS: x-displayName: \"HTTPS\"\nhttps:// scheme","title":"URLSchemeType","enum":["HTTP","HTTPS"],"default":"HTTP"},"schemaUpstreamConnPoolReuseType":{"type":"object","description":"Select upstream connection pool reuse state for every downstream connection. This configuration choice is for HTTP(S) LB only.","title":"UpstreamConnPoolReuseType","x-displayname":"Select upstream connection pool reuse state","x-ves-oneof-field-map_downstream_to_upstream_conn_pool_type":"[\"disable_conn_pool_reuse\",\"enable_conn_pool_reuse\"]","x-ves-proto-message":"ves.io.schema.UpstreamConnPoolReuseType","properties":{"disable_conn_pool_reuse":{"$ref":"#/components/schemas/ioschemaEmpty"},"enable_conn_pool_reuse":{"$ref":"#/components/schemas/ioschemaEmpty"}}},"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"},"schemaclusterHttp1ProtocolOptions":{"type":"object","description":"HTTP/1.1 Protocol options for upstream connections","title":"Http1ProtocolOptions","x-displayname":"HTTP/1.1 Protocol Options","x-ves-proto-message":"ves.io.schema.cluster.Http1ProtocolOptions","properties":{"header_transformation":{"$ref":"#/components/schemas/schemaHeaderTransformationType"}}},"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"}}}},"schemarouteJavaScriptLocation":{"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.route.JavaScriptLocation"},"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"}}}},"schemavirtual_hostHttp1ProtocolOptions":{"type":"object","description":"HTTP/1.1 Protocol options for downstream connections","title":"Http1ProtocolOptions","x-displayname":"HTTP/1.1 Protocol Options","x-ves-proto-message":"ves.io.schema.virtual_host.Http1ProtocolOptions","properties":{"header_transformation":{"$ref":"#/components/schemas/schemaHeaderTransformationType"}}},"schemavirtual_host_dns_infoGlobalSpecType":{"type":"object","description":"Shape of the virtual host DNS info global specification","title":"Global Specification for Virtual Host DNS info","x-displayname":"Global Spec","x-ves-proto-message":"ves.io.schema.virtual_host_dns_info.GlobalSpecType","properties":{"dns_info":{"type":"array","description":" DNS information for this virtual host","title":"DNS information","items":{"$ref":"#/components/schemas/virtual_host_dns_infoDnsInfo"},"x-displayname":"DNS Information"},"host_name":{"type":"string","description":" Host name to be used for the virtual host\n\nExample: ` \"value\"`","title":"host name","x-displayname":"Host Name","x-ves-example":"value"},"virtual_host":{"type":"array","description":" Reference to virtual host object to which this information applies","title":"virtual host","items":{"$ref":"#/components/schemas/ioschemaObjectRefType"},"x-displayname":"Virtual Host"}}},"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"}}},"viewsAdvertiseCustom":{"type":"object","description":"This defines a way to advertise a VIP on specific sites","title":"AdvertiseWhere","x-displayname":"Advertise Custom","x-ves-proto-message":"ves.io.schema.views.AdvertiseCustom","properties":{"advertise_where":{"type":"array","description":" Where should this load balancer be available\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":"Advertise Where","minItems":1,"maxItems":32,"items":{"$ref":"#/components/schemas/viewsWhereType"},"x-displayname":"List of Sites to Advertise","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"}}}},"viewsAdvertisePublic":{"type":"object","description":"This defines a way to advertise a load balancer on public. If optional public_ip is provided, it will only be advertised on RE sites where that public_ip is available","title":"AdvertisePublic","x-displayname":"Advertise Public","x-ves-proto-message":"ves.io.schema.views.AdvertisePublic","properties":{"public_ip":{"$ref":"#/components/schemas/schemaviewsObjectRefType"}}},"viewsApiEndpointWithSchema":{"type":"object","description":"API endpoint and its schema","title":"API Endpoint With Schema","x-displayname":"API Endpoint With Schema","x-ves-proto-message":"ves.io.schema.views.ApiEndpointWithSchema","properties":{"api_operation":{"$ref":"#/components/schemas/viewsApiOperation"},"schema_json":{"type":"string","description":" The schema of the API endpoint\n\nExample: ` \"{}\"`\n\nRequired: YES\n\nValidation Rules:\n ves.io.schema.rules.message.required: true\n ves.io.schema.rules.string.max_bytes: 20000\n","title":"Schema JSON","maxLength":20000,"x-displayname":"Schema JSON","x-ves-example":"{}","x-ves-required":"true","x-ves-validation-rules":{"ves.io.schema.rules.message.required":"true","ves.io.schema.rules.string.max_bytes":"20000"}}}},"viewsApiOperation":{"type":"object","description":"API operation according to OpenAPI specification.","title":"ApiOperation","x-displayname":"API Operation","x-ves-proto-message":"ves.io.schema.views.ApiOperation","properties":{"method":{"$ref":"#/components/schemas/schemaHttpMethod"},"path":{"type":"string","description":" An endpoint path, as specified in OpenAPI, including parameters.\n The path should comply with RFC 3986 and may have parameters according to OpenAPI specification\n\nExample: ` \"/api/users/{userid}\"`\n\nRequired: YES\n\nValidation Rules:\n ves.io.schema.rules.message.required: true\n ves.io.schema.rules.string.max_bytes: 1024\n ves.io.schema.rules.string.min_bytes: 1\n ves.io.schema.rules.string.templated_http_path: true\n","title":"path","minLength":1,"maxLength":1024,"x-displayname":"Path","x-ves-example":"/api/users/{userid}","x-ves-required":"true","x-ves-validation-rules":{"ves.io.schema.rules.message.required":"true","ves.io.schema.rules.string.max_bytes":"1024","ves.io.schema.rules.string.min_bytes":"1","ves.io.schema.rules.string.templated_http_path":"true"}}}},"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"}}},"viewsInternetVIPInfo":{"type":"object","description":"Internet VIP Info","title":"Internet VIP Info","x-displayname":"Internet VIP Info","x-ves-proto-message":"ves.io.schema.views.InternetVIPInfo","properties":{"site_name":{"type":"string","description":" Site Name where Internet VIP is installed","title":"Site Name","x-displayname":"Site Name"},"site_network_type":{"$ref":"#/components/schemas/viewsSiteNetwork"},"status":{"$ref":"#/components/schemas/viewsInternetVIPStatus"}}},"viewsInternetVIPListenerStatusType":{"type":"object","x-ves-proto-message":"ves.io.schema.views.InternetVIPListenerStatusType","properties":{"arn":{"type":"string","description":" Name","title":"Name","x-displayname":"Name"},"port":{"type":"integer","description":" Port","title":"Port","format":"int64","x-displayname":"Port"},"protocol":{"type":"string","description":" Protocol","title":"Protocol","x-displayname":"Protocol"},"reason":{"type":"string","description":" Reason","title":"Reason","x-displayname":"reason"},"status":{"type":"string","description":" Status","title":"Status","x-displayname":"Status"}}},"viewsInternetVIPStatus":{"type":"object","description":"CName and installation info","title":"Internet VIP Status","x-displayname":"Internet VIP Status","x-ves-proto-message":"ves.io.schema.views.InternetVIPStatus","properties":{"arn":{"type":"string","description":" ARN","title":"ARN","x-displayname":"ARN"},"name":{"type":"string","description":" Name","title":"Name","x-displayname":"Name"},"nlb_cname":{"type":"string","description":" NLB CNAME","title":"NLB CNAME","x-displayname":"NLB CNAME"},"nlb_status":{"type":"string","description":" NLB Status","title":"NLB Status","x-displayname":"NLB Status"},"reason":{"type":"string","description":" Reason","title":"Reason","x-displayname":"reason"},"target_group_status":{"type":"array","description":" Target Group Status","title":"Target Group Status","items":{"$ref":"#/components/schemas/viewsInternetVIPTargetGroupStatusType"},"x-displayname":"Target Group Status"}}},"viewsInternetVIPTargetGroupStatusType":{"type":"object","x-ves-proto-message":"ves.io.schema.views.InternetVIPTargetGroupStatusType","properties":{"arn":{"type":"string","description":" ARN","title":"ARN","x-displayname":"ARN"},"listener_status":{"type":"array","description":" Listener status","title":"Listener status","items":{"$ref":"#/components/schemas/viewsInternetVIPListenerStatusType"},"x-displayname":"Listener status"},"name":{"type":"string","description":" Name","title":"Name","x-displayname":"Name"},"protocol":{"type":"string","description":" Protocol","title":"Protocol","x-displayname":"Protocol"},"reason":{"type":"string","description":" Reason","title":"Reason","x-displayname":"reason"},"status":{"type":"string","description":" Status","title":"Status","x-displayname":"Status"}}},"viewsOriginPoolListType":{"type":"object","description":"List of Origin Pools","title":"OriginPoolListType","x-displayname":"Origin Pool List Type","x-ves-proto-message":"ves.io.schema.views.OriginPoolListType","properties":{"pools":{"type":"array","description":" List of Origin Pools\n\nValidation Rules:\n ves.io.schema.rules.repeated.max_items: 8\n ves.io.schema.rules.repeated.unique: true\n","title":"Pools","maxItems":8,"items":{"$ref":"#/components/schemas/viewsOriginPoolWithWeight"},"x-displayname":"Origin Pools","x-ves-validation-rules":{"ves.io.schema.rules.repeated.max_items":"8","ves.io.schema.rules.repeated.unique":"true"}}}},"viewsOriginPoolWithWeight":{"type":"object","description":"This defines a combination of origin pool with weight and priority","title":"OriginPoolWithWeight","x-displayname":"Origin Pool with Weight","x-ves-oneof-field-pool_choice":"[\"cluster\",\"pool\"]","x-ves-proto-message":"ves.io.schema.views.OriginPoolWithWeight","properties":{"cluster":{"$ref":"#/components/schemas/schemaviewsObjectRefType"},"endpoint_subsets":{"type":"object","description":" Upstream origin pool may be configured to divide its origin servers into subsets based on metadata\n attached to the origin servers. Routes may then specify the metadata that a endpoint must match in\n order to be selected by the load balancer\n\n For origin servers which are discovered in K8S or Consul cluster, the label of the service is merged with\n endpoint's labels. In case of Consul, the label is derived from the \"Tag\" field.\n For labels that are common between configured endpoint and discovered service, labels from discovered service\n takes precedence.\n\n List of key-value pairs that will be used as matching metadata. Only those origin servers of\n upstream origin pool which match this metadata will be selected for load balancing\n\nExample: ` \"value\"`\n\nValidation Rules:\n ves.io.schema.rules.map.max_pairs: 16\n","title":"Origin Servers Subset","x-displayname":"Origin Servers Subsets","x-ves-example":"value","x-ves-validation-rules":{"ves.io.schema.rules.map.max_pairs":"16"}},"pool":{"$ref":"#/components/schemas/schemaviewsObjectRefType"},"priority":{"type":"integer","description":" Priority of this origin pool, valid only with multiple origin pools.\n Value of 0 will make the pool as lowest priority origin pool\n Priority of 1 means highest priority and is considered active.\n When active origin pool is not available, lower priority origin pools are\n made active as per the increasing priority.\n\nExample: ` \"1\"`\n\nValidation Rules:\n ves.io.schema.rules.uint32.lte: 32\n","title":"Priority","format":"int64","x-displayname":"Priority","x-ves-example":"1","x-ves-validation-rules":{"ves.io.schema.rules.uint32.lte":"32"}},"weight":{"type":"integer","description":" Weight of this origin pool, valid only with multiple origin pool. Value of 0 will disable the pool\n\nExample: ` \"1\"`","title":"Weight","format":"int64","x-displayname":"Weight","x-ves-example":"1"}}},"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"}}}},"viewsSiteLocator":{"type":"object","description":"This message defines a reference to a site or virtual site object","title":"SiteLocator","x-displayname":"Site or Virtual Site","x-ves-oneof-field-choice":"[\"site\",\"virtual_site\"]","x-ves-proto-message":"ves.io.schema.views.SiteLocator","properties":{"site":{"$ref":"#/components/schemas/schemaviewsObjectRefType"},"virtual_site":{"$ref":"#/components/schemas/schemaviewsObjectRefType"}}},"viewsSiteNetwork":{"type":"string","description":"This defines network types to be used on site\n\nAll inside and outside networks.\nAll inside and outside networks with internet VIP support.\nAll inside networks.\nAll outside networks.\nAll outside networks with internet VIP support.\nvK8s service network.\n - SITE_NETWORK_IP_FABRIC: VER IP Fabric network for the site\n\nThis Virtual network type is used for exposing virtual host on IP Fabric network on the VER site or\nfor endpoint in IP Fabric network","title":"SiteNetwork","enum":["SITE_NETWORK_INSIDE_AND_OUTSIDE","SITE_NETWORK_INSIDE","SITE_NETWORK_OUTSIDE","SITE_NETWORK_SERVICE","SITE_NETWORK_OUTSIDE_WITH_INTERNET_VIP","SITE_NETWORK_INSIDE_AND_OUTSIDE_WITH_INTERNET_VIP","SITE_NETWORK_IP_FABRIC"],"default":"SITE_NETWORK_INSIDE_AND_OUTSIDE","x-displayname":"Site Network","x-ves-proto-enum":"ves.io.schema.views.SiteNetwork"},"viewsSiteNetworkSpecifiedVIP":{"type":"string","description":"This defines network types to be used on virtual-site with specified VIP\n\nAll outside networks.\nAll inside networks.","title":"SiteNetworkSpecifiedVIP","enum":["SITE_NETWORK_SPECIFIED_VIP_OUTSIDE","SITE_NETWORK_SPECIFIED_VIP_INSIDE"],"default":"SITE_NETWORK_SPECIFIED_VIP_OUTSIDE","x-displayname":"Site Network","x-ves-proto-enum":"ves.io.schema.views.SiteNetworkSpecifiedVIP"},"viewsSnatPoolConfiguration":{"type":"object","description":"Snat Pool configuration","title":"SnatPoolConfiguration","x-displayname":"Snat Pool","x-ves-oneof-field-snat_pool_choice":"[\"no_snat_pool\",\"snat_pool\"]","x-ves-proto-message":"ves.io.schema.views.SnatPoolConfiguration","properties":{"no_snat_pool":{"$ref":"#/components/schemas/ioschemaEmpty"},"snat_pool":{"$ref":"#/components/schemas/viewsPrefixStringListType"}}},"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"}}},"viewsWhereCloudEdgeSegment":{"type":"object","description":"x-displayName: \"Segment on a Cloud Edge\"\nThis defines a reference to a Segment on a Cloud Edge and an optional ip address where a load balancer could be advertised","title":"WhereCloudEdgeSegment","properties":{"cloud_edge":{"$ref":"#/components/schemas/schemaviewsObjectRefType"},"ip":{"type":"string","description":"x-displayName: \"IP Address\"\nx-required\nx-example: \"8.8.8.8\"\nUse given IP address as VIP on the Cloud Edge","title":"IP address on the Cloud Edge"},"ipv6":{"type":"string","description":"x-displayName: \"IPv6 Address\"\nx-example: \"2001::1\"\nUse given IPv6 address as VIP on the Cloud Edge","title":"IPv6 address on the Cloud Edge"},"segment":{"$ref":"#/components/schemas/schemaviewsObjectRefType"}}},"viewsWhereSegment":{"type":"object","description":"x-displayName: \"Virtual Network\"\nParameters to advertise on a given virtual network","title":"WhereVirtualNetwork","properties":{"ipv4_vip":{"type":"string","description":"x-displayName: \"IPV4 VIP\"\nx-required\nConfigure IPV4 VIP address","title":"IPv4 VIP"},"ipv6_vip":{"type":"string","description":"x-displayName: \"IPV6 VIP\"\nConfigure IPV6 VIP address","title":"IPv6 VIP"},"segment":{"$ref":"#/components/schemas/schemaviewsObjectRefType"}}},"viewsWhereSite":{"type":"object","description":"This defines a reference to a CE site along with network type and an optional ip address where a load balancer could be advertised","title":"WhereSite","x-displayname":"Site","x-ves-displayorder":"1,2,3","x-ves-proto-message":"ves.io.schema.views.WhereSite","properties":{"ip":{"type":"string","description":" Use given IP address as VIP on the site\n\nExample: ` \"8.8.8.8\"`\n\nValidation Rules:\n ves.io.schema.rules.string.ipv4: true\n","title":"IP address on the site","x-displayname":"IP Address","x-ves-example":"8.8.8.8","x-ves-validation-rules":{"ves.io.schema.rules.string.ipv4":"true"}},"network":{"$ref":"#/components/schemas/viewsSiteNetwork"},"site":{"$ref":"#/components/schemas/schemaviewsObjectRefType"}}},"viewsWhereSiteSegment":{"type":"object","description":"x-displayName: \"Segment on Site\"\nThis defines a reference to a Segment on a Site and an optional ip address where a load balancer could be advertised","title":"WhereSiteSegment","properties":{"ip":{"type":"string","description":"x-displayName: \"IP Address\"\nx-required\nx-example: \"8.8.8.8\"\nUse given IP address as VIP on the site","title":"IP address on the site"},"ipv6":{"type":"string","description":"x-displayName: \"IPv6 Address\"\nx-example: \"2001::1\"\nUse given IPv6 address as VIP on the site","title":"IPv6 address on the site"},"segment":{"$ref":"#/components/schemas/schemaviewsObjectRefType"},"site":{"$ref":"#/components/schemas/schemaviewsObjectRefType"}}},"viewsWhereType":{"type":"object","description":"This defines various options where a Loadbalancer could be advertised","title":"WhereType","x-displayname":"Select Where to Advertise","x-ves-displayorder":"4,5","x-ves-oneof-field-choice":"[\"advertise_on_public\",\"cloud_edge_segment\",\"segment\",\"site\",\"site_segment\",\"virtual_network\",\"virtual_site\",\"virtual_site_segment\",\"virtual_site_with_vip\",\"vk8s_service\"]","x-ves-oneof-field-port_choice":"[\"port\",\"port_ranges\",\"use_default_port\"]","x-ves-proto-message":"ves.io.schema.views.WhereType","properties":{"advertise_on_public":{"$ref":"#/components/schemas/viewsAdvertisePublic"},"port":{"type":"integer","description":"Exclusive with [port_ranges use_default_port]\n Port to Listen.\n\nValidation Rules:\n ves.io.schema.rules.uint32.gte: 1\n ves.io.schema.rules.uint32.lte: 65535\n","title":"Port to listen","format":"int64","x-displayname":"Listen Port","x-ves-validation-rules":{"ves.io.schema.rules.uint32.gte":"1","ves.io.schema.rules.uint32.lte":"65535"}},"port_ranges":{"type":"string","description":"Exclusive with [port use_default_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 to listen","minLength":1,"maxLength":512,"x-displayname":"Listen 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"}},"site":{"$ref":"#/components/schemas/viewsWhereSite"},"use_default_port":{"$ref":"#/components/schemas/ioschemaEmpty"},"virtual_network":{"$ref":"#/components/schemas/viewsWhereVirtualNetwork"},"virtual_site":{"$ref":"#/components/schemas/viewsWhereVirtualSite"},"virtual_site_with_vip":{"$ref":"#/components/schemas/viewsWhereVirtualSiteSpecifiedVIP"},"vk8s_service":{"$ref":"#/components/schemas/viewsWhereVK8SService"}}},"viewsWhereVK8SService":{"type":"object","description":"This defines a reference to a RE site or virtual site where a load balancer could be advertised in the vK8s service network","title":"WhereVK8SService","x-displayname":"vK8s Services on RE","x-ves-displayorder":"3","x-ves-oneof-field-choice":"[\"site\",\"virtual_site\"]","x-ves-proto-message":"ves.io.schema.views.WhereVK8SService","properties":{"site":{"$ref":"#/components/schemas/schemaviewsObjectRefType"},"virtual_site":{"$ref":"#/components/schemas/schemaviewsObjectRefType"}}},"viewsWhereVirtualNetwork":{"type":"object","description":"Parameters to advertise on a given virtual network","title":"WhereVirtualNetwork","x-displayname":"Virtual Network","x-ves-displayorder":"1,2,10","x-ves-oneof-field-v6_vip_choice":"[\"default_v6_vip\",\"specific_v6_vip\"]","x-ves-oneof-field-vip_choice":"[\"default_vip\",\"specific_vip\"]","x-ves-proto-message":"ves.io.schema.views.WhereVirtualNetwork","properties":{"default_v6_vip":{"$ref":"#/components/schemas/ioschemaEmpty"},"default_vip":{"$ref":"#/components/schemas/ioschemaEmpty"},"specific_v6_vip":{"type":"string","description":"Exclusive with [default_v6_vip]\n Use given IPV6 address as VIP on virtual Network\n\nValidation Rules:\n ves.io.schema.rules.string.ipv6: true\n","title":"Specific V6 VIP","x-displayname":"Specific V6 VIP","x-ves-validation-rules":{"ves.io.schema.rules.string.ipv6":"true"}},"specific_vip":{"type":"string","description":"Exclusive with [default_vip]\n Use given IPV4 address as VIP on virtual Network\n\nValidation Rules:\n ves.io.schema.rules.string.ipv4: true\n","title":"Specific VIP","x-displayname":"Specific V4 VIP","x-ves-validation-rules":{"ves.io.schema.rules.string.ipv4":"true"}},"virtual_network":{"$ref":"#/components/schemas/schemaviewsObjectRefType"}}},"viewsWhereVirtualSite":{"type":"object","description":"This defines a reference to a customer site virtual site along with network type where a load balancer could be advertised","title":"WhereVirtualSite","x-displayname":"Virtual Site","x-ves-displayorder":"1,2","x-ves-proto-message":"ves.io.schema.views.WhereVirtualSite","properties":{"network":{"$ref":"#/components/schemas/viewsSiteNetwork"},"virtual_site":{"$ref":"#/components/schemas/schemaviewsObjectRefType"}}},"viewsWhereVirtualSiteSegment":{"type":"object","description":"x-displayName: \"Virtual Site\"\nThis defines a reference to a customer site virtual site along with network type where a load balancer could be advertised","title":"WhereVirtualSiteSegment","properties":{"ip":{"type":"string","description":"x-displayName: \"IP Address\"\nx-required\nx-example: \"8.8.8.8\"\nUse given IP address as VIP on the site","title":"IP address on the site"},"ipv6":{"type":"string","description":"x-displayName: \"IPv6 Address\"\nx-example: \"2001::1\"\nUse given IPv6 address as VIP on the site","title":"IPv6 address on the site"},"segment":{"$ref":"#/components/schemas/schemaviewsObjectRefType"},"virtual_site":{"$ref":"#/components/schemas/schemaviewsObjectRefType"}}},"viewsWhereVirtualSiteSpecifiedVIP":{"type":"object","description":"This defines a reference to a customer site virtual site along with network type and IP where a load balancer could be advertised","title":"WhereVirtualSiteSpecifiedVIP","x-displayname":"Virtual Site with Specified VIP","x-ves-proto-message":"ves.io.schema.views.WhereVirtualSiteSpecifiedVIP","properties":{"ip":{"type":"string","description":" Use given IP address as VIP on the site\n\nExample: ` \"8.8.8.8\"`\n\nValidation Rules:\n ves.io.schema.rules.string.ipv4: true\n","title":"IP address on the site","x-displayname":"IP Address","x-ves-example":"8.8.8.8","x-ves-validation-rules":{"ves.io.schema.rules.string.ipv4":"true"}},"network":{"$ref":"#/components/schemas/viewsSiteNetworkSpecifiedVIP"},"virtual_site":{"$ref":"#/components/schemas/schemaviewsObjectRefType"}}},"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]"}}}},"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_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"}}},"viewshttp_loadbalancerCreateSpecType":{"type":"object","description":"Shape of the HTTP load balancer specification","title":"CreateSpecType","x-displayname":"Create HTTP Load Balancer","x-ves-oneof-field-advertise_choice":"[\"advertise_custom\",\"advertise_on_public\",\"advertise_on_public_default_vip\",\"do_not_advertise\"]","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-api_testing_choice":"[\"api_testing\",\"disable_api_testing\"]","x-ves-oneof-field-bot_defense_choice":"[\"bot_defense\",\"bot_defense_advanced\",\"disable_bot_defense\"]","x-ves-oneof-field-cache_options":"[\"caching_policy\",\"disable_caching\"]","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-hash_policy_choice":"[\"cookie_stickiness\",\"least_active\",\"random\",\"ring_hash\",\"round_robin\",\"source_ip_stickiness\"]","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-malware_protection":"[\"disable_malware_protection\",\"malware_protection_settings\"]","x-ves-oneof-field-ml_config_choice":"[\"multi_lb_app\",\"single_lb_app\"]","x-ves-oneof-field-origin_pool_choice":"[\"default_pool\",\"default_pool_list\"]","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-trust_client_ip_headers_choice":"[\"disable_trust_client_ip_headers\",\"enable_trust_client_ip_headers\"]","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.http_loadbalancer.CreateSpecType","properties":{"active_service_policies":{"$ref":"#/components/schemas/common_wafServicePolicyList"},"add_location":{"type":"boolean","description":" x-example: true\n Appends header x-volterra-location = <re-site-name> in responses. This configuration\n is ignored on CE sites.\n\nExample: ` \"true\"`","format":"boolean","x-displayname":"Add Location","x-ves-example":"true"},"advertise_custom":{"$ref":"#/components/schemas/viewsAdvertiseCustom"},"advertise_on_public":{"$ref":"#/components/schemas/viewsAdvertisePublic"},"advertise_on_public_default_vip":{"$ref":"#/components/schemas/ioschemaEmpty"},"api_protection_rules":{"$ref":"#/components/schemas/common_wafAPIProtectionRules"},"api_rate_limit":{"$ref":"#/components/schemas/common_wafAPIRateLimit"},"api_specification":{"$ref":"#/components/schemas/common_wafAPISpecificationSettings"},"api_testing":{"$ref":"#/components/schemas/http_loadbalancerApiTesting"},"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"},"bot_defense_advanced":{"$ref":"#/components/schemas/common_securityBotDefenseAdvancedType"},"caching_policy":{"$ref":"#/components/schemas/http_loadbalancerCachingPolicy"},"captcha_challenge":{"$ref":"#/components/schemas/virtual_hostCaptchaChallengeType"},"client_side_defense":{"$ref":"#/components/schemas/common_securityClientSideDefenseType"},"cookie_stickiness":{"$ref":"#/components/schemas/routeCookieForHashing"},"cors_policy":{"$ref":"#/components/schemas/schemaCorsPolicy"},"csrf_policy":{"$ref":"#/components/schemas/schemaCsrfPolicy"},"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_pool":{"$ref":"#/components/schemas/viewsorigin_poolGlobalSpecType"},"default_pool_list":{"$ref":"#/components/schemas/viewsOriginPoolListType"},"default_route_pools":{"type":"array","description":" Origin Pools used when no route is specified (default route)\n\nValidation Rules:\n ves.io.schema.rules.repeated.max_items: 8\n ves.io.schema.rules.repeated.unique: true\n","maxItems":8,"items":{"$ref":"#/components/schemas/viewsOriginPoolWithWeight"},"x-displayname":"Origin Pools","x-ves-validation-rules":{"ves.io.schema.rules.repeated.max_items":"8","ves.io.schema.rules.repeated.unique":"true"}},"default_sensitive_data_policy":{"$ref":"#/components/schemas/ioschemaEmpty"},"disable_api_definition":{"$ref":"#/components/schemas/ioschemaEmpty"},"disable_api_discovery":{"$ref":"#/components/schemas/ioschemaEmpty"},"disable_api_testing":{"$ref":"#/components/schemas/ioschemaEmpty"},"disable_bot_defense":{"$ref":"#/components/schemas/ioschemaEmpty"},"disable_caching":{"$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_malware_protection":{"$ref":"#/components/schemas/ioschemaEmpty"},"disable_rate_limit":{"$ref":"#/components/schemas/ioschemaEmpty"},"disable_threat_mesh":{"$ref":"#/components/schemas/ioschemaEmpty"},"disable_trust_client_ip_headers":{"$ref":"#/components/schemas/ioschemaEmpty"},"disable_waf":{"$ref":"#/components/schemas/ioschemaEmpty"},"do_not_advertise":{"$ref":"#/components/schemas/ioschemaEmpty"},"domains":{"type":"array","description":" A list of Domains (host/authority header) that will be matched to load balancer.\n\n Supported Domains and search order:\n 1. Exact Domain names: www.foo.com.\n 2. Domains starting with a Wildcard: *.foo.com.\n\n Not supported Domains:\n - Just a Wildcard: *\n - A Wildcard and TLD with no root Domain: *.com.\n - A Wildcard not matching a whole DNS label.\n e.g. *.foo.com and *.bar.foo.com are valid Wildcards however *bar.foo.com, *-bar.foo.com, and bar*.foo.com are all invalid.\n\n Additional notes:\n A Wildcard will not match empty string.\n e.g. *.foo.com will match bar.foo.com and baz-bar.foo.com but not .foo.com.\n The longest Wildcards match first.\n Only a single virtual host in the entire route configuration can match on *.\n Also a Domain must be unique across all virtual hosts within an advertise policy.\n\n Domains are also used for SNI matching if the Loadbalancer type is HTTPS.\n Domains also indicate the list of names for which DNS resolution will be automatically resolved to IP addresses by the system.\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","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.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"}},"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"},"enable_trust_client_ip_headers":{"$ref":"#/components/schemas/virtual_hostClientIPHeaders"},"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/http_loadbalancerProxyTypeHttps"},"https_auto_cert":{"$ref":"#/components/schemas/http_loadbalancerProxyTypeHttpsAutoCerts"},"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"},"l7_ddos_protection":{"$ref":"#/components/schemas/http_loadbalancerL7DDoSProtectionSettings"},"least_active":{"$ref":"#/components/schemas/ioschemaEmpty"},"malware_protection_settings":{"$ref":"#/components/schemas/common_securityMalwareProtectionPolicy"},"more_option":{"$ref":"#/components/schemas/http_loadbalancerAdvancedOptionsType"},"multi_lb_app":{"$ref":"#/components/schemas/ioschemaEmpty"},"no_challenge":{"$ref":"#/components/schemas/ioschemaEmpty"},"no_service_policies":{"$ref":"#/components/schemas/ioschemaEmpty"},"origin_server_subset_rule_list":{"$ref":"#/components/schemas/http_loadbalancerOriginServerSubsetRuleListType"},"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"}},"random":{"$ref":"#/components/schemas/ioschemaEmpty"},"rate_limit":{"$ref":"#/components/schemas/common_wafRateLimitConfigType"},"ring_hash":{"$ref":"#/components/schemas/http_loadbalancerHashPolicyListType"},"round_robin":{"$ref":"#/components/schemas/ioschemaEmpty"},"routes":{"type":"array","description":" Routes allow users to define match condition on a path and/or HTTP method to either forward matching traffic\n to origin pool or redirect matching traffic to a different URL or respond directly to matching traffic\n\nValidation Rules:\n ves.io.schema.rules.repeated.max_items: 256\n ves.io.schema.rules.repeated.unique: true\n","maxItems":256,"items":{"$ref":"#/components/schemas/viewshttp_loadbalancerRouteType"},"x-displayname":"Routes","x-ves-validation-rules":{"ves.io.schema.rules.repeated.max_items":"256","ves.io.schema.rules.repeated.unique":"true"}},"sensitive_data_disclosure_rules":{"$ref":"#/components/schemas/http_loadbalancerSensitiveDataDisclosureRules"},"sensitive_data_policy":{"$ref":"#/components/schemas/common_securitySensitiveDataPolicySettings"},"service_policies_from_namespace":{"$ref":"#/components/schemas/ioschemaEmpty"},"single_lb_app":{"$ref":"#/components/schemas/http_loadbalancerSingleLoadBalancerAppSetting"},"slow_ddos_mitigation":{"$ref":"#/components/schemas/virtual_hostSlowDDoSMitigation"},"source_ip_stickiness":{"$ref":"#/components/schemas/ioschemaEmpty"},"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"}}},"viewshttp_loadbalancerDomainConfiguration":{"type":"object","description":"The Domain configuration message","title":"Configured API Domains","x-displayname":"Domain Configuration","x-ves-proto-message":"ves.io.schema.views.http_loadbalancer.DomainConfiguration","properties":{"allow_destructive_methods":{"type":"boolean","description":" Enable to allow API test to execute destructive methods. Be cautious as these can alter or delete data.","title":"Destructive Methods","format":"boolean","x-displayname":"Use Destructive Methods (e.g., DELETE, PUT)"},"credentials":{"type":"array","description":" Add credentials for API testing to use in the selected environment.\n\nRequired: YES\n\nValidation Rules:\n ves.io.schema.rules.message.required: true\n","title":"The Domain credentials","items":{"$ref":"#/components/schemas/http_loadbalancerCredentials"},"x-displayname":"Credentials","x-ves-required":"true","x-ves-validation-rules":{"ves.io.schema.rules.message.required":"true"}},"domain":{"type":"string","description":" Add your testing environment domain. Be aware that running tests on a production domain can impact live applications, as API testing cannot distinguish between production and testing environments.\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":"Domain","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"}}}},"viewshttp_loadbalancerGetSpecType":{"type":"object","description":"Shape of the HTTP load balancer specification","title":"GetSpecType","x-displayname":"Get HTTP Load Balancer","x-ves-oneof-field-advertise_choice":"[\"advertise_custom\",\"advertise_on_public\",\"advertise_on_public_default_vip\",\"do_not_advertise\"]","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-api_testing_choice":"[\"api_testing\",\"disable_api_testing\"]","x-ves-oneof-field-bot_defense_choice":"[\"bot_defense\",\"bot_defense_advanced\",\"disable_bot_defense\"]","x-ves-oneof-field-cache_options":"[\"caching_policy\",\"disable_caching\"]","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-hash_policy_choice":"[\"cookie_stickiness\",\"least_active\",\"random\",\"ring_hash\",\"round_robin\",\"source_ip_stickiness\"]","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-malware_protection":"[\"disable_malware_protection\",\"malware_protection_settings\"]","x-ves-oneof-field-ml_config_choice":"[\"multi_lb_app\",\"single_lb_app\"]","x-ves-oneof-field-origin_pool_choice":"[\"default_pool\",\"default_pool_list\"]","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-trust_client_ip_headers_choice":"[\"disable_trust_client_ip_headers\",\"enable_trust_client_ip_headers\"]","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.http_loadbalancer.GetSpecType","properties":{"active_service_policies":{"$ref":"#/components/schemas/common_wafServicePolicyList"},"add_location":{"type":"boolean","description":" x-example: true\n Appends header x-volterra-location = <re-site-name> in responses. This configuration\n is ignored on CE sites.\n\nExample: ` \"true\"`","format":"boolean","x-displayname":"Add Location","x-ves-example":"true"},"advertise_custom":{"$ref":"#/components/schemas/viewsAdvertiseCustom"},"advertise_on_public":{"$ref":"#/components/schemas/viewsAdvertisePublic"},"advertise_on_public_default_vip":{"$ref":"#/components/schemas/ioschemaEmpty"},"api_protection_rules":{"$ref":"#/components/schemas/common_wafAPIProtectionRules"},"api_rate_limit":{"$ref":"#/components/schemas/common_wafAPIRateLimit"},"api_specification":{"$ref":"#/components/schemas/common_wafAPISpecificationSettings"},"api_testing":{"$ref":"#/components/schemas/http_loadbalancerApiTesting"},"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"},"bot_defense_advanced":{"$ref":"#/components/schemas/common_securityBotDefenseAdvancedType"},"caching_policy":{"$ref":"#/components/schemas/http_loadbalancerCachingPolicy"},"captcha_challenge":{"$ref":"#/components/schemas/virtual_hostCaptchaChallengeType"},"cert_state":{"$ref":"#/components/schemas/virtual_hostCertificationState"},"client_side_defense":{"$ref":"#/components/schemas/common_securityClientSideDefenseType"},"cookie_stickiness":{"$ref":"#/components/schemas/routeCookieForHashing"},"cors_policy":{"$ref":"#/components/schemas/schemaCorsPolicy"},"csrf_policy":{"$ref":"#/components/schemas/schemaCsrfPolicy"},"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_pool":{"$ref":"#/components/schemas/viewsorigin_poolGlobalSpecType"},"default_pool_list":{"$ref":"#/components/schemas/viewsOriginPoolListType"},"default_route_pools":{"type":"array","description":" Origin Pools used when no route is specified (default route)\n\nValidation Rules:\n ves.io.schema.rules.repeated.max_items: 8\n ves.io.schema.rules.repeated.unique: true\n","maxItems":8,"items":{"$ref":"#/components/schemas/viewsOriginPoolWithWeight"},"x-displayname":"Origin Pools","x-ves-validation-rules":{"ves.io.schema.rules.repeated.max_items":"8","ves.io.schema.rules.repeated.unique":"true"}},"default_sensitive_data_policy":{"$ref":"#/components/schemas/ioschemaEmpty"},"disable_api_definition":{"$ref":"#/components/schemas/ioschemaEmpty"},"disable_api_discovery":{"$ref":"#/components/schemas/ioschemaEmpty"},"disable_api_testing":{"$ref":"#/components/schemas/ioschemaEmpty"},"disable_bot_defense":{"$ref":"#/components/schemas/ioschemaEmpty"},"disable_caching":{"$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_malware_protection":{"$ref":"#/components/schemas/ioschemaEmpty"},"disable_rate_limit":{"$ref":"#/components/schemas/ioschemaEmpty"},"disable_threat_mesh":{"$ref":"#/components/schemas/ioschemaEmpty"},"disable_trust_client_ip_headers":{"$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"},"do_not_advertise":{"$ref":"#/components/schemas/ioschemaEmpty"},"domains":{"type":"array","description":" A list of Domains (host/authority header) that will be matched to load balancer.\n\n Supported Domains and search order:\n 1. Exact Domain names: www.foo.com.\n 2. Domains starting with a Wildcard: *.foo.com.\n\n Not supported Domains:\n - Just a Wildcard: *\n - A Wildcard and TLD with no root Domain: *.com.\n - A Wildcard not matching a whole DNS label.\n e.g. *.foo.com and *.bar.foo.com are valid Wildcards however *bar.foo.com, *-bar.foo.com, and bar*.foo.com are all invalid.\n\n Additional notes:\n A Wildcard will not match empty string.\n e.g. *.foo.com will match bar.foo.com and baz-bar.foo.com but not .foo.com.\n The longest Wildcards match first.\n Only a single virtual host in the entire route configuration can match on *.\n Also a Domain must be unique across all virtual hosts within an advertise policy.\n\n Domains are also used for SNI matching if the Loadbalancer type is HTTPS.\n Domains also indicate the list of names for which DNS resolution will be automatically resolved to IP addresses by the system.\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","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.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"}},"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"},"enable_trust_client_ip_headers":{"$ref":"#/components/schemas/virtual_hostClientIPHeaders"},"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/http_loadbalancerProxyTypeHttps"},"https_auto_cert":{"$ref":"#/components/schemas/http_loadbalancerProxyTypeHttpsAutoCerts"},"internet_vip_info":{"type":"array","description":" Internet VIP Info","items":{"$ref":"#/components/schemas/viewsInternetVIPInfo"},"x-displayname":"Internet VIP Info"},"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"},"l7_ddos_protection":{"$ref":"#/components/schemas/http_loadbalancerL7DDoSProtectionSettings"},"least_active":{"$ref":"#/components/schemas/ioschemaEmpty"},"malware_protection_settings":{"$ref":"#/components/schemas/common_securityMalwareProtectionPolicy"},"more_option":{"$ref":"#/components/schemas/http_loadbalancerAdvancedOptionsType"},"multi_lb_app":{"$ref":"#/components/schemas/ioschemaEmpty"},"no_challenge":{"$ref":"#/components/schemas/ioschemaEmpty"},"no_service_policies":{"$ref":"#/components/schemas/ioschemaEmpty"},"origin_server_subset_rule_list":{"$ref":"#/components/schemas/http_loadbalancerOriginServerSubsetRuleListType"},"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"}},"random":{"$ref":"#/components/schemas/ioschemaEmpty"},"rate_limit":{"$ref":"#/components/schemas/common_wafRateLimitConfigType"},"ring_hash":{"$ref":"#/components/schemas/http_loadbalancerHashPolicyListType"},"round_robin":{"$ref":"#/components/schemas/ioschemaEmpty"},"routes":{"type":"array","description":" Routes allow users to define match condition on a path and/or HTTP method to either forward matching traffic\n to origin pool or redirect matching traffic to a different URL or respond directly to matching traffic\n\nValidation Rules:\n ves.io.schema.rules.repeated.max_items: 256\n ves.io.schema.rules.repeated.unique: true\n","maxItems":256,"items":{"$ref":"#/components/schemas/viewshttp_loadbalancerRouteType"},"x-displayname":"Routes","x-ves-validation-rules":{"ves.io.schema.rules.repeated.max_items":"256","ves.io.schema.rules.repeated.unique":"true"}},"sensitive_data_disclosure_rules":{"$ref":"#/components/schemas/http_loadbalancerSensitiveDataDisclosureRules"},"sensitive_data_policy":{"$ref":"#/components/schemas/common_securitySensitiveDataPolicySettings"},"service_policies_from_namespace":{"$ref":"#/components/schemas/ioschemaEmpty"},"single_lb_app":{"$ref":"#/components/schemas/http_loadbalancerSingleLoadBalancerAppSetting"},"slow_ddos_mitigation":{"$ref":"#/components/schemas/virtual_hostSlowDDoSMitigation"},"source_ip_stickiness":{"$ref":"#/components/schemas/ioschemaEmpty"},"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"}}},"viewshttp_loadbalancerMirrorPolicyType":{"type":"object","description":"MirrorPolicy is used for shadowing traffic from one origin pool to another. The approach used\nis \"fire and forget\", meaning it will not wait for the shadow origin pool to\nrespond before returning the response from the primary origin pool. All normal statistics are\ncollected for the shadow origin pool making this feature useful for testing and troubleshooting.","title":"MirrorPolicyType","x-displayname":"Mirror Policy","x-ves-proto-message":"ves.io.schema.views.http_loadbalancer.MirrorPolicyType","properties":{"origin_pool":{"$ref":"#/components/schemas/schemaviewsObjectRefType"},"percent":{"$ref":"#/components/schemas/schemaFractionalPercent"}}},"viewshttp_loadbalancerReplaceSpecType":{"type":"object","description":"Shape of the HTTP load balancer specification","title":"ReplaceSpecType","x-displayname":"Replace HTTP Load Balancer","x-ves-oneof-field-advertise_choice":"[\"advertise_custom\",\"advertise_on_public\",\"advertise_on_public_default_vip\",\"do_not_advertise\"]","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-api_testing_choice":"[\"api_testing\",\"disable_api_testing\"]","x-ves-oneof-field-bot_defense_choice":"[\"bot_defense\",\"bot_defense_advanced\",\"disable_bot_defense\"]","x-ves-oneof-field-cache_options":"[\"caching_policy\",\"disable_caching\"]","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-hash_policy_choice":"[\"cookie_stickiness\",\"least_active\",\"random\",\"ring_hash\",\"round_robin\",\"source_ip_stickiness\"]","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-malware_protection":"[\"disable_malware_protection\",\"malware_protection_settings\"]","x-ves-oneof-field-ml_config_choice":"[\"multi_lb_app\",\"single_lb_app\"]","x-ves-oneof-field-origin_pool_choice":"[\"default_pool\",\"default_pool_list\"]","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-trust_client_ip_headers_choice":"[\"disable_trust_client_ip_headers\",\"enable_trust_client_ip_headers\"]","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.http_loadbalancer.ReplaceSpecType","properties":{"active_service_policies":{"$ref":"#/components/schemas/common_wafServicePolicyList"},"add_location":{"type":"boolean","description":" x-example: true\n Appends header x-volterra-location = <re-site-name> in responses. This configuration\n is ignored on CE sites.\n\nExample: ` \"true\"`","format":"boolean","x-displayname":"Add Location","x-ves-example":"true"},"advertise_custom":{"$ref":"#/components/schemas/viewsAdvertiseCustom"},"advertise_on_public":{"$ref":"#/components/schemas/viewsAdvertisePublic"},"advertise_on_public_default_vip":{"$ref":"#/components/schemas/ioschemaEmpty"},"api_protection_rules":{"$ref":"#/components/schemas/common_wafAPIProtectionRules"},"api_rate_limit":{"$ref":"#/components/schemas/common_wafAPIRateLimit"},"api_specification":{"$ref":"#/components/schemas/common_wafAPISpecificationSettings"},"api_testing":{"$ref":"#/components/schemas/http_loadbalancerApiTesting"},"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"},"bot_defense_advanced":{"$ref":"#/components/schemas/common_securityBotDefenseAdvancedType"},"caching_policy":{"$ref":"#/components/schemas/http_loadbalancerCachingPolicy"},"captcha_challenge":{"$ref":"#/components/schemas/virtual_hostCaptchaChallengeType"},"client_side_defense":{"$ref":"#/components/schemas/common_securityClientSideDefenseType"},"cookie_stickiness":{"$ref":"#/components/schemas/routeCookieForHashing"},"cors_policy":{"$ref":"#/components/schemas/schemaCorsPolicy"},"csrf_policy":{"$ref":"#/components/schemas/schemaCsrfPolicy"},"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_pool":{"$ref":"#/components/schemas/viewsorigin_poolGlobalSpecType"},"default_pool_list":{"$ref":"#/components/schemas/viewsOriginPoolListType"},"default_route_pools":{"type":"array","description":" Origin Pools used when no route is specified (default route)\n\nValidation Rules:\n ves.io.schema.rules.repeated.max_items: 8\n ves.io.schema.rules.repeated.unique: true\n","maxItems":8,"items":{"$ref":"#/components/schemas/viewsOriginPoolWithWeight"},"x-displayname":"Origin Pools","x-ves-validation-rules":{"ves.io.schema.rules.repeated.max_items":"8","ves.io.schema.rules.repeated.unique":"true"}},"default_sensitive_data_policy":{"$ref":"#/components/schemas/ioschemaEmpty"},"disable_api_definition":{"$ref":"#/components/schemas/ioschemaEmpty"},"disable_api_discovery":{"$ref":"#/components/schemas/ioschemaEmpty"},"disable_api_testing":{"$ref":"#/components/schemas/ioschemaEmpty"},"disable_bot_defense":{"$ref":"#/components/schemas/ioschemaEmpty"},"disable_caching":{"$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_malware_protection":{"$ref":"#/components/schemas/ioschemaEmpty"},"disable_rate_limit":{"$ref":"#/components/schemas/ioschemaEmpty"},"disable_threat_mesh":{"$ref":"#/components/schemas/ioschemaEmpty"},"disable_trust_client_ip_headers":{"$ref":"#/components/schemas/ioschemaEmpty"},"disable_waf":{"$ref":"#/components/schemas/ioschemaEmpty"},"do_not_advertise":{"$ref":"#/components/schemas/ioschemaEmpty"},"domains":{"type":"array","description":" A list of Domains (host/authority header) that will be matched to load balancer.\n\n Supported Domains and search order:\n 1. Exact Domain names: www.foo.com.\n 2. Domains starting with a Wildcard: *.foo.com.\n\n Not supported Domains:\n - Just a Wildcard: *\n - A Wildcard and TLD with no root Domain: *.com.\n - A Wildcard not matching a whole DNS label.\n e.g. *.foo.com and *.bar.foo.com are valid Wildcards however *bar.foo.com, *-bar.foo.com, and bar*.foo.com are all invalid.\n\n Additional notes:\n A Wildcard will not match empty string.\n e.g. *.foo.com will match bar.foo.com and baz-bar.foo.com but not .foo.com.\n The longest Wildcards match first.\n Only a single virtual host in the entire route configuration can match on *.\n Also a Domain must be unique across all virtual hosts within an advertise policy.\n\n Domains are also used for SNI matching if the Loadbalancer type is HTTPS.\n Domains also indicate the list of names for which DNS resolution will be automatically resolved to IP addresses by the system.\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","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.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"}},"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"},"enable_trust_client_ip_headers":{"$ref":"#/components/schemas/virtual_hostClientIPHeaders"},"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/http_loadbalancerProxyTypeHttps"},"https_auto_cert":{"$ref":"#/components/schemas/http_loadbalancerProxyTypeHttpsAutoCerts"},"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"},"l7_ddos_protection":{"$ref":"#/components/schemas/http_loadbalancerL7DDoSProtectionSettings"},"least_active":{"$ref":"#/components/schemas/ioschemaEmpty"},"malware_protection_settings":{"$ref":"#/components/schemas/common_securityMalwareProtectionPolicy"},"more_option":{"$ref":"#/components/schemas/http_loadbalancerAdvancedOptionsType"},"multi_lb_app":{"$ref":"#/components/schemas/ioschemaEmpty"},"no_challenge":{"$ref":"#/components/schemas/ioschemaEmpty"},"no_service_policies":{"$ref":"#/components/schemas/ioschemaEmpty"},"origin_server_subset_rule_list":{"$ref":"#/components/schemas/http_loadbalancerOriginServerSubsetRuleListType"},"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"}},"random":{"$ref":"#/components/schemas/ioschemaEmpty"},"rate_limit":{"$ref":"#/components/schemas/common_wafRateLimitConfigType"},"ring_hash":{"$ref":"#/components/schemas/http_loadbalancerHashPolicyListType"},"round_robin":{"$ref":"#/components/schemas/ioschemaEmpty"},"routes":{"type":"array","description":" Routes allow users to define match condition on a path and/or HTTP method to either forward matching traffic\n to origin pool or redirect matching traffic to a different URL or respond directly to matching traffic\n\nValidation Rules:\n ves.io.schema.rules.repeated.max_items: 256\n ves.io.schema.rules.repeated.unique: true\n","maxItems":256,"items":{"$ref":"#/components/schemas/viewshttp_loadbalancerRouteType"},"x-displayname":"Routes","x-ves-validation-rules":{"ves.io.schema.rules.repeated.max_items":"256","ves.io.schema.rules.repeated.unique":"true"}},"sensitive_data_disclosure_rules":{"$ref":"#/components/schemas/http_loadbalancerSensitiveDataDisclosureRules"},"sensitive_data_policy":{"$ref":"#/components/schemas/common_securitySensitiveDataPolicySettings"},"service_policies_from_namespace":{"$ref":"#/components/schemas/ioschemaEmpty"},"single_lb_app":{"$ref":"#/components/schemas/http_loadbalancerSingleLoadBalancerAppSetting"},"slow_ddos_mitigation":{"$ref":"#/components/schemas/virtual_hostSlowDDoSMitigation"},"source_ip_stickiness":{"$ref":"#/components/schemas/ioschemaEmpty"},"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"}}},"viewshttp_loadbalancerRouteType":{"type":"object","description":"This defines various options to define a route","title":"RouteType","x-displayname":"Route Type","x-ves-oneof-field-choice":"[\"custom_route_object\",\"direct_response_route\",\"redirect_route\",\"simple_route\"]","x-ves-proto-message":"ves.io.schema.views.http_loadbalancer.RouteType","properties":{"custom_route_object":{"$ref":"#/components/schemas/http_loadbalancerRouteTypeCustomRoute"},"direct_response_route":{"$ref":"#/components/schemas/http_loadbalancerRouteTypeDirectResponse"},"redirect_route":{"$ref":"#/components/schemas/http_loadbalancerRouteTypeRedirect"},"simple_route":{"$ref":"#/components/schemas/http_loadbalancerRouteTypeSimple"}}},"viewsorigin_poolGlobalSpecType":{"type":"object","description":"Shape of the origin pool specification","title":"GlobalSpecType","x-displayname":"Global Specification","x-ves-oneof-field-health_check_port_choice":"[\"health_check_port\",\"same_as_endpoint_port\"]","x-ves-oneof-field-port_choice":"[\"automatic_port\",\"lb_port\",\"port\"]","x-ves-oneof-field-tls_choice":"[\"no_tls\",\"use_tls\"]","x-ves-proto-message":"ves.io.schema.views.origin_pool.GlobalSpecType","properties":{"advanced_options":{"$ref":"#/components/schemas/origin_poolOriginPoolAdvancedOptions"},"automatic_port":{"$ref":"#/components/schemas/ioschemaEmpty"},"endpoint_selection":{"$ref":"#/components/schemas/clusterEndpointSelectionPolicy"},"health_check_port":{"type":"integer","description":"Exclusive with [same_as_endpoint_port]\n Port used for performing health check\n\nValidation Rules:\n ves.io.schema.rules.uint32.lte: 65535\n","title":"Health check port","format":"int64","x-displayname":"Health check port","x-ves-validation-rules":{"ves.io.schema.rules.uint32.lte":"65535"}},"healthcheck":{"type":"array","description":" Reference to healthcheck configuration objects\n\nValidation Rules:\n ves.io.schema.rules.repeated.max_items: 4\n","title":"Health Check","maxItems":4,"items":{"$ref":"#/components/schemas/schemaviewsObjectRefType"},"x-displayname":"Health Check object","x-ves-validation-rules":{"ves.io.schema.rules.repeated.max_items":"4"}},"lb_port":{"$ref":"#/components/schemas/ioschemaEmpty"},"loadbalancer_algorithm":{"$ref":"#/components/schemas/clusterLoadbalancerAlgorithm"},"no_tls":{"$ref":"#/components/schemas/ioschemaEmpty"},"origin_servers":{"type":"array","description":" List of origin servers in this pool\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/origin_poolOriginServerType"},"x-displayname":"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"}},"port":{"type":"integer","description":"Exclusive with [automatic_port lb_port]\n Endpoint service is available on this port\n\nExample: ` \"9080\"`\n\nValidation Rules:\n ves.io.schema.rules.uint32.gte: 1\n ves.io.schema.rules.uint32.lte: 65535\n","title":"Port","format":"int64","x-displayname":"Port","x-ves-example":"9080","x-ves-validation-rules":{"ves.io.schema.rules.uint32.gte":"1","ves.io.schema.rules.uint32.lte":"65535"}},"same_as_endpoint_port":{"$ref":"#/components/schemas/ioschemaEmpty"},"upstream_conn_pool_reuse_type":{"$ref":"#/components/schemas/schemaUpstreamConnPoolReuseType"},"use_tls":{"$ref":"#/components/schemas/origin_poolUpstreamTlsParameters"},"view_internal":{"$ref":"#/components/schemas/schemaviewsObjectRefType"}}},"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_hostClientIPHeaders":{"type":"object","description":"List of Client IP Headers","title":"Trust Client IP Headers List Type","x-displayname":"Trust Client IP Headers List","x-ves-proto-message":"ves.io.schema.virtual_host.ClientIPHeaders","properties":{"client_ip_headers":{"type":"array","description":" Define the list of one or more Client IP Headers. Headers will be used in order from top to bottom, meaning\n if the first header is not present in the request, the system will proceed to check for the second header,\n and so on, until one of the listed headers is found. If none of the defined headers exist, or the value\n is not an IP address, then the system will use the source IP of the packet. If multiple defined headers with\n different names are present in the request, the value of the first header name in the configuration will be used.\n If multiple defined headers with the same name are present in the request, values of all those headers will be combined.\n The system will read the right-most IP address from header, if there are multiple ip addresses in the header value.\n For X-Forwarded-For header, the system will read the IP address(rightmost - 1), as the client ip\n\nExample: ` \"Client-IP-Header\"`\n\nRequired: YES\n\nValidation Rules:\n ves.io.schema.rules.message.required: true\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.max_items: 5\n ves.io.schema.rules.repeated.min_items: 1\n ves.io.schema.rules.repeated.unique: true\n","title":"Client IP Headers","minItems":1,"maxItems":5,"items":{"type":"string","minLength":1,"maxLength":256},"x-displayname":"Client IP Headers","x-ves-example":"Client-IP-Header","x-ves-required":"true","x-ves-validation-rules":{"ves.io.schema.rules.message.required":"true","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.max_items":"5","ves.io.schema.rules.repeated.min_items":"1","ves.io.schema.rules.repeated.unique":"true"}}}},"virtual_hostCompressionType":{"type":"object","description":"Enables loadbalancer to compress dispatched data from an upstream service upon client request.\nThe content is compressed and then sent to the client with the appropriate headers if either response and request allow.\nOnly GZIP compression is supported.\n\nBy default compression will be skipped when:\n\n A request does NOT contain accept-encoding header.\n A request includes accept-encoding header, but it does not contain “gzip” or “*”.\n A request includes accept-encoding with “gzip” or “*” with the weight “q=0”. Note that the “gzip” will have a higher weight then “*”. For example, if accept-encoding is “gzip;q=0,*;q=1”, the filter will not compress. But if the header is set to “*;q=0,gzip;q=1”, the filter will compress.\n A request whose accept-encoding header includes “identity”.\n A response contains a content-encoding header.\n A response contains a cache-control header whose value includes “no-transform”.\n A response contains a transfer-encoding header whose value includes “gzip”.\n A response does not contain a content-type value that matches one of the selected mime-types, which default to application/javascript, application/json, application/xhtml+xml, image/svg+xml, text/css, text/html, text/plain, text/xml.\n Neither content-length nor transfer-encoding headers are present in the response.\n Response size is smaller than 30 bytes (only applicable when transfer-encoding is not chunked).\n\nWhen compression is applied:\n\n The content-length is removed from response headers.\n Response headers contain “transfer-encoding: chunked” and do not contain “content-encoding” header.\n The “vary: accept-encoding” header is inserted on every response.\n\nGZIP Compression Level:\n\nA value which is optimal balance between speed of compression and amount of compression is chosen.","title":"CompressionType","x-displayname":"Compression Parameters","x-ves-proto-message":"ves.io.schema.virtual_host.CompressionType","properties":{"content_length":{"type":"integer","description":" Minimum response length, in bytes, which will trigger compression. The default value is 30.\n\nExample: ` \"100\"`\n\nValidation Rules:\n ves.io.schema.rules.uint32.gte: 30\n","title":"content_length","format":"int64","x-displayname":"Content Length","x-ves-example":"100","x-ves-validation-rules":{"ves.io.schema.rules.uint32.gte":"30"}},"content_type":{"type":"array","description":" Set of strings that allows specifying which mime-types yield compression\n When this field is not defined, compression will be applied\n to the following mime-types:\n \"application/javascript\"\n \"application/json\",\n \"application/xhtml+xml\"\n \"image/svg+xml\"\n \"text/css\"\n \"text/html\"\n \"text/plain\"\n \"text/xml\"\n\nExample: ` \"application/json\"`\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.max_items: 50\n ves.io.schema.rules.repeated.unique: true\n","title":"content_type","maxItems":50,"items":{"type":"string","minLength":1,"maxLength":256},"x-displayname":"Content Type","x-ves-example":"application/json","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.max_items":"50","ves.io.schema.rules.repeated.unique":"true"}},"disable_on_etag_header":{"type":"boolean","description":" If true, disables compression when the response contains an etag header. When it is false,\n weak etags will be preserved and the ones that require strong validation will be removed.\n\nExample: ` \"true\"`","title":"disable_on_etag_header","format":"boolean","x-displayname":"Disable On Etag Header","x-ves-example":"true"},"remove_accept_encoding_header":{"type":"boolean","description":" If true, removes accept-encoding from the request headers before dispatching it to the upstream\n so that responses do not get compressed before reaching the filter.\n\nExample: ` \"true\"`","title":"remove_accept_encoding_header","format":"boolean","x-displayname":"Remove Accept-Encoding Header","x-ves-example":"true"}}},"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_hostHttpProtocolOptions":{"type":"object","description":"HTTP protocol configuration options for downstream connections","title":"HttpProtocolOptions","x-displayname":"HTTP Protocol Configuration Options","x-ves-displayorder":"1","x-ves-oneof-field-http_protocol_choice":"[\"http_protocol_enable_v1_only\",\"http_protocol_enable_v1_v2\",\"http_protocol_enable_v2_only\"]","x-ves-proto-message":"ves.io.schema.virtual_host.HttpProtocolOptions","properties":{"http_protocol_enable_v1_only":{"$ref":"#/components/schemas/schemavirtual_hostHttp1ProtocolOptions"},"http_protocol_enable_v1_v2":{"$ref":"#/components/schemas/ioschemaEmpty"},"http_protocol_enable_v2_only":{"$ref":"#/components/schemas/ioschemaEmpty"}}},"virtual_hostJavaScriptConfigType":{"type":"object","description":"x-displayName: \"JavaScript Configuration\"\nCustom JavaScript Configuration. Custom JavaScript code can be executed at various stages of request processing.","title":"JavaScriptConfigType","properties":{"cache_prefix":{"type":"string","description":"x-displayName: \"Cache Identifier\"\nx-example: \"value\"\nIdentifier for data store to be used by JavaScript. Data store can be\nKeyValue store referred by script.","title":"CachePrefix"},"custom_script_url":{"type":"string","description":"x-displayName: \"Path of Javascript\"\nx-example: \"value\"\nURL of JavaScript that gets executed","title":"ScriptURL"},"script_config":{"type":"object","description":"x-displayName: \"Configuration for Script\"\nInput passed to the script","title":"ScriptConfig"}}},"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_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"}}}}}}}
|